runline 0.33.0 → 0.34.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (515) hide show
  1. package/dist/auth/oauth2.d.ts +7 -1
  2. package/dist/auth/oauth2.js +10 -0
  3. package/dist/auth/token.d.ts +1 -0
  4. package/dist/auth/token.js +19 -1
  5. package/dist/auth/types.d.ts +22 -1
  6. package/dist/core/engine.d.ts +7 -0
  7. package/dist/core/engine.js +9 -0
  8. package/dist/credentials/policy.d.ts +53 -1
  9. package/dist/credentials/policy.js +146 -6
  10. package/dist/credentials/registry.d.ts +9 -0
  11. package/dist/credentials/registry.js +179 -22
  12. package/dist/credentials/transport.d.ts +48 -2
  13. package/dist/credentials/transport.js +248 -70
  14. package/dist/credentials/types.d.ts +167 -10
  15. package/dist/index.d.ts +5 -5
  16. package/dist/index.js +2 -2
  17. package/dist/plugin/api.d.ts +7 -0
  18. package/dist/plugin/api.js +7 -0
  19. package/dist/plugin/types.d.ts +12 -0
  20. package/dist/plugins/_shared/credentialAdapter.js +79 -15
  21. package/dist/plugins/_shared/credentials.js +389 -0
  22. package/dist/plugins/_shared/googleAuth.js +9 -40
  23. package/dist/plugins/_shared/googleCredentials.js +28 -7
  24. package/dist/plugins/_shared/microsoftAuth.js +13 -44
  25. package/dist/plugins/_shared/microsoftCredentials.js +30 -8
  26. package/dist/plugins/_shared/provider.js +2 -14
  27. package/dist/plugins/_shared/shiftCloud.js +19 -55
  28. package/dist/plugins/_shared/shiftCredentials.js +83 -0
  29. package/dist/plugins/actionNetwork/src/credentials.js +14 -0
  30. package/dist/plugins/actionNetwork/src/index.js +39 -50
  31. package/dist/plugins/activeCampaign/src/credentials.js +22 -0
  32. package/dist/plugins/activeCampaign/src/index.js +61 -132
  33. package/dist/plugins/adalo/src/credentials.js +16 -0
  34. package/dist/plugins/adalo/src/index.js +19 -43
  35. package/dist/plugins/affinity/src/credentials.js +19 -0
  36. package/dist/plugins/affinity/src/index.js +29 -54
  37. package/dist/plugins/agileCrm/src/credentials.js +16 -0
  38. package/dist/plugins/agileCrm/src/index.js +46 -112
  39. package/dist/plugins/airtable/src/credentials.js +19 -0
  40. package/dist/plugins/airtable/src/index.js +37 -50
  41. package/dist/plugins/airtop/src/credentials.js +20 -0
  42. package/dist/plugins/airtop/src/index.js +51 -75
  43. package/dist/plugins/apiTemplateIo/src/credentials.js +19 -0
  44. package/dist/plugins/apiTemplateIo/src/index.js +14 -31
  45. package/dist/plugins/asana/src/credentials.js +19 -0
  46. package/dist/plugins/asana/src/index.js +51 -72
  47. package/dist/plugins/autopilot/src/credentials.js +19 -0
  48. package/dist/plugins/autopilot/src/index.js +38 -45
  49. package/dist/plugins/bambooHr/src/credentials.js +16 -0
  50. package/dist/plugins/bambooHr/src/index.js +41 -67
  51. package/dist/plugins/bannerbear/src/credentials.js +19 -0
  52. package/dist/plugins/bannerbear/src/index.js +15 -27
  53. package/dist/plugins/baserow/src/credentials.js +17 -0
  54. package/dist/plugins/baserow/src/index.js +23 -49
  55. package/dist/plugins/beeminder/src/credentials.js +19 -0
  56. package/dist/plugins/beeminder/src/index.js +32 -54
  57. package/dist/plugins/bitly/src/credentials.js +19 -0
  58. package/dist/plugins/bitly/src/index.js +12 -26
  59. package/dist/plugins/bitwarden/src/credentials.js +62 -0
  60. package/dist/plugins/bitwarden/src/index.js +34 -80
  61. package/dist/plugins/box/src/credentials.js +19 -0
  62. package/dist/plugins/box/src/index.js +24 -49
  63. package/dist/plugins/brandfetch/src/credentials.js +13 -0
  64. package/dist/plugins/brandfetch/src/index.js +12 -17
  65. package/dist/plugins/brevo/src/credentials.js +19 -0
  66. package/dist/plugins/brevo/src/index.js +30 -51
  67. package/dist/plugins/bubble/src/credentials.js +28 -0
  68. package/dist/plugins/bubble/src/index.js +29 -65
  69. package/dist/plugins/chargebee/src/credentials.js +16 -0
  70. package/dist/plugins/chargebee/src/index.js +15 -45
  71. package/dist/plugins/circleci/src/credentials.js +19 -0
  72. package/dist/plugins/circleci/src/index.js +19 -39
  73. package/dist/plugins/ciscoWebex/src/credentials.js +19 -0
  74. package/dist/plugins/ciscoWebex/src/index.js +43 -61
  75. package/dist/plugins/clearbit/src/credentials.js +22 -0
  76. package/dist/plugins/clearbit/src/index.js +11 -21
  77. package/dist/plugins/clickup/src/credentials.js +19 -0
  78. package/dist/plugins/clickup/src/index.js +85 -117
  79. package/dist/plugins/clockify/src/credentials.js +19 -0
  80. package/dist/plugins/clockify/src/index.js +46 -61
  81. package/dist/plugins/cloudflare/src/credentials.js +19 -0
  82. package/dist/plugins/cloudflare/src/index.js +19 -34
  83. package/dist/plugins/cockpit/src/credentials.js +17 -0
  84. package/dist/plugins/cockpit/src/index.js +18 -31
  85. package/dist/plugins/coda/src/credentials.js +19 -0
  86. package/dist/plugins/coda/src/index.js +33 -50
  87. package/dist/plugins/coingecko/src/credentials.js +20 -0
  88. package/dist/plugins/coingecko/src/index.js +24 -34
  89. package/dist/plugins/contentful/src/credentials.js +26 -0
  90. package/dist/plugins/contentful/src/index.js +19 -40
  91. package/dist/plugins/convertkit/src/credentials.js +26 -0
  92. package/dist/plugins/convertkit/src/index.js +27 -45
  93. package/dist/plugins/copper/src/credentials.js +17 -0
  94. package/dist/plugins/copper/src/index.js +25 -47
  95. package/dist/plugins/cortex/src/credentials.js +28 -0
  96. package/dist/plugins/cortex/src/index.js +26 -49
  97. package/dist/plugins/currents/src/credentials.js +19 -0
  98. package/dist/plugins/currents/src/index.js +46 -59
  99. package/dist/plugins/customerIo/src/credentials.js +52 -0
  100. package/dist/plugins/customerIo/src/index.js +30 -58
  101. package/dist/plugins/databricks/src/credentials.js +13 -0
  102. package/dist/plugins/databricks/src/index.js +51 -103
  103. package/dist/plugins/deepl/src/credentials.js +19 -0
  104. package/dist/plugins/deepl/src/index.js +13 -39
  105. package/dist/plugins/demio/src/credentials.js +26 -0
  106. package/dist/plugins/demio/src/index.js +17 -41
  107. package/dist/plugins/dhl/src/credentials.js +13 -0
  108. package/dist/plugins/dhl/src/index.js +8 -19
  109. package/dist/plugins/discord/src/credentials.js +19 -0
  110. package/dist/plugins/discord/src/index.js +30 -58
  111. package/dist/plugins/discourse/src/credentials.js +18 -0
  112. package/dist/plugins/discourse/src/index.js +36 -53
  113. package/dist/plugins/disqus/src/credentials.js +13 -0
  114. package/dist/plugins/disqus/src/index.js +14 -32
  115. package/dist/plugins/drift/src/credentials.js +13 -0
  116. package/dist/plugins/drift/src/index.js +16 -26
  117. package/dist/plugins/dropbox/src/credentials.js +13 -0
  118. package/dist/plugins/dropbox/src/index.js +23 -30
  119. package/dist/plugins/dropcontact/src/credentials.js +13 -0
  120. package/dist/plugins/dropcontact/src/index.js +13 -18
  121. package/dist/plugins/egoi/src/credentials.js +19 -0
  122. package/dist/plugins/egoi/src/index.js +23 -38
  123. package/dist/plugins/elasticsearch/src/credentials.js +18 -0
  124. package/dist/plugins/elasticsearch/src/index.js +27 -48
  125. package/dist/plugins/elevenlabs/src/credentials.js +30 -0
  126. package/dist/plugins/elevenlabs/src/index.js +4 -1
  127. package/dist/plugins/elevenlabs/src/schemas.js +2 -1
  128. package/dist/plugins/elevenlabs/src/shared.js +74 -35
  129. package/dist/plugins/elevenlabs/src/workflows.js +2 -2
  130. package/dist/plugins/emelia/src/credentials.js +14 -0
  131. package/dist/plugins/emelia/src/index.js +19 -23
  132. package/dist/plugins/erpnext/src/credentials.js +27 -0
  133. package/dist/plugins/erpnext/src/index.js +21 -42
  134. package/dist/plugins/facebookGraph/src/credentials.js +20 -0
  135. package/dist/plugins/facebookGraph/src/index.js +39 -37
  136. package/dist/plugins/fal/src/credentials.js +14 -0
  137. package/dist/plugins/fal/src/index.js +4 -2
  138. package/dist/plugins/fal/src/shared.js +58 -63
  139. package/dist/plugins/freshdesk/src/credentials.js +20 -0
  140. package/dist/plugins/freshdesk/src/index.js +25 -46
  141. package/dist/plugins/freshservice/src/credentials.js +16 -0
  142. package/dist/plugins/freshservice/src/index.js +37 -58
  143. package/dist/plugins/freshworksCrm/src/credentials.js +16 -0
  144. package/dist/plugins/freshworksCrm/src/index.js +20 -39
  145. package/dist/plugins/getresponse/src/credentials.js +22 -0
  146. package/dist/plugins/getresponse/src/index.js +20 -32
  147. package/dist/plugins/gett/src/credentials.js +64 -0
  148. package/dist/plugins/gett/src/index.js +11 -6
  149. package/dist/plugins/gett/src/login.js +24 -0
  150. package/dist/plugins/gett/src/session.js +15 -38
  151. package/dist/plugins/gett/src/shared.js +41 -84
  152. package/dist/plugins/ghost/src/credentials.js +36 -0
  153. package/dist/plugins/ghost/src/index.js +18 -59
  154. package/dist/plugins/github/src/credentials.js +18 -0
  155. package/dist/plugins/github/src/index.js +55 -78
  156. package/dist/plugins/gitlab/src/credentials.js +24 -0
  157. package/dist/plugins/gitlab/src/index.js +29 -48
  158. package/dist/plugins/gmail/src/index.js +26 -24
  159. package/dist/plugins/gong/src/credentials.js +16 -0
  160. package/dist/plugins/gong/src/index.js +16 -32
  161. package/dist/plugins/googleAppsScript/src/index.js +108 -42
  162. package/dist/plugins/googleCalendar/src/index.js +15 -13
  163. package/dist/plugins/googleContacts/src/index.js +12 -9
  164. package/dist/plugins/googleDocs/src/index.js +2 -0
  165. package/dist/plugins/googleDocs/src/shared.js +2 -1
  166. package/dist/plugins/googleDrive/src/index.js +50 -53
  167. package/dist/plugins/googleImage/src/credentials.js +14 -0
  168. package/dist/plugins/googleImage/src/index.js +14 -25
  169. package/dist/plugins/googleSheets/src/index.js +26 -27
  170. package/dist/plugins/googleSlides/src/index.js +6 -4
  171. package/dist/plugins/googleTasks/src/index.js +13 -11
  172. package/dist/plugins/gotify/src/credentials.js +32 -0
  173. package/dist/plugins/gotify/src/index.js +14 -36
  174. package/dist/plugins/gotowebinar/src/credentials.js +13 -0
  175. package/dist/plugins/gotowebinar/src/index.js +52 -69
  176. package/dist/plugins/grafana/src/credentials.js +16 -0
  177. package/dist/plugins/grafana/src/index.js +34 -53
  178. package/dist/plugins/graphql/src/credentials.js +42 -0
  179. package/dist/plugins/graphql/src/index.js +21 -46
  180. package/dist/plugins/grist/src/credentials.js +30 -0
  181. package/dist/plugins/grist/src/index.js +14 -43
  182. package/dist/plugins/halopsa/src/credentials.js +56 -0
  183. package/dist/plugins/halopsa/src/index.js +20 -47
  184. package/dist/plugins/harvest/src/credentials.js +20 -0
  185. package/dist/plugins/harvest/src/index.js +24 -43
  186. package/dist/plugins/helpscout/src/credentials.js +13 -0
  187. package/dist/plugins/helpscout/src/index.js +26 -38
  188. package/dist/plugins/highlevel/src/credentials.js +19 -0
  189. package/dist/plugins/highlevel/src/index.js +34 -63
  190. package/dist/plugins/homeAssistant/src/credentials.js +27 -0
  191. package/dist/plugins/homeAssistant/src/index.js +34 -52
  192. package/dist/plugins/hubspot/src/credentials.js +16 -0
  193. package/dist/plugins/hubspot/src/index.js +29 -41
  194. package/dist/plugins/humanticAi/src/credentials.js +13 -0
  195. package/dist/plugins/humanticAi/src/index.js +15 -22
  196. package/dist/plugins/hunter/src/credentials.js +13 -0
  197. package/dist/plugins/hunter/src/index.js +18 -17
  198. package/dist/plugins/intercom/src/credentials.js +19 -0
  199. package/dist/plugins/intercom/src/index.js +25 -38
  200. package/dist/plugins/iterable/src/credentials.js +17 -0
  201. package/dist/plugins/iterable/src/index.js +26 -40
  202. package/dist/plugins/jenkins/src/credentials.js +16 -0
  203. package/dist/plugins/jenkins/src/index.js +22 -36
  204. package/dist/plugins/jira/src/credentials.js +16 -0
  205. package/dist/plugins/jira/src/index.js +35 -61
  206. package/dist/plugins/keap/src/credentials.js +19 -0
  207. package/dist/plugins/keap/src/index.js +43 -71
  208. package/dist/plugins/kobotoolbox/src/credentials.js +13 -0
  209. package/dist/plugins/kobotoolbox/src/index.js +46 -84
  210. package/dist/plugins/lemlist/src/credentials.js +19 -0
  211. package/dist/plugins/lemlist/src/index.js +35 -47
  212. package/dist/plugins/linear/src/attachments.js +7 -7
  213. package/dist/plugins/linear/src/comments.js +7 -7
  214. package/dist/plugins/linear/src/credentials.js +17 -0
  215. package/dist/plugins/linear/src/cycles.js +5 -5
  216. package/dist/plugins/linear/src/index.js +2 -0
  217. package/dist/plugins/linear/src/initiatives.js +6 -6
  218. package/dist/plugins/linear/src/issues.js +14 -14
  219. package/dist/plugins/linear/src/labels.js +6 -6
  220. package/dist/plugins/linear/src/organization.js +2 -2
  221. package/dist/plugins/linear/src/projects.js +12 -12
  222. package/dist/plugins/linear/src/shared.js +34 -32
  223. package/dist/plugins/linear/src/states.js +3 -3
  224. package/dist/plugins/linear/src/teams.js +4 -4
  225. package/dist/plugins/linear/src/users.js +3 -3
  226. package/dist/plugins/linear/src/views.js +5 -5
  227. package/dist/plugins/linear/src/webhooks.js +5 -5
  228. package/dist/plugins/lingvanex/src/credentials.js +13 -0
  229. package/dist/plugins/lingvanex/src/index.js +7 -9
  230. package/dist/plugins/linkedin/src/credentials.js +17 -0
  231. package/dist/plugins/linkedin/src/index.js +13 -17
  232. package/dist/plugins/lonescale/src/credentials.js +13 -0
  233. package/dist/plugins/lonescale/src/index.js +16 -26
  234. package/dist/plugins/magento/src/credentials.js +16 -0
  235. package/dist/plugins/magento/src/index.js +67 -84
  236. package/dist/plugins/mailcheck/src/credentials.js +17 -0
  237. package/dist/plugins/mailcheck/src/index.js +7 -9
  238. package/dist/plugins/mailchimp/src/credentials.js +32 -0
  239. package/dist/plugins/mailchimp/src/index.js +36 -44
  240. package/dist/plugins/mailerlite/src/credentials.js +13 -0
  241. package/dist/plugins/mailerlite/src/index.js +19 -32
  242. package/dist/plugins/mailgun/src/credentials.js +21 -0
  243. package/dist/plugins/mailgun/src/index.js +15 -21
  244. package/dist/plugins/mailjet/src/credentials.js +38 -0
  245. package/dist/plugins/mailjet/src/index.js +60 -115
  246. package/dist/plugins/mandrill/src/credentials.js +17 -0
  247. package/dist/plugins/mandrill/src/index.js +11 -12
  248. package/dist/plugins/marketstack/src/credentials.js +16 -0
  249. package/dist/plugins/marketstack/src/index.js +18 -28
  250. package/dist/plugins/matrix/src/credentials.js +19 -0
  251. package/dist/plugins/matrix/src/index.js +23 -52
  252. package/dist/plugins/mattermost/src/credentials.js +19 -0
  253. package/dist/plugins/mattermost/src/index.js +41 -73
  254. package/dist/plugins/mautic/src/credentials.js +16 -0
  255. package/dist/plugins/mautic/src/index.js +46 -62
  256. package/dist/plugins/medium/src/credentials.js +20 -0
  257. package/dist/plugins/medium/src/index.js +18 -23
  258. package/dist/plugins/messagebird/src/credentials.js +22 -0
  259. package/dist/plugins/messagebird/src/index.js +13 -18
  260. package/dist/plugins/metabase/src/credentials.js +19 -0
  261. package/dist/plugins/metabase/src/index.js +24 -40
  262. package/dist/plugins/microsoftCalendar/src/index.js +48 -12
  263. package/dist/plugins/microsoftFiles/src/index.js +90 -25
  264. package/dist/plugins/microsoftMail/src/index.js +62 -15
  265. package/dist/plugins/misp/src/credentials.js +16 -0
  266. package/dist/plugins/misp/src/index.js +60 -71
  267. package/dist/plugins/mocean/src/credentials.js +17 -0
  268. package/dist/plugins/mocean/src/index.js +11 -23
  269. package/dist/plugins/monday/src/credentials.js +14 -0
  270. package/dist/plugins/monday/src/index.js +31 -44
  271. package/dist/plugins/monicaCrm/src/credentials.js +19 -0
  272. package/dist/plugins/monicaCrm/src/index.js +25 -42
  273. package/dist/plugins/msg91/src/credentials.js +10 -0
  274. package/dist/plugins/msg91/src/index.js +15 -11
  275. package/dist/plugins/nasa/src/credentials.js +22 -0
  276. package/dist/plugins/nasa/src/index.js +24 -28
  277. package/dist/plugins/netlify/src/credentials.js +19 -0
  278. package/dist/plugins/netlify/src/index.js +27 -51
  279. package/dist/plugins/netscalerAdc/src/credentials.js +18 -0
  280. package/dist/plugins/netscalerAdc/src/index.js +16 -31
  281. package/dist/plugins/nextcloud/src/credentials.js +27 -0
  282. package/dist/plugins/nextcloud/src/index.js +55 -109
  283. package/dist/plugins/nocodb/src/credentials.js +16 -0
  284. package/dist/plugins/nocodb/src/index.js +19 -37
  285. package/dist/plugins/notion/src/credentials.js +21 -0
  286. package/dist/plugins/notion/src/index.js +25 -38
  287. package/dist/plugins/npm/src/credentials.js +19 -0
  288. package/dist/plugins/npm/src/index.js +22 -32
  289. package/dist/plugins/odoo/src/credentials.js +21 -0
  290. package/dist/plugins/odoo/src/index.js +53 -69
  291. package/dist/plugins/okta/src/credentials.js +23 -0
  292. package/dist/plugins/okta/src/index.js +30 -35
  293. package/dist/plugins/oneSimpleApi/src/credentials.js +16 -0
  294. package/dist/plugins/oneSimpleApi/src/index.js +19 -24
  295. package/dist/plugins/onfleet/src/credentials.js +23 -0
  296. package/dist/plugins/onfleet/src/index.js +42 -53
  297. package/dist/plugins/openai/src/credentials.js +13 -0
  298. package/dist/plugins/openai/src/index.js +15 -23
  299. package/dist/plugins/openweathermap/src/credentials.js +16 -0
  300. package/dist/plugins/openweathermap/src/index.js +22 -22
  301. package/dist/plugins/oura/src/credentials.js +19 -0
  302. package/dist/plugins/oura/src/index.js +13 -18
  303. package/dist/plugins/paddle/src/credentials.js +27 -0
  304. package/dist/plugins/paddle/src/index.js +20 -36
  305. package/dist/plugins/pagerduty/src/credentials.js +24 -0
  306. package/dist/plugins/pagerduty/src/index.js +30 -39
  307. package/dist/plugins/parallel/src/credentials.js +18 -0
  308. package/dist/plugins/parallel/src/index.js +16 -22
  309. package/dist/plugins/paypal/src/credentials.js +44 -0
  310. package/dist/plugins/paypal/src/index.js +14 -40
  311. package/dist/plugins/peekalink/src/credentials.js +16 -0
  312. package/dist/plugins/peekalink/src/index.js +10 -11
  313. package/dist/plugins/phantombuster/src/credentials.js +19 -0
  314. package/dist/plugins/phantombuster/src/index.js +19 -32
  315. package/dist/plugins/philipsHue/src/credentials.js +17 -0
  316. package/dist/plugins/philipsHue/src/index.js +15 -27
  317. package/dist/plugins/pipedrive/src/credentials.js +26 -0
  318. package/dist/plugins/pipedrive/src/index.js +43 -73
  319. package/dist/plugins/plaud/src/index.js +2 -1
  320. package/dist/plugins/plaud/src/shared.js +23 -19
  321. package/dist/plugins/plivo/src/credentials.js +20 -0
  322. package/dist/plugins/plivo/src/index.js +13 -19
  323. package/dist/plugins/posthog/src/credentials.js +18 -0
  324. package/dist/plugins/posthog/src/index.js +14 -20
  325. package/dist/plugins/profitwell/src/credentials.js +22 -0
  326. package/dist/plugins/profitwell/src/index.js +10 -17
  327. package/dist/plugins/pushbullet/src/credentials.js +19 -0
  328. package/dist/plugins/pushbullet/src/index.js +19 -27
  329. package/dist/plugins/pushcut/src/credentials.js +19 -0
  330. package/dist/plugins/pushcut/src/index.js +7 -8
  331. package/dist/plugins/pushover/src/credentials.js +14 -0
  332. package/dist/plugins/pushover/src/index.js +7 -12
  333. package/dist/plugins/quickbase/src/credentials.js +15 -0
  334. package/dist/plugins/quickbase/src/index.js +24 -34
  335. package/dist/plugins/quickbooks/src/credentials.js +22 -0
  336. package/dist/plugins/quickbooks/src/index.js +17 -46
  337. package/dist/plugins/raindrop/src/credentials.js +19 -0
  338. package/dist/plugins/raindrop/src/index.js +30 -32
  339. package/dist/plugins/recraft/src/credentials.js +13 -0
  340. package/dist/plugins/recraft/src/index.js +38 -27
  341. package/dist/plugins/reddit/src/credentials.js +26 -0
  342. package/dist/plugins/reddit/src/index.js +30 -34
  343. package/dist/plugins/replicate/src/credentials.js +23 -0
  344. package/dist/plugins/replicate/src/index.js +17 -27
  345. package/dist/plugins/rocketchat/src/credentials.js +17 -0
  346. package/dist/plugins/rocketchat/src/index.js +8 -19
  347. package/dist/plugins/rundeck/src/credentials.js +16 -0
  348. package/dist/plugins/rundeck/src/index.js +12 -28
  349. package/dist/plugins/salesforce/src/credentials.js +73 -0
  350. package/dist/plugins/salesforce/src/index.js +6 -0
  351. package/dist/plugins/salesforce/src/metadata.js +3 -16
  352. package/dist/plugins/salesforce/src/shared.js +25 -100
  353. package/dist/plugins/salesforce/src/sobjects.js +10 -9
  354. package/dist/plugins/salesmate/src/credentials.js +17 -0
  355. package/dist/plugins/salesmate/src/index.js +20 -37
  356. package/dist/plugins/securityScorecard/src/credentials.js +22 -0
  357. package/dist/plugins/securityScorecard/src/index.js +24 -37
  358. package/dist/plugins/segment/src/credentials.js +16 -0
  359. package/dist/plugins/segment/src/index.js +12 -16
  360. package/dist/plugins/sendgrid/src/credentials.js +13 -0
  361. package/dist/plugins/sendgrid/src/index.js +31 -35
  362. package/dist/plugins/sendy/src/credentials.js +18 -0
  363. package/dist/plugins/sendy/src/index.js +18 -24
  364. package/dist/plugins/sentry/src/credentials.js +16 -0
  365. package/dist/plugins/sentry/src/index.js +30 -98
  366. package/dist/plugins/servicenow/src/credentials.js +13 -0
  367. package/dist/plugins/servicenow/src/index.js +22 -41
  368. package/dist/plugins/shiftAtlas/src/graph.js +2 -2
  369. package/dist/plugins/shiftAtlas/src/index.js +2 -0
  370. package/dist/plugins/shiftAtlas/src/shared.js +3 -1
  371. package/dist/plugins/shiftBwm/src/index.js +4 -2
  372. package/dist/plugins/shiftBwm/src/shared.js +41 -16
  373. package/dist/plugins/shiftCrm/src/access.js +2 -2
  374. package/dist/plugins/shiftCrm/src/accounts.js +3 -3
  375. package/dist/plugins/shiftCrm/src/activities.js +3 -3
  376. package/dist/plugins/shiftCrm/src/credentials.js +6 -0
  377. package/dist/plugins/shiftCrm/src/index.js +2 -0
  378. package/dist/plugins/shiftCrm/src/opportunities.js +3 -3
  379. package/dist/plugins/shiftCrm/src/people.js +3 -3
  380. package/dist/plugins/shiftCrm/src/records.js +2 -2
  381. package/dist/plugins/shiftCrm/src/shared.js +2 -1
  382. package/dist/plugins/shiftCrm/src/tasks.js +3 -3
  383. package/dist/plugins/shiftObjects/src/credentials.js +2 -0
  384. package/dist/plugins/shiftObjects/src/index.js +2 -0
  385. package/dist/plugins/shiftObjects/src/objects.js +3 -2
  386. package/dist/plugins/shiftOcr/src/credentials.js +8 -0
  387. package/dist/plugins/shiftOcr/src/index.js +6 -5
  388. package/dist/plugins/shiftPages/src/index.js +2 -0
  389. package/dist/plugins/shiftPages/src/pages.js +5 -3
  390. package/dist/plugins/shiftPages/src/shared.js +3 -1
  391. package/dist/plugins/shiftTranscription/src/index.js +2 -0
  392. package/dist/plugins/shiftTranscription/src/shared.js +11 -1
  393. package/dist/plugins/shiftTranscription/src/transcription.js +4 -4
  394. package/dist/plugins/shiftWork/src/index.js +2 -0
  395. package/dist/plugins/shiftWork/src/issue-views.js +5 -5
  396. package/dist/plugins/shiftWork/src/issues.js +11 -7
  397. package/dist/plugins/shiftWork/src/projects.js +3 -3
  398. package/dist/plugins/shiftWork/src/shared.js +3 -1
  399. package/dist/plugins/shopify/src/credentials.js +16 -0
  400. package/dist/plugins/shopify/src/index.js +32 -59
  401. package/dist/plugins/signl4/src/credentials.js +17 -0
  402. package/dist/plugins/signl4/src/index.js +28 -29
  403. package/dist/plugins/slack/src/credentials.js +19 -0
  404. package/dist/plugins/slack/src/index.js +51 -60
  405. package/dist/plugins/sms77/src/credentials.js +17 -0
  406. package/dist/plugins/sms77/src/index.js +11 -16
  407. package/dist/plugins/splunk/src/credentials.js +19 -0
  408. package/dist/plugins/splunk/src/index.js +32 -74
  409. package/dist/plugins/spotify/src/credentials.js +19 -0
  410. package/dist/plugins/spotify/src/index.js +40 -55
  411. package/dist/plugins/stackby/src/credentials.js +13 -0
  412. package/dist/plugins/stackby/src/index.js +14 -23
  413. package/dist/plugins/steel/src/auth.js +27 -0
  414. package/dist/plugins/steel/src/browser.js +4 -3
  415. package/dist/plugins/steel/src/captchas.js +4 -3
  416. package/dist/plugins/steel/src/extensions.js +3 -2
  417. package/dist/plugins/steel/src/files.js +9 -10
  418. package/dist/plugins/steel/src/index.js +2 -0
  419. package/dist/plugins/steel/src/page/tools.js +3 -3
  420. package/dist/plugins/steel/src/profiles.js +4 -3
  421. package/dist/plugins/steel/src/sessions.js +13 -13
  422. package/dist/plugins/steel/src/shared.js +21 -51
  423. package/dist/plugins/storyblok/src/credentials.js +37 -0
  424. package/dist/plugins/storyblok/src/index.js +22 -66
  425. package/dist/plugins/strapi/src/credentials.js +71 -0
  426. package/dist/plugins/strapi/src/index.js +36 -70
  427. package/dist/plugins/strava/src/credentials.js +19 -0
  428. package/dist/plugins/strava/src/index.js +16 -33
  429. package/dist/plugins/stripe/src/credentials.js +19 -0
  430. package/dist/plugins/stripe/src/index.js +44 -58
  431. package/dist/plugins/supabase/src/credentials.js +30 -0
  432. package/dist/plugins/supabase/src/index.js +18 -40
  433. package/dist/plugins/syncromsp/src/credentials.js +16 -0
  434. package/dist/plugins/syncromsp/src/index.js +37 -70
  435. package/dist/plugins/tapfiliate/src/credentials.js +13 -0
  436. package/dist/plugins/tapfiliate/src/index.js +21 -31
  437. package/dist/plugins/telegram/src/credentials.js +20 -0
  438. package/dist/plugins/telegram/src/index.js +31 -39
  439. package/dist/plugins/thehive/src/credentials.js +14 -0
  440. package/dist/plugins/thehive/src/index.js +33 -50
  441. package/dist/plugins/thehiveProject/src/credentials.js +16 -0
  442. package/dist/plugins/thehiveProject/src/index.js +53 -122
  443. package/dist/plugins/todoist/src/credentials.js +26 -0
  444. package/dist/plugins/todoist/src/index.js +49 -79
  445. package/dist/plugins/together/src/credentials.js +16 -0
  446. package/dist/plugins/together/src/index.js +30 -32
  447. package/dist/plugins/travisci/src/credentials.js +24 -0
  448. package/dist/plugins/travisci/src/index.js +16 -30
  449. package/dist/plugins/trello/src/credentials.js +29 -0
  450. package/dist/plugins/trello/src/index.js +49 -64
  451. package/dist/plugins/twake/src/credentials.js +16 -0
  452. package/dist/plugins/twake/src/index.js +8 -10
  453. package/dist/plugins/twilio/src/credentials.js +23 -0
  454. package/dist/plugins/twilio/src/index.js +12 -26
  455. package/dist/plugins/twist/src/credentials.js +13 -0
  456. package/dist/plugins/twist/src/index.js +32 -44
  457. package/dist/plugins/twitter/src/credentials.js +16 -0
  458. package/dist/plugins/twitter/src/index.js +25 -37
  459. package/dist/plugins/typesafe/src/credentials.js +28 -0
  460. package/dist/plugins/typesafe/src/index.js +3 -1
  461. package/dist/plugins/typesafe/src/shared.js +23 -35
  462. package/dist/plugins/unleashedSoftware/src/credentials.js +21 -0
  463. package/dist/plugins/unleashedSoftware/src/index.js +13 -37
  464. package/dist/plugins/uplead/src/credentials.js +16 -0
  465. package/dist/plugins/uplead/src/index.js +11 -16
  466. package/dist/plugins/uproc/src/credentials.js +14 -0
  467. package/dist/plugins/uproc/src/index.js +7 -10
  468. package/dist/plugins/uptimerobot/src/credentials.js +14 -0
  469. package/dist/plugins/uptimerobot/src/index.js +28 -39
  470. package/dist/plugins/urlscanio/src/credentials.js +13 -0
  471. package/dist/plugins/urlscanio/src/index.js +13 -22
  472. package/dist/plugins/vercel/src/credentials.js +19 -0
  473. package/dist/plugins/vercel/src/deployments.js +27 -11
  474. package/dist/plugins/vercel/src/env.js +31 -12
  475. package/dist/plugins/vercel/src/index.js +2 -0
  476. package/dist/plugins/vercel/src/projects.js +6 -3
  477. package/dist/plugins/vercel/src/shared.js +32 -37
  478. package/dist/plugins/vero/src/credentials.js +17 -0
  479. package/dist/plugins/vero/src/index.js +18 -21
  480. package/dist/plugins/vonage/src/credentials.js +17 -0
  481. package/dist/plugins/vonage/src/index.js +14 -18
  482. package/dist/plugins/wekan/src/credentials.js +16 -0
  483. package/dist/plugins/wekan/src/index.js +33 -46
  484. package/dist/plugins/wolt/src/account.js +6 -0
  485. package/dist/plugins/wolt/src/catalog.js +2 -2
  486. package/dist/plugins/wolt/src/credentials.js +64 -0
  487. package/dist/plugins/wolt/src/index.js +8 -3
  488. package/dist/plugins/wolt/src/orders.js +2 -2
  489. package/dist/plugins/wolt/src/public.js +91 -0
  490. package/dist/plugins/wolt/src/shared.js +49 -158
  491. package/dist/plugins/woocommerce/src/credentials.js +16 -0
  492. package/dist/plugins/woocommerce/src/index.js +19 -37
  493. package/dist/plugins/wordpress/src/credentials.js +16 -0
  494. package/dist/plugins/wordpress/src/index.js +23 -42
  495. package/dist/plugins/xai/src/credentials.js +13 -0
  496. package/dist/plugins/xai/src/index.js +31 -30
  497. package/dist/plugins/xero/src/credentials.js +17 -0
  498. package/dist/plugins/xero/src/index.js +19 -36
  499. package/dist/plugins/yourls/src/credentials.js +17 -0
  500. package/dist/plugins/yourls/src/index.js +13 -23
  501. package/dist/plugins/zammad/src/credentials.js +15 -0
  502. package/dist/plugins/zammad/src/index.js +27 -47
  503. package/dist/plugins/zendesk/src/credentials.js +26 -0
  504. package/dist/plugins/zendesk/src/index.js +29 -48
  505. package/dist/plugins/zoho/src/credentials.js +17 -0
  506. package/dist/plugins/zoho/src/index.js +18 -38
  507. package/dist/plugins/zoom/src/credentials.js +19 -0
  508. package/dist/plugins/zoom/src/index.js +15 -30
  509. package/dist/plugins/zulip/src/credentials.js +16 -0
  510. package/dist/plugins/zulip/src/index.js +36 -42
  511. package/dist/sdk.d.ts +8 -0
  512. package/dist/sdk.js +3 -0
  513. package/package.json +1 -1
  514. package/dist/plugins/_shared/authedFetch.js +0 -33
  515. package/dist/plugins/_shared/tokenRefresh.js +0 -41
