@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,910 @@
1
+ // Zendesk API Types
2
+
3
+ // ============================================
4
+ // Configuration
5
+ // ============================================
6
+
7
+ export interface ZendeskConfig {
8
+ email: string;
9
+ apiToken: string;
10
+ baseUrl?: string; // e.g., https://your-subdomain.zendesk.com/api/v2
11
+ }
12
+
13
+ // ============================================
14
+ // Common Types
15
+ // ============================================
16
+
17
+ export type OutputFormat = 'json' | 'xml';
18
+
19
+ export interface PaginatedResponse<T> {
20
+ data: T[];
21
+ page: number;
22
+ hasMore: boolean;
23
+ }
24
+
25
+ // ============================================
26
+ // API Response Types
27
+ // ============================================
28
+
29
+ // Ticket Types
30
+ export interface ZendeskTicket {
31
+ id: number;
32
+ url: string;
33
+ external_id?: string;
34
+ type?: 'problem' | 'incident' | 'question' | 'task';
35
+ subject?: string;
36
+ raw_subject?: string;
37
+ description?: string;
38
+ priority?: 'urgent' | 'high' | 'normal' | 'low';
39
+ status: 'new' | 'open' | 'pending' | 'hold' | 'solved' | 'closed';
40
+ recipient?: string;
41
+ requester_id?: number;
42
+ submitter_id?: number;
43
+ assignee_id?: number;
44
+ organization_id?: number;
45
+ group_id?: number;
46
+ collaborator_ids?: number[];
47
+ follower_ids?: number[];
48
+ email_cc_ids?: number[];
49
+ forum_topic_id?: number;
50
+ problem_id?: number;
51
+ has_incidents?: boolean;
52
+ is_public?: boolean;
53
+ due_at?: string;
54
+ tags?: string[];
55
+ custom_fields?: Array<{ id: number; value: unknown }>;
56
+ satisfaction_rating?: {
57
+ id: number;
58
+ score: 'offered' | 'unoffered' | 'good' | 'bad';
59
+ comment?: string;
60
+ };
61
+ sharing_agreement_ids?: number[];
62
+ fields?: Array<{ id: number; value: unknown }>;
63
+ followup_ids?: number[];
64
+ ticket_form_id?: number;
65
+ brand_id?: number;
66
+ allow_channelback?: boolean;
67
+ allow_attachments?: boolean;
68
+ created_at: string;
69
+ updated_at: string;
70
+ }
71
+
72
+ export interface ZendeskTicketComment {
73
+ type?: 'Comment' | 'VoiceComment';
74
+ body: string;
75
+ html_body?: string;
76
+ public?: boolean;
77
+ author_id?: number;
78
+ attachments?: Array<{
79
+ id: number;
80
+ name: string;
81
+ content_type: string;
82
+ size: number;
83
+ url: string;
84
+ }>;
85
+ }
86
+
87
+ export interface CreateTicketRequest {
88
+ ticket: {
89
+ subject?: string;
90
+ comment: ZendeskTicketComment;
91
+ requester_id?: number;
92
+ submitter_id?: number;
93
+ assignee_id?: number;
94
+ group_id?: number;
95
+ collaborator_ids?: number[];
96
+ type?: 'problem' | 'incident' | 'question' | 'task';
97
+ priority?: 'urgent' | 'high' | 'normal' | 'low';
98
+ status?: 'new' | 'open' | 'pending' | 'hold' | 'solved' | 'closed';
99
+ tags?: string[];
100
+ external_id?: string;
101
+ custom_fields?: Array<{ id: number; value: unknown }>;
102
+ };
103
+ }
104
+
105
+ export interface UpdateTicketRequest {
106
+ ticket: Partial<Omit<ZendeskTicket, 'id' | 'url' | 'created_at' | 'updated_at'>> & {
107
+ comment?: ZendeskTicketComment;
108
+ };
109
+ }
110
+
111
+ export interface TicketListParams {
112
+ page?: number;
113
+ per_page?: number;
114
+ sort_by?: 'created_at' | 'updated_at' | 'priority' | 'status' | 'ticket_type';
115
+ sort_order?: 'asc' | 'desc';
116
+ }
117
+
118
+ // User Types
119
+ export interface ZendeskUser {
120
+ id: number;
121
+ url: string;
122
+ name: string;
123
+ email?: string;
124
+ created_at: string;
125
+ updated_at: string;
126
+ time_zone?: string;
127
+ iana_time_zone?: string;
128
+ phone?: string;
129
+ shared_phone_number?: string;
130
+ photo?: {
131
+ id: number;
132
+ url: string;
133
+ file_name: string;
134
+ content_url: string;
135
+ content_type: string;
136
+ size: number;
137
+ };
138
+ locale_id?: number;
139
+ locale?: string;
140
+ organization_id?: number;
141
+ role: 'end-user' | 'agent' | 'admin';
142
+ verified?: boolean;
143
+ external_id?: string;
144
+ tags?: string[];
145
+ alias?: string;
146
+ active?: boolean;
147
+ shared?: boolean;
148
+ shared_agent?: boolean;
149
+ last_login_at?: string;
150
+ two_factor_auth_enabled?: boolean;
151
+ signature?: string;
152
+ details?: string;
153
+ notes?: string;
154
+ role_type?: number;
155
+ custom_role_id?: number;
156
+ moderator?: boolean;
157
+ ticket_restriction?: 'assigned' | 'requested' | 'groups' | 'organization' | null;
158
+ only_private_comments?: boolean;
159
+ restricted_agent?: boolean;
160
+ suspended?: boolean;
161
+ default_group_id?: number;
162
+ user_fields?: Record<string, unknown>;
163
+ }
164
+
165
+ export interface CreateUserRequest {
166
+ user: {
167
+ name: string;
168
+ email?: string;
169
+ role?: 'end-user' | 'agent' | 'admin';
170
+ verified?: boolean;
171
+ external_id?: string;
172
+ alias?: string;
173
+ phone?: string;
174
+ time_zone?: string;
175
+ organization_id?: number;
176
+ tags?: string[];
177
+ user_fields?: Record<string, unknown>;
178
+ };
179
+ }
180
+
181
+ export interface UpdateUserRequest {
182
+ user: Partial<Omit<ZendeskUser, 'id' | 'url' | 'created_at' | 'updated_at'>>;
183
+ }
184
+
185
+ export interface UserListParams {
186
+ page?: number;
187
+ per_page?: number;
188
+ role?: 'end-user' | 'agent' | 'admin';
189
+ }
190
+
191
+ // Organization Types
192
+ export interface ZendeskOrganization {
193
+ id: number;
194
+ url: string;
195
+ external_id?: string;
196
+ name: string;
197
+ created_at: string;
198
+ updated_at: string;
199
+ domain_names?: string[];
200
+ details?: string;
201
+ notes?: string;
202
+ group_id?: number;
203
+ shared_tickets?: boolean;
204
+ shared_comments?: boolean;
205
+ tags?: string[];
206
+ organization_fields?: Record<string, unknown>;
207
+ }
208
+
209
+ export interface CreateOrganizationRequest {
210
+ organization: {
211
+ name: string;
212
+ external_id?: string;
213
+ domain_names?: string[];
214
+ details?: string;
215
+ notes?: string;
216
+ group_id?: number;
217
+ shared_tickets?: boolean;
218
+ shared_comments?: boolean;
219
+ tags?: string[];
220
+ organization_fields?: Record<string, unknown>;
221
+ };
222
+ }
223
+
224
+ export interface OrganizationListParams {
225
+ page?: number;
226
+ per_page?: number;
227
+ }
228
+
229
+ // Group Types
230
+ export interface ZendeskGroup {
231
+ id: number;
232
+ url: string;
233
+ name: string;
234
+ description?: string;
235
+ default?: boolean;
236
+ deleted?: boolean;
237
+ created_at: string;
238
+ updated_at: string;
239
+ is_public?: boolean;
240
+ }
241
+
242
+ export interface GroupListParams {
243
+ page?: number;
244
+ per_page?: number;
245
+ }
246
+
247
+ // Zendesk API Response Wrappers
248
+ export interface ZendeskTicketResponse {
249
+ ticket: ZendeskTicket;
250
+ }
251
+
252
+ export interface ZendeskTicketsResponse {
253
+ tickets: ZendeskTicket[];
254
+ next_page?: string;
255
+ previous_page?: string;
256
+ count?: number;
257
+ }
258
+
259
+ export interface ZendeskUserResponse {
260
+ user: ZendeskUser;
261
+ }
262
+
263
+ export interface ZendeskUsersResponse {
264
+ users: ZendeskUser[];
265
+ next_page?: string;
266
+ previous_page?: string;
267
+ count?: number;
268
+ }
269
+
270
+ export interface ZendeskOrganizationResponse {
271
+ organization: ZendeskOrganization;
272
+ }
273
+
274
+ export interface ZendeskOrganizationsResponse {
275
+ organizations: ZendeskOrganization[];
276
+ next_page?: string;
277
+ previous_page?: string;
278
+ count?: number;
279
+ }
280
+
281
+ export interface ZendeskGroupResponse {
282
+ group: ZendeskGroup;
283
+ }
284
+
285
+ export interface ZendeskGroupsResponse {
286
+ groups: ZendeskGroup[];
287
+ next_page?: string;
288
+ previous_page?: string;
289
+ count?: number;
290
+ }
291
+
292
+ // ============================================
293
+ // API Error Types
294
+ // ============================================
295
+
296
+ export interface ZendeskError {
297
+ code: number;
298
+ message: string;
299
+ field?: string;
300
+ }
301
+
302
+ export class ZendeskApiError extends Error {
303
+ public readonly statusCode: number;
304
+ public readonly errors?: ZendeskError[];
305
+
306
+ constructor(message: string, statusCode: number, errors?: ZendeskError[]) {
307
+ super(message);
308
+ this.name = 'ZendeskApiError';
309
+ this.statusCode = statusCode;
310
+ this.errors = errors;
311
+ }
312
+ }
313
+
314
+ // ============================================
315
+ // Ticket Field Types
316
+ // ============================================
317
+
318
+ export interface ZendeskTicketField {
319
+ id: number;
320
+ url: string;
321
+ type: 'checkbox' | 'date' | 'decimal' | 'dropdown' | 'integer' | 'regexp' | 'text' | 'textarea' | 'tagger' | 'lookup' | 'multiselect';
322
+ title: string;
323
+ raw_title?: string;
324
+ description?: string;
325
+ raw_description?: string;
326
+ position?: number;
327
+ active?: boolean;
328
+ required?: boolean;
329
+ collapsed_for_agents?: boolean;
330
+ regexp_for_validation?: string;
331
+ title_in_portal?: string;
332
+ raw_title_in_portal?: string;
333
+ visible_in_portal?: boolean;
334
+ editable_in_portal?: boolean;
335
+ required_in_portal?: boolean;
336
+ tag?: string;
337
+ created_at: string;
338
+ updated_at: string;
339
+ removable?: boolean;
340
+ agent_description?: string;
341
+ custom_field_options?: Array<{ id: number; name: string; raw_name: string; value: string; default?: boolean }>;
342
+ system_field_options?: Array<{ name: string; value: string }>;
343
+ sub_type_id?: number;
344
+ custom_statuses?: Array<{ id: number; status_category: string; agent_label: string; end_user_label: string }>;
345
+ }
346
+
347
+ export interface CreateTicketFieldRequest {
348
+ ticket_field: {
349
+ type: ZendeskTicketField['type'];
350
+ title: string;
351
+ description?: string;
352
+ position?: number;
353
+ active?: boolean;
354
+ required?: boolean;
355
+ collapsed_for_agents?: boolean;
356
+ regexp_for_validation?: string;
357
+ title_in_portal?: string;
358
+ visible_in_portal?: boolean;
359
+ editable_in_portal?: boolean;
360
+ required_in_portal?: boolean;
361
+ tag?: string;
362
+ custom_field_options?: Array<{ name: string; value: string }>;
363
+ };
364
+ }
365
+
366
+ export interface UpdateTicketFieldRequest {
367
+ ticket_field: Partial<Omit<ZendeskTicketField, 'id' | 'url' | 'created_at' | 'updated_at'>>;
368
+ }
369
+
370
+ export interface TicketFieldListParams {
371
+ page?: number;
372
+ per_page?: number;
373
+ }
374
+
375
+ export interface ZendeskTicketFieldResponse {
376
+ ticket_field: ZendeskTicketField;
377
+ }
378
+
379
+ export interface ZendeskTicketFieldsResponse {
380
+ ticket_fields: ZendeskTicketField[];
381
+ next_page?: string;
382
+ previous_page?: string;
383
+ count?: number;
384
+ }
385
+
386
+ // ============================================
387
+ // View Types
388
+ // ============================================
389
+
390
+ export interface ZendeskViewCondition {
391
+ field: string;
392
+ operator: string;
393
+ value: string | number | boolean | string[];
394
+ }
395
+
396
+ export interface ZendeskView {
397
+ id: number;
398
+ url: string;
399
+ title: string;
400
+ active?: boolean;
401
+ position?: number;
402
+ description?: string;
403
+ created_at: string;
404
+ updated_at: string;
405
+ restriction?: {
406
+ type: 'Group' | 'User';
407
+ id?: number;
408
+ ids?: number[];
409
+ };
410
+ execution?: {
411
+ group_by?: string;
412
+ group_order?: 'asc' | 'desc';
413
+ sort_by?: string;
414
+ sort_order?: 'asc' | 'desc';
415
+ group?: { id: string; title: string; order: string };
416
+ sort?: { id: string; title: string; order: string };
417
+ columns?: Array<{ id: string; title: string }>;
418
+ fields?: Array<{ id: string; title: string }>;
419
+ custom_fields?: Array<{ id: number; title: string }>;
420
+ };
421
+ conditions?: {
422
+ all?: ZendeskViewCondition[];
423
+ any?: ZendeskViewCondition[];
424
+ };
425
+ output?: {
426
+ columns?: string[];
427
+ group_by?: string;
428
+ group_order?: 'asc' | 'desc';
429
+ sort_by?: string;
430
+ sort_order?: 'asc' | 'desc';
431
+ };
432
+ }
433
+
434
+ export interface CreateViewRequest {
435
+ view: {
436
+ title: string;
437
+ active?: boolean;
438
+ conditions?: {
439
+ all?: ZendeskViewCondition[];
440
+ any?: ZendeskViewCondition[];
441
+ };
442
+ output?: {
443
+ columns?: string[];
444
+ group_by?: string;
445
+ group_order?: 'asc' | 'desc';
446
+ sort_by?: string;
447
+ sort_order?: 'asc' | 'desc';
448
+ };
449
+ restriction?: {
450
+ type: 'Group' | 'User';
451
+ id?: number;
452
+ ids?: number[];
453
+ };
454
+ };
455
+ }
456
+
457
+ export interface UpdateViewRequest {
458
+ view: Partial<Omit<ZendeskView, 'id' | 'url' | 'created_at' | 'updated_at'>>;
459
+ }
460
+
461
+ export interface ViewListParams {
462
+ page?: number;
463
+ per_page?: number;
464
+ active?: boolean;
465
+ group_id?: number;
466
+ sort_by?: string;
467
+ sort_order?: 'asc' | 'desc';
468
+ }
469
+
470
+ export interface ZendeskViewResponse {
471
+ view: ZendeskView;
472
+ }
473
+
474
+ export interface ZendeskViewsResponse {
475
+ views: ZendeskView[];
476
+ next_page?: string;
477
+ previous_page?: string;
478
+ count?: number;
479
+ }
480
+
481
+ export interface ZendeskViewCountResponse {
482
+ view_count: {
483
+ view_id: number;
484
+ url: string;
485
+ value: number;
486
+ pretty: string;
487
+ fresh: boolean;
488
+ };
489
+ }
490
+
491
+ export interface ZendeskViewExecuteResponse {
492
+ rows: Array<{
493
+ ticket: ZendeskTicket;
494
+ group?: ZendeskGroup;
495
+ assignee?: ZendeskUser;
496
+ requester?: ZendeskUser;
497
+ organization?: ZendeskOrganization;
498
+ }>;
499
+ columns?: Array<{ id: string; title: string }>;
500
+ groups?: Array<{ id: string; title: string }>;
501
+ next_page?: string;
502
+ previous_page?: string;
503
+ count?: number;
504
+ }
505
+
506
+ // ============================================
507
+ // Trigger Types
508
+ // ============================================
509
+
510
+ export interface ZendeskTriggerAction {
511
+ field: string;
512
+ value: string | string[] | number | boolean;
513
+ }
514
+
515
+ export interface ZendeskTriggerCondition {
516
+ field: string;
517
+ operator: string;
518
+ value: string | string[] | number | boolean;
519
+ }
520
+
521
+ export interface ZendeskTrigger {
522
+ id: number;
523
+ url: string;
524
+ title: string;
525
+ active?: boolean;
526
+ position?: number;
527
+ description?: string;
528
+ category_id?: string;
529
+ created_at: string;
530
+ updated_at: string;
531
+ actions: ZendeskTriggerAction[];
532
+ conditions?: {
533
+ all?: ZendeskTriggerCondition[];
534
+ any?: ZendeskTriggerCondition[];
535
+ };
536
+ }
537
+
538
+ export interface CreateTriggerRequest {
539
+ trigger: {
540
+ title: string;
541
+ active?: boolean;
542
+ category_id?: string;
543
+ actions: ZendeskTriggerAction[];
544
+ conditions?: {
545
+ all?: ZendeskTriggerCondition[];
546
+ any?: ZendeskTriggerCondition[];
547
+ };
548
+ };
549
+ }
550
+
551
+ export interface UpdateTriggerRequest {
552
+ trigger: Partial<Omit<ZendeskTrigger, 'id' | 'url' | 'created_at' | 'updated_at'>>;
553
+ }
554
+
555
+ export interface TriggerListParams {
556
+ page?: number;
557
+ per_page?: number;
558
+ active?: boolean;
559
+ category_id?: string;
560
+ sort_by?: string;
561
+ sort_order?: 'asc' | 'desc';
562
+ }
563
+
564
+ export interface ZendeskTriggerResponse {
565
+ trigger: ZendeskTrigger;
566
+ }
567
+
568
+ export interface ZendeskTriggersResponse {
569
+ triggers: ZendeskTrigger[];
570
+ next_page?: string;
571
+ previous_page?: string;
572
+ count?: number;
573
+ }
574
+
575
+ // ============================================
576
+ // Automation Types
577
+ // ============================================
578
+
579
+ export interface ZendeskAutomationAction {
580
+ field: string;
581
+ value: string | string[] | number | boolean;
582
+ }
583
+
584
+ export interface ZendeskAutomationCondition {
585
+ field: string;
586
+ operator: string;
587
+ value: string | string[] | number | boolean;
588
+ }
589
+
590
+ export interface ZendeskAutomation {
591
+ id: number;
592
+ url: string;
593
+ title: string;
594
+ active?: boolean;
595
+ position?: number;
596
+ description?: string;
597
+ created_at: string;
598
+ updated_at: string;
599
+ actions: ZendeskAutomationAction[];
600
+ conditions?: {
601
+ all?: ZendeskAutomationCondition[];
602
+ any?: ZendeskAutomationCondition[];
603
+ };
604
+ }
605
+
606
+ export interface CreateAutomationRequest {
607
+ automation: {
608
+ title: string;
609
+ active?: boolean;
610
+ actions: ZendeskAutomationAction[];
611
+ conditions?: {
612
+ all?: ZendeskAutomationCondition[];
613
+ any?: ZendeskAutomationCondition[];
614
+ };
615
+ };
616
+ }
617
+
618
+ export interface UpdateAutomationRequest {
619
+ automation: Partial<Omit<ZendeskAutomation, 'id' | 'url' | 'created_at' | 'updated_at'>>;
620
+ }
621
+
622
+ export interface AutomationListParams {
623
+ page?: number;
624
+ per_page?: number;
625
+ active?: boolean;
626
+ sort_by?: string;
627
+ sort_order?: 'asc' | 'desc';
628
+ }
629
+
630
+ export interface ZendeskAutomationResponse {
631
+ automation: ZendeskAutomation;
632
+ }
633
+
634
+ export interface ZendeskAutomationsResponse {
635
+ automations: ZendeskAutomation[];
636
+ next_page?: string;
637
+ previous_page?: string;
638
+ count?: number;
639
+ }
640
+
641
+ // ============================================
642
+ // SLA Policy Types
643
+ // ============================================
644
+
645
+ export interface ZendeskSlaPolicyMetric {
646
+ priority: 'urgent' | 'high' | 'normal' | 'low';
647
+ metric: 'first_reply_time' | 'next_reply_time' | 'periodic_update_time' | 'requester_wait_time' | 'agent_work_time' | 'pausable_update_time';
648
+ target: number;
649
+ business_hours: boolean;
650
+ }
651
+
652
+ export interface ZendeskSlaPolicy {
653
+ id: number;
654
+ url: string;
655
+ title: string;
656
+ description?: string;
657
+ position?: number;
658
+ filter?: {
659
+ all?: ZendeskViewCondition[];
660
+ any?: ZendeskViewCondition[];
661
+ };
662
+ policy_metrics?: ZendeskSlaPolicyMetric[];
663
+ created_at: string;
664
+ updated_at: string;
665
+ }
666
+
667
+ export interface CreateSlaPolicyRequest {
668
+ sla_policy: {
669
+ title: string;
670
+ description?: string;
671
+ filter?: {
672
+ all?: ZendeskViewCondition[];
673
+ any?: ZendeskViewCondition[];
674
+ };
675
+ policy_metrics?: ZendeskSlaPolicyMetric[];
676
+ };
677
+ }
678
+
679
+ export interface UpdateSlaPolicyRequest {
680
+ sla_policy: Partial<Omit<ZendeskSlaPolicy, 'id' | 'url' | 'created_at' | 'updated_at'>>;
681
+ }
682
+
683
+ export interface SlaListParams {
684
+ page?: number;
685
+ per_page?: number;
686
+ }
687
+
688
+ export interface ZendeskSlaPolicyResponse {
689
+ sla_policy: ZendeskSlaPolicy;
690
+ }
691
+
692
+ export interface ZendeskSlaPoliciesResponse {
693
+ sla_policies: ZendeskSlaPolicy[];
694
+ next_page?: string;
695
+ previous_page?: string;
696
+ count?: number;
697
+ }
698
+
699
+ // ============================================
700
+ // Webhook Types
701
+ // ============================================
702
+
703
+ export interface ZendeskWebhook {
704
+ id: string;
705
+ name: string;
706
+ status: 'active' | 'inactive';
707
+ endpoint: string;
708
+ http_method: 'GET' | 'POST' | 'PUT' | 'PATCH' | 'DELETE';
709
+ request_format: 'json' | 'xml' | 'form_encoded';
710
+ subscriptions?: string[];
711
+ signing_secret?: {
712
+ algorithm: string;
713
+ secret: string;
714
+ };
715
+ authentication?: {
716
+ type: 'none' | 'basic' | 'bearer' | 'api_key';
717
+ data?: Record<string, string>;
718
+ add_position?: 'header' | 'query_string';
719
+ };
720
+ custom_headers?: Record<string, string>;
721
+ created_at: string;
722
+ updated_at: string;
723
+ created_by: string;
724
+ updated_by: string;
725
+ }
726
+
727
+ export interface CreateWebhookRequest {
728
+ webhook: {
729
+ name: string;
730
+ status?: 'active' | 'inactive';
731
+ endpoint: string;
732
+ http_method: 'GET' | 'POST' | 'PUT' | 'PATCH' | 'DELETE';
733
+ request_format: 'json' | 'xml' | 'form_encoded';
734
+ subscriptions?: string[];
735
+ authentication?: {
736
+ type: 'none' | 'basic' | 'bearer' | 'api_key';
737
+ data?: Record<string, string>;
738
+ add_position?: 'header' | 'query_string';
739
+ };
740
+ custom_headers?: Record<string, string>;
741
+ };
742
+ }
743
+
744
+ export interface UpdateWebhookRequest {
745
+ webhook: Partial<Omit<ZendeskWebhook, 'id' | 'created_at' | 'updated_at' | 'created_by' | 'updated_by' | 'signing_secret'>>;
746
+ }
747
+
748
+ export interface WebhookListParams {
749
+ page?: number;
750
+ per_page?: number;
751
+ filter?: string;
752
+ sort?: string;
753
+ }
754
+
755
+ export interface WebhookInvocation {
756
+ id: string;
757
+ webhook_id: string;
758
+ status: 'success' | 'failure' | 'pending';
759
+ request: {
760
+ method: string;
761
+ url: string;
762
+ headers?: Record<string, string>;
763
+ body?: string;
764
+ };
765
+ response?: {
766
+ status_code: number;
767
+ headers?: Record<string, string>;
768
+ body?: string;
769
+ };
770
+ created_at: string;
771
+ completed_at?: string;
772
+ }
773
+
774
+ export interface ZendeskWebhookResponse {
775
+ webhook: ZendeskWebhook;
776
+ }
777
+
778
+ export interface ZendeskWebhooksResponse {
779
+ webhooks: ZendeskWebhook[];
780
+ next_page?: string;
781
+ previous_page?: string;
782
+ count?: number;
783
+ }
784
+
785
+ // ============================================
786
+ // Macro Types
787
+ // ============================================
788
+
789
+ export interface ZendeskMacroAction {
790
+ field: string;
791
+ value: string | string[] | number | boolean;
792
+ }
793
+
794
+ export interface ZendeskMacro {
795
+ id: number;
796
+ url: string;
797
+ title: string;
798
+ active?: boolean;
799
+ position?: number;
800
+ description?: string;
801
+ created_at: string;
802
+ updated_at: string;
803
+ actions: ZendeskMacroAction[];
804
+ restriction?: {
805
+ type: 'Group' | 'User';
806
+ id?: number;
807
+ ids?: number[];
808
+ };
809
+ }
810
+
811
+ export interface CreateMacroRequest {
812
+ macro: {
813
+ title: string;
814
+ active?: boolean;
815
+ actions: ZendeskMacroAction[];
816
+ restriction?: {
817
+ type: 'Group' | 'User';
818
+ id?: number;
819
+ ids?: number[];
820
+ };
821
+ };
822
+ }
823
+
824
+ export interface UpdateMacroRequest {
825
+ macro: Partial<Omit<ZendeskMacro, 'id' | 'url' | 'created_at' | 'updated_at'>>;
826
+ }
827
+
828
+ export interface MacroListParams {
829
+ page?: number;
830
+ per_page?: number;
831
+ active?: boolean;
832
+ category?: string;
833
+ group_id?: number;
834
+ sort_by?: string;
835
+ sort_order?: 'asc' | 'desc';
836
+ }
837
+
838
+ export interface ZendeskMacroResponse {
839
+ macro: ZendeskMacro;
840
+ }
841
+
842
+ export interface ZendeskMacrosResponse {
843
+ macros: ZendeskMacro[];
844
+ next_page?: string;
845
+ previous_page?: string;
846
+ count?: number;
847
+ }
848
+
849
+ // ============================================
850
+ // Brand Types
851
+ // ============================================
852
+
853
+ export interface ZendeskBrand {
854
+ id: number;
855
+ url: string;
856
+ name: string;
857
+ brand_url?: string;
858
+ has_help_center?: boolean;
859
+ help_center_state?: 'enabled' | 'disabled' | 'restricted';
860
+ active?: boolean;
861
+ default?: boolean;
862
+ is_deleted?: boolean;
863
+ logo?: {
864
+ id: number;
865
+ url: string;
866
+ file_name: string;
867
+ content_url: string;
868
+ content_type: string;
869
+ size: number;
870
+ };
871
+ ticket_form_ids?: number[];
872
+ subdomain: string;
873
+ host_mapping?: string;
874
+ signature_template?: string;
875
+ created_at: string;
876
+ updated_at: string;
877
+ }
878
+
879
+ export interface CreateBrandRequest {
880
+ brand: {
881
+ name: string;
882
+ subdomain: string;
883
+ brand_url?: string;
884
+ has_help_center?: boolean;
885
+ help_center_state?: 'enabled' | 'disabled' | 'restricted';
886
+ active?: boolean;
887
+ host_mapping?: string;
888
+ signature_template?: string;
889
+ };
890
+ }
891
+
892
+ export interface UpdateBrandRequest {
893
+ brand: Partial<Omit<ZendeskBrand, 'id' | 'url' | 'created_at' | 'updated_at'>>;
894
+ }
895
+
896
+ export interface BrandListParams {
897
+ page?: number;
898
+ per_page?: number;
899
+ }
900
+
901
+ export interface ZendeskBrandResponse {
902
+ brand: ZendeskBrand;
903
+ }
904
+
905
+ export interface ZendeskBrandsResponse {
906
+ brands: ZendeskBrand[];
907
+ next_page?: string;
908
+ previous_page?: string;
909
+ count?: number;
910
+ }