runline 0.32.0 → 0.34.0

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