runline 0.33.0 → 0.35.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 (531) 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 +21 -8
  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 +184 -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 +177 -10
  15. package/dist/index.d.ts +6 -5
  16. package/dist/index.js +3 -2
  17. package/dist/plugin/api.d.ts +7 -0
  18. package/dist/plugin/api.js +7 -0
  19. package/dist/plugin/schema.d.ts +16 -4
  20. package/dist/plugin/schema.js +28 -5
  21. package/dist/plugin/types.d.ts +20 -0
  22. package/dist/plugins/_shared/base64.js +30 -0
  23. package/dist/plugins/_shared/credentialAdapter.js +99 -15
  24. package/dist/plugins/_shared/credentials.js +416 -0
  25. package/dist/plugins/_shared/googleAuth.js +69 -39
  26. package/dist/plugins/_shared/googleCredentials.js +68 -14
  27. package/dist/plugins/_shared/localFile.js +40 -0
  28. package/dist/plugins/_shared/mediaFile.js +12 -12
  29. package/dist/plugins/_shared/microsoftAuth.js +31 -47
  30. package/dist/plugins/_shared/microsoftCredentials.js +42 -15
  31. package/dist/plugins/_shared/provider.js +2 -14
  32. package/dist/plugins/_shared/shiftCloud.js +16 -56
  33. package/dist/plugins/_shared/shiftCredentials.js +83 -0
  34. package/dist/plugins/_shared/shiftUpload.js +14 -10
  35. package/dist/plugins/actionNetwork/src/credentials.js +14 -0
  36. package/dist/plugins/actionNetwork/src/index.js +39 -50
  37. package/dist/plugins/activeCampaign/src/credentials.js +22 -0
  38. package/dist/plugins/activeCampaign/src/index.js +61 -132
  39. package/dist/plugins/adalo/src/credentials.js +16 -0
  40. package/dist/plugins/adalo/src/index.js +19 -43
  41. package/dist/plugins/affinity/src/credentials.js +19 -0
  42. package/dist/plugins/affinity/src/index.js +29 -54
  43. package/dist/plugins/agentMail/src/credentials.js +35 -0
  44. package/dist/plugins/agentMail/src/drafts.js +137 -0
  45. package/dist/plugins/agentMail/src/inboxes.js +95 -0
  46. package/dist/plugins/agentMail/src/index.js +35 -0
  47. package/dist/plugins/agentMail/src/messages.js +154 -0
  48. package/dist/plugins/agentMail/src/schemas.js +156 -0
  49. package/dist/plugins/agentMail/src/shared.js +203 -0
  50. package/dist/plugins/agentMail/src/threads.js +75 -0
  51. package/dist/plugins/agileCrm/src/credentials.js +16 -0
  52. package/dist/plugins/agileCrm/src/index.js +46 -112
  53. package/dist/plugins/airtable/src/credentials.js +19 -0
  54. package/dist/plugins/airtable/src/index.js +37 -50
  55. package/dist/plugins/airtop/src/credentials.js +20 -0
  56. package/dist/plugins/airtop/src/index.js +51 -75
  57. package/dist/plugins/apiTemplateIo/src/credentials.js +19 -0
  58. package/dist/plugins/apiTemplateIo/src/index.js +14 -31
  59. package/dist/plugins/asana/src/credentials.js +19 -0
  60. package/dist/plugins/asana/src/index.js +51 -72
  61. package/dist/plugins/autopilot/src/credentials.js +19 -0
  62. package/dist/plugins/autopilot/src/index.js +38 -45
  63. package/dist/plugins/bambooHr/src/credentials.js +16 -0
  64. package/dist/plugins/bambooHr/src/index.js +41 -67
  65. package/dist/plugins/bannerbear/src/credentials.js +19 -0
  66. package/dist/plugins/bannerbear/src/index.js +15 -27
  67. package/dist/plugins/baserow/src/credentials.js +17 -0
  68. package/dist/plugins/baserow/src/index.js +23 -49
  69. package/dist/plugins/beeminder/src/credentials.js +19 -0
  70. package/dist/plugins/beeminder/src/index.js +32 -54
  71. package/dist/plugins/bitly/src/credentials.js +19 -0
  72. package/dist/plugins/bitly/src/index.js +12 -26
  73. package/dist/plugins/bitwarden/src/credentials.js +62 -0
  74. package/dist/plugins/bitwarden/src/index.js +34 -80
  75. package/dist/plugins/box/src/credentials.js +19 -0
  76. package/dist/plugins/box/src/index.js +24 -49
  77. package/dist/plugins/brandfetch/src/credentials.js +13 -0
  78. package/dist/plugins/brandfetch/src/index.js +12 -17
  79. package/dist/plugins/brevo/src/credentials.js +19 -0
  80. package/dist/plugins/brevo/src/index.js +30 -51
  81. package/dist/plugins/bubble/src/credentials.js +28 -0
  82. package/dist/plugins/bubble/src/index.js +29 -65
  83. package/dist/plugins/chargebee/src/credentials.js +16 -0
  84. package/dist/plugins/chargebee/src/index.js +15 -45
  85. package/dist/plugins/circleci/src/credentials.js +19 -0
  86. package/dist/plugins/circleci/src/index.js +19 -39
  87. package/dist/plugins/ciscoWebex/src/credentials.js +19 -0
  88. package/dist/plugins/ciscoWebex/src/index.js +43 -61
  89. package/dist/plugins/clearbit/src/credentials.js +22 -0
  90. package/dist/plugins/clearbit/src/index.js +11 -21
  91. package/dist/plugins/clickup/src/credentials.js +19 -0
  92. package/dist/plugins/clickup/src/index.js +85 -117
  93. package/dist/plugins/clockify/src/credentials.js +19 -0
  94. package/dist/plugins/clockify/src/index.js +46 -61
  95. package/dist/plugins/cloudflare/src/credentials.js +19 -0
  96. package/dist/plugins/cloudflare/src/index.js +19 -34
  97. package/dist/plugins/cockpit/src/credentials.js +17 -0
  98. package/dist/plugins/cockpit/src/index.js +18 -31
  99. package/dist/plugins/coda/src/credentials.js +19 -0
  100. package/dist/plugins/coda/src/index.js +33 -50
  101. package/dist/plugins/coingecko/src/credentials.js +20 -0
  102. package/dist/plugins/coingecko/src/index.js +24 -34
  103. package/dist/plugins/contentful/src/credentials.js +26 -0
  104. package/dist/plugins/contentful/src/index.js +19 -40
  105. package/dist/plugins/convertkit/src/credentials.js +26 -0
  106. package/dist/plugins/convertkit/src/index.js +27 -45
  107. package/dist/plugins/copper/src/credentials.js +17 -0
  108. package/dist/plugins/copper/src/index.js +25 -47
  109. package/dist/plugins/cortex/src/credentials.js +28 -0
  110. package/dist/plugins/cortex/src/index.js +26 -49
  111. package/dist/plugins/currents/src/credentials.js +19 -0
  112. package/dist/plugins/currents/src/index.js +46 -59
  113. package/dist/plugins/customerIo/src/credentials.js +52 -0
  114. package/dist/plugins/customerIo/src/index.js +30 -58
  115. package/dist/plugins/databricks/src/credentials.js +13 -0
  116. package/dist/plugins/databricks/src/index.js +51 -103
  117. package/dist/plugins/deepl/src/credentials.js +19 -0
  118. package/dist/plugins/deepl/src/index.js +13 -39
  119. package/dist/plugins/demio/src/credentials.js +26 -0
  120. package/dist/plugins/demio/src/index.js +17 -41
  121. package/dist/plugins/dhl/src/credentials.js +13 -0
  122. package/dist/plugins/dhl/src/index.js +8 -19
  123. package/dist/plugins/discord/src/credentials.js +19 -0
  124. package/dist/plugins/discord/src/index.js +30 -58
  125. package/dist/plugins/discourse/src/credentials.js +18 -0
  126. package/dist/plugins/discourse/src/index.js +36 -53
  127. package/dist/plugins/disqus/src/credentials.js +13 -0
  128. package/dist/plugins/disqus/src/index.js +14 -32
  129. package/dist/plugins/drift/src/credentials.js +13 -0
  130. package/dist/plugins/drift/src/index.js +16 -26
  131. package/dist/plugins/dropbox/src/credentials.js +13 -0
  132. package/dist/plugins/dropbox/src/index.js +23 -30
  133. package/dist/plugins/dropcontact/src/credentials.js +13 -0
  134. package/dist/plugins/dropcontact/src/index.js +13 -18
  135. package/dist/plugins/egoi/src/credentials.js +19 -0
  136. package/dist/plugins/egoi/src/index.js +23 -38
  137. package/dist/plugins/elasticsearch/src/credentials.js +18 -0
  138. package/dist/plugins/elasticsearch/src/index.js +27 -48
  139. package/dist/plugins/elevenlabs/src/credentials.js +30 -0
  140. package/dist/plugins/elevenlabs/src/index.js +4 -1
  141. package/dist/plugins/elevenlabs/src/schemas.js +2 -1
  142. package/dist/plugins/elevenlabs/src/shared.js +87 -62
  143. package/dist/plugins/elevenlabs/src/workflows.js +2 -2
  144. package/dist/plugins/emelia/src/credentials.js +14 -0
  145. package/dist/plugins/emelia/src/index.js +19 -23
  146. package/dist/plugins/erpnext/src/credentials.js +27 -0
  147. package/dist/plugins/erpnext/src/index.js +21 -42
  148. package/dist/plugins/facebookGraph/src/credentials.js +20 -0
  149. package/dist/plugins/facebookGraph/src/index.js +39 -37
  150. package/dist/plugins/fal/src/credentials.js +14 -0
  151. package/dist/plugins/fal/src/index.js +5 -3
  152. package/dist/plugins/fal/src/shared.js +58 -63
  153. package/dist/plugins/freshdesk/src/credentials.js +20 -0
  154. package/dist/plugins/freshdesk/src/index.js +25 -46
  155. package/dist/plugins/freshservice/src/credentials.js +16 -0
  156. package/dist/plugins/freshservice/src/index.js +37 -58
  157. package/dist/plugins/freshworksCrm/src/credentials.js +16 -0
  158. package/dist/plugins/freshworksCrm/src/index.js +20 -39
  159. package/dist/plugins/getresponse/src/credentials.js +22 -0
  160. package/dist/plugins/getresponse/src/index.js +20 -32
  161. package/dist/plugins/gett/src/credentials.js +64 -0
  162. package/dist/plugins/gett/src/index.js +11 -6
  163. package/dist/plugins/gett/src/login.js +24 -0
  164. package/dist/plugins/gett/src/session.js +15 -38
  165. package/dist/plugins/gett/src/shared.js +41 -84
  166. package/dist/plugins/ghost/src/credentials.js +36 -0
  167. package/dist/plugins/ghost/src/index.js +18 -59
  168. package/dist/plugins/github/src/credentials.js +18 -0
  169. package/dist/plugins/github/src/index.js +55 -78
  170. package/dist/plugins/gitlab/src/credentials.js +24 -0
  171. package/dist/plugins/gitlab/src/index.js +29 -48
  172. package/dist/plugins/gmail/src/index.js +47 -108
  173. package/dist/plugins/gong/src/credentials.js +16 -0
  174. package/dist/plugins/gong/src/index.js +16 -32
  175. package/dist/plugins/googleAppsScript/src/index.js +109 -42
  176. package/dist/plugins/googleCalendar/src/index.js +20 -51
  177. package/dist/plugins/googleContacts/src/index.js +13 -40
  178. package/dist/plugins/googleDocs/src/index.js +3 -32
  179. package/dist/plugins/googleDocs/src/shared.js +2 -1
  180. package/dist/plugins/googleDrive/src/index.js +68 -97
  181. package/dist/plugins/googleImage/src/credentials.js +14 -0
  182. package/dist/plugins/googleImage/src/index.js +15 -26
  183. package/dist/plugins/googleSheets/src/index.js +27 -60
  184. package/dist/plugins/googleSlides/src/index.js +7 -35
  185. package/dist/plugins/googleTasks/src/index.js +14 -42
  186. package/dist/plugins/gotify/src/credentials.js +32 -0
  187. package/dist/plugins/gotify/src/index.js +14 -36
  188. package/dist/plugins/gotowebinar/src/credentials.js +13 -0
  189. package/dist/plugins/gotowebinar/src/index.js +52 -69
  190. package/dist/plugins/grafana/src/credentials.js +16 -0
  191. package/dist/plugins/grafana/src/index.js +34 -53
  192. package/dist/plugins/graphql/src/credentials.js +42 -0
  193. package/dist/plugins/graphql/src/index.js +21 -46
  194. package/dist/plugins/grist/src/credentials.js +30 -0
  195. package/dist/plugins/grist/src/index.js +14 -43
  196. package/dist/plugins/halopsa/src/credentials.js +56 -0
  197. package/dist/plugins/halopsa/src/index.js +20 -47
  198. package/dist/plugins/harvest/src/credentials.js +20 -0
  199. package/dist/plugins/harvest/src/index.js +24 -43
  200. package/dist/plugins/helpscout/src/credentials.js +13 -0
  201. package/dist/plugins/helpscout/src/index.js +26 -38
  202. package/dist/plugins/highlevel/src/credentials.js +19 -0
  203. package/dist/plugins/highlevel/src/index.js +42 -65
  204. package/dist/plugins/homeAssistant/src/credentials.js +27 -0
  205. package/dist/plugins/homeAssistant/src/index.js +34 -52
  206. package/dist/plugins/hubspot/src/credentials.js +16 -0
  207. package/dist/plugins/hubspot/src/index.js +29 -41
  208. package/dist/plugins/humanticAi/src/credentials.js +13 -0
  209. package/dist/plugins/humanticAi/src/index.js +15 -22
  210. package/dist/plugins/hunter/src/credentials.js +13 -0
  211. package/dist/plugins/hunter/src/index.js +18 -17
  212. package/dist/plugins/intercom/src/credentials.js +19 -0
  213. package/dist/plugins/intercom/src/index.js +25 -38
  214. package/dist/plugins/iterable/src/credentials.js +17 -0
  215. package/dist/plugins/iterable/src/index.js +26 -40
  216. package/dist/plugins/jenkins/src/credentials.js +16 -0
  217. package/dist/plugins/jenkins/src/index.js +22 -36
  218. package/dist/plugins/jira/src/credentials.js +16 -0
  219. package/dist/plugins/jira/src/index.js +35 -61
  220. package/dist/plugins/keap/src/credentials.js +19 -0
  221. package/dist/plugins/keap/src/index.js +43 -71
  222. package/dist/plugins/kobotoolbox/src/credentials.js +13 -0
  223. package/dist/plugins/kobotoolbox/src/index.js +46 -84
  224. package/dist/plugins/lemlist/src/credentials.js +19 -0
  225. package/dist/plugins/lemlist/src/index.js +35 -47
  226. package/dist/plugins/linear/src/attachments.js +7 -7
  227. package/dist/plugins/linear/src/comments.js +7 -7
  228. package/dist/plugins/linear/src/credentials.js +17 -0
  229. package/dist/plugins/linear/src/cycles.js +5 -5
  230. package/dist/plugins/linear/src/index.js +2 -0
  231. package/dist/plugins/linear/src/initiatives.js +6 -6
  232. package/dist/plugins/linear/src/issues.js +14 -14
  233. package/dist/plugins/linear/src/labels.js +6 -6
  234. package/dist/plugins/linear/src/organization.js +2 -2
  235. package/dist/plugins/linear/src/projects.js +12 -12
  236. package/dist/plugins/linear/src/shared.js +34 -32
  237. package/dist/plugins/linear/src/states.js +3 -3
  238. package/dist/plugins/linear/src/teams.js +4 -4
  239. package/dist/plugins/linear/src/users.js +3 -3
  240. package/dist/plugins/linear/src/views.js +5 -5
  241. package/dist/plugins/linear/src/webhooks.js +5 -5
  242. package/dist/plugins/lingvanex/src/credentials.js +13 -0
  243. package/dist/plugins/lingvanex/src/index.js +7 -9
  244. package/dist/plugins/linkedin/src/credentials.js +17 -0
  245. package/dist/plugins/linkedin/src/index.js +13 -17
  246. package/dist/plugins/lonescale/src/credentials.js +13 -0
  247. package/dist/plugins/lonescale/src/index.js +16 -26
  248. package/dist/plugins/magento/src/credentials.js +16 -0
  249. package/dist/plugins/magento/src/index.js +67 -84
  250. package/dist/plugins/mailcheck/src/credentials.js +17 -0
  251. package/dist/plugins/mailcheck/src/index.js +7 -9
  252. package/dist/plugins/mailchimp/src/credentials.js +32 -0
  253. package/dist/plugins/mailchimp/src/index.js +36 -44
  254. package/dist/plugins/mailerlite/src/credentials.js +13 -0
  255. package/dist/plugins/mailerlite/src/index.js +19 -32
  256. package/dist/plugins/mailgun/src/credentials.js +21 -0
  257. package/dist/plugins/mailgun/src/index.js +15 -21
  258. package/dist/plugins/mailjet/src/credentials.js +38 -0
  259. package/dist/plugins/mailjet/src/index.js +60 -115
  260. package/dist/plugins/mandrill/src/credentials.js +17 -0
  261. package/dist/plugins/mandrill/src/index.js +11 -12
  262. package/dist/plugins/marketstack/src/credentials.js +16 -0
  263. package/dist/plugins/marketstack/src/index.js +18 -28
  264. package/dist/plugins/matrix/src/credentials.js +19 -0
  265. package/dist/plugins/matrix/src/index.js +23 -52
  266. package/dist/plugins/mattermost/src/credentials.js +19 -0
  267. package/dist/plugins/mattermost/src/index.js +41 -73
  268. package/dist/plugins/mautic/src/credentials.js +16 -0
  269. package/dist/plugins/mautic/src/index.js +46 -62
  270. package/dist/plugins/medium/src/credentials.js +20 -0
  271. package/dist/plugins/medium/src/index.js +18 -23
  272. package/dist/plugins/messagebird/src/credentials.js +22 -0
  273. package/dist/plugins/messagebird/src/index.js +13 -18
  274. package/dist/plugins/metabase/src/credentials.js +19 -0
  275. package/dist/plugins/metabase/src/index.js +24 -40
  276. package/dist/plugins/microsoftCalendar/src/index.js +49 -18
  277. package/dist/plugins/microsoftFiles/src/index.js +95 -31
  278. package/dist/plugins/microsoftMail/src/index.js +63 -21
  279. package/dist/plugins/misp/src/credentials.js +16 -0
  280. package/dist/plugins/misp/src/index.js +60 -71
  281. package/dist/plugins/mocean/src/credentials.js +17 -0
  282. package/dist/plugins/mocean/src/index.js +11 -23
  283. package/dist/plugins/monday/src/credentials.js +14 -0
  284. package/dist/plugins/monday/src/index.js +31 -44
  285. package/dist/plugins/monicaCrm/src/credentials.js +19 -0
  286. package/dist/plugins/monicaCrm/src/index.js +25 -42
  287. package/dist/plugins/msg91/src/credentials.js +10 -0
  288. package/dist/plugins/msg91/src/index.js +15 -11
  289. package/dist/plugins/nasa/src/credentials.js +22 -0
  290. package/dist/plugins/nasa/src/index.js +24 -28
  291. package/dist/plugins/netlify/src/credentials.js +19 -0
  292. package/dist/plugins/netlify/src/index.js +27 -51
  293. package/dist/plugins/netscalerAdc/src/credentials.js +18 -0
  294. package/dist/plugins/netscalerAdc/src/index.js +16 -31
  295. package/dist/plugins/nextcloud/src/credentials.js +27 -0
  296. package/dist/plugins/nextcloud/src/index.js +55 -109
  297. package/dist/plugins/nocodb/src/credentials.js +16 -0
  298. package/dist/plugins/nocodb/src/index.js +19 -37
  299. package/dist/plugins/notion/src/credentials.js +21 -0
  300. package/dist/plugins/notion/src/index.js +25 -38
  301. package/dist/plugins/npm/src/credentials.js +19 -0
  302. package/dist/plugins/npm/src/index.js +22 -32
  303. package/dist/plugins/odoo/src/credentials.js +21 -0
  304. package/dist/plugins/odoo/src/index.js +53 -69
  305. package/dist/plugins/okta/src/credentials.js +23 -0
  306. package/dist/plugins/okta/src/index.js +30 -35
  307. package/dist/plugins/oneSimpleApi/src/credentials.js +16 -0
  308. package/dist/plugins/oneSimpleApi/src/index.js +19 -24
  309. package/dist/plugins/onfleet/src/credentials.js +23 -0
  310. package/dist/plugins/onfleet/src/index.js +42 -53
  311. package/dist/plugins/openai/src/credentials.js +13 -0
  312. package/dist/plugins/openai/src/index.js +16 -24
  313. package/dist/plugins/openweathermap/src/credentials.js +16 -0
  314. package/dist/plugins/openweathermap/src/index.js +22 -22
  315. package/dist/plugins/oura/src/credentials.js +19 -0
  316. package/dist/plugins/oura/src/index.js +13 -18
  317. package/dist/plugins/paddle/src/credentials.js +27 -0
  318. package/dist/plugins/paddle/src/index.js +20 -36
  319. package/dist/plugins/pagerduty/src/credentials.js +24 -0
  320. package/dist/plugins/pagerduty/src/index.js +30 -39
  321. package/dist/plugins/parallel/src/credentials.js +18 -0
  322. package/dist/plugins/parallel/src/index.js +16 -22
  323. package/dist/plugins/paypal/src/credentials.js +44 -0
  324. package/dist/plugins/paypal/src/index.js +14 -40
  325. package/dist/plugins/peekalink/src/credentials.js +16 -0
  326. package/dist/plugins/peekalink/src/index.js +10 -11
  327. package/dist/plugins/phantombuster/src/credentials.js +19 -0
  328. package/dist/plugins/phantombuster/src/index.js +19 -32
  329. package/dist/plugins/philipsHue/src/credentials.js +17 -0
  330. package/dist/plugins/philipsHue/src/index.js +15 -27
  331. package/dist/plugins/pipedrive/src/credentials.js +26 -0
  332. package/dist/plugins/pipedrive/src/index.js +43 -73
  333. package/dist/plugins/plaud/src/index.js +2 -1
  334. package/dist/plugins/plaud/src/shared.js +23 -19
  335. package/dist/plugins/plivo/src/credentials.js +20 -0
  336. package/dist/plugins/plivo/src/index.js +13 -19
  337. package/dist/plugins/posthog/src/credentials.js +18 -0
  338. package/dist/plugins/posthog/src/index.js +14 -20
  339. package/dist/plugins/profitwell/src/credentials.js +22 -0
  340. package/dist/plugins/profitwell/src/index.js +10 -17
  341. package/dist/plugins/pushbullet/src/credentials.js +19 -0
  342. package/dist/plugins/pushbullet/src/index.js +19 -27
  343. package/dist/plugins/pushcut/src/credentials.js +19 -0
  344. package/dist/plugins/pushcut/src/index.js +7 -8
  345. package/dist/plugins/pushover/src/credentials.js +14 -0
  346. package/dist/plugins/pushover/src/index.js +7 -12
  347. package/dist/plugins/quickbase/src/credentials.js +15 -0
  348. package/dist/plugins/quickbase/src/index.js +24 -34
  349. package/dist/plugins/quickbooks/src/credentials.js +22 -0
  350. package/dist/plugins/quickbooks/src/index.js +17 -46
  351. package/dist/plugins/raindrop/src/credentials.js +19 -0
  352. package/dist/plugins/raindrop/src/index.js +30 -32
  353. package/dist/plugins/recraft/src/credentials.js +13 -0
  354. package/dist/plugins/recraft/src/index.js +39 -28
  355. package/dist/plugins/reddit/src/credentials.js +26 -0
  356. package/dist/plugins/reddit/src/index.js +30 -34
  357. package/dist/plugins/replicate/src/credentials.js +23 -0
  358. package/dist/plugins/replicate/src/index.js +18 -28
  359. package/dist/plugins/rocketchat/src/credentials.js +17 -0
  360. package/dist/plugins/rocketchat/src/index.js +8 -19
  361. package/dist/plugins/rundeck/src/credentials.js +16 -0
  362. package/dist/plugins/rundeck/src/index.js +12 -28
  363. package/dist/plugins/salesforce/src/credentials.js +73 -0
  364. package/dist/plugins/salesforce/src/index.js +6 -0
  365. package/dist/plugins/salesforce/src/metadata.js +3 -16
  366. package/dist/plugins/salesforce/src/shared.js +25 -100
  367. package/dist/plugins/salesforce/src/sobjects.js +10 -9
  368. package/dist/plugins/salesmate/src/credentials.js +17 -0
  369. package/dist/plugins/salesmate/src/index.js +20 -37
  370. package/dist/plugins/securityScorecard/src/credentials.js +22 -0
  371. package/dist/plugins/securityScorecard/src/index.js +24 -37
  372. package/dist/plugins/segment/src/credentials.js +16 -0
  373. package/dist/plugins/segment/src/index.js +12 -16
  374. package/dist/plugins/sendgrid/src/credentials.js +13 -0
  375. package/dist/plugins/sendgrid/src/index.js +31 -35
  376. package/dist/plugins/sendy/src/credentials.js +18 -0
  377. package/dist/plugins/sendy/src/index.js +18 -24
  378. package/dist/plugins/sentry/src/credentials.js +16 -0
  379. package/dist/plugins/sentry/src/index.js +30 -98
  380. package/dist/plugins/servicenow/src/credentials.js +13 -0
  381. package/dist/plugins/servicenow/src/index.js +22 -41
  382. package/dist/plugins/shiftAtlas/src/graph.js +2 -2
  383. package/dist/plugins/shiftAtlas/src/index.js +2 -0
  384. package/dist/plugins/shiftAtlas/src/shared.js +3 -1
  385. package/dist/plugins/shiftBwm/src/index.js +4 -2
  386. package/dist/plugins/shiftBwm/src/shared.js +41 -16
  387. package/dist/plugins/shiftCrm/src/access.js +2 -2
  388. package/dist/plugins/shiftCrm/src/accounts.js +3 -3
  389. package/dist/plugins/shiftCrm/src/activities.js +3 -3
  390. package/dist/plugins/shiftCrm/src/credentials.js +6 -0
  391. package/dist/plugins/shiftCrm/src/index.js +2 -0
  392. package/dist/plugins/shiftCrm/src/opportunities.js +3 -3
  393. package/dist/plugins/shiftCrm/src/people.js +3 -3
  394. package/dist/plugins/shiftCrm/src/records.js +2 -2
  395. package/dist/plugins/shiftCrm/src/shared.js +2 -1
  396. package/dist/plugins/shiftCrm/src/tasks.js +3 -3
  397. package/dist/plugins/shiftObjects/src/credentials.js +2 -0
  398. package/dist/plugins/shiftObjects/src/index.js +2 -0
  399. package/dist/plugins/shiftObjects/src/objects.js +4 -3
  400. package/dist/plugins/shiftOcr/src/credentials.js +8 -0
  401. package/dist/plugins/shiftOcr/src/index.js +14 -8
  402. package/dist/plugins/shiftPages/src/index.js +2 -0
  403. package/dist/plugins/shiftPages/src/pages.js +5 -3
  404. package/dist/plugins/shiftPages/src/shared.js +3 -1
  405. package/dist/plugins/shiftTranscription/src/index.js +2 -0
  406. package/dist/plugins/shiftTranscription/src/shared.js +11 -1
  407. package/dist/plugins/shiftTranscription/src/transcription.js +5 -5
  408. package/dist/plugins/shiftWork/src/index.js +2 -0
  409. package/dist/plugins/shiftWork/src/issue-views.js +5 -5
  410. package/dist/plugins/shiftWork/src/issues.js +11 -7
  411. package/dist/plugins/shiftWork/src/projects.js +3 -3
  412. package/dist/plugins/shiftWork/src/shared.js +3 -1
  413. package/dist/plugins/shopify/src/credentials.js +16 -0
  414. package/dist/plugins/shopify/src/index.js +32 -59
  415. package/dist/plugins/signl4/src/credentials.js +17 -0
  416. package/dist/plugins/signl4/src/index.js +28 -29
  417. package/dist/plugins/slack/src/credentials.js +19 -0
  418. package/dist/plugins/slack/src/index.js +51 -60
  419. package/dist/plugins/sms77/src/credentials.js +17 -0
  420. package/dist/plugins/sms77/src/index.js +11 -16
  421. package/dist/plugins/splunk/src/credentials.js +19 -0
  422. package/dist/plugins/splunk/src/index.js +32 -74
  423. package/dist/plugins/spotify/src/credentials.js +19 -0
  424. package/dist/plugins/spotify/src/index.js +40 -55
  425. package/dist/plugins/stackby/src/credentials.js +13 -0
  426. package/dist/plugins/stackby/src/index.js +14 -23
  427. package/dist/plugins/steel/src/auth.js +27 -0
  428. package/dist/plugins/steel/src/browser.js +4 -3
  429. package/dist/plugins/steel/src/captchas.js +4 -3
  430. package/dist/plugins/steel/src/extensions.js +3 -2
  431. package/dist/plugins/steel/src/files.js +9 -10
  432. package/dist/plugins/steel/src/index.js +2 -0
  433. package/dist/plugins/steel/src/page/tools.js +3 -3
  434. package/dist/plugins/steel/src/profiles.js +4 -3
  435. package/dist/plugins/steel/src/sessions.js +13 -13
  436. package/dist/plugins/steel/src/shared.js +21 -51
  437. package/dist/plugins/storyblok/src/credentials.js +37 -0
  438. package/dist/plugins/storyblok/src/index.js +22 -66
  439. package/dist/plugins/strapi/src/credentials.js +71 -0
  440. package/dist/plugins/strapi/src/index.js +36 -70
  441. package/dist/plugins/strava/src/credentials.js +19 -0
  442. package/dist/plugins/strava/src/index.js +16 -33
  443. package/dist/plugins/stripe/src/credentials.js +19 -0
  444. package/dist/plugins/stripe/src/index.js +44 -58
  445. package/dist/plugins/supabase/src/credentials.js +30 -0
  446. package/dist/plugins/supabase/src/index.js +18 -40
  447. package/dist/plugins/syncromsp/src/credentials.js +16 -0
  448. package/dist/plugins/syncromsp/src/index.js +37 -70
  449. package/dist/plugins/tapfiliate/src/credentials.js +13 -0
  450. package/dist/plugins/tapfiliate/src/index.js +21 -31
  451. package/dist/plugins/telegram/src/credentials.js +20 -0
  452. package/dist/plugins/telegram/src/index.js +31 -39
  453. package/dist/plugins/thehive/src/credentials.js +14 -0
  454. package/dist/plugins/thehive/src/index.js +33 -50
  455. package/dist/plugins/thehiveProject/src/credentials.js +16 -0
  456. package/dist/plugins/thehiveProject/src/index.js +53 -122
  457. package/dist/plugins/todoist/src/credentials.js +26 -0
  458. package/dist/plugins/todoist/src/index.js +49 -79
  459. package/dist/plugins/together/src/credentials.js +16 -0
  460. package/dist/plugins/together/src/index.js +31 -33
  461. package/dist/plugins/travisci/src/credentials.js +24 -0
  462. package/dist/plugins/travisci/src/index.js +16 -30
  463. package/dist/plugins/trello/src/credentials.js +29 -0
  464. package/dist/plugins/trello/src/index.js +49 -64
  465. package/dist/plugins/twake/src/credentials.js +16 -0
  466. package/dist/plugins/twake/src/index.js +8 -10
  467. package/dist/plugins/twilio/src/credentials.js +23 -0
  468. package/dist/plugins/twilio/src/index.js +12 -26
  469. package/dist/plugins/twist/src/credentials.js +13 -0
  470. package/dist/plugins/twist/src/index.js +32 -44
  471. package/dist/plugins/twitter/src/credentials.js +16 -0
  472. package/dist/plugins/twitter/src/index.js +25 -37
  473. package/dist/plugins/typesafe/src/credentials.js +28 -0
  474. package/dist/plugins/typesafe/src/index.js +3 -1
  475. package/dist/plugins/typesafe/src/shared.js +23 -35
  476. package/dist/plugins/unleashedSoftware/src/credentials.js +21 -0
  477. package/dist/plugins/unleashedSoftware/src/index.js +13 -37
  478. package/dist/plugins/uplead/src/credentials.js +16 -0
  479. package/dist/plugins/uplead/src/index.js +11 -16
  480. package/dist/plugins/uproc/src/credentials.js +14 -0
  481. package/dist/plugins/uproc/src/index.js +7 -10
  482. package/dist/plugins/uptimerobot/src/credentials.js +14 -0
  483. package/dist/plugins/uptimerobot/src/index.js +28 -39
  484. package/dist/plugins/urlscanio/src/credentials.js +13 -0
  485. package/dist/plugins/urlscanio/src/index.js +13 -22
  486. package/dist/plugins/vercel/src/credentials.js +19 -0
  487. package/dist/plugins/vercel/src/deployments.js +27 -11
  488. package/dist/plugins/vercel/src/env.js +31 -12
  489. package/dist/plugins/vercel/src/index.js +2 -0
  490. package/dist/plugins/vercel/src/projects.js +6 -3
  491. package/dist/plugins/vercel/src/shared.js +32 -37
  492. package/dist/plugins/vero/src/credentials.js +17 -0
  493. package/dist/plugins/vero/src/index.js +18 -21
  494. package/dist/plugins/vonage/src/credentials.js +17 -0
  495. package/dist/plugins/vonage/src/index.js +14 -18
  496. package/dist/plugins/wekan/src/credentials.js +16 -0
  497. package/dist/plugins/wekan/src/index.js +33 -46
  498. package/dist/plugins/wolt/src/account.js +6 -0
  499. package/dist/plugins/wolt/src/catalog.js +2 -2
  500. package/dist/plugins/wolt/src/credentials.js +64 -0
  501. package/dist/plugins/wolt/src/index.js +8 -3
  502. package/dist/plugins/wolt/src/orders.js +2 -2
  503. package/dist/plugins/wolt/src/public.js +91 -0
  504. package/dist/plugins/wolt/src/shared.js +49 -158
  505. package/dist/plugins/woocommerce/src/credentials.js +16 -0
  506. package/dist/plugins/woocommerce/src/index.js +19 -37
  507. package/dist/plugins/wordpress/src/credentials.js +16 -0
  508. package/dist/plugins/wordpress/src/index.js +23 -42
  509. package/dist/plugins/xai/src/credentials.js +13 -0
  510. package/dist/plugins/xai/src/index.js +32 -31
  511. package/dist/plugins/xero/src/credentials.js +17 -0
  512. package/dist/plugins/xero/src/index.js +19 -36
  513. package/dist/plugins/yourls/src/credentials.js +17 -0
  514. package/dist/plugins/yourls/src/index.js +13 -23
  515. package/dist/plugins/zammad/src/credentials.js +15 -0
  516. package/dist/plugins/zammad/src/index.js +27 -47
  517. package/dist/plugins/zendesk/src/credentials.js +26 -0
  518. package/dist/plugins/zendesk/src/index.js +29 -48
  519. package/dist/plugins/zoho/src/credentials.js +17 -0
  520. package/dist/plugins/zoho/src/index.js +18 -38
  521. package/dist/plugins/zoom/src/credentials.js +19 -0
  522. package/dist/plugins/zoom/src/index.js +15 -30
  523. package/dist/plugins/zulip/src/credentials.js +16 -0
  524. package/dist/plugins/zulip/src/index.js +36 -42
  525. package/dist/sdk.d.ts +8 -0
  526. package/dist/sdk.js +3 -0
  527. package/package.json +2 -1
  528. package/dist/plugins/_shared/authedFetch.js +0 -33
  529. package/dist/plugins/_shared/tokenRefresh.js +0 -41
  530. package/dist/tests/helpers/engine-harness.d.ts +0 -1
  531. package/dist/tests/helpers/engine-harness.js +0 -236
