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,32 +1,15 @@
1
- function getConn(ctx) {
2
- const host = ctx.connection.config.host.replace(/\/$/, "");
3
- const token = ctx.connection.config.accessToken;
4
- return { host, token };
5
- }
6
- async function api(host, token, method, path, body, qs) {
7
- const url = new URL(`${host}${path}`);
8
- if (qs) {
9
- for (const [k, v] of Object.entries(qs)) {
10
- if (v)
11
- url.searchParams.set(k, v);
12
- }
13
- }
14
- const init = {
1
+ import { credentialJson, credentialOk, pathSegment, pathSegments, } from "../../_shared/credentials.js";
2
+ import { databricksCredential } from "./credentials.js";
3
+ function api(ctx, method, path, body, qs) {
4
+ return credentialJson(ctx, databricksCredential, "databricks", {
5
+ target: "workspace",
6
+ path,
15
7
  method,
16
- headers: {
17
- Authorization: `Bearer ${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.status === 204 || res.headers.get("content-length") === "0")
25
- return { success: true };
26
- if (!res.ok)
27
- throw new Error(`Databricks error ${res.status}: ${await res.text()}`);
28
- const text = await res.text();
29
- return text ? JSON.parse(text) : { success: true };
8
+ query: qs
9
+ ? Object.fromEntries(Object.entries(qs).filter(([, v]) => v))
10
+ : undefined,
11
+ ...(body && Object.keys(body).length > 0 ? { json: body } : {}),
12
+ });
30
13
  }
31
14
  function volumeParts(volumePath) {
32
15
  const parts = volumePath.split(".");
@@ -40,6 +23,7 @@ function sleep(ms) {
40
23
  export default function databricks(rl) {
41
24
  rl.setName("databricks");
42
25
  rl.setVersion("0.1.0");
26
+ rl.setCredential(databricksCredential);
43
27
  rl.setConnectionSchema({
44
28
  host: {
45
29
  type: "string",
@@ -72,7 +56,6 @@ export default function databricks(rl) {
72
56
  },
73
57
  },
74
58
  async execute(input, ctx) {
75
- const { host, token } = getConn(ctx);
76
59
  const p = input;
77
60
  const params = (p.parameters ?? []);
78
61
  const body = {
@@ -83,7 +66,7 @@ export default function databricks(rl) {
83
66
  };
84
67
  if (params.length > 0)
85
68
  body.parameters = params.map(({ name, value, type }) => type ? { name, value, type } : { name, value });
86
- let result = (await api(host, token, "POST", "/api/2.0/sql/statements", body));
69
+ let result = (await api(ctx, "POST", "api/2.0/sql/statements", body));
87
70
  const statementId = result.statement_id;
88
71
  let status = result.status.state;
89
72
  let retries = 0;
@@ -92,7 +75,7 @@ export default function databricks(rl) {
92
75
  status !== "CANCELED" &&
93
76
  retries < 60) {
94
77
  await sleep(5000);
95
- result = (await api(host, token, "GET", `/api/2.0/sql/statements/${statementId}`));
78
+ result = (await api(ctx, "GET", `api/2.0/sql/statements/${pathSegment(statementId)}`));
96
79
  status = result.status.state;
97
80
  retries++;
98
81
  }
@@ -110,7 +93,7 @@ export default function databricks(rl) {
110
93
  }
111
94
  let chunkIdx = allRows.length > 0 ? 1 : 0;
112
95
  while (chunkIdx < totalChunks) {
113
- const chunk = (await api(host, token, "GET", `/api/2.0/sql/statements/${statementId}/result/chunks/${chunkIdx}`));
96
+ const chunk = (await api(ctx, "GET", `api/2.0/sql/statements/${pathSegment(statementId)}/result/chunks/${pathSegment(chunkIdx)}`));
114
97
  if (chunk.data_array)
115
98
  allRows.push(...chunk.data_array);
116
99
  chunkIdx++;
@@ -140,10 +123,9 @@ export default function databricks(rl) {
140
123
  directoryPath: { type: "string", required: true },
141
124
  },
142
125
  async execute(input, ctx) {
143
- const { host, token } = getConn(ctx);
144
126
  const p = input;
145
127
  const [cat, sch, vol] = volumeParts(p.volumePath);
146
- await api(host, token, "PUT", `/api/2.0/fs/directories/Volumes/${cat}/${sch}/${vol}/${p.directoryPath}`);
128
+ await api(ctx, "PUT", `api/2.0/fs/directories/Volumes/${pathSegment(cat)}/${pathSegment(sch)}/${pathSegment(vol)}/${pathSegments(p.directoryPath)}`);
147
129
  return { success: true, directoryPath: p.directoryPath };
148
130
  },
149
131
  });
@@ -159,10 +141,9 @@ export default function databricks(rl) {
159
141
  directoryPath: { type: "string", required: true },
160
142
  },
161
143
  async execute(input, ctx) {
162
- const { host, token } = getConn(ctx);
163
144
  const p = input;
164
145
  const [cat, sch, vol] = volumeParts(p.volumePath);
165
- await api(host, token, "DELETE", `/api/2.0/fs/directories/Volumes/${cat}/${sch}/${vol}/${p.directoryPath}`);
146
+ await api(ctx, "DELETE", `api/2.0/fs/directories/Volumes/${pathSegment(cat)}/${pathSegment(sch)}/${pathSegment(vol)}/${pathSegments(p.directoryPath)}`);
166
147
  return { success: true };
167
148
  },
168
149
  });
@@ -178,10 +159,9 @@ export default function databricks(rl) {
178
159
  filePath: { type: "string", required: true },
179
160
  },
180
161
  async execute(input, ctx) {
181
- const { host, token } = getConn(ctx);
182
162
  const p = input;
183
163
  const [cat, sch, vol] = volumeParts(p.volumePath);
184
- await api(host, token, "DELETE", `/api/2.0/fs/files/Volumes/${cat}/${sch}/${vol}/${p.filePath}`);
164
+ await api(ctx, "DELETE", `api/2.0/fs/files/Volumes/${pathSegment(cat)}/${pathSegment(sch)}/${pathSegment(vol)}/${pathSegments(p.filePath)}`);
185
165
  return { success: true };
186
166
  },
187
167
  });
@@ -197,16 +177,13 @@ export default function databricks(rl) {
197
177
  filePath: { type: "string", required: true },
198
178
  },
199
179
  async execute(input, ctx) {
200
- const { host, token } = getConn(ctx);
201
180
  const p = input;
202
181
  const [cat, sch, vol] = volumeParts(p.volumePath);
203
- const url = `${host}/api/2.0/fs/files/Volumes/${cat}/${sch}/${vol}/${p.filePath}`;
204
- const res = await fetch(url, {
182
+ const res = await credentialOk(ctx, databricksCredential, "databricks", {
183
+ target: "workspace",
184
+ path: `api/2.0/fs/files/Volumes/${pathSegment(cat)}/${pathSegment(sch)}/${pathSegment(vol)}/${pathSegments(p.filePath)}`,
205
185
  method: "HEAD",
206
- headers: { Authorization: `Bearer ${token}` },
207
186
  });
208
- if (!res.ok)
209
- throw new Error(`Databricks error ${res.status}`);
210
187
  return {
211
188
  filePath: p.filePath,
212
189
  contentLength: res.headers.get("content-length"),
@@ -229,16 +206,15 @@ export default function databricks(rl) {
229
206
  pageToken: { type: "string", required: false },
230
207
  },
231
208
  async execute(input, ctx) {
232
- const { host, token } = getConn(ctx);
233
209
  const p = input;
234
210
  const [cat, sch, vol] = volumeParts(p.volumePath);
235
- const dir = p.directoryPath ? `/${p.directoryPath}` : "";
211
+ const dir = p.directoryPath ? `/${pathSegments(p.directoryPath)}` : "";
236
212
  const qs = {};
237
213
  if (p.pageSize)
238
214
  qs.page_size = String(p.pageSize);
239
215
  if (p.pageToken)
240
216
  qs.page_token = p.pageToken;
241
- return api(host, token, "GET", `/api/2.0/fs/directories/Volumes/${cat}/${sch}/${vol}${dir}`, undefined, qs);
217
+ return api(ctx, "GET", `api/2.0/fs/directories/Volumes/${pathSegment(cat)}/${pathSegment(sch)}/${pathSegment(vol)}${dir}`, undefined, qs);
242
218
  },
243
219
  });
244
220
  // ── Genie ───────────────────────────────────────────
@@ -250,9 +226,8 @@ export default function databricks(rl) {
250
226
  initialMessage: { type: "string", required: true },
251
227
  },
252
228
  async execute(input, ctx) {
253
- const { host, token } = getConn(ctx);
254
229
  const p = input;
255
- return api(host, token, "POST", `/api/2.0/genie/spaces/${p.spaceId}/start-conversation`, { content: p.initialMessage });
230
+ return api(ctx, "POST", `api/2.0/genie/spaces/${pathSegment(p.spaceId)}/start-conversation`, { content: p.initialMessage });
256
231
  },
257
232
  });
258
233
  rl.registerAction("genie.createMessage", {
@@ -264,9 +239,8 @@ export default function databricks(rl) {
264
239
  message: { type: "string", required: true },
265
240
  },
266
241
  async execute(input, ctx) {
267
- const { host, token } = getConn(ctx);
268
242
  const p = input;
269
- return api(host, token, "POST", `/api/2.0/genie/spaces/${p.spaceId}/conversations/${p.conversationId}/messages`, { content: p.message });
243
+ return api(ctx, "POST", `api/2.0/genie/spaces/${pathSegment(p.spaceId)}/conversations/${pathSegment(p.conversationId)}/messages`, { content: p.message });
270
244
  },
271
245
  });
272
246
  rl.registerAction("genie.getMessage", {
@@ -278,9 +252,8 @@ export default function databricks(rl) {
278
252
  messageId: { type: "string", required: true },
279
253
  },
280
254
  async execute(input, ctx) {
281
- const { host, token } = getConn(ctx);
282
255
  const p = input;
283
- return api(host, token, "GET", `/api/2.0/genie/spaces/${p.spaceId}/conversations/${p.conversationId}/messages/${p.messageId}`);
256
+ return api(ctx, "GET", `api/2.0/genie/spaces/${pathSegment(p.spaceId)}/conversations/${pathSegment(p.conversationId)}/messages/${pathSegment(p.messageId)}`);
284
257
  },
285
258
  });
286
259
  rl.registerAction("genie.getQueryResults", {
@@ -293,9 +266,8 @@ export default function databricks(rl) {
293
266
  attachmentId: { type: "string", required: true },
294
267
  },
295
268
  async execute(input, ctx) {
296
- const { host, token } = getConn(ctx);
297
269
  const p = input;
298
- return api(host, token, "GET", `/api/2.0/genie/spaces/${p.spaceId}/conversations/${p.conversationId}/messages/${p.messageId}/attachments/${p.attachmentId}/query-result`);
270
+ return api(ctx, "GET", `api/2.0/genie/spaces/${pathSegment(p.spaceId)}/conversations/${pathSegment(p.conversationId)}/messages/${pathSegment(p.messageId)}/attachments/${pathSegment(p.attachmentId)}/query-result`);
299
271
  },
300
272
  });
301
273
  rl.registerAction("genie.executeMessageQuery", {
@@ -308,9 +280,8 @@ export default function databricks(rl) {
308
280
  attachmentId: { type: "string", required: true },
309
281
  },
310
282
  async execute(input, ctx) {
311
- const { host, token } = getConn(ctx);
312
283
  const p = input;
313
- return api(host, token, "POST", `/api/2.0/genie/spaces/${p.spaceId}/conversations/${p.conversationId}/messages/${p.messageId}/attachments/${p.attachmentId}/execute-query`);
284
+ return api(ctx, "POST", `api/2.0/genie/spaces/${pathSegment(p.spaceId)}/conversations/${pathSegment(p.conversationId)}/messages/${pathSegment(p.messageId)}/attachments/${pathSegment(p.attachmentId)}/execute-query`);
314
285
  },
315
286
  });
316
287
  rl.registerAction("genie.getSpace", {
@@ -318,8 +289,7 @@ export default function databricks(rl) {
318
289
  description: "Get a Genie space",
319
290
  inputSchema: { spaceId: { type: "string", required: true } },
320
291
  async execute(input, ctx) {
321
- const { host, token } = getConn(ctx);
322
- return api(host, token, "GET", `/api/2.0/genie/spaces/${input.spaceId}`);
292
+ return api(ctx, "GET", `api/2.0/genie/spaces/${pathSegment(input.spaceId)}`);
323
293
  },
324
294
  });
325
295
  // ── Model Serving ───────────────────────────────────
@@ -335,10 +305,9 @@ export default function databricks(rl) {
335
305
  },
336
306
  },
337
307
  async execute(input, ctx) {
338
- const { host, token } = getConn(ctx);
339
308
  const p = input;
340
309
  const body = p.requestBody;
341
- return api(host, token, "POST", `/serving-endpoints/${p.endpointName}/invocations`, body);
310
+ return api(ctx, "POST", `serving-endpoints/${pathSegment(p.endpointName)}/invocations`, body);
342
311
  },
343
312
  });
344
313
  // ── Unity Catalog: Catalogs ─────────────────────────
@@ -350,12 +319,11 @@ export default function databricks(rl) {
350
319
  comment: { type: "string", required: false },
351
320
  },
352
321
  async execute(input, ctx) {
353
- const { host, token } = getConn(ctx);
354
322
  const p = input;
355
323
  const body = { name: p.name };
356
324
  if (p.comment)
357
325
  body.comment = p.comment;
358
- return api(host, token, "POST", "/api/2.1/unity-catalog/catalogs", body);
326
+ return api(ctx, "POST", "api/2.1/unity-catalog/catalogs", body);
359
327
  },
360
328
  });
361
329
  rl.registerAction("catalog.get", {
@@ -363,8 +331,7 @@ export default function databricks(rl) {
363
331
  description: "Get a catalog",
364
332
  inputSchema: { name: { type: "string", required: true } },
365
333
  async execute(input, ctx) {
366
- const { host, token } = getConn(ctx);
367
- return api(host, token, "GET", `/api/2.1/unity-catalog/catalogs/${input.name}`);
334
+ return api(ctx, "GET", `api/2.1/unity-catalog/catalogs/${pathSegment(input.name)}`);
368
335
  },
369
336
  });
370
337
  rl.registerAction("catalog.list", {
@@ -372,8 +339,7 @@ export default function databricks(rl) {
372
339
  description: "List all catalogs",
373
340
  inputSchema: {},
374
341
  async execute(_input, ctx) {
375
- const { host, token } = getConn(ctx);
376
- return api(host, token, "GET", "/api/2.1/unity-catalog/catalogs");
342
+ return api(ctx, "GET", "api/2.1/unity-catalog/catalogs");
377
343
  },
378
344
  });
379
345
  rl.registerAction("catalog.update", {
@@ -384,9 +350,8 @@ export default function databricks(rl) {
384
350
  comment: { type: "string", required: true },
385
351
  },
386
352
  async execute(input, ctx) {
387
- const { host, token } = getConn(ctx);
388
353
  const p = input;
389
- return api(host, token, "PATCH", `/api/2.1/unity-catalog/catalogs/${p.name}`, { comment: p.comment });
354
+ return api(ctx, "PATCH", `api/2.1/unity-catalog/catalogs/${pathSegment(p.name)}`, { comment: p.comment });
390
355
  },
391
356
  });
392
357
  rl.registerAction("catalog.delete", {
@@ -394,8 +359,7 @@ export default function databricks(rl) {
394
359
  description: "Delete a catalog",
395
360
  inputSchema: { name: { type: "string", required: true } },
396
361
  async execute(input, ctx) {
397
- const { host, token } = getConn(ctx);
398
- await api(host, token, "DELETE", `/api/2.1/unity-catalog/catalogs/${input.name}`);
362
+ await api(ctx, "DELETE", `api/2.1/unity-catalog/catalogs/${pathSegment(input.name)}`);
399
363
  return { success: true };
400
364
  },
401
365
  });
@@ -416,7 +380,6 @@ export default function databricks(rl) {
416
380
  comment: { type: "string", required: false },
417
381
  },
418
382
  async execute(input, ctx) {
419
- const { host, token } = getConn(ctx);
420
383
  const p = input;
421
384
  const body = {
422
385
  catalog_name: p.catalogName,
@@ -430,7 +393,7 @@ export default function databricks(rl) {
430
393
  body.columns = p.columns;
431
394
  if (p.comment)
432
395
  body.comment = p.comment;
433
- return api(host, token, "POST", "/api/2.1/unity-catalog/tables", body);
396
+ return api(ctx, "POST", "api/2.1/unity-catalog/tables", body);
434
397
  },
435
398
  });
436
399
  rl.registerAction("table.get", {
@@ -444,8 +407,7 @@ export default function databricks(rl) {
444
407
  },
445
408
  },
446
409
  async execute(input, ctx) {
447
- const { host, token } = getConn(ctx);
448
- return api(host, token, "GET", `/api/2.1/unity-catalog/tables/${input.fullName}`);
410
+ return api(ctx, "GET", `api/2.1/unity-catalog/tables/${pathSegment(input.fullName)}`);
449
411
  },
450
412
  });
451
413
  rl.registerAction("table.list", {
@@ -456,14 +418,13 @@ export default function databricks(rl) {
456
418
  schemaName: { type: "string", required: false },
457
419
  },
458
420
  async execute(input, ctx) {
459
- const { host, token } = getConn(ctx);
460
421
  const p = (input ?? {});
461
422
  const qs = {};
462
423
  if (p.catalogName)
463
424
  qs.catalog_name = p.catalogName;
464
425
  if (p.schemaName)
465
426
  qs.schema_name = p.schemaName;
466
- return api(host, token, "GET", "/api/2.1/unity-catalog/tables", undefined, qs);
427
+ return api(ctx, "GET", "api/2.1/unity-catalog/tables", undefined, qs);
467
428
  },
468
429
  });
469
430
  rl.registerAction("table.delete", {
@@ -477,8 +438,7 @@ export default function databricks(rl) {
477
438
  },
478
439
  },
479
440
  async execute(input, ctx) {
480
- const { host, token } = getConn(ctx);
481
- await api(host, token, "DELETE", `/api/2.1/unity-catalog/tables/${input.fullName}`);
441
+ await api(ctx, "DELETE", `api/2.1/unity-catalog/tables/${pathSegment(input.fullName)}`);
482
442
  return { success: true };
483
443
  },
484
444
  });
@@ -503,7 +463,6 @@ export default function databricks(rl) {
503
463
  comment: { type: "string", required: false },
504
464
  },
505
465
  async execute(input, ctx) {
506
- const { host, token } = getConn(ctx);
507
466
  const p = input;
508
467
  if (p.volumeType === "EXTERNAL" && !p.storageLocation)
509
468
  throw new Error("storageLocation required for EXTERNAL volumes");
@@ -517,7 +476,7 @@ export default function databricks(rl) {
517
476
  body.storage_location = p.storageLocation;
518
477
  if (p.comment)
519
478
  body.comment = p.comment;
520
- return api(host, token, "POST", "/api/2.1/unity-catalog/volumes", body);
479
+ return api(ctx, "POST", "api/2.1/unity-catalog/volumes", body);
521
480
  },
522
481
  });
523
482
  rl.registerAction("volume.get", {
@@ -529,9 +488,8 @@ export default function databricks(rl) {
529
488
  volumeName: { type: "string", required: true },
530
489
  },
531
490
  async execute(input, ctx) {
532
- const { host, token } = getConn(ctx);
533
491
  const p = input;
534
- return api(host, token, "GET", `/api/2.1/unity-catalog/volumes/${p.catalogName}.${p.schemaName}.${p.volumeName}`);
492
+ return api(ctx, "GET", `api/2.1/unity-catalog/volumes/${pathSegment(p.catalogName)}.${pathSegment(p.schemaName)}.${pathSegment(p.volumeName)}`);
535
493
  },
536
494
  });
537
495
  rl.registerAction("volume.list", {
@@ -542,14 +500,13 @@ export default function databricks(rl) {
542
500
  schemaName: { type: "string", required: false },
543
501
  },
544
502
  async execute(input, ctx) {
545
- const { host, token } = getConn(ctx);
546
503
  const p = (input ?? {});
547
504
  const qs = {};
548
505
  if (p.catalogName)
549
506
  qs.catalog_name = p.catalogName;
550
507
  if (p.schemaName)
551
508
  qs.schema_name = p.schemaName;
552
- return api(host, token, "GET", "/api/2.1/unity-catalog/volumes", undefined, qs);
509
+ return api(ctx, "GET", "api/2.1/unity-catalog/volumes", undefined, qs);
553
510
  },
554
511
  });
555
512
  rl.registerAction("volume.delete", {
@@ -561,9 +518,8 @@ export default function databricks(rl) {
561
518
  volumeName: { type: "string", required: true },
562
519
  },
563
520
  async execute(input, ctx) {
564
- const { host, token } = getConn(ctx);
565
521
  const p = input;
566
- await api(host, token, "DELETE", `/api/2.1/unity-catalog/volumes/${p.catalogName}.${p.schemaName}.${p.volumeName}`);
522
+ await api(ctx, "DELETE", `api/2.1/unity-catalog/volumes/${pathSegment(p.catalogName)}.${pathSegment(p.schemaName)}.${pathSegment(p.volumeName)}`);
567
523
  return { success: true };
568
524
  },
569
525
  });
@@ -597,7 +553,6 @@ export default function databricks(rl) {
597
553
  },
598
554
  },
599
555
  async execute(input, ctx) {
600
- const { host, token } = getConn(ctx);
601
556
  const p = input;
602
557
  const params = (Array.isArray(p.inputParams)
603
558
  ? p.inputParams
@@ -607,7 +562,7 @@ export default function databricks(rl) {
607
562
  type_text: param.type_text ?? param.type_name,
608
563
  type_json: param.type_json ?? JSON.stringify({ name: param.type_name }),
609
564
  }));
610
- return api(host, token, "POST", "/api/2.1/unity-catalog/functions", {
565
+ return api(ctx, "POST", "api/2.1/unity-catalog/functions", {
611
566
  function_info: {
612
567
  name: p.functionName,
613
568
  catalog_name: p.catalogName,
@@ -638,8 +593,7 @@ export default function databricks(rl) {
638
593
  },
639
594
  },
640
595
  async execute(input, ctx) {
641
- const { host, token } = getConn(ctx);
642
- return api(host, token, "GET", `/api/2.1/unity-catalog/functions/${input.fullName}`);
596
+ return api(ctx, "GET", `api/2.1/unity-catalog/functions/${pathSegment(input.fullName)}`);
643
597
  },
644
598
  });
645
599
  rl.registerAction("function.list", {
@@ -650,14 +604,13 @@ export default function databricks(rl) {
650
604
  schemaName: { type: "string", required: false },
651
605
  },
652
606
  async execute(input, ctx) {
653
- const { host, token } = getConn(ctx);
654
607
  const p = (input ?? {});
655
608
  const qs = {};
656
609
  if (p.catalogName)
657
610
  qs.catalog_name = p.catalogName;
658
611
  if (p.schemaName)
659
612
  qs.schema_name = p.schemaName;
660
- return api(host, token, "GET", "/api/2.1/unity-catalog/functions", undefined, qs);
613
+ return api(ctx, "GET", "api/2.1/unity-catalog/functions", undefined, qs);
661
614
  },
662
615
  });
663
616
  rl.registerAction("function.delete", {
@@ -671,8 +624,7 @@ export default function databricks(rl) {
671
624
  },
672
625
  },
673
626
  async execute(input, ctx) {
674
- const { host, token } = getConn(ctx);
675
- await api(host, token, "DELETE", `/api/2.1/unity-catalog/functions/${input.fullName}`);
627
+ await api(ctx, "DELETE", `api/2.1/unity-catalog/functions/${pathSegment(input.fullName)}`);
676
628
  return { success: true };
677
629
  },
678
630
  });
@@ -701,7 +653,6 @@ export default function databricks(rl) {
701
653
  },
702
654
  },
703
655
  async execute(input, ctx) {
704
- const { host, token } = getConn(ctx);
705
656
  const p = input;
706
657
  const body = {
707
658
  name: p.indexName,
@@ -713,7 +664,7 @@ export default function databricks(rl) {
713
664
  body.delta_sync_index_spec = p.deltaSyncIndexSpec;
714
665
  if (p.indexType === "DIRECT_ACCESS" && p.directAccessIndexSpec)
715
666
  body.direct_access_index_spec = p.directAccessIndexSpec;
716
- return api(host, token, "POST", "/api/2.0/vector-search/indexes", body);
667
+ return api(ctx, "POST", "api/2.0/vector-search/indexes", body);
717
668
  },
718
669
  });
719
670
  rl.registerAction("vectorSearch.getIndex", {
@@ -721,8 +672,7 @@ export default function databricks(rl) {
721
672
  description: "Get a vector search index",
722
673
  inputSchema: { indexName: { type: "string", required: true } },
723
674
  async execute(input, ctx) {
724
- const { host, token } = getConn(ctx);
725
- return api(host, token, "GET", `/api/2.0/vector-search/indexes/${input.indexName}`);
675
+ return api(ctx, "GET", `api/2.0/vector-search/indexes/${pathSegment(input.indexName)}`);
726
676
  },
727
677
  });
728
678
  rl.registerAction("vectorSearch.listIndexes", {
@@ -730,8 +680,7 @@ export default function databricks(rl) {
730
680
  description: "List vector search indexes for an endpoint",
731
681
  inputSchema: { endpointName: { type: "string", required: true } },
732
682
  async execute(input, ctx) {
733
- const { host, token } = getConn(ctx);
734
- return api(host, token, "GET", "/api/2.0/vector-search/indexes", undefined, {
683
+ return api(ctx, "GET", "api/2.0/vector-search/indexes", undefined, {
735
684
  endpoint_name: input
736
685
  .endpointName,
737
686
  });
@@ -775,7 +724,6 @@ export default function databricks(rl) {
775
724
  columnsToRerank: { type: "string", required: false },
776
725
  },
777
726
  async execute(input, ctx) {
778
- const { host, token } = getConn(ctx);
779
727
  const p = input;
780
728
  const body = {
781
729
  num_results: p.numResults ?? 10,
@@ -804,7 +752,7 @@ export default function databricks(rl) {
804
752
  },
805
753
  };
806
754
  }
807
- return api(host, token, "POST", `/api/2.0/vector-search/indexes/${p.indexName}/query`, body);
755
+ return api(ctx, "POST", `api/2.0/vector-search/indexes/${pathSegment(p.indexName)}/query`, body);
808
756
  },
809
757
  });
810
758
  }
@@ -0,0 +1,19 @@
1
+ import { configChoice, staticCredential } from "../../_shared/credentials.js";
2
+ /**
3
+ * An authentication key, sent as `Authorization: DeepL-Auth-Key {key}` to
4
+ * the plan's API host: api.deepl.com for pro, api-free.deepl.com for free
5
+ * (the default).
6
+ */
7
+ export const deeplCredential = staticCredential({
8
+ id: "deepl",
9
+ auth: { kind: "apiKey", header: "Authorization", prefix: "DeepL-Auth-Key " },
10
+ local: { secret: "apiKey" },
11
+ targets: (config) => ({
12
+ api: {
13
+ baseUrl: configChoice(config.plan, ["free", "pro"], "free") === "pro"
14
+ ? "https://api.deepl.com/v2/"
15
+ : "https://api-free.deepl.com/v2/",
16
+ methods: ["GET", "POST"],
17
+ },
18
+ }),
19
+ });
@@ -1,43 +1,19 @@
1
- async function apiRequest(apiKey, isPro, method, endpoint, params) {
2
- const baseUrl = isPro
3
- ? "https://api.deepl.com/v2"
4
- : "https://api-free.deepl.com/v2";
5
- const url = new URL(`${baseUrl}${endpoint}`);
6
- const opts = {
1
+ import { credentialJson } from "../../_shared/credentials.js";
2
+ import { deeplCredential } from "./credentials.js";
3
+ async function apiRequest(ctx, method, endpoint, params) {
4
+ const given = Object.values(params ?? {}).some((v) => v !== undefined && v !== null);
5
+ // DeepL takes form-encoded bodies, not JSON.
6
+ return credentialJson(ctx, deeplCredential, "deepl", {
7
+ target: "api",
8
+ path: endpoint,
7
9
  method,
8
- headers: {
9
- Authorization: `DeepL-Auth-Key ${apiKey}`,
10
- "Content-Type": "application/x-www-form-urlencoded",
11
- },
12
- };
13
- if (params && Object.keys(params).length > 0) {
14
- if (method === "GET") {
15
- for (const [k, v] of Object.entries(params)) {
16
- if (v !== undefined && v !== null)
17
- url.searchParams.set(k, String(v));
18
- }
19
- }
20
- else {
21
- opts.body = new URLSearchParams(Object.entries(params)
22
- .filter(([, v]) => v !== undefined && v !== null)
23
- .map(([k, v]) => [k, String(v)])).toString();
24
- }
25
- }
26
- const res = await fetch(url.toString(), opts);
27
- if (!res.ok)
28
- throw new Error(`DeepL API error ${res.status}: ${await res.text()}`);
29
- return res.json();
30
- }
31
- function getConn(ctx) {
32
- const cfg = ctx.connection.config;
33
- return {
34
- apiKey: cfg.apiKey,
35
- isPro: cfg.plan === "pro",
36
- };
10
+ ...(method === "GET" ? { query: params } : given ? { form: params } : {}),
11
+ });
37
12
  }
38
13
  export default function deepl(rl) {
39
14
  rl.setName("deepl");
40
15
  rl.setVersion("0.1.0");
16
+ rl.setCredential(deeplCredential);
41
17
  rl.setConnectionSchema({
42
18
  apiKey: {
43
19
  type: "string",
@@ -75,7 +51,6 @@ export default function deepl(rl) {
75
51
  },
76
52
  async execute(input, ctx) {
77
53
  const { text, targetLang, sourceLang } = input;
78
- const { apiKey, isPro } = getConn(ctx);
79
54
  const params = {
80
55
  text,
81
56
  target_lang: targetLang,
@@ -85,7 +60,7 @@ export default function deepl(rl) {
85
60
  ? "EN"
86
61
  : sourceLang;
87
62
  }
88
- const data = (await apiRequest(apiKey, isPro, "POST", "/translate", params));
63
+ const data = (await apiRequest(ctx, "POST", "translate", params));
89
64
  const translations = data.translations;
90
65
  return translations?.[0] ?? data;
91
66
  },
@@ -102,8 +77,7 @@ export default function deepl(rl) {
102
77
  },
103
78
  async execute(input, ctx) {
104
79
  const { type = "target" } = (input ?? {});
105
- const { apiKey, isPro } = getConn(ctx);
106
- return apiRequest(apiKey, isPro, "GET", "/languages", { type });
80
+ return apiRequest(ctx, "GET", "languages", { type });
107
81
  },
108
82
  });
109
83
  }
@@ -0,0 +1,26 @@
1
+ import { staticCredential } from "../../_shared/credentials.js";
2
+ /** An API key and secret, sent as the Api-Key and Api-Secret headers to Demio's one API origin. */
3
+ export const demioCredential = staticCredential({
4
+ id: "demio",
5
+ auth: {
6
+ kind: "static",
7
+ parts: ["key", "secret"],
8
+ placements: [
9
+ { in: "header", part: "key", name: "Api-Key" },
10
+ { in: "header", part: "secret", name: "Api-Secret" },
11
+ ],
12
+ },
13
+ local: { key: "apiKey", secret: "apiSecret" },
14
+ targets: {
15
+ api: {
16
+ baseUrl: "https://my.demio.com/api/v1/",
17
+ methods: ["GET", "PUT"],
18
+ },
19
+ },
20
+ probe: {
21
+ target: "api",
22
+ path: "ping",
23
+ method: "GET",
24
+ acceptedStatuses: [200],
25
+ },
26
+ });