runline 0.32.0 → 0.34.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (521) hide show
  1. package/dist/auth/oauth2.d.ts +7 -1
  2. package/dist/auth/oauth2.js +10 -0
  3. package/dist/auth/token.d.ts +1 -0
  4. package/dist/auth/token.js +19 -1
  5. package/dist/auth/types.d.ts +22 -1
  6. package/dist/core/engine.d.ts +7 -0
  7. package/dist/core/engine.js +9 -0
  8. package/dist/credentials/policy.d.ts +53 -1
  9. package/dist/credentials/policy.js +146 -6
  10. package/dist/credentials/registry.d.ts +9 -0
  11. package/dist/credentials/registry.js +179 -22
  12. package/dist/credentials/transport.d.ts +48 -2
  13. package/dist/credentials/transport.js +248 -70
  14. package/dist/credentials/types.d.ts +167 -10
  15. package/dist/index.d.ts +5 -5
  16. package/dist/index.js +2 -2
  17. package/dist/plugin/api.d.ts +7 -0
  18. package/dist/plugin/api.js +7 -0
  19. package/dist/plugin/types.d.ts +12 -0
  20. package/dist/plugins/_shared/credentialAdapter.js +79 -15
  21. package/dist/plugins/_shared/credentials.js +389 -0
  22. package/dist/plugins/_shared/googleAuth.js +9 -40
  23. package/dist/plugins/_shared/googleCredentials.js +28 -7
  24. package/dist/plugins/_shared/microsoftAuth.js +13 -44
  25. package/dist/plugins/_shared/microsoftCredentials.js +30 -8
  26. package/dist/plugins/_shared/provider.js +2 -14
  27. package/dist/plugins/_shared/shiftCloud.js +22 -34
  28. package/dist/plugins/_shared/shiftCredentials.js +83 -0
  29. package/dist/plugins/_shared/shiftUpload.js +1 -1
  30. package/dist/plugins/actionNetwork/src/credentials.js +14 -0
  31. package/dist/plugins/actionNetwork/src/index.js +39 -50
  32. package/dist/plugins/activeCampaign/src/credentials.js +22 -0
  33. package/dist/plugins/activeCampaign/src/index.js +61 -132
  34. package/dist/plugins/adalo/src/credentials.js +16 -0
  35. package/dist/plugins/adalo/src/index.js +19 -43
  36. package/dist/plugins/affinity/src/credentials.js +19 -0
  37. package/dist/plugins/affinity/src/index.js +29 -54
  38. package/dist/plugins/agileCrm/src/credentials.js +16 -0
  39. package/dist/plugins/agileCrm/src/index.js +46 -112
  40. package/dist/plugins/airtable/src/credentials.js +19 -0
  41. package/dist/plugins/airtable/src/index.js +37 -50
  42. package/dist/plugins/airtop/src/credentials.js +20 -0
  43. package/dist/plugins/airtop/src/index.js +51 -75
  44. package/dist/plugins/apiTemplateIo/src/credentials.js +19 -0
  45. package/dist/plugins/apiTemplateIo/src/index.js +14 -31
  46. package/dist/plugins/asana/src/credentials.js +19 -0
  47. package/dist/plugins/asana/src/index.js +51 -72
  48. package/dist/plugins/autopilot/src/credentials.js +19 -0
  49. package/dist/plugins/autopilot/src/index.js +38 -45
  50. package/dist/plugins/bambooHr/src/credentials.js +16 -0
  51. package/dist/plugins/bambooHr/src/index.js +41 -67
  52. package/dist/plugins/bannerbear/src/credentials.js +19 -0
  53. package/dist/plugins/bannerbear/src/index.js +15 -27
  54. package/dist/plugins/baserow/src/credentials.js +17 -0
  55. package/dist/plugins/baserow/src/index.js +23 -49
  56. package/dist/plugins/beeminder/src/credentials.js +19 -0
  57. package/dist/plugins/beeminder/src/index.js +32 -54
  58. package/dist/plugins/bitly/src/credentials.js +19 -0
  59. package/dist/plugins/bitly/src/index.js +12 -26
  60. package/dist/plugins/bitwarden/src/credentials.js +62 -0
  61. package/dist/plugins/bitwarden/src/index.js +34 -80
  62. package/dist/plugins/box/src/credentials.js +19 -0
  63. package/dist/plugins/box/src/index.js +24 -49
  64. package/dist/plugins/brandfetch/src/credentials.js +13 -0
  65. package/dist/plugins/brandfetch/src/index.js +12 -17
  66. package/dist/plugins/brevo/src/credentials.js +19 -0
  67. package/dist/plugins/brevo/src/index.js +30 -51
  68. package/dist/plugins/bubble/src/credentials.js +28 -0
  69. package/dist/plugins/bubble/src/index.js +29 -65
  70. package/dist/plugins/chargebee/src/credentials.js +16 -0
  71. package/dist/plugins/chargebee/src/index.js +15 -45
  72. package/dist/plugins/circleci/src/credentials.js +19 -0
  73. package/dist/plugins/circleci/src/index.js +19 -39
  74. package/dist/plugins/ciscoWebex/src/credentials.js +19 -0
  75. package/dist/plugins/ciscoWebex/src/index.js +43 -61
  76. package/dist/plugins/clearbit/src/credentials.js +22 -0
  77. package/dist/plugins/clearbit/src/index.js +11 -21
  78. package/dist/plugins/clickup/src/credentials.js +19 -0
  79. package/dist/plugins/clickup/src/index.js +85 -117
  80. package/dist/plugins/clockify/src/credentials.js +19 -0
  81. package/dist/plugins/clockify/src/index.js +46 -61
  82. package/dist/plugins/cloudflare/src/credentials.js +19 -0
  83. package/dist/plugins/cloudflare/src/index.js +19 -34
  84. package/dist/plugins/cockpit/src/credentials.js +17 -0
  85. package/dist/plugins/cockpit/src/index.js +18 -31
  86. package/dist/plugins/coda/src/credentials.js +19 -0
  87. package/dist/plugins/coda/src/index.js +33 -50
  88. package/dist/plugins/coingecko/src/credentials.js +20 -0
  89. package/dist/plugins/coingecko/src/index.js +24 -34
  90. package/dist/plugins/contentful/src/credentials.js +26 -0
  91. package/dist/plugins/contentful/src/index.js +19 -40
  92. package/dist/plugins/convertkit/src/credentials.js +26 -0
  93. package/dist/plugins/convertkit/src/index.js +27 -45
  94. package/dist/plugins/copper/src/credentials.js +17 -0
  95. package/dist/plugins/copper/src/index.js +25 -47
  96. package/dist/plugins/cortex/src/credentials.js +28 -0
  97. package/dist/plugins/cortex/src/index.js +26 -49
  98. package/dist/plugins/currents/src/credentials.js +19 -0
  99. package/dist/plugins/currents/src/index.js +46 -59
  100. package/dist/plugins/customerIo/src/credentials.js +52 -0
  101. package/dist/plugins/customerIo/src/index.js +30 -58
  102. package/dist/plugins/databricks/src/credentials.js +13 -0
  103. package/dist/plugins/databricks/src/index.js +51 -103
  104. package/dist/plugins/deepl/src/credentials.js +19 -0
  105. package/dist/plugins/deepl/src/index.js +13 -39
  106. package/dist/plugins/demio/src/credentials.js +26 -0
  107. package/dist/plugins/demio/src/index.js +17 -41
  108. package/dist/plugins/dhl/src/credentials.js +13 -0
  109. package/dist/plugins/dhl/src/index.js +8 -19
  110. package/dist/plugins/discord/src/credentials.js +19 -0
  111. package/dist/plugins/discord/src/index.js +30 -58
  112. package/dist/plugins/discourse/src/credentials.js +18 -0
  113. package/dist/plugins/discourse/src/index.js +36 -53
  114. package/dist/plugins/disqus/src/credentials.js +13 -0
  115. package/dist/plugins/disqus/src/index.js +14 -32
  116. package/dist/plugins/drift/src/credentials.js +13 -0
  117. package/dist/plugins/drift/src/index.js +16 -26
  118. package/dist/plugins/dropbox/src/credentials.js +13 -0
  119. package/dist/plugins/dropbox/src/index.js +23 -30
  120. package/dist/plugins/dropcontact/src/credentials.js +13 -0
  121. package/dist/plugins/dropcontact/src/index.js +13 -18
  122. package/dist/plugins/egoi/src/credentials.js +19 -0
  123. package/dist/plugins/egoi/src/index.js +23 -38
  124. package/dist/plugins/elasticsearch/src/credentials.js +18 -0
  125. package/dist/plugins/elasticsearch/src/index.js +27 -48
  126. package/dist/plugins/elevenlabs/src/credentials.js +30 -0
  127. package/dist/plugins/elevenlabs/src/index.js +4 -1
  128. package/dist/plugins/elevenlabs/src/schemas.js +2 -1
  129. package/dist/plugins/elevenlabs/src/shared.js +74 -35
  130. package/dist/plugins/elevenlabs/src/workflows.js +2 -2
  131. package/dist/plugins/emelia/src/credentials.js +14 -0
  132. package/dist/plugins/emelia/src/index.js +19 -23
  133. package/dist/plugins/erpnext/src/credentials.js +27 -0
  134. package/dist/plugins/erpnext/src/index.js +21 -42
  135. package/dist/plugins/facebookGraph/src/credentials.js +20 -0
  136. package/dist/plugins/facebookGraph/src/index.js +39 -37
  137. package/dist/plugins/fal/src/credentials.js +14 -0
  138. package/dist/plugins/fal/src/index.js +4 -2
  139. package/dist/plugins/fal/src/shared.js +58 -63
  140. package/dist/plugins/freshdesk/src/credentials.js +20 -0
  141. package/dist/plugins/freshdesk/src/index.js +25 -46
  142. package/dist/plugins/freshservice/src/credentials.js +16 -0
  143. package/dist/plugins/freshservice/src/index.js +37 -58
  144. package/dist/plugins/freshworksCrm/src/credentials.js +16 -0
  145. package/dist/plugins/freshworksCrm/src/index.js +20 -39
  146. package/dist/plugins/getresponse/src/credentials.js +22 -0
  147. package/dist/plugins/getresponse/src/index.js +20 -32
  148. package/dist/plugins/gett/src/credentials.js +64 -0
  149. package/dist/plugins/gett/src/index.js +11 -6
  150. package/dist/plugins/gett/src/login.js +24 -0
  151. package/dist/plugins/gett/src/session.js +15 -38
  152. package/dist/plugins/gett/src/shared.js +41 -84
  153. package/dist/plugins/ghost/src/credentials.js +36 -0
  154. package/dist/plugins/ghost/src/index.js +18 -59
  155. package/dist/plugins/github/src/credentials.js +18 -0
  156. package/dist/plugins/github/src/index.js +55 -78
  157. package/dist/plugins/gitlab/src/credentials.js +24 -0
  158. package/dist/plugins/gitlab/src/index.js +29 -48
  159. package/dist/plugins/gmail/src/index.js +26 -24
  160. package/dist/plugins/gong/src/credentials.js +16 -0
  161. package/dist/plugins/gong/src/index.js +16 -32
  162. package/dist/plugins/googleAppsScript/src/index.js +108 -42
  163. package/dist/plugins/googleCalendar/src/index.js +15 -13
  164. package/dist/plugins/googleContacts/src/index.js +12 -9
  165. package/dist/plugins/googleDocs/src/index.js +2 -0
  166. package/dist/plugins/googleDocs/src/shared.js +2 -1
  167. package/dist/plugins/googleDrive/src/index.js +50 -53
  168. package/dist/plugins/googleImage/src/credentials.js +14 -0
  169. package/dist/plugins/googleImage/src/index.js +14 -25
  170. package/dist/plugins/googleSheets/src/index.js +26 -27
  171. package/dist/plugins/googleSlides/src/index.js +6 -4
  172. package/dist/plugins/googleTasks/src/index.js +13 -11
  173. package/dist/plugins/gotify/src/credentials.js +32 -0
  174. package/dist/plugins/gotify/src/index.js +14 -36
  175. package/dist/plugins/gotowebinar/src/credentials.js +13 -0
  176. package/dist/plugins/gotowebinar/src/index.js +52 -69
  177. package/dist/plugins/grafana/src/credentials.js +16 -0
  178. package/dist/plugins/grafana/src/index.js +34 -53
  179. package/dist/plugins/graphql/src/credentials.js +42 -0
  180. package/dist/plugins/graphql/src/index.js +21 -46
  181. package/dist/plugins/grist/src/credentials.js +30 -0
  182. package/dist/plugins/grist/src/index.js +14 -43
  183. package/dist/plugins/halopsa/src/credentials.js +56 -0
  184. package/dist/plugins/halopsa/src/index.js +20 -47
  185. package/dist/plugins/harvest/src/credentials.js +20 -0
  186. package/dist/plugins/harvest/src/index.js +24 -43
  187. package/dist/plugins/helpscout/src/credentials.js +13 -0
  188. package/dist/plugins/helpscout/src/index.js +26 -38
  189. package/dist/plugins/highlevel/src/credentials.js +19 -0
  190. package/dist/plugins/highlevel/src/index.js +34 -63
  191. package/dist/plugins/homeAssistant/src/credentials.js +27 -0
  192. package/dist/plugins/homeAssistant/src/index.js +34 -52
  193. package/dist/plugins/hubspot/src/credentials.js +16 -0
  194. package/dist/plugins/hubspot/src/index.js +29 -41
  195. package/dist/plugins/humanticAi/src/credentials.js +13 -0
  196. package/dist/plugins/humanticAi/src/index.js +15 -22
  197. package/dist/plugins/hunter/src/credentials.js +13 -0
  198. package/dist/plugins/hunter/src/index.js +18 -17
  199. package/dist/plugins/intercom/src/credentials.js +19 -0
  200. package/dist/plugins/intercom/src/index.js +25 -38
  201. package/dist/plugins/iterable/src/credentials.js +17 -0
  202. package/dist/plugins/iterable/src/index.js +26 -40
  203. package/dist/plugins/jenkins/src/credentials.js +16 -0
  204. package/dist/plugins/jenkins/src/index.js +22 -36
  205. package/dist/plugins/jira/src/credentials.js +16 -0
  206. package/dist/plugins/jira/src/index.js +35 -61
  207. package/dist/plugins/keap/src/credentials.js +19 -0
  208. package/dist/plugins/keap/src/index.js +43 -71
  209. package/dist/plugins/kobotoolbox/src/credentials.js +13 -0
  210. package/dist/plugins/kobotoolbox/src/index.js +46 -84
  211. package/dist/plugins/lemlist/src/credentials.js +19 -0
  212. package/dist/plugins/lemlist/src/index.js +35 -47
  213. package/dist/plugins/linear/src/attachments.js +7 -7
  214. package/dist/plugins/linear/src/comments.js +7 -7
  215. package/dist/plugins/linear/src/credentials.js +17 -0
  216. package/dist/plugins/linear/src/cycles.js +5 -5
  217. package/dist/plugins/linear/src/index.js +2 -0
  218. package/dist/plugins/linear/src/initiatives.js +6 -6
  219. package/dist/plugins/linear/src/issues.js +14 -14
  220. package/dist/plugins/linear/src/labels.js +6 -6
  221. package/dist/plugins/linear/src/organization.js +2 -2
  222. package/dist/plugins/linear/src/projects.js +12 -12
  223. package/dist/plugins/linear/src/shared.js +34 -32
  224. package/dist/plugins/linear/src/states.js +3 -3
  225. package/dist/plugins/linear/src/teams.js +4 -4
  226. package/dist/plugins/linear/src/users.js +3 -3
  227. package/dist/plugins/linear/src/views.js +5 -5
  228. package/dist/plugins/linear/src/webhooks.js +5 -5
  229. package/dist/plugins/lingvanex/src/credentials.js +13 -0
  230. package/dist/plugins/lingvanex/src/index.js +7 -9
  231. package/dist/plugins/linkedin/src/credentials.js +17 -0
  232. package/dist/plugins/linkedin/src/index.js +13 -17
  233. package/dist/plugins/lonescale/src/credentials.js +13 -0
  234. package/dist/plugins/lonescale/src/index.js +16 -26
  235. package/dist/plugins/magento/src/credentials.js +16 -0
  236. package/dist/plugins/magento/src/index.js +67 -84
  237. package/dist/plugins/mailcheck/src/credentials.js +17 -0
  238. package/dist/plugins/mailcheck/src/index.js +7 -9
  239. package/dist/plugins/mailchimp/src/credentials.js +32 -0
  240. package/dist/plugins/mailchimp/src/index.js +36 -44
  241. package/dist/plugins/mailerlite/src/credentials.js +13 -0
  242. package/dist/plugins/mailerlite/src/index.js +19 -32
  243. package/dist/plugins/mailgun/src/credentials.js +21 -0
  244. package/dist/plugins/mailgun/src/index.js +15 -21
  245. package/dist/plugins/mailjet/src/credentials.js +38 -0
  246. package/dist/plugins/mailjet/src/index.js +60 -115
  247. package/dist/plugins/mandrill/src/credentials.js +17 -0
  248. package/dist/plugins/mandrill/src/index.js +11 -12
  249. package/dist/plugins/marketstack/src/credentials.js +16 -0
  250. package/dist/plugins/marketstack/src/index.js +18 -28
  251. package/dist/plugins/matrix/src/credentials.js +19 -0
  252. package/dist/plugins/matrix/src/index.js +23 -52
  253. package/dist/plugins/mattermost/src/credentials.js +19 -0
  254. package/dist/plugins/mattermost/src/index.js +41 -73
  255. package/dist/plugins/mautic/src/credentials.js +16 -0
  256. package/dist/plugins/mautic/src/index.js +46 -62
  257. package/dist/plugins/medium/src/credentials.js +20 -0
  258. package/dist/plugins/medium/src/index.js +18 -23
  259. package/dist/plugins/messagebird/src/credentials.js +22 -0
  260. package/dist/plugins/messagebird/src/index.js +13 -18
  261. package/dist/plugins/metabase/src/credentials.js +19 -0
  262. package/dist/plugins/metabase/src/index.js +24 -40
  263. package/dist/plugins/microsoftCalendar/src/index.js +48 -12
  264. package/dist/plugins/microsoftFiles/src/index.js +90 -25
  265. package/dist/plugins/microsoftMail/src/index.js +62 -15
  266. package/dist/plugins/misp/src/credentials.js +16 -0
  267. package/dist/plugins/misp/src/index.js +60 -71
  268. package/dist/plugins/mocean/src/credentials.js +17 -0
  269. package/dist/plugins/mocean/src/index.js +11 -23
  270. package/dist/plugins/monday/src/credentials.js +14 -0
  271. package/dist/plugins/monday/src/index.js +31 -44
  272. package/dist/plugins/monicaCrm/src/credentials.js +19 -0
  273. package/dist/plugins/monicaCrm/src/index.js +25 -42
  274. package/dist/plugins/msg91/src/credentials.js +10 -0
  275. package/dist/plugins/msg91/src/index.js +15 -11
  276. package/dist/plugins/nasa/src/credentials.js +22 -0
  277. package/dist/plugins/nasa/src/index.js +24 -28
  278. package/dist/plugins/netlify/src/credentials.js +19 -0
  279. package/dist/plugins/netlify/src/index.js +27 -51
  280. package/dist/plugins/netscalerAdc/src/credentials.js +18 -0
  281. package/dist/plugins/netscalerAdc/src/index.js +16 -31
  282. package/dist/plugins/nextcloud/src/credentials.js +27 -0
  283. package/dist/plugins/nextcloud/src/index.js +55 -109
  284. package/dist/plugins/nocodb/src/credentials.js +16 -0
  285. package/dist/plugins/nocodb/src/index.js +19 -37
  286. package/dist/plugins/notion/src/credentials.js +21 -0
  287. package/dist/plugins/notion/src/index.js +25 -38
  288. package/dist/plugins/npm/src/credentials.js +19 -0
  289. package/dist/plugins/npm/src/index.js +22 -32
  290. package/dist/plugins/odoo/src/credentials.js +21 -0
  291. package/dist/plugins/odoo/src/index.js +53 -69
  292. package/dist/plugins/okta/src/credentials.js +23 -0
  293. package/dist/plugins/okta/src/index.js +30 -35
  294. package/dist/plugins/oneSimpleApi/src/credentials.js +16 -0
  295. package/dist/plugins/oneSimpleApi/src/index.js +19 -24
  296. package/dist/plugins/onfleet/src/credentials.js +23 -0
  297. package/dist/plugins/onfleet/src/index.js +42 -53
  298. package/dist/plugins/openai/src/credentials.js +13 -0
  299. package/dist/plugins/openai/src/index.js +15 -23
  300. package/dist/plugins/openweathermap/src/credentials.js +16 -0
  301. package/dist/plugins/openweathermap/src/index.js +22 -22
  302. package/dist/plugins/oura/src/credentials.js +19 -0
  303. package/dist/plugins/oura/src/index.js +13 -18
  304. package/dist/plugins/paddle/src/credentials.js +27 -0
  305. package/dist/plugins/paddle/src/index.js +20 -36
  306. package/dist/plugins/pagerduty/src/credentials.js +24 -0
  307. package/dist/plugins/pagerduty/src/index.js +30 -39
  308. package/dist/plugins/parallel/src/credentials.js +18 -0
  309. package/dist/plugins/parallel/src/index.js +16 -22
  310. package/dist/plugins/paypal/src/credentials.js +44 -0
  311. package/dist/plugins/paypal/src/index.js +14 -40
  312. package/dist/plugins/peekalink/src/credentials.js +16 -0
  313. package/dist/plugins/peekalink/src/index.js +10 -11
  314. package/dist/plugins/phantombuster/src/credentials.js +19 -0
  315. package/dist/plugins/phantombuster/src/index.js +19 -32
  316. package/dist/plugins/philipsHue/src/credentials.js +17 -0
  317. package/dist/plugins/philipsHue/src/index.js +15 -27
  318. package/dist/plugins/pipedrive/src/credentials.js +26 -0
  319. package/dist/plugins/pipedrive/src/index.js +43 -73
  320. package/dist/plugins/plaud/src/index.js +2 -1
  321. package/dist/plugins/plaud/src/shared.js +23 -19
  322. package/dist/plugins/plivo/src/credentials.js +20 -0
  323. package/dist/plugins/plivo/src/index.js +13 -19
  324. package/dist/plugins/posthog/src/credentials.js +18 -0
  325. package/dist/plugins/posthog/src/index.js +14 -20
  326. package/dist/plugins/profitwell/src/credentials.js +22 -0
  327. package/dist/plugins/profitwell/src/index.js +10 -17
  328. package/dist/plugins/pushbullet/src/credentials.js +19 -0
  329. package/dist/plugins/pushbullet/src/index.js +19 -27
  330. package/dist/plugins/pushcut/src/credentials.js +19 -0
  331. package/dist/plugins/pushcut/src/index.js +7 -8
  332. package/dist/plugins/pushover/src/credentials.js +14 -0
  333. package/dist/plugins/pushover/src/index.js +7 -12
  334. package/dist/plugins/quickbase/src/credentials.js +15 -0
  335. package/dist/plugins/quickbase/src/index.js +24 -34
  336. package/dist/plugins/quickbooks/src/credentials.js +22 -0
  337. package/dist/plugins/quickbooks/src/index.js +17 -46
  338. package/dist/plugins/raindrop/src/credentials.js +19 -0
  339. package/dist/plugins/raindrop/src/index.js +30 -32
  340. package/dist/plugins/recraft/src/credentials.js +13 -0
  341. package/dist/plugins/recraft/src/index.js +38 -27
  342. package/dist/plugins/reddit/src/credentials.js +26 -0
  343. package/dist/plugins/reddit/src/index.js +30 -34
  344. package/dist/plugins/replicate/src/credentials.js +23 -0
  345. package/dist/plugins/replicate/src/index.js +17 -27
  346. package/dist/plugins/rocketchat/src/credentials.js +17 -0
  347. package/dist/plugins/rocketchat/src/index.js +8 -19
  348. package/dist/plugins/rundeck/src/credentials.js +16 -0
  349. package/dist/plugins/rundeck/src/index.js +12 -28
  350. package/dist/plugins/salesforce/src/credentials.js +73 -0
  351. package/dist/plugins/salesforce/src/index.js +6 -0
  352. package/dist/plugins/salesforce/src/metadata.js +3 -16
  353. package/dist/plugins/salesforce/src/shared.js +25 -100
  354. package/dist/plugins/salesforce/src/sobjects.js +10 -9
  355. package/dist/plugins/salesmate/src/credentials.js +17 -0
  356. package/dist/plugins/salesmate/src/index.js +20 -37
  357. package/dist/plugins/securityScorecard/src/credentials.js +22 -0
  358. package/dist/plugins/securityScorecard/src/index.js +24 -37
  359. package/dist/plugins/segment/src/credentials.js +16 -0
  360. package/dist/plugins/segment/src/index.js +12 -16
  361. package/dist/plugins/sendgrid/src/credentials.js +13 -0
  362. package/dist/plugins/sendgrid/src/index.js +31 -35
  363. package/dist/plugins/sendy/src/credentials.js +18 -0
  364. package/dist/plugins/sendy/src/index.js +18 -24
  365. package/dist/plugins/sentry/src/credentials.js +16 -0
  366. package/dist/plugins/sentry/src/index.js +30 -98
  367. package/dist/plugins/servicenow/src/credentials.js +13 -0
  368. package/dist/plugins/servicenow/src/index.js +22 -41
  369. package/dist/plugins/shiftAtlas/src/graph.js +2 -2
  370. package/dist/plugins/shiftAtlas/src/index.js +2 -0
  371. package/dist/plugins/shiftAtlas/src/shared.js +3 -1
  372. package/dist/plugins/shiftBwm/src/collections.js +201 -0
  373. package/dist/plugins/shiftBwm/src/index.js +35 -0
  374. package/dist/plugins/shiftBwm/src/records.js +180 -0
  375. package/dist/plugins/shiftBwm/src/shared.js +168 -0
  376. package/dist/plugins/shiftBwm/src/vendor/client.js +227 -0
  377. package/dist/plugins/shiftBwm/src/vendor/contracts.js +59 -0
  378. package/dist/plugins/shiftBwm/src/vendor/models.js +525 -0
  379. package/dist/plugins/shiftCrm/src/access.js +2 -2
  380. package/dist/plugins/shiftCrm/src/accounts.js +3 -3
  381. package/dist/plugins/shiftCrm/src/activities.js +3 -3
  382. package/dist/plugins/shiftCrm/src/credentials.js +6 -0
  383. package/dist/plugins/shiftCrm/src/index.js +2 -0
  384. package/dist/plugins/shiftCrm/src/opportunities.js +3 -3
  385. package/dist/plugins/shiftCrm/src/people.js +3 -3
  386. package/dist/plugins/shiftCrm/src/records.js +2 -2
  387. package/dist/plugins/shiftCrm/src/shared.js +2 -1
  388. package/dist/plugins/shiftCrm/src/tasks.js +3 -3
  389. package/dist/plugins/shiftObjects/src/credentials.js +2 -0
  390. package/dist/plugins/shiftObjects/src/index.js +2 -0
  391. package/dist/plugins/shiftObjects/src/objects.js +3 -3
  392. package/dist/plugins/shiftOcr/src/credentials.js +8 -0
  393. package/dist/plugins/shiftOcr/src/index.js +5 -2
  394. package/dist/plugins/shiftPages/src/index.js +2 -0
  395. package/dist/plugins/shiftPages/src/pages.js +5 -3
  396. package/dist/plugins/shiftPages/src/shared.js +3 -1
  397. package/dist/plugins/shiftTranscription/src/index.js +2 -0
  398. package/dist/plugins/shiftTranscription/src/shared.js +11 -1
  399. package/dist/plugins/shiftTranscription/src/transcription.js +3 -2
  400. package/dist/plugins/shiftWork/src/index.js +2 -0
  401. package/dist/plugins/shiftWork/src/issue-views.js +5 -5
  402. package/dist/plugins/shiftWork/src/issues.js +11 -7
  403. package/dist/plugins/shiftWork/src/projects.js +3 -3
  404. package/dist/plugins/shiftWork/src/shared.js +3 -1
  405. package/dist/plugins/shopify/src/credentials.js +16 -0
  406. package/dist/plugins/shopify/src/index.js +32 -59
  407. package/dist/plugins/signl4/src/credentials.js +17 -0
  408. package/dist/plugins/signl4/src/index.js +28 -29
  409. package/dist/plugins/slack/src/credentials.js +19 -0
  410. package/dist/plugins/slack/src/index.js +51 -60
  411. package/dist/plugins/sms77/src/credentials.js +17 -0
  412. package/dist/plugins/sms77/src/index.js +11 -16
  413. package/dist/plugins/splunk/src/credentials.js +19 -0
  414. package/dist/plugins/splunk/src/index.js +32 -74
  415. package/dist/plugins/spotify/src/credentials.js +19 -0
  416. package/dist/plugins/spotify/src/index.js +40 -55
  417. package/dist/plugins/stackby/src/credentials.js +13 -0
  418. package/dist/plugins/stackby/src/index.js +14 -23
  419. package/dist/plugins/steel/src/auth.js +27 -0
  420. package/dist/plugins/steel/src/browser.js +4 -3
  421. package/dist/plugins/steel/src/captchas.js +4 -3
  422. package/dist/plugins/steel/src/extensions.js +3 -2
  423. package/dist/plugins/steel/src/files.js +9 -10
  424. package/dist/plugins/steel/src/index.js +2 -0
  425. package/dist/plugins/steel/src/page/tools.js +3 -3
  426. package/dist/plugins/steel/src/profiles.js +4 -3
  427. package/dist/plugins/steel/src/sessions.js +13 -13
  428. package/dist/plugins/steel/src/shared.js +21 -51
  429. package/dist/plugins/storyblok/src/credentials.js +37 -0
  430. package/dist/plugins/storyblok/src/index.js +22 -66
  431. package/dist/plugins/strapi/src/credentials.js +71 -0
  432. package/dist/plugins/strapi/src/index.js +36 -70
  433. package/dist/plugins/strava/src/credentials.js +19 -0
  434. package/dist/plugins/strava/src/index.js +16 -33
  435. package/dist/plugins/stripe/src/credentials.js +19 -0
  436. package/dist/plugins/stripe/src/index.js +44 -58
  437. package/dist/plugins/supabase/src/credentials.js +30 -0
  438. package/dist/plugins/supabase/src/index.js +18 -40
  439. package/dist/plugins/syncromsp/src/credentials.js +16 -0
  440. package/dist/plugins/syncromsp/src/index.js +37 -70
  441. package/dist/plugins/tapfiliate/src/credentials.js +13 -0
  442. package/dist/plugins/tapfiliate/src/index.js +21 -31
  443. package/dist/plugins/telegram/src/credentials.js +20 -0
  444. package/dist/plugins/telegram/src/index.js +31 -39
  445. package/dist/plugins/thehive/src/credentials.js +14 -0
  446. package/dist/plugins/thehive/src/index.js +33 -50
  447. package/dist/plugins/thehiveProject/src/credentials.js +16 -0
  448. package/dist/plugins/thehiveProject/src/index.js +53 -122
  449. package/dist/plugins/todoist/src/credentials.js +26 -0
  450. package/dist/plugins/todoist/src/index.js +49 -79
  451. package/dist/plugins/together/src/credentials.js +16 -0
  452. package/dist/plugins/together/src/index.js +30 -32
  453. package/dist/plugins/travisci/src/credentials.js +24 -0
  454. package/dist/plugins/travisci/src/index.js +16 -30
  455. package/dist/plugins/trello/src/credentials.js +29 -0
  456. package/dist/plugins/trello/src/index.js +49 -64
  457. package/dist/plugins/twake/src/credentials.js +16 -0
  458. package/dist/plugins/twake/src/index.js +8 -10
  459. package/dist/plugins/twilio/src/credentials.js +23 -0
  460. package/dist/plugins/twilio/src/index.js +12 -26
  461. package/dist/plugins/twist/src/credentials.js +13 -0
  462. package/dist/plugins/twist/src/index.js +32 -44
  463. package/dist/plugins/twitter/src/credentials.js +16 -0
  464. package/dist/plugins/twitter/src/index.js +25 -37
  465. package/dist/plugins/typesafe/src/credentials.js +28 -0
  466. package/dist/plugins/typesafe/src/index.js +3 -1
  467. package/dist/plugins/typesafe/src/shared.js +23 -35
  468. package/dist/plugins/unleashedSoftware/src/credentials.js +21 -0
  469. package/dist/plugins/unleashedSoftware/src/index.js +13 -37
  470. package/dist/plugins/uplead/src/credentials.js +16 -0
  471. package/dist/plugins/uplead/src/index.js +11 -16
  472. package/dist/plugins/uproc/src/credentials.js +14 -0
  473. package/dist/plugins/uproc/src/index.js +7 -10
  474. package/dist/plugins/uptimerobot/src/credentials.js +14 -0
  475. package/dist/plugins/uptimerobot/src/index.js +28 -39
  476. package/dist/plugins/urlscanio/src/credentials.js +13 -0
  477. package/dist/plugins/urlscanio/src/index.js +13 -22
  478. package/dist/plugins/vercel/src/credentials.js +19 -0
  479. package/dist/plugins/vercel/src/deployments.js +27 -11
  480. package/dist/plugins/vercel/src/env.js +31 -12
  481. package/dist/plugins/vercel/src/index.js +2 -0
  482. package/dist/plugins/vercel/src/projects.js +6 -3
  483. package/dist/plugins/vercel/src/shared.js +32 -37
  484. package/dist/plugins/vero/src/credentials.js +17 -0
  485. package/dist/plugins/vero/src/index.js +18 -21
  486. package/dist/plugins/vonage/src/credentials.js +17 -0
  487. package/dist/plugins/vonage/src/index.js +14 -18
  488. package/dist/plugins/wekan/src/credentials.js +16 -0
  489. package/dist/plugins/wekan/src/index.js +33 -46
  490. package/dist/plugins/wolt/src/account.js +6 -0
  491. package/dist/plugins/wolt/src/catalog.js +2 -2
  492. package/dist/plugins/wolt/src/credentials.js +64 -0
  493. package/dist/plugins/wolt/src/index.js +8 -3
  494. package/dist/plugins/wolt/src/orders.js +2 -2
  495. package/dist/plugins/wolt/src/public.js +91 -0
  496. package/dist/plugins/wolt/src/shared.js +49 -158
  497. package/dist/plugins/woocommerce/src/credentials.js +16 -0
  498. package/dist/plugins/woocommerce/src/index.js +19 -37
  499. package/dist/plugins/wordpress/src/credentials.js +16 -0
  500. package/dist/plugins/wordpress/src/index.js +23 -42
  501. package/dist/plugins/xai/src/credentials.js +13 -0
  502. package/dist/plugins/xai/src/index.js +31 -30
  503. package/dist/plugins/xero/src/credentials.js +17 -0
  504. package/dist/plugins/xero/src/index.js +19 -36
  505. package/dist/plugins/yourls/src/credentials.js +17 -0
  506. package/dist/plugins/yourls/src/index.js +13 -23
  507. package/dist/plugins/zammad/src/credentials.js +15 -0
  508. package/dist/plugins/zammad/src/index.js +27 -47
  509. package/dist/plugins/zendesk/src/credentials.js +26 -0
  510. package/dist/plugins/zendesk/src/index.js +29 -48
  511. package/dist/plugins/zoho/src/credentials.js +17 -0
  512. package/dist/plugins/zoho/src/index.js +18 -38
  513. package/dist/plugins/zoom/src/credentials.js +19 -0
  514. package/dist/plugins/zoom/src/index.js +15 -30
  515. package/dist/plugins/zulip/src/credentials.js +16 -0
  516. package/dist/plugins/zulip/src/index.js +36 -42
  517. package/dist/sdk.d.ts +8 -0
  518. package/dist/sdk.js +3 -0
  519. package/package.json +3 -2
  520. package/dist/plugins/_shared/authedFetch.js +0 -33
  521. package/dist/plugins/_shared/tokenRefresh.js +0 -41
