runline 0.33.0 → 0.35.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (531) hide show
  1. package/dist/auth/oauth2.d.ts +7 -1
  2. package/dist/auth/oauth2.js +10 -0
  3. package/dist/auth/token.d.ts +1 -0
  4. package/dist/auth/token.js +19 -1
  5. package/dist/auth/types.d.ts +22 -1
  6. package/dist/core/engine.d.ts +7 -0
  7. package/dist/core/engine.js +21 -8
  8. package/dist/credentials/policy.d.ts +53 -1
  9. package/dist/credentials/policy.js +146 -6
  10. package/dist/credentials/registry.d.ts +9 -0
  11. package/dist/credentials/registry.js +184 -22
  12. package/dist/credentials/transport.d.ts +48 -2
  13. package/dist/credentials/transport.js +248 -70
  14. package/dist/credentials/types.d.ts +177 -10
  15. package/dist/index.d.ts +6 -5
  16. package/dist/index.js +3 -2
  17. package/dist/plugin/api.d.ts +7 -0
  18. package/dist/plugin/api.js +7 -0
  19. package/dist/plugin/schema.d.ts +16 -4
  20. package/dist/plugin/schema.js +28 -5
  21. package/dist/plugin/types.d.ts +20 -0
  22. package/dist/plugins/_shared/base64.js +30 -0
  23. package/dist/plugins/_shared/credentialAdapter.js +99 -15
  24. package/dist/plugins/_shared/credentials.js +416 -0
  25. package/dist/plugins/_shared/googleAuth.js +69 -39
  26. package/dist/plugins/_shared/googleCredentials.js +68 -14
  27. package/dist/plugins/_shared/localFile.js +40 -0
  28. package/dist/plugins/_shared/mediaFile.js +12 -12
  29. package/dist/plugins/_shared/microsoftAuth.js +31 -47
  30. package/dist/plugins/_shared/microsoftCredentials.js +42 -15
  31. package/dist/plugins/_shared/provider.js +2 -14
  32. package/dist/plugins/_shared/shiftCloud.js +16 -56
  33. package/dist/plugins/_shared/shiftCredentials.js +83 -0
  34. package/dist/plugins/_shared/shiftUpload.js +14 -10
  35. package/dist/plugins/actionNetwork/src/credentials.js +14 -0
  36. package/dist/plugins/actionNetwork/src/index.js +39 -50
  37. package/dist/plugins/activeCampaign/src/credentials.js +22 -0
  38. package/dist/plugins/activeCampaign/src/index.js +61 -132
  39. package/dist/plugins/adalo/src/credentials.js +16 -0
  40. package/dist/plugins/adalo/src/index.js +19 -43
  41. package/dist/plugins/affinity/src/credentials.js +19 -0
  42. package/dist/plugins/affinity/src/index.js +29 -54
  43. package/dist/plugins/agentMail/src/credentials.js +35 -0
  44. package/dist/plugins/agentMail/src/drafts.js +137 -0
  45. package/dist/plugins/agentMail/src/inboxes.js +95 -0
  46. package/dist/plugins/agentMail/src/index.js +35 -0
  47. package/dist/plugins/agentMail/src/messages.js +154 -0
  48. package/dist/plugins/agentMail/src/schemas.js +156 -0
  49. package/dist/plugins/agentMail/src/shared.js +203 -0
  50. package/dist/plugins/agentMail/src/threads.js +75 -0
  51. package/dist/plugins/agileCrm/src/credentials.js +16 -0
  52. package/dist/plugins/agileCrm/src/index.js +46 -112
  53. package/dist/plugins/airtable/src/credentials.js +19 -0
  54. package/dist/plugins/airtable/src/index.js +37 -50
  55. package/dist/plugins/airtop/src/credentials.js +20 -0
  56. package/dist/plugins/airtop/src/index.js +51 -75
  57. package/dist/plugins/apiTemplateIo/src/credentials.js +19 -0
  58. package/dist/plugins/apiTemplateIo/src/index.js +14 -31
  59. package/dist/plugins/asana/src/credentials.js +19 -0
  60. package/dist/plugins/asana/src/index.js +51 -72
  61. package/dist/plugins/autopilot/src/credentials.js +19 -0
  62. package/dist/plugins/autopilot/src/index.js +38 -45
  63. package/dist/plugins/bambooHr/src/credentials.js +16 -0
  64. package/dist/plugins/bambooHr/src/index.js +41 -67
  65. package/dist/plugins/bannerbear/src/credentials.js +19 -0
  66. package/dist/plugins/bannerbear/src/index.js +15 -27
  67. package/dist/plugins/baserow/src/credentials.js +17 -0
  68. package/dist/plugins/baserow/src/index.js +23 -49
  69. package/dist/plugins/beeminder/src/credentials.js +19 -0
  70. package/dist/plugins/beeminder/src/index.js +32 -54
  71. package/dist/plugins/bitly/src/credentials.js +19 -0
  72. package/dist/plugins/bitly/src/index.js +12 -26
  73. package/dist/plugins/bitwarden/src/credentials.js +62 -0
  74. package/dist/plugins/bitwarden/src/index.js +34 -80
  75. package/dist/plugins/box/src/credentials.js +19 -0
  76. package/dist/plugins/box/src/index.js +24 -49
  77. package/dist/plugins/brandfetch/src/credentials.js +13 -0
  78. package/dist/plugins/brandfetch/src/index.js +12 -17
  79. package/dist/plugins/brevo/src/credentials.js +19 -0
  80. package/dist/plugins/brevo/src/index.js +30 -51
  81. package/dist/plugins/bubble/src/credentials.js +28 -0
  82. package/dist/plugins/bubble/src/index.js +29 -65
  83. package/dist/plugins/chargebee/src/credentials.js +16 -0
  84. package/dist/plugins/chargebee/src/index.js +15 -45
  85. package/dist/plugins/circleci/src/credentials.js +19 -0
  86. package/dist/plugins/circleci/src/index.js +19 -39
  87. package/dist/plugins/ciscoWebex/src/credentials.js +19 -0
  88. package/dist/plugins/ciscoWebex/src/index.js +43 -61
  89. package/dist/plugins/clearbit/src/credentials.js +22 -0
  90. package/dist/plugins/clearbit/src/index.js +11 -21
  91. package/dist/plugins/clickup/src/credentials.js +19 -0
  92. package/dist/plugins/clickup/src/index.js +85 -117
  93. package/dist/plugins/clockify/src/credentials.js +19 -0
  94. package/dist/plugins/clockify/src/index.js +46 -61
  95. package/dist/plugins/cloudflare/src/credentials.js +19 -0
  96. package/dist/plugins/cloudflare/src/index.js +19 -34
  97. package/dist/plugins/cockpit/src/credentials.js +17 -0
  98. package/dist/plugins/cockpit/src/index.js +18 -31
  99. package/dist/plugins/coda/src/credentials.js +19 -0
  100. package/dist/plugins/coda/src/index.js +33 -50
  101. package/dist/plugins/coingecko/src/credentials.js +20 -0
  102. package/dist/plugins/coingecko/src/index.js +24 -34
  103. package/dist/plugins/contentful/src/credentials.js +26 -0
  104. package/dist/plugins/contentful/src/index.js +19 -40
  105. package/dist/plugins/convertkit/src/credentials.js +26 -0
  106. package/dist/plugins/convertkit/src/index.js +27 -45
  107. package/dist/plugins/copper/src/credentials.js +17 -0
  108. package/dist/plugins/copper/src/index.js +25 -47
  109. package/dist/plugins/cortex/src/credentials.js +28 -0
  110. package/dist/plugins/cortex/src/index.js +26 -49
  111. package/dist/plugins/currents/src/credentials.js +19 -0
  112. package/dist/plugins/currents/src/index.js +46 -59
  113. package/dist/plugins/customerIo/src/credentials.js +52 -0
  114. package/dist/plugins/customerIo/src/index.js +30 -58
  115. package/dist/plugins/databricks/src/credentials.js +13 -0
  116. package/dist/plugins/databricks/src/index.js +51 -103
  117. package/dist/plugins/deepl/src/credentials.js +19 -0
  118. package/dist/plugins/deepl/src/index.js +13 -39
  119. package/dist/plugins/demio/src/credentials.js +26 -0
  120. package/dist/plugins/demio/src/index.js +17 -41
  121. package/dist/plugins/dhl/src/credentials.js +13 -0
  122. package/dist/plugins/dhl/src/index.js +8 -19
  123. package/dist/plugins/discord/src/credentials.js +19 -0
  124. package/dist/plugins/discord/src/index.js +30 -58
  125. package/dist/plugins/discourse/src/credentials.js +18 -0
  126. package/dist/plugins/discourse/src/index.js +36 -53
  127. package/dist/plugins/disqus/src/credentials.js +13 -0
  128. package/dist/plugins/disqus/src/index.js +14 -32
  129. package/dist/plugins/drift/src/credentials.js +13 -0
  130. package/dist/plugins/drift/src/index.js +16 -26
  131. package/dist/plugins/dropbox/src/credentials.js +13 -0
  132. package/dist/plugins/dropbox/src/index.js +23 -30
  133. package/dist/plugins/dropcontact/src/credentials.js +13 -0
  134. package/dist/plugins/dropcontact/src/index.js +13 -18
  135. package/dist/plugins/egoi/src/credentials.js +19 -0
  136. package/dist/plugins/egoi/src/index.js +23 -38
  137. package/dist/plugins/elasticsearch/src/credentials.js +18 -0
  138. package/dist/plugins/elasticsearch/src/index.js +27 -48
  139. package/dist/plugins/elevenlabs/src/credentials.js +30 -0
  140. package/dist/plugins/elevenlabs/src/index.js +4 -1
  141. package/dist/plugins/elevenlabs/src/schemas.js +2 -1
  142. package/dist/plugins/elevenlabs/src/shared.js +87 -62
  143. package/dist/plugins/elevenlabs/src/workflows.js +2 -2
  144. package/dist/plugins/emelia/src/credentials.js +14 -0
  145. package/dist/plugins/emelia/src/index.js +19 -23
  146. package/dist/plugins/erpnext/src/credentials.js +27 -0
  147. package/dist/plugins/erpnext/src/index.js +21 -42
  148. package/dist/plugins/facebookGraph/src/credentials.js +20 -0
  149. package/dist/plugins/facebookGraph/src/index.js +39 -37
  150. package/dist/plugins/fal/src/credentials.js +14 -0
  151. package/dist/plugins/fal/src/index.js +5 -3
  152. package/dist/plugins/fal/src/shared.js +58 -63
  153. package/dist/plugins/freshdesk/src/credentials.js +20 -0
  154. package/dist/plugins/freshdesk/src/index.js +25 -46
  155. package/dist/plugins/freshservice/src/credentials.js +16 -0
  156. package/dist/plugins/freshservice/src/index.js +37 -58
  157. package/dist/plugins/freshworksCrm/src/credentials.js +16 -0
  158. package/dist/plugins/freshworksCrm/src/index.js +20 -39
  159. package/dist/plugins/getresponse/src/credentials.js +22 -0
  160. package/dist/plugins/getresponse/src/index.js +20 -32
  161. package/dist/plugins/gett/src/credentials.js +64 -0
  162. package/dist/plugins/gett/src/index.js +11 -6
  163. package/dist/plugins/gett/src/login.js +24 -0
  164. package/dist/plugins/gett/src/session.js +15 -38
  165. package/dist/plugins/gett/src/shared.js +41 -84
  166. package/dist/plugins/ghost/src/credentials.js +36 -0
  167. package/dist/plugins/ghost/src/index.js +18 -59
  168. package/dist/plugins/github/src/credentials.js +18 -0
  169. package/dist/plugins/github/src/index.js +55 -78
  170. package/dist/plugins/gitlab/src/credentials.js +24 -0
  171. package/dist/plugins/gitlab/src/index.js +29 -48
  172. package/dist/plugins/gmail/src/index.js +47 -108
  173. package/dist/plugins/gong/src/credentials.js +16 -0
  174. package/dist/plugins/gong/src/index.js +16 -32
  175. package/dist/plugins/googleAppsScript/src/index.js +109 -42
  176. package/dist/plugins/googleCalendar/src/index.js +20 -51
  177. package/dist/plugins/googleContacts/src/index.js +13 -40
  178. package/dist/plugins/googleDocs/src/index.js +3 -32
  179. package/dist/plugins/googleDocs/src/shared.js +2 -1
  180. package/dist/plugins/googleDrive/src/index.js +68 -97
  181. package/dist/plugins/googleImage/src/credentials.js +14 -0
  182. package/dist/plugins/googleImage/src/index.js +15 -26
  183. package/dist/plugins/googleSheets/src/index.js +27 -60
  184. package/dist/plugins/googleSlides/src/index.js +7 -35
  185. package/dist/plugins/googleTasks/src/index.js +14 -42
  186. package/dist/plugins/gotify/src/credentials.js +32 -0
  187. package/dist/plugins/gotify/src/index.js +14 -36
  188. package/dist/plugins/gotowebinar/src/credentials.js +13 -0
  189. package/dist/plugins/gotowebinar/src/index.js +52 -69
  190. package/dist/plugins/grafana/src/credentials.js +16 -0
  191. package/dist/plugins/grafana/src/index.js +34 -53
  192. package/dist/plugins/graphql/src/credentials.js +42 -0
  193. package/dist/plugins/graphql/src/index.js +21 -46
  194. package/dist/plugins/grist/src/credentials.js +30 -0
  195. package/dist/plugins/grist/src/index.js +14 -43
  196. package/dist/plugins/halopsa/src/credentials.js +56 -0
  197. package/dist/plugins/halopsa/src/index.js +20 -47
  198. package/dist/plugins/harvest/src/credentials.js +20 -0
  199. package/dist/plugins/harvest/src/index.js +24 -43
  200. package/dist/plugins/helpscout/src/credentials.js +13 -0
  201. package/dist/plugins/helpscout/src/index.js +26 -38
  202. package/dist/plugins/highlevel/src/credentials.js +19 -0
  203. package/dist/plugins/highlevel/src/index.js +42 -65
  204. package/dist/plugins/homeAssistant/src/credentials.js +27 -0
  205. package/dist/plugins/homeAssistant/src/index.js +34 -52
  206. package/dist/plugins/hubspot/src/credentials.js +16 -0
  207. package/dist/plugins/hubspot/src/index.js +29 -41
  208. package/dist/plugins/humanticAi/src/credentials.js +13 -0
  209. package/dist/plugins/humanticAi/src/index.js +15 -22
  210. package/dist/plugins/hunter/src/credentials.js +13 -0
  211. package/dist/plugins/hunter/src/index.js +18 -17
  212. package/dist/plugins/intercom/src/credentials.js +19 -0
  213. package/dist/plugins/intercom/src/index.js +25 -38
  214. package/dist/plugins/iterable/src/credentials.js +17 -0
  215. package/dist/plugins/iterable/src/index.js +26 -40
  216. package/dist/plugins/jenkins/src/credentials.js +16 -0
  217. package/dist/plugins/jenkins/src/index.js +22 -36
  218. package/dist/plugins/jira/src/credentials.js +16 -0
  219. package/dist/plugins/jira/src/index.js +35 -61
  220. package/dist/plugins/keap/src/credentials.js +19 -0
  221. package/dist/plugins/keap/src/index.js +43 -71
  222. package/dist/plugins/kobotoolbox/src/credentials.js +13 -0
  223. package/dist/plugins/kobotoolbox/src/index.js +46 -84
  224. package/dist/plugins/lemlist/src/credentials.js +19 -0
  225. package/dist/plugins/lemlist/src/index.js +35 -47
  226. package/dist/plugins/linear/src/attachments.js +7 -7
  227. package/dist/plugins/linear/src/comments.js +7 -7
  228. package/dist/plugins/linear/src/credentials.js +17 -0
  229. package/dist/plugins/linear/src/cycles.js +5 -5
  230. package/dist/plugins/linear/src/index.js +2 -0
  231. package/dist/plugins/linear/src/initiatives.js +6 -6
  232. package/dist/plugins/linear/src/issues.js +14 -14
  233. package/dist/plugins/linear/src/labels.js +6 -6
  234. package/dist/plugins/linear/src/organization.js +2 -2
  235. package/dist/plugins/linear/src/projects.js +12 -12
  236. package/dist/plugins/linear/src/shared.js +34 -32
  237. package/dist/plugins/linear/src/states.js +3 -3
  238. package/dist/plugins/linear/src/teams.js +4 -4
  239. package/dist/plugins/linear/src/users.js +3 -3
  240. package/dist/plugins/linear/src/views.js +5 -5
  241. package/dist/plugins/linear/src/webhooks.js +5 -5
  242. package/dist/plugins/lingvanex/src/credentials.js +13 -0
  243. package/dist/plugins/lingvanex/src/index.js +7 -9
  244. package/dist/plugins/linkedin/src/credentials.js +17 -0
  245. package/dist/plugins/linkedin/src/index.js +13 -17
  246. package/dist/plugins/lonescale/src/credentials.js +13 -0
  247. package/dist/plugins/lonescale/src/index.js +16 -26
  248. package/dist/plugins/magento/src/credentials.js +16 -0
  249. package/dist/plugins/magento/src/index.js +67 -84
  250. package/dist/plugins/mailcheck/src/credentials.js +17 -0
  251. package/dist/plugins/mailcheck/src/index.js +7 -9
  252. package/dist/plugins/mailchimp/src/credentials.js +32 -0
  253. package/dist/plugins/mailchimp/src/index.js +36 -44
  254. package/dist/plugins/mailerlite/src/credentials.js +13 -0
  255. package/dist/plugins/mailerlite/src/index.js +19 -32
  256. package/dist/plugins/mailgun/src/credentials.js +21 -0
  257. package/dist/plugins/mailgun/src/index.js +15 -21
  258. package/dist/plugins/mailjet/src/credentials.js +38 -0
  259. package/dist/plugins/mailjet/src/index.js +60 -115
  260. package/dist/plugins/mandrill/src/credentials.js +17 -0
  261. package/dist/plugins/mandrill/src/index.js +11 -12
  262. package/dist/plugins/marketstack/src/credentials.js +16 -0
  263. package/dist/plugins/marketstack/src/index.js +18 -28
  264. package/dist/plugins/matrix/src/credentials.js +19 -0
  265. package/dist/plugins/matrix/src/index.js +23 -52
  266. package/dist/plugins/mattermost/src/credentials.js +19 -0
  267. package/dist/plugins/mattermost/src/index.js +41 -73
  268. package/dist/plugins/mautic/src/credentials.js +16 -0
  269. package/dist/plugins/mautic/src/index.js +46 -62
  270. package/dist/plugins/medium/src/credentials.js +20 -0
  271. package/dist/plugins/medium/src/index.js +18 -23
  272. package/dist/plugins/messagebird/src/credentials.js +22 -0
  273. package/dist/plugins/messagebird/src/index.js +13 -18
  274. package/dist/plugins/metabase/src/credentials.js +19 -0
  275. package/dist/plugins/metabase/src/index.js +24 -40
  276. package/dist/plugins/microsoftCalendar/src/index.js +49 -18
  277. package/dist/plugins/microsoftFiles/src/index.js +95 -31
  278. package/dist/plugins/microsoftMail/src/index.js +63 -21
  279. package/dist/plugins/misp/src/credentials.js +16 -0
  280. package/dist/plugins/misp/src/index.js +60 -71
  281. package/dist/plugins/mocean/src/credentials.js +17 -0
  282. package/dist/plugins/mocean/src/index.js +11 -23
  283. package/dist/plugins/monday/src/credentials.js +14 -0
  284. package/dist/plugins/monday/src/index.js +31 -44
  285. package/dist/plugins/monicaCrm/src/credentials.js +19 -0
  286. package/dist/plugins/monicaCrm/src/index.js +25 -42
  287. package/dist/plugins/msg91/src/credentials.js +10 -0
  288. package/dist/plugins/msg91/src/index.js +15 -11
  289. package/dist/plugins/nasa/src/credentials.js +22 -0
  290. package/dist/plugins/nasa/src/index.js +24 -28
  291. package/dist/plugins/netlify/src/credentials.js +19 -0
  292. package/dist/plugins/netlify/src/index.js +27 -51
  293. package/dist/plugins/netscalerAdc/src/credentials.js +18 -0
  294. package/dist/plugins/netscalerAdc/src/index.js +16 -31
  295. package/dist/plugins/nextcloud/src/credentials.js +27 -0
  296. package/dist/plugins/nextcloud/src/index.js +55 -109
  297. package/dist/plugins/nocodb/src/credentials.js +16 -0
  298. package/dist/plugins/nocodb/src/index.js +19 -37
  299. package/dist/plugins/notion/src/credentials.js +21 -0
  300. package/dist/plugins/notion/src/index.js +25 -38
  301. package/dist/plugins/npm/src/credentials.js +19 -0
  302. package/dist/plugins/npm/src/index.js +22 -32
  303. package/dist/plugins/odoo/src/credentials.js +21 -0
  304. package/dist/plugins/odoo/src/index.js +53 -69
  305. package/dist/plugins/okta/src/credentials.js +23 -0
  306. package/dist/plugins/okta/src/index.js +30 -35
  307. package/dist/plugins/oneSimpleApi/src/credentials.js +16 -0
  308. package/dist/plugins/oneSimpleApi/src/index.js +19 -24
  309. package/dist/plugins/onfleet/src/credentials.js +23 -0
  310. package/dist/plugins/onfleet/src/index.js +42 -53
  311. package/dist/plugins/openai/src/credentials.js +13 -0
  312. package/dist/plugins/openai/src/index.js +16 -24
  313. package/dist/plugins/openweathermap/src/credentials.js +16 -0
  314. package/dist/plugins/openweathermap/src/index.js +22 -22
  315. package/dist/plugins/oura/src/credentials.js +19 -0
  316. package/dist/plugins/oura/src/index.js +13 -18
  317. package/dist/plugins/paddle/src/credentials.js +27 -0
  318. package/dist/plugins/paddle/src/index.js +20 -36
  319. package/dist/plugins/pagerduty/src/credentials.js +24 -0
  320. package/dist/plugins/pagerduty/src/index.js +30 -39
  321. package/dist/plugins/parallel/src/credentials.js +18 -0
  322. package/dist/plugins/parallel/src/index.js +16 -22
  323. package/dist/plugins/paypal/src/credentials.js +44 -0
  324. package/dist/plugins/paypal/src/index.js +14 -40
  325. package/dist/plugins/peekalink/src/credentials.js +16 -0
  326. package/dist/plugins/peekalink/src/index.js +10 -11
  327. package/dist/plugins/phantombuster/src/credentials.js +19 -0
  328. package/dist/plugins/phantombuster/src/index.js +19 -32
  329. package/dist/plugins/philipsHue/src/credentials.js +17 -0
  330. package/dist/plugins/philipsHue/src/index.js +15 -27
  331. package/dist/plugins/pipedrive/src/credentials.js +26 -0
  332. package/dist/plugins/pipedrive/src/index.js +43 -73
  333. package/dist/plugins/plaud/src/index.js +2 -1
  334. package/dist/plugins/plaud/src/shared.js +23 -19
  335. package/dist/plugins/plivo/src/credentials.js +20 -0
  336. package/dist/plugins/plivo/src/index.js +13 -19
  337. package/dist/plugins/posthog/src/credentials.js +18 -0
  338. package/dist/plugins/posthog/src/index.js +14 -20
  339. package/dist/plugins/profitwell/src/credentials.js +22 -0
  340. package/dist/plugins/profitwell/src/index.js +10 -17
  341. package/dist/plugins/pushbullet/src/credentials.js +19 -0
  342. package/dist/plugins/pushbullet/src/index.js +19 -27
  343. package/dist/plugins/pushcut/src/credentials.js +19 -0
  344. package/dist/plugins/pushcut/src/index.js +7 -8
  345. package/dist/plugins/pushover/src/credentials.js +14 -0
  346. package/dist/plugins/pushover/src/index.js +7 -12
  347. package/dist/plugins/quickbase/src/credentials.js +15 -0
  348. package/dist/plugins/quickbase/src/index.js +24 -34
  349. package/dist/plugins/quickbooks/src/credentials.js +22 -0
  350. package/dist/plugins/quickbooks/src/index.js +17 -46
  351. package/dist/plugins/raindrop/src/credentials.js +19 -0
  352. package/dist/plugins/raindrop/src/index.js +30 -32
  353. package/dist/plugins/recraft/src/credentials.js +13 -0
  354. package/dist/plugins/recraft/src/index.js +39 -28
  355. package/dist/plugins/reddit/src/credentials.js +26 -0
  356. package/dist/plugins/reddit/src/index.js +30 -34
  357. package/dist/plugins/replicate/src/credentials.js +23 -0
  358. package/dist/plugins/replicate/src/index.js +18 -28
  359. package/dist/plugins/rocketchat/src/credentials.js +17 -0
  360. package/dist/plugins/rocketchat/src/index.js +8 -19
  361. package/dist/plugins/rundeck/src/credentials.js +16 -0
  362. package/dist/plugins/rundeck/src/index.js +12 -28
  363. package/dist/plugins/salesforce/src/credentials.js +73 -0
  364. package/dist/plugins/salesforce/src/index.js +6 -0
  365. package/dist/plugins/salesforce/src/metadata.js +3 -16
  366. package/dist/plugins/salesforce/src/shared.js +25 -100
  367. package/dist/plugins/salesforce/src/sobjects.js +10 -9
  368. package/dist/plugins/salesmate/src/credentials.js +17 -0
  369. package/dist/plugins/salesmate/src/index.js +20 -37
  370. package/dist/plugins/securityScorecard/src/credentials.js +22 -0
  371. package/dist/plugins/securityScorecard/src/index.js +24 -37
  372. package/dist/plugins/segment/src/credentials.js +16 -0
  373. package/dist/plugins/segment/src/index.js +12 -16
  374. package/dist/plugins/sendgrid/src/credentials.js +13 -0
  375. package/dist/plugins/sendgrid/src/index.js +31 -35
  376. package/dist/plugins/sendy/src/credentials.js +18 -0
  377. package/dist/plugins/sendy/src/index.js +18 -24
  378. package/dist/plugins/sentry/src/credentials.js +16 -0
  379. package/dist/plugins/sentry/src/index.js +30 -98
  380. package/dist/plugins/servicenow/src/credentials.js +13 -0
  381. package/dist/plugins/servicenow/src/index.js +22 -41
  382. package/dist/plugins/shiftAtlas/src/graph.js +2 -2
  383. package/dist/plugins/shiftAtlas/src/index.js +2 -0
  384. package/dist/plugins/shiftAtlas/src/shared.js +3 -1
  385. package/dist/plugins/shiftBwm/src/index.js +4 -2
  386. package/dist/plugins/shiftBwm/src/shared.js +41 -16
  387. package/dist/plugins/shiftCrm/src/access.js +2 -2
  388. package/dist/plugins/shiftCrm/src/accounts.js +3 -3
  389. package/dist/plugins/shiftCrm/src/activities.js +3 -3
  390. package/dist/plugins/shiftCrm/src/credentials.js +6 -0
  391. package/dist/plugins/shiftCrm/src/index.js +2 -0
  392. package/dist/plugins/shiftCrm/src/opportunities.js +3 -3
  393. package/dist/plugins/shiftCrm/src/people.js +3 -3
  394. package/dist/plugins/shiftCrm/src/records.js +2 -2
  395. package/dist/plugins/shiftCrm/src/shared.js +2 -1
  396. package/dist/plugins/shiftCrm/src/tasks.js +3 -3
  397. package/dist/plugins/shiftObjects/src/credentials.js +2 -0
  398. package/dist/plugins/shiftObjects/src/index.js +2 -0
  399. package/dist/plugins/shiftObjects/src/objects.js +4 -3
  400. package/dist/plugins/shiftOcr/src/credentials.js +8 -0
  401. package/dist/plugins/shiftOcr/src/index.js +14 -8
  402. package/dist/plugins/shiftPages/src/index.js +2 -0
  403. package/dist/plugins/shiftPages/src/pages.js +5 -3
  404. package/dist/plugins/shiftPages/src/shared.js +3 -1
  405. package/dist/plugins/shiftTranscription/src/index.js +2 -0
  406. package/dist/plugins/shiftTranscription/src/shared.js +11 -1
  407. package/dist/plugins/shiftTranscription/src/transcription.js +5 -5
  408. package/dist/plugins/shiftWork/src/index.js +2 -0
  409. package/dist/plugins/shiftWork/src/issue-views.js +5 -5
  410. package/dist/plugins/shiftWork/src/issues.js +11 -7
  411. package/dist/plugins/shiftWork/src/projects.js +3 -3
  412. package/dist/plugins/shiftWork/src/shared.js +3 -1
  413. package/dist/plugins/shopify/src/credentials.js +16 -0
  414. package/dist/plugins/shopify/src/index.js +32 -59
  415. package/dist/plugins/signl4/src/credentials.js +17 -0
  416. package/dist/plugins/signl4/src/index.js +28 -29
  417. package/dist/plugins/slack/src/credentials.js +19 -0
  418. package/dist/plugins/slack/src/index.js +51 -60
  419. package/dist/plugins/sms77/src/credentials.js +17 -0
  420. package/dist/plugins/sms77/src/index.js +11 -16
  421. package/dist/plugins/splunk/src/credentials.js +19 -0
  422. package/dist/plugins/splunk/src/index.js +32 -74
  423. package/dist/plugins/spotify/src/credentials.js +19 -0
  424. package/dist/plugins/spotify/src/index.js +40 -55
  425. package/dist/plugins/stackby/src/credentials.js +13 -0
  426. package/dist/plugins/stackby/src/index.js +14 -23
  427. package/dist/plugins/steel/src/auth.js +27 -0
  428. package/dist/plugins/steel/src/browser.js +4 -3
  429. package/dist/plugins/steel/src/captchas.js +4 -3
  430. package/dist/plugins/steel/src/extensions.js +3 -2
  431. package/dist/plugins/steel/src/files.js +9 -10
  432. package/dist/plugins/steel/src/index.js +2 -0
  433. package/dist/plugins/steel/src/page/tools.js +3 -3
  434. package/dist/plugins/steel/src/profiles.js +4 -3
  435. package/dist/plugins/steel/src/sessions.js +13 -13
  436. package/dist/plugins/steel/src/shared.js +21 -51
  437. package/dist/plugins/storyblok/src/credentials.js +37 -0
  438. package/dist/plugins/storyblok/src/index.js +22 -66
  439. package/dist/plugins/strapi/src/credentials.js +71 -0
  440. package/dist/plugins/strapi/src/index.js +36 -70
  441. package/dist/plugins/strava/src/credentials.js +19 -0
  442. package/dist/plugins/strava/src/index.js +16 -33
  443. package/dist/plugins/stripe/src/credentials.js +19 -0
  444. package/dist/plugins/stripe/src/index.js +44 -58
  445. package/dist/plugins/supabase/src/credentials.js +30 -0
  446. package/dist/plugins/supabase/src/index.js +18 -40
  447. package/dist/plugins/syncromsp/src/credentials.js +16 -0
  448. package/dist/plugins/syncromsp/src/index.js +37 -70
  449. package/dist/plugins/tapfiliate/src/credentials.js +13 -0
  450. package/dist/plugins/tapfiliate/src/index.js +21 -31
  451. package/dist/plugins/telegram/src/credentials.js +20 -0
  452. package/dist/plugins/telegram/src/index.js +31 -39
  453. package/dist/plugins/thehive/src/credentials.js +14 -0
  454. package/dist/plugins/thehive/src/index.js +33 -50
  455. package/dist/plugins/thehiveProject/src/credentials.js +16 -0
  456. package/dist/plugins/thehiveProject/src/index.js +53 -122
  457. package/dist/plugins/todoist/src/credentials.js +26 -0
  458. package/dist/plugins/todoist/src/index.js +49 -79
  459. package/dist/plugins/together/src/credentials.js +16 -0
  460. package/dist/plugins/together/src/index.js +31 -33
  461. package/dist/plugins/travisci/src/credentials.js +24 -0
  462. package/dist/plugins/travisci/src/index.js +16 -30
  463. package/dist/plugins/trello/src/credentials.js +29 -0
  464. package/dist/plugins/trello/src/index.js +49 -64
  465. package/dist/plugins/twake/src/credentials.js +16 -0
  466. package/dist/plugins/twake/src/index.js +8 -10
  467. package/dist/plugins/twilio/src/credentials.js +23 -0
  468. package/dist/plugins/twilio/src/index.js +12 -26
  469. package/dist/plugins/twist/src/credentials.js +13 -0
  470. package/dist/plugins/twist/src/index.js +32 -44
  471. package/dist/plugins/twitter/src/credentials.js +16 -0
  472. package/dist/plugins/twitter/src/index.js +25 -37
  473. package/dist/plugins/typesafe/src/credentials.js +28 -0
  474. package/dist/plugins/typesafe/src/index.js +3 -1
  475. package/dist/plugins/typesafe/src/shared.js +23 -35
  476. package/dist/plugins/unleashedSoftware/src/credentials.js +21 -0
  477. package/dist/plugins/unleashedSoftware/src/index.js +13 -37
  478. package/dist/plugins/uplead/src/credentials.js +16 -0
  479. package/dist/plugins/uplead/src/index.js +11 -16
  480. package/dist/plugins/uproc/src/credentials.js +14 -0
  481. package/dist/plugins/uproc/src/index.js +7 -10
  482. package/dist/plugins/uptimerobot/src/credentials.js +14 -0
  483. package/dist/plugins/uptimerobot/src/index.js +28 -39
  484. package/dist/plugins/urlscanio/src/credentials.js +13 -0
  485. package/dist/plugins/urlscanio/src/index.js +13 -22
  486. package/dist/plugins/vercel/src/credentials.js +19 -0
  487. package/dist/plugins/vercel/src/deployments.js +27 -11
  488. package/dist/plugins/vercel/src/env.js +31 -12
  489. package/dist/plugins/vercel/src/index.js +2 -0
  490. package/dist/plugins/vercel/src/projects.js +6 -3
  491. package/dist/plugins/vercel/src/shared.js +32 -37
  492. package/dist/plugins/vero/src/credentials.js +17 -0
  493. package/dist/plugins/vero/src/index.js +18 -21
  494. package/dist/plugins/vonage/src/credentials.js +17 -0
  495. package/dist/plugins/vonage/src/index.js +14 -18
  496. package/dist/plugins/wekan/src/credentials.js +16 -0
  497. package/dist/plugins/wekan/src/index.js +33 -46
  498. package/dist/plugins/wolt/src/account.js +6 -0
  499. package/dist/plugins/wolt/src/catalog.js +2 -2
  500. package/dist/plugins/wolt/src/credentials.js +64 -0
  501. package/dist/plugins/wolt/src/index.js +8 -3
  502. package/dist/plugins/wolt/src/orders.js +2 -2
  503. package/dist/plugins/wolt/src/public.js +91 -0
  504. package/dist/plugins/wolt/src/shared.js +49 -158
  505. package/dist/plugins/woocommerce/src/credentials.js +16 -0
  506. package/dist/plugins/woocommerce/src/index.js +19 -37
  507. package/dist/plugins/wordpress/src/credentials.js +16 -0
  508. package/dist/plugins/wordpress/src/index.js +23 -42
  509. package/dist/plugins/xai/src/credentials.js +13 -0
  510. package/dist/plugins/xai/src/index.js +32 -31
  511. package/dist/plugins/xero/src/credentials.js +17 -0
  512. package/dist/plugins/xero/src/index.js +19 -36
  513. package/dist/plugins/yourls/src/credentials.js +17 -0
  514. package/dist/plugins/yourls/src/index.js +13 -23
  515. package/dist/plugins/zammad/src/credentials.js +15 -0
  516. package/dist/plugins/zammad/src/index.js +27 -47
  517. package/dist/plugins/zendesk/src/credentials.js +26 -0
  518. package/dist/plugins/zendesk/src/index.js +29 -48
  519. package/dist/plugins/zoho/src/credentials.js +17 -0
  520. package/dist/plugins/zoho/src/index.js +18 -38
  521. package/dist/plugins/zoom/src/credentials.js +19 -0
  522. package/dist/plugins/zoom/src/index.js +15 -30
  523. package/dist/plugins/zulip/src/credentials.js +16 -0
  524. package/dist/plugins/zulip/src/index.js +36 -42
  525. package/dist/sdk.d.ts +8 -0
  526. package/dist/sdk.js +3 -0
  527. package/package.json +2 -1
  528. package/dist/plugins/_shared/authedFetch.js +0 -33
  529. package/dist/plugins/_shared/tokenRefresh.js +0 -41
  530. package/dist/tests/helpers/engine-harness.d.ts +0 -1
  531. package/dist/tests/helpers/engine-harness.js +0 -236
