runline 0.33.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 (515) 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 +19 -55
  28. package/dist/plugins/_shared/shiftCredentials.js +83 -0
  29. package/dist/plugins/actionNetwork/src/credentials.js +14 -0
  30. package/dist/plugins/actionNetwork/src/index.js +39 -50
  31. package/dist/plugins/activeCampaign/src/credentials.js +22 -0
  32. package/dist/plugins/activeCampaign/src/index.js +61 -132
  33. package/dist/plugins/adalo/src/credentials.js +16 -0
  34. package/dist/plugins/adalo/src/index.js +19 -43
  35. package/dist/plugins/affinity/src/credentials.js +19 -0
  36. package/dist/plugins/affinity/src/index.js +29 -54
  37. package/dist/plugins/agileCrm/src/credentials.js +16 -0
  38. package/dist/plugins/agileCrm/src/index.js +46 -112
  39. package/dist/plugins/airtable/src/credentials.js +19 -0
  40. package/dist/plugins/airtable/src/index.js +37 -50
  41. package/dist/plugins/airtop/src/credentials.js +20 -0
  42. package/dist/plugins/airtop/src/index.js +51 -75
  43. package/dist/plugins/apiTemplateIo/src/credentials.js +19 -0
  44. package/dist/plugins/apiTemplateIo/src/index.js +14 -31
  45. package/dist/plugins/asana/src/credentials.js +19 -0
  46. package/dist/plugins/asana/src/index.js +51 -72
  47. package/dist/plugins/autopilot/src/credentials.js +19 -0
  48. package/dist/plugins/autopilot/src/index.js +38 -45
  49. package/dist/plugins/bambooHr/src/credentials.js +16 -0
  50. package/dist/plugins/bambooHr/src/index.js +41 -67
  51. package/dist/plugins/bannerbear/src/credentials.js +19 -0
  52. package/dist/plugins/bannerbear/src/index.js +15 -27
  53. package/dist/plugins/baserow/src/credentials.js +17 -0
  54. package/dist/plugins/baserow/src/index.js +23 -49
  55. package/dist/plugins/beeminder/src/credentials.js +19 -0
  56. package/dist/plugins/beeminder/src/index.js +32 -54
  57. package/dist/plugins/bitly/src/credentials.js +19 -0
  58. package/dist/plugins/bitly/src/index.js +12 -26
  59. package/dist/plugins/bitwarden/src/credentials.js +62 -0
  60. package/dist/plugins/bitwarden/src/index.js +34 -80
  61. package/dist/plugins/box/src/credentials.js +19 -0
  62. package/dist/plugins/box/src/index.js +24 -49
  63. package/dist/plugins/brandfetch/src/credentials.js +13 -0
  64. package/dist/plugins/brandfetch/src/index.js +12 -17
  65. package/dist/plugins/brevo/src/credentials.js +19 -0
  66. package/dist/plugins/brevo/src/index.js +30 -51
  67. package/dist/plugins/bubble/src/credentials.js +28 -0
  68. package/dist/plugins/bubble/src/index.js +29 -65
  69. package/dist/plugins/chargebee/src/credentials.js +16 -0
  70. package/dist/plugins/chargebee/src/index.js +15 -45
  71. package/dist/plugins/circleci/src/credentials.js +19 -0
  72. package/dist/plugins/circleci/src/index.js +19 -39
  73. package/dist/plugins/ciscoWebex/src/credentials.js +19 -0
  74. package/dist/plugins/ciscoWebex/src/index.js +43 -61
  75. package/dist/plugins/clearbit/src/credentials.js +22 -0
  76. package/dist/plugins/clearbit/src/index.js +11 -21
  77. package/dist/plugins/clickup/src/credentials.js +19 -0
  78. package/dist/plugins/clickup/src/index.js +85 -117
  79. package/dist/plugins/clockify/src/credentials.js +19 -0
  80. package/dist/plugins/clockify/src/index.js +46 -61
  81. package/dist/plugins/cloudflare/src/credentials.js +19 -0
  82. package/dist/plugins/cloudflare/src/index.js +19 -34
  83. package/dist/plugins/cockpit/src/credentials.js +17 -0
  84. package/dist/plugins/cockpit/src/index.js +18 -31
  85. package/dist/plugins/coda/src/credentials.js +19 -0
  86. package/dist/plugins/coda/src/index.js +33 -50
  87. package/dist/plugins/coingecko/src/credentials.js +20 -0
  88. package/dist/plugins/coingecko/src/index.js +24 -34
  89. package/dist/plugins/contentful/src/credentials.js +26 -0
  90. package/dist/plugins/contentful/src/index.js +19 -40
  91. package/dist/plugins/convertkit/src/credentials.js +26 -0
  92. package/dist/plugins/convertkit/src/index.js +27 -45
  93. package/dist/plugins/copper/src/credentials.js +17 -0
  94. package/dist/plugins/copper/src/index.js +25 -47
  95. package/dist/plugins/cortex/src/credentials.js +28 -0
  96. package/dist/plugins/cortex/src/index.js +26 -49
  97. package/dist/plugins/currents/src/credentials.js +19 -0
  98. package/dist/plugins/currents/src/index.js +46 -59
  99. package/dist/plugins/customerIo/src/credentials.js +52 -0
  100. package/dist/plugins/customerIo/src/index.js +30 -58
  101. package/dist/plugins/databricks/src/credentials.js +13 -0
  102. package/dist/plugins/databricks/src/index.js +51 -103
  103. package/dist/plugins/deepl/src/credentials.js +19 -0
  104. package/dist/plugins/deepl/src/index.js +13 -39
  105. package/dist/plugins/demio/src/credentials.js +26 -0
  106. package/dist/plugins/demio/src/index.js +17 -41
  107. package/dist/plugins/dhl/src/credentials.js +13 -0
  108. package/dist/plugins/dhl/src/index.js +8 -19
  109. package/dist/plugins/discord/src/credentials.js +19 -0
  110. package/dist/plugins/discord/src/index.js +30 -58
  111. package/dist/plugins/discourse/src/credentials.js +18 -0
  112. package/dist/plugins/discourse/src/index.js +36 -53
  113. package/dist/plugins/disqus/src/credentials.js +13 -0
  114. package/dist/plugins/disqus/src/index.js +14 -32
  115. package/dist/plugins/drift/src/credentials.js +13 -0
  116. package/dist/plugins/drift/src/index.js +16 -26
  117. package/dist/plugins/dropbox/src/credentials.js +13 -0
  118. package/dist/plugins/dropbox/src/index.js +23 -30
  119. package/dist/plugins/dropcontact/src/credentials.js +13 -0
  120. package/dist/plugins/dropcontact/src/index.js +13 -18
  121. package/dist/plugins/egoi/src/credentials.js +19 -0
  122. package/dist/plugins/egoi/src/index.js +23 -38
  123. package/dist/plugins/elasticsearch/src/credentials.js +18 -0
  124. package/dist/plugins/elasticsearch/src/index.js +27 -48
  125. package/dist/plugins/elevenlabs/src/credentials.js +30 -0
  126. package/dist/plugins/elevenlabs/src/index.js +4 -1
  127. package/dist/plugins/elevenlabs/src/schemas.js +2 -1
  128. package/dist/plugins/elevenlabs/src/shared.js +74 -35
  129. package/dist/plugins/elevenlabs/src/workflows.js +2 -2
  130. package/dist/plugins/emelia/src/credentials.js +14 -0
  131. package/dist/plugins/emelia/src/index.js +19 -23
  132. package/dist/plugins/erpnext/src/credentials.js +27 -0
  133. package/dist/plugins/erpnext/src/index.js +21 -42
  134. package/dist/plugins/facebookGraph/src/credentials.js +20 -0
  135. package/dist/plugins/facebookGraph/src/index.js +39 -37
  136. package/dist/plugins/fal/src/credentials.js +14 -0
  137. package/dist/plugins/fal/src/index.js +4 -2
  138. package/dist/plugins/fal/src/shared.js +58 -63
  139. package/dist/plugins/freshdesk/src/credentials.js +20 -0
  140. package/dist/plugins/freshdesk/src/index.js +25 -46
  141. package/dist/plugins/freshservice/src/credentials.js +16 -0
  142. package/dist/plugins/freshservice/src/index.js +37 -58
  143. package/dist/plugins/freshworksCrm/src/credentials.js +16 -0
  144. package/dist/plugins/freshworksCrm/src/index.js +20 -39
  145. package/dist/plugins/getresponse/src/credentials.js +22 -0
  146. package/dist/plugins/getresponse/src/index.js +20 -32
  147. package/dist/plugins/gett/src/credentials.js +64 -0
  148. package/dist/plugins/gett/src/index.js +11 -6
  149. package/dist/plugins/gett/src/login.js +24 -0
  150. package/dist/plugins/gett/src/session.js +15 -38
  151. package/dist/plugins/gett/src/shared.js +41 -84
  152. package/dist/plugins/ghost/src/credentials.js +36 -0
  153. package/dist/plugins/ghost/src/index.js +18 -59
  154. package/dist/plugins/github/src/credentials.js +18 -0
  155. package/dist/plugins/github/src/index.js +55 -78
  156. package/dist/plugins/gitlab/src/credentials.js +24 -0
  157. package/dist/plugins/gitlab/src/index.js +29 -48
  158. package/dist/plugins/gmail/src/index.js +26 -24
  159. package/dist/plugins/gong/src/credentials.js +16 -0
  160. package/dist/plugins/gong/src/index.js +16 -32
  161. package/dist/plugins/googleAppsScript/src/index.js +108 -42
  162. package/dist/plugins/googleCalendar/src/index.js +15 -13
  163. package/dist/plugins/googleContacts/src/index.js +12 -9
  164. package/dist/plugins/googleDocs/src/index.js +2 -0
  165. package/dist/plugins/googleDocs/src/shared.js +2 -1
  166. package/dist/plugins/googleDrive/src/index.js +50 -53
  167. package/dist/plugins/googleImage/src/credentials.js +14 -0
  168. package/dist/plugins/googleImage/src/index.js +14 -25
  169. package/dist/plugins/googleSheets/src/index.js +26 -27
  170. package/dist/plugins/googleSlides/src/index.js +6 -4
  171. package/dist/plugins/googleTasks/src/index.js +13 -11
  172. package/dist/plugins/gotify/src/credentials.js +32 -0
  173. package/dist/plugins/gotify/src/index.js +14 -36
  174. package/dist/plugins/gotowebinar/src/credentials.js +13 -0
  175. package/dist/plugins/gotowebinar/src/index.js +52 -69
  176. package/dist/plugins/grafana/src/credentials.js +16 -0
  177. package/dist/plugins/grafana/src/index.js +34 -53
  178. package/dist/plugins/graphql/src/credentials.js +42 -0
  179. package/dist/plugins/graphql/src/index.js +21 -46
  180. package/dist/plugins/grist/src/credentials.js +30 -0
  181. package/dist/plugins/grist/src/index.js +14 -43
  182. package/dist/plugins/halopsa/src/credentials.js +56 -0
  183. package/dist/plugins/halopsa/src/index.js +20 -47
  184. package/dist/plugins/harvest/src/credentials.js +20 -0
  185. package/dist/plugins/harvest/src/index.js +24 -43
  186. package/dist/plugins/helpscout/src/credentials.js +13 -0
  187. package/dist/plugins/helpscout/src/index.js +26 -38
  188. package/dist/plugins/highlevel/src/credentials.js +19 -0
  189. package/dist/plugins/highlevel/src/index.js +34 -63
  190. package/dist/plugins/homeAssistant/src/credentials.js +27 -0
  191. package/dist/plugins/homeAssistant/src/index.js +34 -52
  192. package/dist/plugins/hubspot/src/credentials.js +16 -0
  193. package/dist/plugins/hubspot/src/index.js +29 -41
  194. package/dist/plugins/humanticAi/src/credentials.js +13 -0
  195. package/dist/plugins/humanticAi/src/index.js +15 -22
  196. package/dist/plugins/hunter/src/credentials.js +13 -0
  197. package/dist/plugins/hunter/src/index.js +18 -17
  198. package/dist/plugins/intercom/src/credentials.js +19 -0
  199. package/dist/plugins/intercom/src/index.js +25 -38
  200. package/dist/plugins/iterable/src/credentials.js +17 -0
  201. package/dist/plugins/iterable/src/index.js +26 -40
  202. package/dist/plugins/jenkins/src/credentials.js +16 -0
  203. package/dist/plugins/jenkins/src/index.js +22 -36
  204. package/dist/plugins/jira/src/credentials.js +16 -0
  205. package/dist/plugins/jira/src/index.js +35 -61
  206. package/dist/plugins/keap/src/credentials.js +19 -0
  207. package/dist/plugins/keap/src/index.js +43 -71
  208. package/dist/plugins/kobotoolbox/src/credentials.js +13 -0
  209. package/dist/plugins/kobotoolbox/src/index.js +46 -84
  210. package/dist/plugins/lemlist/src/credentials.js +19 -0
  211. package/dist/plugins/lemlist/src/index.js +35 -47
  212. package/dist/plugins/linear/src/attachments.js +7 -7
  213. package/dist/plugins/linear/src/comments.js +7 -7
  214. package/dist/plugins/linear/src/credentials.js +17 -0
  215. package/dist/plugins/linear/src/cycles.js +5 -5
  216. package/dist/plugins/linear/src/index.js +2 -0
  217. package/dist/plugins/linear/src/initiatives.js +6 -6
  218. package/dist/plugins/linear/src/issues.js +14 -14
  219. package/dist/plugins/linear/src/labels.js +6 -6
  220. package/dist/plugins/linear/src/organization.js +2 -2
  221. package/dist/plugins/linear/src/projects.js +12 -12
  222. package/dist/plugins/linear/src/shared.js +34 -32
  223. package/dist/plugins/linear/src/states.js +3 -3
  224. package/dist/plugins/linear/src/teams.js +4 -4
  225. package/dist/plugins/linear/src/users.js +3 -3
  226. package/dist/plugins/linear/src/views.js +5 -5
  227. package/dist/plugins/linear/src/webhooks.js +5 -5
  228. package/dist/plugins/lingvanex/src/credentials.js +13 -0
  229. package/dist/plugins/lingvanex/src/index.js +7 -9
  230. package/dist/plugins/linkedin/src/credentials.js +17 -0
  231. package/dist/plugins/linkedin/src/index.js +13 -17
  232. package/dist/plugins/lonescale/src/credentials.js +13 -0
  233. package/dist/plugins/lonescale/src/index.js +16 -26
  234. package/dist/plugins/magento/src/credentials.js +16 -0
  235. package/dist/plugins/magento/src/index.js +67 -84
  236. package/dist/plugins/mailcheck/src/credentials.js +17 -0
  237. package/dist/plugins/mailcheck/src/index.js +7 -9
  238. package/dist/plugins/mailchimp/src/credentials.js +32 -0
  239. package/dist/plugins/mailchimp/src/index.js +36 -44
  240. package/dist/plugins/mailerlite/src/credentials.js +13 -0
  241. package/dist/plugins/mailerlite/src/index.js +19 -32
  242. package/dist/plugins/mailgun/src/credentials.js +21 -0
  243. package/dist/plugins/mailgun/src/index.js +15 -21
  244. package/dist/plugins/mailjet/src/credentials.js +38 -0
  245. package/dist/plugins/mailjet/src/index.js +60 -115
  246. package/dist/plugins/mandrill/src/credentials.js +17 -0
  247. package/dist/plugins/mandrill/src/index.js +11 -12
  248. package/dist/plugins/marketstack/src/credentials.js +16 -0
  249. package/dist/plugins/marketstack/src/index.js +18 -28
  250. package/dist/plugins/matrix/src/credentials.js +19 -0
  251. package/dist/plugins/matrix/src/index.js +23 -52
  252. package/dist/plugins/mattermost/src/credentials.js +19 -0
  253. package/dist/plugins/mattermost/src/index.js +41 -73
  254. package/dist/plugins/mautic/src/credentials.js +16 -0
  255. package/dist/plugins/mautic/src/index.js +46 -62
  256. package/dist/plugins/medium/src/credentials.js +20 -0
  257. package/dist/plugins/medium/src/index.js +18 -23
  258. package/dist/plugins/messagebird/src/credentials.js +22 -0
  259. package/dist/plugins/messagebird/src/index.js +13 -18
  260. package/dist/plugins/metabase/src/credentials.js +19 -0
  261. package/dist/plugins/metabase/src/index.js +24 -40
  262. package/dist/plugins/microsoftCalendar/src/index.js +48 -12
  263. package/dist/plugins/microsoftFiles/src/index.js +90 -25
  264. package/dist/plugins/microsoftMail/src/index.js +62 -15
  265. package/dist/plugins/misp/src/credentials.js +16 -0
  266. package/dist/plugins/misp/src/index.js +60 -71
  267. package/dist/plugins/mocean/src/credentials.js +17 -0
  268. package/dist/plugins/mocean/src/index.js +11 -23
  269. package/dist/plugins/monday/src/credentials.js +14 -0
  270. package/dist/plugins/monday/src/index.js +31 -44
  271. package/dist/plugins/monicaCrm/src/credentials.js +19 -0
  272. package/dist/plugins/monicaCrm/src/index.js +25 -42
  273. package/dist/plugins/msg91/src/credentials.js +10 -0
  274. package/dist/plugins/msg91/src/index.js +15 -11
  275. package/dist/plugins/nasa/src/credentials.js +22 -0
  276. package/dist/plugins/nasa/src/index.js +24 -28
  277. package/dist/plugins/netlify/src/credentials.js +19 -0
  278. package/dist/plugins/netlify/src/index.js +27 -51
  279. package/dist/plugins/netscalerAdc/src/credentials.js +18 -0
  280. package/dist/plugins/netscalerAdc/src/index.js +16 -31
  281. package/dist/plugins/nextcloud/src/credentials.js +27 -0
  282. package/dist/plugins/nextcloud/src/index.js +55 -109
  283. package/dist/plugins/nocodb/src/credentials.js +16 -0
  284. package/dist/plugins/nocodb/src/index.js +19 -37
  285. package/dist/plugins/notion/src/credentials.js +21 -0
  286. package/dist/plugins/notion/src/index.js +25 -38
  287. package/dist/plugins/npm/src/credentials.js +19 -0
  288. package/dist/plugins/npm/src/index.js +22 -32
  289. package/dist/plugins/odoo/src/credentials.js +21 -0
  290. package/dist/plugins/odoo/src/index.js +53 -69
  291. package/dist/plugins/okta/src/credentials.js +23 -0
  292. package/dist/plugins/okta/src/index.js +30 -35
  293. package/dist/plugins/oneSimpleApi/src/credentials.js +16 -0
  294. package/dist/plugins/oneSimpleApi/src/index.js +19 -24
  295. package/dist/plugins/onfleet/src/credentials.js +23 -0
  296. package/dist/plugins/onfleet/src/index.js +42 -53
  297. package/dist/plugins/openai/src/credentials.js +13 -0
  298. package/dist/plugins/openai/src/index.js +15 -23
  299. package/dist/plugins/openweathermap/src/credentials.js +16 -0
  300. package/dist/plugins/openweathermap/src/index.js +22 -22
  301. package/dist/plugins/oura/src/credentials.js +19 -0
  302. package/dist/plugins/oura/src/index.js +13 -18
  303. package/dist/plugins/paddle/src/credentials.js +27 -0
  304. package/dist/plugins/paddle/src/index.js +20 -36
  305. package/dist/plugins/pagerduty/src/credentials.js +24 -0
  306. package/dist/plugins/pagerduty/src/index.js +30 -39
  307. package/dist/plugins/parallel/src/credentials.js +18 -0
  308. package/dist/plugins/parallel/src/index.js +16 -22
  309. package/dist/plugins/paypal/src/credentials.js +44 -0
  310. package/dist/plugins/paypal/src/index.js +14 -40
  311. package/dist/plugins/peekalink/src/credentials.js +16 -0
  312. package/dist/plugins/peekalink/src/index.js +10 -11
  313. package/dist/plugins/phantombuster/src/credentials.js +19 -0
  314. package/dist/plugins/phantombuster/src/index.js +19 -32
  315. package/dist/plugins/philipsHue/src/credentials.js +17 -0
  316. package/dist/plugins/philipsHue/src/index.js +15 -27
  317. package/dist/plugins/pipedrive/src/credentials.js +26 -0
  318. package/dist/plugins/pipedrive/src/index.js +43 -73
  319. package/dist/plugins/plaud/src/index.js +2 -1
  320. package/dist/plugins/plaud/src/shared.js +23 -19
  321. package/dist/plugins/plivo/src/credentials.js +20 -0
  322. package/dist/plugins/plivo/src/index.js +13 -19
  323. package/dist/plugins/posthog/src/credentials.js +18 -0
  324. package/dist/plugins/posthog/src/index.js +14 -20
  325. package/dist/plugins/profitwell/src/credentials.js +22 -0
  326. package/dist/plugins/profitwell/src/index.js +10 -17
  327. package/dist/plugins/pushbullet/src/credentials.js +19 -0
  328. package/dist/plugins/pushbullet/src/index.js +19 -27
  329. package/dist/plugins/pushcut/src/credentials.js +19 -0
  330. package/dist/plugins/pushcut/src/index.js +7 -8
  331. package/dist/plugins/pushover/src/credentials.js +14 -0
  332. package/dist/plugins/pushover/src/index.js +7 -12
  333. package/dist/plugins/quickbase/src/credentials.js +15 -0
  334. package/dist/plugins/quickbase/src/index.js +24 -34
  335. package/dist/plugins/quickbooks/src/credentials.js +22 -0
  336. package/dist/plugins/quickbooks/src/index.js +17 -46
  337. package/dist/plugins/raindrop/src/credentials.js +19 -0
  338. package/dist/plugins/raindrop/src/index.js +30 -32
  339. package/dist/plugins/recraft/src/credentials.js +13 -0
  340. package/dist/plugins/recraft/src/index.js +38 -27
  341. package/dist/plugins/reddit/src/credentials.js +26 -0
  342. package/dist/plugins/reddit/src/index.js +30 -34
  343. package/dist/plugins/replicate/src/credentials.js +23 -0
  344. package/dist/plugins/replicate/src/index.js +17 -27
  345. package/dist/plugins/rocketchat/src/credentials.js +17 -0
  346. package/dist/plugins/rocketchat/src/index.js +8 -19
  347. package/dist/plugins/rundeck/src/credentials.js +16 -0
  348. package/dist/plugins/rundeck/src/index.js +12 -28
  349. package/dist/plugins/salesforce/src/credentials.js +73 -0
  350. package/dist/plugins/salesforce/src/index.js +6 -0
  351. package/dist/plugins/salesforce/src/metadata.js +3 -16
  352. package/dist/plugins/salesforce/src/shared.js +25 -100
  353. package/dist/plugins/salesforce/src/sobjects.js +10 -9
  354. package/dist/plugins/salesmate/src/credentials.js +17 -0
  355. package/dist/plugins/salesmate/src/index.js +20 -37
  356. package/dist/plugins/securityScorecard/src/credentials.js +22 -0
  357. package/dist/plugins/securityScorecard/src/index.js +24 -37
  358. package/dist/plugins/segment/src/credentials.js +16 -0
  359. package/dist/plugins/segment/src/index.js +12 -16
  360. package/dist/plugins/sendgrid/src/credentials.js +13 -0
  361. package/dist/plugins/sendgrid/src/index.js +31 -35
  362. package/dist/plugins/sendy/src/credentials.js +18 -0
  363. package/dist/plugins/sendy/src/index.js +18 -24
  364. package/dist/plugins/sentry/src/credentials.js +16 -0
  365. package/dist/plugins/sentry/src/index.js +30 -98
  366. package/dist/plugins/servicenow/src/credentials.js +13 -0
  367. package/dist/plugins/servicenow/src/index.js +22 -41
  368. package/dist/plugins/shiftAtlas/src/graph.js +2 -2
  369. package/dist/plugins/shiftAtlas/src/index.js +2 -0
  370. package/dist/plugins/shiftAtlas/src/shared.js +3 -1
  371. package/dist/plugins/shiftBwm/src/index.js +4 -2
  372. package/dist/plugins/shiftBwm/src/shared.js +41 -16
  373. package/dist/plugins/shiftCrm/src/access.js +2 -2
  374. package/dist/plugins/shiftCrm/src/accounts.js +3 -3
  375. package/dist/plugins/shiftCrm/src/activities.js +3 -3
  376. package/dist/plugins/shiftCrm/src/credentials.js +6 -0
  377. package/dist/plugins/shiftCrm/src/index.js +2 -0
  378. package/dist/plugins/shiftCrm/src/opportunities.js +3 -3
  379. package/dist/plugins/shiftCrm/src/people.js +3 -3
  380. package/dist/plugins/shiftCrm/src/records.js +2 -2
  381. package/dist/plugins/shiftCrm/src/shared.js +2 -1
  382. package/dist/plugins/shiftCrm/src/tasks.js +3 -3
  383. package/dist/plugins/shiftObjects/src/credentials.js +2 -0
  384. package/dist/plugins/shiftObjects/src/index.js +2 -0
  385. package/dist/plugins/shiftObjects/src/objects.js +3 -2
  386. package/dist/plugins/shiftOcr/src/credentials.js +8 -0
  387. package/dist/plugins/shiftOcr/src/index.js +6 -5
  388. package/dist/plugins/shiftPages/src/index.js +2 -0
  389. package/dist/plugins/shiftPages/src/pages.js +5 -3
  390. package/dist/plugins/shiftPages/src/shared.js +3 -1
  391. package/dist/plugins/shiftTranscription/src/index.js +2 -0
  392. package/dist/plugins/shiftTranscription/src/shared.js +11 -1
  393. package/dist/plugins/shiftTranscription/src/transcription.js +4 -4
  394. package/dist/plugins/shiftWork/src/index.js +2 -0
  395. package/dist/plugins/shiftWork/src/issue-views.js +5 -5
  396. package/dist/plugins/shiftWork/src/issues.js +11 -7
  397. package/dist/plugins/shiftWork/src/projects.js +3 -3
  398. package/dist/plugins/shiftWork/src/shared.js +3 -1
  399. package/dist/plugins/shopify/src/credentials.js +16 -0
  400. package/dist/plugins/shopify/src/index.js +32 -59
  401. package/dist/plugins/signl4/src/credentials.js +17 -0
  402. package/dist/plugins/signl4/src/index.js +28 -29
  403. package/dist/plugins/slack/src/credentials.js +19 -0
  404. package/dist/plugins/slack/src/index.js +51 -60
  405. package/dist/plugins/sms77/src/credentials.js +17 -0
  406. package/dist/plugins/sms77/src/index.js +11 -16
  407. package/dist/plugins/splunk/src/credentials.js +19 -0
  408. package/dist/plugins/splunk/src/index.js +32 -74
  409. package/dist/plugins/spotify/src/credentials.js +19 -0
  410. package/dist/plugins/spotify/src/index.js +40 -55
  411. package/dist/plugins/stackby/src/credentials.js +13 -0
  412. package/dist/plugins/stackby/src/index.js +14 -23
  413. package/dist/plugins/steel/src/auth.js +27 -0
  414. package/dist/plugins/steel/src/browser.js +4 -3
  415. package/dist/plugins/steel/src/captchas.js +4 -3
  416. package/dist/plugins/steel/src/extensions.js +3 -2
  417. package/dist/plugins/steel/src/files.js +9 -10
  418. package/dist/plugins/steel/src/index.js +2 -0
  419. package/dist/plugins/steel/src/page/tools.js +3 -3
  420. package/dist/plugins/steel/src/profiles.js +4 -3
  421. package/dist/plugins/steel/src/sessions.js +13 -13
  422. package/dist/plugins/steel/src/shared.js +21 -51
  423. package/dist/plugins/storyblok/src/credentials.js +37 -0
  424. package/dist/plugins/storyblok/src/index.js +22 -66
  425. package/dist/plugins/strapi/src/credentials.js +71 -0
  426. package/dist/plugins/strapi/src/index.js +36 -70
  427. package/dist/plugins/strava/src/credentials.js +19 -0
  428. package/dist/plugins/strava/src/index.js +16 -33
  429. package/dist/plugins/stripe/src/credentials.js +19 -0
  430. package/dist/plugins/stripe/src/index.js +44 -58
  431. package/dist/plugins/supabase/src/credentials.js +30 -0
  432. package/dist/plugins/supabase/src/index.js +18 -40
  433. package/dist/plugins/syncromsp/src/credentials.js +16 -0
  434. package/dist/plugins/syncromsp/src/index.js +37 -70
  435. package/dist/plugins/tapfiliate/src/credentials.js +13 -0
  436. package/dist/plugins/tapfiliate/src/index.js +21 -31
  437. package/dist/plugins/telegram/src/credentials.js +20 -0
  438. package/dist/plugins/telegram/src/index.js +31 -39
  439. package/dist/plugins/thehive/src/credentials.js +14 -0
  440. package/dist/plugins/thehive/src/index.js +33 -50
  441. package/dist/plugins/thehiveProject/src/credentials.js +16 -0
  442. package/dist/plugins/thehiveProject/src/index.js +53 -122
  443. package/dist/plugins/todoist/src/credentials.js +26 -0
  444. package/dist/plugins/todoist/src/index.js +49 -79
  445. package/dist/plugins/together/src/credentials.js +16 -0
  446. package/dist/plugins/together/src/index.js +30 -32
  447. package/dist/plugins/travisci/src/credentials.js +24 -0
  448. package/dist/plugins/travisci/src/index.js +16 -30
  449. package/dist/plugins/trello/src/credentials.js +29 -0
  450. package/dist/plugins/trello/src/index.js +49 -64
  451. package/dist/plugins/twake/src/credentials.js +16 -0
  452. package/dist/plugins/twake/src/index.js +8 -10
  453. package/dist/plugins/twilio/src/credentials.js +23 -0
  454. package/dist/plugins/twilio/src/index.js +12 -26
  455. package/dist/plugins/twist/src/credentials.js +13 -0
  456. package/dist/plugins/twist/src/index.js +32 -44
  457. package/dist/plugins/twitter/src/credentials.js +16 -0
  458. package/dist/plugins/twitter/src/index.js +25 -37
  459. package/dist/plugins/typesafe/src/credentials.js +28 -0
  460. package/dist/plugins/typesafe/src/index.js +3 -1
  461. package/dist/plugins/typesafe/src/shared.js +23 -35
  462. package/dist/plugins/unleashedSoftware/src/credentials.js +21 -0
  463. package/dist/plugins/unleashedSoftware/src/index.js +13 -37
  464. package/dist/plugins/uplead/src/credentials.js +16 -0
  465. package/dist/plugins/uplead/src/index.js +11 -16
  466. package/dist/plugins/uproc/src/credentials.js +14 -0
  467. package/dist/plugins/uproc/src/index.js +7 -10
  468. package/dist/plugins/uptimerobot/src/credentials.js +14 -0
  469. package/dist/plugins/uptimerobot/src/index.js +28 -39
  470. package/dist/plugins/urlscanio/src/credentials.js +13 -0
  471. package/dist/plugins/urlscanio/src/index.js +13 -22
  472. package/dist/plugins/vercel/src/credentials.js +19 -0
  473. package/dist/plugins/vercel/src/deployments.js +27 -11
  474. package/dist/plugins/vercel/src/env.js +31 -12
  475. package/dist/plugins/vercel/src/index.js +2 -0
  476. package/dist/plugins/vercel/src/projects.js +6 -3
  477. package/dist/plugins/vercel/src/shared.js +32 -37
  478. package/dist/plugins/vero/src/credentials.js +17 -0
  479. package/dist/plugins/vero/src/index.js +18 -21
  480. package/dist/plugins/vonage/src/credentials.js +17 -0
  481. package/dist/plugins/vonage/src/index.js +14 -18
  482. package/dist/plugins/wekan/src/credentials.js +16 -0
  483. package/dist/plugins/wekan/src/index.js +33 -46
  484. package/dist/plugins/wolt/src/account.js +6 -0
  485. package/dist/plugins/wolt/src/catalog.js +2 -2
  486. package/dist/plugins/wolt/src/credentials.js +64 -0
  487. package/dist/plugins/wolt/src/index.js +8 -3
  488. package/dist/plugins/wolt/src/orders.js +2 -2
  489. package/dist/plugins/wolt/src/public.js +91 -0
  490. package/dist/plugins/wolt/src/shared.js +49 -158
  491. package/dist/plugins/woocommerce/src/credentials.js +16 -0
  492. package/dist/plugins/woocommerce/src/index.js +19 -37
  493. package/dist/plugins/wordpress/src/credentials.js +16 -0
  494. package/dist/plugins/wordpress/src/index.js +23 -42
  495. package/dist/plugins/xai/src/credentials.js +13 -0
  496. package/dist/plugins/xai/src/index.js +31 -30
  497. package/dist/plugins/xero/src/credentials.js +17 -0
  498. package/dist/plugins/xero/src/index.js +19 -36
  499. package/dist/plugins/yourls/src/credentials.js +17 -0
  500. package/dist/plugins/yourls/src/index.js +13 -23
  501. package/dist/plugins/zammad/src/credentials.js +15 -0
  502. package/dist/plugins/zammad/src/index.js +27 -47
  503. package/dist/plugins/zendesk/src/credentials.js +26 -0
  504. package/dist/plugins/zendesk/src/index.js +29 -48
  505. package/dist/plugins/zoho/src/credentials.js +17 -0
  506. package/dist/plugins/zoho/src/index.js +18 -38
  507. package/dist/plugins/zoom/src/credentials.js +19 -0
  508. package/dist/plugins/zoom/src/index.js +15 -30
  509. package/dist/plugins/zulip/src/credentials.js +16 -0
  510. package/dist/plugins/zulip/src/index.js +36 -42
  511. package/dist/sdk.d.ts +8 -0
  512. package/dist/sdk.js +3 -0
  513. package/package.json +1 -1
  514. package/dist/plugins/_shared/authedFetch.js +0 -33
  515. package/dist/plugins/_shared/tokenRefresh.js +0 -41