@@ -1,50 +1,25 @@
1
- async function apiRequest(token, baseUrl, method, endpoint, body, qs) {
2
- const url = new URL(`${baseUrl}${endpoint}`);
3
- if (qs) {
4
- for (const [k, v] of Object.entries(qs)) {
5
- if (v !== undefined && v !== null)
6
- url.searchParams.set(k, String(v));
7
- }
8
- }
9
- const opts = {
1
+ import { credentialJson, pathSegment, pathSegments, } from "../../_shared/credentials.js";
2
+ import { GITHUB_API_VERSION, githubCredential } from "./credentials.js";
3
+ function gh(ctx, method, path, body, query) {
4
+ return credentialJson(ctx, githubCredential, "github", {
5
+ target: "api",
6
+ path,
10
7
  method,
8
+ query,
11
9
  headers: {
12
- Authorization: `Bearer ${token}`,
13
10
  Accept: "application/vnd.github+json",
14
- "Content-Type": "application/json",
15
- "X-GitHub-Api-Version": "2022-11-28",
16
- },
17
- };
18
- if (body &&
19
- Object.keys(body).length > 0 &&
20
- method !== "GET" &&
21
- method !== "DELETE") {
22
- opts.body = JSON.stringify(body);
23
- }
24
- const res = await fetch(url.toString(), opts);
25
- if (!res.ok)
26
- throw new Error(`GitHub API error ${res.status}: ${await res.text()}`);
27
- if (res.status === 204)
28
- return { success: true };
29
- const ct = res.headers.get("content-type") ?? "";
30
- if (ct.includes("application/json"))
31
- return res.json();
32
- return { success: true };
33
- }
34
- function getConn(ctx) {
35
- const cfg = ctx.connection.config;
36
- return {
37
- token: cfg.token,
38
- baseUrl: (cfg.baseUrl ?? "https://api.github.com").replace(/\/$/, ""),
39
- };
40
- }
41
- function gh(ctx, method, endpoint, body, qs) {
42
- const { token, baseUrl } = getConn(ctx);
43
- return apiRequest(token, baseUrl, method, endpoint, body, qs);
11
+ "X-GitHub-Api-Version": GITHUB_API_VERSION,
12
+ },
13
+ // DELETE carries a body where GitHub needs one (a file's sha and message).
14
+ ...(body && Object.keys(body).length > 0 && method !== "GET"
15
+ ? { json: body }
16
+ : {}),
17
+ });
44
18
  }