@@ -1,42 +1,25 @@
1
- const BASE_URL = "https://api.getgo.com/G2W/rest/v2";
2
- async function apiRequest(accessToken, method, endpoint, body, qs) {
3
- const url = new URL(`${BASE_URL}/${endpoint}`);
4
- if (qs) {
5
- for (const [k, v] of Object.entries(qs)) {
6
- if (v !== undefined && v !== null)
7
- url.searchParams.set(k, String(v));
8
- }
9
- }
10
- const opts = {
1
+ import { credentialJson, pathSegment } from "../../_shared/credentials.js";
2
+ import { gotowebinarCredential } from "./credentials.js";
3
+ function apiRequest(ctx, method, endpoint, body, qs) {
4
+ return credentialJson(ctx, gotowebinarCredential, "gotowebinar", {
5
+ target: "api",
6
+ path: endpoint,
11
7
  method,
12
- headers: {
13
- Authorization: `Bearer ${accessToken}`,
14
- "Content-Type": "application/json",
15
- Accept: "application/json",
16
- },
17
- };
18
- if (body !== undefined && method !== "GET" && method !== "DELETE") {
19
- opts.body = JSON.stringify(body);
20
- }
21
- const res = await fetch(url.toString(), opts);
22
- if (!res.ok)
23
- throw new Error(`GoToWebinar API error ${res.status}: ${await res.text()}`);
24
- if (res.status === 204)
25
- return { success: true };
26
- const ct = res.headers.get("content-type") ?? "";
27
- if (ct.includes("json"))
28
- return res.json();
29
- return { success: true };
8
+ query: qs,
9
+ ...(body !== undefined && method !== "GET" && method !== "DELETE"
10
+ ? { json: body }
11
+ : {}),
12
+ });
30
13
  }
31
14
  function getConn(ctx) {
32
15
  return {
33
- accessToken: ctx.connection.config.accessToken,
34
16
  organizerKey: ctx.connection.config.organizerKey,
35
17
  };
36
18
  }
37
19
  export default function gotowebinar(rl) {
38
20
  rl.setName("gotowebinar");
39
21
  rl.setVersion("0.1.0");
22
+ rl.setCredential(gotowebinarCredential);
40
23
  rl.setConnectionSchema({
41
24
  accessToken: {
42
25
  type: "string",
@@ -85,7 +68,7 @@ export default function gotowebinar(rl) {
85
68
  },
86
69
  async execute(input, ctx) {
87
70
  const { subject, times, description: desc, timeZone, type, isPasswordProtected, } = input;
88
- const { accessToken, organizerKey } = getConn(ctx);
71
+ const { organizerKey } = getConn(ctx);
89
72
  const body = { subject, times };
90
73
  if (desc)
91
74
  body.description = desc;
@@ -95,7 +78,7 @@ export default function gotowebinar(rl) {
95
78
  body.type = type;
96
79
  if (isPasswordProtected !== undefined)
97
80
  body.isPasswordProtected = isPasswordProtected;
98
- return apiRequest(accessToken, "POST", `organizers/${organizerKey}/webinars`, body);
81
+ return apiRequest(ctx, "POST", `organizers/${pathSegment(organizerKey)}/webinars`, body);
99
82
  },
100
83
  });
101
84
  rl.registerAction("webinar.get", {
@@ -109,8 +92,8 @@ export default function gotowebinar(rl) {
109
92
  },
110
93
  },
111
94
  async execute(input, ctx) {
112
- const { accessToken, organizerKey } = getConn(ctx);
113
- return apiRequest(accessToken, "GET", `organizers/${organizerKey}/webinars/${input.webinarKey}`);
95
+ const { organizerKey } = getConn(ctx);
96
+ return apiRequest(ctx, "GET", `organizers/${pathSegment(organizerKey)}/webinars/${pathSegment(input.webinarKey)}`);
114
97
  },
115
98
  });
116
99
  rl.registerAction("webinar.list", {
@@ -120,8 +103,8 @@ export default function gotowebinar(rl) {
120
103
  limit: { type: "number", required: false, description: "Max results" },
121
104
  },
122
105
  async execute(input, ctx) {
123
- const { accessToken, organizerKey } = getConn(ctx);
124
- const data = (await apiRequest(accessToken, "GET", `organizers/${organizerKey}/webinars`));
106
+ const { organizerKey } = getConn(ctx);
107
+ const data = (await apiRequest(ctx, "GET", `organizers/${pathSegment(organizerKey)}/webinars`));
125
108
  const list = data._embedded?.webinars ?? data;
126
109
  if (input?.limit && Array.isArray(list))
127
110
  return list.slice(0, input.limit);
@@ -152,7 +135,7 @@ export default function gotowebinar(rl) {
152
135
  },
153
136
  async execute(input, ctx) {
154
137
  const { webinarKey, subject, description: desc, times, timeZone, } = input;
155
- const { accessToken, organizerKey } = getConn(ctx);
138
+ const { organizerKey } = getConn(ctx);
156
139
  const body = {};
157
140
  if (subject)
158
141
  body.subject = subject;
@@ -162,7 +145,7 @@ export default function gotowebinar(rl) {
162
145
  body.times = times;
163
146
  if (timeZone)
164
147
  body.timeZone = timeZone;
165
- return apiRequest(accessToken, "PUT", `organizers/${organizerKey}/webinars/${webinarKey}`, body);
148
+ return apiRequest(ctx, "PUT", `organizers/${pathSegment(organizerKey)}/webinars/${pathSegment(webinarKey)}`, body);
166
149
  },
167
150
  });
168
151
  rl.registerAction("webinar.delete", {
@@ -182,11 +165,11 @@ export default function gotowebinar(rl) {
182
165
  },
183
166
  async execute(input, ctx) {
184
167
  const { webinarKey, sendCancellationEmails } = input;
185
- const { accessToken, organizerKey } = getConn(ctx);
168
+ const { organizerKey } = getConn(ctx);
186
169
  const qs = {};
187
170
  if (sendCancellationEmails !== undefined)
188
171
  qs.sendCancellationEmails = sendCancellationEmails;
189
- await apiRequest(accessToken, "DELETE", `organizers/${organizerKey}/webinars/${webinarKey}`, undefined, qs);
172
+ await apiRequest(ctx, "DELETE", `organizers/${pathSegment(organizerKey)}/webinars/${pathSegment(webinarKey)}`, undefined, qs);
190
173
  return { success: true };
191
174
  },
192
175
  });
@@ -206,8 +189,8 @@ export default function gotowebinar(rl) {
206
189
  },
207
190
  async execute(input, ctx) {
208
191
  const { webinarKey, firstName, lastName, email } = input;
209
- const { accessToken, organizerKey } = getConn(ctx);
210
- return apiRequest(accessToken, "POST", `organizers/${organizerKey}/webinars/${webinarKey}/registrants`, { firstName, lastName, email });
192
+ const { organizerKey } = getConn(ctx);
193
+ return apiRequest(ctx, "POST", `organizers/${pathSegment(organizerKey)}/webinars/${pathSegment(webinarKey)}/registrants`, { firstName, lastName, email });
211
194
  },
212
195
  });
213
196
  rl.registerAction("registrant.get", {
@@ -227,8 +210,8 @@ export default function gotowebinar(rl) {
227
210
  },
228
211
  async execute(input, ctx) {
229
212
  const { webinarKey, registrantKey } = input;
230
- const { accessToken, organizerKey } = getConn(ctx);
231
- return apiRequest(accessToken, "GET", `organizers/${organizerKey}/webinars/${webinarKey}/registrants/${registrantKey}`);
213
+ const { organizerKey } = getConn(ctx);
214
+ return apiRequest(ctx, "GET", `organizers/${pathSegment(organizerKey)}/webinars/${pathSegment(webinarKey)}/registrants/${pathSegment(registrantKey)}`);
232
215
  },
233
216
  });
234
217
  rl.registerAction("registrant.list", {
@@ -242,8 +225,8 @@ export default function gotowebinar(rl) {
242
225
  },
243
226
  },
244
227
  async execute(input, ctx) {
245
- const { accessToken, organizerKey } = getConn(ctx);
246
- return apiRequest(accessToken, "GET", `organizers/${organizerKey}/webinars/${input.webinarKey}/registrants`);
228
+ const { organizerKey } = getConn(ctx);
229
+ return apiRequest(ctx, "GET", `organizers/${pathSegment(organizerKey)}/webinars/${pathSegment(input.webinarKey)}/registrants`);
247
230
  },
248
231
  });
249
232
  rl.registerAction("registrant.delete", {
@@ -263,8 +246,8 @@ export default function gotowebinar(rl) {
263
246
  },
264
247
  async execute(input, ctx) {
265
248
  const { webinarKey, registrantKey } = input;
266
- const { accessToken, organizerKey } = getConn(ctx);
267
- await apiRequest(accessToken, "DELETE", `organizers/${organizerKey}/webinars/${webinarKey}/registrants/${registrantKey}`);
249
+ const { organizerKey } = getConn(ctx);
250
+ await apiRequest(ctx, "DELETE", `organizers/${pathSegment(organizerKey)}/webinars/${pathSegment(webinarKey)}/registrants/${pathSegment(registrantKey)}`);
268
251
  return { success: true };
269
252
  },
270
253
  });
@@ -286,8 +269,8 @@ export default function gotowebinar(rl) {
286
269
  },
287
270
  async execute(input, ctx) {
288
271
  const { webinarKey, sessionKey } = input;
289
- const { accessToken, organizerKey } = getConn(ctx);
290
- return apiRequest(accessToken, "GET", `organizers/${organizerKey}/webinars/${webinarKey}/sessions/${sessionKey}`);
272
+ const { organizerKey } = getConn(ctx);
273
+ return apiRequest(ctx, "GET", `organizers/${pathSegment(organizerKey)}/webinars/${pathSegment(webinarKey)}/sessions/${pathSegment(sessionKey)}`);
291
274
  },
292
275
  });