@@ -1,5 +1,5 @@
1
1
  import * as t from "typebox";
2
- import { cursorSchema, enumSchema, ISSUE_PRIORITY, ISSUE_SOURCE, ISSUE_STATUS, idSchema, listParams, pathSegment, request, STRICT_OBJECT, STRICT_UPDATE_OBJECT, timestampSchema, withQuery, } from "./shared.js";
2
+ import { cursorSchema, enumSchema, ISSUE_PRIORITY, ISSUE_SOURCE, ISSUE_STATUS, idSchema, pathSegment, request, STRICT_OBJECT, STRICT_UPDATE_OBJECT, timestampSchema, } from "./shared.js";
3
3
  const issueFields = {
4
4
  title: t.String({
5
5
  minLength: 1,
@@ -54,7 +54,9 @@ export function registerIssueActions(rl) {
54
54
  description: "List the first page of Shift Labs Issues for the API key's organization.",
55
55
  inputSchema: t.Object(issueListFields, STRICT_OBJECT),
56
56
  async execute(input, ctx) {
57
- const body = await request(ctx, `/v1/issues?${listParams(input)}`);
57
+ const body = await request(ctx, "/v1/issues", {
58
+ query: input,
59
+ });
58
60
  return body.issues;
59
61
  },
60
62
  });
@@ -63,7 +65,7 @@ export function registerIssueActions(rl) {
63
65
  description: "List a cursor-paginated page of Shift Labs Issues.",
64
66
  inputSchema: t.Object(issueListFields, STRICT_OBJECT),
65
67
  async execute(input, ctx) {
66
- return request(ctx, `/v1/issues?${listParams(input)}`);
68
+ return request(ctx, "/v1/issues", { query: input });
67
69
  },
68
70
  });
69
71
  rl.registerAction("issue.get", {
@@ -193,7 +195,7 @@ export function registerIssueActions(rl) {
193
195
  inputSchema: t.Object(eventListFields, STRICT_OBJECT),
194
196
  async execute(input, ctx) {
195
197
  const { id, ...pagination } = input;
196
- const body = await request(ctx, withQuery(`/v1/issues/${pathSegment(id)}/events`, listParams(pagination)));
198
+ const body = await request(ctx, `/v1/issues/${pathSegment(id)}/events`, { query: pagination });
197
199
  return body.events;
198
200
  },
199
201
  });
@@ -203,7 +205,7 @@ export function registerIssueActions(rl) {
203
205
  inputSchema: t.Object(eventListFields, STRICT_OBJECT),
204
206
  async execute(input, ctx) {
205
207
  const { id, ...pagination } = input;
206
- return request(ctx, withQuery(`/v1/issues/${pathSegment(id)}/events`, listParams(pagination)));
208
+ return request(ctx, `/v1/issues/${pathSegment(id)}/events`, { query: pagination });
207
209
  },
208
210
  });
209
211
  rl.registerAction("issue.dependency.list", {
@@ -215,7 +217,7 @@ export function registerIssueActions(rl) {
215
217
  }, STRICT_OBJECT),
216
218
  async execute(input, ctx) {
217
219
  const { id, ...pagination } = input;
218
- const body = await request(ctx, withQuery(`/v1/issues/${pathSegment(id)}/dependencies`, listParams(pagination)));
220
+ const body = await request(ctx, `/v1/issues/${pathSegment(id)}/dependencies`, { query: pagination });
219
221
  return body.dependencies;
220
222
  },
221
223
  });
