runline 0.33.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 (515) 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 +19 -55
  28. package/dist/plugins/_shared/shiftCredentials.js +83 -0
  29. package/dist/plugins/actionNetwork/src/credentials.js +14 -0
  30. package/dist/plugins/actionNetwork/src/index.js +39 -50
  31. package/dist/plugins/activeCampaign/src/credentials.js +22 -0
  32. package/dist/plugins/activeCampaign/src/index.js +61 -132
  33. package/dist/plugins/adalo/src/credentials.js +16 -0
  34. package/dist/plugins/adalo/src/index.js +19 -43
  35. package/dist/plugins/affinity/src/credentials.js +19 -0
  36. package/dist/plugins/affinity/src/index.js +29 -54
  37. package/dist/plugins/agileCrm/src/credentials.js +16 -0
  38. package/dist/plugins/agileCrm/src/index.js +46 -112
  39. package/dist/plugins/airtable/src/credentials.js +19 -0
  40. package/dist/plugins/airtable/src/index.js +37 -50
  41. package/dist/plugins/airtop/src/credentials.js +20 -0
  42. package/dist/plugins/airtop/src/index.js +51 -75
  43. package/dist/plugins/apiTemplateIo/src/credentials.js +19 -0
  44. package/dist/plugins/apiTemplateIo/src/index.js +14 -31
  45. package/dist/plugins/asana/src/credentials.js +19 -0
  46. package/dist/plugins/asana/src/index.js +51 -72
  47. package/dist/plugins/autopilot/src/credentials.js +19 -0
  48. package/dist/plugins/autopilot/src/index.js +38 -45
  49. package/dist/plugins/bambooHr/src/credentials.js +16 -0
  50. package/dist/plugins/bambooHr/src/index.js +41 -67
  51. package/dist/plugins/bannerbear/src/credentials.js +19 -0
  52. package/dist/plugins/bannerbear/src/index.js +15 -27
  53. package/dist/plugins/baserow/src/credentials.js +17 -0
  54. package/dist/plugins/baserow/src/index.js +23 -49
  55. package/dist/plugins/beeminder/src/credentials.js +19 -0
  56. package/dist/plugins/beeminder/src/index.js +32 -54
  57. package/dist/plugins/bitly/src/credentials.js +19 -0
  58. package/dist/plugins/bitly/src/index.js +12 -26
  59. package/dist/plugins/bitwarden/src/credentials.js +62 -0
  60. package/dist/plugins/bitwarden/src/index.js +34 -80
  61. package/dist/plugins/box/src/credentials.js +19 -0
  62. package/dist/plugins/box/src/index.js +24 -49
  63. package/dist/plugins/brandfetch/src/credentials.js +13 -0
  64. package/dist/plugins/brandfetch/src/index.js +12 -17
  65. package/dist/plugins/brevo/src/credentials.js +19 -0
  66. package/dist/plugins/brevo/src/index.js +30 -51
  67. package/dist/plugins/bubble/src/credentials.js +28 -0
  68. package/dist/plugins/bubble/src/index.js +29 -65
  69. package/dist/plugins/chargebee/src/credentials.js +16 -0
  70. package/dist/plugins/chargebee/src/index.js +15 -45
  71. package/dist/plugins/circleci/src/credentials.js +19 -0
  72. package/dist/plugins/circleci/src/index.js +19 -39
  73. package/dist/plugins/ciscoWebex/src/credentials.js +19 -0
  74. package/dist/plugins/ciscoWebex/src/index.js +43 -61
  75. package/dist/plugins/clearbit/src/credentials.js +22 -0
  76. package/dist/plugins/clearbit/src/index.js +11 -21
  77. package/dist/plugins/clickup/src/credentials.js +19 -0
  78. package/dist/plugins/clickup/src/index.js +85 -117
  79. package/dist/plugins/clockify/src/credentials.js +19 -0
  80. package/dist/plugins/clockify/src/index.js +46 -61
  81. package/dist/plugins/cloudflare/src/credentials.js +19 -0
  82. package/dist/plugins/cloudflare/src/index.js +19 -34
  83. package/dist/plugins/cockpit/src/credentials.js +17 -0
  84. package/dist/plugins/cockpit/src/index.js +18 -31
  85. package/dist/plugins/coda/src/credentials.js +19 -0
  86. package/dist/plugins/coda/src/index.js +33 -50
  87. package/dist/plugins/coingecko/src/credentials.js +20 -0
  88. package/dist/plugins/coingecko/src/index.js +24 -34
  89. package/dist/plugins/contentful/src/credentials.js +26 -0
  90. package/dist/plugins/contentful/src/index.js +19 -40
  91. package/dist/plugins/convertkit/src/credentials.js +26 -0
  92. package/dist/plugins/convertkit/src/index.js +27 -45
  93. package/dist/plugins/copper/src/credentials.js +17 -0
  94. package/dist/plugins/copper/src/index.js +25 -47
  95. package/dist/plugins/cortex/src/credentials.js +28 -0
  96. package/dist/plugins/cortex/src/index.js +26 -49
  97. package/dist/plugins/currents/src/credentials.js +19 -0
  98. package/dist/plugins/currents/src/index.js +46 -59
  99. package/dist/plugins/customerIo/src/credentials.js +52 -0
  100. package/dist/plugins/customerIo/src/index.js +30 -58
  101. package/dist/plugins/databricks/src/credentials.js +13 -0
  102. package/dist/plugins/databricks/src/index.js +51 -103
  103. package/dist/plugins/deepl/src/credentials.js +19 -0
  104. package/dist/plugins/deepl/src/index.js +13 -39
  105. package/dist/plugins/demio/src/credentials.js +26 -0
  106. package/dist/plugins/demio/src/index.js +17 -41
  107. package/dist/plugins/dhl/src/credentials.js +13 -0
  108. package/dist/plugins/dhl/src/index.js +8 -19
  109. package/dist/plugins/discord/src/credentials.js +19 -0
  110. package/dist/plugins/discord/src/index.js +30 -58
  111. package/dist/plugins/discourse/src/credentials.js +18 -0
  112. package/dist/plugins/discourse/src/index.js +36 -53
  113. package/dist/plugins/disqus/src/credentials.js +13 -0
  114. package/dist/plugins/disqus/src/index.js +14 -32
  115. package/dist/plugins/drift/src/credentials.js +13 -0
  116. package/dist/plugins/drift/src/index.js +16 -26
  117. package/dist/plugins/dropbox/src/credentials.js +13 -0
  118. package/dist/plugins/dropbox/src/index.js +23 -30
  119. package/dist/plugins/dropcontact/src/credentials.js +13 -0
  120. package/dist/plugins/dropcontact/src/index.js +13 -18
  121. package/dist/plugins/egoi/src/credentials.js +19 -0
  122. package/dist/plugins/egoi/src/index.js +23 -38
  123. package/dist/plugins/elasticsearch/src/credentials.js +18 -0
  124. package/dist/plugins/elasticsearch/src/index.js +27 -48
  125. package/dist/plugins/elevenlabs/src/credentials.js +30 -0
  126. package/dist/plugins/elevenlabs/src/index.js +4 -1
  127. package/dist/plugins/elevenlabs/src/schemas.js +2 -1
  128. package/dist/plugins/elevenlabs/src/shared.js +74 -35
  129. package/dist/plugins/elevenlabs/src/workflows.js +2 -2
  130. package/dist/plugins/emelia/src/credentials.js +14 -0
  131. package/dist/plugins/emelia/src/index.js +19 -23
  132. package/dist/plugins/erpnext/src/credentials.js +27 -0
  133. package/dist/plugins/erpnext/src/index.js +21 -42
  134. package/dist/plugins/facebookGraph/src/credentials.js +20 -0
  135. package/dist/plugins/facebookGraph/src/index.js +39 -37
  136. package/dist/plugins/fal/src/credentials.js +14 -0
  137. package/dist/plugins/fal/src/index.js +4 -2
  138. package/dist/plugins/fal/src/shared.js +58 -63
  139. package/dist/plugins/freshdesk/src/credentials.js +20 -0
  140. package/dist/plugins/freshdesk/src/index.js +25 -46
  141. package/dist/plugins/freshservice/src/credentials.js +16 -0
  142. package/dist/plugins/freshservice/src/index.js +37 -58
  143. package/dist/plugins/freshworksCrm/src/credentials.js +16 -0
  144. package/dist/plugins/freshworksCrm/src/index.js +20 -39
  145. package/dist/plugins/getresponse/src/credentials.js +22 -0
  146. package/dist/plugins/getresponse/src/index.js +20 -32
  147. package/dist/plugins/gett/src/credentials.js +64 -0
  148. package/dist/plugins/gett/src/index.js +11 -6
  149. package/dist/plugins/gett/src/login.js +24 -0
  150. package/dist/plugins/gett/src/session.js +15 -38
  151. package/dist/plugins/gett/src/shared.js +41 -84
  152. package/dist/plugins/ghost/src/credentials.js +36 -0
  153. package/dist/plugins/ghost/src/index.js +18 -59
  154. package/dist/plugins/github/src/credentials.js +18 -0
  155. package/dist/plugins/github/src/index.js +55 -78
  156. package/dist/plugins/gitlab/src/credentials.js +24 -0
  157. package/dist/plugins/gitlab/src/index.js +29 -48
  158. package/dist/plugins/gmail/src/index.js +26 -24
  159. package/dist/plugins/gong/src/credentials.js +16 -0
  160. package/dist/plugins/gong/src/index.js +16 -32
  161. package/dist/plugins/googleAppsScript/src/index.js +108 -42
  162. package/dist/plugins/googleCalendar/src/index.js +15 -13
  163. package/dist/plugins/googleContacts/src/index.js +12 -9
  164. package/dist/plugins/googleDocs/src/index.js +2 -0
  165. package/dist/plugins/googleDocs/src/shared.js +2 -1
  166. package/dist/plugins/googleDrive/src/index.js +50 -53
  167. package/dist/plugins/googleImage/src/credentials.js +14 -0
  168. package/dist/plugins/googleImage/src/index.js +14 -25
  169. package/dist/plugins/googleSheets/src/index.js +26 -27
  170. package/dist/plugins/googleSlides/src/index.js +6 -4
  171. package/dist/plugins/googleTasks/src/index.js +13 -11
  172. package/dist/plugins/gotify/src/credentials.js +32 -0
  173. package/dist/plugins/gotify/src/index.js +14 -36
  174. package/dist/plugins/gotowebinar/src/credentials.js +13 -0
  175. package/dist/plugins/gotowebinar/src/index.js +52 -69
  176. package/dist/plugins/grafana/src/credentials.js +16 -0
  177. package/dist/plugins/grafana/src/index.js +34 -53
  178. package/dist/plugins/graphql/src/credentials.js +42 -0
  179. package/dist/plugins/graphql/src/index.js +21 -46
  180. package/dist/plugins/grist/src/credentials.js +30 -0
  181. package/dist/plugins/grist/src/index.js +14 -43
  182. package/dist/plugins/halopsa/src/credentials.js +56 -0
  183. package/dist/plugins/halopsa/src/index.js +20 -47
  184. package/dist/plugins/harvest/src/credentials.js +20 -0
  185. package/dist/plugins/harvest/src/index.js +24 -43
  186. package/dist/plugins/helpscout/src/credentials.js +13 -0
  187. package/dist/plugins/helpscout/src/index.js +26 -38
  188. package/dist/plugins/highlevel/src/credentials.js +19 -0
  189. package/dist/plugins/highlevel/src/index.js +34 -63
  190. package/dist/plugins/homeAssistant/src/credentials.js +27 -0
  191. package/dist/plugins/homeAssistant/src/index.js +34 -52
  192. package/dist/plugins/hubspot/src/credentials.js +16 -0
  193. package/dist/plugins/hubspot/src/index.js +29 -41
  194. package/dist/plugins/humanticAi/src/credentials.js +13 -0
  195. package/dist/plugins/humanticAi/src/index.js +15 -22
  196. package/dist/plugins/hunter/src/credentials.js +13 -0
  197. package/dist/plugins/hunter/src/index.js +18 -17
  198. package/dist/plugins/intercom/src/credentials.js +19 -0
  199. package/dist/plugins/intercom/src/index.js +25 -38
  200. package/dist/plugins/iterable/src/credentials.js +17 -0
  201. package/dist/plugins/iterable/src/index.js +26 -40
  202. package/dist/plugins/jenkins/src/credentials.js +16 -0
  203. package/dist/plugins/jenkins/src/index.js +22 -36
  204. package/dist/plugins/jira/src/credentials.js +16 -0
  205. package/dist/plugins/jira/src/index.js +35 -61
  206. package/dist/plugins/keap/src/credentials.js +19 -0
  207. package/dist/plugins/keap/src/index.js +43 -71
  208. package/dist/plugins/kobotoolbox/src/credentials.js +13 -0
  209. package/dist/plugins/kobotoolbox/src/index.js +46 -84
  210. package/dist/plugins/lemlist/src/credentials.js +19 -0
  211. package/dist/plugins/lemlist/src/index.js +35 -47
  212. package/dist/plugins/linear/src/attachments.js +7 -7
  213. package/dist/plugins/linear/src/comments.js +7 -7
  214. package/dist/plugins/linear/src/credentials.js +17 -0
  215. package/dist/plugins/linear/src/cycles.js +5 -5
  216. package/dist/plugins/linear/src/index.js +2 -0
  217. package/dist/plugins/linear/src/initiatives.js +6 -6
  218. package/dist/plugins/linear/src/issues.js +14 -14
  219. package/dist/plugins/linear/src/labels.js +6 -6
  220. package/dist/plugins/linear/src/organization.js +2 -2
  221. package/dist/plugins/linear/src/projects.js +12 -12
  222. package/dist/plugins/linear/src/shared.js +34 -32
  223. package/dist/plugins/linear/src/states.js +3 -3
  224. package/dist/plugins/linear/src/teams.js +4 -4
  225. package/dist/plugins/linear/src/users.js +3 -3
  226. package/dist/plugins/linear/src/views.js +5 -5
  227. package/dist/plugins/linear/src/webhooks.js +5 -5
  228. package/dist/plugins/lingvanex/src/credentials.js +13 -0
  229. package/dist/plugins/lingvanex/src/index.js +7 -9
  230. package/dist/plugins/linkedin/src/credentials.js +17 -0
  231. package/dist/plugins/linkedin/src/index.js +13 -17
  232. package/dist/plugins/lonescale/src/credentials.js +13 -0
  233. package/dist/plugins/lonescale/src/index.js +16 -26
  234. package/dist/plugins/magento/src/credentials.js +16 -0
  235. package/dist/plugins/magento/src/index.js +67 -84
  236. package/dist/plugins/mailcheck/src/credentials.js +17 -0
  237. package/dist/plugins/mailcheck/src/index.js +7 -9
  238. package/dist/plugins/mailchimp/src/credentials.js +32 -0
  239. package/dist/plugins/mailchimp/src/index.js +36 -44
  240. package/dist/plugins/mailerlite/src/credentials.js +13 -0
  241. package/dist/plugins/mailerlite/src/index.js +19 -32
  242. package/dist/plugins/mailgun/src/credentials.js +21 -0
  243. package/dist/plugins/mailgun/src/index.js +15 -21
  244. package/dist/plugins/mailjet/src/credentials.js +38 -0
  245. package/dist/plugins/mailjet/src/index.js +60 -115
  246. package/dist/plugins/mandrill/src/credentials.js +17 -0
  247. package/dist/plugins/mandrill/src/index.js +11 -12
  248. package/dist/plugins/marketstack/src/credentials.js +16 -0
  249. package/dist/plugins/marketstack/src/index.js +18 -28
  250. package/dist/plugins/matrix/src/credentials.js +19 -0
  251. package/dist/plugins/matrix/src/index.js +23 -52
  252. package/dist/plugins/mattermost/src/credentials.js +19 -0
  253. package/dist/plugins/mattermost/src/index.js +41 -73
  254. package/dist/plugins/mautic/src/credentials.js +16 -0
  255. package/dist/plugins/mautic/src/index.js +46 -62
  256. package/dist/plugins/medium/src/credentials.js +20 -0
  257. package/dist/plugins/medium/src/index.js +18 -23
  258. package/dist/plugins/messagebird/src/credentials.js +22 -0
  259. package/dist/plugins/messagebird/src/index.js +13 -18
  260. package/dist/plugins/metabase/src/credentials.js +19 -0
  261. package/dist/plugins/metabase/src/index.js +24 -40
  262. package/dist/plugins/microsoftCalendar/src/index.js +48 -12
  263. package/dist/plugins/microsoftFiles/src/index.js +90 -25
  264. package/dist/plugins/microsoftMail/src/index.js +62 -15
  265. package/dist/plugins/misp/src/credentials.js +16 -0
  266. package/dist/plugins/misp/src/index.js +60 -71
  267. package/dist/plugins/mocean/src/credentials.js +17 -0
  268. package/dist/plugins/mocean/src/index.js +11 -23
  269. package/dist/plugins/monday/src/credentials.js +14 -0
  270. package/dist/plugins/monday/src/index.js +31 -44
  271. package/dist/plugins/monicaCrm/src/credentials.js +19 -0
  272. package/dist/plugins/monicaCrm/src/index.js +25 -42
  273. package/dist/plugins/msg91/src/credentials.js +10 -0
  274. package/dist/plugins/msg91/src/index.js +15 -11
  275. package/dist/plugins/nasa/src/credentials.js +22 -0
  276. package/dist/plugins/nasa/src/index.js +24 -28
  277. package/dist/plugins/netlify/src/credentials.js +19 -0
  278. package/dist/plugins/netlify/src/index.js +27 -51
  279. package/dist/plugins/netscalerAdc/src/credentials.js +18 -0
  280. package/dist/plugins/netscalerAdc/src/index.js +16 -31
  281. package/dist/plugins/nextcloud/src/credentials.js +27 -0
  282. package/dist/plugins/nextcloud/src/index.js +55 -109
  283. package/dist/plugins/nocodb/src/credentials.js +16 -0
  284. package/dist/plugins/nocodb/src/index.js +19 -37
  285. package/dist/plugins/notion/src/credentials.js +21 -0
  286. package/dist/plugins/notion/src/index.js +25 -38
  287. package/dist/plugins/npm/src/credentials.js +19 -0
  288. package/dist/plugins/npm/src/index.js +22 -32
  289. package/dist/plugins/odoo/src/credentials.js +21 -0
  290. package/dist/plugins/odoo/src/index.js +53 -69
  291. package/dist/plugins/okta/src/credentials.js +23 -0
  292. package/dist/plugins/okta/src/index.js +30 -35
  293. package/dist/plugins/oneSimpleApi/src/credentials.js +16 -0
  294. package/dist/plugins/oneSimpleApi/src/index.js +19 -24
  295. package/dist/plugins/onfleet/src/credentials.js +23 -0
  296. package/dist/plugins/onfleet/src/index.js +42 -53
  297. package/dist/plugins/openai/src/credentials.js +13 -0
  298. package/dist/plugins/openai/src/index.js +15 -23
  299. package/dist/plugins/openweathermap/src/credentials.js +16 -0
  300. package/dist/plugins/openweathermap/src/index.js +22 -22
  301. package/dist/plugins/oura/src/credentials.js +19 -0
  302. package/dist/plugins/oura/src/index.js +13 -18
  303. package/dist/plugins/paddle/src/credentials.js +27 -0
  304. package/dist/plugins/paddle/src/index.js +20 -36
  305. package/dist/plugins/pagerduty/src/credentials.js +24 -0
  306. package/dist/plugins/pagerduty/src/index.js +30 -39
  307. package/dist/plugins/parallel/src/credentials.js +18 -0
  308. package/dist/plugins/parallel/src/index.js +16 -22
  309. package/dist/plugins/paypal/src/credentials.js +44 -0
  310. package/dist/plugins/paypal/src/index.js +14 -40
  311. package/dist/plugins/peekalink/src/credentials.js +16 -0
  312. package/dist/plugins/peekalink/src/index.js +10 -11
  313. package/dist/plugins/phantombuster/src/credentials.js +19 -0
  314. package/dist/plugins/phantombuster/src/index.js +19 -32
  315. package/dist/plugins/philipsHue/src/credentials.js +17 -0
  316. package/dist/plugins/philipsHue/src/index.js +15 -27
  317. package/dist/plugins/pipedrive/src/credentials.js +26 -0
  318. package/dist/plugins/pipedrive/src/index.js +43 -73
  319. package/dist/plugins/plaud/src/index.js +2 -1
  320. package/dist/plugins/plaud/src/shared.js +23 -19
  321. package/dist/plugins/plivo/src/credentials.js +20 -0
  322. package/dist/plugins/plivo/src/index.js +13 -19
  323. package/dist/plugins/posthog/src/credentials.js +18 -0
  324. package/dist/plugins/posthog/src/index.js +14 -20
  325. package/dist/plugins/profitwell/src/credentials.js +22 -0
  326. package/dist/plugins/profitwell/src/index.js +10 -17
  327. package/dist/plugins/pushbullet/src/credentials.js +19 -0
  328. package/dist/plugins/pushbullet/src/index.js +19 -27
  329. package/dist/plugins/pushcut/src/credentials.js +19 -0
  330. package/dist/plugins/pushcut/src/index.js +7 -8
  331. package/dist/plugins/pushover/src/credentials.js +14 -0
  332. package/dist/plugins/pushover/src/index.js +7 -12
  333. package/dist/plugins/quickbase/src/credentials.js +15 -0
  334. package/dist/plugins/quickbase/src/index.js +24 -34
  335. package/dist/plugins/quickbooks/src/credentials.js +22 -0
  336. package/dist/plugins/quickbooks/src/index.js +17 -46
  337. package/dist/plugins/raindrop/src/credentials.js +19 -0
  338. package/dist/plugins/raindrop/src/index.js +30 -32
  339. package/dist/plugins/recraft/src/credentials.js +13 -0
  340. package/dist/plugins/recraft/src/index.js +38 -27
  341. package/dist/plugins/reddit/src/credentials.js +26 -0
  342. package/dist/plugins/reddit/src/index.js +30 -34
  343. package/dist/plugins/replicate/src/credentials.js +23 -0
  344. package/dist/plugins/replicate/src/index.js +17 -27
  345. package/dist/plugins/rocketchat/src/credentials.js +17 -0
  346. package/dist/plugins/rocketchat/src/index.js +8 -19
  347. package/dist/plugins/rundeck/src/credentials.js +16 -0
  348. package/dist/plugins/rundeck/src/index.js +12 -28
  349. package/dist/plugins/salesforce/src/credentials.js +73 -0
  350. package/dist/plugins/salesforce/src/index.js +6 -0
  351. package/dist/plugins/salesforce/src/metadata.js +3 -16
  352. package/dist/plugins/salesforce/src/shared.js +25 -100
  353. package/dist/plugins/salesforce/src/sobjects.js +10 -9
  354. package/dist/plugins/salesmate/src/credentials.js +17 -0
  355. package/dist/plugins/salesmate/src/index.js +20 -37
  356. package/dist/plugins/securityScorecard/src/credentials.js +22 -0
  357. package/dist/plugins/securityScorecard/src/index.js +24 -37
  358. package/dist/plugins/segment/src/credentials.js +16 -0
  359. package/dist/plugins/segment/src/index.js +12 -16
  360. package/dist/plugins/sendgrid/src/credentials.js +13 -0
  361. package/dist/plugins/sendgrid/src/index.js +31 -35
  362. package/dist/plugins/sendy/src/credentials.js +18 -0
  363. package/dist/plugins/sendy/src/index.js +18 -24
  364. package/dist/plugins/sentry/src/credentials.js +16 -0
  365. package/dist/plugins/sentry/src/index.js +30 -98
  366. package/dist/plugins/servicenow/src/credentials.js +13 -0
  367. package/dist/plugins/servicenow/src/index.js +22 -41
  368. package/dist/plugins/shiftAtlas/src/graph.js +2 -2
  369. package/dist/plugins/shiftAtlas/src/index.js +2 -0
  370. package/dist/plugins/shiftAtlas/src/shared.js +3 -1
  371. package/dist/plugins/shiftBwm/src/index.js +4 -2
  372. package/dist/plugins/shiftBwm/src/shared.js +41 -16
  373. package/dist/plugins/shiftCrm/src/access.js +2 -2
  374. package/dist/plugins/shiftCrm/src/accounts.js +3 -3
  375. package/dist/plugins/shiftCrm/src/activities.js +3 -3
  376. package/dist/plugins/shiftCrm/src/credentials.js +6 -0
  377. package/dist/plugins/shiftCrm/src/index.js +2 -0
  378. package/dist/plugins/shiftCrm/src/opportunities.js +3 -3
  379. package/dist/plugins/shiftCrm/src/people.js +3 -3
  380. package/dist/plugins/shiftCrm/src/records.js +2 -2
  381. package/dist/plugins/shiftCrm/src/shared.js +2 -1
  382. package/dist/plugins/shiftCrm/src/tasks.js +3 -3
  383. package/dist/plugins/shiftObjects/src/credentials.js +2 -0
  384. package/dist/plugins/shiftObjects/src/index.js +2 -0
  385. package/dist/plugins/shiftObjects/src/objects.js +3 -2
  386. package/dist/plugins/shiftOcr/src/credentials.js +8 -0
  387. package/dist/plugins/shiftOcr/src/index.js +6 -5
  388. package/dist/plugins/shiftPages/src/index.js +2 -0
  389. package/dist/plugins/shiftPages/src/pages.js +5 -3
  390. package/dist/plugins/shiftPages/src/shared.js +3 -1
  391. package/dist/plugins/shiftTranscription/src/index.js +2 -0
  392. package/dist/plugins/shiftTranscription/src/shared.js +11 -1
  393. package/dist/plugins/shiftTranscription/src/transcription.js +4 -4
  394. package/dist/plugins/shiftWork/src/index.js +2 -0
  395. package/dist/plugins/shiftWork/src/issue-views.js +5 -5
  396. package/dist/plugins/shiftWork/src/issues.js +11 -7
  397. package/dist/plugins/shiftWork/src/projects.js +3 -3
  398. package/dist/plugins/shiftWork/src/shared.js +3 -1
  399. package/dist/plugins/shopify/src/credentials.js +16 -0
  400. package/dist/plugins/shopify/src/index.js +32 -59
  401. package/dist/plugins/signl4/src/credentials.js +17 -0
  402. package/dist/plugins/signl4/src/index.js +28 -29
  403. package/dist/plugins/slack/src/credentials.js +19 -0
  404. package/dist/plugins/slack/src/index.js +51 -60
  405. package/dist/plugins/sms77/src/credentials.js +17 -0
  406. package/dist/plugins/sms77/src/index.js +11 -16
  407. package/dist/plugins/splunk/src/credentials.js +19 -0
  408. package/dist/plugins/splunk/src/index.js +32 -74
  409. package/dist/plugins/spotify/src/credentials.js +19 -0
  410. package/dist/plugins/spotify/src/index.js +40 -55
  411. package/dist/plugins/stackby/src/credentials.js +13 -0
  412. package/dist/plugins/stackby/src/index.js +14 -23
  413. package/dist/plugins/steel/src/auth.js +27 -0
  414. package/dist/plugins/steel/src/browser.js +4 -3
  415. package/dist/plugins/steel/src/captchas.js +4 -3
  416. package/dist/plugins/steel/src/extensions.js +3 -2
  417. package/dist/plugins/steel/src/files.js +9 -10
  418. package/dist/plugins/steel/src/index.js +2 -0
  419. package/dist/plugins/steel/src/page/tools.js +3 -3
  420. package/dist/plugins/steel/src/profiles.js +4 -3
  421. package/dist/plugins/steel/src/sessions.js +13 -13
  422. package/dist/plugins/steel/src/shared.js +21 -51
  423. package/dist/plugins/storyblok/src/credentials.js +37 -0
  424. package/dist/plugins/storyblok/src/index.js +22 -66
  425. package/dist/plugins/strapi/src/credentials.js +71 -0
  426. package/dist/plugins/strapi/src/index.js +36 -70
  427. package/dist/plugins/strava/src/credentials.js +19 -0
  428. package/dist/plugins/strava/src/index.js +16 -33
  429. package/dist/plugins/stripe/src/credentials.js +19 -0
  430. package/dist/plugins/stripe/src/index.js +44 -58
  431. package/dist/plugins/supabase/src/credentials.js +30 -0
  432. package/dist/plugins/supabase/src/index.js +18 -40
  433. package/dist/plugins/syncromsp/src/credentials.js +16 -0
  434. package/dist/plugins/syncromsp/src/index.js +37 -70
  435. package/dist/plugins/tapfiliate/src/credentials.js +13 -0
  436. package/dist/plugins/tapfiliate/src/index.js +21 -31
  437. package/dist/plugins/telegram/src/credentials.js +20 -0
  438. package/dist/plugins/telegram/src/index.js +31 -39
  439. package/dist/plugins/thehive/src/credentials.js +14 -0
  440. package/dist/plugins/thehive/src/index.js +33 -50
  441. package/dist/plugins/thehiveProject/src/credentials.js +16 -0
  442. package/dist/plugins/thehiveProject/src/index.js +53 -122
  443. package/dist/plugins/todoist/src/credentials.js +26 -0
  444. package/dist/plugins/todoist/src/index.js +49 -79
  445. package/dist/plugins/together/src/credentials.js +16 -0
  446. package/dist/plugins/together/src/index.js +30 -32
  447. package/dist/plugins/travisci/src/credentials.js +24 -0
  448. package/dist/plugins/travisci/src/index.js +16 -30
  449. package/dist/plugins/trello/src/credentials.js +29 -0
  450. package/dist/plugins/trello/src/index.js +49 -64
  451. package/dist/plugins/twake/src/credentials.js +16 -0
  452. package/dist/plugins/twake/src/index.js +8 -10
  453. package/dist/plugins/twilio/src/credentials.js +23 -0
  454. package/dist/plugins/twilio/src/index.js +12 -26
  455. package/dist/plugins/twist/src/credentials.js +13 -0
  456. package/dist/plugins/twist/src/index.js +32 -44
  457. package/dist/plugins/twitter/src/credentials.js +16 -0
  458. package/dist/plugins/twitter/src/index.js +25 -37
  459. package/dist/plugins/typesafe/src/credentials.js +28 -0
  460. package/dist/plugins/typesafe/src/index.js +3 -1
  461. package/dist/plugins/typesafe/src/shared.js +23 -35
  462. package/dist/plugins/unleashedSoftware/src/credentials.js +21 -0
  463. package/dist/plugins/unleashedSoftware/src/index.js +13 -37
  464. package/dist/plugins/uplead/src/credentials.js +16 -0
  465. package/dist/plugins/uplead/src/index.js +11 -16
  466. package/dist/plugins/uproc/src/credentials.js +14 -0
  467. package/dist/plugins/uproc/src/index.js +7 -10
  468. package/dist/plugins/uptimerobot/src/credentials.js +14 -0
  469. package/dist/plugins/uptimerobot/src/index.js +28 -39
  470. package/dist/plugins/urlscanio/src/credentials.js +13 -0
  471. package/dist/plugins/urlscanio/src/index.js +13 -22
  472. package/dist/plugins/vercel/src/credentials.js +19 -0
  473. package/dist/plugins/vercel/src/deployments.js +27 -11
  474. package/dist/plugins/vercel/src/env.js +31 -12
  475. package/dist/plugins/vercel/src/index.js +2 -0
  476. package/dist/plugins/vercel/src/projects.js +6 -3
  477. package/dist/plugins/vercel/src/shared.js +32 -37
  478. package/dist/plugins/vero/src/credentials.js +17 -0
  479. package/dist/plugins/vero/src/index.js +18 -21
  480. package/dist/plugins/vonage/src/credentials.js +17 -0
  481. package/dist/plugins/vonage/src/index.js +14 -18
  482. package/dist/plugins/wekan/src/credentials.js +16 -0
  483. package/dist/plugins/wekan/src/index.js +33 -46
  484. package/dist/plugins/wolt/src/account.js +6 -0
  485. package/dist/plugins/wolt/src/catalog.js +2 -2
  486. package/dist/plugins/wolt/src/credentials.js +64 -0
  487. package/dist/plugins/wolt/src/index.js +8 -3
  488. package/dist/plugins/wolt/src/orders.js +2 -2
  489. package/dist/plugins/wolt/src/public.js +91 -0
  490. package/dist/plugins/wolt/src/shared.js +49 -158
  491. package/dist/plugins/woocommerce/src/credentials.js +16 -0
  492. package/dist/plugins/woocommerce/src/index.js +19 -37
  493. package/dist/plugins/wordpress/src/credentials.js +16 -0
  494. package/dist/plugins/wordpress/src/index.js +23 -42
  495. package/dist/plugins/xai/src/credentials.js +13 -0
  496. package/dist/plugins/xai/src/index.js +31 -30
  497. package/dist/plugins/xero/src/credentials.js +17 -0
  498. package/dist/plugins/xero/src/index.js +19 -36
  499. package/dist/plugins/yourls/src/credentials.js +17 -0
  500. package/dist/plugins/yourls/src/index.js +13 -23
  501. package/dist/plugins/zammad/src/credentials.js +15 -0
  502. package/dist/plugins/zammad/src/index.js +27 -47
  503. package/dist/plugins/zendesk/src/credentials.js +26 -0
  504. package/dist/plugins/zendesk/src/index.js +29 -48
  505. package/dist/plugins/zoho/src/credentials.js +17 -0
  506. package/dist/plugins/zoho/src/index.js +18 -38
  507. package/dist/plugins/zoom/src/credentials.js +19 -0
  508. package/dist/plugins/zoom/src/index.js +15 -30
  509. package/dist/plugins/zulip/src/credentials.js +16 -0
  510. package/dist/plugins/zulip/src/index.js +36 -42
  511. package/dist/sdk.d.ts +8 -0
  512. package/dist/sdk.js +3 -0
  513. package/package.json +1 -1
  514. package/dist/plugins/_shared/authedFetch.js +0 -33
  515. package/dist/plugins/_shared/tokenRefresh.js +0 -41