45
19
  export default function github(rl) {
46
20
  rl.setName("github");
47
21
  rl.setVersion("0.1.0");
22
+ rl.setCredential(githubCredential);
48
23
  rl.setConnectionSchema({
49
24
  token: {
50
25
  type: "string",
@@ -83,7 +58,7 @@ export default function github(rl) {
83
58
  const qs = {};
84
59
  if (ref)
85
60
  qs.ref = ref;
86
- return gh(ctx, "GET", `/repos/${owner}/${repo}/contents/${path}`, undefined, qs);
61
+ return gh(ctx, "GET", `repos/${pathSegment(owner)}/${pathSegment(repo)}/contents/${pathSegments(path)}`, undefined, qs);
87
62
  },
88
63
  });
89
64
  rl.registerAction("file.createOrUpdate", {
@@ -124,7 +99,7 @@ export default function github(rl) {
124
99
  body.sha = sha;
125
100
  if (branch)
126
101
  body.branch = branch;
127
- return gh(ctx, "PUT", `/repos/${owner}/${repo}/contents/${path}`, body);
102
+ return gh(ctx, "PUT", `repos/${pathSegment(owner)}/${pathSegment(repo)}/contents/${pathSegments(path)}`, body);
128
103
  },
129
104
  });
130
105
  rl.registerAction("file.delete", {
@@ -155,7 +130,7 @@ export default function github(rl) {
155
130
  const body = { sha, message };
156
131
  if (branch)
157
132
  body.branch = branch;
158
- return gh(ctx, "DELETE", `/repos/${owner}/${repo}/contents/${path}`, body);
133
+ return gh(ctx, "DELETE", `repos/${pathSegment(owner)}/${pathSegment(repo)}/contents/${pathSegments(path)}`, body);
159
134
  },
160
135
  });
161
136
  rl.registerAction("file.list", {
@@ -180,11 +155,11 @@ export default function github(rl) {
180
155
  },
181
156
  },
182
157
  async execute(input, ctx) {
183
- const { owner, repo, path = "", ref, } = (input ?? {});
158
+ const { owner, repo, path, ref } = (input ?? {});
184
159
  const qs = {};
185
160
  if (ref)
186
161
  qs.ref = ref;
187
- return gh(ctx, "GET", `/repos/${owner}/${repo}/contents/${path}`, undefined, qs);
162
+ return gh(ctx, "GET", `repos/${pathSegment(owner)}/${pathSegment(repo)}/contents/${path ? pathSegments(path) : ""}`, undefined, qs);
188
163
  },
189
164
  });
190
165
  // ── Issue ───────────────────────────────────────────
@@ -227,7 +202,7 @@ export default function github(rl) {
227
202
  b.assignees = assignees;
228
203
  if (milestone)
229
204
  b.milestone = milestone;
230
- return gh(ctx, "POST", `/repos/${owner}/${repo}/issues`, b);
205
+ return gh(ctx, "POST", `repos/${pathSegment(owner)}/${pathSegment(repo)}/issues`, b);
231
206
  },
232
207
  });