@@ -1,24 +1,18 @@
1
- const BASE_URL = "https://rest.moceanapi.com";
2
- async function apiRequest(apiKey, apiSecret, endpoint, body) {
3
- body["mocean-api-key"] = apiKey;
4
- body["mocean-api-secret"] = apiSecret;
5
- body["mocean-resp-format"] = "JSON";
6
- const form = new URLSearchParams();
7
- for (const [k, v] of Object.entries(body)) {
8
- if (v !== undefined && v !== null)
9
- form.set(k, String(v));
10
- }
11
- const res = await fetch(`${BASE_URL}${endpoint}`, {
1
+ import { credentialJson } from "../../_shared/credentials.js";
2
+ import { moceanCredential } from "./credentials.js";
3
+ /** A Mocean form call, answered in JSON. */
4
+ function apiRequest(ctx, endpoint, body) {
5
+ return credentialJson(ctx, moceanCredential, "mocean", {
6
+ target: "api",
7
+ path: endpoint,
12
8
  method: "POST",
13
- body: form,
9
+ form: { ...body, "mocean-resp-format": "JSON" },
14
10
  });
15
- if (!res.ok)
16
- throw new Error(`Mocean API error ${res.status}: ${await res.text()}`);
17
- return res.json();
18
11
  }
19
12
  export default function mocean(rl) {
20
13
  rl.setName("mocean");
21
14
  rl.setVersion("0.1.0");
15
+ rl.setCredential(moceanCredential);
22
16
  rl.setConnectionSchema({
23
17
  apiKey: {
24
18
  type: "string",
@@ -33,10 +27,6 @@ export default function mocean(rl) {
33
27
  env: "MOCEAN_API_SECRET",
34
28
  },
35
29
  });
36
- const creds = (ctx) => ({
37
- apiKey: ctx.connection.config.apiKey,
38
- apiSecret: ctx.connection.config.apiSecret,
39
- });
40
30
  rl.registerAction("sms.send", {
41
31
  access: "write",
42
32
  description: "Send an SMS message",
@@ -52,7 +42,6 @@ export default function mocean(rl) {
52
42
  },
53
43
  async execute(input, ctx) {
54
44
  const { from, to, message, dlrUrl } = input;
55
- const { apiKey, apiSecret } = creds(ctx);
56
45
  const body = {
57
46
  "mocean-from": from,
58
47
  "mocean-to": to,
@@ -62,7 +51,7 @@ export default function mocean(rl) {
62
51
  body["mocean-dlr-url"] = dlrUrl;
63
52
  body["mocean-dlr-mask"] = "1";
64
53
  }
65
- const data = (await apiRequest(apiKey, apiSecret, "/rest/2/sms", body));
54
+ const data = (await apiRequest(ctx, "sms", body));
66
55
  return data.messages;
67
56
  },
68
57
  });
@@ -81,14 +70,13 @@ export default function mocean(rl) {
81
70
  },
82
71
  async execute(input, ctx) {
83
72
  const { from, to, message, language = "en-US", } = input;
84
- const { apiKey, apiSecret } = creds(ctx);
85
73
  const command = [{ action: "say", language, text: message }];
86
74
  const body = {
87
75
  "mocean-from": from,
88
76
  "mocean-to": to,
89
77
  "mocean-command": JSON.stringify(command),
90
78
  };
91
- const data = (await apiRequest(apiKey, apiSecret, "/rest/2/voice/dial", body));
79
+ const data = (await apiRequest(ctx, "voice/dial", body));
92
80
  return data.voice;
93
81
  },
94
82
  });
@@ -0,0 +1,14 @@
1
+ import { staticCredential } from "../../_shared/credentials.js";
2
+ /** An API token, sent raw in the Authorization header to the GraphQL endpoint. */
3
+ export const mondayCredential = staticCredential({
4
+ id: "monday",
5
+ auth: { kind: "apiKey", header: "Authorization" },
6
+ local: { secret: "apiToken" },
7
+ targets: {
8
+ api: {
9
+ baseUrl: "https://api.monday.com/v2/",
10
+ methods: ["POST"],
11
+ allowedHeaders: ["API-Version"],
12
+ },
13
+ },
14
+ });
@@ -1,23 +1,21 @@
1
- async function gql(token, query, variables = {}) {
2
- const res = await fetch("https://api.monday.com/v2/", {
1
+ import { credentialJson, graphqlFailed } from "../../_shared/credentials.js";
2
+ import { mondayCredential } from "./credentials.js";
3
+ async function gql(ctx, query, variables = {}) {
4
+ const data = (await credentialJson(ctx, mondayCredential, "monday", {
5
+ target: "api",
6
+ path: "",
3
7
  method: "POST",
4
- headers: {
5
- Authorization: token,
6
- "API-Version": "2023-10",
7
- "Content-Type": "application/json",
8
- },
9
- body: JSON.stringify({ query, variables }),
10
- });
11
- if (!res.ok)
12
- throw new Error(`Monday.com API error ${res.status}: ${await res.text()}`);
13
- const data = (await res.json());
8
+ headers: { "API-Version": "2023-10" },
9
+ json: { query, variables },
10
+ }));
14
11
  if (data.errors)
15
- throw new Error(`Monday.com GraphQL errors: ${JSON.stringify(data.errors)}`);
12
+ throw graphqlFailed("monday", data.errors);
16
13
  return data.data;
17
14
  }
18
15
  export default function monday(rl) {
19
16
  rl.setName("monday");
20
17
  rl.setVersion("0.1.0");
18
+ rl.setCredential(mondayCredential);
21
19
  rl.setConnectionSchema({
22
20
  apiToken: {
23
21
  type: "string",
@@ -26,7 +24,6 @@ export default function monday(rl) {
26
24
  env: "MONDAY_API_TOKEN",
27
25
  },
28
26
  });
29
- const tok = (ctx) => ctx.connection.config.apiToken;
30
27
  // ── Board ───────────────────────────────────────────
31
28
  rl.registerAction("board.create", {
32
29
  access: "write",
@@ -45,7 +42,7 @@ export default function monday(rl) {
45
42
  const vars = { name, kind };
46
43
  if (templateId)
47
44
  vars.templateId = templateId;
48
- const data = await gql(tok(ctx), `mutation ($name: String!, $kind: BoardKind!, $templateId: ID) { create_board (board_name: $name, board_kind: $kind, template_id: $templateId) { id } }`, vars);
45
+ const data = await gql(ctx, `mutation ($name: String!, $kind: BoardKind!, $templateId: ID) { create_board (board_name: $name, board_kind: $kind, template_id: $templateId) { id } }`, vars);
49
46
  return data.create_board;
50
47
  },
51
48
  });
@@ -54,7 +51,7 @@ export default function monday(rl) {
54
51
  description: "Archive a board",
55
52
  inputSchema: { boardId: { type: "string", required: true } },
56
53
  async execute(input, ctx) {
57
- const data = await gql(tok(ctx), `mutation ($id: ID!) { archive_board (board_id: $id) { id } }`, { id: input.boardId });
54
+ const data = await gql(ctx, `mutation ($id: ID!) { archive_board (board_id: $id) { id } }`, { id: input.boardId });
58
55
  return data.archive_board;
59
56
  },
60
57
  });
@@ -63,7 +60,7 @@ export default function monday(rl) {
63
60
  description: "Get a board by ID",
64
61
  inputSchema: { boardId: { type: "string", required: true } },
65
62
  async execute(input, ctx) {
66
- const data = await gql(tok(ctx), `query ($id: [ID!]) { boards (ids: $id) { id name description state board_folder_id board_kind owners { id } } }`, { id: input.boardId });
63
+ const data = await gql(ctx, `query ($id: [ID!]) { boards (ids: $id) { id name description state board_folder_id board_kind owners { id } } }`, { id: input.boardId });
67
64
  return data.boards?.[0];
68
65
  },
69
66
  });
@@ -73,7 +70,7 @@ export default function monday(rl) {
73
70
  inputSchema: { limit: { type: "number", required: false } },
74
71
  async execute(input, ctx) {
75
72
  const { limit } = (input ?? {});
76
- const data = await gql(tok(ctx), `query ($limit: Int) { boards (limit: $limit) { id name description state board_folder_id board_kind owners { id } } }`, limit ? { limit } : {});
73
+ const data = await gql(ctx, `query ($limit: Int) { boards (limit: $limit) { id name description state board_folder_id board_kind owners { id } } }`, limit ? { limit } : {});
77
74
  return data.boards;
78
75
  },
79
76
  });
@@ -100,7 +97,7 @@ export default function monday(rl) {
100
97
  const vars = { boardId, title, columnType };
101
98
  if (defaults)
102
99
  vars.defaults = JSON.stringify(JSON.parse(defaults));
103
- const data = await gql(tok(ctx), `mutation ($boardId: ID!, $title: String!, $columnType: ColumnType!, $defaults: JSON) { create_column (board_id: $boardId, title: $title, column_type: $columnType, defaults: $defaults) { id } }`, vars);
100
+ const data = await gql(ctx, `mutation ($boardId: ID!, $title: String!, $columnType: ColumnType!, $defaults: JSON) { create_column (board_id: $boardId, title: $title, column_type: $columnType, defaults: $defaults) { id } }`, vars);
104
101
  return data.create_column;
105
102
  },
106
103
  });
@@ -109,7 +106,7 @@ export default function monday(rl) {
109
106
  description: "List columns on a board",
110
107
  inputSchema: { boardId: { type: "string", required: true } },
111
108
  async execute(input, ctx) {
112
- const data = await gql(tok(ctx), `query ($boardId: [ID!]) { boards (ids: $boardId) { columns { id title type settings_str archived } } }`, { boardId: input.boardId });
109
+ const data = await gql(ctx, `query ($boardId: [ID!]) { boards (ids: $boardId) { columns { id title type settings_str archived } } }`, { boardId: input.boardId });
113
110
  return data.boards?.[0]?.columns;
114
111
  },
115
112
  });
@@ -123,7 +120,7 @@ export default function monday(rl) {
123
120
  },
124
121
  async execute(input, ctx) {
125
122
  const { boardId, name } = input;
126
- const data = await gql(tok(ctx), `mutation ($boardId: ID!, $groupName: String!) { create_group (board_id: $boardId, group_name: $groupName) { id } }`, { boardId, groupName: name });
123
+ const data = await gql(ctx, `mutation ($boardId: ID!, $groupName: String!) { create_group (board_id: $boardId, group_name: $groupName) { id } }`, { boardId, groupName: name });
127
124
  return data.create_group;
128
125
  },
129
126
  });