@@ -1,35 +1,20 @@
1
- const BASE = "https://api.trello.com/1";
2
- function getConn(ctx) {
3
- return {
4
- apiKey: ctx.connection.config.apiKey,
5
- token: ctx.connection.config.token,
6
- };
7
- }
8
- async function apiRequest(conn, method, endpoint, body, qs) {
9
- const url = new URL(`${BASE}/${endpoint}`);
10
- url.searchParams.set("key", conn.apiKey);
11
- url.searchParams.set("token", conn.token);
12
- if (qs) {
13
- for (const [k, v] of Object.entries(qs)) {
14
- if (v !== undefined && v !== null)
15
- url.searchParams.set(k, String(v));
16
- }
17
- }
18
- const init = {
1
+ import { credentialJson, pathSegment } from "../../_shared/credentials.js";
2
+ import { trelloCredential } from "./credentials.js";
3
+ function apiRequest(ctx, method, path, body, query) {
4
+ return credentialJson(ctx, trelloCredential, "trello", {
5
+ target: "api",
6
+ path,
19
7
  method,
20
- headers: { "Content-Type": "application/json" },
21
- };
22
- if (body && Object.keys(body).length > 0 && method !== "GET")
23
- init.body = JSON.stringify(body);
24
- const res = await fetch(url.toString(), init);
25
- if (!res.ok)
26
- throw new Error(`Trello error ${res.status}: ${await res.text()}`);
27
- const text = await res.text();
28
- return text ? JSON.parse(text) : {};
8
+ query,
9
+ ...(body && Object.keys(body).length > 0 && method !== "GET"
10
+ ? { json: body }
11
+ : {}),
12
+ });
29
13
  }
30
14
  export default function trello(rl) {
31
15
  rl.setName("trello");
32
16
  rl.setVersion("0.1.0");
17
+ rl.setCredential(trelloCredential);
33
18
  rl.setConnectionSchema({
34
19
  apiKey: {
35
20
  type: "string",
@@ -54,7 +39,7 @@ export default function trello(rl) {
54
39
  },
55
40
  async execute(input, ctx) {
56
41
  const p = input;
57
- return apiRequest(getConn(ctx), "POST", "boards", {
42
+ return apiRequest(ctx, "POST", "boards", {
58
43
  name: p.name,
59
44
  desc: p.description,
60
45
  });
@@ -65,7 +50,7 @@ export default function trello(rl) {
65
50
  description: "Get a board by ID",
66
51
  inputSchema: { id: { type: "string", required: true } },
67
52
  async execute(input, ctx) {
68
- return apiRequest(getConn(ctx), "GET", `boards/${input.id}`);
53
+ return apiRequest(ctx, "GET", `boards/${pathSegment(input.id)}`);
69
54
  },
70
55
  });
71
56
  rl.registerAction("board.update", {
@@ -86,7 +71,7 @@ export default function trello(rl) {
86
71
  qs.desc = fields.description;
87
72
  if (fields.closed !== undefined)
88
73
  qs.closed = fields.closed;
89
- return apiRequest(getConn(ctx), "PUT", `boards/${id}`, undefined, qs);
74
+ return apiRequest(ctx, "PUT", `boards/${pathSegment(id)}`, undefined, qs);
90
75
  },
91
76
  });
92
77
  rl.registerAction("board.delete", {
@@ -94,7 +79,7 @@ export default function trello(rl) {
94
79
  description: "Delete a board",
95
80
  inputSchema: { id: { type: "string", required: true } },
96
81
  async execute(input, ctx) {
97
- return apiRequest(getConn(ctx), "DELETE", `boards/${input.id}`);
82
+ return apiRequest(ctx, "DELETE", `boards/${pathSegment(input.id)}`);
98
83
  },
99
84
  });
100
85
  // ── Board Member ────────────────────────────────────
@@ -107,7 +92,7 @@ export default function trello(rl) {
107
92
  },
108
93
  async execute(input, ctx) {
109
94
  const p = (input ?? {});
110
- const data = (await apiRequest(getConn(ctx), "GET", `boards/${p.boardId}/members`));
95
+ const data = (await apiRequest(ctx, "GET", `boards/${pathSegment(p.boardId)}/members`));
111
96
  return p.limit ? data.slice(0, p.limit) : data;
112
97
  },
113
98
  });
@@ -125,7 +110,7 @@ export default function trello(rl) {
125
110
  },
126
111
  async execute(input, ctx) {
127
112
  const p = input;
128
- return apiRequest(getConn(ctx), "PUT", `boards/${p.boardId}/members/${p.memberId}`, undefined, { type: p.type });
113
+ return apiRequest(ctx, "PUT", `boards/${pathSegment(p.boardId)}/members/${pathSegment(p.memberId)}`, undefined, { type: p.type });
129
114
  },
130
115
  });
131
116
  rl.registerAction("boardMember.remove", {
@@ -137,7 +122,7 @@ export default function trello(rl) {
137
122
  },
138
123
  async execute(input, ctx) {
139
124
  const p = input;
140
- return apiRequest(getConn(ctx), "DELETE", `boards/${p.boardId}/members/${p.memberId}`);
125
+ return apiRequest(ctx, "DELETE", `boards/${pathSegment(p.boardId)}/members/${pathSegment(p.memberId)}`);
141
126
  },
142
127
  });
143
128
  // ── Card ────────────────────────────────────────────
@@ -157,7 +142,7 @@ export default function trello(rl) {
157
142
  body.desc = p.description;
158
143
  if (p.due)
159
144
  body.due = p.due;
160
- return apiRequest(getConn(ctx), "POST", "cards", body);
145
+ return apiRequest(ctx, "POST", "cards", body);
161
146
  },
162
147
  });
163
148
  rl.registerAction("card.get", {
@@ -165,7 +150,7 @@ export default function trello(rl) {
165
150
  description: "Get a card by ID",
166
151
  inputSchema: { id: { type: "string", required: true } },
167
152
  async execute(input, ctx) {
168
- return apiRequest(getConn(ctx), "GET", `cards/${input.id}`);
153
+ return apiRequest(ctx, "GET", `cards/${pathSegment(input.id)}`);
169
154
  },
170
155
  });
171
156
  rl.registerAction("card.update", {
@@ -192,7 +177,7 @@ export default function trello(rl) {
192
177
  qs.idList = fields.idList;
193
178
  if (fields.due)
194
179
  qs.due = fields.due;
195
- return apiRequest(getConn(ctx), "PUT", `cards/${id}`, undefined, qs);
180
+ return apiRequest(ctx, "PUT", `cards/${pathSegment(id)}`, undefined, qs);
196
181
  },
197
182
  });
198
183
  rl.registerAction("card.delete", {
@@ -200,7 +185,7 @@ export default function trello(rl) {
200
185
  description: "Delete a card",
201
186
  inputSchema: { id: { type: "string", required: true } },
202
187
  async execute(input, ctx) {
203
- return apiRequest(getConn(ctx), "DELETE", `cards/${input.id}`);
188
+ return apiRequest(ctx, "DELETE", `cards/${pathSegment(input.id)}`);
204
189
  },
205
190
  });
206
191
  // ── Card Comment ────────────────────────────────────
@@ -213,7 +198,7 @@ export default function trello(rl) {
213
198
  },
214
199
  async execute(input, ctx) {
215
200
  const p = input;
216
- return apiRequest(getConn(ctx), "POST", `cards/${p.cardId}/actions/comments`, { text: p.text });
201
+ return apiRequest(ctx, "POST", `cards/${pathSegment(p.cardId)}/actions/comments`, { text: p.text });
217
202
  },
218
203
  });
219
204
  rl.registerAction("cardComment.update", {
@@ -226,7 +211,7 @@ export default function trello(rl) {
226
211
  },
227
212
  async execute(input, ctx) {
228
213
  const p = input;
229
- return apiRequest(getConn(ctx), "PUT", `cards/${p.cardId}/actions/${p.commentId}/comments`, undefined, { text: p.text });
214
+ return apiRequest(ctx, "PUT", `cards/${pathSegment(p.cardId)}/actions/${pathSegment(p.commentId)}/comments`, undefined, { text: p.text });
230
215
  },
231
216
  });
232
217
  rl.registerAction("cardComment.delete", {
@@ -238,7 +223,7 @@ export default function trello(rl) {
238
223
  },
239
224
  async execute(input, ctx) {
240
225
  const p = input;
241
- return apiRequest(getConn(ctx), "DELETE", `cards/${p.cardId}/actions/${p.commentId}/comments`);
226
+ return apiRequest(ctx, "DELETE", `cards/${pathSegment(p.cardId)}/actions/${pathSegment(p.commentId)}/comments`);
242
227
  },
243
228
  });
244
229
  // ── List ────────────────────────────────────────────
@@ -251,7 +236,7 @@ export default function trello(rl) {
251
236
  },
252
237
  async execute(input, ctx) {
253
238
  const p = input;
254
- return apiRequest(getConn(ctx), "POST", "lists", {
239
+ return apiRequest(ctx, "POST", "lists", {
255
240
  idBoard: p.boardId,
256
241
  name: p.name,
257
242
  });
@@ -262,7 +247,7 @@ export default function trello(rl) {
262
247
  description: "Get a list by ID",
263
248
  inputSchema: { id: { type: "string", required: true } },
264
249
  async execute(input, ctx) {
265
- return apiRequest(getConn(ctx), "GET", `lists/${input.id}`);
250
+ return apiRequest(ctx, "GET", `lists/${pathSegment(input.id)}`);
266
251
  },
267
252
  });
268
253
  rl.registerAction("list.listAll", {
@@ -274,7 +259,7 @@ export default function trello(rl) {
274
259
  },
275
260
  async execute(input, ctx) {
276
261
  const p = (input ?? {});
277
- const data = (await apiRequest(getConn(ctx), "GET", `boards/${p.boardId}/lists`));
262
+ const data = (await apiRequest(ctx, "GET", `boards/${pathSegment(p.boardId)}/lists`));
278
263
  return p.limit ? data.slice(0, p.limit) : data;
279
264
  },
280
265
  });
@@ -287,7 +272,7 @@ export default function trello(rl) {
287
272
  },
288
273
  async execute(input, ctx) {
289
274
  const p = (input ?? {});
290
- const data = (await apiRequest(getConn(ctx), "GET", `lists/${p.listId}/cards`));
275
+ const data = (await apiRequest(ctx, "GET", `lists/${pathSegment(p.listId)}/cards`));
291
276
  return p.limit ? data.slice(0, p.limit) : data;
292
277
  },
293
278
  });
@@ -306,7 +291,7 @@ export default function trello(rl) {
306
291
  qs.name = fields.name;
307
292
  if (fields.closed !== undefined)
308
293
  qs.closed = fields.closed;
309
- return apiRequest(getConn(ctx), "PUT", `lists/${id}`, undefined, qs);
294
+ return apiRequest(ctx, "PUT", `lists/${pathSegment(id)}`, undefined, qs);
310
295
  },
311
296
  });
