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,29 +1,20 @@
1
- const BASE_URL = "https://public-api.lonescale.com";
2
- async function apiRequest(apiKey, method, endpoint, body, qs) {
3
- const url = new URL(`${BASE_URL}${endpoint}`);
4
- if (qs) {
5
- for (const [k, v] of Object.entries(qs)) {
6
- if (v !== undefined && v !== null)
7
- url.searchParams.set(k, String(v));
8
- }
9
- }
10
- const opts = {
1
+ import { credentialJson, pathSegment } from "../../_shared/credentials.js";
2
+ import { lonescaleCredential } from "./credentials.js";
3
+ function apiRequest(ctx, method, path, body, query) {
4
+ return credentialJson(ctx, lonescaleCredential, "lonescale", {
5
+ target: "api",
6
+ path,
11
7
  method,
12
- headers: { "X-API-KEY": apiKey, "Content-Type": "application/json" },
13
- };
14
- if (body &&
15
- Object.keys(body).length > 0 &&
16
- method !== "GET" &&
17
- method !== "DELETE")
18
- opts.body = JSON.stringify(body);
19
- const res = await fetch(url.toString(), opts);
20
- if (!res.ok)
21
- throw new Error(`LoneScale API error ${res.status}: ${await res.text()}`);
22
- return res.json();
8
+ query,
9
+ ...(body && Object.keys(body).length > 0 && method !== "GET"
10
+ ? { json: body }
11
+ : {}),
12
+ });
23
13
  }
24
14
  export default function lonescale(rl) {
25
15
  rl.setName("lonescale");
26
16
  rl.setVersion("0.1.0");
17
+ rl.setCredential(lonescaleCredential);
27
18
  rl.setConnectionSchema({
28
19
  apiKey: {
29
20
  type: "string",
@@ -32,7 +23,6 @@ export default function lonescale(rl) {
32
23
  env: "LONESCALE_API_KEY",
33
24
  },
34
25
  });
35
- const key = (ctx) => ctx.connection.config.apiKey;
36
26
  rl.registerAction("list.create", {
37
27
  access: "write",
38
28
  description: "Create a new list",
@@ -46,7 +36,7 @@ export default function lonescale(rl) {
46
36
  },
47
37
  async execute(input, ctx) {
48
38
  const { name, entity } = input;
49
- return apiRequest(key(ctx), "POST", "/lists", { name, entity });
39
+ return apiRequest(ctx, "POST", "lists", { name, entity });
50
40
  },
51
41
  });
52
42
  rl.registerAction("list.list", {
@@ -64,7 +54,7 @@ export default function lonescale(rl) {
64
54
  const qs = {};
65
55
  if (entity)
66
56
  qs.entity = entity;
67
- return apiRequest(key(ctx), "GET", "/lists", undefined, qs);
57
+ return apiRequest(ctx, "GET", "lists", undefined, qs);
68
58
  },
69
59
  });
70
60
  rl.registerAction("item.addPerson", {
@@ -114,7 +104,7 @@ export default function lonescale(rl) {
114
104
  body.location = location;
115
105
  if (contactId)
116
106
  body.contact_id = contactId;
117
- return apiRequest(key(ctx), "POST", `/lists/${listId}/item`, body);
107
+ return apiRequest(ctx, "POST", `lists/${pathSegment(listId)}/item`, body);
118
108
  },
119
109
  });
120
110
  rl.registerAction("item.addCompany", {
@@ -149,7 +139,7 @@ export default function lonescale(rl) {
149
139
  body.location = location;
150
140
  if (contactId)
151
141
  body.contact_id = contactId;
152
- return apiRequest(key(ctx), "POST", `/lists/${listId}/item`, body);
142
+ return apiRequest(ctx, "POST", `lists/${pathSegment(listId)}/item`, body);
153
143
  },
154
144
  });
155
145
  }
@@ -0,0 +1,16 @@
1
+ import { httpsBase, staticCredential } from "../../_shared/credentials.js";
2
+ /**
3
+ * An integration access token, sent as a bearer to the connection's own
4
+ * Magento store beneath /rest/.
5
+ */
6
+ export const magentoCredential = staticCredential({
7
+ id: "magento",
8
+ auth: { kind: "bearer" },
9
+ local: { secret: "accessToken" },
10
+ targets: (config) => ({
11
+ api: {
12
+ baseUrl: httpsBase(config.host, "rest/"),
13
+ methods: ["GET", "POST", "PUT", "DELETE"],
14
+ },
15
+ }),
16
+ });
@@ -1,57 +1,48 @@
1
- async function apiRequest(host, token, method, endpoint, body, qs) {
2
- const url = new URL(`${host}${endpoint}`);
3
- if (qs) {
4
- // Magento uses nested query params like search_criteria[page_size]=10
5
- function flatten(obj, prefix = "") {
6
- if (obj && typeof obj === "object" && !Array.isArray(obj)) {
7
- for (const [k, v] of Object.entries(obj)) {
8
- flatten(v, prefix ? `${prefix}[${k}]` : k);
9
- }
1
+ import { credentialJson, pathSegment } from "../../_shared/credentials.js";
2
+ import { magentoCredential } from "./credentials.js";
3
+ /** Magento uses nested query params like search_criteria[page_size]=10. */
4
+ function flattenQuery(qs) {
5
+ const flat = {};
6
+ function flatten(obj, prefix = "") {
7
+ if (obj && typeof obj === "object" && !Array.isArray(obj)) {
8
+ for (const [k, v] of Object.entries(obj)) {
9
+ flatten(v, prefix ? `${prefix}[${k}]` : k);
10
10
  }
11
- else if (Array.isArray(obj)) {
12
- for (let i = 0; i < obj.length; i++) {
13
- flatten(obj[i], `${prefix}[${i}]`);
14
- }
15
- }
16
- else if (obj !== undefined && obj !== null) {
17
- url.searchParams.set(prefix, String(obj));
11
+ }
12
+ else if (Array.isArray(obj)) {
13
+ for (let i = 0; i < obj.length; i++) {
14
+ flatten(obj[i], `${prefix}[${i}]`);
18
15
  }
19
16
  }
20
- flatten(qs);
17
+ else if (obj !== undefined && obj !== null) {
18
+ flat[prefix] = String(obj);
19
+ }
21
20
  }
22
- const opts = {
21
+ flatten(qs);
22
+ return flat;
23
+ }
24
+ function api(ctx, method, path, body, qs) {
25
+ return credentialJson(ctx, magentoCredential, "magento", {
26
+ target: "api",
27
+ path,
23
28
  method,
24
- headers: {
25
- Authorization: `Bearer ${token}`,
26
- "Content-Type": "application/json",
27
- },
28
- };
29
- if (body &&
30
- Object.keys(body).length > 0 &&
31
- method !== "GET" &&
32
- method !== "DELETE")
33
- opts.body = JSON.stringify(body);
34
- const res = await fetch(url.toString(), opts);
35
- if (!res.ok)
36
- throw new Error(`Magento API error ${res.status}: ${await res.text()}`);
37
- if (res.status === 204)
38
- return { success: true };
39
- const text = await res.text();
40
- try {
41
- return JSON.parse(text);
42
- }
43
- catch {
44
- return text;
45
- }
29
+ query: qs ? flattenQuery(qs) : undefined,
30
+ ...(body &&
31
+ Object.keys(body).length > 0 &&
32
+ method !== "GET" &&
33
+ method !== "DELETE"
34
+ ? { json: body }
35
+ : {}),
36
+ });
46
37
  }
47
- async function searchAll(host, token, endpoint, searchCriteria = {}) {
38
+ async function searchAll(ctx, endpoint, searchCriteria = {}) {
48
39
  const all = [];
49
40
  searchCriteria.page_size = 100;
50
41
  let currentPage = 1;
51
42
  let totalCount = Infinity;
52
43
  while (all.length < totalCount) {
53
44
  searchCriteria.current_page = currentPage;
54
- const data = (await apiRequest(host, token, "GET", endpoint, undefined, {
45
+ const data = (await api(ctx, "GET", endpoint, undefined, {
55
46
  search_criteria: searchCriteria,
56
47
  }));
57
48
  totalCount = data.total_count ?? 0;
@@ -67,6 +58,7 @@ async function searchAll(host, token, endpoint, searchCriteria = {}) {
67
58
  export default function magento(rl) {
68
59
  rl.setName("magento");
69
60
  rl.setVersion("0.1.0");
61
+ rl.setCredential(magentoCredential);
70
62
  rl.setConnectionSchema({
71
63
  host: {
72
64
  type: "string",
@@ -81,10 +73,6 @@ export default function magento(rl) {
81
73
  env: "MAGENTO_ACCESS_TOKEN",
82
74
  },
83
75
  });
84
- const conn = (ctx) => ({
85
- host: ctx.connection.config.host.replace(/\/$/, ""),
86
- token: ctx.connection.config.accessToken,
87
- });
88
76
  // ── Customer ────────────────────────────────────────
89
77
  rl.registerAction("customer.create", {
90
78
  access: "write",
@@ -112,7 +100,6 @@ export default function magento(rl) {
112
100
  },
113
101
  async execute(input, ctx) {
114
102
  const { email, firstname, lastname, password, addresses, customAttributes, additionalFields, } = input;
115
- const { host, token } = conn(ctx);
116
103
  const customer = { email, firstname, lastname };
117
104
  if (addresses && Array.isArray(addresses)) {
118
105
  customer.addresses = addresses.map((a) => ({
@@ -127,7 +114,7 @@ export default function magento(rl) {
127
114
  const body = { customer };
128
115
  if (password)
129
116
  body.password = password;
130
- return apiRequest(host, token, "POST", "/rest/V1/customers", body);
117
+ return api(ctx, "POST", "V1/customers", body);
131
118
  },
132
119
  });
133
120
  rl.registerAction("customer.get", {
@@ -135,8 +122,7 @@ export default function magento(rl) {
135
122
  description: "Get a customer by ID",
136
123
  inputSchema: { customerId: { type: "number", required: true } },
137
124
  async execute(input, ctx) {
138
- const { host, token } = conn(ctx);
139
- return apiRequest(host, token, "GET", `/rest/default/V1/customers/${input.customerId}`);
125
+ return api(ctx, "GET", `default/V1/customers/${pathSegment(input.customerId)}`);
140
126
  },
141
127
  });
142
128
  rl.registerAction("customer.list", {
@@ -156,16 +142,15 @@ export default function magento(rl) {
156
142
  },
157
143
  async execute(input, ctx) {
158
144
  const { searchCriteria, limit } = (input ?? {});
159
- const { host, token } = conn(ctx);
160
145
  if (searchCriteria) {
161
- const data = (await apiRequest(host, token, "GET", "/rest/default/V1/customers/search", undefined, { search_criteria: searchCriteria }));
146
+ const data = (await api(ctx, "GET", "default/V1/customers/search", undefined, { search_criteria: searchCriteria }));
162
147
  return data.items;
163
148
  }
164
149
  if (limit) {
165
- const data = (await apiRequest(host, token, "GET", "/rest/default/V1/customers/search", undefined, { search_criteria: { page_size: limit } }));
150
+ const data = (await api(ctx, "GET", "default/V1/customers/search", undefined, { search_criteria: { page_size: limit } }));
166
151
  return data.items;
167
152
  }
168
- return searchAll(host, token, "/rest/default/V1/customers/search");
153
+ return searchAll(ctx, "default/V1/customers/search");
169
154
  },
170
155
  });
171
156
  rl.registerAction("customer.update", {
@@ -186,7 +171,6 @@ export default function magento(rl) {
186
171
  },
187
172
  async execute(input, ctx) {
188
173
  const { customerId, email, firstname, lastname, updateFields, addresses, customAttributes, } = input;
189
- const { host, token } = conn(ctx);
190
174
  const customer = {
191
175
  email,
192
176
  firstname,
@@ -204,7 +188,9 @@ export default function magento(rl) {
204
188
  customer.custom_attributes = customAttributes;
205
189
  if (updateFields)
206
190
  Object.assign(customer, updateFields);
207
- return apiRequest(host, token, "PUT", `/rest/V1/customers/${customerId}`, { customer });
191
+ return api(ctx, "PUT", `V1/customers/${pathSegment(customerId)}`, {
192
+ customer,
193
+ });
208
194
  },
209
195
  });
210
196
  rl.registerAction("customer.delete", {
@@ -212,8 +198,7 @@ export default function magento(rl) {
212
198
  description: "Delete a customer",
213
199
  inputSchema: { customerId: { type: "number", required: true } },
214
200
  async execute(input, ctx) {
215
- const { host, token } = conn(ctx);
216
- await apiRequest(host, token, "DELETE", `/rest/default/V1/customers/${input.customerId}`);
201
+ await api(ctx, "DELETE", `default/V1/customers/${pathSegment(input.customerId)}`);
217
202
  return { success: true };
218
203
  },
219
204
  });
@@ -223,8 +208,7 @@ export default function magento(rl) {
223
208
  description: "Create an invoice for an order",
224
209
  inputSchema: { orderId: { type: "number", required: true } },
225
210
  async execute(input, ctx) {
226
- const { host, token } = conn(ctx);
227
- await apiRequest(host, token, "POST", `/rest/default/V1/order/${input.orderId}/invoice`);
211
+ await api(ctx, "POST", `default/V1/order/${pathSegment(input.orderId)}/invoice`);
228
212
  return { success: true };
229
213
  },
230
214
  });
@@ -234,8 +218,7 @@ export default function magento(rl) {
234
218
  description: "Get an order by ID",
235
219
  inputSchema: { orderId: { type: "number", required: true } },
236
220
  async execute(input, ctx) {
237
- const { host, token } = conn(ctx);
238
- return apiRequest(host, token, "GET", `/rest/default/V1/orders/${input.orderId}`);
221
+ return api(ctx, "GET", `default/V1/orders/${pathSegment(input.orderId)}`);
239
222
  },
240
223
  });
241
224
  rl.registerAction("order.list", {
@@ -251,16 +234,19 @@ export default function magento(rl) {
251
234
  },
252
235
  async execute(input, ctx) {
253
236
  const { searchCriteria, limit } = (input ?? {});
254
- const { host, token } = conn(ctx);
255
237
  if (searchCriteria) {
256
- const data = (await apiRequest(host, token, "GET", "/rest/default/V1/orders", undefined, { search_criteria: searchCriteria }));
238
+ const data = (await api(ctx, "GET", "default/V1/orders", undefined, {
239
+ search_criteria: searchCriteria,
240
+ }));
257
241
  return data.items;
258
242
  }
259
243
  if (limit) {
260
- const data = (await apiRequest(host, token, "GET", "/rest/default/V1/orders", undefined, { search_criteria: { page_size: limit } }));
244
+ const data = (await api(ctx, "GET", "default/V1/orders", undefined, {
245
+ search_criteria: { page_size: limit },
246
+ }));
261
247
  return data.items;
262
248
  }
263
- return searchAll(host, token, "/rest/default/V1/orders");
249
+ return searchAll(ctx, "default/V1/orders");
264
250
  },
265
251
  });
266
252
  rl.registerAction("order.cancel", {
@@ -268,8 +254,7 @@ export default function magento(rl) {
268
254
  description: "Cancel an order",
269
255
  inputSchema: { orderId: { type: "number", required: true } },
270
256
  async execute(input, ctx) {
271
- const { host, token } = conn(ctx);
272
- await apiRequest(host, token, "POST", `/rest/default/V1/orders/${input.orderId}/cancel`);
257
+ await api(ctx, "POST", `default/V1/orders/${pathSegment(input.orderId)}/cancel`);
273
258
  return { success: true };
274
259
  },
275
260
  });
@@ -278,8 +263,7 @@ export default function magento(rl) {
278
263
  description: "Ship an order",
279
264
  inputSchema: { orderId: { type: "number", required: true } },
280
265
  async execute(input, ctx) {
281
- const { host, token } = conn(ctx);
282
- await apiRequest(host, token, "POST", `/rest/default/V1/order/${input.orderId}/ship`);
266
+ await api(ctx, "POST", `default/V1/order/${pathSegment(input.orderId)}/ship`);
283
267
  return { success: true };
284
268
  },
285
269
  });
@@ -305,7 +289,6 @@ export default function magento(rl) {
305
289
  },
306
290
  async execute(input, ctx) {
307
291
  const { sku, name, attributeSetId, price, additionalFields, customAttributes, } = input;
308
- const { host, token } = conn(ctx);
309
292
  const product = {
310
293
  sku,
311
294
  name,
@@ -316,9 +299,7 @@ export default function magento(rl) {
316
299
  product.custom_attributes = customAttributes;
317
300
  if (additionalFields)
318
301
  Object.assign(product, additionalFields);
319
- return apiRequest(host, token, "POST", "/rest/default/V1/products", {
320
- product,
321
- });
302
+ return api(ctx, "POST", "default/V1/products", { product });
322
303
  },
323
304
  });
324
305
  rl.registerAction("product.get", {
@@ -326,8 +307,7 @@ export default function magento(rl) {
326
307
  description: "Get a product by SKU",
327
308
  inputSchema: { sku: { type: "string", required: true } },
328
309
  async execute(input, ctx) {
329
- const { host, token } = conn(ctx);
330
- return apiRequest(host, token, "GET", `/rest/default/V1/products/${encodeURIComponent(input.sku)}`);
310
+ return api(ctx, "GET", `default/V1/products/${pathSegment(input.sku)}`);
331
311
  },
332
312
  });
333
313
  rl.registerAction("product.list", {
@@ -339,16 +319,19 @@ export default function magento(rl) {
339
319
  },
340
320
  async execute(input, ctx) {
341
321
  const { searchCriteria, limit } = (input ?? {});
342
- const { host, token } = conn(ctx);
343
322
  if (searchCriteria) {
344
- const data = (await apiRequest(host, token, "GET", "/rest/default/V1/products", undefined, { search_criteria: searchCriteria }));
323
+ const data = (await api(ctx, "GET", "default/V1/products", undefined, {
324
+ search_criteria: searchCriteria,
325
+ }));
345
326
  return data.items;
346
327
  }
347
328
  if (limit) {
348
- const data = (await apiRequest(host, token, "GET", "/rest/default/V1/products", undefined, { search_criteria: { page_size: limit } }));
329
+ const data = (await api(ctx, "GET", "default/V1/products", undefined, {
330
+ search_criteria: { page_size: limit },
331
+ }));
349
332
  return data.items;
350
333
  }
351
- return searchAll(host, token, "/rest/default/V1/products");
334
+ return searchAll(ctx, "default/V1/products");
352
335
  },
353
336
  });
354
337
  rl.registerAction("product.update", {
@@ -365,12 +348,13 @@ export default function magento(rl) {
365
348
  },
366
349
  async execute(input, ctx) {
367
350
  const { sku, updateFields, customAttributes } = input;
368
- const { host, token } = conn(ctx);
369
351
  const product = { sku };
370
352
  if (customAttributes)
371
353
  product.custom_attributes = customAttributes;
372
354
  Object.assign(product, updateFields);
373
- return apiRequest(host, token, "PUT", `/rest/default/V1/products/${encodeURIComponent(sku)}`, { product });
355
+ return api(ctx, "PUT", `default/V1/products/${pathSegment(sku)}`, {
356
+ product,
357
+ });
374
358
  },
375
359
  });
376
360
  rl.registerAction("product.delete", {
@@ -378,8 +362,7 @@ export default function magento(rl) {
378
362
  description: "Delete a product by SKU",
379
363
  inputSchema: { sku: { type: "string", required: true } },
380
364
  async execute(input, ctx) {
381
- const { host, token } = conn(ctx);
382
- await apiRequest(host, token, "DELETE", `/rest/default/V1/products/${encodeURIComponent(input.sku)}`);
365
+ await api(ctx, "DELETE", `default/V1/products/${pathSegment(input.sku)}`);
383
366
  return { success: true };
384
367
  },
385
368
  });
@@ -0,0 +1,17 @@
1
+ import { staticCredential } from "../../_shared/credentials.js";
2
+ /**
3
+ * An API key, sent as a bearer to Mailcheck's one API origin. The target is
4
+ * the origin, not /v1/, so the `singleEmail:check` custom-method segment
5
+ * sits second in the request path, clear of the leading-segment scheme check.
6
+ */
7
+ export const mailcheckCredential = staticCredential({
8
+ id: "mailcheck",
9
+ auth: { kind: "bearer" },
10
+ local: { secret: "apiKey" },
11
+ targets: {
12
+ api: {
13
+ baseUrl: "https://api.mailcheck.co/",
14
+ methods: ["POST"],
15
+ },
16
+ },
17
+ });
@@ -1,6 +1,9 @@
1
+ import { credentialJson } from "../../_shared/credentials.js";
2
+ import { mailcheckCredential } from "./credentials.js";
1
3
  export default function mailcheck(rl) {
2
4
  rl.setName("mailcheck");
3
5
  rl.setVersion("0.1.0");
6
+ rl.setCredential(mailcheckCredential);
4
7
  rl.setConnectionSchema({
5
8
  apiKey: {
6
9
  type: "string",
@@ -21,17 +24,12 @@ export default function mailcheck(rl) {
21
24
  },
22
25
  async execute(input, ctx) {
23
26
  const { email } = input;
24
- const res = await fetch("https://api.mailcheck.co/v1/singleEmail:check", {
27
+ return credentialJson(ctx, mailcheckCredential, "mailcheck", {
28
+ target: "api",
29
+ path: "v1/singleEmail:check",
25
30
  method: "POST",
26
- headers: {
27
- Authorization: `Bearer ${ctx.connection.config.apiKey}`,
28
- "Content-Type": "application/json",
29
- },
30
- body: JSON.stringify({ email }),
31
+ json: { email },
31
32
  });
32
- if (!res.ok)
33
- throw new Error(`Mailcheck API error ${res.status}: ${await res.text()}`);
34
- return res.json();
35
33
  },
36
34
  });
37
35
  }
@@ -0,0 +1,32 @@
1
+ import { hostLabel, staticCredential } from "../../_shared/credentials.js";
2
+ /**
3
+ * The API key as the Basic password (Mailchimp ignores the username), on
4
+ * the account's own datacenter host. The datacenter is the public
5
+ * `server` config field when set, else the key's own `-dc` suffix — so
6
+ * flat CLI configs keep working unchanged, and a secret-free brokered
7
+ * config selects its host from `server`. With neither, hostLabel refuses
8
+ * the connection as invalid_credentials.
9
+ */
10
+ export const mailchimpCredential = staticCredential({
11
+ id: "mailchimp",
12
+ auth: { kind: "basic" },
13
+ local: { username: { value: "anystring" }, password: "apiKey" },
14
+ targets: (config) => {
15
+ const server = config.server ??
16
+ (typeof config.apiKey === "string"
17
+ ? config.apiKey.split("-").pop()
18
+ : undefined);
19
+ return {
20
+ api: {
21
+ baseUrl: `https://${hostLabel(server)}.api.mailchimp.com/3.0/`,
22
+ methods: ["GET", "POST", "PUT", "DELETE"],
23
+ },
24
+ };
25
+ },
26
+ probe: {
27
+ target: "api",
28
+ path: "ping",
29
+ method: "GET",
30
+ acceptedStatuses: [200],
31
+ },
32
+ });