@@ -136,7 +133,7 @@ export default function monday(rl) {
136
133
  },
137
134
  async execute(input, ctx) {
138
135
  const { boardId, groupId } = input;
139
- const data = await gql(tok(ctx), `mutation ($boardId: ID!, $groupId: String!) { delete_group (board_id: $boardId, group_id: $groupId) { id } }`, { boardId, groupId });
136
+ const data = await gql(ctx, `mutation ($boardId: ID!, $groupId: String!) { delete_group (board_id: $boardId, group_id: $groupId) { id } }`, { boardId, groupId });
140
137
  return data.delete_group;
141
138
  },
142
139
  });
@@ -145,7 +142,7 @@ export default function monday(rl) {
145
142
  description: "List groups on a board",
146
143
  inputSchema: { boardId: { type: "string", required: true } },
147
144
  async execute(input, ctx) {
148
- const data = await gql(tok(ctx), `query ($boardId: [ID!]) { boards (ids: $boardId) { id groups { id title color position archived } } }`, { boardId: input.boardId });
145
+ const data = await gql(ctx, `query ($boardId: [ID!]) { boards (ids: $boardId) { id groups { id title color position archived } } }`, { boardId: input.boardId });
149
146
  return data.boards?.[0]?.groups;
150
147
  },
151
148
  });
