runline 0.33.0 → 0.35.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (531) hide show
  1. package/dist/auth/oauth2.d.ts +7 -1
  2. package/dist/auth/oauth2.js +10 -0
  3. package/dist/auth/token.d.ts +1 -0
  4. package/dist/auth/token.js +19 -1
  5. package/dist/auth/types.d.ts +22 -1
  6. package/dist/core/engine.d.ts +7 -0
  7. package/dist/core/engine.js +21 -8
  8. package/dist/credentials/policy.d.ts +53 -1
  9. package/dist/credentials/policy.js +146 -6
  10. package/dist/credentials/registry.d.ts +9 -0
  11. package/dist/credentials/registry.js +184 -22
  12. package/dist/credentials/transport.d.ts +48 -2
  13. package/dist/credentials/transport.js +248 -70
  14. package/dist/credentials/types.d.ts +177 -10
  15. package/dist/index.d.ts +6 -5
  16. package/dist/index.js +3 -2
  17. package/dist/plugin/api.d.ts +7 -0
  18. package/dist/plugin/api.js +7 -0
  19. package/dist/plugin/schema.d.ts +16 -4
  20. package/dist/plugin/schema.js +28 -5
  21. package/dist/plugin/types.d.ts +20 -0
  22. package/dist/plugins/_shared/base64.js +30 -0
  23. package/dist/plugins/_shared/credentialAdapter.js +99 -15
  24. package/dist/plugins/_shared/credentials.js +416 -0
  25. package/dist/plugins/_shared/googleAuth.js +69 -39
  26. package/dist/plugins/_shared/googleCredentials.js +68 -14
  27. package/dist/plugins/_shared/localFile.js +40 -0
  28. package/dist/plugins/_shared/mediaFile.js +12 -12
  29. package/dist/plugins/_shared/microsoftAuth.js +31 -47
  30. package/dist/plugins/_shared/microsoftCredentials.js +42 -15
  31. package/dist/plugins/_shared/provider.js +2 -14
  32. package/dist/plugins/_shared/shiftCloud.js +16 -56
  33. package/dist/plugins/_shared/shiftCredentials.js +83 -0
  34. package/dist/plugins/_shared/shiftUpload.js +14 -10
  35. package/dist/plugins/actionNetwork/src/credentials.js +14 -0
  36. package/dist/plugins/actionNetwork/src/index.js +39 -50
  37. package/dist/plugins/activeCampaign/src/credentials.js +22 -0
  38. package/dist/plugins/activeCampaign/src/index.js +61 -132
  39. package/dist/plugins/adalo/src/credentials.js +16 -0
  40. package/dist/plugins/adalo/src/index.js +19 -43
  41. package/dist/plugins/affinity/src/credentials.js +19 -0
  42. package/dist/plugins/affinity/src/index.js +29 -54
  43. package/dist/plugins/agentMail/src/credentials.js +35 -0
  44. package/dist/plugins/agentMail/src/drafts.js +137 -0
  45. package/dist/plugins/agentMail/src/inboxes.js +95 -0
  46. package/dist/plugins/agentMail/src/index.js +35 -0
  47. package/dist/plugins/agentMail/src/messages.js +154 -0
  48. package/dist/plugins/agentMail/src/schemas.js +156 -0
  49. package/dist/plugins/agentMail/src/shared.js +203 -0
  50. package/dist/plugins/agentMail/src/threads.js +75 -0
  51. package/dist/plugins/agileCrm/src/credentials.js +16 -0
  52. package/dist/plugins/agileCrm/src/index.js +46 -112
  53. package/dist/plugins/airtable/src/credentials.js +19 -0
  54. package/dist/plugins/airtable/src/index.js +37 -50
  55. package/dist/plugins/airtop/src/credentials.js +20 -0
  56. package/dist/plugins/airtop/src/index.js +51 -75
  57. package/dist/plugins/apiTemplateIo/src/credentials.js +19 -0
  58. package/dist/plugins/apiTemplateIo/src/index.js +14 -31
  59. package/dist/plugins/asana/src/credentials.js +19 -0
  60. package/dist/plugins/asana/src/index.js +51 -72
  61. package/dist/plugins/autopilot/src/credentials.js +19 -0
  62. package/dist/plugins/autopilot/src/index.js +38 -45
  63. package/dist/plugins/bambooHr/src/credentials.js +16 -0
  64. package/dist/plugins/bambooHr/src/index.js +41 -67
  65. package/dist/plugins/bannerbear/src/credentials.js +19 -0
  66. package/dist/plugins/bannerbear/src/index.js +15 -27
  67. package/dist/plugins/baserow/src/credentials.js +17 -0
  68. package/dist/plugins/baserow/src/index.js +23 -49
  69. package/dist/plugins/beeminder/src/credentials.js +19 -0
  70. package/dist/plugins/beeminder/src/index.js +32 -54
  71. package/dist/plugins/bitly/src/credentials.js +19 -0
  72. package/dist/plugins/bitly/src/index.js +12 -26
  73. package/dist/plugins/bitwarden/src/credentials.js +62 -0
  74. package/dist/plugins/bitwarden/src/index.js +34 -80
  75. package/dist/plugins/box/src/credentials.js +19 -0
  76. package/dist/plugins/box/src/index.js +24 -49
  77. package/dist/plugins/brandfetch/src/credentials.js +13 -0
  78. package/dist/plugins/brandfetch/src/index.js +12 -17
  79. package/dist/plugins/brevo/src/credentials.js +19 -0
  80. package/dist/plugins/brevo/src/index.js +30 -51
  81. package/dist/plugins/bubble/src/credentials.js +28 -0
  82. package/dist/plugins/bubble/src/index.js +29 -65
  83. package/dist/plugins/chargebee/src/credentials.js +16 -0
  84. package/dist/plugins/chargebee/src/index.js +15 -45
  85. package/dist/plugins/circleci/src/credentials.js +19 -0
  86. package/dist/plugins/circleci/src/index.js +19 -39
  87. package/dist/plugins/ciscoWebex/src/credentials.js +19 -0
  88. package/dist/plugins/ciscoWebex/src/index.js +43 -61
  89. package/dist/plugins/clearbit/src/credentials.js +22 -0
  90. package/dist/plugins/clearbit/src/index.js +11 -21
  91. package/dist/plugins/clickup/src/credentials.js +19 -0
  92. package/dist/plugins/clickup/src/index.js +85 -117
  93. package/dist/plugins/clockify/src/credentials.js +19 -0
  94. package/dist/plugins/clockify/src/index.js +46 -61
  95. package/dist/plugins/cloudflare/src/credentials.js +19 -0
  96. package/dist/plugins/cloudflare/src/index.js +19 -34
  97. package/dist/plugins/cockpit/src/credentials.js +17 -0
  98. package/dist/plugins/cockpit/src/index.js +18 -31
  99. package/dist/plugins/coda/src/credentials.js +19 -0
  100. package/dist/plugins/coda/src/index.js +33 -50
  101. package/dist/plugins/coingecko/src/credentials.js +20 -0
  102. package/dist/plugins/coingecko/src/index.js +24 -34
  103. package/dist/plugins/contentful/src/credentials.js +26 -0
  104. package/dist/plugins/contentful/src/index.js +19 -40
  105. package/dist/plugins/convertkit/src/credentials.js +26 -0
  106. package/dist/plugins/convertkit/src/index.js +27 -45
  107. package/dist/plugins/copper/src/credentials.js +17 -0
  108. package/dist/plugins/copper/src/index.js +25 -47
  109. package/dist/plugins/cortex/src/credentials.js +28 -0
  110. package/dist/plugins/cortex/src/index.js +26 -49
  111. package/dist/plugins/currents/src/credentials.js +19 -0
  112. package/dist/plugins/currents/src/index.js +46 -59
  113. package/dist/plugins/customerIo/src/credentials.js +52 -0
  114. package/dist/plugins/customerIo/src/index.js +30 -58
  115. package/dist/plugins/databricks/src/credentials.js +13 -0
  116. package/dist/plugins/databricks/src/index.js +51 -103
  117. package/dist/plugins/deepl/src/credentials.js +19 -0
  118. package/dist/plugins/deepl/src/index.js +13 -39
  119. package/dist/plugins/demio/src/credentials.js +26 -0
  120. package/dist/plugins/demio/src/index.js +17 -41
  121. package/dist/plugins/dhl/src/credentials.js +13 -0
  122. package/dist/plugins/dhl/src/index.js +8 -19
  123. package/dist/plugins/discord/src/credentials.js +19 -0
  124. package/dist/plugins/discord/src/index.js +30 -58
  125. package/dist/plugins/discourse/src/credentials.js +18 -0
  126. package/dist/plugins/discourse/src/index.js +36 -53
  127. package/dist/plugins/disqus/src/credentials.js +13 -0
  128. package/dist/plugins/disqus/src/index.js +14 -32
  129. package/dist/plugins/drift/src/credentials.js +13 -0
  130. package/dist/plugins/drift/src/index.js +16 -26
  131. package/dist/plugins/dropbox/src/credentials.js +13 -0
  132. package/dist/plugins/dropbox/src/index.js +23 -30
  133. package/dist/plugins/dropcontact/src/credentials.js +13 -0
  134. package/dist/plugins/dropcontact/src/index.js +13 -18
  135. package/dist/plugins/egoi/src/credentials.js +19 -0
  136. package/dist/plugins/egoi/src/index.js +23 -38
  137. package/dist/plugins/elasticsearch/src/credentials.js +18 -0
  138. package/dist/plugins/elasticsearch/src/index.js +27 -48
  139. package/dist/plugins/elevenlabs/src/credentials.js +30 -0
  140. package/dist/plugins/elevenlabs/src/index.js +4 -1
  141. package/dist/plugins/elevenlabs/src/schemas.js +2 -1
  142. package/dist/plugins/elevenlabs/src/shared.js +87 -62
  143. package/dist/plugins/elevenlabs/src/workflows.js +2 -2
  144. package/dist/plugins/emelia/src/credentials.js +14 -0
  145. package/dist/plugins/emelia/src/index.js +19 -23
  146. package/dist/plugins/erpnext/src/credentials.js +27 -0
  147. package/dist/plugins/erpnext/src/index.js +21 -42
  148. package/dist/plugins/facebookGraph/src/credentials.js +20 -0
  149. package/dist/plugins/facebookGraph/src/index.js +39 -37
  150. package/dist/plugins/fal/src/credentials.js +14 -0
  151. package/dist/plugins/fal/src/index.js +5 -3
  152. package/dist/plugins/fal/src/shared.js +58 -63
  153. package/dist/plugins/freshdesk/src/credentials.js +20 -0
  154. package/dist/plugins/freshdesk/src/index.js +25 -46
  155. package/dist/plugins/freshservice/src/credentials.js +16 -0
  156. package/dist/plugins/freshservice/src/index.js +37 -58
  157. package/dist/plugins/freshworksCrm/src/credentials.js +16 -0
  158. package/dist/plugins/freshworksCrm/src/index.js +20 -39
  159. package/dist/plugins/getresponse/src/credentials.js +22 -0
  160. package/dist/plugins/getresponse/src/index.js +20 -32
  161. package/dist/plugins/gett/src/credentials.js +64 -0
  162. package/dist/plugins/gett/src/index.js +11 -6
  163. package/dist/plugins/gett/src/login.js +24 -0
  164. package/dist/plugins/gett/src/session.js +15 -38
  165. package/dist/plugins/gett/src/shared.js +41 -84
  166. package/dist/plugins/ghost/src/credentials.js +36 -0
  167. package/dist/plugins/ghost/src/index.js +18 -59
  168. package/dist/plugins/github/src/credentials.js +18 -0
  169. package/dist/plugins/github/src/index.js +55 -78
  170. package/dist/plugins/gitlab/src/credentials.js +24 -0
  171. package/dist/plugins/gitlab/src/index.js +29 -48
  172. package/dist/plugins/gmail/src/index.js +47 -108
  173. package/dist/plugins/gong/src/credentials.js +16 -0
  174. package/dist/plugins/gong/src/index.js +16 -32
  175. package/dist/plugins/googleAppsScript/src/index.js +109 -42
  176. package/dist/plugins/googleCalendar/src/index.js +20 -51
  177. package/dist/plugins/googleContacts/src/index.js +13 -40
  178. package/dist/plugins/googleDocs/src/index.js +3 -32
  179. package/dist/plugins/googleDocs/src/shared.js +2 -1
  180. package/dist/plugins/googleDrive/src/index.js +68 -97
  181. package/dist/plugins/googleImage/src/credentials.js +14 -0
  182. package/dist/plugins/googleImage/src/index.js +15 -26
  183. package/dist/plugins/googleSheets/src/index.js +27 -60
  184. package/dist/plugins/googleSlides/src/index.js +7 -35
  185. package/dist/plugins/googleTasks/src/index.js +14 -42
  186. package/dist/plugins/gotify/src/credentials.js +32 -0
  187. package/dist/plugins/gotify/src/index.js +14 -36
  188. package/dist/plugins/gotowebinar/src/credentials.js +13 -0
  189. package/dist/plugins/gotowebinar/src/index.js +52 -69
  190. package/dist/plugins/grafana/src/credentials.js +16 -0
  191. package/dist/plugins/grafana/src/index.js +34 -53
  192. package/dist/plugins/graphql/src/credentials.js +42 -0
  193. package/dist/plugins/graphql/src/index.js +21 -46
  194. package/dist/plugins/grist/src/credentials.js +30 -0
  195. package/dist/plugins/grist/src/index.js +14 -43
  196. package/dist/plugins/halopsa/src/credentials.js +56 -0
  197. package/dist/plugins/halopsa/src/index.js +20 -47
  198. package/dist/plugins/harvest/src/credentials.js +20 -0
  199. package/dist/plugins/harvest/src/index.js +24 -43
  200. package/dist/plugins/helpscout/src/credentials.js +13 -0
  201. package/dist/plugins/helpscout/src/index.js +26 -38
  202. package/dist/plugins/highlevel/src/credentials.js +19 -0
  203. package/dist/plugins/highlevel/src/index.js +42 -65
  204. package/dist/plugins/homeAssistant/src/credentials.js +27 -0
  205. package/dist/plugins/homeAssistant/src/index.js +34 -52
  206. package/dist/plugins/hubspot/src/credentials.js +16 -0
  207. package/dist/plugins/hubspot/src/index.js +29 -41
  208. package/dist/plugins/humanticAi/src/credentials.js +13 -0
  209. package/dist/plugins/humanticAi/src/index.js +15 -22
  210. package/dist/plugins/hunter/src/credentials.js +13 -0
  211. package/dist/plugins/hunter/src/index.js +18 -17
  212. package/dist/plugins/intercom/src/credentials.js +19 -0
  213. package/dist/plugins/intercom/src/index.js +25 -38
  214. package/dist/plugins/iterable/src/credentials.js +17 -0
  215. package/dist/plugins/iterable/src/index.js +26 -40
  216. package/dist/plugins/jenkins/src/credentials.js +16 -0
  217. package/dist/plugins/jenkins/src/index.js +22 -36
  218. package/dist/plugins/jira/src/credentials.js +16 -0
  219. package/dist/plugins/jira/src/index.js +35 -61
  220. package/dist/plugins/keap/src/credentials.js +19 -0
  221. package/dist/plugins/keap/src/index.js +43 -71
  222. package/dist/plugins/kobotoolbox/src/credentials.js +13 -0
  223. package/dist/plugins/kobotoolbox/src/index.js +46 -84
  224. package/dist/plugins/lemlist/src/credentials.js +19 -0
  225. package/dist/plugins/lemlist/src/index.js +35 -47
  226. package/dist/plugins/linear/src/attachments.js +7 -7
  227. package/dist/plugins/linear/src/comments.js +7 -7
  228. package/dist/plugins/linear/src/credentials.js +17 -0
  229. package/dist/plugins/linear/src/cycles.js +5 -5
  230. package/dist/plugins/linear/src/index.js +2 -0
  231. package/dist/plugins/linear/src/initiatives.js +6 -6
  232. package/dist/plugins/linear/src/issues.js +14 -14
  233. package/dist/plugins/linear/src/labels.js +6 -6
  234. package/dist/plugins/linear/src/organization.js +2 -2
  235. package/dist/plugins/linear/src/projects.js +12 -12
  236. package/dist/plugins/linear/src/shared.js +34 -32
  237. package/dist/plugins/linear/src/states.js +3 -3
  238. package/dist/plugins/linear/src/teams.js +4 -4
  239. package/dist/plugins/linear/src/users.js +3 -3
  240. package/dist/plugins/linear/src/views.js +5 -5
  241. package/dist/plugins/linear/src/webhooks.js +5 -5
  242. package/dist/plugins/lingvanex/src/credentials.js +13 -0
  243. package/dist/plugins/lingvanex/src/index.js +7 -9
  244. package/dist/plugins/linkedin/src/credentials.js +17 -0
  245. package/dist/plugins/linkedin/src/index.js +13 -17
  246. package/dist/plugins/lonescale/src/credentials.js +13 -0
  247. package/dist/plugins/lonescale/src/index.js +16 -26
  248. package/dist/plugins/magento/src/credentials.js +16 -0
  249. package/dist/plugins/magento/src/index.js +67 -84
  250. package/dist/plugins/mailcheck/src/credentials.js +17 -0
  251. package/dist/plugins/mailcheck/src/index.js +7 -9
  252. package/dist/plugins/mailchimp/src/credentials.js +32 -0
  253. package/dist/plugins/mailchimp/src/index.js +36 -44
  254. package/dist/plugins/mailerlite/src/credentials.js +13 -0
  255. package/dist/plugins/mailerlite/src/index.js +19 -32
  256. package/dist/plugins/mailgun/src/credentials.js +21 -0
  257. package/dist/plugins/mailgun/src/index.js +15 -21
  258. package/dist/plugins/mailjet/src/credentials.js +38 -0
  259. package/dist/plugins/mailjet/src/index.js +60 -115
  260. package/dist/plugins/mandrill/src/credentials.js +17 -0
  261. package/dist/plugins/mandrill/src/index.js +11 -12
  262. package/dist/plugins/marketstack/src/credentials.js +16 -0
  263. package/dist/plugins/marketstack/src/index.js +18 -28
  264. package/dist/plugins/matrix/src/credentials.js +19 -0
  265. package/dist/plugins/matrix/src/index.js +23 -52
  266. package/dist/plugins/mattermost/src/credentials.js +19 -0
  267. package/dist/plugins/mattermost/src/index.js +41 -73
  268. package/dist/plugins/mautic/src/credentials.js +16 -0
  269. package/dist/plugins/mautic/src/index.js +46 -62
  270. package/dist/plugins/medium/src/credentials.js +20 -0
  271. package/dist/plugins/medium/src/index.js +18 -23
  272. package/dist/plugins/messagebird/src/credentials.js +22 -0
  273. package/dist/plugins/messagebird/src/index.js +13 -18
  274. package/dist/plugins/metabase/src/credentials.js +19 -0
  275. package/dist/plugins/metabase/src/index.js +24 -40
  276. package/dist/plugins/microsoftCalendar/src/index.js +49 -18
  277. package/dist/plugins/microsoftFiles/src/index.js +95 -31
  278. package/dist/plugins/microsoftMail/src/index.js +63 -21
  279. package/dist/plugins/misp/src/credentials.js +16 -0
  280. package/dist/plugins/misp/src/index.js +60 -71
  281. package/dist/plugins/mocean/src/credentials.js +17 -0
  282. package/dist/plugins/mocean/src/index.js +11 -23
  283. package/dist/plugins/monday/src/credentials.js +14 -0
  284. package/dist/plugins/monday/src/index.js +31 -44
  285. package/dist/plugins/monicaCrm/src/credentials.js +19 -0
  286. package/dist/plugins/monicaCrm/src/index.js +25 -42
  287. package/dist/plugins/msg91/src/credentials.js +10 -0
  288. package/dist/plugins/msg91/src/index.js +15 -11
  289. package/dist/plugins/nasa/src/credentials.js +22 -0
  290. package/dist/plugins/nasa/src/index.js +24 -28
  291. package/dist/plugins/netlify/src/credentials.js +19 -0
  292. package/dist/plugins/netlify/src/index.js +27 -51
  293. package/dist/plugins/netscalerAdc/src/credentials.js +18 -0
  294. package/dist/plugins/netscalerAdc/src/index.js +16 -31
  295. package/dist/plugins/nextcloud/src/credentials.js +27 -0
  296. package/dist/plugins/nextcloud/src/index.js +55 -109
  297. package/dist/plugins/nocodb/src/credentials.js +16 -0
  298. package/dist/plugins/nocodb/src/index.js +19 -37
  299. package/dist/plugins/notion/src/credentials.js +21 -0
  300. package/dist/plugins/notion/src/index.js +25 -38
  301. package/dist/plugins/npm/src/credentials.js +19 -0
  302. package/dist/plugins/npm/src/index.js +22 -32
  303. package/dist/plugins/odoo/src/credentials.js +21 -0
  304. package/dist/plugins/odoo/src/index.js +53 -69
  305. package/dist/plugins/okta/src/credentials.js +23 -0
  306. package/dist/plugins/okta/src/index.js +30 -35
  307. package/dist/plugins/oneSimpleApi/src/credentials.js +16 -0
  308. package/dist/plugins/oneSimpleApi/src/index.js +19 -24
  309. package/dist/plugins/onfleet/src/credentials.js +23 -0
  310. package/dist/plugins/onfleet/src/index.js +42 -53
  311. package/dist/plugins/openai/src/credentials.js +13 -0
  312. package/dist/plugins/openai/src/index.js +16 -24
  313. package/dist/plugins/openweathermap/src/credentials.js +16 -0
  314. package/dist/plugins/openweathermap/src/index.js +22 -22
  315. package/dist/plugins/oura/src/credentials.js +19 -0
  316. package/dist/plugins/oura/src/index.js +13 -18
  317. package/dist/plugins/paddle/src/credentials.js +27 -0
  318. package/dist/plugins/paddle/src/index.js +20 -36
  319. package/dist/plugins/pagerduty/src/credentials.js +24 -0
  320. package/dist/plugins/pagerduty/src/index.js +30 -39
  321. package/dist/plugins/parallel/src/credentials.js +18 -0
  322. package/dist/plugins/parallel/src/index.js +16 -22
  323. package/dist/plugins/paypal/src/credentials.js +44 -0
  324. package/dist/plugins/paypal/src/index.js +14 -40
  325. package/dist/plugins/peekalink/src/credentials.js +16 -0
  326. package/dist/plugins/peekalink/src/index.js +10 -11
  327. package/dist/plugins/phantombuster/src/credentials.js +19 -0
  328. package/dist/plugins/phantombuster/src/index.js +19 -32
  329. package/dist/plugins/philipsHue/src/credentials.js +17 -0
  330. package/dist/plugins/philipsHue/src/index.js +15 -27
  331. package/dist/plugins/pipedrive/src/credentials.js +26 -0
  332. package/dist/plugins/pipedrive/src/index.js +43 -73
  333. package/dist/plugins/plaud/src/index.js +2 -1
  334. package/dist/plugins/plaud/src/shared.js +23 -19
  335. package/dist/plugins/plivo/src/credentials.js +20 -0
  336. package/dist/plugins/plivo/src/index.js +13 -19
  337. package/dist/plugins/posthog/src/credentials.js +18 -0
  338. package/dist/plugins/posthog/src/index.js +14 -20
  339. package/dist/plugins/profitwell/src/credentials.js +22 -0
  340. package/dist/plugins/profitwell/src/index.js +10 -17
  341. package/dist/plugins/pushbullet/src/credentials.js +19 -0
  342. package/dist/plugins/pushbullet/src/index.js +19 -27
  343. package/dist/plugins/pushcut/src/credentials.js +19 -0
  344. package/dist/plugins/pushcut/src/index.js +7 -8
  345. package/dist/plugins/pushover/src/credentials.js +14 -0
  346. package/dist/plugins/pushover/src/index.js +7 -12
  347. package/dist/plugins/quickbase/src/credentials.js +15 -0
  348. package/dist/plugins/quickbase/src/index.js +24 -34
  349. package/dist/plugins/quickbooks/src/credentials.js +22 -0
  350. package/dist/plugins/quickbooks/src/index.js +17 -46
  351. package/dist/plugins/raindrop/src/credentials.js +19 -0
  352. package/dist/plugins/raindrop/src/index.js +30 -32
  353. package/dist/plugins/recraft/src/credentials.js +13 -0
  354. package/dist/plugins/recraft/src/index.js +39 -28
  355. package/dist/plugins/reddit/src/credentials.js +26 -0
  356. package/dist/plugins/reddit/src/index.js +30 -34
  357. package/dist/plugins/replicate/src/credentials.js +23 -0
  358. package/dist/plugins/replicate/src/index.js +18 -28
  359. package/dist/plugins/rocketchat/src/credentials.js +17 -0
  360. package/dist/plugins/rocketchat/src/index.js +8 -19
  361. package/dist/plugins/rundeck/src/credentials.js +16 -0
  362. package/dist/plugins/rundeck/src/index.js +12 -28
  363. package/dist/plugins/salesforce/src/credentials.js +73 -0
  364. package/dist/plugins/salesforce/src/index.js +6 -0
  365. package/dist/plugins/salesforce/src/metadata.js +3 -16
  366. package/dist/plugins/salesforce/src/shared.js +25 -100
  367. package/dist/plugins/salesforce/src/sobjects.js +10 -9
  368. package/dist/plugins/salesmate/src/credentials.js +17 -0
  369. package/dist/plugins/salesmate/src/index.js +20 -37
  370. package/dist/plugins/securityScorecard/src/credentials.js +22 -0
  371. package/dist/plugins/securityScorecard/src/index.js +24 -37
  372. package/dist/plugins/segment/src/credentials.js +16 -0
  373. package/dist/plugins/segment/src/index.js +12 -16
  374. package/dist/plugins/sendgrid/src/credentials.js +13 -0
  375. package/dist/plugins/sendgrid/src/index.js +31 -35
  376. package/dist/plugins/sendy/src/credentials.js +18 -0
  377. package/dist/plugins/sendy/src/index.js +18 -24
  378. package/dist/plugins/sentry/src/credentials.js +16 -0
  379. package/dist/plugins/sentry/src/index.js +30 -98
  380. package/dist/plugins/servicenow/src/credentials.js +13 -0
  381. package/dist/plugins/servicenow/src/index.js +22 -41
  382. package/dist/plugins/shiftAtlas/src/graph.js +2 -2
  383. package/dist/plugins/shiftAtlas/src/index.js +2 -0
  384. package/dist/plugins/shiftAtlas/src/shared.js +3 -1
  385. package/dist/plugins/shiftBwm/src/index.js +4 -2
  386. package/dist/plugins/shiftBwm/src/shared.js +41 -16
  387. package/dist/plugins/shiftCrm/src/access.js +2 -2
  388. package/dist/plugins/shiftCrm/src/accounts.js +3 -3
  389. package/dist/plugins/shiftCrm/src/activities.js +3 -3
  390. package/dist/plugins/shiftCrm/src/credentials.js +6 -0
  391. package/dist/plugins/shiftCrm/src/index.js +2 -0
  392. package/dist/plugins/shiftCrm/src/opportunities.js +3 -3
  393. package/dist/plugins/shiftCrm/src/people.js +3 -3
  394. package/dist/plugins/shiftCrm/src/records.js +2 -2
  395. package/dist/plugins/shiftCrm/src/shared.js +2 -1
  396. package/dist/plugins/shiftCrm/src/tasks.js +3 -3
  397. package/dist/plugins/shiftObjects/src/credentials.js +2 -0
  398. package/dist/plugins/shiftObjects/src/index.js +2 -0
  399. package/dist/plugins/shiftObjects/src/objects.js +4 -3
  400. package/dist/plugins/shiftOcr/src/credentials.js +8 -0
  401. package/dist/plugins/shiftOcr/src/index.js +14 -8
  402. package/dist/plugins/shiftPages/src/index.js +2 -0
  403. package/dist/plugins/shiftPages/src/pages.js +5 -3
  404. package/dist/plugins/shiftPages/src/shared.js +3 -1
  405. package/dist/plugins/shiftTranscription/src/index.js +2 -0
  406. package/dist/plugins/shiftTranscription/src/shared.js +11 -1
  407. package/dist/plugins/shiftTranscription/src/transcription.js +5 -5
  408. package/dist/plugins/shiftWork/src/index.js +2 -0
  409. package/dist/plugins/shiftWork/src/issue-views.js +5 -5
  410. package/dist/plugins/shiftWork/src/issues.js +11 -7
  411. package/dist/plugins/shiftWork/src/projects.js +3 -3
  412. package/dist/plugins/shiftWork/src/shared.js +3 -1
  413. package/dist/plugins/shopify/src/credentials.js +16 -0
  414. package/dist/plugins/shopify/src/index.js +32 -59
  415. package/dist/plugins/signl4/src/credentials.js +17 -0
  416. package/dist/plugins/signl4/src/index.js +28 -29
  417. package/dist/plugins/slack/src/credentials.js +19 -0
  418. package/dist/plugins/slack/src/index.js +51 -60
  419. package/dist/plugins/sms77/src/credentials.js +17 -0
  420. package/dist/plugins/sms77/src/index.js +11 -16
  421. package/dist/plugins/splunk/src/credentials.js +19 -0
  422. package/dist/plugins/splunk/src/index.js +32 -74
  423. package/dist/plugins/spotify/src/credentials.js +19 -0
  424. package/dist/plugins/spotify/src/index.js +40 -55
  425. package/dist/plugins/stackby/src/credentials.js +13 -0
  426. package/dist/plugins/stackby/src/index.js +14 -23
  427. package/dist/plugins/steel/src/auth.js +27 -0
  428. package/dist/plugins/steel/src/browser.js +4 -3
  429. package/dist/plugins/steel/src/captchas.js +4 -3
  430. package/dist/plugins/steel/src/extensions.js +3 -2
  431. package/dist/plugins/steel/src/files.js +9 -10
  432. package/dist/plugins/steel/src/index.js +2 -0
  433. package/dist/plugins/steel/src/page/tools.js +3 -3
  434. package/dist/plugins/steel/src/profiles.js +4 -3
  435. package/dist/plugins/steel/src/sessions.js +13 -13
  436. package/dist/plugins/steel/src/shared.js +21 -51
  437. package/dist/plugins/storyblok/src/credentials.js +37 -0
  438. package/dist/plugins/storyblok/src/index.js +22 -66
  439. package/dist/plugins/strapi/src/credentials.js +71 -0
  440. package/dist/plugins/strapi/src/index.js +36 -70
  441. package/dist/plugins/strava/src/credentials.js +19 -0
  442. package/dist/plugins/strava/src/index.js +16 -33
  443. package/dist/plugins/stripe/src/credentials.js +19 -0
  444. package/dist/plugins/stripe/src/index.js +44 -58
  445. package/dist/plugins/supabase/src/credentials.js +30 -0
  446. package/dist/plugins/supabase/src/index.js +18 -40
  447. package/dist/plugins/syncromsp/src/credentials.js +16 -0
  448. package/dist/plugins/syncromsp/src/index.js +37 -70
  449. package/dist/plugins/tapfiliate/src/credentials.js +13 -0
  450. package/dist/plugins/tapfiliate/src/index.js +21 -31
  451. package/dist/plugins/telegram/src/credentials.js +20 -0
  452. package/dist/plugins/telegram/src/index.js +31 -39
  453. package/dist/plugins/thehive/src/credentials.js +14 -0
  454. package/dist/plugins/thehive/src/index.js +33 -50
  455. package/dist/plugins/thehiveProject/src/credentials.js +16 -0
  456. package/dist/plugins/thehiveProject/src/index.js +53 -122
  457. package/dist/plugins/todoist/src/credentials.js +26 -0
  458. package/dist/plugins/todoist/src/index.js +49 -79
  459. package/dist/plugins/together/src/credentials.js +16 -0
  460. package/dist/plugins/together/src/index.js +31 -33
  461. package/dist/plugins/travisci/src/credentials.js +24 -0
  462. package/dist/plugins/travisci/src/index.js +16 -30
  463. package/dist/plugins/trello/src/credentials.js +29 -0
  464. package/dist/plugins/trello/src/index.js +49 -64
  465. package/dist/plugins/twake/src/credentials.js +16 -0
  466. package/dist/plugins/twake/src/index.js +8 -10
  467. package/dist/plugins/twilio/src/credentials.js +23 -0
  468. package/dist/plugins/twilio/src/index.js +12 -26
  469. package/dist/plugins/twist/src/credentials.js +13 -0
  470. package/dist/plugins/twist/src/index.js +32 -44
  471. package/dist/plugins/twitter/src/credentials.js +16 -0
  472. package/dist/plugins/twitter/src/index.js +25 -37
  473. package/dist/plugins/typesafe/src/credentials.js +28 -0
  474. package/dist/plugins/typesafe/src/index.js +3 -1
  475. package/dist/plugins/typesafe/src/shared.js +23 -35
  476. package/dist/plugins/unleashedSoftware/src/credentials.js +21 -0
  477. package/dist/plugins/unleashedSoftware/src/index.js +13 -37
  478. package/dist/plugins/uplead/src/credentials.js +16 -0
  479. package/dist/plugins/uplead/src/index.js +11 -16
  480. package/dist/plugins/uproc/src/credentials.js +14 -0
  481. package/dist/plugins/uproc/src/index.js +7 -10
  482. package/dist/plugins/uptimerobot/src/credentials.js +14 -0
  483. package/dist/plugins/uptimerobot/src/index.js +28 -39
  484. package/dist/plugins/urlscanio/src/credentials.js +13 -0
  485. package/dist/plugins/urlscanio/src/index.js +13 -22
  486. package/dist/plugins/vercel/src/credentials.js +19 -0
  487. package/dist/plugins/vercel/src/deployments.js +27 -11
  488. package/dist/plugins/vercel/src/env.js +31 -12
  489. package/dist/plugins/vercel/src/index.js +2 -0
  490. package/dist/plugins/vercel/src/projects.js +6 -3
  491. package/dist/plugins/vercel/src/shared.js +32 -37
  492. package/dist/plugins/vero/src/credentials.js +17 -0
  493. package/dist/plugins/vero/src/index.js +18 -21
  494. package/dist/plugins/vonage/src/credentials.js +17 -0
  495. package/dist/plugins/vonage/src/index.js +14 -18
  496. package/dist/plugins/wekan/src/credentials.js +16 -0
  497. package/dist/plugins/wekan/src/index.js +33 -46
  498. package/dist/plugins/wolt/src/account.js +6 -0
  499. package/dist/plugins/wolt/src/catalog.js +2 -2
  500. package/dist/plugins/wolt/src/credentials.js +64 -0
  501. package/dist/plugins/wolt/src/index.js +8 -3
  502. package/dist/plugins/wolt/src/orders.js +2 -2
  503. package/dist/plugins/wolt/src/public.js +91 -0
  504. package/dist/plugins/wolt/src/shared.js +49 -158
  505. package/dist/plugins/woocommerce/src/credentials.js +16 -0
  506. package/dist/plugins/woocommerce/src/index.js +19 -37
  507. package/dist/plugins/wordpress/src/credentials.js +16 -0
  508. package/dist/plugins/wordpress/src/index.js +23 -42
  509. package/dist/plugins/xai/src/credentials.js +13 -0
  510. package/dist/plugins/xai/src/index.js +32 -31
  511. package/dist/plugins/xero/src/credentials.js +17 -0
  512. package/dist/plugins/xero/src/index.js +19 -36
  513. package/dist/plugins/yourls/src/credentials.js +17 -0
  514. package/dist/plugins/yourls/src/index.js +13 -23
  515. package/dist/plugins/zammad/src/credentials.js +15 -0
  516. package/dist/plugins/zammad/src/index.js +27 -47
  517. package/dist/plugins/zendesk/src/credentials.js +26 -0
  518. package/dist/plugins/zendesk/src/index.js +29 -48
  519. package/dist/plugins/zoho/src/credentials.js +17 -0
  520. package/dist/plugins/zoho/src/index.js +18 -38
  521. package/dist/plugins/zoom/src/credentials.js +19 -0
  522. package/dist/plugins/zoom/src/index.js +15 -30
  523. package/dist/plugins/zulip/src/credentials.js +16 -0
  524. package/dist/plugins/zulip/src/index.js +36 -42
  525. package/dist/sdk.d.ts +8 -0
  526. package/dist/sdk.js +3 -0
  527. package/package.json +2 -1
  528. package/dist/plugins/_shared/authedFetch.js +0 -33
  529. package/dist/plugins/_shared/tokenRefresh.js +0 -41
  530. package/dist/tests/helpers/engine-harness.d.ts +0 -1
  531. package/dist/tests/helpers/engine-harness.js +0 -236
