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,39 +1,28 @@
1
- const BASE_URL = "https://api.currents.dev/v1";
2
- async function apiRequest(apiKey, method, endpoint, body, qs) {
3
- const url = new URL(`${BASE_URL}${endpoint}`);
4
- if (qs) {
5
- for (const [k, v] of Object.entries(qs)) {
6
- if (v !== undefined && v !== null) {
7
- if (Array.isArray(v)) {
8
- for (const item of v)
9
- url.searchParams.append(`${k}[]`, String(item));
10
- }
11
- else {
12
- url.searchParams.set(k, String(v));
13
- }
14
- }
15
- }
1
+ import { credentialJson, pathSegment } from "../../_shared/credentials.js";
2
+ import { currentsCredential } from "./credentials.js";
3
+ function api(ctx, method, path, body, qs) {
4
+ // Currents expects array parameters as repeated `key[]` entries.
5
+ const query = {};
6
+ for (const [k, v] of Object.entries(qs ?? {})) {
7
+ if (v === undefined || v === null)
8
+ continue;
9
+ if (Array.isArray(v))
10
+ query[`${k}[]`] = v;
11
+ else
12
+ query[k] = v;
16
13
  }
17
- const opts = {
14
+ return credentialJson(ctx, currentsCredential, "currents", {
15
+ target: "api",
16
+ path,
18
17
  method,
19
- headers: {
20
- "Content-Type": "application/json",
21
- Accept: "application/json",
22
- Authorization: `Bearer ${apiKey}`,
23
- },
24
- };
25
- if (body &&
26
- Object.keys(body).length > 0 &&
27
- method !== "GET" &&
28
- method !== "DELETE") {
29
- opts.body = JSON.stringify(body);
30
- }
31
- const res = await fetch(url.toString(), opts);
32
- if (!res.ok)
33
- throw new Error(`Currents API error ${res.status}: ${await res.text()}`);
34
- if (res.status === 204)
35
- return { success: true };
36
- return res.json();
18
+ query,
19
+ ...(body &&
20
+ Object.keys(body).length > 0 &&
21
+ method !== "GET" &&
22
+ method !== "DELETE"
23
+ ? { json: body }
24
+ : {}),
25
+ });
37
26
  }
38
27
  function unwrapData(response) {
39
28
  if (response &&
@@ -43,12 +32,10 @@ function unwrapData(response) {
43
32
  }
44
33
  return response;
45
34
  }
46
- function getKey(ctx) {
47
- return ctx.connection.config.apiKey;
48
- }
49
35
  export default function currents(rl) {
50
36
  rl.setName("currents");
51
37
  rl.setVersion("0.1.0");
38
+ rl.setCredential(currentsCredential);
52
39
  rl.setConnectionSchema({
53
40
  apiKey: {
54
41
  type: "string",
@@ -132,7 +119,7 @@ export default function currents(rl) {
132
119
  body.description = desc;
133
120
  if (expiresAfter)
134
121
  body.expiresAfter = expiresAfter;
135
- return apiRequest(getKey(ctx), "POST", "/actions", body, { projectId });
122
+ return api(ctx, "POST", "actions", body, { projectId });
136
123
  },
137
124
  });
138
125
  rl.registerAction("action.get", {
@@ -142,7 +129,7 @@ export default function currents(rl) {
142
129
  actionId: { type: "string", required: true, description: "Action ID" },
143
130
  },
144
131
  async execute(input, ctx) {
145
- return unwrapData(await apiRequest(getKey(ctx), "GET", `/actions/${input.actionId}`));
132
+ return unwrapData(await api(ctx, "GET", `actions/${pathSegment(input.actionId)}`));
146
133
  },
147
134
  });
148
135
  rl.registerAction("action.list", {
@@ -168,7 +155,7 @@ export default function currents(rl) {
168
155
  qs.search = search;
169
156
  if (status)
170
157
  qs.status = status;
171
- return unwrapData(await apiRequest(getKey(ctx), "GET", "/actions", undefined, qs));
158
+ return unwrapData(await api(ctx, "GET", "actions", undefined, qs));
172
159
  },
173
160
  });
174
161
  rl.registerAction("action.update", {
@@ -190,7 +177,7 @@ export default function currents(rl) {
190
177
  },
191
178
  async execute(input, ctx) {
192
179
  const { actionId, ...body } = input;
193
- return apiRequest(getKey(ctx), "PUT", `/actions/${actionId}`, body);
180
+ return api(ctx, "PUT", `actions/${pathSegment(actionId)}`, body);
194
181
  },
195
182
  });
196
183
  rl.registerAction("action.enable", {
@@ -200,7 +187,7 @@ export default function currents(rl) {
200
187
  actionId: { type: "string", required: true, description: "Action ID" },
201
188
  },
202
189
  async execute(input, ctx) {
203
- return apiRequest(getKey(ctx), "PUT", `/actions/${input.actionId}/enable`);
190
+ return api(ctx, "PUT", `actions/${pathSegment(input.actionId)}/enable`);
204
191
  },
205
192
  });
206
193
  rl.registerAction("action.disable", {
@@ -210,7 +197,7 @@ export default function currents(rl) {
210
197
  actionId: { type: "string", required: true, description: "Action ID" },
211
198
  },
212
199
  async execute(input, ctx) {
213
- return apiRequest(getKey(ctx), "PUT", `/actions/${input.actionId}/disable`);
200
+ return api(ctx, "PUT", `actions/${pathSegment(input.actionId)}/disable`);
214
201
  },
215
202
  });
216
203
  rl.registerAction("action.delete", {
@@ -220,7 +207,7 @@ export default function currents(rl) {
220
207
  actionId: { type: "string", required: true, description: "Action ID" },
221
208
  },
222
209
  async execute(input, ctx) {
223
- await apiRequest(getKey(ctx), "DELETE", `/actions/${input.actionId}`);
210
+ await api(ctx, "DELETE", `actions/${pathSegment(input.actionId)}`);
224
211
  return { success: true };
225
212
  },
226
213
  });
@@ -236,7 +223,7 @@ export default function currents(rl) {
236
223
  },
237
224
  },
238
225
  async execute(input, ctx) {
239
- return unwrapData(await apiRequest(getKey(ctx), "GET", `/instances/${input.instanceId}`));
226
+ return unwrapData(await api(ctx, "GET", `instances/${pathSegment(input.instanceId)}`));
240
227
  },
241
228
  });
242
229
  // ── Project ─────────────────────────────────────────
@@ -247,7 +234,7 @@ export default function currents(rl) {
247
234
  projectId: { type: "string", required: true, description: "Project ID" },
248
235
  },
249
236
  async execute(input, ctx) {
250
- return apiRequest(getKey(ctx), "GET", `/projects/${input.projectId}`);
237
+ return api(ctx, "GET", `projects/${pathSegment(input.projectId)}`);
251
238
  },
252
239
  });