@@ -172,7 +169,7 @@ export default function monday(rl) {
172
169
  };
173
170
  if (columnValues)
174
171
  vars.columnValues = JSON.stringify(JSON.parse(columnValues));
175
- const data = await gql(tok(ctx), `mutation ($boardId: ID!, $groupId: String!, $itemName: String!, $columnValues: JSON) { create_item (board_id: $boardId, group_id: $groupId, item_name: $itemName, column_values: $columnValues) { id } }`, vars);
172
+ const data = await gql(ctx, `mutation ($boardId: ID!, $groupId: String!, $itemName: String!, $columnValues: JSON) { create_item (board_id: $boardId, group_id: $groupId, item_name: $itemName, column_values: $columnValues) { id } }`, vars);
176
173
  return data.create_item;
177
174
  },
178
175
  });
@@ -190,7 +187,7 @@ export default function monday(rl) {
190
187
  const ids = input.itemIds
191
188
  .split(",")
192
189
  .map((s) => s.trim());
193
- const data = await gql(tok(ctx), `query ($itemId: [ID!]) { items (ids: $itemId) { id name created_at state column_values { id text type value column { title archived description settings_str } } } }`, { itemId: ids });
190
+ const data = await gql(ctx, `query ($itemId: [ID!]) { items (ids: $itemId) { id name created_at state column_values { id text type value column { title archived description settings_str } } } }`, { itemId: ids });
194
191
  return data.items;
195
192
  },
