runline 0.32.0 → 0.34.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (521) hide show
  1. package/dist/auth/oauth2.d.ts +7 -1
  2. package/dist/auth/oauth2.js +10 -0
  3. package/dist/auth/token.d.ts +1 -0
  4. package/dist/auth/token.js +19 -1
  5. package/dist/auth/types.d.ts +22 -1
  6. package/dist/core/engine.d.ts +7 -0
  7. package/dist/core/engine.js +9 -0
  8. package/dist/credentials/policy.d.ts +53 -1
  9. package/dist/credentials/policy.js +146 -6
  10. package/dist/credentials/registry.d.ts +9 -0
  11. package/dist/credentials/registry.js +179 -22
  12. package/dist/credentials/transport.d.ts +48 -2
  13. package/dist/credentials/transport.js +248 -70
  14. package/dist/credentials/types.d.ts +167 -10
  15. package/dist/index.d.ts +5 -5
  16. package/dist/index.js +2 -2
  17. package/dist/plugin/api.d.ts +7 -0
  18. package/dist/plugin/api.js +7 -0
  19. package/dist/plugin/types.d.ts +12 -0
  20. package/dist/plugins/_shared/credentialAdapter.js +79 -15
  21. package/dist/plugins/_shared/credentials.js +389 -0
  22. package/dist/plugins/_shared/googleAuth.js +9 -40
  23. package/dist/plugins/_shared/googleCredentials.js +28 -7
  24. package/dist/plugins/_shared/microsoftAuth.js +13 -44
  25. package/dist/plugins/_shared/microsoftCredentials.js +30 -8
  26. package/dist/plugins/_shared/provider.js +2 -14
  27. package/dist/plugins/_shared/shiftCloud.js +22 -34
  28. package/dist/plugins/_shared/shiftCredentials.js +83 -0
  29. package/dist/plugins/_shared/shiftUpload.js +1 -1
  30. package/dist/plugins/actionNetwork/src/credentials.js +14 -0
  31. package/dist/plugins/actionNetwork/src/index.js +39 -50
  32. package/dist/plugins/activeCampaign/src/credentials.js +22 -0
  33. package/dist/plugins/activeCampaign/src/index.js +61 -132
  34. package/dist/plugins/adalo/src/credentials.js +16 -0
  35. package/dist/plugins/adalo/src/index.js +19 -43
  36. package/dist/plugins/affinity/src/credentials.js +19 -0
  37. package/dist/plugins/affinity/src/index.js +29 -54
  38. package/dist/plugins/agileCrm/src/credentials.js +16 -0
  39. package/dist/plugins/agileCrm/src/index.js +46 -112
  40. package/dist/plugins/airtable/src/credentials.js +19 -0
  41. package/dist/plugins/airtable/src/index.js +37 -50
  42. package/dist/plugins/airtop/src/credentials.js +20 -0
  43. package/dist/plugins/airtop/src/index.js +51 -75
  44. package/dist/plugins/apiTemplateIo/src/credentials.js +19 -0
  45. package/dist/plugins/apiTemplateIo/src/index.js +14 -31
  46. package/dist/plugins/asana/src/credentials.js +19 -0
  47. package/dist/plugins/asana/src/index.js +51 -72
  48. package/dist/plugins/autopilot/src/credentials.js +19 -0
  49. package/dist/plugins/autopilot/src/index.js +38 -45
  50. package/dist/plugins/bambooHr/src/credentials.js +16 -0
  51. package/dist/plugins/bambooHr/src/index.js +41 -67
  52. package/dist/plugins/bannerbear/src/credentials.js +19 -0
  53. package/dist/plugins/bannerbear/src/index.js +15 -27
  54. package/dist/plugins/baserow/src/credentials.js +17 -0
  55. package/dist/plugins/baserow/src/index.js +23 -49
  56. package/dist/plugins/beeminder/src/credentials.js +19 -0
  57. package/dist/plugins/beeminder/src/index.js +32 -54
  58. package/dist/plugins/bitly/src/credentials.js +19 -0
  59. package/dist/plugins/bitly/src/index.js +12 -26
  60. package/dist/plugins/bitwarden/src/credentials.js +62 -0
  61. package/dist/plugins/bitwarden/src/index.js +34 -80
  62. package/dist/plugins/box/src/credentials.js +19 -0
  63. package/dist/plugins/box/src/index.js +24 -49
  64. package/dist/plugins/brandfetch/src/credentials.js +13 -0
  65. package/dist/plugins/brandfetch/src/index.js +12 -17
  66. package/dist/plugins/brevo/src/credentials.js +19 -0
  67. package/dist/plugins/brevo/src/index.js +30 -51
  68. package/dist/plugins/bubble/src/credentials.js +28 -0
  69. package/dist/plugins/bubble/src/index.js +29 -65
  70. package/dist/plugins/chargebee/src/credentials.js +16 -0
  71. package/dist/plugins/chargebee/src/index.js +15 -45
  72. package/dist/plugins/circleci/src/credentials.js +19 -0
  73. package/dist/plugins/circleci/src/index.js +19 -39
  74. package/dist/plugins/ciscoWebex/src/credentials.js +19 -0
  75. package/dist/plugins/ciscoWebex/src/index.js +43 -61
  76. package/dist/plugins/clearbit/src/credentials.js +22 -0
  77. package/dist/plugins/clearbit/src/index.js +11 -21
  78. package/dist/plugins/clickup/src/credentials.js +19 -0
  79. package/dist/plugins/clickup/src/index.js +85 -117
  80. package/dist/plugins/clockify/src/credentials.js +19 -0
  81. package/dist/plugins/clockify/src/index.js +46 -61
  82. package/dist/plugins/cloudflare/src/credentials.js +19 -0
  83. package/dist/plugins/cloudflare/src/index.js +19 -34
  84. package/dist/plugins/cockpit/src/credentials.js +17 -0
  85. package/dist/plugins/cockpit/src/index.js +18 -31
  86. package/dist/plugins/coda/src/credentials.js +19 -0
  87. package/dist/plugins/coda/src/index.js +33 -50
  88. package/dist/plugins/coingecko/src/credentials.js +20 -0
  89. package/dist/plugins/coingecko/src/index.js +24 -34
  90. package/dist/plugins/contentful/src/credentials.js +26 -0
  91. package/dist/plugins/contentful/src/index.js +19 -40
  92. package/dist/plugins/convertkit/src/credentials.js +26 -0
  93. package/dist/plugins/convertkit/src/index.js +27 -45
  94. package/dist/plugins/copper/src/credentials.js +17 -0
  95. package/dist/plugins/copper/src/index.js +25 -47
  96. package/dist/plugins/cortex/src/credentials.js +28 -0
  97. package/dist/plugins/cortex/src/index.js +26 -49
  98. package/dist/plugins/currents/src/credentials.js +19 -0
  99. package/dist/plugins/currents/src/index.js +46 -59
  100. package/dist/plugins/customerIo/src/credentials.js +52 -0
  101. package/dist/plugins/customerIo/src/index.js +30 -58
  102. package/dist/plugins/databricks/src/credentials.js +13 -0
  103. package/dist/plugins/databricks/src/index.js +51 -103
  104. package/dist/plugins/deepl/src/credentials.js +19 -0
  105. package/dist/plugins/deepl/src/index.js +13 -39
  106. package/dist/plugins/demio/src/credentials.js +26 -0
  107. package/dist/plugins/demio/src/index.js +17 -41
  108. package/dist/plugins/dhl/src/credentials.js +13 -0
  109. package/dist/plugins/dhl/src/index.js +8 -19
  110. package/dist/plugins/discord/src/credentials.js +19 -0
  111. package/dist/plugins/discord/src/index.js +30 -58
  112. package/dist/plugins/discourse/src/credentials.js +18 -0
  113. package/dist/plugins/discourse/src/index.js +36 -53
  114. package/dist/plugins/disqus/src/credentials.js +13 -0
  115. package/dist/plugins/disqus/src/index.js +14 -32
  116. package/dist/plugins/drift/src/credentials.js +13 -0
  117. package/dist/plugins/drift/src/index.js +16 -26
  118. package/dist/plugins/dropbox/src/credentials.js +13 -0
  119. package/dist/plugins/dropbox/src/index.js +23 -30
  120. package/dist/plugins/dropcontact/src/credentials.js +13 -0
  121. package/dist/plugins/dropcontact/src/index.js +13 -18
  122. package/dist/plugins/egoi/src/credentials.js +19 -0
  123. package/dist/plugins/egoi/src/index.js +23 -38
  124. package/dist/plugins/elasticsearch/src/credentials.js +18 -0
  125. package/dist/plugins/elasticsearch/src/index.js +27 -48
  126. package/dist/plugins/elevenlabs/src/credentials.js +30 -0
  127. package/dist/plugins/elevenlabs/src/index.js +4 -1
  128. package/dist/plugins/elevenlabs/src/schemas.js +2 -1
  129. package/dist/plugins/elevenlabs/src/shared.js +74 -35
  130. package/dist/plugins/elevenlabs/src/workflows.js +2 -2
  131. package/dist/plugins/emelia/src/credentials.js +14 -0
  132. package/dist/plugins/emelia/src/index.js +19 -23
  133. package/dist/plugins/erpnext/src/credentials.js +27 -0
  134. package/dist/plugins/erpnext/src/index.js +21 -42
  135. package/dist/plugins/facebookGraph/src/credentials.js +20 -0
  136. package/dist/plugins/facebookGraph/src/index.js +39 -37
  137. package/dist/plugins/fal/src/credentials.js +14 -0
  138. package/dist/plugins/fal/src/index.js +4 -2
  139. package/dist/plugins/fal/src/shared.js +58 -63
  140. package/dist/plugins/freshdesk/src/credentials.js +20 -0
  141. package/dist/plugins/freshdesk/src/index.js +25 -46
  142. package/dist/plugins/freshservice/src/credentials.js +16 -0
  143. package/dist/plugins/freshservice/src/index.js +37 -58
  144. package/dist/plugins/freshworksCrm/src/credentials.js +16 -0
  145. package/dist/plugins/freshworksCrm/src/index.js +20 -39
  146. package/dist/plugins/getresponse/src/credentials.js +22 -0
  147. package/dist/plugins/getresponse/src/index.js +20 -32
  148. package/dist/plugins/gett/src/credentials.js +64 -0
  149. package/dist/plugins/gett/src/index.js +11 -6
  150. package/dist/plugins/gett/src/login.js +24 -0
  151. package/dist/plugins/gett/src/session.js +15 -38
  152. package/dist/plugins/gett/src/shared.js +41 -84
  153. package/dist/plugins/ghost/src/credentials.js +36 -0
  154. package/dist/plugins/ghost/src/index.js +18 -59
  155. package/dist/plugins/github/src/credentials.js +18 -0
  156. package/dist/plugins/github/src/index.js +55 -78
  157. package/dist/plugins/gitlab/src/credentials.js +24 -0
  158. package/dist/plugins/gitlab/src/index.js +29 -48
  159. package/dist/plugins/gmail/src/index.js +26 -24
  160. package/dist/plugins/gong/src/credentials.js +16 -0
  161. package/dist/plugins/gong/src/index.js +16 -32
  162. package/dist/plugins/googleAppsScript/src/index.js +108 -42
  163. package/dist/plugins/googleCalendar/src/index.js +15 -13
  164. package/dist/plugins/googleContacts/src/index.js +12 -9
  165. package/dist/plugins/googleDocs/src/index.js +2 -0
  166. package/dist/plugins/googleDocs/src/shared.js +2 -1
  167. package/dist/plugins/googleDrive/src/index.js +50 -53
  168. package/dist/plugins/googleImage/src/credentials.js +14 -0
  169. package/dist/plugins/googleImage/src/index.js +14 -25
  170. package/dist/plugins/googleSheets/src/index.js +26 -27
  171. package/dist/plugins/googleSlides/src/index.js +6 -4
  172. package/dist/plugins/googleTasks/src/index.js +13 -11
  173. package/dist/plugins/gotify/src/credentials.js +32 -0
  174. package/dist/plugins/gotify/src/index.js +14 -36
  175. package/dist/plugins/gotowebinar/src/credentials.js +13 -0
  176. package/dist/plugins/gotowebinar/src/index.js +52 -69
  177. package/dist/plugins/grafana/src/credentials.js +16 -0
  178. package/dist/plugins/grafana/src/index.js +34 -53
  179. package/dist/plugins/graphql/src/credentials.js +42 -0
  180. package/dist/plugins/graphql/src/index.js +21 -46
  181. package/dist/plugins/grist/src/credentials.js +30 -0
  182. package/dist/plugins/grist/src/index.js +14 -43
  183. package/dist/plugins/halopsa/src/credentials.js +56 -0
  184. package/dist/plugins/halopsa/src/index.js +20 -47
  185. package/dist/plugins/harvest/src/credentials.js +20 -0
  186. package/dist/plugins/harvest/src/index.js +24 -43
  187. package/dist/plugins/helpscout/src/credentials.js +13 -0
  188. package/dist/plugins/helpscout/src/index.js +26 -38
  189. package/dist/plugins/highlevel/src/credentials.js +19 -0
  190. package/dist/plugins/highlevel/src/index.js +34 -63
  191. package/dist/plugins/homeAssistant/src/credentials.js +27 -0
  192. package/dist/plugins/homeAssistant/src/index.js +34 -52
  193. package/dist/plugins/hubspot/src/credentials.js +16 -0
  194. package/dist/plugins/hubspot/src/index.js +29 -41
  195. package/dist/plugins/humanticAi/src/credentials.js +13 -0
  196. package/dist/plugins/humanticAi/src/index.js +15 -22
  197. package/dist/plugins/hunter/src/credentials.js +13 -0
  198. package/dist/plugins/hunter/src/index.js +18 -17
  199. package/dist/plugins/intercom/src/credentials.js +19 -0
  200. package/dist/plugins/intercom/src/index.js +25 -38
  201. package/dist/plugins/iterable/src/credentials.js +17 -0
  202. package/dist/plugins/iterable/src/index.js +26 -40
  203. package/dist/plugins/jenkins/src/credentials.js +16 -0
  204. package/dist/plugins/jenkins/src/index.js +22 -36
  205. package/dist/plugins/jira/src/credentials.js +16 -0
  206. package/dist/plugins/jira/src/index.js +35 -61
  207. package/dist/plugins/keap/src/credentials.js +19 -0
  208. package/dist/plugins/keap/src/index.js +43 -71
  209. package/dist/plugins/kobotoolbox/src/credentials.js +13 -0
  210. package/dist/plugins/kobotoolbox/src/index.js +46 -84
  211. package/dist/plugins/lemlist/src/credentials.js +19 -0
  212. package/dist/plugins/lemlist/src/index.js +35 -47
  213. package/dist/plugins/linear/src/attachments.js +7 -7
  214. package/dist/plugins/linear/src/comments.js +7 -7
  215. package/dist/plugins/linear/src/credentials.js +17 -0
  216. package/dist/plugins/linear/src/cycles.js +5 -5
  217. package/dist/plugins/linear/src/index.js +2 -0
  218. package/dist/plugins/linear/src/initiatives.js +6 -6
  219. package/dist/plugins/linear/src/issues.js +14 -14
  220. package/dist/plugins/linear/src/labels.js +6 -6
  221. package/dist/plugins/linear/src/organization.js +2 -2
  222. package/dist/plugins/linear/src/projects.js +12 -12
  223. package/dist/plugins/linear/src/shared.js +34 -32
  224. package/dist/plugins/linear/src/states.js +3 -3
  225. package/dist/plugins/linear/src/teams.js +4 -4
  226. package/dist/plugins/linear/src/users.js +3 -3
  227. package/dist/plugins/linear/src/views.js +5 -5
  228. package/dist/plugins/linear/src/webhooks.js +5 -5
  229. package/dist/plugins/lingvanex/src/credentials.js +13 -0
  230. package/dist/plugins/lingvanex/src/index.js +7 -9
  231. package/dist/plugins/linkedin/src/credentials.js +17 -0
  232. package/dist/plugins/linkedin/src/index.js +13 -17
  233. package/dist/plugins/lonescale/src/credentials.js +13 -0
  234. package/dist/plugins/lonescale/src/index.js +16 -26
  235. package/dist/plugins/magento/src/credentials.js +16 -0
  236. package/dist/plugins/magento/src/index.js +67 -84
  237. package/dist/plugins/mailcheck/src/credentials.js +17 -0
  238. package/dist/plugins/mailcheck/src/index.js +7 -9
  239. package/dist/plugins/mailchimp/src/credentials.js +32 -0
  240. package/dist/plugins/mailchimp/src/index.js +36 -44
  241. package/dist/plugins/mailerlite/src/credentials.js +13 -0
  242. package/dist/plugins/mailerlite/src/index.js +19 -32
  243. package/dist/plugins/mailgun/src/credentials.js +21 -0
  244. package/dist/plugins/mailgun/src/index.js +15 -21
  245. package/dist/plugins/mailjet/src/credentials.js +38 -0
  246. package/dist/plugins/mailjet/src/index.js +60 -115
  247. package/dist/plugins/mandrill/src/credentials.js +17 -0
  248. package/dist/plugins/mandrill/src/index.js +11 -12
  249. package/dist/plugins/marketstack/src/credentials.js +16 -0
  250. package/dist/plugins/marketstack/src/index.js +18 -28
  251. package/dist/plugins/matrix/src/credentials.js +19 -0
  252. package/dist/plugins/matrix/src/index.js +23 -52
  253. package/dist/plugins/mattermost/src/credentials.js +19 -0
  254. package/dist/plugins/mattermost/src/index.js +41 -73
  255. package/dist/plugins/mautic/src/credentials.js +16 -0
  256. package/dist/plugins/mautic/src/index.js +46 -62
  257. package/dist/plugins/medium/src/credentials.js +20 -0
  258. package/dist/plugins/medium/src/index.js +18 -23
  259. package/dist/plugins/messagebird/src/credentials.js +22 -0
  260. package/dist/plugins/messagebird/src/index.js +13 -18
  261. package/dist/plugins/metabase/src/credentials.js +19 -0
  262. package/dist/plugins/metabase/src/index.js +24 -40
  263. package/dist/plugins/microsoftCalendar/src/index.js +48 -12
  264. package/dist/plugins/microsoftFiles/src/index.js +90 -25
  265. package/dist/plugins/microsoftMail/src/index.js +62 -15
  266. package/dist/plugins/misp/src/credentials.js +16 -0
  267. package/dist/plugins/misp/src/index.js +60 -71
  268. package/dist/plugins/mocean/src/credentials.js +17 -0
  269. package/dist/plugins/mocean/src/index.js +11 -23
  270. package/dist/plugins/monday/src/credentials.js +14 -0
  271. package/dist/plugins/monday/src/index.js +31 -44
  272. package/dist/plugins/monicaCrm/src/credentials.js +19 -0
  273. package/dist/plugins/monicaCrm/src/index.js +25 -42
  274. package/dist/plugins/msg91/src/credentials.js +10 -0
  275. package/dist/plugins/msg91/src/index.js +15 -11
  276. package/dist/plugins/nasa/src/credentials.js +22 -0
  277. package/dist/plugins/nasa/src/index.js +24 -28
  278. package/dist/plugins/netlify/src/credentials.js +19 -0
  279. package/dist/plugins/netlify/src/index.js +27 -51
  280. package/dist/plugins/netscalerAdc/src/credentials.js +18 -0
  281. package/dist/plugins/netscalerAdc/src/index.js +16 -31
  282. package/dist/plugins/nextcloud/src/credentials.js +27 -0
  283. package/dist/plugins/nextcloud/src/index.js +55 -109
  284. package/dist/plugins/nocodb/src/credentials.js +16 -0
  285. package/dist/plugins/nocodb/src/index.js +19 -37
  286. package/dist/plugins/notion/src/credentials.js +21 -0
  287. package/dist/plugins/notion/src/index.js +25 -38
  288. package/dist/plugins/npm/src/credentials.js +19 -0
  289. package/dist/plugins/npm/src/index.js +22 -32
  290. package/dist/plugins/odoo/src/credentials.js +21 -0
  291. package/dist/plugins/odoo/src/index.js +53 -69
  292. package/dist/plugins/okta/src/credentials.js +23 -0
  293. package/dist/plugins/okta/src/index.js +30 -35
  294. package/dist/plugins/oneSimpleApi/src/credentials.js +16 -0
  295. package/dist/plugins/oneSimpleApi/src/index.js +19 -24
  296. package/dist/plugins/onfleet/src/credentials.js +23 -0
  297. package/dist/plugins/onfleet/src/index.js +42 -53
  298. package/dist/plugins/openai/src/credentials.js +13 -0
  299. package/dist/plugins/openai/src/index.js +15 -23
  300. package/dist/plugins/openweathermap/src/credentials.js +16 -0
  301. package/dist/plugins/openweathermap/src/index.js +22 -22
  302. package/dist/plugins/oura/src/credentials.js +19 -0
  303. package/dist/plugins/oura/src/index.js +13 -18
  304. package/dist/plugins/paddle/src/credentials.js +27 -0
  305. package/dist/plugins/paddle/src/index.js +20 -36
  306. package/dist/plugins/pagerduty/src/credentials.js +24 -0
  307. package/dist/plugins/pagerduty/src/index.js +30 -39
  308. package/dist/plugins/parallel/src/credentials.js +18 -0
  309. package/dist/plugins/parallel/src/index.js +16 -22
  310. package/dist/plugins/paypal/src/credentials.js +44 -0
  311. package/dist/plugins/paypal/src/index.js +14 -40
  312. package/dist/plugins/peekalink/src/credentials.js +16 -0
  313. package/dist/plugins/peekalink/src/index.js +10 -11
  314. package/dist/plugins/phantombuster/src/credentials.js +19 -0
  315. package/dist/plugins/phantombuster/src/index.js +19 -32
  316. package/dist/plugins/philipsHue/src/credentials.js +17 -0
  317. package/dist/plugins/philipsHue/src/index.js +15 -27
  318. package/dist/plugins/pipedrive/src/credentials.js +26 -0
  319. package/dist/plugins/pipedrive/src/index.js +43 -73
  320. package/dist/plugins/plaud/src/index.js +2 -1
  321. package/dist/plugins/plaud/src/shared.js +23 -19
  322. package/dist/plugins/plivo/src/credentials.js +20 -0
  323. package/dist/plugins/plivo/src/index.js +13 -19
  324. package/dist/plugins/posthog/src/credentials.js +18 -0
  325. package/dist/plugins/posthog/src/index.js +14 -20
  326. package/dist/plugins/profitwell/src/credentials.js +22 -0
  327. package/dist/plugins/profitwell/src/index.js +10 -17
  328. package/dist/plugins/pushbullet/src/credentials.js +19 -0
  329. package/dist/plugins/pushbullet/src/index.js +19 -27
  330. package/dist/plugins/pushcut/src/credentials.js +19 -0
  331. package/dist/plugins/pushcut/src/index.js +7 -8
  332. package/dist/plugins/pushover/src/credentials.js +14 -0
  333. package/dist/plugins/pushover/src/index.js +7 -12
  334. package/dist/plugins/quickbase/src/credentials.js +15 -0
  335. package/dist/plugins/quickbase/src/index.js +24 -34
  336. package/dist/plugins/quickbooks/src/credentials.js +22 -0
  337. package/dist/plugins/quickbooks/src/index.js +17 -46
  338. package/dist/plugins/raindrop/src/credentials.js +19 -0
  339. package/dist/plugins/raindrop/src/index.js +30 -32
  340. package/dist/plugins/recraft/src/credentials.js +13 -0
  341. package/dist/plugins/recraft/src/index.js +38 -27
  342. package/dist/plugins/reddit/src/credentials.js +26 -0
  343. package/dist/plugins/reddit/src/index.js +30 -34
  344. package/dist/plugins/replicate/src/credentials.js +23 -0
  345. package/dist/plugins/replicate/src/index.js +17 -27
  346. package/dist/plugins/rocketchat/src/credentials.js +17 -0
  347. package/dist/plugins/rocketchat/src/index.js +8 -19
  348. package/dist/plugins/rundeck/src/credentials.js +16 -0
  349. package/dist/plugins/rundeck/src/index.js +12 -28
  350. package/dist/plugins/salesforce/src/credentials.js +73 -0
  351. package/dist/plugins/salesforce/src/index.js +6 -0
  352. package/dist/plugins/salesforce/src/metadata.js +3 -16
  353. package/dist/plugins/salesforce/src/shared.js +25 -100
  354. package/dist/plugins/salesforce/src/sobjects.js +10 -9
  355. package/dist/plugins/salesmate/src/credentials.js +17 -0
  356. package/dist/plugins/salesmate/src/index.js +20 -37
  357. package/dist/plugins/securityScorecard/src/credentials.js +22 -0
  358. package/dist/plugins/securityScorecard/src/index.js +24 -37
  359. package/dist/plugins/segment/src/credentials.js +16 -0
  360. package/dist/plugins/segment/src/index.js +12 -16
  361. package/dist/plugins/sendgrid/src/credentials.js +13 -0
  362. package/dist/plugins/sendgrid/src/index.js +31 -35
  363. package/dist/plugins/sendy/src/credentials.js +18 -0
  364. package/dist/plugins/sendy/src/index.js +18 -24
  365. package/dist/plugins/sentry/src/credentials.js +16 -0
  366. package/dist/plugins/sentry/src/index.js +30 -98
  367. package/dist/plugins/servicenow/src/credentials.js +13 -0
  368. package/dist/plugins/servicenow/src/index.js +22 -41
  369. package/dist/plugins/shiftAtlas/src/graph.js +2 -2
  370. package/dist/plugins/shiftAtlas/src/index.js +2 -0
  371. package/dist/plugins/shiftAtlas/src/shared.js +3 -1
  372. package/dist/plugins/shiftBwm/src/collections.js +201 -0
  373. package/dist/plugins/shiftBwm/src/index.js +35 -0
  374. package/dist/plugins/shiftBwm/src/records.js +180 -0
  375. package/dist/plugins/shiftBwm/src/shared.js +168 -0
  376. package/dist/plugins/shiftBwm/src/vendor/client.js +227 -0
  377. package/dist/plugins/shiftBwm/src/vendor/contracts.js +59 -0
  378. package/dist/plugins/shiftBwm/src/vendor/models.js +525 -0
  379. package/dist/plugins/shiftCrm/src/access.js +2 -2
  380. package/dist/plugins/shiftCrm/src/accounts.js +3 -3
  381. package/dist/plugins/shiftCrm/src/activities.js +3 -3
  382. package/dist/plugins/shiftCrm/src/credentials.js +6 -0
  383. package/dist/plugins/shiftCrm/src/index.js +2 -0
  384. package/dist/plugins/shiftCrm/src/opportunities.js +3 -3
  385. package/dist/plugins/shiftCrm/src/people.js +3 -3
  386. package/dist/plugins/shiftCrm/src/records.js +2 -2
  387. package/dist/plugins/shiftCrm/src/shared.js +2 -1
  388. package/dist/plugins/shiftCrm/src/tasks.js +3 -3
  389. package/dist/plugins/shiftObjects/src/credentials.js +2 -0
  390. package/dist/plugins/shiftObjects/src/index.js +2 -0
  391. package/dist/plugins/shiftObjects/src/objects.js +3 -3
  392. package/dist/plugins/shiftOcr/src/credentials.js +8 -0
  393. package/dist/plugins/shiftOcr/src/index.js +5 -2
  394. package/dist/plugins/shiftPages/src/index.js +2 -0
  395. package/dist/plugins/shiftPages/src/pages.js +5 -3
  396. package/dist/plugins/shiftPages/src/shared.js +3 -1
  397. package/dist/plugins/shiftTranscription/src/index.js +2 -0
  398. package/dist/plugins/shiftTranscription/src/shared.js +11 -1
  399. package/dist/plugins/shiftTranscription/src/transcription.js +3 -2
  400. package/dist/plugins/shiftWork/src/index.js +2 -0
  401. package/dist/plugins/shiftWork/src/issue-views.js +5 -5
  402. package/dist/plugins/shiftWork/src/issues.js +11 -7
  403. package/dist/plugins/shiftWork/src/projects.js +3 -3
  404. package/dist/plugins/shiftWork/src/shared.js +3 -1
  405. package/dist/plugins/shopify/src/credentials.js +16 -0
  406. package/dist/plugins/shopify/src/index.js +32 -59
  407. package/dist/plugins/signl4/src/credentials.js +17 -0
  408. package/dist/plugins/signl4/src/index.js +28 -29
  409. package/dist/plugins/slack/src/credentials.js +19 -0
  410. package/dist/plugins/slack/src/index.js +51 -60
  411. package/dist/plugins/sms77/src/credentials.js +17 -0
  412. package/dist/plugins/sms77/src/index.js +11 -16
  413. package/dist/plugins/splunk/src/credentials.js +19 -0
  414. package/dist/plugins/splunk/src/index.js +32 -74
  415. package/dist/plugins/spotify/src/credentials.js +19 -0
  416. package/dist/plugins/spotify/src/index.js +40 -55
  417. package/dist/plugins/stackby/src/credentials.js +13 -0
  418. package/dist/plugins/stackby/src/index.js +14 -23
  419. package/dist/plugins/steel/src/auth.js +27 -0
  420. package/dist/plugins/steel/src/browser.js +4 -3
  421. package/dist/plugins/steel/src/captchas.js +4 -3
  422. package/dist/plugins/steel/src/extensions.js +3 -2
  423. package/dist/plugins/steel/src/files.js +9 -10
  424. package/dist/plugins/steel/src/index.js +2 -0
  425. package/dist/plugins/steel/src/page/tools.js +3 -3
  426. package/dist/plugins/steel/src/profiles.js +4 -3
  427. package/dist/plugins/steel/src/sessions.js +13 -13
  428. package/dist/plugins/steel/src/shared.js +21 -51
  429. package/dist/plugins/storyblok/src/credentials.js +37 -0
  430. package/dist/plugins/storyblok/src/index.js +22 -66
  431. package/dist/plugins/strapi/src/credentials.js +71 -0
  432. package/dist/plugins/strapi/src/index.js +36 -70
  433. package/dist/plugins/strava/src/credentials.js +19 -0
  434. package/dist/plugins/strava/src/index.js +16 -33
  435. package/dist/plugins/stripe/src/credentials.js +19 -0
  436. package/dist/plugins/stripe/src/index.js +44 -58
  437. package/dist/plugins/supabase/src/credentials.js +30 -0
  438. package/dist/plugins/supabase/src/index.js +18 -40
  439. package/dist/plugins/syncromsp/src/credentials.js +16 -0
  440. package/dist/plugins/syncromsp/src/index.js +37 -70
  441. package/dist/plugins/tapfiliate/src/credentials.js +13 -0
  442. package/dist/plugins/tapfiliate/src/index.js +21 -31
  443. package/dist/plugins/telegram/src/credentials.js +20 -0
  444. package/dist/plugins/telegram/src/index.js +31 -39
  445. package/dist/plugins/thehive/src/credentials.js +14 -0
  446. package/dist/plugins/thehive/src/index.js +33 -50
  447. package/dist/plugins/thehiveProject/src/credentials.js +16 -0
  448. package/dist/plugins/thehiveProject/src/index.js +53 -122
  449. package/dist/plugins/todoist/src/credentials.js +26 -0
  450. package/dist/plugins/todoist/src/index.js +49 -79
  451. package/dist/plugins/together/src/credentials.js +16 -0
  452. package/dist/plugins/together/src/index.js +30 -32
  453. package/dist/plugins/travisci/src/credentials.js +24 -0
  454. package/dist/plugins/travisci/src/index.js +16 -30
  455. package/dist/plugins/trello/src/credentials.js +29 -0
  456. package/dist/plugins/trello/src/index.js +49 -64
  457. package/dist/plugins/twake/src/credentials.js +16 -0
  458. package/dist/plugins/twake/src/index.js +8 -10
  459. package/dist/plugins/twilio/src/credentials.js +23 -0
  460. package/dist/plugins/twilio/src/index.js +12 -26
  461. package/dist/plugins/twist/src/credentials.js +13 -0
  462. package/dist/plugins/twist/src/index.js +32 -44
  463. package/dist/plugins/twitter/src/credentials.js +16 -0
  464. package/dist/plugins/twitter/src/index.js +25 -37
  465. package/dist/plugins/typesafe/src/credentials.js +28 -0
  466. package/dist/plugins/typesafe/src/index.js +3 -1
  467. package/dist/plugins/typesafe/src/shared.js +23 -35
  468. package/dist/plugins/unleashedSoftware/src/credentials.js +21 -0
  469. package/dist/plugins/unleashedSoftware/src/index.js +13 -37
  470. package/dist/plugins/uplead/src/credentials.js +16 -0
  471. package/dist/plugins/uplead/src/index.js +11 -16
  472. package/dist/plugins/uproc/src/credentials.js +14 -0
  473. package/dist/plugins/uproc/src/index.js +7 -10
  474. package/dist/plugins/uptimerobot/src/credentials.js +14 -0
  475. package/dist/plugins/uptimerobot/src/index.js +28 -39
  476. package/dist/plugins/urlscanio/src/credentials.js +13 -0
  477. package/dist/plugins/urlscanio/src/index.js +13 -22
  478. package/dist/plugins/vercel/src/credentials.js +19 -0
  479. package/dist/plugins/vercel/src/deployments.js +27 -11
  480. package/dist/plugins/vercel/src/env.js +31 -12
  481. package/dist/plugins/vercel/src/index.js +2 -0
  482. package/dist/plugins/vercel/src/projects.js +6 -3
  483. package/dist/plugins/vercel/src/shared.js +32 -37
  484. package/dist/plugins/vero/src/credentials.js +17 -0
  485. package/dist/plugins/vero/src/index.js +18 -21
  486. package/dist/plugins/vonage/src/credentials.js +17 -0
  487. package/dist/plugins/vonage/src/index.js +14 -18
  488. package/dist/plugins/wekan/src/credentials.js +16 -0
  489. package/dist/plugins/wekan/src/index.js +33 -46
  490. package/dist/plugins/wolt/src/account.js +6 -0
  491. package/dist/plugins/wolt/src/catalog.js +2 -2
  492. package/dist/plugins/wolt/src/credentials.js +64 -0
  493. package/dist/plugins/wolt/src/index.js +8 -3
  494. package/dist/plugins/wolt/src/orders.js +2 -2
  495. package/dist/plugins/wolt/src/public.js +91 -0
  496. package/dist/plugins/wolt/src/shared.js +49 -158
  497. package/dist/plugins/woocommerce/src/credentials.js +16 -0
  498. package/dist/plugins/woocommerce/src/index.js +19 -37
  499. package/dist/plugins/wordpress/src/credentials.js +16 -0
  500. package/dist/plugins/wordpress/src/index.js +23 -42
  501. package/dist/plugins/xai/src/credentials.js +13 -0
  502. package/dist/plugins/xai/src/index.js +31 -30
  503. package/dist/plugins/xero/src/credentials.js +17 -0
  504. package/dist/plugins/xero/src/index.js +19 -36
  505. package/dist/plugins/yourls/src/credentials.js +17 -0
  506. package/dist/plugins/yourls/src/index.js +13 -23
  507. package/dist/plugins/zammad/src/credentials.js +15 -0
  508. package/dist/plugins/zammad/src/index.js +27 -47
  509. package/dist/plugins/zendesk/src/credentials.js +26 -0
  510. package/dist/plugins/zendesk/src/index.js +29 -48
  511. package/dist/plugins/zoho/src/credentials.js +17 -0
  512. package/dist/plugins/zoho/src/index.js +18 -38
  513. package/dist/plugins/zoom/src/credentials.js +19 -0
  514. package/dist/plugins/zoom/src/index.js +15 -30
  515. package/dist/plugins/zulip/src/credentials.js +16 -0
  516. package/dist/plugins/zulip/src/index.js +36 -42
  517. package/dist/sdk.d.ts +8 -0
  518. package/dist/sdk.js +3 -0
  519. package/package.json +3 -2
  520. package/dist/plugins/_shared/authedFetch.js +0 -33
  521. package/dist/plugins/_shared/tokenRefresh.js +0 -41