293
276
  rl.registerAction("session.list", {
@@ -301,8 +284,8 @@ export default function gotowebinar(rl) {
301
284
  },
302
285
  },
303
286
  async execute(input, ctx) {
304
- const { accessToken, organizerKey } = getConn(ctx);
305
- return apiRequest(accessToken, "GET", `organizers/${organizerKey}/webinars/${input.webinarKey}/sessions`);
287
+ const { organizerKey } = getConn(ctx);
288
+ return apiRequest(ctx, "GET", `organizers/${pathSegment(organizerKey)}/webinars/${pathSegment(input.webinarKey)}/sessions`);
306
289
  },
307
290
  });
308
291
  rl.registerAction("session.getPerformance", {
@@ -322,8 +305,8 @@ export default function gotowebinar(rl) {
322
305
  },
323
306
  async execute(input, ctx) {
324
307
  const { webinarKey, sessionKey } = input;
325
- const { accessToken, organizerKey } = getConn(ctx);
326
- return apiRequest(accessToken, "GET", `organizers/${organizerKey}/webinars/${webinarKey}/sessions/${sessionKey}/performance`);
308
+ const { organizerKey } = getConn(ctx);
309
+ return apiRequest(ctx, "GET", `organizers/${pathSegment(organizerKey)}/webinars/${pathSegment(webinarKey)}/sessions/${pathSegment(sessionKey)}/performance`);
327
310
  },
328
311
  });