196
193
  });
@@ -204,19 +201,9 @@ export default function monday(rl) {
204
201
  },
205
202
  async execute(input, ctx) {
206
203
  const { boardId, groupId, limit = 100, } = input;
207
- const data = await gql(tok(ctx), `query ($boardId: [ID!], $groupId: [String], $limit: Int) { boards(ids: $boardId) { groups(ids: $groupId) { id items_page(limit: $limit) { cursor items { id name created_at state column_values { id text type value column { title archived description settings_str } } } } } } }`, { boardId, groupId, limit });
208
- return data.boards?.[0]
209
- ? data.boards[0].groups?.[0]
210
- ? data.boards[0]
211
- .groups[0]
212
- ? data.boards[0]
213
- .groups[0].items_page
214
- ? data.boards[0]
215
- .groups[0].items_page
216
- : []
217
- : []
218
- : []
219
- : [];
204
+ const data = await gql(ctx, `query ($boardId: [ID!], $groupId: [String], $limit: Int) { boards(ids: $boardId) { groups(ids: $groupId) { id items_page(limit: $limit) { cursor items { id name created_at state column_values { id text type value column { title archived description settings_str } } } } } } }`, { boardId, groupId, limit });
205
+ const boards = data.boards;
206
+ return boards?.[0]?.groups?.[0]?.items_page ?? [];
220
207
  },
