@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,178 @@
1
+ # Scaffold: connect
2
+
3
+ This is a scaffold template for creating Beep Media API connectors.
4
+
5
+ ## Placeholders
6
+
7
+ The following placeholders are used throughout this scaffold:
8
+
9
+ | Placeholder | Description | Example |
10
+ |-------------|-------------|---------|
11
+ | `zendesk` | Lowercase connector name | `notion`, `gmail`, `github` |
12
+ | `Zendesk` | Human-readable service name | `Notion`, `Gmail`, `GitHub` |
13
+ | `ZENDESK` | Uppercase with underscores (for env vars) | `NOTION`, `GMAIL`, `GITHUB` |
14
+ | `Zendesk` | PascalCase (for class names) | `Notion`, `Gmail`, `GitHub` |
15
+
16
+ ## Creating a New Connector
17
+
18
+ ### Option 1: Using the init script
19
+
20
+ ```bash
21
+ # Copy the scaffold to a new directory
22
+ cp -r scaffold-connect connect-notion
23
+ cd connect-notion
24
+
25
+ # Run the init script
26
+ ./scripts/init.sh notion "Notion"
27
+ ```
28
+
29
+ ### Option 2: Manual replacement
30
+
31
+ 1. Copy the scaffold directory
32
+ 2. Replace all placeholders in all files
33
+ 3. Update the API base URL in `src/api/client.ts`
34
+ 4. Add your API modules
35
+
36
+ ## Infrastructure Naming Convention
37
+
38
+ Each connector follows this naming pattern:
39
+
40
+ | Resource | Pattern | Example (for Notion) |
41
+ |----------|---------|----------------------|
42
+ | CLI | `connect-{name}` | `connect-notion` |
43
+ | EC2 Instance | `hasna-prod-connect-{name}` | `hasna-prod-connect-notion` |
44
+ | RDS Database | `hasna-prod-connect-{name}` | `hasna-prod-connect-notion` |
45
+ | S3 Bucket | `hasna-prod-connect-{name}` | `hasna-prod-connect-notion` |
46
+ | Remote API | `https://connect.hasna.com/{name}` | `https://connect.hasna.com/notion` |
47
+
48
+ ## Project Structure
49
+
50
+ ```
51
+ connect-{name}/
52
+ ├── src/
53
+ │ ├── api/
54
+ │ │ ├── client.ts # Base HTTP client with auth
55
+ │ │ ├── index.ts # Main connector class
56
+ │ │ └── example.ts # Example API module (rename/customize)
57
+ │ ├── cli/
58
+ │ │ └── index.ts # CLI commands
59
+ │ ├── types/
60
+ │ │ └── index.ts # TypeScript types
61
+ │ ├── utils/
62
+ │ │ ├── config.ts # CLI config storage
63
+ │ │ └── output.ts # Output formatting
64
+ │ └── index.ts # SDK entry point
65
+ ├── scripts/
66
+ │ └── init.sh # Initialization script
67
+ ├── package.json
68
+ ├── tsconfig.json
69
+ ├── Makefile
70
+ ├── README.md
71
+ ├── CLAUDE.md
72
+ ├── SCAFFOLD.md # This file (delete after init)
73
+ ├── .env.example
74
+ └── .gitignore
75
+ ```
76
+
77
+ ## Adding API Modules
78
+
79
+ 1. **Create the API module** in `src/api/{resource}.ts`:
80
+
81
+ ```typescript
82
+ import { ZendeskClient } from './client';
83
+
84
+ export class ResourceApi {
85
+ constructor(private readonly client: ZendeskClient) {}
86
+
87
+ async get(id: string): Promise<Resource> {
88
+ return this.client.get(`/resources/${id}`);
89
+ }
90
+
91
+ async list(): Promise<{ data: Resource[]; hasMore: boolean }> {
92
+ const response = await this.client.get<{ data: Resource[]; _hasMore?: boolean }>('/resources');
93
+ return { data: response.data || [], hasMore: !!response._hasMore };
94
+ }
95
+ }
96
+ ```
97
+
98
+ 2. **Add types** in `src/types/index.ts`:
99
+
100
+ ```typescript
101
+ export interface Resource {
102
+ id: string;
103
+ name: string;
104
+ // ...
105
+ }
106
+ ```
107
+
108
+ 3. **Register the module** in `src/api/index.ts`:
109
+
110
+ ```typescript
111
+ import { ResourceApi } from './resource';
112
+
113
+ export class Zendesk {
114
+ public readonly resource: ResourceApi;
115
+
116
+ constructor(config: ZendeskConfig) {
117
+ this.client = new ZendeskClient(config);
118
+ this.resource = new ResourceApi(this.client);
119
+ }
120
+ }
121
+ ```
122
+
123
+ 4. **Add CLI commands** in `src/cli/index.ts`:
124
+
125
+ ```typescript
126
+ const resourceCmd = program.command('resources').description('Manage resources');
127
+
128
+ resourceCmd
129
+ .command('get <id>')
130
+ .description('Get resource by ID')
131
+ .action(async (id: string) => {
132
+ const client = getClient();
133
+ const resource = await client.resource.get(id);
134
+ print(resource, getFormat(resourceCmd));
135
+ });
136
+ ```
137
+
138
+ ## Authentication
139
+
140
+ Update `src/api/client.ts` to match your service's authentication method:
141
+
142
+ ```typescript
143
+ // Bearer token (most common)
144
+ 'Authorization': `Bearer ${this.apiKey}`
145
+
146
+ // API key header
147
+ 'X-API-Key': this.apiKey
148
+
149
+ // Basic auth
150
+ 'Authorization': `Basic ${btoa(`${this.apiKey}:`)}`
151
+
152
+ // Custom header
153
+ 'Api-Key': this.apiKey
154
+ ```
155
+
156
+ ## Development
157
+
158
+ ```bash
159
+ # Install dependencies
160
+ bun install
161
+
162
+ # Run in development
163
+ bun run dev
164
+
165
+ # Build for production
166
+ bun run build
167
+
168
+ # Type check
169
+ bun run typecheck
170
+ ```
171
+
172
+ ## Deployment
173
+
174
+ The connector is deployed to AWS infrastructure:
175
+
176
+ 1. Build the project: `make build`
177
+ 2. Deploy to EC2: `make deploy-ec2`
178
+ 3. Configure the remote API at `https://connect.hasna.com/{name}`
@@ -0,0 +1,218 @@
1
+ user nginx;
2
+ worker_processes auto;
3
+ error_log /var/log/nginx/error.log;
4
+ pid /run/nginx.pid;
5
+
6
+ events {
7
+ worker_connections 1024;
8
+ }
9
+
10
+ http {
11
+ log_format main '$remote_addr - $remote_user [$time_local] "$request" '
12
+ '$status $body_bytes_sent "$http_referer" '
13
+ '"$http_user_agent" "$http_x_forwarded_for"';
14
+
15
+ access_log /var/log/nginx/access.log main;
16
+
17
+ sendfile on;
18
+ tcp_nopush on;
19
+ tcp_nodelay on;
20
+ keepalive_timeout 65;
21
+ types_hash_max_size 4096;
22
+ types_hash_bucket_size 128;
23
+
24
+ include /etc/nginx/mime.types;
25
+ default_type application/octet-stream;
26
+
27
+ upstream gmail_backend {
28
+ server 127.0.0.1:3001;
29
+ }
30
+
31
+ upstream googlecontacts_backend {
32
+ server 127.0.0.1:3002;
33
+ }
34
+
35
+ upstream googledrive_backend {
36
+ server 127.0.0.1:3003;
37
+ }
38
+
39
+ upstream linear_backend {
40
+ server 127.0.0.1:3004;
41
+ }
42
+
43
+ upstream notion_backend {
44
+ server 127.0.0.1:3005;
45
+ }
46
+
47
+ upstream clickbank_backend {
48
+ server 127.0.0.1:3013;
49
+ }
50
+
51
+ upstream zendesk_backend {
52
+ server 127.0.0.1:21010;
53
+ }
54
+
55
+ server {
56
+ listen 80;
57
+ server_name connect.hasna.com;
58
+
59
+ location / {
60
+ root /usr/share/nginx/html;
61
+ index index.html;
62
+ }
63
+
64
+ location /gmail/ {
65
+ proxy_pass http://127.0.0.1:3001/;
66
+ proxy_set_header Host $host;
67
+ proxy_set_header X-Real-IP $remote_addr;
68
+ proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
69
+ proxy_set_header X-Forwarded-Proto $scheme;
70
+ proxy_set_header X-Forwarded-Prefix /gmail/;
71
+ }
72
+
73
+ location /googlecontacts/ {
74
+ proxy_pass http://127.0.0.1:3002/;
75
+ proxy_set_header Host $host;
76
+ proxy_set_header X-Real-IP $remote_addr;
77
+ proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
78
+ proxy_set_header X-Forwarded-Proto $scheme;
79
+ proxy_set_header X-Forwarded-Prefix /googlecontacts/;
80
+ }
81
+
82
+ location /googledrive/ {
83
+ proxy_pass http://127.0.0.1:3003/;
84
+ proxy_set_header Host $host;
85
+ proxy_set_header X-Real-IP $remote_addr;
86
+ proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
87
+ proxy_set_header X-Forwarded-Proto $scheme;
88
+ proxy_set_header X-Forwarded-Prefix /googledrive/;
89
+ }
90
+
91
+ location /linear/ {
92
+ proxy_pass http://127.0.0.1:3004/;
93
+ proxy_set_header Host $host;
94
+ proxy_set_header X-Real-IP $remote_addr;
95
+ proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
96
+ proxy_set_header X-Forwarded-Proto $scheme;
97
+ proxy_set_header X-Forwarded-Prefix /linear/;
98
+ }
99
+
100
+ location /notion/ {
101
+ proxy_pass http://127.0.0.1:3005/;
102
+ proxy_set_header Host $host;
103
+ proxy_set_header X-Real-IP $remote_addr;
104
+ proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
105
+ proxy_set_header X-Forwarded-Proto $scheme;
106
+ proxy_set_header X-Forwarded-Prefix /notion/;
107
+ }
108
+
109
+ location /clickbank/ {
110
+ proxy_pass http://127.0.0.1:3013/;
111
+ proxy_set_header Host $host;
112
+ proxy_set_header X-Real-IP $remote_addr;
113
+ proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
114
+ proxy_set_header X-Forwarded-Proto $scheme;
115
+ proxy_set_header X-Forwarded-Prefix /clickbank/;
116
+ }
117
+
118
+ location /zendesk/ {
119
+ proxy_pass http://127.0.0.1:21010/zendesk/;
120
+ proxy_set_header Host $host;
121
+ proxy_set_header X-Real-IP $remote_addr;
122
+ proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
123
+ proxy_set_header X-Forwarded-Proto $scheme;
124
+ proxy_set_header X-Forwarded-Prefix /zendesk/;
125
+ }
126
+ }
127
+
128
+ server {
129
+ listen 80;
130
+ server_name gmail.connect.hasna.com;
131
+
132
+ location / {
133
+ proxy_pass http://127.0.0.1:3001;
134
+ proxy_set_header Host $host;
135
+ proxy_set_header X-Real-IP $remote_addr;
136
+ proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
137
+ proxy_set_header X-Forwarded-Proto $scheme;
138
+ }
139
+ }
140
+
141
+ server {
142
+ listen 80;
143
+ server_name googlecontacts.connect.hasna.com;
144
+
145
+ location / {
146
+ proxy_pass http://127.0.0.1:3002;
147
+ proxy_set_header Host $host;
148
+ proxy_set_header X-Real-IP $remote_addr;
149
+ proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
150
+ proxy_set_header X-Forwarded-Proto $scheme;
151
+ }
152
+ }
153
+
154
+ server {
155
+ listen 80;
156
+ server_name googledrive.connect.hasna.com;
157
+
158
+ location / {
159
+ proxy_pass http://127.0.0.1:3003;
160
+ proxy_set_header Host $host;
161
+ proxy_set_header X-Real-IP $remote_addr;
162
+ proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
163
+ proxy_set_header X-Forwarded-Proto $scheme;
164
+ }
165
+ }
166
+
167
+ server {
168
+ listen 80;
169
+ server_name linear.connect.hasna.com;
170
+
171
+ location / {
172
+ proxy_pass http://127.0.0.1:3004;
173
+ proxy_set_header Host $host;
174
+ proxy_set_header X-Real-IP $remote_addr;
175
+ proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
176
+ proxy_set_header X-Forwarded-Proto $scheme;
177
+ }
178
+ }
179
+
180
+ server {
181
+ listen 80;
182
+ server_name notion.connect.hasna.com;
183
+
184
+ location / {
185
+ proxy_pass http://127.0.0.1:3005;
186
+ proxy_set_header Host $host;
187
+ proxy_set_header X-Real-IP $remote_addr;
188
+ proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
189
+ proxy_set_header X-Forwarded-Proto $scheme;
190
+ }
191
+ }
192
+
193
+ server {
194
+ listen 80;
195
+ server_name clickbank.connect.hasna.com;
196
+
197
+ location / {
198
+ proxy_pass http://127.0.0.1:3013;
199
+ proxy_set_header Host $host;
200
+ proxy_set_header X-Real-IP $remote_addr;
201
+ proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
202
+ proxy_set_header X-Forwarded-Proto $scheme;
203
+ }
204
+ }
205
+
206
+ server {
207
+ listen 80;
208
+ server_name zendesk.connect.hasna.com;
209
+
210
+ location / {
211
+ proxy_pass http://127.0.0.1:21010;
212
+ proxy_set_header Host $host;
213
+ proxy_set_header X-Real-IP $remote_addr;
214
+ proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
215
+ proxy_set_header X-Forwarded-Proto $scheme;
216
+ }
217
+ }
218
+ }
@@ -0,0 +1,61 @@
1
+ # nginx configuration for connect-zendesk
2
+ # Location: /etc/nginx/sites-available/connect-zendesk
3
+ #
4
+ # To enable:
5
+ # sudo ln -s /etc/nginx/sites-available/connect-zendesk /etc/nginx/sites-enabled/
6
+ # sudo nginx -t
7
+ # sudo systemctl reload nginx
8
+
9
+ # Upstream server
10
+ upstream connect_zendesk {
11
+ server 127.0.0.1:21010;
12
+ keepalive 32;
13
+ }
14
+
15
+ # Main server block for connect.hasna.com/zendesk
16
+ # Add this location block to the existing connect.hasna.com server
17
+ #
18
+ # If you have a separate server block for connect.hasna.com, add:
19
+ #
20
+ # location /zendesk {
21
+ # proxy_pass http://connect_zendesk;
22
+ # proxy_http_version 1.1;
23
+ # proxy_set_header Upgrade $http_upgrade;
24
+ # proxy_set_header Connection 'upgrade';
25
+ # proxy_set_header Host $host;
26
+ # proxy_set_header X-Real-IP $remote_addr;
27
+ # proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
28
+ # proxy_set_header X-Forwarded-Proto $scheme;
29
+ # proxy_cache_bypass $http_upgrade;
30
+ # proxy_read_timeout 86400;
31
+ # }
32
+
33
+ # Standalone server configuration (use if connect.hasna.com doesn't exist)
34
+ # Uncomment and modify as needed:
35
+ #
36
+ # server {
37
+ # listen 80;
38
+ # server_name connect.hasna.com;
39
+ # return 301 https://$host$request_uri;
40
+ # }
41
+ #
42
+ # server {
43
+ # listen 443 ssl http2;
44
+ # server_name connect.hasna.com;
45
+ #
46
+ # ssl_certificate /etc/letsencrypt/live/connect.hasna.com/fullchain.pem;
47
+ # ssl_certificate_key /etc/letsencrypt/live/connect.hasna.com/privkey.pem;
48
+ #
49
+ # location /zendesk {
50
+ # proxy_pass http://connect_zendesk;
51
+ # proxy_http_version 1.1;
52
+ # proxy_set_header Upgrade $http_upgrade;
53
+ # proxy_set_header Connection 'upgrade';
54
+ # proxy_set_header Host $host;
55
+ # proxy_set_header X-Real-IP $remote_addr;
56
+ # proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
57
+ # proxy_set_header X-Forwarded-Proto $scheme;
58
+ # proxy_cache_bypass $http_upgrade;
59
+ # proxy_read_timeout 86400;
60
+ # }
61
+ # }
@@ -0,0 +1,71 @@
1
+ {
2
+ "name": "@hasna/connect-zendesk",
3
+ "version": "0.2.0",
4
+ "description": "Zendesk API connector CLI - A TypeScript wrapper for the Zendesk API",
5
+ "type": "module",
6
+ "bin": {
7
+ "connect-zendesk": "bin/index.js"
8
+ },
9
+ "exports": {
10
+ ".": {
11
+ "import": "./dist/index.js",
12
+ "types": "./dist/index.d.ts"
13
+ }
14
+ },
15
+ "main": "./dist/index.js",
16
+ "types": "./dist/index.d.ts",
17
+ "scripts": {
18
+ "build": "bun build ./src/index.ts --outdir ./dist --target bun && bun build ./src/cli/index.ts --outdir ./bin --target bun && bun build ./src/server/index.ts --outdir ./server --target bun",
19
+ "dev": "bun run ./src/cli/index.ts",
20
+ "server": "bun run ./src/server/index.ts",
21
+ "server:prod": "NODE_ENV=production bun run ./src/server/index.ts",
22
+ "test": "bun test",
23
+ "test:watch": "bun test --watch",
24
+ "test:coverage": "bun test --coverage",
25
+ "typecheck": "tsc --noEmit",
26
+ "prepublishOnly": "bun run build",
27
+ "release": "bun run ./scripts/publish.ts",
28
+ "release:patch": "bun run ./scripts/publish.ts patch",
29
+ "release:minor": "bun run ./scripts/publish.ts minor",
30
+ "release:major": "bun run ./scripts/publish.ts major",
31
+ "release:dry": "bun run ./scripts/publish.ts --dry-run"
32
+ },
33
+ "repository": {
34
+ "type": "git",
35
+ "url": "git+https://github.com/hasna/connect-zendesk.git"
36
+ },
37
+ "homepage": "https://github.com/hasna/connect-zendesk#readme",
38
+ "bugs": {
39
+ "url": "https://github.com/hasna/connect-zendesk/issues"
40
+ },
41
+ "keywords": [
42
+ "zendesk",
43
+ "api",
44
+ "connector",
45
+ "cli",
46
+ "typescript",
47
+ "bun",
48
+ "support",
49
+ "helpdesk",
50
+ "tickets"
51
+ ],
52
+ "author": "Hasna",
53
+ "license": "Apache-2.0",
54
+ "devDependencies": {
55
+ "@types/bun": "latest",
56
+ "typescript": "^5"
57
+ },
58
+ "dependencies": {
59
+ "commander": "^12.1.0",
60
+ "chalk": "^5.3.0"
61
+ },
62
+ "engines": {
63
+ "bun": ">=1.0.0"
64
+ },
65
+ "files": [
66
+ "dist",
67
+ "bin",
68
+ "README.md",
69
+ "LICENSE"
70
+ ]
71
+ }
@@ -0,0 +1,62 @@
1
+ #!/bin/bash
2
+ # Initialize a new connector from the scaffold-connect template
3
+ #
4
+ # Usage: ./scripts/init.sh <connector-name> [service-display-name]
5
+ #
6
+ # Examples:
7
+ # ./scripts/init.sh notion "Notion"
8
+ # ./scripts/init.sh gmail "Gmail"
9
+ # ./scripts/init.sh github "GitHub"
10
+ #
11
+ # This will replace all placeholders:
12
+ # {{CONNECTOR_NAME}} -> connector-name (lowercase)
13
+ # {{SERVICE_NAME}} -> Service Display Name
14
+ # {{SERVICE_NAME_UPPER}} -> SERVICE_NAME (uppercase with underscores)
15
+ # {{SERVICE_NAME_PASCAL}} -> ServiceName (PascalCase)
16
+
17
+ set -e
18
+
19
+ if [ -z "$1" ]; then
20
+ echo "Usage: $0 <connector-name> [service-display-name]"
21
+ echo ""
22
+ echo "Examples:"
23
+ echo " $0 notion 'Notion'"
24
+ echo " $0 gmail 'Gmail'"
25
+ echo " $0 github 'GitHub'"
26
+ exit 1
27
+ fi
28
+
29
+ CONNECTOR_NAME="$1"
30
+ SERVICE_NAME="${2:-$CONNECTOR_NAME}"
31
+
32
+ # Convert to different cases
33
+ SERVICE_NAME_UPPER=$(echo "$SERVICE_NAME" | tr '[:lower:]' '[:upper:]' | tr ' ' '_' | tr '-' '_')
34
+ SERVICE_NAME_PASCAL=$(echo "$SERVICE_NAME" | sed 's/[- ]//g')
35
+
36
+ echo "Initializing connector: connect-$CONNECTOR_NAME"
37
+ echo "Service name: $SERVICE_NAME"
38
+ echo "Environment variable prefix: ${SERVICE_NAME_UPPER}_"
39
+ echo "Class name: $SERVICE_NAME_PASCAL"
40
+ echo ""
41
+
42
+ # Find all files and replace placeholders
43
+ find . -type f \( -name "*.ts" -o -name "*.json" -o -name "*.md" -o -name ".env*" -o -name ".gitignore" \) ! -path "./node_modules/*" ! -path "./scripts/*" | while read -r file; do
44
+ if grep -q "{{CONNECTOR_NAME}}\|{{SERVICE_NAME}}\|{{SERVICE_NAME_UPPER}}\|{{SERVICE_NAME_PASCAL}}" "$file" 2>/dev/null; then
45
+ echo "Processing: $file"
46
+ sed -i '' \
47
+ -e "s/{{CONNECTOR_NAME}}/$CONNECTOR_NAME/g" \
48
+ -e "s/{{SERVICE_NAME_PASCAL}}/$SERVICE_NAME_PASCAL/g" \
49
+ -e "s/{{SERVICE_NAME_UPPER}}/$SERVICE_NAME_UPPER/g" \
50
+ -e "s/{{SERVICE_NAME}}/$SERVICE_NAME/g" \
51
+ "$file"
52
+ fi
53
+ done
54
+
55
+ echo ""
56
+ echo "Done! Next steps:"
57
+ echo " 1. cd connect-$CONNECTOR_NAME"
58
+ echo " 2. bun install"
59
+ echo " 3. Update src/api/client.ts with the correct API base URL"
60
+ echo " 4. Add API modules in src/api/"
61
+ echo " 5. Add CLI commands in src/cli/index.ts"
62
+ echo " 6. bun run dev to test"