253
240
  rl.registerAction("project.list", {
@@ -261,7 +248,7 @@ export default function currents(rl) {
261
248
  const { limit } = (input ?? {});
262
249
  if (limit)
263
250
  qs.limit = limit;
264
- return unwrapData(await apiRequest(getKey(ctx), "GET", "/projects", undefined, qs));
251
+ return unwrapData(await api(ctx, "GET", "projects", undefined, qs));
265
252
  },
266
253
  });
267
254
  rl.registerAction("project.getInsights", {
@@ -310,7 +297,7 @@ export default function currents(rl) {
310
297
  qs.authors = authors;
311
298
  if (tags)
312
299
  qs.tags = tags;
313
- return unwrapData(await apiRequest(getKey(ctx), "GET", `/projects/${projectId}/insights`, undefined, qs));
300
+ return unwrapData(await api(ctx, "GET", `projects/${pathSegment(projectId)}/insights`, undefined, qs));
314
301
  },
315
302
  });
316
303
  // ── Run ─────────────────────────────────────────────
@@ -321,7 +308,7 @@ export default function currents(rl) {
321
308
  runId: { type: "string", required: true, description: "Run ID" },
322
309
  },
323
310
  async execute(input, ctx) {
324
- return unwrapData(await apiRequest(getKey(ctx), "GET", `/runs/${input.runId}`));
311
+ return unwrapData(await api(ctx, "GET", `runs/${pathSegment(input.runId)}`));
325
312
  },