233
208
  rl.registerAction("issue.get", {
@@ -248,7 +223,7 @@ export default function github(rl) {
248
223
  },
249
224
  async execute(input, ctx) {
250
225
  const { owner, repo, issueNumber } = input;
251
- return gh(ctx, "GET", `/repos/${owner}/${repo}/issues/${issueNumber}`);
226
+ return gh(ctx, "GET", `repos/${pathSegment(owner)}/${pathSegment(repo)}/issues/${pathSegment(issueNumber)}`);
252
227
  },
253
228
  });
254
229
  rl.registerAction("issue.update", {
@@ -274,7 +249,7 @@ export default function github(rl) {
274
249
  },
275
250
  async execute(input, ctx) {
276
251
  const { owner, repo, issueNumber, ...fields } = input;
277
- return gh(ctx, "PATCH", `/repos/${owner}/${repo}/issues/${issueNumber}`, fields);
252
+ return gh(ctx, "PATCH", `repos/${pathSegment(owner)}/${pathSegment(repo)}/issues/${pathSegment(issueNumber)}`, fields);
278
253
  },
279
254
  });
280
255
  rl.registerAction("issue.createComment", {
@@ -300,7 +275,7 @@ export default function github(rl) {
300
275
  },
301
276
  async execute(input, ctx) {
302
277
  const { owner, repo, issueNumber, body: commentBody, } = input;
303
- return gh(ctx, "POST", `/repos/${owner}/${repo}/issues/${issueNumber}/comments`, { body: commentBody });
278
+ return gh(ctx, "POST", `repos/${pathSegment(owner)}/${pathSegment(repo)}/issues/${pathSegment(issueNumber)}/comments`, { body: commentBody });
304
279
  },
305
280
  });