221
208
  });
222
209
  rl.registerAction("boardItem.delete", {
@@ -224,7 +211,7 @@ export default function monday(rl) {
224
211
  description: "Delete an item",
225
212
  inputSchema: { itemId: { type: "string", required: true } },
226
213
  async execute(input, ctx) {
227
- const data = await gql(tok(ctx), `mutation ($itemId: ID!) { delete_item (item_id: $itemId) { id } }`, { itemId: input.itemId });
214
+ const data = await gql(ctx, `mutation ($itemId: ID!) { delete_item (item_id: $itemId) { id } }`, { itemId: input.itemId });
228
215
  return data.delete_item;
229
216
  },
230
217
  });
@@ -237,7 +224,7 @@ export default function monday(rl) {
237
224
  },
238
225
  async execute(input, ctx) {
239
226
  const { itemId, groupId } = input;
240
- const data = await gql(tok(ctx), `mutation ($groupId: String!, $itemId: ID!) { move_item_to_group (group_id: $groupId, item_id: $itemId) { id } }`, { groupId, itemId });
227
+ const data = await gql(ctx, `mutation ($groupId: String!, $itemId: ID!) { move_item_to_group (group_id: $groupId, item_id: $itemId) { id } }`, { groupId, itemId });
241
228
  return data.move_item_to_group;
242
229
  },
243
230
  });