326
313
  });
327
314
  rl.registerAction("run.list", {
@@ -384,7 +371,7 @@ export default function currents(rl) {
384
371
  qs.date_start = dateStart;
385
372
  if (dateEnd)
386
373
  qs.date_end = dateEnd;
387
- return unwrapData(await apiRequest(getKey(ctx), "GET", `/projects/${projectId}/runs`, undefined, qs));
374
+ return unwrapData(await api(ctx, "GET", `projects/${pathSegment(projectId)}/runs`, undefined, qs));
388
375
  },
389
376
  });
390
377
  rl.registerAction("run.find", {
@@ -413,7 +400,7 @@ export default function currents(rl) {
413
400
  qs.ciBuildId = ciBuildId;
414
401
  if (tags)
415
402
  qs.tags = tags;
416
- return unwrapData(await apiRequest(getKey(ctx), "GET", "/runs/find", undefined, qs));
403
+ return unwrapData(await api(ctx, "GET", "runs/find", undefined, qs));
417
404
  },
418
405
  });
419
406
  rl.registerAction("run.cancel", {
@@ -423,7 +410,7 @@ export default function currents(rl) {
423
410
  runId: { type: "string", required: true, description: "Run ID" },
424
411
  },
425
412
  async execute(input, ctx) {
426
- return apiRequest(getKey(ctx), "PUT", `/runs/${input.runId}/cancel`);
413
+ return api(ctx, "PUT", `runs/${pathSegment(input.runId)}/cancel`);
427
414
  },
428
415
  });
429
416
  rl.registerAction("run.cancelGithub", {
@@ -453,7 +440,7 @@ export default function currents(rl) {
453
440
  },
454
441
  async execute(input, ctx) {
455
442
  const body = input;
456
- return apiRequest(getKey(ctx), "PUT", "/runs/cancel-ci/github", body);
443
+ return api(ctx, "PUT", "runs/cancel-ci/github", body);
457
444
  },
458
445
  });
459
446
  rl.registerAction("run.reset", {
@@ -477,7 +464,7 @@ export default function currents(rl) {
477
464
  const body = { machineId: machineIds };
478
465
  if (isBatchedOr8n)
479
466
  body.isBatchedOr8n = true;
480
- return apiRequest(getKey(ctx), "PUT", `/runs/${runId}/reset`, body);
467
+ return api(ctx, "PUT", `runs/${pathSegment(runId)}/reset`, body);
481
468
  },
482
469
  });
483
470
  rl.registerAction("run.delete", {
@@ -487,7 +474,7 @@ export default function currents(rl) {
487
474
  runId: { type: "string", required: true, description: "Run ID" },
488
475
  },
489
476
  async execute(input, ctx) {
490
- await apiRequest(getKey(ctx), "DELETE", `/runs/${input.runId}`);
477
+ await api(ctx, "DELETE", `runs/${pathSegment(input.runId)}`);
491
478
  return { success: true };
492
479
  },
493
480
  });
@@ -509,7 +496,7 @@ export default function currents(rl) {
509
496
  },
510
497
  },
511
498
  async execute(input, ctx) {
512
- return unwrapData(await apiRequest(getKey(ctx), "POST", "/signature/test", input));
499
+ return unwrapData(await api(ctx, "POST", "signature/test", input));
513
500
  },
514
501
  });
515
502
  // ── Spec File ───────────────────────────────────────