306
281
  rl.registerAction("issue.lock", {
@@ -329,7 +304,7 @@ export default function github(rl) {
329
304
  const body = {};
330
305
  if (lockReason)
331
306
  body.lock_reason = lockReason;
332
- await gh(ctx, "PUT", `/repos/${owner}/${repo}/issues/${issueNumber}/lock`, body);
307
+ await gh(ctx, "PUT", `repos/${pathSegment(owner)}/${pathSegment(repo)}/issues/${pathSegment(issueNumber)}/lock`, body);
333
308
  return { success: true };
334
309
  },
335
310
  });
@@ -380,7 +355,7 @@ export default function github(rl) {
380
355
  b.prerelease = prerelease;
381
356
  if (targetCommitish)
382
357
  b.target_commitish = targetCommitish;
383
- return gh(ctx, "POST", `/repos/${owner}/${repo}/releases`, b);
358
+ return gh(ctx, "POST", `repos/${pathSegment(owner)}/${pathSegment(repo)}/releases`, b);
384
359
  },
385
360
  });
386
361
  rl.registerAction("release.get", {
@@ -397,7 +372,7 @@ export default function github(rl) {
397
372
  },
398
373
  async execute(input, ctx) {
399
374
  const { owner, repo, releaseId } = input;
400
- return gh(ctx, "GET", `/repos/${owner}/${repo}/releases/${releaseId}`);
375
+ return gh(ctx, "GET", `repos/${pathSegment(owner)}/${pathSegment(repo)}/releases/${pathSegment(releaseId)}`);
401
376
  },
402
377
  });