@@ -0,0 +1,16 @@
1
+ import { staticCredential } from "../../_shared/credentials.js";
2
+ /**
3
+ * A private-app access token, sent as a bearer to HubSpot's one API
4
+ * origin: CRM v3 objects, legacy v1 lists and engagements, and forms.
5
+ */
6
+ export const hubspotCredential = staticCredential({
7
+ id: "hubspot",
8
+ auth: { kind: "bearer" },
9
+ local: { secret: "accessToken" },
10
+ targets: {
11
+ api: {
12
+ baseUrl: "https://api.hubapi.com/",
13
+ methods: ["GET", "POST", "PATCH", "DELETE"],
14
+ },
15
+ },
16
+ });
@@ -1,30 +1,18 @@
1
- const BASE_URL = "https://api.hubapi.com";
2
- async function apiRequest(token, method, endpoint, body, qs) {
3
- const url = new URL(`${BASE_URL}${endpoint}`);
4
- if (qs) {
5
- for (const [k, v] of Object.entries(qs)) {
6
- if (v !== undefined && v !== null)
7
- url.searchParams.set(k, String(v));
8
- }
9
- }
10
- const opts = {
1
+ import { credentialJson, pathSegment } from "../../_shared/credentials.js";
2
+ import { hubspotCredential } from "./credentials.js";
3
+ function apiRequest(ctx, method, path, body, query) {
4
+ return credentialJson(ctx, hubspotCredential, "hubspot", {
5
+ target: "api",
6
+ path,
11
7
  method,
12
- headers: {
13
- Authorization: `Bearer ${token}`,
14
- "Content-Type": "application/json",
15
- },
16
- };
17
- if (body &&
18
- Object.keys(body).length > 0 &&
19
- method !== "GET" &&
20
- method !== "DELETE")
21
- opts.body = JSON.stringify(body);
22
- const res = await fetch(url.toString(), opts);
23
- if (!res.ok)
24
- throw new Error(`HubSpot API error ${res.status}: ${await res.text()}`);
25
- if (res.status === 204)
26
- return { success: true };
27
- return res.json();
8
+ query,
9
+ ...(body &&
10
+ Object.keys(body).length > 0 &&
11
+ method !== "GET" &&
12
+ method !== "DELETE"
13
+ ? { json: body }
14
+ : {}),
15
+ });
28
16
  }
29
17
  export default function hubspot(rl) {
30
18
  rl.setName("hubspot");
@@ -37,7 +25,7 @@ export default function hubspot(rl) {
37
25
  env: "HUBSPOT_ACCESS_TOKEN",
38
26
  },
39
27
  });