329
312
  // ── Attendee ────────────────────────────────────────
@@ -349,8 +332,8 @@ export default function gotowebinar(rl) {
349
332
  },
350
333
  async execute(input, ctx) {
351
334
  const { webinarKey, sessionKey, registrantKey } = input;
352
- const { accessToken, organizerKey } = getConn(ctx);
353
- return apiRequest(accessToken, "GET", `organizers/${organizerKey}/webinars/${webinarKey}/sessions/${sessionKey}/attendees/${registrantKey}`);
335
+ const { organizerKey } = getConn(ctx);
336
+ return apiRequest(ctx, "GET", `organizers/${pathSegment(organizerKey)}/webinars/${pathSegment(webinarKey)}/sessions/${pathSegment(sessionKey)}/attendees/${pathSegment(registrantKey)}`);
354
337
  },
355
338
  });
356
339
  rl.registerAction("attendee.list", {
@@ -370,8 +353,8 @@ export default function gotowebinar(rl) {
370
353
  },
371
354
  async execute(input, ctx) {
372
355
  const { webinarKey, sessionKey } = input;
373
- const { accessToken, organizerKey } = getConn(ctx);
374
- return apiRequest(accessToken, "GET", `organizers/${organizerKey}/webinars/${webinarKey}/sessions/${sessionKey}/attendees`);
356
+ const { organizerKey } = getConn(ctx);
357
+ return apiRequest(ctx, "GET", `organizers/${pathSegment(organizerKey)}/webinars/${pathSegment(webinarKey)}/sessions/${pathSegment(sessionKey)}/attendees`);
375
358
  },
376
359
  });