403
378
  rl.registerAction("release.list", {
@@ -424,7 +399,7 @@ export default function github(rl) {
424
399
  qs.per_page = perPage;
425
400
  if (page)
426
401
  qs.page = page;
427
- return gh(ctx, "GET", `/repos/${owner}/${repo}/releases`, undefined, qs);
402
+ return gh(ctx, "GET", `repos/${pathSegment(owner)}/${pathSegment(repo)}/releases`, undefined, qs);
428
403
  },
429
404
  });
430
405
  rl.registerAction("release.update", {
@@ -465,7 +440,7 @@ export default function github(rl) {
465
440
  b.draft = draft;
466
441
  if (prerelease !== undefined)
467
442
  b.prerelease = prerelease;
468
- return gh(ctx, "PATCH", `/repos/${owner}/${repo}/releases/${releaseId}`, b);
443
+ return gh(ctx, "PATCH", `repos/${pathSegment(owner)}/${pathSegment(repo)}/releases/${pathSegment(releaseId)}`, b);
469
444
  },
470
445
  });
471
446
  rl.registerAction("release.delete", {
@@ -482,7 +457,7 @@ export default function github(rl) {
482
457
  },
483
458
  async execute(input, ctx) {
484
459
  const { owner, repo, releaseId } = input;
485
- await gh(ctx, "DELETE", `/repos/${owner}/${repo}/releases/${releaseId}`);
460
+ await gh(ctx, "DELETE", `repos/${pathSegment(owner)}/${pathSegment(repo)}/releases/${pathSegment(releaseId)}`);
486
461
  return { success: true };
487
462
  },
488
463
  });
@@ -546,7 +521,7 @@ export default function github(rl) {
546
521
  qs.per_page = perPage;
547
522
  if (page)
548
523
  qs.page = page;
549
- return gh(ctx, "GET", `/repos/${owner}/${repo}/commits`, undefined, qs);
524
+ return gh(ctx, "GET", `repos/${pathSegment(owner)}/${pathSegment(repo)}/commits`, undefined, qs);
550
525
  },
551
526
  });
552
527
  rl.registerAction("commit.get", {
@@ -567,7 +542,7 @@ export default function github(rl) {
567
542
  },
568
543
  async execute(input, ctx) {
569
544
  const { owner, repo, ref } = input;
570
- return gh(ctx, "GET", `/repos/${owner}/${repo}/commits/${encodeURIComponent(String(ref))}`);
545
+ return gh(ctx, "GET", `repos/${pathSegment(owner)}/${pathSegment(repo)}/commits/${pathSegments(ref)}`);
571
546
  },
572
547
  });
573
548
  rl.registerAction("branch.get", {
@@ -584,7 +559,7 @@ export default function github(rl) {
584
559
  },
585
560
  async execute(input, ctx) {
586
561
  const { owner, repo, branch } = input;
587
- return gh(ctx, "GET", `/repos/${owner}/${repo}/branches/${encodeURIComponent(String(branch))}`);
562
+ return gh(ctx, "GET", `repos/${pathSegment(owner)}/${pathSegment(repo)}/branches/${pathSegments(branch)}`);
588
563
  },
589
564
  });
590
565
  rl.registerAction("repository.get", {
@@ -600,7 +575,7 @@ export default function github(rl) {
600
575
  },
601
576
  async execute(input, ctx) {
602
577
  const { owner, repo } = input;
603
- return gh(ctx, "GET", `/repos/${owner}/${repo}`);
578
+ return gh(ctx, "GET", `repos/${pathSegment(owner)}/${pathSegment(repo)}`);
604
579
  },
605
580
  });
606
581
  rl.registerAction("repository.getLicense", {
@@ -616,7 +591,7 @@ export default function github(rl) {
616
591
  },
617
592
  async execute(input, ctx) {
618
593
  const { owner, repo } = input;
619
- return gh(ctx, "GET", `/repos/${owner}/${repo}/license`);
594
+ return gh(ctx, "GET", `repos/${pathSegment(owner)}/${pathSegment(repo)}/license`);
620
595
  },
621
596
  });
622
597
  rl.registerAction("repository.listIssues", {
@@ -671,7 +646,7 @@ export default function github(rl) {
671
646
  qs.per_page = perPage;
672
647
  if (page)
673
648
  qs.page = page;
674
- return gh(ctx, "GET", `/repos/${owner}/${repo}/issues`, undefined, qs);
649
+ return gh(ctx, "GET", `repos/${pathSegment(owner)}/${pathSegment(repo)}/issues`, undefined, qs);
675
650
  },
676
651
  });
677
652
  rl.registerAction("repository.listPullRequests", {
@@ -720,7 +695,7 @@ export default function github(rl) {
720
695
  qs.per_page = perPage;
721
696
  if (page)
722
697
  qs.page = page;
723
- return gh(ctx, "GET", `/repos/${owner}/${repo}/pulls`, undefined, qs);
698
+ return gh(ctx, "GET", `repos/${pathSegment(owner)}/${pathSegment(repo)}/pulls`, undefined, qs);
724
699
  },
725
700
  });
726
701
  rl.registerAction("repository.listPopularPaths", {
@@ -736,7 +711,7 @@ export default function github(rl) {
736
711
  },
737
712
  async execute(input, ctx) {
738
713
  const { owner, repo } = input;
739
- return gh(ctx, "GET", `/repos/${owner}/${repo}/traffic/popular/paths`);
714
+ return gh(ctx, "GET", `repos/${pathSegment(owner)}/${pathSegment(repo)}/traffic/popular/paths`);
740
715
  },
741
716
  });
742
717
  rl.registerAction("repository.listReferrers", {
@@ -752,7 +727,7 @@ export default function github(rl) {
752
727
  },
753
728
  async execute(input, ctx) {
754
729
  const { owner, repo } = input;
755
- return gh(ctx, "GET", `/repos/${owner}/${repo}/traffic/popular/referrers`);
730
+ return gh(ctx, "GET", `repos/${pathSegment(owner)}/${pathSegment(repo)}/traffic/popular/referrers`);
756
731
  },
757
732
  });
758
733
  // ── Review ──────────────────────────────────────────
@@ -775,7 +750,7 @@ export default function github(rl) {
775
750
  },
776
751
  async execute(input, ctx) {
777
752
  const { owner, repo, pullNumber, reviewId } = input;
778
- return gh(ctx, "GET", `/repos/${owner}/${repo}/pulls/${pullNumber}/reviews/${reviewId}`);
753
+ return gh(ctx, "GET", `repos/${pathSegment(owner)}/${pathSegment(repo)}/pulls/${pathSegment(pullNumber)}/reviews/${pathSegment(reviewId)}`);
779
754
  },
780
755
  });