@@ -1,15 +1,11 @@
1
- const BASE_URL = "https://api.nasa.gov";
2
- async function apiRequest(apiKey, endpoint, qs = {}) {
3
- const url = new URL(`${BASE_URL}${endpoint}`);
4
- url.searchParams.set("api_key", apiKey);
5
- for (const [k, v] of Object.entries(qs)) {
6
- if (v !== undefined && v !== null)
7
- url.searchParams.set(k, String(v));
8
- }
9
- const res = await fetch(url.toString());
10
- if (!res.ok)
11
- throw new Error(`NASA API error ${res.status}: ${await res.text()}`);
12
- return res.json();
1
+ import { credentialJson, pathSegment } from "../../_shared/credentials.js";
2
+ import { nasaCredential } from "./credentials.js";
3
+ function apiRequest(ctx, path, qs = {}) {
4
+ return credentialJson(ctx, nasaCredential, "nasa", {
5
+ target: "api",
6
+ path,
7
+ query: qs,
8
+ });
13
9
  }
14
10
  function today() {
15
11
  return new Date().toISOString().split("T")[0];
@@ -22,6 +18,7 @@ function formatDate(d) {
22
18
  export default function nasa(rl) {
23
19
  rl.setName("nasa");
24
20
  rl.setVersion("0.1.0");
21
+ rl.setCredential(nasaCredential);
25
22
  rl.setConnectionSchema({
26
23
  apiKey: {
27
24
  type: "string",
@@ -30,7 +27,6 @@ export default function nasa(rl) {
30
27
  env: "NASA_API_KEY",
31
28
  },
32
29
  });
33
- const key = (ctx) => ctx.connection.config.apiKey;
34
30
  rl.registerAction("apod.get", {
35
31
  access: "read",
36
32
  description: "Get the Astronomy Picture of the Day (returns metadata; image URL in 'hdurl' field)",
@@ -45,7 +41,7 @@ export default function nasa(rl) {
45
41
  const qs = {
46
42
  date: formatDate(input?.date) ?? today(),
47
43
  };
48
- return apiRequest(key(ctx), "/planetary/apod", qs);
44
+ return apiRequest(ctx, "planetary/apod", qs);
49
45
  },
50
46
  });
51
47
  rl.registerAction("asteroidNeoFeed.get", {
@@ -69,7 +65,7 @@ export default function nasa(rl) {
69
65
  start_date: formatDate(p.startDate) ?? today(),
70
66
  end_date: formatDate(p.endDate) ?? today(),
71
67
  };
72
- const data = (await apiRequest(key(ctx), "/neo/rest/v1/feed", qs));
68
+ const data = (await apiRequest(ctx, "neo/rest/v1/feed", qs));
73
69
  return data.near_earth_objects;
74
70
  },
75
71
  });
@@ -86,7 +82,7 @@ export default function nasa(rl) {
86
82
  },
87
83
  async execute(input, ctx) {
88
84
  const { asteroidId, includeCloseApproachData } = input;
89
- const data = (await apiRequest(key(ctx), `/neo/rest/v1/neo/${asteroidId}`));
85
+ const data = (await apiRequest(ctx, `neo/rest/v1/neo/${pathSegment(asteroidId)}`));
90
86
  if (!includeCloseApproachData)
91
87
  delete data.close_approach_data;
92
88
  return data;
@@ -106,7 +102,7 @@ export default function nasa(rl) {
106
102
  const qs = {};
107
103
  if (input?.limit)
108
104
  qs.size = input.limit;
109
- const data = (await apiRequest(key(ctx), "/neo/rest/v1/neo/browse", qs));
105
+ const data = (await apiRequest(ctx, "neo/rest/v1/neo/browse", qs));
110
106
  return data.near_earth_objects;
111
107
  },
112
108
  });
@@ -114,42 +110,42 @@ export default function nasa(rl) {
114
110
  const donkiEndpoints = [
115
111
  {
116
112
  name: "coronalMassEjection",
117
- path: "/DONKI/CME",
113
+ path: "DONKI/CME",
118
114
  description: "DONKI Coronal Mass Ejection data",
119
115
  },
120
116
  {
121
117
  name: "solarFlare",
122
- path: "/DONKI/FLR",
118
+ path: "DONKI/FLR",
123
119
  description: "DONKI Solar Flare data",
124
120
  },
125
121
  {
126
122
  name: "solarEnergeticParticle",
127
- path: "/DONKI/SEP",
123
+ path: "DONKI/SEP",
128
124
  description: "DONKI Solar Energetic Particle data",
129
125
  },
130
126
  {
131
127
  name: "magnetopauseCrossing",
132
- path: "/DONKI/MPC",
128
+ path: "DONKI/MPC",
133
129
  description: "DONKI Magnetopause Crossing data",
134
130
  },
135
131
  {
136
132
  name: "radiationBeltEnhancement",
137
- path: "/DONKI/RBE",
133
+ path: "DONKI/RBE",
138
134
  description: "DONKI Radiation Belt Enhancement data",
139
135
  },
140
136
  {
141
137
  name: "highSpeedStream",
142
- path: "/DONKI/HSS",
138
+ path: "DONKI/HSS",
143
139
  description: "DONKI High Speed Stream data",
144
140
  },
145
141
  {
146
142
  name: "wsaEnlilSimulation",
147
- path: "/DONKI/WSAEnlilSimulations",
143
+ path: "DONKI/WSAEnlilSimulations",
148
144
  description: "DONKI WSA+Enlil Simulation data",
149
145
  },
150
146
  {
151
147
  name: "notifications",
152
- path: "/DONKI/notifications",
148
+ path: "DONKI/notifications",
153
149
  description: "DONKI Notifications data",
154
150
  },
155
151
  ];
@@ -176,7 +172,7 @@ export default function nasa(rl) {
176
172
  qs.startDate = formatDate(p.startDate);
177
173
  if (p.endDate)
178
174
  qs.endDate = formatDate(p.endDate);
179
- return apiRequest(key(ctx), ep.path, qs);
175
+ return apiRequest(ctx, ep.path, qs);
180
176
  },
181
177
  });
182
178
  }
@@ -208,7 +204,7 @@ export default function nasa(rl) {
208
204
  qs.location = p.location;
209
205
  if (p.catalog)
210
206
  qs.catalog = p.catalog;
211
- return apiRequest(key(ctx), "/DONKI/IPS", qs);
207
+ return apiRequest(ctx, "DONKI/IPS", qs);
212
208
  },
213
209
  });