@@ -1,21 +1,18 @@
1
1
  import { randomUUID } from "node:crypto";
2
- import { authedFetch } from "../../_shared/authedFetch.js";
3
- import { arr, num, numOrNull, obj, pick, readBounded, seg as segment, } from "../../_shared/provider.js";
4
- import { coordinatedAccessToken } from "../../_shared/tokenRefresh.js";
2
+ import { AuthError } from "runline";
3
+ import { credentialRequest, pathSegment } from "../../_shared/credentials.js";
4
+ import { arr, num, numOrNull, obj, pick } from "../../_shared/provider.js";
5
+ import { appHeaders, gettCredential } from "./credentials.js";
6
+ export { APP_VERSION } from "./credentials.js";
5
7
  export { arr, num, numOrNull, obj, pick };
6
8
  /**
7
- * Transport and credentials for the Gett consumer surface.
8
- *
9
- * One host, one bearer, one refresh grant. Everything above this file works in
10
- * terms of `http`/`authed` and never reaches the network itself.
9
+ * The Gett consumer surface: one host, one bearer, one refresh grant, all
10
+ * signed through the declared credential. Everything above this file works
11
+ * in terms of `authed` and never reaches the network itself.
11
12
  */
12
- const HOST = "b2cgateway.gett.com";
13
- const UA = "Gett/android/10.48.187";
14
- export const APP_VERSION = "10.48.187";
15
13
  /** Dizengoff Sq, TLV — a location that always has supply, used when none is given. */