377
360
  // ── Coorganizer ─────────────────────────────────────
@@ -407,7 +390,7 @@ export default function gotowebinar(rl) {
407
390
  },
408
391
  async execute(input, ctx) {
409
392
  const { webinarKey, external, organizerKey: coorgKey, givenName, email, } = input;
410
- const { accessToken, organizerKey } = getConn(ctx);
393
+ const { organizerKey } = getConn(ctx);
411
394
  const body = { external };
412
395
  if (coorgKey)
413
396
  body.organizerKey = coorgKey;
@@ -415,7 +398,7 @@ export default function gotowebinar(rl) {
415
398
  body.givenName = givenName;
416
399
  if (email)
417
400
  body.email = email;
418
- return apiRequest(accessToken, "POST", `organizers/${organizerKey}/webinars/${webinarKey}/coorganizers`, [body]);
401
+ return apiRequest(ctx, "POST", `organizers/${pathSegment(organizerKey)}/webinars/${pathSegment(webinarKey)}/coorganizers`, [body]);
419
402
  },
420
403
  });
421
404
  rl.registerAction("coorganizer.list", {
@@ -429,8 +412,8 @@ export default function gotowebinar(rl) {
429
412
  },
430
413
  },
431
414
  async execute(input, ctx) {
432
- const { accessToken, organizerKey } = getConn(ctx);
433
- return apiRequest(accessToken, "GET", `organizers/${organizerKey}/webinars/${input.webinarKey}/coorganizers`);
415
+ const { organizerKey } = getConn(ctx);
416
+ return apiRequest(ctx, "GET", `organizers/${pathSegment(organizerKey)}/webinars/${pathSegment(input.webinarKey)}/coorganizers`);
434
417
  },
435
418
  });