40
- const tok = (ctx) => ctx.connection.config.accessToken;
28
+ rl.setCredential(hubspotCredential);
41
29
  // Helper for CRM objects (contacts, companies, deals, tickets)
42
30
  function registerCrmObject(resource, objectType) {
43
31
  rl.registerAction(`${resource}.create`, {
@@ -51,7 +39,7 @@ export default function hubspot(rl) {
51
39
  },
52
40
  },
53
41
  async execute(input, ctx) {
54
- return apiRequest(tok(ctx), "POST", `/crm/v3/objects/${objectType}`, {
42
+ return apiRequest(ctx, "POST", `crm/v3/objects/${objectType}`, {
55
43
  properties: input
56
44
  .properties,
57
45
  });
@@ -73,7 +61,7 @@ export default function hubspot(rl) {
73
61
  const qs = {};
74
62
  if (properties && Array.isArray(properties))
75
63
  qs.properties = properties.join(",");
76
- return apiRequest(tok(ctx), "GET", `/crm/v3/objects/${objectType}/${id}`, undefined, qs);
64
+ return apiRequest(ctx, "GET", `crm/v3/objects/${objectType}/${pathSegment(id)}`, undefined, qs);
77
65
  },
78
66
  });
79
67
  rl.registerAction(`${resource}.list`, {
@@ -105,7 +93,7 @@ export default function hubspot(rl) {
105
93
  qs.after = after;
106
94
  if (properties && Array.isArray(properties))
107
95
  qs.properties = properties.join(",");
108
- return apiRequest(tok(ctx), "GET", `/crm/v3/objects/${objectType}`, undefined, qs);
96
+ return apiRequest(ctx, "GET", `crm/v3/objects/${objectType}`, undefined, qs);
109
97
  },
110
98
  });
111
99
  rl.registerAction(`${resource}.update`, {
@@ -121,7 +109,7 @@ export default function hubspot(rl) {
121
109
  },
122
110
  async execute(input, ctx) {
123
111
  const { id, properties } = input;
124
- return apiRequest(tok(ctx), "PATCH", `/crm/v3/objects/${objectType}/${id}`, { properties });
112
+ return apiRequest(ctx, "PATCH", `crm/v3/objects/${objectType}/${pathSegment(id)}`, { properties });
125
113
  },
126
114
  });
127
115
  rl.registerAction(`${resource}.delete`, {
@@ -131,7 +119,7 @@ export default function hubspot(rl) {
131
119
  id: { type: "string", required: true, description: `${resource} ID` },
132
120
  },
133
121
  async execute(input, ctx) {
134
- await apiRequest(tok(ctx), "DELETE", `/crm/v3/objects/${objectType}/${input.id}`);
122
+ await apiRequest(ctx, "DELETE", `crm/v3/objects/${objectType}/${pathSegment(input.id)}`);
135
123
  return { success: true };
136
124
  },
137
125
  });
@@ -161,7 +149,7 @@ export default function hubspot(rl) {
161
149
  body.limit = limit;
162
150
  if (after)
163
151
  body.after = after;
164
- return apiRequest(tok(ctx), "POST", `/crm/v3/objects/${objectType}/search`, body);
152
+ return apiRequest(ctx, "POST", `crm/v3/objects/${objectType}/search`, body);
165
153
  },
166
154
  });
167
155
  }