214
210
  // ── Earth ───────────────────────────────────────────
@@ -234,7 +230,7 @@ export default function nasa(rl) {
234
230
  const qs = { lat, lon, dim: dim ?? 0.025 };
235
231
  if (date)
236
232
  qs.date = formatDate(date);
237
- return apiRequest(key(ctx), "/planetary/earth/assets", qs);
233
+ return apiRequest(ctx, "planetary/earth/assets", qs);
238
234
  },
239
235
  });
240
236
  }
@@ -0,0 +1,19 @@
1
+ import { staticCredential } from "../../_shared/credentials.js";
2
+ /** A personal access token, sent as a bearer to Netlify's one API origin. */
3
+ export const netlifyCredential = staticCredential({
4
+ id: "netlify",
5
+ auth: { kind: "bearer" },
6
+ local: { secret: "accessToken" },
7
+ targets: {
8
+ api: {
9
+ baseUrl: "https://api.netlify.com/api/v1/",
10
+ methods: ["GET", "POST", "DELETE"],
11
+ },
12
+ },
13
+ probe: {
14
+ target: "api",
15
+ path: "user",
16
+ method: "GET",
17
+ acceptedStatuses: [200],
18
+ },
19
+ });
@@ -1,51 +1,28 @@
1
- const BASE = "https://api.netlify.com/api/v1";
2
- function getToken(ctx) {
3
- return ctx.connection.config.accessToken;
4
- }
5
- async function apiRequest(token, method, endpoint, body, qs) {
6
- const url = new URL(`${BASE}${endpoint}`);
7
- if (qs) {
8
- for (const [k, v] of Object.entries(qs)) {
9
- if (v !== undefined && v !== null)
10
- url.searchParams.set(k, String(v));
11
- }
12
- }
13
- const init = {
1
+ import { credentialJson, credentialOk, jsonAnswer, pathSegment, } from "../../_shared/credentials.js";
2
+ import { netlifyCredential } from "./credentials.js";
3
+ function apiRequest(ctx, method, path, body, query) {
4
+ return credentialJson(ctx, netlifyCredential, "netlify", {
5
+ target: "api",
6
+ path,
14
7
  method,
15
- headers: {
16
- Authorization: `Bearer ${token}`,
17
- "Content-Type": "application/json",
18
- },
19
- };
20
- if (body && Object.keys(body).length > 0)
21
- init.body = JSON.stringify(body);
22
- const res = await fetch(url.toString(), init);
23
- if (!res.ok)
24
- throw new Error(`Netlify API error ${res.status}: ${await res.text()}`);
25
- const text = await res.text();
26
- return text ? JSON.parse(text) : {};
8
+ query,
9
+ ...(body && Object.keys(body).length > 0 ? { json: body } : {}),
10
+ });
27
11
  }
28
- async function paginate(token, endpoint, qs = {}) {
12
+ /** Page-numbered listing; the Link header only says whether a next page exists. */
13
+ async function paginate(ctx, path, query = {}) {
29
14
  const all = [];
30
15
  let page = 0;
31
16
  const perPage = 100;
32
- // eslint-disable-next-line no-constant-condition
33
17
  while (true) {
34
- const url = new URL(`${BASE}${endpoint}`);
35
- url.searchParams.set("page", String(page));
36
- url.searchParams.set("per_page", String(perPage));
37
- for (const [k, v] of Object.entries(qs)) {
38
- if (v !== undefined && v !== null)
39
- url.searchParams.set(k, String(v));
40
- }
41
- const res = await fetch(url.toString(), {
42
- headers: { Authorization: `Bearer ${token}` },
18
+ const response = await credentialOk(ctx, netlifyCredential, "netlify", {
19
+ target: "api",
20
+ path,
21
+ query: { page, per_page: perPage, ...query },
43
22
  });
44
- if (!res.ok)
45
- throw new Error(`Netlify API error ${res.status}: ${await res.text()}`);
46
- const items = (await res.json());
23
+ const items = (await jsonAnswer(response));
47
24
  all.push(...items);
48
- const link = res.headers.get("link") ?? "";
25
+ const link = response.headers.get("link") ?? "";
49
26
  if (!link.includes("next"))
50
27
  break;
51
28
  page++;
@@ -55,6 +32,7 @@ async function paginate(token, endpoint, qs = {}) {
55
32
  export default function netlify(rl) {
56
33
  rl.setName("netlify");
57
34
  rl.setVersion("0.1.0");
35
+ rl.setCredential(netlifyCredential);
58
36
  rl.setConnectionSchema({
59
37
  accessToken: {
60
38
  type: "string",
@@ -72,7 +50,7 @@ export default function netlify(rl) {
72
50
  },
73
51
  async execute(input, ctx) {
74
52
  const { deployId } = input;
75
- return apiRequest(getToken(ctx), "POST", `/deploys/${deployId}/cancel`);
53
+ return apiRequest(ctx, "POST", `deploys/${pathSegment(deployId)}/cancel`);
76
54
  },
77
55
  });
78
56
  rl.registerAction("deploy.create", {
@@ -95,7 +73,7 @@ export default function netlify(rl) {
95
73
  body.branch = branch;
96
74
  if (title)
97
75
  qs.title = title;
98
- return apiRequest(getToken(ctx), "POST", `/sites/${siteId}/deploys`, body, qs);
76
+ return apiRequest(ctx, "POST", `sites/${pathSegment(siteId)}/deploys`, body, qs);
99
77
  },
100
78
  });
101
79
  rl.registerAction("deploy.get", {
@@ -107,7 +85,7 @@ export default function netlify(rl) {
107
85
  },
108
86
  async execute(input, ctx) {
109
87
  const { siteId, deployId } = input;
110
- return apiRequest(getToken(ctx), "GET", `/sites/${siteId}/deploys/${deployId}`);
88
+ return apiRequest(ctx, "GET", `sites/${pathSegment(siteId)}/deploys/${pathSegment(deployId)}`);
111
89
  },
112
90
  });
113
91
  rl.registerAction("deploy.list", {
@@ -123,13 +101,12 @@ export default function netlify(rl) {
123
101
  },
124
102
  async execute(input, ctx) {
125
103
  const { siteId, limit } = input;
126
- const token = getToken(ctx);
127
104
  if (limit) {
128
- return apiRequest(token, "GET", `/sites/${siteId}/deploys`, undefined, {
105
+ return apiRequest(ctx, "GET", `sites/${pathSegment(siteId)}/deploys`, undefined, {
129
106
  per_page: limit,
130
107
  });
131
108
  }
132
- return paginate(token, `/sites/${siteId}/deploys`);
109
+ return paginate(ctx, `sites/${pathSegment(siteId)}/deploys`);
133
110
  },
134
111
  });
135
112
  // ── Site ────────────────────────────────────────────
@@ -141,7 +118,7 @@ export default function netlify(rl) {
141
118
  },
142
119
  async execute(input, ctx) {
143
120
  const { siteId } = input;
144
- return apiRequest(getToken(ctx), "DELETE", `/sites/${siteId}`);
121
+ return apiRequest(ctx, "DELETE", `sites/${pathSegment(siteId)}`);
145
122
  },
146
123
  });
147
124
  rl.registerAction("site.get", {
@@ -152,7 +129,7 @@ export default function netlify(rl) {
152
129
  },
153
130
  async execute(input, ctx) {
154
131
  const { siteId } = input;
155
- return apiRequest(getToken(ctx), "GET", `/sites/${siteId}`);
132
+ return apiRequest(ctx, "GET", `sites/${pathSegment(siteId)}`);
156
133
  },
157
134
  });
158
135
  rl.registerAction("site.list", {
@@ -166,15 +143,14 @@ export default function netlify(rl) {
166
143
  },
167
144
  },
168
145
  async execute(input, ctx) {
169
- const token = getToken(ctx);
170
146
  const limit = input?.limit;
171
147
  if (limit) {
172
- return apiRequest(token, "GET", "/sites", undefined, {
148
+ return apiRequest(ctx, "GET", "sites", undefined, {
173
149
  filter: "all",
174
150
  per_page: limit,
175
151
  });
176
152
  }
177
- return paginate(token, "/sites", { filter: "all" });
153
+ return paginate(ctx, "sites", { filter: "all" });
178
154
  },
179
155
  });
180
156
  }
@@ -0,0 +1,18 @@
1
+ import { httpsBase, staticCredential } from "../../_shared/credentials.js";
2
+ /**
3
+ * The Nitro admin password, sent as the X-NITRO-PASS header to the
4
+ * appliance's /nitro/v1/ base. The username is public config and rides
5
+ * as the X-NITRO-USER companion header. The appliance URL must be HTTPS.
6
+ */
7
+ export const netscalerAdcCredential = staticCredential({
8
+ id: "netscalerAdc",
9
+ auth: { kind: "apiKey", header: "X-NITRO-PASS" },
10
+ local: { secret: "password" },
11
+ targets: (config) => ({
12
+ api: {
13
+ baseUrl: httpsBase(config.url, "nitro/v1/"),
14
+ methods: ["POST", "DELETE"],
15
+ allowedHeaders: ["X-NITRO-USER"],
16
+ },
17
+ }),
18
+ });
@@ -1,32 +1,18 @@
1
- function getConn(ctx) {
2
- const c = ctx.connection.config;
3
- const url = c.url.replace(/\/$/, "");
4
- return {
5
- url,
6
- username: c.username,
7
- password: c.password,
8
- };
9
- }
10
- async function apiRequest(conn, method, resource, body) {
11
- const init = {
1
+ import { credentialJson } from "../../_shared/credentials.js";
2
+ import { netscalerAdcCredential } from "./credentials.js";
3
+ function apiRequest(ctx, method, resource, body) {
4
+ return credentialJson(ctx, netscalerAdcCredential, "netscalerAdc", {
5
+ target: "api",
6
+ path: resource,
12
7
  method,
13
- headers: {
14
- "Content-Type": "application/json",
15
- "X-NITRO-USER": conn.username,
16
- "X-NITRO-PASS": conn.password,
17
- },
18
- };
19
- if (body && Object.keys(body).length > 0)
20
- init.body = JSON.stringify(body);
21
- const res = await fetch(`${conn.url}/nitro/v1${resource}`, init);
22
- if (!res.ok)
23
- throw new Error(`Netscaler ADC API error ${res.status}: ${await res.text()}`);
24
- const text = await res.text();
25
- return text ? JSON.parse(text) : {};
8
+ headers: { "X-NITRO-USER": String(ctx.connection.config.username) },
9
+ ...(body && Object.keys(body).length > 0 ? { json: body } : {}),
10
+ });
26
11
  }
27
12
  export default function netscalerAdc(rl) {
28
13
  rl.setName("netscalerAdc");
29
14
  rl.setVersion("0.1.0");
15
+ rl.setCredential(netscalerAdcCredential);
30
16
  rl.setConnectionSchema({
31
17
  url: {
32
18
  type: "string",
@@ -119,7 +105,6 @@ export default function netscalerAdc(rl) {
119
105
  },
120
106
  async execute(input, ctx) {
121
107
  const p = input;
122
- const conn = getConn(ctx);
123
108
  const body = {
124
109
  reqfile: p.certificateRequestFileName,
125
110
  certfile: p.certificateFileName,
@@ -148,7 +133,7 @@ export default function netscalerAdc(rl) {
148
133
  body.subjectaltname = p.subjectaltname;
149
134
  if (p.days)
150
135
  body.days = p.days;
151
- await apiRequest(conn, "POST", "/config/sslcert?action=create", {
136
+ await apiRequest(ctx, "POST", "config/sslcert?action=create", {
152
137
  sslcert: body,
153
138
  });
154
139
  return { success: true };
@@ -201,7 +186,6 @@ export default function netscalerAdc(rl) {
201
186
  },
202
187
  async execute(input, ctx) {
203
188
  const p = input;
204
- const conn = getConn(ctx);
205
189
  const body = {
206
190
  certkey: p.certificateKeyPairName,
207
191
  cert: p.certificateFileName,
@@ -217,7 +201,7 @@ export default function netscalerAdc(rl) {
217
201
  body.expirymonitor = "ENABLED";
218
202
  body.notificationperiod = p.notificationPeriod ?? 10;
219
203
  }
220
- await apiRequest(conn, "POST", "/config/sslcertkey", {
204
+ await apiRequest(ctx, "POST", "config/sslcertkey", {
221
205
  sslcertkey: body,
222
206
  });
223
207
  return { success: true };
@@ -240,9 +224,10 @@ export default function netscalerAdc(rl) {
240
224
  },
241
225
  async execute(input, ctx) {
242
226
  const { fileName, fileLocation } = input;
243
- const conn = getConn(ctx);
244
- const loc = encodeURIComponent(fileLocation ?? "/nsconfig/ssl/");
245
- await apiRequest(conn, "DELETE", `/config/systemfile?args=filename:${fileName},filelocation:${loc}`);
227
+ // Both are values inside the args query parameter, not path segments.
228
+ const name = encodeURIComponent(String(fileName));
229
+ const loc = encodeURIComponent(String(fileLocation ?? "/nsconfig/ssl/"));
230
+ await apiRequest(ctx, "DELETE", `config/systemfile?args=filename:${name},filelocation:${loc}`);
246
231
  return { success: true };
247
232
  },
248
233
  });
@@ -0,0 +1,27 @@
1
+ import { AuthError } from "runline";
2
+ import { httpsBase, staticCredential } from "../../_shared/credentials.js";
3
+ /**
4
+ * A username and password (or app token) as HTTP Basic, on two targets of
5
+ * the connection's HTTPS server: the WebDAV base it names, and the OCS
6
+ * API beneath the server root, found before `/remote.php/`. A WebDAV URL
7
+ * without that segment is refused: its OCS base cannot be known.
8
+ */
9
+ export const nextcloudCredential = staticCredential({
10
+ id: "nextcloud",
11
+ auth: { kind: "basic" },
12
+ local: { username: "username", password: "password" },
13
+ targets: (config) => {
14
+ const dav = httpsBase(config.webDavUrl, "");
15
+ const root = dav.indexOf("/remote.php/");
16
+ if (root < 0)
17
+ throw new AuthError("invalid_credentials");
18
+ return {
19
+ dav: { baseUrl: dav, methods: ["DELETE", "MKCOL", "COPY", "MOVE"] },
20
+ ocs: {
21
+ baseUrl: `${dav.slice(0, root)}/ocs/`,
22
+ methods: ["GET", "POST", "PUT", "DELETE"],
23
+ allowedHeaders: ["OCS-APIRequest"],
24
+ },
25
+ };
26
+ },
27
+ });