436
419
  rl.registerAction("coorganizer.delete", {
@@ -455,11 +438,11 @@ export default function gotowebinar(rl) {
455
438
  },
456
439
  async execute(input, ctx) {
457
440
  const { webinarKey, coorganizerKey, external } = input;
458
- const { accessToken, organizerKey } = getConn(ctx);
441
+ const { organizerKey } = getConn(ctx);
459
442
  const qs = {};
460
443
  if (external !== undefined)
461
444
  qs.external = external;
462
- await apiRequest(accessToken, "DELETE", `organizers/${organizerKey}/webinars/${webinarKey}/coorganizers/${coorganizerKey}`, undefined, qs);
445
+ await apiRequest(ctx, "DELETE", `organizers/${pathSegment(organizerKey)}/webinars/${pathSegment(webinarKey)}/coorganizers/${pathSegment(coorganizerKey)}`, undefined, qs);
463
446
  return { success: true };
464
447
  },
465
448
  });
@@ -478,8 +461,8 @@ export default function gotowebinar(rl) {
478
461
  },
479
462
  async execute(input, ctx) {
480
463
  const { webinarKey, name, email } = input;
481
- const { accessToken, organizerKey } = getConn(ctx);
482
- return apiRequest(accessToken, "POST", `organizers/${organizerKey}/webinars/${webinarKey}/panelists`, [{ name, email }]);
464
+ const { organizerKey } = getConn(ctx);
465
+ return apiRequest(ctx, "POST", `organizers/${pathSegment(organizerKey)}/webinars/${pathSegment(webinarKey)}/panelists`, [{ name, email }]);
483
466
  },