@@ -183,7 +171,7 @@ export default function hubspot(rl) {
183
171
  },
184
172
  async execute(input, ctx) {
185
173
  const { listId, contactIds } = input;
186
- return apiRequest(tok(ctx), "POST", `/contacts/v1/lists/${listId}/add`, {
174
+ return apiRequest(ctx, "POST", `contacts/v1/lists/${pathSegment(listId)}/add`, {
187
175
  vids: contactIds,
188
176
  });
189
177
  },
@@ -201,7 +189,7 @@ export default function hubspot(rl) {
201
189
  },
202
190
  async execute(input, ctx) {
203
191
  const { listId, contactIds } = input;
204
- return apiRequest(tok(ctx), "POST", `/contacts/v1/lists/${listId}/remove`, { vids: contactIds });
192
+ return apiRequest(ctx, "POST", `contacts/v1/lists/${pathSegment(listId)}/remove`, { vids: contactIds });
205
193
  },
206
194
  });
207
195
  // ── Engagement ──────────────────────────────────────
@@ -232,7 +220,7 @@ export default function hubspot(rl) {
232
220
  };
233
221
  if (associations)
234
222
  body.associations = associations;
235
- return apiRequest(tok(ctx), "POST", "/engagements/v1/engagements", body);
223
+ return apiRequest(ctx, "POST", "engagements/v1/engagements", body);
236
224
  },