@@ -552,7 +539,7 @@ export default function currents(rl) {
552
539
  qs.order = order;
553
540
  if (dir)
554
541
  qs.dir = dir;
555
- return unwrapData(await apiRequest(getKey(ctx), "GET", `/spec-files/${projectId}`, undefined, qs));
542
+ return unwrapData(await api(ctx, "GET", `spec-files/${pathSegment(projectId)}`, undefined, qs));
556
543
  },
557
544
  });
558
545
  // ── Test ────────────────────────────────────────────
@@ -609,7 +596,7 @@ export default function currents(rl) {
609
596
  qs.title = title;
610
597
  if (spec)
611
598
  qs.spec = spec;
612
- return unwrapData(await apiRequest(getKey(ctx), "GET", `/tests/${projectId}`, undefined, qs));
599
+ return unwrapData(await api(ctx, "GET", `tests/${pathSegment(projectId)}`, undefined, qs));
613
600
  },
614
601
  });
615
602
  // ── Test Result ─────────────────────────────────────
@@ -660,7 +647,7 @@ export default function currents(rl) {
660
647
  qs.status = status;
661
648
  if (branches)
662
649
  qs.branches = branches;
663
- return unwrapData(await apiRequest(getKey(ctx), "GET", `/test-results/${signature}`, undefined, qs));
650
+ return unwrapData(await api(ctx, "GET", `test-results/${pathSegment(signature)}`, undefined, qs));
664
651
  },
665
652
  });
666
653
  }