484
467
  });
485
468
  rl.registerAction("panelist.list", {
@@ -493,8 +476,8 @@ export default function gotowebinar(rl) {
493
476
  },
494
477
  },
495
478
  async execute(input, ctx) {
496
- const { accessToken, organizerKey } = getConn(ctx);
497
- return apiRequest(accessToken, "GET", `organizers/${organizerKey}/webinars/${input.webinarKey}/panelists`);
479
+ const { organizerKey } = getConn(ctx);
480
+ return apiRequest(ctx, "GET", `organizers/${pathSegment(organizerKey)}/webinars/${pathSegment(input.webinarKey)}/panelists`);
498
481
  },
499
482
  });
500
483
  rl.registerAction("panelist.delete", {
@@ -514,8 +497,8 @@ export default function gotowebinar(rl) {
514
497
  },
515
498
  async execute(input, ctx) {
516
499
  const { webinarKey, panelistKey } = input;
517
- const { accessToken, organizerKey } = getConn(ctx);
518
- await apiRequest(accessToken, "DELETE", `organizers/${organizerKey}/webinars/${webinarKey}/panelists/${panelistKey}`);
500
+ const { organizerKey } = getConn(ctx);
501
+ await apiRequest(ctx, "DELETE", `organizers/${pathSegment(organizerKey)}/webinars/${pathSegment(webinarKey)}/panelists/${pathSegment(panelistKey)}`);
519
502
  return { success: true };
520
503
  },
521
504
  });
@@ -0,0 +1,16 @@
1
+ import { httpsBase, staticCredential } from "../../_shared/credentials.js";
2
+ /**
3
+ * A service-account token or API key, sent as a bearer to the connection's
4
+ * own Grafana instance beneath /api/.
5
+ */
6
+ export const grafanaCredential = staticCredential({
7
+ id: "grafana",
8
+ auth: { kind: "bearer" },
9
+ local: { secret: "apiKey" },
10
+ targets: (config) => ({
11
+ api: {
12
+ baseUrl: httpsBase(config.baseUrl, "api/"),
13
+ methods: ["GET", "POST", "PUT", "PATCH", "DELETE"],
14
+ },
15
+ }),
16
+ });
@@ -1,44 +1,23 @@
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 = {
1
+ import { credentialJson, pathSegment } from "../../_shared/credentials.js";
2
+ import { grafanaCredential } from "./credentials.js";
3
+ function gf(ctx, method, path, body, qs) {
4
+ return credentialJson(ctx, grafanaCredential, "grafana", {
5
+ target: "api",
6
+ path,
10
7
  method,
11
- headers: {
12
- Authorization: `Bearer ${apiKey}`,
13
- "Content-Type": "application/json",
14
- },
15
- };
16
- if (body &&
17
- Object.keys(body).length > 0 &&
18
- method !== "GET" &&
19
- method !== "DELETE") {
20
- opts.body = JSON.stringify(body);
21
- }
22
- const res = await fetch(url.toString(), opts);
23
- if (!res.ok)
24
- throw new Error(`Grafana API error ${res.status}: ${await res.text()}`);
25
- if (res.status === 204)
26
- return { success: true };
27
- return res.json();
28
- }
29
- function getConn(ctx) {
30
- return {
31
- baseUrl: ctx.connection.config.baseUrl.replace(/\/$/, ""),
32
- apiKey: ctx.connection.config.apiKey,
33
- };
34
- }
35
- function gf(ctx, method, endpoint, body, qs) {
36
- const { baseUrl, apiKey } = getConn(ctx);
37
- return apiRequest(baseUrl, apiKey, 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
+ });
38
16
  }
39
17
  export default function grafana(rl) {
40
18
  rl.setName("grafana");
41
19
  rl.setVersion("0.1.0");
20
+ rl.setCredential(grafanaCredential);
42
21
  rl.setConnectionSchema({
43
22
  baseUrl: {
44
23
  type: "string",
@@ -80,7 +59,7 @@ export default function grafana(rl) {
80
59
  body.overwrite = overwrite;
81
60
  if (message)
82
61
  body.message = message;
83
- return gf(ctx, "POST", "/dashboards/db", body);
62
+ return gf(ctx, "POST", "dashboards/db", body);
84
63
  },
85
64
  });
86
65
  rl.registerAction("dashboard.get", {
@@ -90,7 +69,7 @@ export default function grafana(rl) {
90
69
  uid: { type: "string", required: true, description: "Dashboard UID" },
91
70
  },
92
71
  async execute(input, ctx) {
93
- return gf(ctx, "GET", `/dashboards/uid/${input.uid}`);
72
+ return gf(ctx, "GET", `dashboards/uid/${pathSegment(input.uid)}`);
94
73
  },
95
74
  });
96
75
  rl.registerAction("dashboard.list", {
@@ -124,7 +103,7 @@ export default function grafana(rl) {
124
103
  qs.folderIds = folderId;
125
104
  if (limit)
126
105
  qs.limit = limit;
127
- return gf(ctx, "GET", "/search", undefined, qs);
106
+ return gf(ctx, "GET", "search", undefined, qs);
128
107
  },
129
108
  });
130
109
  rl.registerAction("dashboard.delete", {
@@ -134,7 +113,7 @@ export default function grafana(rl) {
134
113
  uid: { type: "string", required: true, description: "Dashboard UID" },
135
114
  },
136
115
  async execute(input, ctx) {
137
- return gf(ctx, "DELETE", `/dashboards/uid/${input.uid}`);
116
+ return gf(ctx, "DELETE", `dashboards/uid/${pathSegment(input.uid)}`);
138
117
  },
139
118
  });
140
119
  rl.registerAction("dashboard.update", {
@@ -164,7 +143,7 @@ export default function grafana(rl) {
164
143
  body.folderId = folderId;
165
144
  if (message)
166
145
  body.message = message;
167
- return gf(ctx, "POST", "/dashboards/db", body);
146
+ return gf(ctx, "POST", "dashboards/db", body);
168
147
  },
169
148
  });
170
149
  // ── Team ────────────────────────────────────────────
@@ -180,7 +159,7 @@ export default function grafana(rl) {
180
159
  const body = { name };
181
160
  if (email)
182
161
  body.email = email;
183
- return gf(ctx, "POST", "/teams", body);
162
+ return gf(ctx, "POST", "teams", body);
184
163
  },
185
164
  });
186
165
  rl.registerAction("team.get", {
@@ -190,7 +169,7 @@ export default function grafana(rl) {
190
169
  teamId: { type: "number", required: true, description: "Team ID" },
191
170
  },
192
171
  async execute(input, ctx) {
193
- return gf(ctx, "GET", `/teams/${input.teamId}`);
172
+ return gf(ctx, "GET", `teams/${pathSegment(input.teamId)}`);
194
173
  },
195
174
  });
196
175
  rl.registerAction("team.list", {
@@ -210,7 +189,7 @@ export default function grafana(rl) {
210
189
  qs.perpage = limit;
211
190
  if (page)
212
191
  qs.page = page;
213
- const data = (await gf(ctx, "GET", "/teams/search", undefined, qs));
192
+ const data = (await gf(ctx, "GET", "teams/search", undefined, qs));
214
193
  return data.teams;
215
194
  },
216
195
  });
@@ -229,7 +208,7 @@ export default function grafana(rl) {
229
208
  body.name = name;
230
209
  if (email)
231
210
  body.email = email;
232
- return gf(ctx, "PUT", `/teams/${teamId}`, body);
211
+ return gf(ctx, "PUT", `teams/${pathSegment(teamId)}`, body);
233
212
  },
234
213
  });