237
225
  });
238
226
  rl.registerAction("engagement.get", {
@@ -246,7 +234,7 @@ export default function hubspot(rl) {
246
234
  },
247
235
  },
248
236
  async execute(input, ctx) {
249
- return apiRequest(tok(ctx), "GET", `/engagements/v1/engagements/${input.engagementId}`);
237
+ return apiRequest(ctx, "GET", `engagements/v1/engagements/${pathSegment(input.engagementId)}`);
250
238
  },
251
239
  });
252
240
  rl.registerAction("engagement.list", {
@@ -263,7 +251,7 @@ export default function hubspot(rl) {
263
251
  qs.limit = limit;
264
252
  if (offset)
265
253
  qs.offset = offset;
266
- return apiRequest(tok(ctx), "GET", "/engagements/v1/engagements/paged", undefined, qs);
254
+ return apiRequest(ctx, "GET", "engagements/v1/engagements/paged", undefined, qs);
267
255
  },
268
256
  });
269
257
  rl.registerAction("engagement.delete", {
@@ -277,7 +265,7 @@ export default function hubspot(rl) {
277
265
  },
278
266
  },
279
267
  async execute(input, ctx) {
280
- await apiRequest(tok(ctx), "DELETE", `/engagements/v1/engagements/${input.engagementId}`);
268
+ await apiRequest(ctx, "DELETE", `engagements/v1/engagements/${pathSegment(input.engagementId)}`);
281
269
  return { success: true };
282
270
  },
283
271
  });