@@ -0,0 +1,52 @@
1
+ import { configChoice, staticCredential } from "../../_shared/credentials.js";
2
+ /** The Track and App API bases of each region, keyed by its Track host. */
3
+ const REGIONS = {
4
+ "track.customer.io": {
5
+ track: "https://track.customer.io/api/v1/",
6
+ app: "https://api.customer.io/v1/",
7
+ },
8
+ "track-eu.customer.io": {
9
+ track: "https://track-eu.customer.io/api/v1/",
10
+ app: "https://api-eu.customer.io/v1/",
11
+ },
12
+ };
13
+ /**
14
+ * The site ID and tracking key, sent as HTTP Basic to the Track API, and
15
+ * the App API key, sent as a bearer to the App API — each on its own
16
+ * target, in the region the connection names (US when absent). An unknown
17
+ * region is refused, never sent to another region's hosts.
18
+ */
19
+ export const customerIoCredential = staticCredential({
20
+ id: "customerIo",
21
+ auth: {
22
+ kind: "static",
23
+ parts: ["siteId", "trackingKey", "appKey"],
24
+ placements: [
25
+ {
26
+ in: "basic",
27
+ username: "siteId",
28
+ password: "trackingKey",
29
+ targets: ["track"],
30
+ },
31
+ {
32
+ in: "header",
33
+ part: "appKey",
34
+ name: "Authorization",
35
+ prefix: "Bearer ",
36
+ targets: ["app"],
37
+ },
38
+ ],
39
+ },
40
+ local: {
41
+ siteId: "siteId",
42
+ trackingKey: "trackingApiKey",
43
+ appKey: "appApiKey",
44
+ },
45
+ targets: (config) => {
46
+ const bases = REGIONS[configChoice(config.region, ["track.customer.io", "track-eu.customer.io"], "track.customer.io")];
47
+ return {
48
+ track: { baseUrl: bases.track, methods: ["POST", "PUT", "DELETE"] },
49
+ app: { baseUrl: bases.app, methods: ["GET"] },
50
+ };
51
+ },
52
+ });
@@ -1,52 +1,25 @@
1
- async function apiRequest(siteId, apiKey, method, url, body) {
2
- const opts = {
1
+ import { credentialOk, jsonOrAcknowledged, pathSegment, } from "../../_shared/credentials.js";
2
+ import { customerIoCredential } from "./credentials.js";
3
+ /** A Customer.io call on the Track or App API. */
4
+ async function apiRequest(ctx, target, method, path, body, query) {
5
+ const res = await credentialOk(ctx, customerIoCredential, "customerIo", {
6
+ target,
7
+ path,
3
8
  method,
4
- headers: {
5
- "Content-Type": "application/json",
6
- Authorization: `Basic ${btoa(`${siteId}:${apiKey}`)}`,
7
- },
8
- };
9
- if (body &&
10
- Object.keys(body).length > 0 &&
11
- method !== "GET" &&
12
- method !== "DELETE") {
13
- opts.body = JSON.stringify(body);
14
- }
15
- const res = await fetch(url, opts);
16
- if (!res.ok)
17
- throw new Error(`Customer.io API error ${res.status}: ${await res.text()}`);
18
- if (res.status === 204 || res.headers.get("content-length") === "0")
19
- return { success: true };
20
- const ct = res.headers.get("content-type") ?? "";
21
- if (ct.includes("application/json"))
22
- return res.json();
23
- return { success: true };
24
- }
25
- function getConn(ctx) {
26
- const cfg = ctx.connection.config;
27
- const region = cfg.region ?? "track.customer.io";
28
- const isEu = region.includes("-eu");
29
- return {
30
- siteId: cfg.siteId,
31
- trackingApiKey: cfg.trackingApiKey,
32
- appApiKey: cfg.appApiKey,
33
- trackingBase: `https://${region}/api/v1`,
34
- appBase: isEu
35
- ? "https://api-eu.customer.io/v1"
36
- : "https://api.customer.io/v1",
37
- };
38
- }
39
- function tracking(ctx, method, endpoint, body) {
40
- const { siteId, trackingApiKey, trackingBase } = getConn(ctx);
41
- return apiRequest(siteId, trackingApiKey, method, `${trackingBase}${endpoint}`, body);
42
- }
43
- function app(ctx, method, endpoint, body) {
44
- const { siteId, appApiKey, appBase } = getConn(ctx);
45
- return apiRequest(siteId, appApiKey, method, `${appBase}${endpoint}`, body);
9
+ query,
10
+ ...(body &&
11
+ Object.keys(body).length > 0 &&
12
+ method !== "GET" &&
13
+ method !== "DELETE"
14
+ ? { json: body }
15
+ : {}),
16
+ });
17
+ return jsonOrAcknowledged(res);
46
18
  }
47
19
  export default function customerIo(rl) {
48
20
  rl.setName("customerIo");
49
21
  rl.setVersion("0.1.0");
22
+ rl.setCredential(customerIoCredential);
50
23
  rl.setConnectionSchema({
51
24
  siteId: {
52
25
  type: "string",
@@ -86,7 +59,7 @@ export default function customerIo(rl) {
86
59
  },
87
60
  async execute(input, ctx) {
88
61
  const { campaignId } = input;
89
- const data = (await app(ctx, "GET", `/campaigns/${campaignId}`));
62
+ const data = (await apiRequest(ctx, "app", "GET", `campaigns/${pathSegment(campaignId)}`));
90
63
  return data.campaign;
91
64
  },
92
65
  });
@@ -94,7 +67,7 @@ export default function customerIo(rl) {
94
67
  access: "read",
95
68
  description: "List all campaigns",
96
69
  async execute(_input, ctx) {
97
- const data = (await app(ctx, "GET", "/campaigns"));
70
+ const data = (await apiRequest(ctx, "app", "GET", "campaigns"));
98
71
  return data.campaigns;
99
72
  },
100
73
  });
@@ -125,15 +98,14 @@ export default function customerIo(rl) {
125
98
  },
126
99
  async execute(input, ctx) {
127
100
  const { campaignId, period, steps, type } = (input ?? {});
128
- let endpoint = `/campaigns/${campaignId}/metrics`;
101
+ const query = {};
129
102
  if (period && period !== "days")
130
- endpoint += `?period=${period}`;
131
- const body = {};
103
+ query.period = period;
132
104
  if (steps)
133
- body.steps = steps;
105
+ query.steps = steps;
134
106
  if (type)
135
- body.type = type === "urbanAirship" ? "urban_airship" : type;
136
- const data = (await app(ctx, "GET", endpoint, body));
107
+ query.type = type === "urbanAirship" ? "urban_airship" : type;
108
+ const data = (await apiRequest(ctx, "app", "GET", `campaigns/${pathSegment(campaignId)}/metrics`, undefined, query));
137
109
  return data.metric;
138
110
  },
139
111
  });