235
214
  rl.registerAction("team.delete", {
@@ -239,7 +218,7 @@ export default function grafana(rl) {
239
218
  teamId: { type: "number", required: true, description: "Team ID" },
240
219
  },
241
220
  async execute(input, ctx) {
242
- return gf(ctx, "DELETE", `/teams/${input.teamId}`);
221
+ return gf(ctx, "DELETE", `teams/${pathSegment(input.teamId)}`);
243
222
  },
244
223
  });
245
224
  // ── Team Member ─────────────────────────────────────
@@ -252,7 +231,9 @@ export default function grafana(rl) {
252
231
  },
253
232
  async execute(input, ctx) {
254
233
  const { teamId, userId } = input;
255
- return gf(ctx, "POST", `/teams/${teamId}/members`, { userId });
234
+ return gf(ctx, "POST", `teams/${pathSegment(teamId)}/members`, {
235
+ userId,
236
+ });
256
237
  },
257
238
  });
258
239
  rl.registerAction("teamMember.remove", {
@@ -268,7 +249,7 @@ export default function grafana(rl) {
268
249
  },
269
250
  async execute(input, ctx) {
270
251
  const { teamId, userId } = input;
271
- return gf(ctx, "DELETE", `/teams/${teamId}/members/${userId}`);
252
+ return gf(ctx, "DELETE", `teams/${pathSegment(teamId)}/members/${pathSegment(userId)}`);
272
253
  },
273
254
  });
274
255
  rl.registerAction("teamMember.list", {
@@ -278,7 +259,7 @@ export default function grafana(rl) {
278
259
  teamId: { type: "number", required: true, description: "Team ID" },
279
260
  },
280
261
  async execute(input, ctx) {
281
- return gf(ctx, "GET", `/teams/${input.teamId}/members`);
262
+ return gf(ctx, "GET", `teams/${pathSegment(input.teamId)}/members`);
282
263
  },
283
264
  });
284
265
  // ── User (Org) ──────────────────────────────────────
@@ -299,14 +280,14 @@ export default function grafana(rl) {
299
280
  },
300
281
  async execute(input, ctx) {
301
282
  const { loginOrEmail, role } = input;
302
- return gf(ctx, "POST", "/org/users", { loginOrEmail, role });
283
+ return gf(ctx, "POST", "org/users", { loginOrEmail, role });
303
284
  },
304
285
  });
305
286
  rl.registerAction("user.list", {
306
287
  access: "read",
307
288
  description: "List users in the current organization",
308
289
  async execute(_input, ctx) {
309
- return gf(ctx, "GET", "/org/users");
290
+ return gf(ctx, "GET", "org/users");
310
291
  },
311
292
  });
312
293
  rl.registerAction("user.update", {
@@ -322,7 +303,7 @@ export default function grafana(rl) {
322
303
  },
323
304
  async execute(input, ctx) {
324
305
  const { userId, role } = input;
325
- return gf(ctx, "PATCH", `/org/users/${userId}`, { role });
306
+ return gf(ctx, "PATCH", `org/users/${pathSegment(userId)}`, { role });
326
307
  },
327
308
  });
328
309
  rl.registerAction("user.delete", {
@@ -332,7 +313,7 @@ export default function grafana(rl) {
332
313
  userId: { type: "number", required: true, description: "User ID" },
333
314
  },
334
315
  async execute(input, ctx) {
335
- return gf(ctx, "DELETE", `/org/users/${input.userId}`);
316
+ return gf(ctx, "DELETE", `org/users/${pathSegment(input.userId)}`);
336
317
  },
337
318
  });
338
319
  }
@@ -0,0 +1,42 @@
1
+ import { httpsBase, staticCredential } from "../../_shared/credentials.js";
2
+ /**
3
+ * The configured endpoint as a target base and the path beneath it:
4
+ * `https://api.example.com/v1/graphql` is the base
5
+ * `https://api.example.com/v1/` and the path `graphql`. Only a plain HTTPS
6
+ * URL is an endpoint.
7
+ */
8
+ export function endpoint(config) {
9
+ httpsBase(config.endpoint, "");
10
+ const url = new URL(String(config.endpoint));
11
+ const cut = url.pathname.lastIndexOf("/") + 1;
12
+ return {
13
+ base: `${url.origin}${url.pathname.slice(0, cut)}`,
14
+ path: url.pathname.slice(cut),
15
+ };
16
+ }
17
+ /** The connection's public headers, sent on every request. */
18
+ export function publicHeaders(config) {
19
+ const headers = config.headers;
20
+ if (!headers || typeof headers !== "object")
21
+ return {};
22
+ return Object.fromEntries(Object.entries(headers).map(([name, value]) => [name, String(value)]));
23
+ }
24
+ /**
25
+ * An optional Authorization value (`headerAuth`, e.g. `Bearer <token>`),
26
+ * sent whole to the configured endpoint; without it, requests go
27
+ * unsigned. `headers` holds public headers only, and may not claim
28
+ * Authorization: a secret belongs in headerAuth.
29
+ */
30
+ export const graphqlCredential = staticCredential({
31
+ id: "graphql",
32
+ auth: { kind: "apiKey", header: "Authorization" },
33
+ local: { secret: "headerAuth" },
34
+ optional: true,
35
+ targets: (config) => ({
36
+ api: {
37
+ baseUrl: endpoint(config).base,
38
+ methods: ["POST"],
39
+ allowedHeaders: Object.keys(publicHeaders(config)),
40
+ },
41
+ }),
42
+ });