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
@@ -1,28 +1,24 @@
1
- async function apiRequest(baseUrl, apiKey, method, endpoint, body, qs) {
2
- const url = new URL(`${baseUrl}/api${endpoint}`);
3
- if (qs) {
4
- for (const [k, v] of Object.entries(qs)) {
5
- if (v !== undefined && v !== null)
6
- url.searchParams.set(k, String(v));
7
- }
8
- }
9
- const opts = {
10
- method,
11
- headers: { "Api-Key": apiKey, "Content-Type": "application/json" },
12
- };
13
- if (body &&
1
+ import { credentialJson, pathSegment } from "../../_shared/credentials.js";
2
+ import { iterableCredential } from "./credentials.js";
3
+ function apiRequest(ctx, method, path, body, qs) {
4
+ const json = body &&
14
5
  Object.keys(body).length > 0 &&
15
6
  method !== "GET" &&
16
- method !== "DELETE")
17
- opts.body = JSON.stringify(body);
18
- const res = await fetch(url.toString(), opts);
19
- if (!res.ok)
20
- throw new Error(`Iterable API error ${res.status}: ${await res.text()}`);
21
- return res.json();
7
+ method !== "DELETE"
8
+ ? body
9
+ : undefined;
10
+ return credentialJson(ctx, iterableCredential, "iterable", {
11
+ target: "api",
12
+ path,
13
+ method,
14
+ query: qs,
15
+ ...(json !== undefined ? { json } : {}),
16
+ });
22
17
  }
23
18
  export default function iterable(rl) {
24
19
  rl.setName("iterable");
25
20
  rl.setVersion("0.1.0");
21
+ rl.setCredential(iterableCredential);
26
22
  rl.setConnectionSchema({
27
23
  apiKey: {
28
24
  type: "string",
@@ -38,10 +34,6 @@ export default function iterable(rl) {
38
34
  default: "https://api.iterable.com",
39
35
  },
40
36
  });
41
- const conn = (ctx) => ({
42
- baseUrl: (ctx.connection.config.region ?? "https://api.iterable.com").replace(/\/$/, ""),
43
- apiKey: ctx.connection.config.apiKey,
44
- });
45
37
  // ── Event ───────────────────────────────────────────
46
38
  rl.registerAction("event.track", {
47
39
  access: "write",
@@ -55,10 +47,7 @@ export default function iterable(rl) {
55
47
  },
56
48
  async execute(input, ctx) {
57
49
  const { events } = input;
58
- const { baseUrl, apiKey } = conn(ctx);
59
- return apiRequest(baseUrl, apiKey, "POST", "/events/trackBulk", {
60
- events,
61
- });
50
+ return apiRequest(ctx, "POST", "events/trackBulk", { events });
62
51
  },
63
52
  });
64
53
  // ── User ────────────────────────────────────────────
@@ -89,7 +78,6 @@ export default function iterable(rl) {
89
78
  },
90
79
  async execute(input, ctx) {
91
80
  const { identifier, value, preferUserId, dataFields } = input;
92
- const { baseUrl, apiKey } = conn(ctx);
93
81
  const body = {};
94
82
  if (identifier === "email") {
95
83
  body.email = value;
@@ -101,7 +89,7 @@ export default function iterable(rl) {
101
89
  }
102
90
  if (dataFields)
103
91
  body.dataFields = dataFields;
104
- return apiRequest(baseUrl, apiKey, "POST", "/users/update", body);
92
+ return apiRequest(ctx, "POST", "users/update", body);
105
93
  },
106
94
  });
107
95
  rl.registerAction("user.get", {
@@ -121,12 +109,13 @@ export default function iterable(rl) {
121
109
  },
122
110
  async execute(input, ctx) {
123
111
  const { by, value } = input;
124
- const { baseUrl, apiKey } = conn(ctx);
125
112
  if (by === "email") {
126
- const data = await apiRequest(baseUrl, apiKey, "GET", "/users/getByEmail", undefined, { email: value });
113
+ const data = await apiRequest(ctx, "GET", "users/getByEmail", undefined, {
114
+ email: value,
115
+ });
127
116
  return data.user ?? data;
128
117
  }
129
- return apiRequest(baseUrl, apiKey, "GET", `/users/byUserId/${encodeURIComponent(value)}`);
118
+ return apiRequest(ctx, "GET", `users/byUserId/${pathSegment(value)}`);
130
119
  },
131
120
  });
132
121
  rl.registerAction("user.delete", {
@@ -146,11 +135,10 @@ export default function iterable(rl) {
146
135
  },
147
136
  async execute(input, ctx) {
148
137
  const { by, value } = input;
149
- const { baseUrl, apiKey } = conn(ctx);
150
138
  const endpoint = by === "email"
151
- ? `/users/${encodeURIComponent(value)}`
152
- : `/users/byUserId/${encodeURIComponent(value)}`;
153
- return apiRequest(baseUrl, apiKey, "DELETE", endpoint);
139
+ ? `users/${pathSegment(value)}`
140
+ : `users/byUserId/${pathSegment(value)}`;
141
+ return apiRequest(ctx, "DELETE", endpoint);
154
142
  },
155
143
  });
156
144
  // ── User List ───────────────────────────────────────
@@ -172,9 +160,8 @@ export default function iterable(rl) {
172
160
  },
173
161
  async execute(input, ctx) {
174
162
  const { listId, identifier, values } = input;
175
- const { baseUrl, apiKey } = conn(ctx);
176
163
  const subscribers = values.map((v) => identifier === "email" ? { email: v } : { userId: v });
177
- return apiRequest(baseUrl, apiKey, "POST", "/lists/subscribe", {
164
+ return apiRequest(ctx, "POST", "lists/subscribe", {
178
165
  listId,
179
166
  subscribers,
180
167
  });
@@ -208,14 +195,13 @@ export default function iterable(rl) {
208
195
  },
209
196
  async execute(input, ctx) {
210
197
  const { listId, identifier, values, campaignId, channelUnsubscribe } = input;
211
- const { baseUrl, apiKey } = conn(ctx);
212
198
  const subscribers = values.map((v) => identifier === "email" ? { email: v } : { userId: v });
213
199
  const body = { listId, subscribers };
214
200
  if (campaignId !== undefined)
215
201
  body.campaignId = campaignId;
216
202
  if (channelUnsubscribe !== undefined)
217
203
  body.channelUnsubscribe = channelUnsubscribe;
218
- return apiRequest(baseUrl, apiKey, "POST", "/lists/unsubscribe", body);
204
+ return apiRequest(ctx, "POST", "lists/unsubscribe", body);
219
205
  },
220
206
  });
221
207
  }
@@ -0,0 +1,16 @@
1
+ import { httpsBase, staticCredential } from "../../_shared/credentials.js";
2
+ /**
3
+ * The username and per-user API token, sent as HTTP Basic to the
4
+ * connection's own Jenkins instance.
5
+ */
6
+ export const jenkinsCredential = staticCredential({
7
+ id: "jenkins",
8
+ auth: { kind: "basic" },
9
+ local: { username: "username", password: "apiToken" },
10
+ targets: (config) => ({
11
+ api: {
12
+ baseUrl: httpsBase(config.baseUrl, ""),
13
+ methods: ["GET", "POST"],
14
+ },
15
+ }),
16
+ });
@@ -1,41 +1,27 @@
1
- async function apiRequest(baseUrl, username, apiToken, method, endpoint, body, contentType, qs) {
2
- const url = new URL(`${baseUrl}${endpoint}`);
3
- if (qs) {
4
- for (const [k, v] of Object.entries(qs)) {
5
- if (v !== undefined && v !== null)
6
- url.searchParams.set(k, String(v));
7
- }
8
- }
9
- const headers = {
10
- Authorization: `Basic ${btoa(`${username}:${apiToken}`)}`,
11
- };
12
- if (contentType)
13
- headers["Content-Type"] = contentType;
14
- const opts = { method, headers };
15
- if (body && method !== "GET")
16
- opts.body = typeof body === "string" ? body : JSON.stringify(body);
17
- const res = await fetch(url.toString(), opts);
18
- if (!res.ok)
19
- throw new Error(`Jenkins error ${res.status}: ${await res.text()}`);
1
+ import { credentialOk, jsonAnswer, pathSegments, } from "../../_shared/credentials.js";
2
+ import { jenkinsCredential } from "./credentials.js";
3
+ async function jk(ctx, method, endpoint, body, contentType, qs) {
4
+ const res = await credentialOk(ctx, jenkinsCredential, "jenkins", {
5
+ target: "api",
6
+ path: endpoint.replace(/^\//, ""),
7
+ method,
8
+ query: qs,
9
+ ...(contentType ? { headers: { "Content-Type": contentType } } : {}),
10
+ ...(body && method !== "GET"
11
+ ? typeof body === "string"
12
+ ? { body }
13
+ : { json: body }
14
+ : {}),
15
+ });
20
16
  const ct = res.headers.get("content-type") ?? "";
21
17
  if (ct.includes("json"))
22
- return res.json();
18
+ return jsonAnswer(res);
23
19
  return { success: true };
24
20
  }
25
- function getConn(ctx) {
26
- return {
27
- baseUrl: ctx.connection.config.baseUrl.replace(/\/$/, ""),
28
- username: ctx.connection.config.username,
29
- apiToken: ctx.connection.config.apiToken,
30
- };
31
- }
32
- function jk(ctx, method, endpoint, body, ct, qs) {
33
- const { baseUrl, username, apiToken } = getConn(ctx);
34
- return apiRequest(baseUrl, username, apiToken, method, endpoint, body, ct, qs);
35
- }
36
21
  export default function jenkins(rl) {
37
22
  rl.setName("jenkins");
38
23
  rl.setVersion("0.1.0");
24
+ rl.setCredential(jenkinsCredential);
39
25
  rl.setConnectionSchema({
40
26
  baseUrl: {
41
27
  type: "string",
@@ -64,7 +50,7 @@ export default function jenkins(rl) {
64
50
  jobName: {
65
51
  type: "string",
66
52
  required: true,
67
- description: "Job name (URL-encoded if nested)",
53
+ description: "Job name; a job in a folder as folder/job/name",
68
54
  },
69
55
  parameters: {
70
56
  type: "object",
@@ -77,10 +63,10 @@ export default function jenkins(rl) {
77
63
  if (parameters &&
78
64
  Object.keys(parameters).length > 0) {
79
65
  const qs = parameters;
80
- await jk(ctx, "POST", `/job/${jobName}/buildWithParameters`, undefined, undefined, qs);
66
+ await jk(ctx, "POST", `/job/${pathSegments(jobName)}/buildWithParameters`, undefined, undefined, qs);
81
67
  }
82
68
  else {
83
- await jk(ctx, "POST", `/job/${jobName}/build`);
69
+ await jk(ctx, "POST", `/job/${pathSegments(jobName)}/build`);
84
70
  }
85
71
  return { success: true };
86
72
  },
@@ -92,7 +78,7 @@ export default function jenkins(rl) {
92
78
  jobName: { type: "string", required: true, description: "Job name" },
93
79
  },
94
80
  async execute(input, ctx) {
95
- const data = (await jk(ctx, "GET", `/job/${input.jobName}/api/json`, undefined, undefined, { tree: "actions[parameterDefinitions[*]]" }));
81
+ const data = (await jk(ctx, "GET", `/job/${pathSegments(input.jobName)}/api/json`, undefined, undefined, { tree: "actions[parameterDefinitions[*]]" }));
96
82
  return data.actions;
97
83
  },
98
84
  });
@@ -145,7 +131,7 @@ export default function jenkins(rl) {
145
131
  async execute(input, ctx) {
146
132
  const { jobName, limit } = input;
147
133
  const tree = limit ? `builds[*]{0,${limit}}` : "builds[*]";
148
- const data = (await jk(ctx, "GET", `/job/${jobName}/api/json`, undefined, undefined, { tree }));
134
+ const data = (await jk(ctx, "GET", `/job/${pathSegments(jobName)}/api/json`, undefined, undefined, { tree }));
149
135
  return data.builds;
150
136
  },
151
137
  });
@@ -0,0 +1,16 @@
1
+ import { httpsBase, staticCredential } from "../../_shared/credentials.js";
2
+ /**
3
+ * An Atlassian API token with the account email as the Basic pair, on the
4
+ * connection's own Jira site beneath /rest/.
5
+ */
6
+ export const jiraCredential = staticCredential({
7
+ id: "jira",
8
+ auth: { kind: "basic" },
9
+ local: { username: "email", password: "apiToken" },
10
+ targets: (config) => ({
11
+ api: {
12
+ baseUrl: httpsBase(config.domain, "rest/"),
13
+ methods: ["GET", "POST", "PUT", "DELETE"],
14
+ },
15
+ }),
16
+ });
@@ -1,48 +1,23 @@
1
- async function apiRequest(domain, email, apiToken, method, endpoint, body, qs) {
2
- const url = new URL(`${domain}/rest${endpoint}`);
3
- if (qs) {
4
- for (const [k, v] of Object.entries(qs)) {
5
- if (v !== undefined && v !== null)
6
- url.searchParams.set(k, String(v));
7
- }
8
- }
9
- const opts = {
1
+ import { credentialJson, pathSegment } from "../../_shared/credentials.js";
2
+ import { jiraCredential } from "./credentials.js";
3
+ function jr(ctx, method, path, body, qs) {
4
+ return credentialJson(ctx, jiraCredential, "jira", {
5
+ target: "api",
6
+ path,
10
7
  method,
11
- headers: {
12
- Authorization: `Basic ${btoa(`${email}:${apiToken}`)}`,
13
- "Content-Type": "application/json",
14
- Accept: "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(`Jira API error ${res.status}: ${await res.text()}`);
25
- if (res.status === 204)
26
- return { success: true };
27
- const ct = res.headers.get("content-type") ?? "";
28
- if (ct.includes("json"))
29
- return res.json();
30
- return { success: true };
31
- }
32
- function getConn(ctx) {
33
- return {
34
- domain: ctx.connection.config.domain.replace(/\/$/, ""),
35
- email: ctx.connection.config.email,
36
- apiToken: ctx.connection.config.apiToken,
37
- };
38
- }
39
- function jr(ctx, method, endpoint, body, qs) {
40
- const { domain, email, apiToken } = getConn(ctx);
41
- return apiRequest(domain, email, apiToken, method, endpoint, body, qs);
8
+ query: qs,
9
+ ...(body &&
10
+ Object.keys(body).length > 0 &&
11
+ method !== "GET" &&
12
+ method !== "DELETE"
13
+ ? { json: body }
14
+ : {}),
15
+ });
42
16
  }
43
17
  export default function jira(rl) {
44
18
  rl.setName("jira");
45
19
  rl.setVersion("0.1.0");
20
+ rl.setCredential(jiraCredential);
46
21
  rl.setConnectionSchema({
47
22
  domain: {
48
23
  type: "string",
@@ -125,7 +100,7 @@ export default function jira(rl) {
125
100
  fields.parent = { key: parentKey };
126
101
  if (customFields)
127
102
  Object.assign(fields, customFields);
128
- return jr(ctx, "POST", "/api/2/issue", { fields });
103
+ return jr(ctx, "POST", "api/2/issue", { fields });
129
104
  },
130
105
  });
131
106
  rl.registerAction("issue.get", {
@@ -155,7 +130,7 @@ export default function jira(rl) {
155
130
  qs.fields = fields;
156
131
  if (expand)
157
132
  qs.expand = expand;
158
- return jr(ctx, "GET", `/api/2/issue/${issueKey}`, undefined, qs);
133
+ return jr(ctx, "GET", `api/2/issue/${pathSegment(issueKey)}`, undefined, qs);
159
134
  },
160
135
  });
161
136
  rl.registerAction("issue.search", {
@@ -188,8 +163,8 @@ export default function jira(rl) {
188
163
  const { jql, fields, maxResults, nextPageToken, expand } = input;
189
164
  const body = {
190
165
  jql,
191
- // The new endpoint returns only id+key by default; preserve the old
192
- // "all navigable fields" behavior unless the caller specifies.
166
+ // The endpoint returns only id+key by default; ask for all fields
167
+ // unless the caller narrows the list.
193
168
  fields: Array.isArray(fields) ? fields : ["*all"],
194
169
  };
195
170
  if (maxResults)
@@ -198,10 +173,9 @@ export default function jira(rl) {
198
173
  body.nextPageToken = nextPageToken;
199
174
  if (expand)
200
175
  body.expand = expand;
201
- // Atlassian removed POST /rest/api/2|3/search (CHANGE-2046).
202
- // The replacement endpoint is POST /rest/api/3/search/jql with
203
- // cursor-based pagination.
204
- return jr(ctx, "POST", "/api/3/search/jql", body);
176
+ // POST api/3/search/jql is Atlassian's JQL search endpoint
177
+ // (CHANGE-2046), with cursor-based pagination.
178
+ return jr(ctx, "POST", "api/3/search/jql", body);
205
179
  },
206
180
  });
207
181
  rl.registerAction("issue.update", {
@@ -230,7 +204,7 @@ export default function jira(rl) {
230
204
  body.update = update;
231
205
  if (transition)
232
206
  body.transition = transition;
233
- return jr(ctx, "PUT", `/api/2/issue/${issueKey}`, body);
207
+ return jr(ctx, "PUT", `api/2/issue/${pathSegment(issueKey)}`, body);
234
208
  },
235
209
  });
236
210
  rl.registerAction("issue.delete", {
@@ -240,7 +214,7 @@ export default function jira(rl) {
240
214
  issueKey: { type: "string", required: true, description: "Issue key" },
241
215
  },
242
216
  async execute(input, ctx) {
243
- await jr(ctx, "DELETE", `/api/2/issue/${input.issueKey}`);
217
+ await jr(ctx, "DELETE", `api/2/issue/${pathSegment(input.issueKey)}`);
244
218
  return { success: true };
245
219
  },
246
220
  });
@@ -267,7 +241,7 @@ export default function jira(rl) {
267
241
  };
268
242
  if (comment)
269
243
  body.update = { comment: [{ add: { body: comment } }] };
270
- return jr(ctx, "POST", `/api/2/issue/${issueKey}/transitions`, body);
244
+ return jr(ctx, "POST", `api/2/issue/${pathSegment(issueKey)}/transitions`, body);
271
245
  },
272
246
  });
273
247
  rl.registerAction("issue.getTransitions", {
@@ -277,7 +251,7 @@ export default function jira(rl) {
277
251
  issueKey: { type: "string", required: true, description: "Issue key" },
278
252
  },
279
253
  async execute(input, ctx) {
280
- return jr(ctx, "GET", `/api/2/issue/${input.issueKey}/transitions`);
254
+ return jr(ctx, "GET", `api/2/issue/${pathSegment(input.issueKey)}/transitions`);
281
255
  },
282
256
  });
283
257
  rl.registerAction("issue.getChangelog", {
@@ -287,7 +261,7 @@ export default function jira(rl) {
287
261
  issueKey: { type: "string", required: true, description: "Issue key" },
288
262
  },
289
263
  async execute(input, ctx) {
290
- return jr(ctx, "GET", `/api/2/issue/${input.issueKey}/changelog`);
264
+ return jr(ctx, "GET", `api/2/issue/${pathSegment(input.issueKey)}/changelog`);
291
265
  },
292
266
  });
293
267
  rl.registerAction("issue.notify", {
@@ -305,7 +279,7 @@ export default function jira(rl) {
305
279
  },
306
280
  async execute(input, ctx) {
307
281
  const { issueKey, subject, htmlBody, to } = input;
308
- return jr(ctx, "POST", `/api/2/issue/${issueKey}/notify`, {
282
+ return jr(ctx, "POST", `api/2/issue/${pathSegment(issueKey)}/notify`, {
309
283
  subject,
310
284
  htmlBody,
311
285
  to,
@@ -322,7 +296,7 @@ export default function jira(rl) {
322
296
  },
323
297
  async execute(input, ctx) {
324
298
  const { issueKey, body: commentBody } = input;
325
- return jr(ctx, "POST", `/api/2/issue/${issueKey}/comment`, {
299
+ return jr(ctx, "POST", `api/2/issue/${pathSegment(issueKey)}/comment`, {
326
300
  body: commentBody,
327
301
  });
328
302
  },
@@ -336,7 +310,7 @@ export default function jira(rl) {
336
310
  },
337
311
  async execute(input, ctx) {
338
312
  const { issueKey, commentId } = input;
339
- return jr(ctx, "GET", `/api/2/issue/${issueKey}/comment/${commentId}`);
313
+ return jr(ctx, "GET", `api/2/issue/${pathSegment(issueKey)}/comment/${pathSegment(commentId)}`);
340
314
  },
341
315
  });
342
316
  rl.registerAction("issueComment.list", {
@@ -346,7 +320,7 @@ export default function jira(rl) {
346
320
  issueKey: { type: "string", required: true, description: "Issue key" },
347
321
  },
348
322
  async execute(input, ctx) {
349
- return jr(ctx, "GET", `/api/2/issue/${input.issueKey}/comment`);
323
+ return jr(ctx, "GET", `api/2/issue/${pathSegment(input.issueKey)}/comment`);
350
324
  },
351
325
  });
352
326
  rl.registerAction("issueComment.update", {
@@ -359,7 +333,7 @@ export default function jira(rl) {
359
333
  },
360
334
  async execute(input, ctx) {
361
335
  const { issueKey, commentId, body: b } = input;
362
- return jr(ctx, "PUT", `/api/2/issue/${issueKey}/comment/${commentId}`, {
336
+ return jr(ctx, "PUT", `api/2/issue/${pathSegment(issueKey)}/comment/${pathSegment(commentId)}`, {
363
337
  body: b,
364
338
  });
365
339
  },
@@ -373,7 +347,7 @@ export default function jira(rl) {
373
347
  },
374
348
  async execute(input, ctx) {
375
349
  const { issueKey, commentId } = input;
376
- await jr(ctx, "DELETE", `/api/2/issue/${issueKey}/comment/${commentId}`);
350
+ await jr(ctx, "DELETE", `api/2/issue/${pathSegment(issueKey)}/comment/${pathSegment(commentId)}`);
377
351
  return { success: true };
378
352
  },
379
353
  });
@@ -385,7 +359,7 @@ export default function jira(rl) {
385
359
  accountId: { type: "string", required: true, description: "Account ID" },
386
360
  },
387
361
  async execute(input, ctx) {
388
- return jr(ctx, "GET", "/api/2/user", undefined, {
362
+ return jr(ctx, "GET", "api/2/user", undefined, {
389
363
  accountId: input.accountId,
390
364
  });
391
365
  },
@@ -406,7 +380,7 @@ export default function jira(rl) {
406
380
  const qs = { query };
407
381
  if (maxResults)
408
382
  qs.maxResults = maxResults;
409
- return jr(ctx, "GET", "/api/2/user/search", undefined, qs);
383
+ return jr(ctx, "GET", "api/2/user/search", undefined, qs);
410
384
  },
411
385
  });
412
386
  }
@@ -0,0 +1,19 @@
1
+ import { staticCredential } from "../../_shared/credentials.js";
2
+ /** An OAuth2 access token, sent as a bearer to Keap's one API origin. */
3
+ export const keapCredential = staticCredential({
4
+ id: "keap",
5
+ auth: { kind: "bearer" },
6
+ local: { secret: "accessToken" },
7
+ targets: {
8
+ api: {
9
+ baseUrl: "https://api.infusionsoft.com/crm/rest/v1/",
10
+ methods: ["GET", "POST", "PUT", "PATCH", "DELETE"],
11
+ },
12
+ },
13
+ probe: {
14
+ target: "api",
15
+ path: "account/profile",
16
+ method: "GET",
17
+ acceptedStatuses: [200],
18
+ },
19
+ });