781
756
  rl.registerAction("review.list", {
@@ -796,7 +771,7 @@ export default function github(rl) {
796
771
  },
797
772
  async execute(input, ctx) {
798
773
  const { owner, repo, pullNumber } = input;
799
- return gh(ctx, "GET", `/repos/${owner}/${repo}/pulls/${pullNumber}/reviews`);
774
+ return gh(ctx, "GET", `repos/${pathSegment(owner)}/${pathSegment(repo)}/pulls/${pathSegment(pullNumber)}/reviews`);
800
775
  },
801
776
  });
802
777
  rl.registerAction("review.create", {
@@ -826,7 +801,7 @@ export default function github(rl) {
826
801
  const b = { event };
827
802
  if (reviewBody)
828
803
  b.body = reviewBody;
829
- return gh(ctx, "POST", `/repos/${owner}/${repo}/pulls/${pullNumber}/reviews`, b);
804
+ return gh(ctx, "POST", `repos/${pathSegment(owner)}/${pathSegment(repo)}/pulls/${pathSegment(pullNumber)}/reviews`, b);
830
805
  },
831
806
  });
832
807
  rl.registerAction("review.update", {
@@ -853,7 +828,7 @@ export default function github(rl) {
853
828
  },
854
829
  async execute(input, ctx) {
855
830
  const { owner, repo, pullNumber, reviewId, body: reviewBody, } = input;
856
- return gh(ctx, "PUT", `/repos/${owner}/${repo}/pulls/${pullNumber}/reviews/${reviewId}`, { body: reviewBody });
831
+ return gh(ctx, "PUT", `repos/${pathSegment(owner)}/${pathSegment(repo)}/pulls/${pathSegment(pullNumber)}/reviews/${pathSegment(reviewId)}`, { body: reviewBody });
857
832
  },
858
833
  });
859
834
  // ── User ────────────────────────────────────────────
@@ -894,7 +869,9 @@ export default function github(rl) {
894
869
  qs.per_page = perPage;
895
870
  if (page)
896
871
  qs.page = page;
897
- const endpoint = username ? `/users/${username}/repos` : "/user/repos";
872
+ const endpoint = username
873
+ ? `users/${pathSegment(username)}/repos`
874
+ : "user/repos";
898
875
  return gh(ctx, "GET", endpoint, undefined, qs);
899
876
  },
900
877
  });
@@ -927,7 +904,7 @@ export default function github(rl) {
927
904
  qs.sort = sort;
928
905
  if (perPage)
929
906
  qs.per_page = perPage;
930
- return gh(ctx, "GET", "/user/issues", undefined, qs);
907
+ return gh(ctx, "GET", "user/issues", undefined, qs);
931
908
  },
932
909
  });
933
910
  rl.registerAction("user.invite", {
@@ -956,7 +933,7 @@ export default function github(rl) {
956
933
  const body = {};
957
934
  if (permission)
958
935
  body.permission = permission;
959
- return gh(ctx, "PUT", `/repos/${owner}/${repo}/collaborators/${username}`, body);
936
+ return gh(ctx, "PUT", `repos/${pathSegment(owner)}/${pathSegment(repo)}/collaborators/${pathSegment(username)}`, body);
960
937
  },
961
938
  });
962
939
  // ── Organization ────────────────────────────────────
@@ -993,7 +970,7 @@ export default function github(rl) {
993
970
  qs.per_page = perPage;
994
971
  if (page)
995
972
  qs.page = page;
996
- return gh(ctx, "GET", `/orgs/${org}/repos`, undefined, qs);
973
+ return gh(ctx, "GET", `orgs/${pathSegment(org)}/repos`, undefined, qs);
997
974
  },
998
975
  });
999
976
  // ── Workflow ────────────────────────────────────────
@@ -1010,7 +987,7 @@ export default function github(rl) {
1010
987
  },
1011
988
  async execute(input, ctx) {
1012
989
  const { owner, repo } = input;
1013
- const data = (await gh(ctx, "GET", `/repos/${owner}/${repo}/actions/workflows`));
990
+ const data = (await gh(ctx, "GET", `repos/${pathSegment(owner)}/${pathSegment(repo)}/actions/workflows`));
1014
991
  return data.workflows;
1015
992
  },
1016
993
  });
@@ -1032,7 +1009,7 @@ export default function github(rl) {
1032
1009
  },
1033
1010
  async execute(input, ctx) {
1034
1011
  const { owner, repo, workflowId } = input;
1035
- return gh(ctx, "GET", `/repos/${owner}/${repo}/actions/workflows/${workflowId}`);
1012
+ return gh(ctx, "GET", `repos/${pathSegment(owner)}/${pathSegment(repo)}/actions/workflows/${pathSegment(workflowId)}`);
1036
1013
  },
1037
1014
  });
1038
1015
  rl.registerAction("workflow.dispatch", {
@@ -1066,7 +1043,7 @@ export default function github(rl) {
1066
1043
  const body = { ref };
1067
1044
  if (inputs)
1068
1045
  body.inputs = inputs;
1069
- await gh(ctx, "POST", `/repos/${owner}/${repo}/actions/workflows/${workflowId}/dispatches`, body);
1046
+ await gh(ctx, "POST", `repos/${pathSegment(owner)}/${pathSegment(repo)}/actions/workflows/${pathSegment(workflowId)}/dispatches`, body);
1070
1047
  return { success: true };
1071
1048
  },
1072
1049
  });
@@ -1088,7 +1065,7 @@ export default function github(rl) {
1088
1065
  },
1089
1066
  async execute(input, ctx) {
1090
1067
  const { owner, repo, workflowId } = input;
1091
- await gh(ctx, "PUT", `/repos/${owner}/${repo}/actions/workflows/${workflowId}/enable`);
1068
+ await gh(ctx, "PUT", `repos/${pathSegment(owner)}/${pathSegment(repo)}/actions/workflows/${pathSegment(workflowId)}/enable`);
1092
1069
  return { success: true };
1093
1070
  },
1094
1071
  });
@@ -1110,7 +1087,7 @@ export default function github(rl) {
1110
1087
  },
1111
1088
  async execute(input, ctx) {
1112
1089
  const { owner, repo, workflowId } = input;
1113
- await gh(ctx, "PUT", `/repos/${owner}/${repo}/actions/workflows/${workflowId}/disable`);
1090
+ await gh(ctx, "PUT", `repos/${pathSegment(owner)}/${pathSegment(repo)}/actions/workflows/${pathSegment(workflowId)}/disable`);
1114
1091
  return { success: true };
1115
1092
  },
1116
1093
  });
@@ -1132,7 +1109,7 @@ export default function github(rl) {
1132
1109
  },
1133
1110
  async execute(input, ctx) {
1134
1111
  const { owner, repo, workflowId } = input;
1135
- return gh(ctx, "GET", `/repos/${owner}/${repo}/actions/workflows/${workflowId}/timing`);
1112
+ return gh(ctx, "GET", `repos/${pathSegment(owner)}/${pathSegment(repo)}/actions/workflows/${pathSegment(workflowId)}/timing`);
1136
1113
  },
1137
1114
  });
1138
1115
  }