@@ -229,7 +231,9 @@ export function registerIssueActions(rl) {
229
231
  }, STRICT_OBJECT),
230
232
  async execute(input, ctx) {
231
233
  const { id, ...pagination } = input;
232
- return request(ctx, withQuery(`/v1/issues/${pathSegment(id)}/dependencies`, listParams(pagination)));
234
+ return request(ctx, `/v1/issues/${pathSegment(id)}/dependencies`, {
235
+ query: pagination,
236
+ });
233
237
  },
234
238
  });
235
239
  rl.registerAction("issue.dependency.add", {
@@ -1,5 +1,5 @@
1
1
  import * as t from "typebox";
2
- import { cursorSchema, enumSchema, idSchema, listParams, PROJECT_STATUS, pathSegment, request, STRICT_OBJECT, STRICT_UPDATE_OBJECT, timestampSchema, } from "./shared.js";
2
+ import { cursorSchema, enumSchema, idSchema, PROJECT_STATUS, pathSegment, request, STRICT_OBJECT, STRICT_UPDATE_OBJECT, timestampSchema, } from "./shared.js";
3
3
  const projectListFields = {
4
4
  status: t.Optional(enumSchema("Project status", PROJECT_STATUS)),
5
5
  leadUserId: t.Optional(idSchema("Lead user ID")),
@@ -13,7 +13,7 @@ export function registerProjectActions(rl) {
13
13
  description: "List the first page of concrete Shift Labs Projects.",
14
14
  inputSchema: t.Object(projectListFields, STRICT_OBJECT),
15
15
  async execute(input, ctx) {
16
- const body = await request(ctx, `/v1/projects?${listParams(input)}`);
16
+ const body = await request(ctx, "/v1/projects", { query: input });
17
17
  return body.projects;
18
18
  },
19
19
  });
@@ -22,7 +22,7 @@ export function registerProjectActions(rl) {
22
22
  description: "List a cursor-paginated page of concrete Projects.",
23
23
  inputSchema: t.Object(projectListFields, STRICT_OBJECT),
24
24
  async execute(input, ctx) {
25
- return request(ctx, `/v1/projects?${listParams(input)}`);
25
+ return request(ctx, "/v1/projects", { query: input });
26
26
  },
27
27
  });
28
28
  rl.registerAction("project.get", {
@@ -1,4 +1,6 @@
1
- export { cursorSchema, enumDescription, enumSchema, idSchema, listParams, pathSegment, request, STRICT_OBJECT, STRICT_UPDATE_OBJECT, timestampSchema, withQuery, } from "../../_shared/shiftCloud.js";
1
+ import { shiftClient } from "../../_shared/shiftCredentials.js";
2
+ export { cursorSchema, enumDescription, enumSchema, idSchema, pathSegment, STRICT_OBJECT, STRICT_UPDATE_OBJECT, timestampSchema, } from "../../_shared/shiftCloud.js";
3
+ export const { credential: shiftWorkCredential, request } = shiftClient("shiftWork");
2
4
  export const ISSUE_STATUS = [
3
5
  "backlog",
4
6
  "todo",
@@ -0,0 +1,16 @@
1
+ import { hostLabel, staticCredential } from "../../_shared/credentials.js";
2
+ /**
3
+ * An Admin API access token, sent as the X-Shopify-Access-Token header to
4
+ * the store's own myshopify.com host beneath /admin/api/2024-07/.
5
+ */
6
+ export const shopifyCredential = staticCredential({
7
+ id: "shopify",
8
+ auth: { kind: "apiKey", header: "X-Shopify-Access-Token" },
9
+ local: { secret: "accessToken" },
10
+ targets: (config) => ({
11
+ api: {
12
+ baseUrl: `https://${hostLabel(config.shopSubdomain)}.myshopify.com/admin/api/2024-07/`,
13
+ methods: ["GET", "POST", "PUT", "DELETE"],
14
+ },
15
+ }),
16
+ });
@@ -1,64 +1,39 @@
1
- function getConn(ctx) {
2
- const c = ctx.connection.config;
3
- const subdomain = c.shopSubdomain;
4
- const base = `https://${subdomain}.myshopify.com/admin/api/2024-07`;
5
- return { base, accessToken: c.accessToken };
6
- }
7
- async function apiRequest(conn, method, endpoint, body, qs) {
8
- const url = new URL(`${conn.base}${endpoint}`);
9
- if (qs) {
10
- for (const [k, v] of Object.entries(qs)) {
11
- if (v !== undefined && v !== null)
12
- url.searchParams.set(k, String(v));
13
- }
14
- }
15
- const init = {
1
+ import { credentialJson, credentialOk, jsonAnswer, pathSegment, pathWithin, } from "../../_shared/credentials.js";
2
+ import { shopifyCredential } from "./credentials.js";
3
+ function apiRequest(ctx, method, path, body, qs) {
4
+ return credentialJson(ctx, shopifyCredential, "shopify", {
5
+ target: "api",
6
+ path,
16
7
  method,
17
- headers: {
18
- "X-Shopify-Access-Token": conn.accessToken,
19
- "Content-Type": "application/json",
20
- },
21
- };
22
- if (body !== undefined)
23
- init.body = JSON.stringify(body);
24
- const res = await fetch(url.toString(), init);
25
- if (!res.ok)
26
- throw new Error(`Shopify error ${res.status}: ${await res.text()}`);
27
- const text = await res.text();
28
- return text ? JSON.parse(text) : {};
8
+ query: qs,
9
+ ...(body !== undefined ? { json: body } : {}),
10
+ });
29
11
  }
30
- async function paginate(conn, propertyName, endpoint, qs = {}) {
12
+ async function paginate(ctx, propertyName, path, qs = {}) {
31
13
  const all = [];
32
- let nextUrl;
14
+ let nextPath;
33
15
  do {
34
- const url = nextUrl ?? `${conn.base}${endpoint}`;
35
- const u = new URL(url);
36
- if (!nextUrl && qs) {
37
- for (const [k, v] of Object.entries(qs)) {
38
- if (v !== undefined && v !== null)
39
- u.searchParams.set(k, String(v));
40
- }
41
- }
42
- const res = await fetch(u.toString(), {
43
- headers: { "X-Shopify-Access-Token": conn.accessToken },
16
+ const res = await credentialOk(ctx, shopifyCredential, "shopify", {
17
+ target: "api",
18
+ path: nextPath ?? path,
19
+ ...(nextPath === undefined ? { query: qs } : {}),
44
20
  });
45
- if (!res.ok)
46
- throw new Error(`Shopify error ${res.status}: ${await res.text()}`);
47
- const data = (await res.json());
21
+ const data = (await jsonAnswer(res));
48
22
  all.push(...(data[propertyName] ?? []));
49
- nextUrl = undefined;
23
+ nextPath = undefined;
50
24
  const link = res.headers.get("link") ?? "";
51
25
  if (link.includes('rel="next"')) {
52
26
  const match = link.match(/<([^>]+)>;\s*rel="next"/);
53
27
  if (match)
54
- nextUrl = match[1];
28
+ nextPath = pathWithin(ctx, shopifyCredential, "api", match[1]);
55
29
  }
56
- } while (nextUrl);
30
+ } while (nextPath);
57
31
  return all;
58
32
  }
59
33
  export default function shopify(rl) {
60
34
  rl.setName("shopify");
61
35
  rl.setVersion("0.1.0");
36
+ rl.setCredential(shopifyCredential);
62
37
  rl.setConnectionSchema({
63
38
  shopSubdomain: {
64
39
  type: "string",
@@ -104,7 +79,7 @@ export default function shopify(rl) {
104
79
  order.note = p.note;
105
80
  if (p.tags)
106
81
  order.tags = p.tags;
107
- const data = (await apiRequest(getConn(ctx), "POST", "/orders.json", {
82
+ const data = (await apiRequest(ctx, "POST", "orders.json", {
108
83
  order,
109
84
  }));
110
85
  return data.order;
@@ -122,7 +97,7 @@ export default function shopify(rl) {
122
97
  const qs = {};
123
98
  if (p.fields)
124
99
  qs.fields = p.fields;
125
- const data = (await apiRequest(getConn(ctx), "GET", `/orders/${p.orderId}.json`, undefined, qs));
100
+ const data = (await apiRequest(ctx, "GET", `orders/${pathSegment(p.orderId)}.json`, undefined, qs));
126
101
  return data.order;
127
102
  },
128
103
  });
@@ -141,7 +116,6 @@ export default function shopify(rl) {
141
116
  },
142
117
  async execute(input, ctx) {
143
118
  const p = (input ?? {});
144
- const conn = getConn(ctx);
145
119
  const qs = {};
146
120
  if (p.status)
147
121
  qs.status = p.status;
@@ -151,10 +125,10 @@ export default function shopify(rl) {
151
125
  qs.created_at_max = p.createdAtMax;
152
126
  if (p.limit) {
153
127
  qs.limit = p.limit;
154
- const d = (await apiRequest(conn, "GET", "/orders.json", undefined, qs));
128
+ const d = (await apiRequest(ctx, "GET", "orders.json", undefined, qs));
155
129
  return d.orders;
156
130
  }
157
- return paginate(conn, "orders", "/orders.json", qs);
131
+ return paginate(ctx, "orders", "orders.json", qs);
158
132
  },
159
133
  });
160
134
  rl.registerAction("order.update", {
@@ -175,7 +149,7 @@ export default function shopify(rl) {
175
149
  order.tags = p.tags;
176
150
  if (p.email)
177
151
  order.email = p.email;
178
- const data = (await apiRequest(getConn(ctx), "PUT", `/orders/${p.orderId}.json`, { order }));
152
+ const data = (await apiRequest(ctx, "PUT", `orders/${pathSegment(p.orderId)}.json`, { order }));
179
153
  return data.order;
180
154
  },
181
155
  });
@@ -184,7 +158,7 @@ export default function shopify(rl) {
184
158
  description: "Delete an order",
185
159
  inputSchema: { orderId: { type: "string", required: true } },
186
160
  async execute(input, ctx) {
187
- await apiRequest(getConn(ctx), "DELETE", `/orders/${input.orderId}.json`);
161
+ await apiRequest(ctx, "DELETE", `orders/${pathSegment(input.orderId)}.json`);
188
162
  return { success: true };
189
163
  },
190
164
  });
@@ -201,7 +175,7 @@ export default function shopify(rl) {
201
175
  },
202
176
  async execute(input, ctx) {
203
177
  const p = input;
204
- const data = (await apiRequest(getConn(ctx), "POST", "/products.json", {
178
+ const data = (await apiRequest(ctx, "POST", "products.json", {
205
179
  product: p,
206
180
  }));
207
181
  return data.product;
@@ -219,7 +193,7 @@ export default function shopify(rl) {
219
193
  const qs = {};
220
194
  if (p.fields)
221
195
  qs.fields = p.fields;
222
- const data = (await apiRequest(getConn(ctx), "GET", `/products/${p.productId}.json`, undefined, qs));
196
+ const data = (await apiRequest(ctx, "GET", `products/${pathSegment(p.productId)}.json`, undefined, qs));
223
197
  return data.product;
224
198
  },
225
199
  });
@@ -232,16 +206,15 @@ export default function shopify(rl) {
232
206
  },
233
207
  async execute(input, ctx) {
234
208
  const p = (input ?? {});
235
- const conn = getConn(ctx);
236
209
  const qs = {};
237
210
  if (p.title)
238
211
  qs.title = p.title;
239
212
  if (p.limit) {
240
213
  qs.limit = p.limit;
241
- const d = (await apiRequest(conn, "GET", "/products.json", undefined, qs));
214
+ const d = (await apiRequest(ctx, "GET", "products.json", undefined, qs));
242
215
  return d.products;
243
216
  }
244
- return paginate(conn, "products", "/products.json", qs);
217
+ return paginate(ctx, "products", "products.json", qs);
245
218
  },
246
219
  });
247
220
  rl.registerAction("product.update", {
@@ -257,7 +230,7 @@ export default function shopify(rl) {
257
230
  async execute(input, ctx) {
258
231
  const p = input;
259
232
  const { productId, ...fields } = p;
260
- const data = (await apiRequest(getConn(ctx), "PUT", `/products/${productId}.json`, { product: fields }));
233
+ const data = (await apiRequest(ctx, "PUT", `products/${pathSegment(productId)}.json`, { product: fields }));
261
234
  return data.product;
262
235
  },
263
236
  });
@@ -266,7 +239,7 @@ export default function shopify(rl) {
266
239
  description: "Delete a product",
267
240
  inputSchema: { productId: { type: "string", required: true } },
268
241
  async execute(input, ctx) {
269
- await apiRequest(getConn(ctx), "DELETE", `/products/${input.productId}.json`);
242
+ await apiRequest(ctx, "DELETE", `products/${pathSegment(input.productId)}.json`);
270
243
  return { success: true };
271
244
  },
272
245
  });
@@ -0,0 +1,17 @@
1
+ import { staticCredential } from "../../_shared/credentials.js";
2
+ /** The team secret, which SIGNL4 takes as the webhook's path segment. */
3
+ export const signl4Credential = staticCredential({
4
+ id: "signl4",
5
+ auth: {
6
+ kind: "static",
7
+ parts: ["teamSecret"],
8
+ placements: [{ in: "path", part: "teamSecret" }],
9
+ },
10
+ local: { teamSecret: "teamSecret" },
11
+ targets: {
12
+ webhook: {
13
+ baseUrl: "https://connect.signl4.com/webhook/",
14
+ methods: ["POST"],
15
+ },
16
+ },
17
+ });
@@ -1,6 +1,18 @@
1
+ import { credentialJson } from "../../_shared/credentials.js";
2
+ import { signl4Credential } from "./credentials.js";
3
+ /** One alert event, posted as a form to the team's webhook. */
4
+ function send(ctx, form) {
5
+ return credentialJson(ctx, signl4Credential, "signl4", {
6
+ target: "webhook",
7
+ path: "",
8
+ method: "POST",
9
+ form: { ...form, "X-S4-SourceSystem": "runline" },
10
+ });
11
+ }
1
12
  export default function signl4(rl) {
2
13
  rl.setName("signl4");
3
14
  rl.setVersion("0.1.0");
15
+ rl.setCredential(signl4Credential);
4
16
  rl.setConnectionSchema({
5
17
  teamSecret: {
6
18
  type: "string",
@@ -9,7 +21,6 @@ export default function signl4(rl) {
9
21
  env: "SIGNL4_TEAM_SECRET",
10
22
  },
11
23
  });
12
- const url = (ctx) => `https://connect.signl4.com/webhook/${ctx.connection.config.teamSecret}`;
13
24
  rl.registerAction("alert.send", {
14
25
  access: "write",
15
26
  description: "Send a SIGNL4 alert",
@@ -33,26 +44,18 @@ export default function signl4(rl) {
33
44
  },
34
45
  async execute(input, ctx) {
35
46
  const p = (input ?? {});
36
- const form = new URLSearchParams();
37
- form.set("message", p.message);
38
- form.set("X-S4-Status", "new");
39
- form.set("X-S4-SourceSystem", "runline");
40
- if (p.title)
41
- form.set("title", p.title);
42
- if (p.service)
43
- form.set("service", p.service);
44
- if (p.externalId)
45
- form.set("X-S4-ExternalID", p.externalId);
46
- if (p.alertingScenario)
47
- form.set("X-S4-AlertingScenario", p.alertingScenario);
48
- if (p.latitude && p.longitude)
49
- form.set("X-S4-Location", `${p.latitude},${p.longitude}`);
50
- if (p.filtering !== undefined)
51
- form.set("X-S4-Filtering", String(p.filtering));
52
- const res = await fetch(url(ctx), { method: "POST", body: form });
53
- if (!res.ok)
54
- throw new Error(`SIGNL4 error ${res.status}: ${await res.text()}`);
55
- return res.json();
47
+ return send(ctx, {
48
+ message: p.message,
49
+ "X-S4-Status": "new",
50
+ title: p.title || undefined,
51
+ service: p.service || undefined,
52
+ "X-S4-ExternalID": p.externalId || undefined,
53
+ "X-S4-AlertingScenario": p.alertingScenario || undefined,
54
+ "X-S4-Location": p.latitude && p.longitude
55
+ ? `${p.latitude},${p.longitude}`
56
+ : undefined,
57
+ "X-S4-Filtering": p.filtering,
58
+ });
56
59
  },
57
60
  });
58
61
  rl.registerAction("alert.resolve", {
@@ -63,14 +66,10 @@ export default function signl4(rl) {
63
66
  },
64
67
  async execute(input, ctx) {
65
68
  const { externalId } = input;
66
- const form = new URLSearchParams();
67
- form.set("X-S4-ExternalID", externalId);
68
- form.set("X-S4-Status", "resolved");
69
- form.set("X-S4-SourceSystem", "runline");
70
- const res = await fetch(url(ctx), { method: "POST", body: form });
71
- if (!res.ok)
72
- throw new Error(`SIGNL4 error ${res.status}: ${await res.text()}`);
73
- return res.json();
69
+ return send(ctx, {
70
+ "X-S4-ExternalID": externalId,
71
+ "X-S4-Status": "resolved",
72
+ });
74
73
  },
75
74
  });
76
75
  }
@@ -0,0 +1,19 @@
1
+ import { staticCredential } from "../../_shared/credentials.js";
2
+ /** A bot or user token, sent as a bearer to Slack's one API origin. */
3
+ export const slackCredential = staticCredential({
4
+ id: "slack",
5
+ auth: { kind: "bearer" },
6
+ local: { secret: "accessToken" },
7
+ targets: {
8
+ api: {
9
+ baseUrl: "https://slack.com/api/",
10
+ methods: ["GET", "POST"],
11
+ },
12
+ },
13
+ probe: {
14
+ target: "api",
15
+ path: "auth.test",
16
+ method: "GET",
17
+ acceptedStatuses: [200],
18
+ },
19
+ });