312
297
  // ── Attachment ──────────────────────────────────────
@@ -323,7 +308,7 @@ export default function trello(rl) {
323
308
  const body = { url: p.url };
324
309
  if (p.name)
325
310
  body.name = p.name;
326
- return apiRequest(getConn(ctx), "POST", `cards/${p.cardId}/attachments`, body);
311
+ return apiRequest(ctx, "POST", `cards/${pathSegment(p.cardId)}/attachments`, body);
327
312
  },
328
313
  });
329
314
  rl.registerAction("attachment.get", {
@@ -335,7 +320,7 @@ export default function trello(rl) {
335
320
  },
336
321
  async execute(input, ctx) {
337
322
  const p = input;
338
- return apiRequest(getConn(ctx), "GET", `cards/${p.cardId}/attachments/${p.id}`);
323
+ return apiRequest(ctx, "GET", `cards/${pathSegment(p.cardId)}/attachments/${pathSegment(p.id)}`);
339
324
  },
340
325
  });
341
326
  rl.registerAction("attachment.list", {
@@ -343,7 +328,7 @@ export default function trello(rl) {
343
328
  description: "List attachments on a card",
344
329
  inputSchema: { cardId: { type: "string", required: true } },
345
330
  async execute(input, ctx) {
346
- return apiRequest(getConn(ctx), "GET", `cards/${input.cardId}/attachments`);
331
+ return apiRequest(ctx, "GET", `cards/${pathSegment(input.cardId)}/attachments`);
347
332
  },
348
333
  });
349
334
  rl.registerAction("attachment.delete", {
@@ -355,7 +340,7 @@ export default function trello(rl) {
355
340
  },
356
341
  async execute(input, ctx) {
357
342
  const p = input;
358
- return apiRequest(getConn(ctx), "DELETE", `cards/${p.cardId}/attachments/${p.id}`);
343
+ return apiRequest(ctx, "DELETE", `cards/${pathSegment(p.cardId)}/attachments/${pathSegment(p.id)}`);
359
344
  },
360
345
  });
361
346
  // ── Checklist ───────────────────────────────────────
@@ -368,7 +353,7 @@ export default function trello(rl) {
368
353
  },
369
354
  async execute(input, ctx) {
370
355
  const p = input;
371
- return apiRequest(getConn(ctx), "POST", `cards/${p.cardId}/checklists`, {
356
+ return apiRequest(ctx, "POST", `cards/${pathSegment(p.cardId)}/checklists`, {
372
357
  name: p.name,
373
358
  });
374
359
  },
@@ -378,7 +363,7 @@ export default function trello(rl) {
378
363
  description: "Get a checklist by ID",
379
364
  inputSchema: { id: { type: "string", required: true } },
380
365
  async execute(input, ctx) {
381
- return apiRequest(getConn(ctx), "GET", `checklists/${input.id}`);
366
+ return apiRequest(ctx, "GET", `checklists/${pathSegment(input.id)}`);
382
367
  },
383
368
  });
384
369
  rl.registerAction("checklist.list", {
@@ -386,7 +371,7 @@ export default function trello(rl) {
386
371
  description: "List checklists on a card",
387
372
  inputSchema: { cardId: { type: "string", required: true } },
388
373
  async execute(input, ctx) {
389
- return apiRequest(getConn(ctx), "GET", `cards/${input.cardId}/checklists`);
374
+ return apiRequest(ctx, "GET", `cards/${pathSegment(input.cardId)}/checklists`);
390
375
  },
391
376
  });
392
377
  rl.registerAction("checklist.delete", {
@@ -398,7 +383,7 @@ export default function trello(rl) {
398
383
  },
399
384
  async execute(input, ctx) {
400
385
  const p = input;
401
- return apiRequest(getConn(ctx), "DELETE", `cards/${p.cardId}/checklists/${p.id}`);
386
+ return apiRequest(ctx, "DELETE", `cards/${pathSegment(p.cardId)}/checklists/${pathSegment(p.id)}`);
402
387
  },
403
388
  });
404
389
  rl.registerAction("checklist.createItem", {
@@ -410,7 +395,7 @@ export default function trello(rl) {
410
395
  },
411
396
  async execute(input, ctx) {
412
397
  const p = input;
413
- return apiRequest(getConn(ctx), "POST", `checklists/${p.checklistId}/checkItems`, { name: p.name });
398
+ return apiRequest(ctx, "POST", `checklists/${pathSegment(p.checklistId)}/checkItems`, { name: p.name });
414
399
  },
415
400
  });
416
401
  rl.registerAction("checklist.updateItem", {
@@ -433,7 +418,7 @@ export default function trello(rl) {
433
418
  qs.state = p.state;
434
419
  if (p.name)
435
420
  qs.name = p.name;
436
- return apiRequest(getConn(ctx), "PUT", `cards/${p.cardId}/checkItem/${p.checkItemId}`, undefined, qs);
421
+ return apiRequest(ctx, "PUT", `cards/${pathSegment(p.cardId)}/checkItem/${pathSegment(p.checkItemId)}`, undefined, qs);
437
422
  },
438
423
  });
439
424
  rl.registerAction("checklist.deleteItem", {
@@ -445,7 +430,7 @@ export default function trello(rl) {
445
430
  },
446
431
  async execute(input, ctx) {
447
432
  const p = input;
448
- return apiRequest(getConn(ctx), "DELETE", `cards/${p.cardId}/checkItem/${p.checkItemId}`);
433
+ return apiRequest(ctx, "DELETE", `cards/${pathSegment(p.cardId)}/checkItem/${pathSegment(p.checkItemId)}`);
449
434
  },
450
435
  });
451
436
  // ── Label ───────────────────────────────────────────
@@ -463,7 +448,7 @@ export default function trello(rl) {
463
448
  },
464
449
  async execute(input, ctx) {
465
450
  const p = input;
466
- return apiRequest(getConn(ctx), "POST", "labels", {
451
+ return apiRequest(ctx, "POST", "labels", {
467
452
  idBoard: p.boardId,
468
453
  name: p.name,
469
454
  color: p.color,
@@ -475,7 +460,7 @@ export default function trello(rl) {
475
460
  description: "Get a label by ID",
476
461
  inputSchema: { id: { type: "string", required: true } },
477
462
  async execute(input, ctx) {
478
- return apiRequest(getConn(ctx), "GET", `labels/${input.id}`);
463
+ return apiRequest(ctx, "GET", `labels/${pathSegment(input.id)}`);
479
464
  },
480
465
  });
481
466
  rl.registerAction("label.list", {
@@ -483,7 +468,7 @@ export default function trello(rl) {
483
468
  description: "List labels on a board",
484
469
  inputSchema: { boardId: { type: "string", required: true } },
485
470
  async execute(input, ctx) {
486
- return apiRequest(getConn(ctx), "GET", `board/${input.boardId}/labels`);
471
+ return apiRequest(ctx, "GET", `board/${pathSegment(input.boardId)}/labels`);
487
472
  },
488
473
  });
489
474
  rl.registerAction("label.update", {
@@ -496,7 +481,7 @@ export default function trello(rl) {
496
481
  },
497
482
  async execute(input, ctx) {
498
483
  const { id, ...fields } = input;
499
- return apiRequest(getConn(ctx), "PUT", `labels/${id}`, undefined, fields);
484
+ return apiRequest(ctx, "PUT", `labels/${pathSegment(id)}`, undefined, fields);
500
485
  },
501
486
  });
502
487
  rl.registerAction("label.delete", {
@@ -504,7 +489,7 @@ export default function trello(rl) {
504
489
  description: "Delete a label",
505
490
  inputSchema: { id: { type: "string", required: true } },
506
491
  async execute(input, ctx) {
507
- return apiRequest(getConn(ctx), "DELETE", `labels/${input.id}`);
492
+ return apiRequest(ctx, "DELETE", `labels/${pathSegment(input.id)}`);
508
493
  },
509
494
  });
510
495
  rl.registerAction("label.addToCard", {
@@ -516,7 +501,7 @@ export default function trello(rl) {
516
501
  },
517
502
  async execute(input, ctx) {
518
503
  const p = input;
519
- return apiRequest(getConn(ctx), "POST", `cards/${p.cardId}/idLabels`, {
504
+ return apiRequest(ctx, "POST", `cards/${pathSegment(p.cardId)}/idLabels`, {
520
505
  value: p.labelId,
521
506
  });
522
507
  },
@@ -530,7 +515,7 @@ export default function trello(rl) {
530
515
  },
531
516
  async execute(input, ctx) {
532
517
  const p = input;
533
- return apiRequest(getConn(ctx), "DELETE", `cards/${p.cardId}/idLabels/${p.labelId}`);
518
+ return apiRequest(ctx, "DELETE", `cards/${pathSegment(p.cardId)}/idLabels/${pathSegment(p.labelId)}`);
534
519
  },
535
520
  });
536
521
  }
@@ -0,0 +1,16 @@
1
+ import { staticCredential } from "../../_shared/credentials.js";
2
+ /**
3
+ * A workspace API key, sent as a bearer to Twake's one runline plugin
4
+ * action base.
5
+ */
6
+ export const twakeCredential = staticCredential({
7
+ id: "twake",
8
+ auth: { kind: "bearer" },
9
+ local: { secret: "apiKey" },
10
+ targets: {
11
+ api: {
12
+ baseUrl: "https://plugins.twake.app/plugins/runline/actions/message/",
13
+ methods: ["POST"],
14
+ },
15
+ },
16
+ });
@@ -1,6 +1,9 @@
1
+ import { credentialJson } from "../../_shared/credentials.js";
2
+ import { twakeCredential } from "./credentials.js";
1
3
  export default function twake(rl) {
2
4
  rl.setName("twake");
3
5
  rl.setVersion("0.1.0");
6
+ rl.setCredential(twakeCredential);
4
7
  rl.setConnectionSchema({
5
8
  apiKey: {
6
9
  type: "string",
@@ -32,17 +35,12 @@ export default function twake(rl) {
32
35
  hidden_data: hiddenData,
33
36
  },
34
37
  };
35
- const res = await fetch("https://plugins.twake.app/plugins/runline/actions/message/save", {
38
+ const data = (await credentialJson(ctx, twakeCredential, "twake", {
39
+ target: "api",
40
+ path: "save",
36
41
  method: "POST",
37
- headers: {
38
- Authorization: `Bearer ${ctx.connection.config.apiKey}`,
39
- "Content-Type": "application/json",
40
- },
41
- body: JSON.stringify(body),
42
- });
43
- if (!res.ok)
44
- throw new Error(`Twake error ${res.status}: ${await res.text()}`);
45
- const data = (await res.json());
42
+ json: body,
43
+ }));
46
44
  return data.object;
47
45
  },
48
46
  });
@@ -0,0 +1,23 @@
1
+ import { staticCredential } from "../../_shared/credentials.js";
2
+ /**
3
+ * The account SID and auth token: the SID is both the Basic username and
4
+ * the account segment of every path, so one stored part serves both.
5
+ */
6
+ export const twilioCredential = staticCredential({
7
+ id: "twilio",
8
+ auth: {
9
+ kind: "static",
10
+ parts: ["accountSid", "authToken"],
11
+ placements: [
12
+ { in: "path", part: "accountSid" },
13
+ { in: "basic", username: "accountSid", password: "authToken" },
14
+ ],
15
+ },
16
+ local: { accountSid: "accountSid", authToken: "authToken" },
17
+ targets: {
18
+ api: {
19
+ baseUrl: "https://api.twilio.com/2010-04-01/Accounts/",
20
+ methods: ["POST"],
21
+ },
22
+ },
23
+ });
@@ -1,28 +1,13 @@
1
- function getConn(ctx) {
2
- const c = ctx.connection.config;
3
- return {
4
- accountSid: c.accountSid,
5
- authToken: c.authToken,
6
- };
7
- }
8
- async function apiRequest(conn, method, endpoint, body) {
9
- const url = `https://api.twilio.com/2010-04-01/Accounts/${conn.accountSid}${endpoint}`;
10
- const form = new URLSearchParams();
11
- for (const [k, v] of Object.entries(body)) {
12
- if (v !== undefined && v !== null && v !== "")
13
- form.set(k, String(v));
14
- }
15
- const res = await fetch(url, {
16
- method,
17
- headers: {
18
- Authorization: `Basic ${btoa(`${conn.accountSid}:${conn.authToken}`)}`,
19
- "Content-Type": "application/x-www-form-urlencoded",
20
- },
21
- body: form,
1
+ import { credentialJson } from "../../_shared/credentials.js";
2
+ import { twilioCredential } from "./credentials.js";
3
+ /** A Twilio form call beneath the account; empty fields are left out. */
4
+ function apiRequest(ctx, endpoint, body) {
5
+ return credentialJson(ctx, twilioCredential, "twilio", {
6
+ target: "api",
7
+ path: endpoint,
8
+ method: "POST",
9
+ form: Object.fromEntries(Object.entries(body).filter(([, value]) => value !== "")),
22
10
  });
23
- if (!res.ok)
24
- throw new Error(`Twilio error ${res.status}: ${await res.text()}`);
25
- return res.json();
26
11
  }
27
12
  function escapeXml(str) {
28
13
  return str.replace(/[<>&"']/g, (ch) => ({
@@ -36,6 +21,7 @@ function escapeXml(str) {
36
21
  export default function twilio(rl) {
37
22
  rl.setName("twilio");
38
23
  rl.setVersion("0.1.0");
24
+ rl.setCredential(twilioCredential);
39
25
  rl.setConnectionSchema({
40
26
  accountSid: {
41
27
  type: "string",
@@ -80,7 +66,7 @@ export default function twilio(rl) {
80
66
  from = `whatsapp:${from}`;
81
67
  to = `whatsapp:${to}`;
82
68
  }
83
- return apiRequest(getConn(ctx), "POST", "/Messages.json", {
69
+ return apiRequest(ctx, "Messages.json", {
84
70
  From: from,
85
71
  To: to,
86
72
  Body: p.body,
@@ -111,7 +97,7 @@ export default function twilio(rl) {
111
97
  const twiml = p.twiml
112
98
  ? p.message
113
99
  : `<Response><Say>${escapeXml(p.message)}</Say></Response>`;
114
- return apiRequest(getConn(ctx), "POST", "/Calls.json", {
100
+ return apiRequest(ctx, "Calls.json", {
115
101
  From: p.from,
116
102
  To: p.to,
117
103
  Twiml: twiml,
@@ -0,0 +1,13 @@
1
+ import { staticCredential } from "../../_shared/credentials.js";
2
+ /** An OAuth2 access token, sent as a bearer to Twist's one API origin. */
3
+ export const twistCredential = staticCredential({
4
+ id: "twist",
5
+ auth: { kind: "bearer" },
6
+ local: { secret: "accessToken" },
7
+ targets: {
8
+ api: {
9
+ baseUrl: "https://api.twist.com/api/v3/",
10
+ methods: ["GET", "POST"],
11
+ },
12
+ },
13
+ });