@@ -0,0 +1,24 @@
1
+ import { httpsBase, staticCredential } from "../../_shared/credentials.js";
2
+ /**
3
+ * A personal access token, sent as the PRIVATE-TOKEN header to the
4
+ * server's /api/v4/ base: gitlab.com, or the connection's own HTTPS
5
+ * server. Project, file and tag paths travel as one encoded segment.
6
+ */
7
+ export const gitlabCredential = staticCredential({
8
+ id: "gitlab",
9
+ auth: { kind: "apiKey", header: "PRIVATE-TOKEN" },
10
+ local: { secret: "token" },
11
+ targets: (config) => ({
12
+ api: {
13
+ baseUrl: httpsBase(config.server ?? "https://gitlab.com", "api/v4/"),
14
+ methods: ["GET", "POST", "PUT", "DELETE"],
15
+ encodedSlashes: true,
16
+ },
17
+ }),
18
+ probe: {
19
+ target: "api",
20
+ path: "user",
21
+ method: "GET",
22
+ acceptedStatuses: [200],
23
+ },
24
+ });
@@ -1,44 +1,25 @@
1
- async function apiRequest(server, token, method, endpoint, body, qs) {
2
- const url = new URL(`${server}/api/v4${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, slashEncodedSegment, } from "../../_shared/credentials.js";
2
+ import { gitlabCredential } from "./credentials.js";
3
+ /** A GitLab API call; a DELETE carries a body where GitLab needs one (file deletes). */
4
+ function gl(ctx, method, path, body, query) {
5
+ return credentialJson(ctx, gitlabCredential, "gitlab", {
6
+ target: "api",
7
+ path,
10
8
  method,
11
- headers: { "PRIVATE-TOKEN": token, "Content-Type": "application/json" },
12
- };
13
- if (body &&
14
- Object.keys(body).length > 0 &&
15
- method !== "GET" &&
16
- method !== "DELETE") {
17
- opts.body = JSON.stringify(body);
18
- }
19
- const res = await fetch(url.toString(), opts);
20
- if (!res.ok)
21
- throw new Error(`GitLab API error ${res.status}: ${await res.text()}`);
22
- if (res.status === 204)
23
- return { success: true };
24
- return res.json();
25
- }
26
- function getConn(ctx) {
27
- return {
28
- server: (ctx.connection.config.server ?? "https://gitlab.com").replace(/\/$/, ""),
29
- token: ctx.connection.config.token,
30
- };
31
- }
32
- function gl(ctx, method, endpoint, body, qs) {
33
- const { server, token } = getConn(ctx);
34
- return apiRequest(server, token, method, endpoint, body, qs);
9
+ query,
10
+ ...(body && Object.keys(body).length > 0 && method !== "GET"
11
+ ? { json: body }
12
+ : {}),
13
+ });
35
14
  }
15
+ /** A project by its namespace and name, as one encoded segment. */
36
16
  function projectPath(owner, repo) {
37
- return `/projects/${encodeURIComponent(`${owner}/${repo}`)}`;
17
+ return `projects/${slashEncodedSegment(`${owner}/${repo}`)}`;
38
18
  }
39
19
  export default function gitlab(rl) {
40
20
  rl.setName("gitlab");
41
21
  rl.setVersion("0.1.0");
22
+ rl.setCredential(gitlabCredential);
42
23
  rl.setConnectionSchema({
43
24
  server: {
44
25
  type: "string",
@@ -111,7 +92,7 @@ export default function gitlab(rl) {
111
92
  },
112
93
  async execute(input, ctx) {
113
94
  const { owner, repo, issueIid } = input;
114
- return gl(ctx, "GET", `${projectPath(owner, repo)}/issues/${issueIid}`);
95
+ return gl(ctx, "GET", `${projectPath(owner, repo)}/issues/${pathSegment(issueIid)}`);
115
96
  },
116
97
  });
117
98
  rl.registerAction("issue.update", {
@@ -159,7 +140,7 @@ export default function gitlab(rl) {
159
140
  body.state_event = stateEvent;
160
141
  if (dueDate)
161
142
  body.due_date = dueDate;
162
- return gl(ctx, "PUT", `${projectPath(owner, repo)}/issues/${issueIid}`, body);
143
+ return gl(ctx, "PUT", `${projectPath(owner, repo)}/issues/${pathSegment(issueIid)}`, body);
163
144
  },
164
145
  });
165
146
  rl.registerAction("issue.createNote", {
@@ -177,7 +158,7 @@ export default function gitlab(rl) {
177
158
  },
178
159
  async execute(input, ctx) {
179
160
  const { owner, repo, issueIid, body: noteBody, } = input;
180
- return gl(ctx, "POST", `${projectPath(owner, repo)}/issues/${issueIid}/notes`, { body: noteBody });
161
+ return gl(ctx, "POST", `${projectPath(owner, repo)}/issues/${pathSegment(issueIid)}/notes`, { body: noteBody });
181
162
  },
182
163
  });
183
164
  rl.registerAction("issue.lock", {
@@ -190,7 +171,7 @@ export default function gitlab(rl) {
190
171
  },
191
172
  async execute(input, ctx) {
192
173
  const { owner, repo, issueIid } = input;
193
- return gl(ctx, "PUT", `${projectPath(owner, repo)}/issues/${issueIid}`, { discussion_locked: true });
174
+ return gl(ctx, "PUT", `${projectPath(owner, repo)}/issues/${pathSegment(issueIid)}`, { discussion_locked: true });
194
175
  },
195
176
  });
196
177
  // ── Release ─────────────────────────────────────────
@@ -232,7 +213,7 @@ export default function gitlab(rl) {
232
213
  body.ref = ref;
233
214
  if (milestones)
234
215
  body.milestones = milestones;
235
- return gl(ctx, "POST", `/projects/${encodeURIComponent(projectId)}/releases`, body);
216
+ return gl(ctx, "POST", `projects/${slashEncodedSegment(projectId)}/releases`, body);
236
217
  },
237
218
  });
238
219
  rl.registerAction("release.get", {
@@ -248,7 +229,7 @@ export default function gitlab(rl) {
248
229
  },
249
230
  async execute(input, ctx) {
250
231
  const { projectId, tagName } = input;
251
- return gl(ctx, "GET", `/projects/${encodeURIComponent(projectId)}/releases/${encodeURIComponent(tagName)}`);
232
+ return gl(ctx, "GET", `projects/${slashEncodedSegment(projectId)}/releases/${slashEncodedSegment(tagName)}`);
252
233
  },
253
234
  });
254
235
  rl.registerAction("release.list", {
@@ -277,7 +258,7 @@ export default function gitlab(rl) {
277
258
  qs.order_by = orderBy;
278
259
  if (sort)
279
260
  qs.sort = sort;
280
- return gl(ctx, "GET", `/projects/${encodeURIComponent(projectId)}/releases`, undefined, qs);
261
+ return gl(ctx, "GET", `projects/${slashEncodedSegment(projectId)}/releases`, undefined, qs);
281
262
  },
282
263
  });
283
264
  rl.registerAction("release.update", {
@@ -311,7 +292,7 @@ export default function gitlab(rl) {
311
292
  body.description = desc;
312
293
  if (milestones)
313
294
  body.milestones = milestones;
314
- return gl(ctx, "PUT", `/projects/${encodeURIComponent(projectId)}/releases/${encodeURIComponent(tagName)}`, body);
295
+ return gl(ctx, "PUT", `projects/${slashEncodedSegment(projectId)}/releases/${slashEncodedSegment(tagName)}`, body);
315
296
  },
316
297
  });
317
298
  rl.registerAction("release.delete", {
@@ -327,7 +308,7 @@ export default function gitlab(rl) {
327
308
  },
328
309
  async execute(input, ctx) {
329
310
  const { projectId, tagName } = input;
330
- await gl(ctx, "DELETE", `/projects/${encodeURIComponent(projectId)}/releases/${encodeURIComponent(tagName)}`);
311
+ await gl(ctx, "DELETE", `projects/${slashEncodedSegment(projectId)}/releases/${slashEncodedSegment(tagName)}`);
331
312
  return { success: true };
332
313
  },
333
314
  });
@@ -387,7 +368,7 @@ export default function gitlab(rl) {
387
368
  const qs = {};
388
369
  if (limit)
389
370
  qs.per_page = limit;
390
- return gl(ctx, "GET", `/users/${username}/projects`, undefined, qs);
371
+ return gl(ctx, "GET", `users/${pathSegment(username)}/projects`, undefined, qs);
391
372
  },
392
373
  });
393
374
  // ── File ────────────────────────────────────────────
@@ -401,12 +382,12 @@ export default function gitlab(rl) {
401
382
  ref: {
402
383
  type: "string",
403
384
  required: false,
404
- description: "Branch/tag/SHA (default: default branch)",
385
+ description: "Branch/tag/SHA (default: main)",
405
386
  },
406
387
  },
407
388
  async execute(input, ctx) {
408
389
  const { owner, repo, filePath, ref = "main", } = input;
409
- return gl(ctx, "GET", `${projectPath(owner, repo)}/repository/files/${encodeURIComponent(filePath)}`, undefined, { ref });
390
+ return gl(ctx, "GET", `${projectPath(owner, repo)}/repository/files/${slashEncodedSegment(filePath)}`, undefined, { ref });
410
391
  },
411
392
  });
412
393
  rl.registerAction("file.createOrUpdate", {
@@ -465,7 +446,7 @@ export default function gitlab(rl) {
465
446
  if (authorEmail)
466
447
  body.author_email = authorEmail;
467
448
  const method = isUpdate ? "PUT" : "POST";
468
- return gl(ctx, method, `${projectPath(owner, repo)}/repository/files/${encodeURIComponent(filePath)}`, body);
449
+ return gl(ctx, method, `${projectPath(owner, repo)}/repository/files/${slashEncodedSegment(filePath)}`, body);
469
450
  },
470
451
  });
471
452
  rl.registerAction("file.delete", {
@@ -484,7 +465,7 @@ export default function gitlab(rl) {
484
465
  },
485
466
  async execute(input, ctx) {
486
467
  const { owner, repo, filePath, branch, commitMessage } = input;
487
- return gl(ctx, "DELETE", `${projectPath(owner, repo)}/repository/files/${encodeURIComponent(filePath)}`, {
468
+ return gl(ctx, "DELETE", `${projectPath(owner, repo)}/repository/files/${slashEncodedSegment(filePath)}`, {
488
469
  branch,
489
470
  commit_message: commitMessage,
490
471
  });