@@ -254,7 +241,7 @@ export default function monday(rl) {
254
241
  },
255
242
  async execute(input, ctx) {
256
243
  const { itemId, value } = input;
257
- const data = await gql(tok(ctx), `mutation ($itemId: ID!, $value: String!) { create_update (item_id: $itemId, body: $value) { id } }`, { itemId, value });
244
+ const data = await gql(ctx, `mutation ($itemId: ID!, $value: String!) { create_update (item_id: $itemId, body: $value) { id } }`, { itemId, value });
258
245
  return data.create_update;
259
246
  },
260
247
  });
@@ -273,7 +260,7 @@ export default function monday(rl) {
273
260
  },
274
261
  async execute(input, ctx) {
275
262
  const { boardId, itemId, columnId, value } = input;
276
- const data = await gql(tok(ctx), `mutation ($boardId: ID!, $itemId: ID!, $columnId: String!, $value: JSON!) { change_column_value (board_id: $boardId, item_id: $itemId, column_id: $columnId, value: $value) { id } }`, {
263
+ const data = await gql(ctx, `mutation ($boardId: ID!, $itemId: ID!, $columnId: String!, $value: JSON!) { change_column_value (board_id: $boardId, item_id: $itemId, column_id: $columnId, value: $value) { id } }`, {
277
264
  boardId,
278
265
  itemId,
279
266
  columnId,
@@ -296,7 +283,7 @@ export default function monday(rl) {
296
283
  },
297
284
  async execute(input, ctx) {
298
285
  const { boardId, itemId, columnValues } = input;
299
- const data = await gql(tok(ctx), `mutation ($boardId: ID!, $itemId: ID!, $columnValues: JSON!) { change_multiple_column_values (board_id: $boardId, item_id: $itemId, column_values: $columnValues) { id } }`, {
286
+ const data = await gql(ctx, `mutation ($boardId: ID!, $itemId: ID!, $columnValues: JSON!) { change_multiple_column_values (board_id: $boardId, item_id: $itemId, column_values: $columnValues) { id } }`, {
300
287
  boardId,
301
288
  itemId,
302
289
  columnValues: JSON.stringify(JSON.parse(columnValues)),
@@ -315,7 +302,7 @@ export default function monday(rl) {
315
302
  },
316
303
  async execute(input, ctx) {
317
304
  const { boardId, columnId, columnValue, limit = 100, } = input;
318
- const data = await gql(tok(ctx), `query ($boardId: ID!, $columnId: String!, $columnValue: String!, $limit: Int) { items_page_by_column_values (limit: $limit, board_id: $boardId, columns: [{column_id: $columnId, column_values: [$columnValue]}]) { cursor items { id name created_at state board { id } column_values { id text type value column { title archived description settings_str } } } } }`, { boardId, columnId, columnValue, limit });
305
+ const data = await gql(ctx, `query ($boardId: ID!, $columnId: String!, $columnValue: String!, $limit: Int) { items_page_by_column_values (limit: $limit, board_id: $boardId, columns: [{column_id: $columnId, column_values: [$columnValue]}]) { cursor items { id name created_at state board { id } column_values { id text type value column { title archived description settings_str } } } } }`, { boardId, columnId, columnValue, limit });
319
306
  return data.items_page_by_column_values
320
307
  ?.items;
321
308
  },
@@ -0,0 +1,19 @@
1
+ import { httpsBase, staticCredential } from "../../_shared/credentials.js";
2
+ /** An API token, sent as a bearer to the instance's own /api/ (hosted Monica by default). */
3
+ export const monicaCrmCredential = staticCredential({
4
+ id: "monicaCrm",
5
+ auth: { kind: "bearer" },
6
+ local: { secret: "apiToken" },
7
+ targets: (config) => ({
8
+ api: {
9
+ baseUrl: httpsBase(config.url || "https://app.monicahq.com", "api/"),
10
+ methods: ["GET", "POST", "PUT", "DELETE"],
11
+ },
12
+ }),
13
+ probe: {
14
+ target: "api",
15
+ path: "me",
16
+ method: "GET",
17
+ acceptedStatuses: [200],
18
+ },
19
+ });
@@ -1,39 +1,21 @@
1
- function getConn(ctx) {
2
- const c = ctx.connection.config;
3
- const base = (c.url || "https://app.monicahq.com").replace(/\/$/, "");
4
- return { url: base, token: c.apiToken };
5
- }
6
- async function api(conn, method, endpoint, body, qs) {
7
- const url = new URL(`${conn.url}/api${endpoint}`);
8
- if (qs) {
9
- for (const [k, v] of Object.entries(qs)) {
10
- if (v !== undefined && v !== null)
11
- url.searchParams.set(k, String(v));
12
- }
13
- }
14
- const init = {
1
+ import { credentialJson, pathSegment } from "../../_shared/credentials.js";
2
+ import { monicaCrmCredential } from "./credentials.js";
3
+ function api(ctx, method, endpoint, body, qs) {
4
+ return credentialJson(ctx, monicaCrmCredential, "monicaCrm", {
5
+ target: "api",
6
+ path: endpoint,
15
7
  method,
16
- headers: {
17
- Authorization: `Bearer ${conn.token}`,
18
- "Content-Type": "application/json",
19
- },
20
- };
21
- if (body && Object.keys(body).length > 0)
22
- init.body = JSON.stringify(body);
23
- const res = await fetch(url.toString(), init);
24
- if (!res.ok)
25
- throw new Error(`Monica CRM error ${res.status}: ${await res.text()}`);
26
- if (res.status === 204)
27
- return { success: true };
28
- return res.json();
8
+ query: qs,
9
+ ...(body && Object.keys(body).length > 0 ? { json: body } : {}),
10
+ });
29
11
  }
30
- function registerCrud(rl, resource, plural, conn, createSchema) {
12
+ function registerCrud(rl, resource, plural, createSchema) {
31
13
  rl.registerAction(`${resource}.create`, {
32
14
  access: "write",
33
15
  description: `Create a ${resource}`,
34
16
  inputSchema: createSchema,
35
17
  async execute(input, ctx) {
36
- const data = (await api(conn(ctx), "POST", `/${plural}`, input));
18
+ const data = (await api(ctx, "POST", plural, input));
37
19
  return data.data;
38
20
  },
39
21
  });
@@ -42,7 +24,7 @@ function registerCrud(rl, resource, plural, conn, createSchema) {
42
24
  description: `Get a ${resource}`,
43
25
  inputSchema: { id: { type: "string", required: true } },
44
26
  async execute(input, ctx) {
45
- const data = (await api(conn(ctx), "GET", `/${plural}/${input.id}`));
27
+ const data = (await api(ctx, "GET", `${plural}/${pathSegment(input.id)}`));
46
28
  return data.data;
47
29
  },
48
30
  });
@@ -54,7 +36,7 @@ function registerCrud(rl, resource, plural, conn, createSchema) {
54
36
  const qs = {
55
37
  limit: (input ?? {}).limit ?? 100,
56
38
  };
57
- const data = (await api(conn(ctx), "GET", `/${plural}`, undefined, qs));
39
+ const data = (await api(ctx, "GET", plural, undefined, qs));
58
40
  return data.data;
59
41
  },
60
42
  });
@@ -67,7 +49,7 @@ function registerCrud(rl, resource, plural, conn, createSchema) {
67
49
  },
68
50
  async execute(input, ctx) {
69
51
  const p = input;
70
- const data = (await api(conn(ctx), "PUT", `/${plural}/${p.id}`, p.data));
52
+ const data = (await api(ctx, "PUT", `${plural}/${pathSegment(p.id)}`, p.data));
71
53
  return data.data;
72
54
  },
73
55
  });
@@ -76,7 +58,7 @@ function registerCrud(rl, resource, plural, conn, createSchema) {
76
58
  description: `Delete a ${resource}`,
77
59
  inputSchema: { id: { type: "string", required: true } },
78
60
  async execute(input, ctx) {
79
- await api(conn(ctx), "DELETE", `/${plural}/${input.id}`);
61
+ await api(ctx, "DELETE", `${plural}/${pathSegment(input.id)}`);
80
62
  return { success: true };
81
63
  },
82
64
  });
@@ -84,6 +66,7 @@ function registerCrud(rl, resource, plural, conn, createSchema) {
84
66
  export default function monicaCrm(rl) {
85
67
  rl.setName("monicaCrm");
86
68
  rl.setVersion("0.1.0");
69
+ rl.setCredential(monicaCrmCredential);
87
70
  rl.setConnectionSchema({
88
71
  apiToken: {
89
72
  type: "string",
@@ -98,32 +81,32 @@ export default function monicaCrm(rl) {
98
81
  env: "MONICA_URL",
99
82
  },
100
83
  });
101
- registerCrud(rl, "contact", "contacts", getConn, {
84
+ registerCrud(rl, "contact", "contacts", {
102
85
  first_name: { type: "string", required: true },
103
86
  last_name: { type: "string", required: false },
104
87
  gender_id: { type: "number", required: false },
105
88
  });
106
- registerCrud(rl, "activity", "activities", getConn, {
89
+ registerCrud(rl, "activity", "activities", {
107
90
  summary: { type: "string", required: true },
108
91
  description: { type: "string", required: false },
109
92
  activity_type_id: { type: "number", required: false },
110
93
  });
111
- registerCrud(rl, "note", "notes", getConn, {
94
+ registerCrud(rl, "note", "notes", {
112
95
  contact_id: { type: "number", required: true },
113
96
  body: { type: "string", required: true },
114
97
  });
115
- registerCrud(rl, "task", "tasks", getConn, {
98
+ registerCrud(rl, "task", "tasks", {
116
99
  title: { type: "string", required: true },
117
100
  contact_id: { type: "number", required: false },
118
101
  });
119
- registerCrud(rl, "tag", "tags", getConn, {
102
+ registerCrud(rl, "tag", "tags", {
120
103
  name: { type: "string", required: true },
121
104
  });
122
- registerCrud(rl, "journalEntry", "journal", getConn, {
105
+ registerCrud(rl, "journalEntry", "journal", {
123
106
  title: { type: "string", required: true },
124
107
  post: { type: "string", required: true },
125
108
  });
126
- registerCrud(rl, "reminder", "reminders", getConn, {
109
+ registerCrud(rl, "reminder", "reminders", {
127
110
  contact_id: { type: "number", required: true },
128
111
  title: { type: "string", required: true },
129
112
  initial_date: { type: "string", required: true },
@@ -133,12 +116,12 @@ export default function monicaCrm(rl) {
133
116
  description: "one_time, week, month, year",
134
117
  },
135
118
  });
136
- registerCrud(rl, "call", "calls", getConn, {
119
+ registerCrud(rl, "call", "calls", {
137
120
  contact_id: { type: "number", required: true },
138
121
  content: { type: "string", required: false },
139
122
  called_at: { type: "string", required: false },
140
123
  });
141
- registerCrud(rl, "conversation", "conversations", getConn, {
124
+ registerCrud(rl, "conversation", "conversations", {
142
125
  contact_id: { type: "number", required: true },
143
126
  contact_field_type_id: { type: "number", required: true },
144
127
  happened_at: { type: "string", required: true },
@@ -0,0 +1,10 @@
1
+ import { staticCredential } from "../../_shared/credentials.js";
2
+ /** The auth key, appended by the transport as the authkey query parameter. */
3
+ export const msg91Credential = staticCredential({
4
+ id: "msg91",
5
+ auth: { kind: "queryKey", param: "authkey" },
6
+ local: { secret: "authkey" },
7
+ targets: {
8
+ api: { baseUrl: "https://api.msg91.com/api/", methods: ["GET"] },
9
+ },
10
+ });
@@ -1,6 +1,9 @@
1
+ import { credentialOk } from "../../_shared/credentials.js";
2
+ import { msg91Credential } from "./credentials.js";
1
3
  export default function msg91(rl) {
2
4
  rl.setName("msg91");
3
5
  rl.setVersion("0.1.0");
6
+ rl.setCredential(msg91Credential);
4
7
  rl.setConnectionSchema({
5
8
  authkey: {
6
9
  type: "string",
@@ -23,17 +26,18 @@ export default function msg91(rl) {
23
26
  },
24
27
  async execute(input, ctx) {
25
28
  const { from, to, message } = input;
26
- const authkey = ctx.connection.config.authkey;
27
- const url = new URL("https://api.msg91.com/api/sendhttp.php");
28
- url.searchParams.set("authkey", authkey);
29
- url.searchParams.set("route", "4");
30
- url.searchParams.set("country", "0");
31
- url.searchParams.set("sender", from);
32
- url.searchParams.set("mobiles", to);
33
- url.searchParams.set("message", message);
34
- const res = await fetch(url.toString());
35
- if (!res.ok)
36
- throw new Error(`MSG91 API error ${res.status}: ${await res.text()}`);
29
+ // The response body is a bare request ID, not JSON.
30
+ const res = await credentialOk(ctx, msg91Credential, "msg91", {
31
+ target: "api",
32
+ path: "sendhttp.php",
33
+ query: {
34
+ route: "4",
35
+ country: "0",
36
+ sender: from,
37
+ mobiles: to,
38
+ message,
39
+ },
40
+ });
37
41
  const text = await res.text();
38
42
  return { requestId: text };
39
43
  },
@@ -0,0 +1,22 @@
1
+ import { staticCredential } from "../../_shared/credentials.js";
2
+ /**
3
+ * An API key, appended by the transport as the api_key query parameter on
4
+ * NASA's one API origin.
5
+ */
6
+ export const nasaCredential = staticCredential({
7
+ id: "nasa",
8
+ auth: { kind: "queryKey", param: "api_key" },
9
+ local: { secret: "apiKey" },
10
+ targets: {
11
+ api: {
12
+ baseUrl: "https://api.nasa.gov/",
13
+ methods: ["GET"],
14
+ },
15
+ },
16
+ probe: {
17
+ target: "api",
18
+ path: "planetary/apod",
19
+ method: "GET",
20
+ acceptedStatuses: [200],
21
+ },
22
+ });