16
14
  export const DEF_LAT = 32.0779;
17
15
  export const DEF_LON = 34.7743;
18
- const MAX_RESPONSE_BYTES = 4 * 1024 * 1024;
19
16
  const DEFAULT_TOKEN_TTL_MS = 3_600_000;
20
17
  export const cfgOf = (ctx) => (ctx.connection.config || {});
21
18
  /**
@@ -24,7 +21,7 @@ export const cfgOf = (ctx) => (ctx.connection.config || {});
24
21
  * Gett signals refusal inside the body on some endpoints (`rc`) and in a status
25
22
  * string on others, and answers 200 either way. An explicit `rc` decides; failing
26
23
  * that an explicit status decides; a body carrying neither is an acceptance,
27
- * because `http` has already rejected every non-2xx. Erring the other way would
24
+ * because every non-2xx has already been rejected. Erring the other way would
28
25
  * report a booked ride as unbooked, and the caller would order a second car.
29
26
  */
30
27
  export function accepted(body) {
@@ -53,10 +50,11 @@ export function normPhone(input) {
53
50
  return `972${digits.slice(1)}`;
54
51
  return `972${digits}`;
55
52
  }
56
- export const seg = (value, what) => segment(value, what, "gett");
53
+ /** A configured or caller-supplied value as one path segment; surrounding whitespace is not part of it. */
54
+ export const seg = (value) => pathSegment(String(value ?? "").trim());
57
55
  // ---------- HTTP ----------
58
56
  /** Carries the status for control flow without putting a provider body in the message. */
59
- class GettError extends Error {
57
+ export class GettError extends Error {
60
58
  status;
61
59
  constructor(status, endpoint) {
62
60
  super(`gett: request failed (HTTP ${status}) on ${endpoint}`);
@@ -65,33 +63,12 @@ class GettError extends Error {
65
63
  }
66
64
  }
67
65
  /** The account's phone is in nearly every path; it never belongs in an error. */
68
- function endpointOf(path) {
66
+ export function endpointOf(path) {
69
67
  return path.split("?")[0].replace(/\/phone\/[^/]+/, "/phone/{phone}");
70
68
  }
71
- export async function http(ctx, path, opts = {}) {
72
- const cfg = cfgOf(ctx);
73
- const { method = "GET", body = null, token = null } = opts;
74
- const payload = body == null ? null : JSON.stringify(body);
75
- const headers = {
76
- accept: "application/json",
77
- "user-agent": UA,
78
- "app-platform": "android",
79
- "app-version": APP_VERSION,
80
- "x-device-id": cfg.deviceId || "",
81
- "x-client-device-unique-id": cfg.clientDeviceUniqueId || "",
82
- "x-country-code": "IL",
83
- };
84
- if (token)
85
- headers.authorization = `Bearer ${token}`;
86
- if (payload)
87
- headers["content-type"] = "application/json; charset=UTF-8";
88
- const endpoint = endpointOf(path);
89
- const res = await authedFetch(`https://${HOST}${path}`, {
90
- method,
91
- headers,
92
- body: payload,
93
- });
94
- const text = await readBounded(res, MAX_RESPONSE_BYTES, `gett: response exceeded the size limit on ${endpoint}`);
69
+ /** A 2xx body as an object; anything that is not JSON reads as empty. */
70
+ export async function bodyOf(res, path) {
71
+ const text = await res.text();
95
72
  let parsed = null;
96
73
  try {
97
74
  parsed = text ? JSON.parse(text) : null;
@@ -102,7 +79,7 @@ export async function http(ctx, path, opts = {}) {
102
79
  // The body can hold tokens, the OTP, or the account holder's details; the
103
80
  // status and the redacted endpoint are what a caller can act on.
104
81
  if (!res.ok)
105
- throw new GettError(res.status, endpoint);
82
+ throw new GettError(res.status, endpointOf(path));
106
83
  return obj(parsed);
107
84
  }
108
85
  /**
@@ -123,58 +100,38 @@ export async function ensureDevice(ctx) {
123
100
  if (Object.keys(patch).length)
124
101
  await ctx.updateConnection(patch);
125
102
  }
126
- // ---------- credentials ----------
127
103
  export function expiresAt(expiresIn) {
128
104
  const seconds = numOrNull(expiresIn);
129
105
  return Date.now() + (seconds ? seconds * 1000 : DEFAULT_TOKEN_TTL_MS);
130
106
  }
131
107
  /**
132
- * The refresh grant itself.
133
- *
134
- * `?lc=en` is REQUIRED on every /auth/token call: the app sends it and the server
135
- * 400s with an empty body without it. Access-token TTL is irrelevant to the grant
136
- * (a bearer expired by days still refreshes), so a genuine 400 here means the
137
- * refresh token itself is dead and a fresh owner login is required.
138
- *
139
- * Called only from inside an update owner, and always with an explicit token, so
140
- * it can never re-enter the connection store.
108
+ * What a failed renewal means to the owner: no stored login, or a refresh
109
+ * token Gett no longer honours — both mended by the owner login.
141
110
  */
142
- async function refreshGrant(ctx, cfg) {
111
+ function sessionError(error) {
112
+ if (!(error instanceof AuthError))
113
+ return error;
114
+ if (error.code === "invalid_credentials")
115
+ return new Error("gett: not connected — run account.requestCode({ phone }) -> account.verifyCode({ code }) -> account.verifyCard({ card })");
116
+ if (error.code === "reconnect_required" ||
117
+ (error.code === "provider_rejected" && error.status === 400))
118
+ return new Error("gett: session expired (refresh rejected) — re-run the owner login: account.requestCode -> account.verifyCode -> account.verifyCard");
119
+ return error;
120
+ }
121
+ /** A call on the gateway, signed with the session's access token and renewed on demand. */
122
+ export async function authed(ctx, path, opts = {}) {
123
+ let res;
143
124
  try {
144
- return await http(ctx, `/gl/api/v2/phone/${seg(cfg.phone, "phone")}/auth/token?lc=en`, {
145
- method: "POST",
146
- token: cfg.accessToken || cfg.refreshToken,
147
- body: { grant_type: "refresh_token", refresh_token: cfg.refreshToken },
125
+ res = await credentialRequest(ctx, gettCredential, {
126
+ target: "api",
127
+ path: path.replace(/^\//, ""),
128
+ method: opts.method ?? "GET",
129
+ headers: appHeaders(ctx.connection.config),
130
+ ...(opts.body == null ? {} : { json: opts.body }),
148
131
  });
149
132
  }
150
- catch (e) {
151
- if (e instanceof GettError && e.status === 400) {
152
- throw new Error("gett: session expired (refresh rejected) — re-run the owner login: account.requestCode -> account.verifyCode -> account.verifyCard");
153
- }
154
- throw e;
133
+ catch (error) {
134
+ throw sessionError(error);
155
135
  }
156
- }
157
- export async function accessToken(ctx, force = false) {
158
- const cfg = cfgOf(ctx);
159
- if (!cfg.refreshToken)
160
- throw new Error("gett: not connected — run account.requestCode({ phone }) -> account.verifyCode({ code }) -> account.verifyCard({ card })");
161
- if (!cfg.phone)
162
- throw new Error("gett: no phone configured");
163
- // Renewal runs under the store's update ownership, so parallel actions
164
- // coalesce onto one grant instead of clobbering each other's rotated token.
165
- return coordinatedAccessToken(ctx, async (current) => {
166
- const resp = await refreshGrant(ctx, current);
167
- const issued = pick(resp.access_token);
168
- if (!issued)
169
- throw new Error("gett: token refresh returned no access_token");
170
- const rotated = pick(resp.refresh_token);
171
- return {
172
- accessToken: issued,
173
- accessTokenExpiresAt: expiresAt(resp.expires_in),
174
- ...(rotated ? { refreshToken: rotated } : {}),
175
- };
176
- }, force);
177
- }
178
- export async function authed(ctx, path, opts = {}) {
179
- return http(ctx, path, { ...opts, token: await accessToken(ctx) });
136
+ return bodyOf(res, path);
180
137
  }
@@ -0,0 +1,36 @@
1
+ import { httpsBase, staticCredential } from "../../_shared/credentials.js";
2
+ /**
3
+ * An Admin API key (`<id>:<hex secret>`), from which the transport signs a
4
+ * fresh five-minute JWT for every request, sent as `Authorization: Ghost
5
+ * <token>` to the site's unversioned Admin API base. The site URL is
6
+ * public config and must be HTTPS.
7
+ */
8
+ export const ghostCredential = staticCredential({
9
+ id: "ghost",
10
+ auth: {
11
+ kind: "static",
12
+ parts: ["adminKey"],
13
+ placements: [
14
+ {
15
+ in: "jwt",
16
+ part: "adminKey",
17
+ name: "Authorization",
18
+ prefix: "Ghost ",
19
+ audience: "/admin/",
20
+ },
21
+ ],
22
+ },
23
+ local: { adminKey: "adminApiKey" },
24
+ targets: (config) => ({
25
+ admin: {
26
+ baseUrl: httpsBase(config.url, "ghost/api/admin/"),
27
+ methods: ["GET", "POST", "PUT", "DELETE"],
28
+ },
29
+ }),
30
+ probe: {
31
+ target: "admin",
32
+ path: "site/",
33
+ method: "GET",
34
+ acceptedStatuses: [200],
35
+ },
36
+ });
@@ -1,60 +1,19 @@
1
- async function apiRequest(url, adminApiKey, method, endpoint, body, qs) {
2
- // Ghost Admin API uses JWT. Key format: {id}:{secret}
3
- const [id, secret] = adminApiKey.split(":");
4
- // Create JWT manually using HMAC-SHA256
5
- const header = btoa(JSON.stringify({ alg: "HS256", typ: "JWT", kid: id })).replace(/=/g, "");
6
- const now = Math.floor(Date.now() / 1000);
7
- const payload = btoa(JSON.stringify({ iat: now, exp: now + 300, aud: "/admin/" })).replace(/=/g, "");
8
- const enc = new TextEncoder();
9
- const keyData = new Uint8Array((secret.match(/.{2}/g) ?? []).map((b) => parseInt(b, 16)));
10
- const cryptoKey = await crypto.subtle.importKey("raw", keyData, { name: "HMAC", hash: "SHA-256" }, false, ["sign"]);
11
- const sig = await crypto.subtle.sign("HMAC", cryptoKey, enc.encode(`${header}.${payload}`));
12
- const sigStr = btoa(String.fromCharCode(...new Uint8Array(sig)))
13
- .replace(/\+/g, "-")
14
- .replace(/\//g, "_")
15
- .replace(/=/g, "");
16
- const token = `${header}.${payload}.${sigStr}`;
17
- const base = url.replace(/\/$/, "");
18
- const fullUrl = new URL(`${base}/ghost/api/v2/admin${endpoint}`);
19
- if (qs) {
20
- for (const [k, v] of Object.entries(qs)) {
21
- if (v !== undefined && v !== null)
22
- fullUrl.searchParams.set(k, String(v));
23
- }
24
- }
25
- const opts = {
1
+ import { credentialJson, pathSegment } from "../../_shared/credentials.js";
2
+ import { ghostCredential } from "./credentials.js";
3
+ /** A Ghost Admin API call; GET and DELETE carry no body. */
4
+ function req(ctx, method, path, body, query) {
5
+ return credentialJson(ctx, ghostCredential, "ghost", {
6
+ target: "admin",
7
+ path,
26
8
  method,
27
- headers: {
28
- Authorization: `Ghost ${token}`,
29
- "Content-Type": "application/json",
30
- },
31
- };
32
- if (body &&
33
- Object.keys(body).length > 0 &&
34
- method !== "GET" &&
35
- method !== "DELETE") {
36
- opts.body = JSON.stringify(body);
37
- }
38
- const res = await fetch(fullUrl.toString(), opts);
39
- if (!res.ok)
40
- throw new Error(`Ghost API error ${res.status}: ${await res.text()}`);
41
- if (res.status === 204)
42
- return { success: true };
43
- return res.json();
44
- }
45
- function getConn(ctx) {
46
- return {
47
- url: ctx.connection.config.url.replace(/\/$/, ""),
48
- adminApiKey: ctx.connection.config.adminApiKey,
49
- };
50
- }
51
- function req(ctx, method, endpoint, body, qs) {
52
- const { url, adminApiKey } = getConn(ctx);
53
- return apiRequest(url, adminApiKey, method, endpoint, body, qs);
9
+ query,
10
+ ...(body && method !== "GET" && method !== "DELETE" ? { json: body } : {}),
11
+ });
54
12
  }
55
13
  export default function ghost(rl) {
56
14
  rl.setName("ghost");
57
15
  rl.setVersion("0.1.0");
16
+ rl.setCredential(ghostCredential);
58
17
  rl.setConnectionSchema({
59
18
  url: {
60
19
  type: "string",
@@ -133,7 +92,7 @@ export default function ghost(rl) {
133
92
  post.featured = featured;
134
93
  if (slug)
135
94
  post.slug = slug;
136
- const data = (await req(ctx, "POST", "/posts/", { posts: [post] }, qs));
95
+ const data = (await req(ctx, "POST", "posts/", { posts: [post] }, qs));
137
96
  return data.posts?.[0];
138
97
  },
139
98
  });
@@ -156,9 +115,9 @@ export default function ghost(rl) {
156
115
  qs.formats = formats;
157
116
  let endpoint;
158
117
  if (slug)
159
- endpoint = `/posts/slug/${slug}/`;
118
+ endpoint = `posts/slug/${pathSegment(slug)}/`;
160
119
  else if (id)
161
- endpoint = `/posts/${id}/`;
120
+ endpoint = `posts/${pathSegment(id)}/`;
162
121
  else
163
122
  throw new Error("Provide either id or slug");
164
123
  const data = (await req(ctx, "GET", endpoint, undefined, qs));
@@ -204,7 +163,7 @@ export default function ghost(rl) {
204
163
  qs.formats = formats;
205
164
  if (order)
206
165
  qs.order = order;
207
- const data = (await req(ctx, "GET", "/posts/", undefined, qs));
166
+ const data = (await req(ctx, "GET", "posts/", undefined, qs));
208
167
  return data.posts;
209
168
  },
210
169
  });
@@ -241,7 +200,7 @@ export default function ghost(rl) {
241
200
  async execute(input, ctx) {
242
201
  const { postId, title, html, lexical, status, publishedAt, tags, featured, slug, } = input;
243
202
  // Need updated_at for optimistic locking
244
- const existing = (await req(ctx, "GET", `/posts/${postId}/`, undefined, {
203
+ const existing = (await req(ctx, "GET", `posts/${pathSegment(postId)}/`, undefined, {
245
204
  fields: "id,updated_at",
246
205
  }));
247
206
  const currentPost = existing.posts[0];
@@ -267,7 +226,7 @@ export default function ghost(rl) {
267
226
  post.featured = featured;
268
227
  if (slug)
269
228
  post.slug = slug;
270
- const data = (await req(ctx, "PUT", `/posts/${postId}/`, { posts: [post] }, qs));
229
+ const data = (await req(ctx, "PUT", `posts/${pathSegment(postId)}/`, { posts: [post] }, qs));
271
230
  return data.posts?.[0];
272
231
  },
273
232
  });
@@ -278,7 +237,7 @@ export default function ghost(rl) {
278
237
  postId: { type: "string", required: true, description: "Post ID" },
279
238
  },
280
239
  async execute(input, ctx) {
281
- await req(ctx, "DELETE", `/posts/${input.postId}/`);
240
+ await req(ctx, "DELETE", `posts/${pathSegment(input.postId)}/`);
282
241
  return { success: true };
283
242
  },
284
243
  });
@@ -0,0 +1,18 @@
1
+ import { httpsBase, staticCredential } from "../../_shared/credentials.js";
2
+ export const GITHUB_API_VERSION = "2022-11-28";
3
+ /**
4
+ * A personal access token, sent as a bearer to the configured API origin —
5
+ * github.com by default, a GitHub Enterprise host when baseUrl says so.
6
+ */
7
+ export const githubCredential = staticCredential({
8
+ id: "github",
9
+ auth: { kind: "bearer" },
10
+ local: { secret: "token" },
11
+ targets: (config) => ({
12
+ api: {
13
+ baseUrl: httpsBase(config.baseUrl ?? "https://api.github.com", ""),
14
+ methods: ["GET", "POST", "PUT", "PATCH", "DELETE"],
15
+ allowedHeaders: ["X-GitHub-Api-Version"],
16
+ },
17
+ }),
18
+ });