@@ -168,7 +140,7 @@ export default function customerIo(rl) {
168
140
  body.created_at = Math.floor(new Date(createdAt).getTime() / 1000);
169
141
  if (attributes)
170
142
  body.data = attributes;
171
- await tracking(ctx, "PUT", `/customers/${id}`, body);
143
+ await apiRequest(ctx, "track", "PUT", `customers/${pathSegment(id)}`, body);
172
144
  return { id, ...body };
173
145
  },
174
146
  });
@@ -180,7 +152,7 @@ export default function customerIo(rl) {
180
152
  },
181
153
  async execute(input, ctx) {
182
154
  const { id } = input;
183
- await tracking(ctx, "DELETE", `/customers/${id}`);
155
+ await apiRequest(ctx, "track", "DELETE", `customers/${pathSegment(id)}`);
184
156
  return { success: true };
185
157
  },
186
158
  });
@@ -216,7 +188,7 @@ export default function customerIo(rl) {
216
188
  Object.assign(eventData, data);
217
189
  if (Object.keys(eventData).length > 0)
218
190
  body.data = eventData;
219
- await tracking(ctx, "POST", `/customers/${customerId}/events`, body);
191
+ await apiRequest(ctx, "track", "POST", `customers/${pathSegment(customerId)}/events`, body);
220
192
  return { success: true };
221
193
  },
222
194
  });
@@ -236,7 +208,7 @@ export default function customerIo(rl) {
236
208
  const body = { name: eventName };
237
209
  if (data)
238
210
  body.data = data;
239
- await tracking(ctx, "POST", "/events", body);
211
+ await apiRequest(ctx, "track", "POST", "events", body);
240
212
  return { success: true };
241
213
  },
242
214
  });
@@ -254,7 +226,7 @@ export default function customerIo(rl) {
254
226
  },
255
227
  async execute(input, ctx) {
256
228
  const { segmentId, customerIds } = input;
257
- await tracking(ctx, "POST", `/segments/${segmentId}/add_customers`, {
229
+ await apiRequest(ctx, "track", "POST", `segments/${pathSegment(segmentId)}/add_customers`, {
258
230
  ids: customerIds,
259
231
  });
260
232
  return { success: true };
@@ -273,7 +245,7 @@ export default function customerIo(rl) {
273
245
  },
274
246
  async execute(input, ctx) {
275
247
  const { segmentId, customerIds } = input;
276
- await tracking(ctx, "POST", `/segments/${segmentId}/remove_customers`, {
248
+ await apiRequest(ctx, "track", "POST", `segments/${pathSegment(segmentId)}/remove_customers`, {
277
249
  ids: customerIds,
278
250
  });
279
251
  return { success: true };
@@ -0,0 +1,13 @@
1
+ import { httpsBase, staticCredential } from "../../_shared/credentials.js";
2
+ /** A personal access token, sent as a bearer to the workspace host in config. */
3
+ export const databricksCredential = staticCredential({
4
+ id: "databricks",
5
+ auth: { kind: "bearer" },
6
+ local: { secret: "accessToken" },
7
+ targets: (config) => ({
8
+ workspace: {
9
+ baseUrl: httpsBase(config.host, ""),
10
+ methods: ["GET", "HEAD", "POST", "PUT", "PATCH", "DELETE"],
11
+ },
12
+ }),
13
+ });