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,42 +1,18 @@
1
- import { createHmac } from "node:crypto";
2
- const BASE = "https://api.unleashedsoftware.com";
3
- function getConn(ctx) {
4
- return {
5
- apiId: ctx.connection.config.apiId,
6
- apiKey: ctx.connection.config.apiKey,
7
- };
8
- }
9
- function buildQs(params) {
10
- const parts = [];
11
- for (const [k, v] of Object.entries(params)) {
12
- if (v !== undefined && v !== null)
13
- parts.push(`${encodeURIComponent(k)}=${encodeURIComponent(String(v))}`);
14
- }
15
- return parts.join("&");
16
- }
17
- async function apiRequest(conn, method, endpoint, qs, page) {
18
- const path = page ? `${endpoint}/${page}` : endpoint;
19
- const qsString = qs ? buildQs(qs) : "";
20
- const signature = createHmac("sha256", conn.apiKey)
21
- .update(qsString)
22
- .digest("base64");
23
- const url = qsString ? `${BASE}${path}?${qsString}` : `${BASE}${path}`;
24
- const res = await fetch(url, {
25
- method,
26
- headers: {
27
- Accept: "application/json",
28
- "Content-Type": "application/json",
29
- "api-auth-id": conn.apiId,
30
- "api-auth-signature": signature,
31
- },
1
+ import { credentialJson, pathSegment } from "../../_shared/credentials.js";
2
+ import { unleashedSoftwareCredential } from "./credentials.js";
3
+ /** An Unleashed read; Unleashed asks for a JSON Content-Type even on GET. */
4
+ function apiRequest(ctx, path, query) {
5
+ return credentialJson(ctx, unleashedSoftwareCredential, "unleashedSoftware", {
6
+ target: "api",
7
+ path,
8
+ query,
9
+ headers: { "Content-Type": "application/json" },
32
10
  });
33
- if (!res.ok)
34
- throw new Error(`Unleashed error ${res.status}: ${await res.text()}`);
35
- return res.json();
36
11
  }
37
12
  export default function unleashedSoftware(rl) {
38
13
  rl.setName("unleashedSoftware");
39
14
  rl.setVersion("0.1.0");
15
+ rl.setCredential(unleashedSoftwareCredential);
40
16
  rl.setConnectionSchema({
41
17
  apiId: {
42
18
  type: "string",
@@ -75,7 +51,7 @@ export default function unleashedSoftware(rl) {
75
51
  qs.orderStatus = p.orderStatus;
76
52
  if (p.limit)
77
53
  qs.pageSize = p.limit;
78
- const data = (await apiRequest(getConn(ctx), "GET", "/SalesOrders", qs, 1));
54
+ const data = (await apiRequest(ctx, "SalesOrders/1", qs));
79
55
  return data.Items;
80
56
  },
81
57
  });
@@ -96,7 +72,7 @@ export default function unleashedSoftware(rl) {
96
72
  qs.productCode = p.productCode;
97
73
  if (p.limit)
98
74
  qs.pageSize = p.limit;
99
- const data = (await apiRequest(getConn(ctx), "GET", "/StockOnHand", qs, 1));
75
+ const data = (await apiRequest(ctx, "StockOnHand/1", qs));
100
76
  return data.Items;
101
77
  },
102
78
  });
@@ -105,7 +81,7 @@ export default function unleashedSoftware(rl) {
105
81
  description: "Get stock on hand for a product",
106
82
  inputSchema: { productId: { type: "string", required: true } },
107
83
  async execute(input, ctx) {
108
- return apiRequest(getConn(ctx), "GET", `/StockOnHand/${input.productId}`);
84
+ return apiRequest(ctx, `StockOnHand/${pathSegment(input.productId)}`);
109
85
  },
110
86
  });
111
87
  }
@@ -0,0 +1,16 @@
1
+ import { staticCredential } from "../../_shared/credentials.js";
2
+ /**
3
+ * An API key, sent raw as the Authorization header (no scheme) to
4
+ * UpLead's one API origin.
5
+ */
6
+ export const upleadCredential = staticCredential({
7
+ id: "uplead",
8
+ auth: { kind: "apiKey", header: "Authorization" },
9
+ local: { secret: "apiKey" },
10
+ targets: {
11
+ api: {
12
+ baseUrl: "https://api.uplead.com/v2/",
13
+ methods: ["GET"],
14
+ },
15
+ },
16
+ });
@@ -1,21 +1,17 @@
1
- const BASE = "https://api.uplead.com/v2";
2
- async function apiRequest(apiKey, endpoint, qs) {
3
- const url = new URL(`${BASE}${endpoint}`);
4
- for (const [k, v] of Object.entries(qs)) {
5
- if (v !== undefined && v !== null)
6
- url.searchParams.set(k, String(v));
7
- }
8
- const res = await fetch(url.toString(), {
9
- headers: { Authorization: apiKey },
10
- });
11
- if (!res.ok)
12
- throw new Error(`Uplead error ${res.status}: ${await res.text()}`);
13
- const data = (await res.json());
1
+ import { credentialJson } from "../../_shared/credentials.js";
2
+ import { upleadCredential } from "./credentials.js";
3
+ async function apiRequest(ctx, path, qs) {
4
+ const data = (await credentialJson(ctx, upleadCredential, "uplead", {
5
+ target: "api",
6
+ path,
7
+ query: qs,
8
+ }));
14
9
  return data.data;
15
10
  }
16
11
  export default function uplead(rl) {
17
12
  rl.setName("uplead");
18
13
  rl.setVersion("0.1.0");
14
+ rl.setCredential(upleadCredential);
19
15
  rl.setConnectionSchema({
20
16
  apiKey: {
21
17
  type: "string",
@@ -24,7 +20,6 @@ export default function uplead(rl) {
24
20
  env: "UPLEAD_API_KEY",
25
21
  },
26
22
  });
27
- const key = (ctx) => ctx.connection.config.apiKey;
28
23
  rl.registerAction("person.enrich", {
29
24
  access: "write",
30
25
  description: "Enrich a person by email or name+domain",
@@ -45,7 +40,7 @@ export default function uplead(rl) {
45
40
  qs.last_name = p.lastName;
46
41
  if (p.domain)
47
42
  qs.domain = p.domain;
48
- return apiRequest(key(ctx), "/person-search", qs);
43
+ return apiRequest(ctx, "person-search", qs);
49
44
  },
50
45
  });
51
46
  rl.registerAction("company.enrich", {
@@ -62,7 +57,7 @@ export default function uplead(rl) {
62
57
  qs.domain = p.domain;
63
58
  if (p.company)
64
59
  qs.company = p.company;
65
- return apiRequest(key(ctx), "/company-search", qs);
60
+ return apiRequest(ctx, "company-search", qs);
66
61
  },
67
62
  });
68
63
  }
@@ -0,0 +1,14 @@
1
+ import { staticCredential } from "../../_shared/credentials.js";
2
+ /** The account email and API key as the Basic pair, to uProc's one
3
+ * process endpoint. */
4
+ export const uprocCredential = staticCredential({
5
+ id: "uproc",
6
+ auth: { kind: "basic" },
7
+ local: { username: "email", password: "apiKey" },
8
+ targets: {
9
+ api: {
10
+ baseUrl: "https://api.uproc.io/api/v2/",
11
+ methods: ["POST"],
12
+ },
13
+ },
14
+ });
@@ -1,6 +1,9 @@
1
+ import { credentialJson } from "../../_shared/credentials.js";
2
+ import { uprocCredential } from "./credentials.js";
1
3
  export default function uproc(rl) {
2
4
  rl.setName("uproc");
3
5
  rl.setVersion("0.1.0");
6
+ rl.setCredential(uprocCredential);
4
7
  rl.setConnectionSchema({
5
8
  email: {
6
9
  type: "string",
@@ -36,7 +39,6 @@ export default function uproc(rl) {
36
39
  },
37
40
  },
38
41
  async execute(input, ctx) {
39
- const c = ctx.connection.config;
40
42
  const p = input;
41
43
  const body = {
42
44
  processor: p.processor,
@@ -44,17 +46,12 @@ export default function uproc(rl) {
44
46
  };
45
47
  if (p.dataWebhook)
46
48
  body.callback = { data: p.dataWebhook };
47
- const res = await fetch("https://api.uproc.io/api/v2/process", {
49
+ return credentialJson(ctx, uprocCredential, "uproc", {
50
+ target: "api",
51
+ path: "process",
48
52
  method: "POST",
49
- headers: {
50
- Authorization: `Basic ${btoa(`${c.email}:${c.apiKey}`)}`,
51
- "Content-Type": "application/json",
52
- },
53
- body: JSON.stringify(body),
53
+ json: body,
54
54
  });
55
- if (!res.ok)
56
- throw new Error(`uProc error ${res.status}: ${await res.text()}`);
57
- return res.json();
58
55
  },
59
56
  });
60
57
  }
@@ -0,0 +1,14 @@
1
+ import { staticCredential } from "../../_shared/credentials.js";
2
+ /** An API key, added by the transport as the api_key field of every UptimeRobot form. */
3
+ export const uptimerobotCredential = staticCredential({
4
+ id: "uptimerobot",
5
+ auth: {
6
+ kind: "static",
7
+ parts: ["key"],
8
+ placements: [{ in: "body", part: "key", name: "api_key" }],
9
+ },
10
+ local: { key: "apiKey" },
11
+ targets: {
12
+ api: { baseUrl: "https://api.uptimerobot.com/v2/", methods: ["POST"] },
13
+ },
14
+ });
@@ -1,19 +1,8 @@
1
- const BASE = "https://api.uptimerobot.com/v2";
2
- async function apiRequest(apiKey, endpoint, body = {}) {
3
- const form = new URLSearchParams();
4
- form.set("api_key", apiKey);
5
- for (const [k, v] of Object.entries(body)) {
6
- if (v !== undefined && v !== null)
7
- form.set(k, String(v));
8
- }
9
- const res = await fetch(`${BASE}${endpoint}`, {
10
- method: "POST",
11
- headers: { "Content-Type": "application/x-www-form-urlencoded" },
12
- body: form,
13
- });
14
- if (!res.ok)
15
- throw new Error(`UptimeRobot error ${res.status}: ${await res.text()}`);
16
- const data = (await res.json());
1
+ import { credentialJson } from "../../_shared/credentials.js";
2
+ import { uptimerobotCredential } from "./credentials.js";
3
+ /** An UptimeRobot form call; an answer whose stat is not "ok" is a failure. */
4
+ async function apiRequest(ctx, endpoint, body = {}) {
5
+ const data = await credentialJson(ctx, uptimerobotCredential, "uptimerobot", { target: "api", path: endpoint, method: "POST", form: body });
17
6
  if (data.stat !== "ok")
18
7
  throw new Error(`UptimeRobot error: ${JSON.stringify(data)}`);
19
8
  return data;
@@ -21,6 +10,7 @@ async function apiRequest(apiKey, endpoint, body = {}) {
21
10
  export default function uptimerobot(rl) {
22
11
  rl.setName("uptimerobot");
23
12
  rl.setVersion("0.1.0");
13
+ rl.setCredential(uptimerobotCredential);
24
14
  rl.setConnectionSchema({
25
15
  apiKey: {
26
16
  type: "string",
@@ -29,14 +19,13 @@ export default function uptimerobot(rl) {
29
19
  env: "UPTIMEROBOT_API_KEY",
30
20
  },
31
21
  });
32
- const key = (ctx) => ctx.connection.config.apiKey;
33
22
  // ── Account ─────────────────────────────────────────
34
23
  rl.registerAction("account.get", {
35
24
  access: "read",
36
25
  description: "Get account details",
37
26
  inputSchema: {},
38
27
  async execute(_input, ctx) {
39
- const data = (await apiRequest(key(ctx), "/getAccountDetails"));
28
+ const data = (await apiRequest(ctx, "getAccountDetails"));
40
29
  return data.account;
41
30
  },
42
31
  });
@@ -55,7 +44,7 @@ export default function uptimerobot(rl) {
55
44
  },
56
45
  async execute(input, ctx) {
57
46
  const p = input;
58
- const data = (await apiRequest(key(ctx), "/newMonitor", {
47
+ const data = (await apiRequest(ctx, "newMonitor", {
59
48
  friendly_name: p.friendlyName,
60
49
  url: p.url,
61
50
  type: p.type,
@@ -68,7 +57,7 @@ export default function uptimerobot(rl) {
68
57
  description: "Get a monitor by ID",
69
58
  inputSchema: { id: { type: "string", required: true } },
70
59
  async execute(input, ctx) {
71
- const data = (await apiRequest(key(ctx), "/getMonitors", {
60
+ const data = (await apiRequest(ctx, "getMonitors", {
72
61
  monitors: input.id,
73
62
  }));
74
63
  return data.monitors;
@@ -83,7 +72,7 @@ export default function uptimerobot(rl) {
83
72
  const body = {};
84
73
  if (p.limit)
85
74
  body.limit = p.limit;
86
- const data = (await apiRequest(key(ctx), "/getMonitors", body));
75
+ const data = (await apiRequest(ctx, "getMonitors", body));
87
76
  return data.monitors;
88
77
  },
89
78
  });
@@ -105,7 +94,7 @@ export default function uptimerobot(rl) {
105
94
  body.url = fields.url;
106
95
  if (fields.type)
107
96
  body.type = fields.type;
108
- const data = (await apiRequest(key(ctx), "/editMonitor", body));
97
+ const data = (await apiRequest(ctx, "editMonitor", body));
109
98
  return data.monitor;
110
99
  },
111
100
  });
@@ -114,7 +103,7 @@ export default function uptimerobot(rl) {
114
103
  description: "Delete a monitor",
115
104
  inputSchema: { id: { type: "string", required: true } },
116
105
  async execute(input, ctx) {
117
- const data = (await apiRequest(key(ctx), "/deleteMonitor", {
106
+ const data = (await apiRequest(ctx, "deleteMonitor", {
118
107
  id: input.id,
119
108
  }));
120
109
  return data.monitor;
@@ -125,7 +114,7 @@ export default function uptimerobot(rl) {
125
114
  description: "Reset a monitor's stats",
126
115
  inputSchema: { id: { type: "string", required: true } },
127
116
  async execute(input, ctx) {
128
- const data = (await apiRequest(key(ctx), "/resetMonitor", {
117
+ const data = (await apiRequest(ctx, "resetMonitor", {
129
118
  id: input.id,
130
119
  }));
131
120
  return data.monitor;
@@ -146,7 +135,7 @@ export default function uptimerobot(rl) {
146
135
  },
147
136
  async execute(input, ctx) {
148
137
  const p = input;
149
- const data = (await apiRequest(key(ctx), "/newAlertContact", {
138
+ const data = (await apiRequest(ctx, "newAlertContact", {
150
139
  friendly_name: p.friendlyName,
151
140
  value: p.value,
152
141
  type: p.type,
@@ -159,7 +148,7 @@ export default function uptimerobot(rl) {
159
148
  description: "Get an alert contact by ID",
160
149
  inputSchema: { id: { type: "string", required: true } },
161
150
  async execute(input, ctx) {
162
- const data = (await apiRequest(key(ctx), "/getAlertContacts", {
151
+ const data = (await apiRequest(ctx, "getAlertContacts", {
163
152
  alert_contacts: input.id,
164
153
  }));
165
154
  return data.alert_contacts;
@@ -173,7 +162,7 @@ export default function uptimerobot(rl) {
173
162
  const body = {};
174
163
  if (input?.limit)
175
164
  body.limit = input.limit;
176
- const data = (await apiRequest(key(ctx), "/getAlertContacts", body));
165
+ const data = (await apiRequest(ctx, "getAlertContacts", body));
177
166
  return data.alert_contacts;
178
167
  },
179
168
  });
@@ -192,7 +181,7 @@ export default function uptimerobot(rl) {
192
181
  body.friendly_name = fields.friendlyName;
193
182
  if (fields.value)
194
183
  body.value = fields.value;
195
- const data = (await apiRequest(key(ctx), "/editAlertContact", body));
184
+ const data = (await apiRequest(ctx, "editAlertContact", body));
196
185
  return data.alert_contact;
197
186
  },
198
187
  });
@@ -201,7 +190,7 @@ export default function uptimerobot(rl) {
201
190
  description: "Delete an alert contact",
202
191
  inputSchema: { id: { type: "string", required: true } },
203
192
  async execute(input, ctx) {
204
- const data = (await apiRequest(key(ctx), "/deleteAlertContact", {
193
+ const data = (await apiRequest(ctx, "deleteAlertContact", {
205
194
  id: input.id,
206
195
  }));
207
196
  return data.alert_contact;
@@ -244,7 +233,7 @@ export default function uptimerobot(rl) {
244
233
  };
245
234
  if (p.value)
246
235
  body.value = p.value;
247
- const data = (await apiRequest(key(ctx), "/newMWindow", body));
236
+ const data = (await apiRequest(ctx, "newMWindow", body));
248
237
  return data.mwindow;
249
238
  },
250
239
  });
@@ -253,7 +242,7 @@ export default function uptimerobot(rl) {
253
242
  description: "Get a maintenance window",
254
243
  inputSchema: { id: { type: "string", required: true } },
255
244
  async execute(input, ctx) {
256
- const data = (await apiRequest(key(ctx), "/getMWindows", {
245
+ const data = (await apiRequest(ctx, "getMWindows", {
257
246
  mwindows: input.id,
258
247
  }));
259
248
  return data.mwindows;
@@ -267,7 +256,7 @@ export default function uptimerobot(rl) {
267
256
  const body = {};
268
257
  if (input?.limit)
269
258
  body.limit = input.limit;
270
- const data = (await apiRequest(key(ctx), "/getMWindows", body));
259
+ const data = (await apiRequest(ctx, "getMWindows", body));
271
260
  return data.mwindows;
272
261
  },
273
262
  });
@@ -289,7 +278,7 @@ export default function uptimerobot(rl) {
289
278
  body.duration = fields.duration;
290
279
  if (fields.startTime)
291
280
  body.start_time = fields.startTime;
292
- const data = (await apiRequest(key(ctx), "/editMWindow", body));
281
+ const data = (await apiRequest(ctx, "editMWindow", body));
293
282
  return data.mwindow;
294
283
  },
295
284
  });
@@ -298,7 +287,7 @@ export default function uptimerobot(rl) {
298
287
  description: "Delete a maintenance window",
299
288
  inputSchema: { id: { type: "string", required: true } },
300
289
  async execute(input, ctx) {
301
- return apiRequest(key(ctx), "/deleteMWindow", {
290
+ return apiRequest(ctx, "deleteMWindow", {
302
291
  id: input.id,
303
292
  });
304
293
  },
@@ -317,7 +306,7 @@ export default function uptimerobot(rl) {
317
306
  },
318
307
  async execute(input, ctx) {
319
308
  const p = input;
320
- const data = (await apiRequest(key(ctx), "/newPSP", {
309
+ const data = (await apiRequest(ctx, "newPSP", {
321
310
  friendly_name: p.friendlyName,
322
311
  monitors: p.monitors,
323
312
  }));
@@ -329,7 +318,7 @@ export default function uptimerobot(rl) {
329
318
  description: "Get a public status page",
330
319
  inputSchema: { id: { type: "string", required: true } },
331
320
  async execute(input, ctx) {
332
- const data = (await apiRequest(key(ctx), "/getPSPs", {
321
+ const data = (await apiRequest(ctx, "getPSPs", {
333
322
  psps: input.id,
334
323
  }));
335
324
  return data.psps;
@@ -343,7 +332,7 @@ export default function uptimerobot(rl) {
343
332
  const body = {};
344
333
  if (input?.limit)
345
334
  body.limit = input.limit;
346
- const data = (await apiRequest(key(ctx), "/getPSPs", body));
335
+ const data = (await apiRequest(ctx, "getPSPs", body));
347
336
  return data.psps;
348
337
  },
349
338
  });
@@ -362,7 +351,7 @@ export default function uptimerobot(rl) {
362
351
  body.friendly_name = fields.friendlyName;
363
352
  if (fields.monitors)
364
353
  body.monitors = fields.monitors;
365
- const data = (await apiRequest(key(ctx), "/editPSP", body));
354
+ const data = (await apiRequest(ctx, "editPSP", body));
366
355
  return data.psp;
367
356
  },
368
357
  });
@@ -371,7 +360,7 @@ export default function uptimerobot(rl) {
371
360
  description: "Delete a public status page",
372
361
  inputSchema: { id: { type: "string", required: true } },
373
362
  async execute(input, ctx) {
374
- const data = (await apiRequest(key(ctx), "/deletePSP", {
363
+ const data = (await apiRequest(ctx, "deletePSP", {
375
364
  id: input.id,
376
365
  }));
377
366
  return data.psp;
@@ -0,0 +1,13 @@
1
+ import { staticCredential } from "../../_shared/credentials.js";
2
+ /** An API key, sent as the API-Key header to urlscan.io's v1 API. */
3
+ export const urlscanioCredential = staticCredential({
4
+ id: "urlscanio",
5
+ auth: { kind: "apiKey", header: "API-Key" },
6
+ local: { secret: "apiKey" },
7
+ targets: {
8
+ api: {
9
+ baseUrl: "https://urlscan.io/api/v1/",
10
+ methods: ["GET", "POST"],
11
+ },
12
+ },
13
+ });
@@ -1,26 +1,18 @@
1
- const BASE = "https://urlscan.io/api/v1";
2
- async function apiRequest(apiKey, method, endpoint, body, qs) {
3
- const url = new URL(`${BASE}${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 init = {
1
+ import { credentialJson, pathSegment } from "../../_shared/credentials.js";
2
+ import { urlscanioCredential } from "./credentials.js";
3
+ function apiRequest(ctx, method, path, body, query) {
4
+ return credentialJson(ctx, urlscanioCredential, "urlscanio", {
5
+ target: "api",
6
+ path,
11
7
  method,
12
- headers: { "API-Key": apiKey, "Content-Type": "application/json" },
13
- };
14
- if (body && Object.keys(body).length > 0)
15
- init.body = JSON.stringify(body);
16
- const res = await fetch(url.toString(), init);
17
- if (!res.ok)
18
- throw new Error(`urlscan.io error ${res.status}: ${await res.text()}`);
19
- return res.json();
8
+ query,
9
+ ...(body && Object.keys(body).length > 0 ? { json: body } : {}),
10
+ });
20
11
  }
21
12
  export default function urlscanio(rl) {
22
13
  rl.setName("urlscanio");
23
14
  rl.setVersion("0.1.0");
15
+ rl.setCredential(urlscanioCredential);
24
16
  rl.setConnectionSchema({
25
17
  apiKey: {
26
18
  type: "string",
@@ -29,7 +21,6 @@ export default function urlscanio(rl) {
29
21
  env: "URLSCANIO_API_KEY",
30
22
  },
31
23
  });
32
- const key = (ctx) => ctx.connection.config.apiKey;
33
24
  rl.registerAction("scan.perform", {
34
25
  access: "write",
35
26
  description: "Submit a URL for scanning",
@@ -56,7 +47,7 @@ export default function urlscanio(rl) {
56
47
  body.tags = p.tags.split(",").map((t) => t.trim());
57
48
  if (p.customAgent)
58
49
  body.customAgent = p.customAgent;
59
- return apiRequest(key(ctx), "POST", "/scan", body);
50
+ return apiRequest(ctx, "POST", "scan", body);
60
51
  },
61
52
  });
62
53
  rl.registerAction("scan.get", {
@@ -64,7 +55,7 @@ export default function urlscanio(rl) {
64
55
  description: "Get scan results by ID",
65
56
  inputSchema: { scanId: { type: "string", required: true } },
66
57
  async execute(input, ctx) {
67
- return apiRequest(key(ctx), "GET", `/result/${input.scanId}`);
58
+ return apiRequest(ctx, "GET", `result/${pathSegment(input.scanId)}`);
68
59
  },
69
60
  });
70
61
  rl.registerAction("scan.search", {
@@ -79,7 +70,7 @@ export default function urlscanio(rl) {
79
70
  const qs = { size: p.limit ?? 100 };
80
71
  if (p.query)
81
72
  qs.q = p.query;
82
- const data = (await apiRequest(key(ctx), "GET", "/search", undefined, qs));
73
+ const data = (await apiRequest(ctx, "GET", "search", undefined, qs));
83
74
  return data.results;
84
75
  },
85
76
  });
@@ -0,0 +1,19 @@
1
+ import { staticCredential } from "../../_shared/credentials.js";
2
+ /** An access token, sent as a bearer to Vercel's one API origin. */
3
+ export const vercelCredential = staticCredential({
4
+ id: "vercel",
5
+ auth: { kind: "bearer" },
6
+ local: { secret: "token" },
7
+ targets: {
8
+ api: {
9
+ baseUrl: "https://api.vercel.com/",
10
+ methods: ["GET", "POST", "PATCH", "DELETE"],
11
+ },
12
+ },
13
+ probe: {
14
+ target: "api",
15
+ path: "v2/user",
16
+ method: "GET",
17
+ acceptedStatuses: [200],
18
+ },
19
+ });
@@ -1,5 +1,6 @@
1
1
  import * as t from "typebox";
2
- import { LIST_INPUT_SCHEMA, TEAM_INPUT_SCHEMA, api, bindGetAction } from "./shared.js";
2
+ import { pathSegment } from "../../_shared/credentials.js";
3
+ import { LIST_INPUT_SCHEMA, TEAM_INPUT_SCHEMA, api, bindGetAction, } from "./shared.js";
3
4
  export function registerDeploymentActions(rl) {
4
5
  const getAction = bindGetAction(rl);
5
6
  rl.registerAction("deployment.list", {
@@ -8,26 +9,36 @@ export function registerDeploymentActions(rl) {
8
9
  inputSchema: t.Object({
9
10
  ...LIST_INPUT_SCHEMA,
10
11
  projectId: t.Optional(t.String({ description: "Project ID to filter deployments" })),
11
- projectIds: t.Optional(t.Array(t.String(), { description: "Project IDs to filter deployments" })),
12
+ projectIds: t.Optional(t.Array(t.String(), {
13
+ description: "Project IDs to filter deployments",
14
+ })),
12
15
  app: t.Optional(t.String({ description: "Project name/app filter" })),
13
16
  target: t.Optional(t.String({ description: "production, preview, or a custom target" })),
14
- state: t.Optional(t.String({ description: "Comma-separated deployment states, e.g. BUILDING,READY,ERROR" })),
17
+ state: t.Optional(t.String({
18
+ description: "Comma-separated deployment states, e.g. BUILDING,READY,ERROR",
19
+ })),
15
20
  users: t.Optional(t.String({ description: "Comma-separated Vercel user IDs" })),
16
21
  }),
17
22
  async execute(input, ctx) {
18
- return api(ctx, "/v7/deployments", { query: (input ?? {}) });
23
+ return api(ctx, "/v7/deployments", {
24
+ query: (input ?? {}),
25
+ });
19
26
  },
20
27
  });
21
- getAction("deployment.get", "Get a Vercel deployment by ID or URL.", (id) => `/v13/deployments/${encodeURIComponent(id)}`);
28
+ getAction("deployment.get", "Get a Vercel deployment by ID or URL.", (id) => `/v13/deployments/${pathSegment(id)}`);
22
29
  rl.registerAction("deployment.logs", {
23
30
  access: "read",
24
31
  description: "Get build/deployment logs/events for a deployment. Use builds=1 for build logs and limit/since/until to avoid huge responses.",
25
32
  inputSchema: t.Object({
26
33
  ...TEAM_INPUT_SCHEMA,
27
34
  idOrUrl: t.String({ description: "Deployment ID or URL" }),
28
- limit: t.Optional(t.Number({ description: "Maximum events. Vercel supports -1 for all available logs" })),
35
+ limit: t.Optional(t.Number({
36
+ description: "Maximum events. Vercel supports -1 for all available logs",
37
+ })),
29
38
  direction: t.Optional(t.String({ description: "forward or backward" })),
30
- follow: t.Optional(t.Number({ description: "0 or 1. Avoid 1 in short-lived agent calls unless intentionally streaming" })),
39
+ follow: t.Optional(t.Number({
40
+ description: "0 or 1. Avoid 1 in short-lived agent calls unless intentionally streaming",
41
+ })),
31
42
  name: t.Optional(t.String({ description: "Build ID/name" })),
32
43
  since: t.Optional(t.Number({ description: "Start timestamp in milliseconds" })),
33
44
  until: t.Optional(t.Number({ description: "End timestamp in milliseconds" })),
@@ -37,7 +48,9 @@ export function registerDeploymentActions(rl) {
37
48
  }),
38
49
  async execute(input, ctx) {
39
50
  const { idOrUrl, ...query } = input;
40
- return api(ctx, `/v3/deployments/${encodeURIComponent(String(idOrUrl))}/events`, { query });
51
+ return api(ctx, `/v3/deployments/${pathSegment(idOrUrl)}/events`, {
52
+ query,
53
+ });
41
54
  },
42
55
  });
43
56
  rl.registerAction("deployment.runtimeLogs", {
@@ -53,7 +66,7 @@ export function registerDeploymentActions(rl) {
53
66
  }),
54
67
  async execute(input, ctx) {
55
68
  const { projectId, deploymentId, ...query } = input;
56
- return api(ctx, `/v1/projects/${encodeURIComponent(String(projectId))}/deployments/${encodeURIComponent(String(deploymentId))}/runtime-logs`, { query });
69
+ return api(ctx, `/v1/projects/${pathSegment(projectId)}/deployments/${pathSegment(deploymentId)}/runtime-logs`, { query });
57
70
  },
58
71
  });
59
72
  rl.registerAction("deployment.cancel", {
@@ -65,7 +78,10 @@ export function registerDeploymentActions(rl) {
65
78
  }),
66
79
  async execute(input, ctx) {
67
80
  const { id, ...query } = input;
68
- return api(ctx, `/v12/deployments/${encodeURIComponent(id)}/cancel`, { method: "PATCH", query });
81
+ return api(ctx, `/v12/deployments/${pathSegment(id)}/cancel`, {
82
+ method: "PATCH",
83
+ query,
84
+ });
69
85
  },
70
86
  });
71
87
  rl.registerAction("deployment.promote", {
@@ -78,7 +94,7 @@ export function registerDeploymentActions(rl) {
78
94
  }),
79
95
  async execute(input, ctx) {
80
96
  const { projectId, deploymentId, ...query } = input;
81
- return api(ctx, `/v10/projects/${encodeURIComponent(String(projectId))}/promote/${encodeURIComponent(String(deploymentId))}`, { method: "POST", query });
97
+ return api(ctx, `/v10/projects/${pathSegment(projectId)}/promote/${pathSegment(deploymentId)}`, { method: "POST", query });
82
98
  },
83
99
  });
84
100
  }