@@ -308,7 +296,7 @@ export default function hubspot(rl) {
308
296
  const body = { fields };
309
297
  if (context)
310
298
  body.context = context;
311
- return apiRequest(tok(ctx), "POST", `/submissions/v3/integration/secure/submit/${portalId}/${formId}`, body);
299
+ return apiRequest(ctx, "POST", `submissions/v3/integration/secure/submit/${pathSegment(portalId)}/${pathSegment(formId)}`, body);
312
300
  },
313
301
  });
314
302
  rl.registerAction("form.getFields", {
@@ -318,7 +306,7 @@ export default function hubspot(rl) {
318
306
  formId: { type: "string", required: true, description: "Form GUID" },
319
307
  },
320
308
  async execute(input, ctx) {
321
- return apiRequest(tok(ctx), "GET", `/forms/v2/fields/${input.formId}`);
309
+ return apiRequest(ctx, "GET", `forms/v2/fields/${pathSegment(input.formId)}`);
322
310
  },
323
311
  });
324
312
  }
@@ -0,0 +1,13 @@
1
+ import { staticCredential } from "../../_shared/credentials.js";
2
+ /** An API key, appended by the transport as the apikey query parameter. */
3
+ export const humanticAiCredential = staticCredential({
4
+ id: "humanticAi",
5
+ auth: { kind: "queryKey", param: "apikey" },
6
+ local: { secret: "apiKey" },
7
+ targets: {
8
+ api: {
9
+ baseUrl: "https://api.humantic.ai/v1/",
10
+ methods: ["GET", "POST"],
11
+ },
12
+ },
13
+ });
@@ -1,27 +1,20 @@
1
- const BASE_URL = "https://api.humantic.ai/v1";
2
- async function apiRequest(apiKey, method, endpoint, body, qs) {
3
- const url = new URL(`${BASE_URL}${endpoint}`);
4
- url.searchParams.set("apikey", apiKey);
5
- if (qs) {
6
- for (const [k, v] of Object.entries(qs)) {
7
- if (v !== undefined && v !== null)
8
- url.searchParams.set(k, String(v));
9
- }
10
- }
11
- const opts = {
1
+ import { credentialJson } from "../../_shared/credentials.js";
2
+ import { humanticAiCredential } from "./credentials.js";
3
+ function apiRequest(ctx, method, path, body, qs) {
4
+ return credentialJson(ctx, humanticAiCredential, "humanticAi", {
5
+ target: "api",
6
+ path,
12
7
  method,
13
- headers: { "Content-Type": "application/json" },
14
- };
15
- if (body && Object.keys(body).length > 0 && method !== "GET")
16
- opts.body = JSON.stringify(body);
17
- const res = await fetch(url.toString(), opts);
18
- if (!res.ok)
19
- throw new Error(`Humantic AI error ${res.status}: ${await res.text()}`);
20
- return res.json();
8
+ query: qs,
9
+ ...(body && Object.keys(body).length > 0 && method !== "GET"
10
+ ? { json: body }
11
+ : {}),
12
+ });
21
13
  }
22
14
  export default function humanticAi(rl) {
23
15
  rl.setName("humanticAi");
24
16
  rl.setVersion("0.1.0");
17
+ rl.setCredential(humanticAiCredential);
25
18
  rl.setConnectionSchema({
26
19
  apiKey: {
27
20
  type: "string",
@@ -57,7 +50,7 @@ export default function humanticAi(rl) {
57
50
  body.linkedin_url = linkedinUrl;
58
51
  if (text)
59
52
  body.text = text;
60
- return apiRequest(ctx.connection.config.apiKey, "POST", "/user-profile/create", body);
53
+ return apiRequest(ctx, "POST", "user-profile/create", body);
61
54
  },
62
55
  });
63
56
  rl.registerAction("profile.get", {
@@ -80,7 +73,7 @@ export default function humanticAi(rl) {
80
73
  const qs = { userid: userId };
81
74
  if (persona)
82
75
  qs.persona = persona;
83
- return apiRequest(ctx.connection.config.apiKey, "GET", "/user-profile", undefined, qs);
76
+ return apiRequest(ctx, "GET", "user-profile", undefined, qs);
84
77
  },
85
78
  });
86
79
  rl.registerAction("profile.update", {
@@ -106,7 +99,7 @@ export default function humanticAi(rl) {
106
99
  body.text = text;
107
100
  if (linkedinUrl)
108
101
  body.linkedin_url = linkedinUrl;
109
- return apiRequest(ctx.connection.config.apiKey, "POST", "/user-profile/create", body);
102
+ return apiRequest(ctx, "POST", "user-profile/create", body);
110
103
  },
111
104
  });
112
105
  }
@@ -0,0 +1,13 @@
1
+ import { staticCredential } from "../../_shared/credentials.js";
2
+ /**
3
+ * An API key, appended by the transport as the api_key query parameter.
4
+ * Callers may never supply api_key themselves; every action is a GET read.
5
+ */
6
+ export const hunterCredential = staticCredential({
7
+ id: "hunter",
8
+ auth: { kind: "queryKey", param: "api_key" },
9
+ local: { secret: "apiKey" },
10
+ targets: {
11
+ api: { baseUrl: "https://api.hunter.io/v2/", methods: ["GET"] },
12
+ },
13
+ });
@@ -1,21 +1,16 @@
1
- const BASE_URL = "https://api.hunter.io/v2";
2
- async function apiRequest(apiKey, endpoint, qs) {
3
- const url = new URL(`${BASE_URL}${endpoint}`);
4
- url.searchParams.set("api_key", apiKey);
5
- if (qs) {
6
- for (const [k, v] of Object.entries(qs)) {
7
- if (v !== undefined && v !== null)
8
- url.searchParams.set(k, String(v));
9
- }
10
- }
11
- const res = await fetch(url.toString());
12
- if (!res.ok)
13
- throw new Error(`Hunter API error ${res.status}: ${await res.text()}`);
14
- return res.json();
1
+ import { credentialJson } from "../../_shared/credentials.js";
2
+ import { hunterCredential } from "./credentials.js";
3
+ function apiRequest(ctx, path, qs) {
4
+ return credentialJson(ctx, hunterCredential, "hunter", {
5
+ target: "api",
6
+ path,
7
+ query: qs,
8
+ });
15
9
  }
16
10
  export default function hunter(rl) {
17
11
  rl.setName("hunter");
18
12
  rl.setVersion("0.1.0");
13
+ rl.setCredential(hunterCredential);
19
14
  rl.setConnectionSchema({
20
15
  apiKey: {
21
16
  type: "string",
@@ -47,7 +42,7 @@ export default function hunter(rl) {
47
42
  qs.type = type;
48
43
  if (limit)
49
44
  qs.limit = limit;
50
- const data = (await apiRequest(ctx.connection.config.apiKey, "/domain-search", qs));
45
+ const data = (await apiRequest(ctx, "domain-search", qs));
51
46
  return data.data;
52
47
  },
53
48
  });
@@ -61,7 +56,11 @@ export default function hunter(rl) {
61
56
  },
62
57
  async execute(input, ctx) {
63
58
  const { domain, firstName, lastName } = input;
64
- const data = (await apiRequest(ctx.connection.config.apiKey, "/email-finder", { domain, first_name: firstName, last_name: lastName }));
59
+ const data = (await apiRequest(ctx, "email-finder", {
60
+ domain,
61
+ first_name: firstName,
62
+ last_name: lastName,
63
+ }));
65
64
  return data.data;
66
65
  },
67
66
  });
@@ -72,7 +71,9 @@ export default function hunter(rl) {
72
71
  email: { type: "string", required: true, description: "Email to verify" },
73
72
  },
74
73
  async execute(input, ctx) {
75
- const data = (await apiRequest(ctx.connection.config.apiKey, "/email-verifier", { email: input.email }));
74
+ const data = (await apiRequest(ctx, "email-verifier", {
75
+ email: input.email,
76
+ }));
76
77
  return data.data;
77
78
  },
78
79
  });
@@ -0,0 +1,19 @@
1
+ import { staticCredential } from "../../_shared/credentials.js";
2
+ /** An access token, sent as a bearer to Intercom's one API origin. */
3
+ export const intercomCredential = staticCredential({
4
+ id: "intercom",
5
+ auth: { kind: "bearer" },
6
+ local: { secret: "accessToken" },
7
+ targets: {
8
+ api: {
9
+ baseUrl: "https://api.intercom.io/",
10
+ methods: ["GET", "POST", "PUT", "DELETE"],
11
+ },
12
+ },
13
+ probe: {
14
+ target: "api",
15
+ path: "me",
16
+ method: "GET",
17
+ acceptedStatuses: [200],
18
+ },
19
+ });
@@ -1,35 +1,23 @@
1
- const BASE_URL = "https://api.intercom.io";
2
- async function apiRequest(token, method, endpoint, body, qs) {
3
- const url = new URL(`${BASE_URL}${endpoint}`);
4
- if (qs) {
5
- for (const [k, v] of Object.entries(qs)) {
6
- if (v !== undefined && v !== null)
7
- url.searchParams.set(k, String(v));
8
- }
9
- }
10
- const opts = {
1
+ import { credentialJson, pathSegment } from "../../_shared/credentials.js";
2
+ import { intercomCredential } from "./credentials.js";
3
+ function api(ctx, method, path, body, qs) {
4
+ return credentialJson(ctx, intercomCredential, "intercom", {
5
+ target: "api",
6
+ path,
11
7
  method,
12
- headers: {
13
- Authorization: `Bearer ${token}`,
14
- "Content-Type": "application/json",
15
- Accept: "application/json",
16
- },
17
- };
18
- if (body &&
19
- Object.keys(body).length > 0 &&
20
- method !== "GET" &&
21
- method !== "DELETE")
22
- opts.body = JSON.stringify(body);
23
- const res = await fetch(url.toString(), opts);
24
- if (!res.ok)
25
- throw new Error(`Intercom API error ${res.status}: ${await res.text()}`);
26
- if (res.status === 204)
27
- return { success: true };
28
- return res.json();
8
+ query: qs,
9
+ ...(body &&
10
+ Object.keys(body).length > 0 &&
11
+ method !== "GET" &&
12
+ method !== "DELETE"
13
+ ? { json: body }
14
+ : {}),
15
+ });
29
16
  }
30
17
  export default function intercom(rl) {
31
18
  rl.setName("intercom");
32
19
  rl.setVersion("0.1.0");
20
+ rl.setCredential(intercomCredential);
33
21
  rl.setConnectionSchema({
34
22
  accessToken: {
35
23
  type: "string",
@@ -38,7 +26,6 @@ export default function intercom(rl) {
38
26
  env: "INTERCOM_ACCESS_TOKEN",
39
27
  },
40
28
  });
41
- const tok = (ctx) => ctx.connection.config.accessToken;
42
29
  // ── Contact (unified leads + users in v2) ───────────
43
30
  rl.registerAction("contact.create", {
44
31
  access: "write",
@@ -72,7 +59,7 @@ export default function intercom(rl) {
72
59
  body.external_id = externalId;
73
60
  if (customAttributes)
74
61
  body.custom_attributes = customAttributes;
75
- return apiRequest(tok(ctx), "POST", "/contacts", body);
62
+ return api(ctx, "POST", "contacts", body);
76
63
  },
77
64
  });
78
65
  rl.registerAction("contact.get", {
@@ -82,7 +69,7 @@ export default function intercom(rl) {
82
69
  contactId: { type: "string", required: true, description: "Contact ID" },
83
70
  },
84
71
  async execute(input, ctx) {
85
- return apiRequest(tok(ctx), "GET", `/contacts/${input.contactId}`);
72
+ return api(ctx, "GET", `contacts/${pathSegment(input.contactId)}`);
86
73
  },
87
74
  });
88
75
  rl.registerAction("contact.list", {
@@ -103,7 +90,7 @@ export default function intercom(rl) {
103
90
  qs.per_page = limit;
104
91
  if (startingAfter)
105
92
  qs.starting_after = startingAfter;
106
- return apiRequest(tok(ctx), "GET", "/contacts", undefined, qs);
93
+ return api(ctx, "GET", "contacts", undefined, qs);
107
94
  },
108
95
  });
109
96
  rl.registerAction("contact.update", {
@@ -131,7 +118,7 @@ export default function intercom(rl) {
131
118
  body.phone = phone;
132
119
  if (customAttributes)
133
120
  body.custom_attributes = customAttributes;
134
- return apiRequest(tok(ctx), "PUT", `/contacts/${contactId}`, body);
121
+ return api(ctx, "PUT", `contacts/${pathSegment(contactId)}`, body);
135
122
  },
136
123
  });
137
124
  rl.registerAction("contact.delete", {
@@ -141,7 +128,7 @@ export default function intercom(rl) {
141
128
  contactId: { type: "string", required: true, description: "Contact ID" },
142
129
  },
143
130
  async execute(input, ctx) {
144
- return apiRequest(tok(ctx), "DELETE", `/contacts/${input.contactId}`);
131
+ return api(ctx, "DELETE", `contacts/${pathSegment(input.contactId)}`);
145
132
  },
146
133
  });
147
134
  rl.registerAction("contact.search", {
@@ -164,7 +151,7 @@ export default function intercom(rl) {
164
151
  const body = { query };
165
152
  if (limit)
166
153
  body.pagination = { per_page: limit };
167
- return apiRequest(tok(ctx), "POST", "/contacts/search", body);
154
+ return api(ctx, "POST", "contacts/search", body);
168
155
  },
169
156
  });
170
157
  // ── Company ─────────────────────────────────────────
@@ -194,7 +181,7 @@ export default function intercom(rl) {
194
181
  body.plan = plan;
195
182
  if (customAttributes)
196
183
  body.custom_attributes = customAttributes;
197
- return apiRequest(tok(ctx), "POST", "/companies", body);
184
+ return api(ctx, "POST", "companies", body);
198
185
  },
199
186
  });
200
187
  rl.registerAction("company.get", {
@@ -208,7 +195,7 @@ export default function intercom(rl) {
208
195
  },
209
196
  },
210
197
  async execute(input, ctx) {
211
- return apiRequest(tok(ctx), "GET", `/companies/${input.companyId}`);
198
+ return api(ctx, "GET", `companies/${pathSegment(input.companyId)}`);
212
199
  },
213
200
  });
214
201
  rl.registerAction("company.list", {
@@ -225,7 +212,7 @@ export default function intercom(rl) {
225
212
  qs.per_page = limit;
226
213
  if (page)
227
214
  qs.page = page;
228
- return apiRequest(tok(ctx), "GET", "/companies", undefined, qs);
215
+ return api(ctx, "GET", "companies", undefined, qs);
229
216
  },
230
217
  });
231
218
  rl.registerAction("company.listUsers", {
@@ -235,7 +222,7 @@ export default function intercom(rl) {
235
222
  companyId: { type: "string", required: true, description: "Company ID" },
236
223
  },
237
224
  async execute(input, ctx) {
238
- return apiRequest(tok(ctx), "GET", `/companies/${input.companyId}/contacts`);
225
+ return api(ctx, "GET", `companies/${pathSegment(input.companyId)}/contacts`);
239
226
  },
240
227
  });
241
228
  }
@@ -0,0 +1,17 @@
1
+ import { httpsBase, staticCredential } from "../../_shared/credentials.js";
2
+ /**
3
+ * An API key, sent as the Api-Key header beneath /api/ of the configured
4
+ * region base (US default, EU override). The base is public config and
5
+ * must be HTTPS.
6
+ */
7
+ export const iterableCredential = staticCredential({
8
+ id: "iterable",
9
+ auth: { kind: "apiKey", header: "Api-Key" },
10
+ local: { secret: "apiKey" },
11
+ targets: (config) => ({
12
+ api: {
13
+ baseUrl: httpsBase(config.region ?? "https://api.iterable.com", "api/"),
14
+ methods: ["GET", "POST", "DELETE"],
15
+ },
16
+ }),
17
+ });