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.
- package/dist/auth/oauth2.d.ts +7 -1
- package/dist/auth/oauth2.js +10 -0
- package/dist/auth/token.d.ts +1 -0
- package/dist/auth/token.js +19 -1
- package/dist/auth/types.d.ts +22 -1
- package/dist/core/engine.d.ts +7 -0
- package/dist/core/engine.js +21 -8
- package/dist/credentials/policy.d.ts +53 -1
- package/dist/credentials/policy.js +146 -6
- package/dist/credentials/registry.d.ts +9 -0
- package/dist/credentials/registry.js +184 -22
- package/dist/credentials/transport.d.ts +48 -2
- package/dist/credentials/transport.js +248 -70
- package/dist/credentials/types.d.ts +177 -10
- package/dist/index.d.ts +6 -5
- package/dist/index.js +3 -2
- package/dist/plugin/api.d.ts +7 -0
- package/dist/plugin/api.js +7 -0
- package/dist/plugin/schema.d.ts +16 -4
- package/dist/plugin/schema.js +28 -5
- package/dist/plugin/types.d.ts +20 -0
- package/dist/plugins/_shared/base64.js +30 -0
- package/dist/plugins/_shared/credentialAdapter.js +99 -15
- package/dist/plugins/_shared/credentials.js +416 -0
- package/dist/plugins/_shared/googleAuth.js +69 -39
- package/dist/plugins/_shared/googleCredentials.js +68 -14
- package/dist/plugins/_shared/localFile.js +40 -0
- package/dist/plugins/_shared/mediaFile.js +12 -12
- package/dist/plugins/_shared/microsoftAuth.js +31 -47
- package/dist/plugins/_shared/microsoftCredentials.js +42 -15
- package/dist/plugins/_shared/provider.js +2 -14
- package/dist/plugins/_shared/shiftCloud.js +16 -56
- package/dist/plugins/_shared/shiftCredentials.js +83 -0
- package/dist/plugins/_shared/shiftUpload.js +14 -10
- package/dist/plugins/actionNetwork/src/credentials.js +14 -0
- package/dist/plugins/actionNetwork/src/index.js +39 -50
- package/dist/plugins/activeCampaign/src/credentials.js +22 -0
- package/dist/plugins/activeCampaign/src/index.js +61 -132
- package/dist/plugins/adalo/src/credentials.js +16 -0
- package/dist/plugins/adalo/src/index.js +19 -43
- package/dist/plugins/affinity/src/credentials.js +19 -0
- package/dist/plugins/affinity/src/index.js +29 -54
- package/dist/plugins/agentMail/src/credentials.js +35 -0
- package/dist/plugins/agentMail/src/drafts.js +137 -0
- package/dist/plugins/agentMail/src/inboxes.js +95 -0
- package/dist/plugins/agentMail/src/index.js +35 -0
- package/dist/plugins/agentMail/src/messages.js +154 -0
- package/dist/plugins/agentMail/src/schemas.js +156 -0
- package/dist/plugins/agentMail/src/shared.js +203 -0
- package/dist/plugins/agentMail/src/threads.js +75 -0
- package/dist/plugins/agileCrm/src/credentials.js +16 -0
- package/dist/plugins/agileCrm/src/index.js +46 -112
- package/dist/plugins/airtable/src/credentials.js +19 -0
- package/dist/plugins/airtable/src/index.js +37 -50
- package/dist/plugins/airtop/src/credentials.js +20 -0
- package/dist/plugins/airtop/src/index.js +51 -75
- package/dist/plugins/apiTemplateIo/src/credentials.js +19 -0
- package/dist/plugins/apiTemplateIo/src/index.js +14 -31
- package/dist/plugins/asana/src/credentials.js +19 -0
- package/dist/plugins/asana/src/index.js +51 -72
- package/dist/plugins/autopilot/src/credentials.js +19 -0
- package/dist/plugins/autopilot/src/index.js +38 -45
- package/dist/plugins/bambooHr/src/credentials.js +16 -0
- package/dist/plugins/bambooHr/src/index.js +41 -67
- package/dist/plugins/bannerbear/src/credentials.js +19 -0
- package/dist/plugins/bannerbear/src/index.js +15 -27
- package/dist/plugins/baserow/src/credentials.js +17 -0
- package/dist/plugins/baserow/src/index.js +23 -49
- package/dist/plugins/beeminder/src/credentials.js +19 -0
- package/dist/plugins/beeminder/src/index.js +32 -54
- package/dist/plugins/bitly/src/credentials.js +19 -0
- package/dist/plugins/bitly/src/index.js +12 -26
- package/dist/plugins/bitwarden/src/credentials.js +62 -0
- package/dist/plugins/bitwarden/src/index.js +34 -80
- package/dist/plugins/box/src/credentials.js +19 -0
- package/dist/plugins/box/src/index.js +24 -49
- package/dist/plugins/brandfetch/src/credentials.js +13 -0
- package/dist/plugins/brandfetch/src/index.js +12 -17
- package/dist/plugins/brevo/src/credentials.js +19 -0
- package/dist/plugins/brevo/src/index.js +30 -51
- package/dist/plugins/bubble/src/credentials.js +28 -0
- package/dist/plugins/bubble/src/index.js +29 -65
- package/dist/plugins/chargebee/src/credentials.js +16 -0
- package/dist/plugins/chargebee/src/index.js +15 -45
- package/dist/plugins/circleci/src/credentials.js +19 -0
- package/dist/plugins/circleci/src/index.js +19 -39
- package/dist/plugins/ciscoWebex/src/credentials.js +19 -0
- package/dist/plugins/ciscoWebex/src/index.js +43 -61
- package/dist/plugins/clearbit/src/credentials.js +22 -0
- package/dist/plugins/clearbit/src/index.js +11 -21
- package/dist/plugins/clickup/src/credentials.js +19 -0
- package/dist/plugins/clickup/src/index.js +85 -117
- package/dist/plugins/clockify/src/credentials.js +19 -0
- package/dist/plugins/clockify/src/index.js +46 -61
- package/dist/plugins/cloudflare/src/credentials.js +19 -0
- package/dist/plugins/cloudflare/src/index.js +19 -34
- package/dist/plugins/cockpit/src/credentials.js +17 -0
- package/dist/plugins/cockpit/src/index.js +18 -31
- package/dist/plugins/coda/src/credentials.js +19 -0
- package/dist/plugins/coda/src/index.js +33 -50
- package/dist/plugins/coingecko/src/credentials.js +20 -0
- package/dist/plugins/coingecko/src/index.js +24 -34
- package/dist/plugins/contentful/src/credentials.js +26 -0
- package/dist/plugins/contentful/src/index.js +19 -40
- package/dist/plugins/convertkit/src/credentials.js +26 -0
- package/dist/plugins/convertkit/src/index.js +27 -45
- package/dist/plugins/copper/src/credentials.js +17 -0
- package/dist/plugins/copper/src/index.js +25 -47
- package/dist/plugins/cortex/src/credentials.js +28 -0
- package/dist/plugins/cortex/src/index.js +26 -49
- package/dist/plugins/currents/src/credentials.js +19 -0
- package/dist/plugins/currents/src/index.js +46 -59
- package/dist/plugins/customerIo/src/credentials.js +52 -0
- package/dist/plugins/customerIo/src/index.js +30 -58
- package/dist/plugins/databricks/src/credentials.js +13 -0
- package/dist/plugins/databricks/src/index.js +51 -103
- package/dist/plugins/deepl/src/credentials.js +19 -0
- package/dist/plugins/deepl/src/index.js +13 -39
- package/dist/plugins/demio/src/credentials.js +26 -0
- package/dist/plugins/demio/src/index.js +17 -41
- package/dist/plugins/dhl/src/credentials.js +13 -0
- package/dist/plugins/dhl/src/index.js +8 -19
- package/dist/plugins/discord/src/credentials.js +19 -0
- package/dist/plugins/discord/src/index.js +30 -58
- package/dist/plugins/discourse/src/credentials.js +18 -0
- package/dist/plugins/discourse/src/index.js +36 -53
- package/dist/plugins/disqus/src/credentials.js +13 -0
- package/dist/plugins/disqus/src/index.js +14 -32
- package/dist/plugins/drift/src/credentials.js +13 -0
- package/dist/plugins/drift/src/index.js +16 -26
- package/dist/plugins/dropbox/src/credentials.js +13 -0
- package/dist/plugins/dropbox/src/index.js +23 -30
- package/dist/plugins/dropcontact/src/credentials.js +13 -0
- package/dist/plugins/dropcontact/src/index.js +13 -18
- package/dist/plugins/egoi/src/credentials.js +19 -0
- package/dist/plugins/egoi/src/index.js +23 -38
- package/dist/plugins/elasticsearch/src/credentials.js +18 -0
- package/dist/plugins/elasticsearch/src/index.js +27 -48
- package/dist/plugins/elevenlabs/src/credentials.js +30 -0
- package/dist/plugins/elevenlabs/src/index.js +4 -1
- package/dist/plugins/elevenlabs/src/schemas.js +2 -1
- package/dist/plugins/elevenlabs/src/shared.js +87 -62
- package/dist/plugins/elevenlabs/src/workflows.js +2 -2
- package/dist/plugins/emelia/src/credentials.js +14 -0
- package/dist/plugins/emelia/src/index.js +19 -23
- package/dist/plugins/erpnext/src/credentials.js +27 -0
- package/dist/plugins/erpnext/src/index.js +21 -42
- package/dist/plugins/facebookGraph/src/credentials.js +20 -0
- package/dist/plugins/facebookGraph/src/index.js +39 -37
- package/dist/plugins/fal/src/credentials.js +14 -0
- package/dist/plugins/fal/src/index.js +5 -3
- package/dist/plugins/fal/src/shared.js +58 -63
- package/dist/plugins/freshdesk/src/credentials.js +20 -0
- package/dist/plugins/freshdesk/src/index.js +25 -46
- package/dist/plugins/freshservice/src/credentials.js +16 -0
- package/dist/plugins/freshservice/src/index.js +37 -58
- package/dist/plugins/freshworksCrm/src/credentials.js +16 -0
- package/dist/plugins/freshworksCrm/src/index.js +20 -39
- package/dist/plugins/getresponse/src/credentials.js +22 -0
- package/dist/plugins/getresponse/src/index.js +20 -32
- package/dist/plugins/gett/src/credentials.js +64 -0
- package/dist/plugins/gett/src/index.js +11 -6
- package/dist/plugins/gett/src/login.js +24 -0
- package/dist/plugins/gett/src/session.js +15 -38
- package/dist/plugins/gett/src/shared.js +41 -84
- package/dist/plugins/ghost/src/credentials.js +36 -0
- package/dist/plugins/ghost/src/index.js +18 -59
- package/dist/plugins/github/src/credentials.js +18 -0
- package/dist/plugins/github/src/index.js +55 -78
- package/dist/plugins/gitlab/src/credentials.js +24 -0
- package/dist/plugins/gitlab/src/index.js +29 -48
- package/dist/plugins/gmail/src/index.js +47 -108
- package/dist/plugins/gong/src/credentials.js +16 -0
- package/dist/plugins/gong/src/index.js +16 -32
- package/dist/plugins/googleAppsScript/src/index.js +109 -42
- package/dist/plugins/googleCalendar/src/index.js +20 -51
- package/dist/plugins/googleContacts/src/index.js +13 -40
- package/dist/plugins/googleDocs/src/index.js +3 -32
- package/dist/plugins/googleDocs/src/shared.js +2 -1
- package/dist/plugins/googleDrive/src/index.js +68 -97
- package/dist/plugins/googleImage/src/credentials.js +14 -0
- package/dist/plugins/googleImage/src/index.js +15 -26
- package/dist/plugins/googleSheets/src/index.js +27 -60
- package/dist/plugins/googleSlides/src/index.js +7 -35
- package/dist/plugins/googleTasks/src/index.js +14 -42
- package/dist/plugins/gotify/src/credentials.js +32 -0
- package/dist/plugins/gotify/src/index.js +14 -36
- package/dist/plugins/gotowebinar/src/credentials.js +13 -0
- package/dist/plugins/gotowebinar/src/index.js +52 -69
- package/dist/plugins/grafana/src/credentials.js +16 -0
- package/dist/plugins/grafana/src/index.js +34 -53
- package/dist/plugins/graphql/src/credentials.js +42 -0
- package/dist/plugins/graphql/src/index.js +21 -46
- package/dist/plugins/grist/src/credentials.js +30 -0
- package/dist/plugins/grist/src/index.js +14 -43
- package/dist/plugins/halopsa/src/credentials.js +56 -0
- package/dist/plugins/halopsa/src/index.js +20 -47
- package/dist/plugins/harvest/src/credentials.js +20 -0
- package/dist/plugins/harvest/src/index.js +24 -43
- package/dist/plugins/helpscout/src/credentials.js +13 -0
- package/dist/plugins/helpscout/src/index.js +26 -38
- package/dist/plugins/highlevel/src/credentials.js +19 -0
- package/dist/plugins/highlevel/src/index.js +42 -65
- package/dist/plugins/homeAssistant/src/credentials.js +27 -0
- package/dist/plugins/homeAssistant/src/index.js +34 -52
- package/dist/plugins/hubspot/src/credentials.js +16 -0
- package/dist/plugins/hubspot/src/index.js +29 -41
- package/dist/plugins/humanticAi/src/credentials.js +13 -0
- package/dist/plugins/humanticAi/src/index.js +15 -22
- package/dist/plugins/hunter/src/credentials.js +13 -0
- package/dist/plugins/hunter/src/index.js +18 -17
- package/dist/plugins/intercom/src/credentials.js +19 -0
- package/dist/plugins/intercom/src/index.js +25 -38
- package/dist/plugins/iterable/src/credentials.js +17 -0
- package/dist/plugins/iterable/src/index.js +26 -40
- package/dist/plugins/jenkins/src/credentials.js +16 -0
- package/dist/plugins/jenkins/src/index.js +22 -36
- package/dist/plugins/jira/src/credentials.js +16 -0
- package/dist/plugins/jira/src/index.js +35 -61
- package/dist/plugins/keap/src/credentials.js +19 -0
- package/dist/plugins/keap/src/index.js +43 -71
- package/dist/plugins/kobotoolbox/src/credentials.js +13 -0
- package/dist/plugins/kobotoolbox/src/index.js +46 -84
- package/dist/plugins/lemlist/src/credentials.js +19 -0
- package/dist/plugins/lemlist/src/index.js +35 -47
- package/dist/plugins/linear/src/attachments.js +7 -7
- package/dist/plugins/linear/src/comments.js +7 -7
- package/dist/plugins/linear/src/credentials.js +17 -0
- package/dist/plugins/linear/src/cycles.js +5 -5
- package/dist/plugins/linear/src/index.js +2 -0
- package/dist/plugins/linear/src/initiatives.js +6 -6
- package/dist/plugins/linear/src/issues.js +14 -14
- package/dist/plugins/linear/src/labels.js +6 -6
- package/dist/plugins/linear/src/organization.js +2 -2
- package/dist/plugins/linear/src/projects.js +12 -12
- package/dist/plugins/linear/src/shared.js +34 -32
- package/dist/plugins/linear/src/states.js +3 -3
- package/dist/plugins/linear/src/teams.js +4 -4
- package/dist/plugins/linear/src/users.js +3 -3
- package/dist/plugins/linear/src/views.js +5 -5
- package/dist/plugins/linear/src/webhooks.js +5 -5
- package/dist/plugins/lingvanex/src/credentials.js +13 -0
- package/dist/plugins/lingvanex/src/index.js +7 -9
- package/dist/plugins/linkedin/src/credentials.js +17 -0
- package/dist/plugins/linkedin/src/index.js +13 -17
- package/dist/plugins/lonescale/src/credentials.js +13 -0
- package/dist/plugins/lonescale/src/index.js +16 -26
- package/dist/plugins/magento/src/credentials.js +16 -0
- package/dist/plugins/magento/src/index.js +67 -84
- package/dist/plugins/mailcheck/src/credentials.js +17 -0
- package/dist/plugins/mailcheck/src/index.js +7 -9
- package/dist/plugins/mailchimp/src/credentials.js +32 -0
- package/dist/plugins/mailchimp/src/index.js +36 -44
- package/dist/plugins/mailerlite/src/credentials.js +13 -0
- package/dist/plugins/mailerlite/src/index.js +19 -32
- package/dist/plugins/mailgun/src/credentials.js +21 -0
- package/dist/plugins/mailgun/src/index.js +15 -21
- package/dist/plugins/mailjet/src/credentials.js +38 -0
- package/dist/plugins/mailjet/src/index.js +60 -115
- package/dist/plugins/mandrill/src/credentials.js +17 -0
- package/dist/plugins/mandrill/src/index.js +11 -12
- package/dist/plugins/marketstack/src/credentials.js +16 -0
- package/dist/plugins/marketstack/src/index.js +18 -28
- package/dist/plugins/matrix/src/credentials.js +19 -0
- package/dist/plugins/matrix/src/index.js +23 -52
- package/dist/plugins/mattermost/src/credentials.js +19 -0
- package/dist/plugins/mattermost/src/index.js +41 -73
- package/dist/plugins/mautic/src/credentials.js +16 -0
- package/dist/plugins/mautic/src/index.js +46 -62
- package/dist/plugins/medium/src/credentials.js +20 -0
- package/dist/plugins/medium/src/index.js +18 -23
- package/dist/plugins/messagebird/src/credentials.js +22 -0
- package/dist/plugins/messagebird/src/index.js +13 -18
- package/dist/plugins/metabase/src/credentials.js +19 -0
- package/dist/plugins/metabase/src/index.js +24 -40
- package/dist/plugins/microsoftCalendar/src/index.js +49 -18
- package/dist/plugins/microsoftFiles/src/index.js +95 -31
- package/dist/plugins/microsoftMail/src/index.js +63 -21
- package/dist/plugins/misp/src/credentials.js +16 -0
- package/dist/plugins/misp/src/index.js +60 -71
- package/dist/plugins/mocean/src/credentials.js +17 -0
- package/dist/plugins/mocean/src/index.js +11 -23
- package/dist/plugins/monday/src/credentials.js +14 -0
- package/dist/plugins/monday/src/index.js +31 -44
- package/dist/plugins/monicaCrm/src/credentials.js +19 -0
- package/dist/plugins/monicaCrm/src/index.js +25 -42
- package/dist/plugins/msg91/src/credentials.js +10 -0
- package/dist/plugins/msg91/src/index.js +15 -11
- package/dist/plugins/nasa/src/credentials.js +22 -0
- package/dist/plugins/nasa/src/index.js +24 -28
- package/dist/plugins/netlify/src/credentials.js +19 -0
- package/dist/plugins/netlify/src/index.js +27 -51
- package/dist/plugins/netscalerAdc/src/credentials.js +18 -0
- package/dist/plugins/netscalerAdc/src/index.js +16 -31
- package/dist/plugins/nextcloud/src/credentials.js +27 -0
- package/dist/plugins/nextcloud/src/index.js +55 -109
- package/dist/plugins/nocodb/src/credentials.js +16 -0
- package/dist/plugins/nocodb/src/index.js +19 -37
- package/dist/plugins/notion/src/credentials.js +21 -0
- package/dist/plugins/notion/src/index.js +25 -38
- package/dist/plugins/npm/src/credentials.js +19 -0
- package/dist/plugins/npm/src/index.js +22 -32
- package/dist/plugins/odoo/src/credentials.js +21 -0
- package/dist/plugins/odoo/src/index.js +53 -69
- package/dist/plugins/okta/src/credentials.js +23 -0
- package/dist/plugins/okta/src/index.js +30 -35
- package/dist/plugins/oneSimpleApi/src/credentials.js +16 -0
- package/dist/plugins/oneSimpleApi/src/index.js +19 -24
- package/dist/plugins/onfleet/src/credentials.js +23 -0
- package/dist/plugins/onfleet/src/index.js +42 -53
- package/dist/plugins/openai/src/credentials.js +13 -0
- package/dist/plugins/openai/src/index.js +16 -24
- package/dist/plugins/openweathermap/src/credentials.js +16 -0
- package/dist/plugins/openweathermap/src/index.js +22 -22
- package/dist/plugins/oura/src/credentials.js +19 -0
- package/dist/plugins/oura/src/index.js +13 -18
- package/dist/plugins/paddle/src/credentials.js +27 -0
- package/dist/plugins/paddle/src/index.js +20 -36
- package/dist/plugins/pagerduty/src/credentials.js +24 -0
- package/dist/plugins/pagerduty/src/index.js +30 -39
- package/dist/plugins/parallel/src/credentials.js +18 -0
- package/dist/plugins/parallel/src/index.js +16 -22
- package/dist/plugins/paypal/src/credentials.js +44 -0
- package/dist/plugins/paypal/src/index.js +14 -40
- package/dist/plugins/peekalink/src/credentials.js +16 -0
- package/dist/plugins/peekalink/src/index.js +10 -11
- package/dist/plugins/phantombuster/src/credentials.js +19 -0
- package/dist/plugins/phantombuster/src/index.js +19 -32
- package/dist/plugins/philipsHue/src/credentials.js +17 -0
- package/dist/plugins/philipsHue/src/index.js +15 -27
- package/dist/plugins/pipedrive/src/credentials.js +26 -0
- package/dist/plugins/pipedrive/src/index.js +43 -73
- package/dist/plugins/plaud/src/index.js +2 -1
- package/dist/plugins/plaud/src/shared.js +23 -19
- package/dist/plugins/plivo/src/credentials.js +20 -0
- package/dist/plugins/plivo/src/index.js +13 -19
- package/dist/plugins/posthog/src/credentials.js +18 -0
- package/dist/plugins/posthog/src/index.js +14 -20
- package/dist/plugins/profitwell/src/credentials.js +22 -0
- package/dist/plugins/profitwell/src/index.js +10 -17
- package/dist/plugins/pushbullet/src/credentials.js +19 -0
- package/dist/plugins/pushbullet/src/index.js +19 -27
- package/dist/plugins/pushcut/src/credentials.js +19 -0
- package/dist/plugins/pushcut/src/index.js +7 -8
- package/dist/plugins/pushover/src/credentials.js +14 -0
- package/dist/plugins/pushover/src/index.js +7 -12
- package/dist/plugins/quickbase/src/credentials.js +15 -0
- package/dist/plugins/quickbase/src/index.js +24 -34
- package/dist/plugins/quickbooks/src/credentials.js +22 -0
- package/dist/plugins/quickbooks/src/index.js +17 -46
- package/dist/plugins/raindrop/src/credentials.js +19 -0
- package/dist/plugins/raindrop/src/index.js +30 -32
- package/dist/plugins/recraft/src/credentials.js +13 -0
- package/dist/plugins/recraft/src/index.js +39 -28
- package/dist/plugins/reddit/src/credentials.js +26 -0
- package/dist/plugins/reddit/src/index.js +30 -34
- package/dist/plugins/replicate/src/credentials.js +23 -0
- package/dist/plugins/replicate/src/index.js +18 -28
- package/dist/plugins/rocketchat/src/credentials.js +17 -0
- package/dist/plugins/rocketchat/src/index.js +8 -19
- package/dist/plugins/rundeck/src/credentials.js +16 -0
- package/dist/plugins/rundeck/src/index.js +12 -28
- package/dist/plugins/salesforce/src/credentials.js +73 -0
- package/dist/plugins/salesforce/src/index.js +6 -0
- package/dist/plugins/salesforce/src/metadata.js +3 -16
- package/dist/plugins/salesforce/src/shared.js +25 -100
- package/dist/plugins/salesforce/src/sobjects.js +10 -9
- package/dist/plugins/salesmate/src/credentials.js +17 -0
- package/dist/plugins/salesmate/src/index.js +20 -37
- package/dist/plugins/securityScorecard/src/credentials.js +22 -0
- package/dist/plugins/securityScorecard/src/index.js +24 -37
- package/dist/plugins/segment/src/credentials.js +16 -0
- package/dist/plugins/segment/src/index.js +12 -16
- package/dist/plugins/sendgrid/src/credentials.js +13 -0
- package/dist/plugins/sendgrid/src/index.js +31 -35
- package/dist/plugins/sendy/src/credentials.js +18 -0
- package/dist/plugins/sendy/src/index.js +18 -24
- package/dist/plugins/sentry/src/credentials.js +16 -0
- package/dist/plugins/sentry/src/index.js +30 -98
- package/dist/plugins/servicenow/src/credentials.js +13 -0
- package/dist/plugins/servicenow/src/index.js +22 -41
- package/dist/plugins/shiftAtlas/src/graph.js +2 -2
- package/dist/plugins/shiftAtlas/src/index.js +2 -0
- package/dist/plugins/shiftAtlas/src/shared.js +3 -1
- package/dist/plugins/shiftBwm/src/index.js +4 -2
- package/dist/plugins/shiftBwm/src/shared.js +41 -16
- package/dist/plugins/shiftCrm/src/access.js +2 -2
- package/dist/plugins/shiftCrm/src/accounts.js +3 -3
- package/dist/plugins/shiftCrm/src/activities.js +3 -3
- package/dist/plugins/shiftCrm/src/credentials.js +6 -0
- package/dist/plugins/shiftCrm/src/index.js +2 -0
- package/dist/plugins/shiftCrm/src/opportunities.js +3 -3
- package/dist/plugins/shiftCrm/src/people.js +3 -3
- package/dist/plugins/shiftCrm/src/records.js +2 -2
- package/dist/plugins/shiftCrm/src/shared.js +2 -1
- package/dist/plugins/shiftCrm/src/tasks.js +3 -3
- package/dist/plugins/shiftObjects/src/credentials.js +2 -0
- package/dist/plugins/shiftObjects/src/index.js +2 -0
- package/dist/plugins/shiftObjects/src/objects.js +4 -3
- package/dist/plugins/shiftOcr/src/credentials.js +8 -0
- package/dist/plugins/shiftOcr/src/index.js +14 -8
- package/dist/plugins/shiftPages/src/index.js +2 -0
- package/dist/plugins/shiftPages/src/pages.js +5 -3
- package/dist/plugins/shiftPages/src/shared.js +3 -1
- package/dist/plugins/shiftTranscription/src/index.js +2 -0
- package/dist/plugins/shiftTranscription/src/shared.js +11 -1
- package/dist/plugins/shiftTranscription/src/transcription.js +5 -5
- package/dist/plugins/shiftWork/src/index.js +2 -0
- package/dist/plugins/shiftWork/src/issue-views.js +5 -5
- package/dist/plugins/shiftWork/src/issues.js +11 -7
- package/dist/plugins/shiftWork/src/projects.js +3 -3
- package/dist/plugins/shiftWork/src/shared.js +3 -1
- package/dist/plugins/shopify/src/credentials.js +16 -0
- package/dist/plugins/shopify/src/index.js +32 -59
- package/dist/plugins/signl4/src/credentials.js +17 -0
- package/dist/plugins/signl4/src/index.js +28 -29
- package/dist/plugins/slack/src/credentials.js +19 -0
- package/dist/plugins/slack/src/index.js +51 -60
- package/dist/plugins/sms77/src/credentials.js +17 -0
- package/dist/plugins/sms77/src/index.js +11 -16
- package/dist/plugins/splunk/src/credentials.js +19 -0
- package/dist/plugins/splunk/src/index.js +32 -74
- package/dist/plugins/spotify/src/credentials.js +19 -0
- package/dist/plugins/spotify/src/index.js +40 -55
- package/dist/plugins/stackby/src/credentials.js +13 -0
- package/dist/plugins/stackby/src/index.js +14 -23
- package/dist/plugins/steel/src/auth.js +27 -0
- package/dist/plugins/steel/src/browser.js +4 -3
- package/dist/plugins/steel/src/captchas.js +4 -3
- package/dist/plugins/steel/src/extensions.js +3 -2
- package/dist/plugins/steel/src/files.js +9 -10
- package/dist/plugins/steel/src/index.js +2 -0
- package/dist/plugins/steel/src/page/tools.js +3 -3
- package/dist/plugins/steel/src/profiles.js +4 -3
- package/dist/plugins/steel/src/sessions.js +13 -13
- package/dist/plugins/steel/src/shared.js +21 -51
- package/dist/plugins/storyblok/src/credentials.js +37 -0
- package/dist/plugins/storyblok/src/index.js +22 -66
- package/dist/plugins/strapi/src/credentials.js +71 -0
- package/dist/plugins/strapi/src/index.js +36 -70
- package/dist/plugins/strava/src/credentials.js +19 -0
- package/dist/plugins/strava/src/index.js +16 -33
- package/dist/plugins/stripe/src/credentials.js +19 -0
- package/dist/plugins/stripe/src/index.js +44 -58
- package/dist/plugins/supabase/src/credentials.js +30 -0
- package/dist/plugins/supabase/src/index.js +18 -40
- package/dist/plugins/syncromsp/src/credentials.js +16 -0
- package/dist/plugins/syncromsp/src/index.js +37 -70
- package/dist/plugins/tapfiliate/src/credentials.js +13 -0
- package/dist/plugins/tapfiliate/src/index.js +21 -31
- package/dist/plugins/telegram/src/credentials.js +20 -0
- package/dist/plugins/telegram/src/index.js +31 -39
- package/dist/plugins/thehive/src/credentials.js +14 -0
- package/dist/plugins/thehive/src/index.js +33 -50
- package/dist/plugins/thehiveProject/src/credentials.js +16 -0
- package/dist/plugins/thehiveProject/src/index.js +53 -122
- package/dist/plugins/todoist/src/credentials.js +26 -0
- package/dist/plugins/todoist/src/index.js +49 -79
- package/dist/plugins/together/src/credentials.js +16 -0
- package/dist/plugins/together/src/index.js +31 -33
- package/dist/plugins/travisci/src/credentials.js +24 -0
- package/dist/plugins/travisci/src/index.js +16 -30
- package/dist/plugins/trello/src/credentials.js +29 -0
- package/dist/plugins/trello/src/index.js +49 -64
- package/dist/plugins/twake/src/credentials.js +16 -0
- package/dist/plugins/twake/src/index.js +8 -10
- package/dist/plugins/twilio/src/credentials.js +23 -0
- package/dist/plugins/twilio/src/index.js +12 -26
- package/dist/plugins/twist/src/credentials.js +13 -0
- package/dist/plugins/twist/src/index.js +32 -44
- package/dist/plugins/twitter/src/credentials.js +16 -0
- package/dist/plugins/twitter/src/index.js +25 -37
- package/dist/plugins/typesafe/src/credentials.js +28 -0
- package/dist/plugins/typesafe/src/index.js +3 -1
- package/dist/plugins/typesafe/src/shared.js +23 -35
- package/dist/plugins/unleashedSoftware/src/credentials.js +21 -0
- package/dist/plugins/unleashedSoftware/src/index.js +13 -37
- package/dist/plugins/uplead/src/credentials.js +16 -0
- package/dist/plugins/uplead/src/index.js +11 -16
- package/dist/plugins/uproc/src/credentials.js +14 -0
- package/dist/plugins/uproc/src/index.js +7 -10
- package/dist/plugins/uptimerobot/src/credentials.js +14 -0
- package/dist/plugins/uptimerobot/src/index.js +28 -39
- package/dist/plugins/urlscanio/src/credentials.js +13 -0
- package/dist/plugins/urlscanio/src/index.js +13 -22
- package/dist/plugins/vercel/src/credentials.js +19 -0
- package/dist/plugins/vercel/src/deployments.js +27 -11
- package/dist/plugins/vercel/src/env.js +31 -12
- package/dist/plugins/vercel/src/index.js +2 -0
- package/dist/plugins/vercel/src/projects.js +6 -3
- package/dist/plugins/vercel/src/shared.js +32 -37
- package/dist/plugins/vero/src/credentials.js +17 -0
- package/dist/plugins/vero/src/index.js +18 -21
- package/dist/plugins/vonage/src/credentials.js +17 -0
- package/dist/plugins/vonage/src/index.js +14 -18
- package/dist/plugins/wekan/src/credentials.js +16 -0
- package/dist/plugins/wekan/src/index.js +33 -46
- package/dist/plugins/wolt/src/account.js +6 -0
- package/dist/plugins/wolt/src/catalog.js +2 -2
- package/dist/plugins/wolt/src/credentials.js +64 -0
- package/dist/plugins/wolt/src/index.js +8 -3
- package/dist/plugins/wolt/src/orders.js +2 -2
- package/dist/plugins/wolt/src/public.js +91 -0
- package/dist/plugins/wolt/src/shared.js +49 -158
- package/dist/plugins/woocommerce/src/credentials.js +16 -0
- package/dist/plugins/woocommerce/src/index.js +19 -37
- package/dist/plugins/wordpress/src/credentials.js +16 -0
- package/dist/plugins/wordpress/src/index.js +23 -42
- package/dist/plugins/xai/src/credentials.js +13 -0
- package/dist/plugins/xai/src/index.js +32 -31
- package/dist/plugins/xero/src/credentials.js +17 -0
- package/dist/plugins/xero/src/index.js +19 -36
- package/dist/plugins/yourls/src/credentials.js +17 -0
- package/dist/plugins/yourls/src/index.js +13 -23
- package/dist/plugins/zammad/src/credentials.js +15 -0
- package/dist/plugins/zammad/src/index.js +27 -47
- package/dist/plugins/zendesk/src/credentials.js +26 -0
- package/dist/plugins/zendesk/src/index.js +29 -48
- package/dist/plugins/zoho/src/credentials.js +17 -0
- package/dist/plugins/zoho/src/index.js +18 -38
- package/dist/plugins/zoom/src/credentials.js +19 -0
- package/dist/plugins/zoom/src/index.js +15 -30
- package/dist/plugins/zulip/src/credentials.js +16 -0
- package/dist/plugins/zulip/src/index.js +36 -42
- package/dist/sdk.d.ts +8 -0
- package/dist/sdk.js +3 -0
- package/package.json +2 -1
- package/dist/plugins/_shared/authedFetch.js +0 -33
- package/dist/plugins/_shared/tokenRefresh.js +0 -41
- package/dist/tests/helpers/engine-harness.d.ts +0 -1
- package/dist/tests/helpers/engine-harness.js +0 -236
|
@@ -1,40 +1,20 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
url.searchParams.set(k, String(v));
|
|
8
|
-
}
|
|
9
|
-
}
|
|
10
|
-
const opts = {
|
|
1
|
+
import { credentialJson, pathSegment } from "../../_shared/credentials.js";
|
|
2
|
+
import { demioCredential } from "./credentials.js";
|
|
3
|
+
function apiRequest(ctx, method, path, body, query) {
|
|
4
|
+
return credentialJson(ctx, demioCredential, "demio", {
|
|
5
|
+
target: "api",
|
|
6
|
+
path,
|
|
11
7
|
method,
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
};
|
|
18
|
-
if (body &&
|
|
19
|
-
Object.keys(body).length > 0 &&
|
|
20
|
-
method !== "GET" &&
|
|
21
|
-
method !== "DELETE") {
|
|
22
|
-
opts.body = JSON.stringify(body);
|
|
23
|
-
}
|
|
24
|
-
const res = await fetch(url.toString(), opts);
|
|
25
|
-
if (!res.ok)
|
|
26
|
-
throw new Error(`Demio API error ${res.status}: ${await res.text()}`);
|
|
27
|
-
return res.json();
|
|
28
|
-
}
|
|
29
|
-
function getConn(ctx) {
|
|
30
|
-
return {
|
|
31
|
-
apiKey: ctx.connection.config.apiKey,
|
|
32
|
-
apiSecret: ctx.connection.config.apiSecret,
|
|
33
|
-
};
|
|
8
|
+
query,
|
|
9
|
+
...(body && Object.keys(body).length > 0 && method !== "GET"
|
|
10
|
+
? { json: body }
|
|
11
|
+
: {}),
|
|
12
|
+
});
|
|
34
13
|
}
|
|
35
14
|
export default function demio(rl) {
|
|
36
15
|
rl.setName("demio");
|
|
37
16
|
rl.setVersion("0.1.0");
|
|
17
|
+
rl.setCredential(demioCredential);
|
|
38
18
|
rl.setConnectionSchema({
|
|
39
19
|
apiKey: {
|
|
40
20
|
type: "string",
|
|
@@ -62,11 +42,10 @@ export default function demio(rl) {
|
|
|
62
42
|
},
|
|
63
43
|
async execute(input, ctx) {
|
|
64
44
|
const { eventId, dateId } = input;
|
|
65
|
-
const { apiKey, apiSecret } = getConn(ctx);
|
|
66
45
|
if (dateId) {
|
|
67
|
-
return apiRequest(
|
|
46
|
+
return apiRequest(ctx, "GET", `event/${pathSegment(eventId)}/date/${pathSegment(dateId)}`);
|
|
68
47
|
}
|
|
69
|
-
return apiRequest(
|
|
48
|
+
return apiRequest(ctx, "GET", `event/${pathSegment(eventId)}`);
|
|
70
49
|
},
|
|
71
50
|
});
|
|
72
51
|
rl.registerAction("event.list", {
|
|
@@ -82,11 +61,10 @@ export default function demio(rl) {
|
|
|
82
61
|
},
|
|
83
62
|
async execute(input, ctx) {
|
|
84
63
|
const { type, limit } = (input ?? {});
|
|
85
|
-
const { apiKey, apiSecret } = getConn(ctx);
|
|
86
64
|
const qs = {};
|
|
87
65
|
if (type)
|
|
88
66
|
qs.type = type;
|
|
89
|
-
const data = (await apiRequest(
|
|
67
|
+
const data = (await apiRequest(ctx, "GET", "events", undefined, qs));
|
|
90
68
|
if (limit)
|
|
91
69
|
return data.slice(0, limit);
|
|
92
70
|
return data;
|
|
@@ -117,7 +95,6 @@ export default function demio(rl) {
|
|
|
117
95
|
},
|
|
118
96
|
async execute(input, ctx) {
|
|
119
97
|
const { eventId, email, firstName, lastName, dateId, customFields } = input;
|
|
120
|
-
const { apiKey, apiSecret } = getConn(ctx);
|
|
121
98
|
const body = {
|
|
122
99
|
id: eventId,
|
|
123
100
|
email,
|
|
@@ -129,7 +106,7 @@ export default function demio(rl) {
|
|
|
129
106
|
body.date_id = dateId;
|
|
130
107
|
if (customFields)
|
|
131
108
|
Object.assign(body, customFields);
|
|
132
|
-
return apiRequest(
|
|
109
|
+
return apiRequest(ctx, "PUT", "event/register", body);
|
|
133
110
|
},
|
|
134
111
|
});
|
|
135
112
|
rl.registerAction("report.getParticipants", {
|
|
@@ -149,11 +126,10 @@ export default function demio(rl) {
|
|
|
149
126
|
},
|
|
150
127
|
async execute(input, ctx) {
|
|
151
128
|
const { dateId, status } = (input ?? {});
|
|
152
|
-
const { apiKey, apiSecret } = getConn(ctx);
|
|
153
129
|
const qs = {};
|
|
154
130
|
if (status)
|
|
155
131
|
qs.status = status;
|
|
156
|
-
const data = (await apiRequest(
|
|
132
|
+
const data = (await apiRequest(ctx, "GET", `report/${pathSegment(dateId)}/participants`, undefined, qs));
|
|
157
133
|
return data.participants;
|
|
158
134
|
},
|
|
159
135
|
});
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { staticCredential } from "../../_shared/credentials.js";
|
|
2
|
+
/** An API key, sent as the DHL-API-Key header to DHL's EU API origin. */
|
|
3
|
+
export const dhlCredential = staticCredential({
|
|
4
|
+
id: "dhl",
|
|
5
|
+
auth: { kind: "apiKey", header: "DHL-API-Key" },
|
|
6
|
+
local: { secret: "apiKey" },
|
|
7
|
+
targets: {
|
|
8
|
+
api: {
|
|
9
|
+
baseUrl: "https://api-eu.dhl.com/",
|
|
10
|
+
methods: ["GET"],
|
|
11
|
+
},
|
|
12
|
+
},
|
|
13
|
+
});
|
|
@@ -1,23 +1,9 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
const url = new URL(`${BASE_URL}${endpoint}`);
|
|
4
|
-
if (qs) {
|
|
5
|
-
for (const [k, v] of Object.entries(qs)) {
|
|
6
|
-
if (v !== undefined && v !== null)
|
|
7
|
-
url.searchParams.set(k, String(v));
|
|
8
|
-
}
|
|
9
|
-
}
|
|
10
|
-
const res = await fetch(url.toString(), {
|
|
11
|
-
method,
|
|
12
|
-
headers: { "DHL-API-Key": apiKey, Accept: "application/json" },
|
|
13
|
-
});
|
|
14
|
-
if (!res.ok)
|
|
15
|
-
throw new Error(`DHL API error ${res.status}: ${await res.text()}`);
|
|
16
|
-
return res.json();
|
|
17
|
-
}
|
|
1
|
+
import { credentialJson } from "../../_shared/credentials.js";
|
|
2
|
+
import { dhlCredential } from "./credentials.js";
|
|
18
3
|
export default function dhl(rl) {
|
|
19
4
|
rl.setName("dhl");
|
|
20
5
|
rl.setVersion("0.1.0");
|
|
6
|
+
rl.setCredential(dhlCredential);
|
|
21
7
|
rl.setConnectionSchema({
|
|
22
8
|
apiKey: {
|
|
23
9
|
type: "string",
|
|
@@ -43,11 +29,14 @@ export default function dhl(rl) {
|
|
|
43
29
|
},
|
|
44
30
|
async execute(input, ctx) {
|
|
45
31
|
const { trackingNumber, recipientPostalCode } = input;
|
|
46
|
-
const apiKey = ctx.connection.config.apiKey;
|
|
47
32
|
const qs = { trackingNumber };
|
|
48
33
|
if (recipientPostalCode)
|
|
49
34
|
qs.recipientPostalCode = recipientPostalCode;
|
|
50
|
-
const data = (await
|
|
35
|
+
const data = (await credentialJson(ctx, dhlCredential, "dhl", {
|
|
36
|
+
target: "api",
|
|
37
|
+
path: "track/shipments",
|
|
38
|
+
query: qs,
|
|
39
|
+
}));
|
|
51
40
|
return data.shipments;
|
|
52
41
|
},
|
|
53
42
|
});
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { staticCredential } from "../../_shared/credentials.js";
|
|
2
|
+
/** A bot token, sent as `Authorization: Bot {token}` to Discord's v10 API. */
|
|
3
|
+
export const discordCredential = staticCredential({
|
|
4
|
+
id: "discord",
|
|
5
|
+
auth: { kind: "apiKey", header: "Authorization", prefix: "Bot " },
|
|
6
|
+
local: { secret: "botToken" },
|
|
7
|
+
targets: {
|
|
8
|
+
api: {
|
|
9
|
+
baseUrl: "https://discord.com/api/v10/",
|
|
10
|
+
methods: ["GET", "POST", "PUT", "PATCH", "DELETE"],
|
|
11
|
+
},
|
|
12
|
+
},
|
|
13
|
+
probe: {
|
|
14
|
+
target: "api",
|
|
15
|
+
path: "users/@me",
|
|
16
|
+
method: "GET",
|
|
17
|
+
acceptedStatuses: [200],
|
|
18
|
+
},
|
|
19
|
+
});
|
|
@@ -1,41 +1,26 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
url.searchParams.set(k, String(v));
|
|
8
|
-
}
|
|
9
|
-
}
|
|
10
|
-
const opts = {
|
|
1
|
+
import { credentialJson, pathSegment } from "../../_shared/credentials.js";
|
|
2
|
+
import { discordCredential } from "./credentials.js";
|
|
3
|
+
function apiRequest(ctx, method, path, body, qs) {
|
|
4
|
+
return credentialJson(ctx, discordCredential, "discord", {
|
|
5
|
+
target: "api",
|
|
6
|
+
path,
|
|
11
7
|
method,
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
method !== "DELETE") {
|
|
21
|
-
opts.body = JSON.stringify(body);
|
|
22
|
-
}
|
|
23
|
-
const res = await fetch(url.toString(), opts);
|
|
24
|
-
if (!res.ok)
|
|
25
|
-
throw new Error(`Discord API error ${res.status}: ${await res.text()}`);
|
|
26
|
-
if (res.status === 204)
|
|
27
|
-
return { success: true };
|
|
28
|
-
return res.json();
|
|
8
|
+
query: qs,
|
|
9
|
+
...(body &&
|
|
10
|
+
Object.keys(body).length > 0 &&
|
|
11
|
+
method !== "GET" &&
|
|
12
|
+
method !== "DELETE"
|
|
13
|
+
? { json: body }
|
|
14
|
+
: {}),
|
|
15
|
+
});
|
|
29
16
|
}
|
|
30
|
-
function
|
|
31
|
-
return
|
|
32
|
-
botToken: ctx.connection.config.botToken,
|
|
33
|
-
guildId: ctx.connection.config.guildId,
|
|
34
|
-
};
|
|
17
|
+
function guildOf(ctx) {
|
|
18
|
+
return pathSegment(ctx.connection.config.guildId);
|
|
35
19
|
}
|
|
36
20
|
export default function discord(rl) {
|
|
37
21
|
rl.setName("discord");
|
|
38
22
|
rl.setVersion("0.1.0");
|
|
23
|
+
rl.setCredential(discordCredential);
|
|
39
24
|
rl.setConnectionSchema({
|
|
40
25
|
botToken: {
|
|
41
26
|
type: "string",
|
|
@@ -94,7 +79,6 @@ export default function discord(rl) {
|
|
|
94
79
|
},
|
|
95
80
|
},
|
|
96
81
|
async execute(input, ctx) {
|
|
97
|
-
const { botToken, guildId } = getConn(ctx);
|
|
98
82
|
const { name, type, topic, parentId, position, nsfw, bitrate, userLimit, rateLimitPerUser, } = input;
|
|
99
83
|
const body = { name, type: type ?? 0 };
|
|
100
84
|
if (topic)
|
|
@@ -111,7 +95,7 @@ export default function discord(rl) {
|
|
|
111
95
|
body.user_limit = userLimit;
|
|
112
96
|
if (rateLimitPerUser !== undefined)
|
|
113
97
|
body.rate_limit_per_user = rateLimitPerUser;
|
|
114
|
-
return apiRequest(
|
|
98
|
+
return apiRequest(ctx, "POST", `guilds/${guildOf(ctx)}/channels`, body);
|
|
115
99
|
},
|
|
116
100
|
});
|
|
117
101
|
rl.registerAction("channel.get", {
|
|
@@ -121,8 +105,7 @@ export default function discord(rl) {
|
|
|
121
105
|
channelId: { type: "string", required: true, description: "Channel ID" },
|
|
122
106
|
},
|
|
123
107
|
async execute(input, ctx) {
|
|
124
|
-
|
|
125
|
-
return apiRequest(botToken, "GET", `/channels/${input.channelId}`);
|
|
108
|
+
return apiRequest(ctx, "GET", `channels/${pathSegment(input.channelId)}`);
|
|
126
109
|
},
|
|
127
110
|
});
|
|
128
111
|
rl.registerAction("channel.list", {
|
|
@@ -137,9 +120,8 @@ export default function discord(rl) {
|
|
|
137
120
|
},
|
|
138
121
|
},
|
|
139
122
|
async execute(input, ctx) {
|
|
140
|
-
const { botToken, guildId } = getConn(ctx);
|
|
141
123
|
const { limit, filterType } = (input ?? {});
|
|
142
|
-
let channels = (await apiRequest(
|
|
124
|
+
let channels = (await apiRequest(ctx, "GET", `guilds/${guildOf(ctx)}/channels`));
|
|
143
125
|
if (filterType && Array.isArray(filterType) && filterType.length > 0) {
|
|
144
126
|
channels = channels.filter((c) => filterType.includes(c.type));
|
|
145
127
|
}
|
|
@@ -183,7 +165,6 @@ export default function discord(rl) {
|
|
|
183
165
|
},
|
|
184
166
|
},
|
|
185
167
|
async execute(input, ctx) {
|
|
186
|
-
const { botToken } = getConn(ctx);
|
|
187
168
|
const { channelId, name, topic, parentId, position, nsfw, bitrate, userLimit, rateLimitPerUser, } = input;
|
|
188
169
|
const body = {};
|
|
189
170
|
if (name)
|
|
@@ -202,7 +183,7 @@ export default function discord(rl) {
|
|
|
202
183
|
body.user_limit = userLimit;
|
|
203
184
|
if (rateLimitPerUser !== undefined)
|
|
204
185
|
body.rate_limit_per_user = rateLimitPerUser;
|
|
205
|
-
return apiRequest(
|
|
186
|
+
return apiRequest(ctx, "PATCH", `channels/${pathSegment(channelId)}`, body);
|
|
206
187
|
},
|
|
207
188
|
});
|
|
208
189
|
rl.registerAction("channel.delete", {
|
|
@@ -212,8 +193,7 @@ export default function discord(rl) {
|
|
|
212
193
|
channelId: { type: "string", required: true, description: "Channel ID" },
|
|
213
194
|
},
|
|
214
195
|
async execute(input, ctx) {
|
|
215
|
-
|
|
216
|
-
return apiRequest(botToken, "DELETE", `/channels/${input.channelId}`);
|
|
196
|
+
return apiRequest(ctx, "DELETE", `channels/${pathSegment(input.channelId)}`);
|
|
217
197
|
},
|
|
218
198
|
});
|
|
219
199
|
// ── Member ──────────────────────────────────────────
|
|
@@ -233,14 +213,13 @@ export default function discord(rl) {
|
|
|
233
213
|
},
|
|
234
214
|
},
|
|
235
215
|
async execute(input, ctx) {
|
|
236
|
-
const { botToken, guildId } = getConn(ctx);
|
|
237
216
|
const { limit, after } = (input ?? {});
|
|
238
217
|
const qs = {};
|
|
239
218
|
if (limit)
|
|
240
219
|
qs.limit = limit;
|
|
241
220
|
if (after)
|
|
242
221
|
qs.after = after;
|
|
243
|
-
return apiRequest(
|
|
222
|
+
return apiRequest(ctx, "GET", `guilds/${guildOf(ctx)}/members`, undefined, qs);
|
|
244
223
|
},
|
|
245
224
|
});
|
|
246
225
|
rl.registerAction("member.addRole", {
|
|
@@ -251,9 +230,8 @@ export default function discord(rl) {
|
|
|
251
230
|
roleId: { type: "string", required: true, description: "Role ID" },
|
|
252
231
|
},
|
|
253
232
|
async execute(input, ctx) {
|
|
254
|
-
const { botToken, guildId } = getConn(ctx);
|
|
255
233
|
const { userId, roleId } = input;
|
|
256
|
-
await apiRequest(
|
|
234
|
+
await apiRequest(ctx, "PUT", `guilds/${guildOf(ctx)}/members/${pathSegment(userId)}/roles/${pathSegment(roleId)}`);
|
|
257
235
|
return { success: true };
|
|
258
236
|
},
|
|
259
237
|
});
|
|
@@ -265,9 +243,8 @@ export default function discord(rl) {
|
|
|
265
243
|
roleId: { type: "string", required: true, description: "Role ID" },
|
|
266
244
|
},
|
|
267
245
|
async execute(input, ctx) {
|
|
268
|
-
const { botToken, guildId } = getConn(ctx);
|
|
269
246
|
const { userId, roleId } = input;
|
|
270
|
-
await apiRequest(
|
|
247
|
+
await apiRequest(ctx, "DELETE", `guilds/${guildOf(ctx)}/members/${pathSegment(userId)}/roles/${pathSegment(roleId)}`);
|
|
271
248
|
return { success: true };
|
|
272
249
|
},
|
|
273
250
|
});
|
|
@@ -295,7 +272,6 @@ export default function discord(rl) {
|
|
|
295
272
|
},
|
|
296
273
|
},
|
|
297
274
|
async execute(input, ctx) {
|
|
298
|
-
const { botToken } = getConn(ctx);
|
|
299
275
|
const { channelId, content, tts, replyTo, embeds } = input;
|
|
300
276
|
const body = { content };
|
|
301
277
|
if (tts)
|
|
@@ -304,7 +280,7 @@ export default function discord(rl) {
|
|
|
304
280
|
body.message_reference = { message_id: replyTo };
|
|
305
281
|
if (embeds)
|
|
306
282
|
body.embeds = embeds;
|
|
307
|
-
return apiRequest(
|
|
283
|
+
return apiRequest(ctx, "POST", `channels/${pathSegment(channelId)}/messages`, body);
|
|
308
284
|
},
|
|
309
285
|
});
|
|
310
286
|
rl.registerAction("message.get", {
|
|
@@ -315,9 +291,8 @@ export default function discord(rl) {
|
|
|
315
291
|
messageId: { type: "string", required: true, description: "Message ID" },
|
|
316
292
|
},
|
|
317
293
|
async execute(input, ctx) {
|
|
318
|
-
const { botToken } = getConn(ctx);
|
|
319
294
|
const { channelId, messageId } = input;
|
|
320
|
-
return apiRequest(
|
|
295
|
+
return apiRequest(ctx, "GET", `channels/${pathSegment(channelId)}/messages/${pathSegment(messageId)}`);
|
|
321
296
|
},
|
|
322
297
|
});
|
|
323
298
|
rl.registerAction("message.list", {
|
|
@@ -347,7 +322,6 @@ export default function discord(rl) {
|
|
|
347
322
|
},
|
|
348
323
|
},
|
|
349
324
|
async execute(input, ctx) {
|
|
350
|
-
const { botToken } = getConn(ctx);
|
|
351
325
|
const { channelId, limit, before, after, around } = (input ??
|
|
352
326
|
{});
|
|
353
327
|
const qs = {};
|
|
@@ -359,7 +333,7 @@ export default function discord(rl) {
|
|
|
359
333
|
qs.after = after;
|
|
360
334
|
if (around)
|
|
361
335
|
qs.around = around;
|
|
362
|
-
return apiRequest(
|
|
336
|
+
return apiRequest(ctx, "GET", `channels/${pathSegment(channelId)}/messages`, undefined, qs);
|
|
363
337
|
},
|
|
364
338
|
});
|
|
365
339
|
rl.registerAction("message.delete", {
|
|
@@ -370,9 +344,8 @@ export default function discord(rl) {
|
|
|
370
344
|
messageId: { type: "string", required: true, description: "Message ID" },
|
|
371
345
|
},
|
|
372
346
|
async execute(input, ctx) {
|
|
373
|
-
const { botToken } = getConn(ctx);
|
|
374
347
|
const { channelId, messageId } = input;
|
|
375
|
-
await apiRequest(
|
|
348
|
+
await apiRequest(ctx, "DELETE", `channels/${pathSegment(channelId)}/messages/${pathSegment(messageId)}`);
|
|
376
349
|
return { success: true };
|
|
377
350
|
},
|
|
378
351
|
});
|
|
@@ -389,9 +362,8 @@ export default function discord(rl) {
|
|
|
389
362
|
},
|
|
390
363
|
},
|
|
391
364
|
async execute(input, ctx) {
|
|
392
|
-
const { botToken } = getConn(ctx);
|
|
393
365
|
const { channelId, messageId, emoji } = input;
|
|
394
|
-
await apiRequest(
|
|
366
|
+
await apiRequest(ctx, "PUT", `channels/${pathSegment(channelId)}/messages/${pathSegment(messageId)}/reactions/${pathSegment(emoji)}/@me`);
|
|
395
367
|
return { success: true };
|
|
396
368
|
},
|
|
397
369
|
});
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { httpsBase, staticCredential } from "../../_shared/credentials.js";
|
|
2
|
+
/**
|
|
3
|
+
* An admin API key, sent as the Api-Key header to the connection's own
|
|
4
|
+
* Discourse instance. The public Api-Username companion header names the
|
|
5
|
+
* user the key acts as.
|
|
6
|
+
*/
|
|
7
|
+
export const discourseCredential = staticCredential({
|
|
8
|
+
id: "discourse",
|
|
9
|
+
auth: { kind: "apiKey", header: "Api-Key" },
|
|
10
|
+
local: { secret: "apiKey" },
|
|
11
|
+
targets: (config) => ({
|
|
12
|
+
api: {
|
|
13
|
+
baseUrl: httpsBase(config.host, ""),
|
|
14
|
+
methods: ["GET", "POST", "PUT", "DELETE"],
|
|
15
|
+
allowedHeaders: ["Api-Username"],
|
|
16
|
+
},
|
|
17
|
+
}),
|
|
18
|
+
});
|
|
@@ -1,44 +1,23 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
if (qs) {
|
|
4
|
-
for (const [k, v] of Object.entries(qs)) {
|
|
5
|
-
if (v !== undefined && v !== null)
|
|
6
|
-
url.searchParams.set(k, String(v));
|
|
7
|
-
}
|
|
8
|
-
}
|
|
9
|
-
const opts = {
|
|
10
|
-
method,
|
|
11
|
-
headers: {
|
|
12
|
-
"Content-Type": "application/json",
|
|
13
|
-
"Api-Key": apiKey,
|
|
14
|
-
"Api-Username": apiUsername,
|
|
15
|
-
},
|
|
16
|
-
};
|
|
17
|
-
if (body && Object.keys(body).length > 0 && method !== "GET") {
|
|
18
|
-
opts.body = JSON.stringify(body);
|
|
19
|
-
}
|
|
20
|
-
const res = await fetch(url.toString(), opts);
|
|
21
|
-
if (!res.ok)
|
|
22
|
-
throw new Error(`Discourse API error ${res.status}: ${await res.text()}`);
|
|
23
|
-
if (res.status === 204)
|
|
24
|
-
return { success: true };
|
|
25
|
-
return res.json();
|
|
26
|
-
}
|
|
27
|
-
function getConn(ctx) {
|
|
28
|
-
const cfg = ctx.connection.config;
|
|
29
|
-
return {
|
|
30
|
-
host: cfg.host.replace(/\/$/, ""),
|
|
31
|
-
apiKey: cfg.apiKey,
|
|
32
|
-
apiUsername: cfg.apiUsername ?? "system",
|
|
33
|
-
};
|
|
34
|
-
}
|
|
1
|
+
import { credentialJson, pathSegment } from "../../_shared/credentials.js";
|
|
2
|
+
import { discourseCredential } from "./credentials.js";
|
|
35
3
|
function req(ctx, method, endpoint, body, qs) {
|
|
36
|
-
|
|
37
|
-
|
|
4
|
+
// Public companion header naming the user the admin key acts as.
|
|
5
|
+
const apiUsername = ctx.connection.config.apiUsername ?? "system";
|
|
6
|
+
return credentialJson(ctx, discourseCredential, "discourse", {
|
|
7
|
+
target: "api",
|
|
8
|
+
path: endpoint,
|
|
9
|
+
method,
|
|
10
|
+
query: qs,
|
|
11
|
+
headers: { "Api-Username": apiUsername },
|
|
12
|
+
...(body && Object.keys(body).length > 0 && method !== "GET"
|
|
13
|
+
? { json: body }
|
|
14
|
+
: {}),
|
|
15
|
+
});
|
|
38
16
|
}
|
|
39
17
|
export default function discourse(rl) {
|
|
40
18
|
rl.setName("discourse");
|
|
41
19
|
rl.setVersion("0.1.0");
|
|
20
|
+
rl.setCredential(discourseCredential);
|
|
42
21
|
rl.setConnectionSchema({
|
|
43
22
|
host: {
|
|
44
23
|
type: "string",
|
|
@@ -79,7 +58,7 @@ export default function discourse(rl) {
|
|
|
79
58
|
},
|
|
80
59
|
async execute(input, ctx) {
|
|
81
60
|
const { name, color, textColor } = input;
|
|
82
|
-
const data = (await req(ctx, "POST", "
|
|
61
|
+
const data = (await req(ctx, "POST", "categories.json", {
|
|
83
62
|
name,
|
|
84
63
|
color,
|
|
85
64
|
text_color: textColor,
|
|
@@ -95,7 +74,7 @@ export default function discourse(rl) {
|
|
|
95
74
|
},
|
|
96
75
|
async execute(input, ctx) {
|
|
97
76
|
const { limit } = (input ?? {});
|
|
98
|
-
const data = (await req(ctx, "GET", "
|
|
77
|
+
const data = (await req(ctx, "GET", "categories.json"));
|
|
99
78
|
const list = data.category_list
|
|
100
79
|
.categories;
|
|
101
80
|
if (limit)
|
|
@@ -127,7 +106,7 @@ export default function discourse(rl) {
|
|
|
127
106
|
body.color = color;
|
|
128
107
|
if (textColor)
|
|
129
108
|
body.text_color = textColor;
|
|
130
|
-
const data = (await req(ctx, "PUT",
|
|
109
|
+
const data = (await req(ctx, "PUT", `categories/${pathSegment(categoryId)}.json`, body));
|
|
131
110
|
return data.category;
|
|
132
111
|
},
|
|
133
112
|
});
|
|
@@ -140,7 +119,7 @@ export default function discourse(rl) {
|
|
|
140
119
|
},
|
|
141
120
|
async execute(input, ctx) {
|
|
142
121
|
const { name } = input;
|
|
143
|
-
const data = (await req(ctx, "POST", "
|
|
122
|
+
const data = (await req(ctx, "POST", "admin/groups.json", {
|
|
144
123
|
group: { name },
|
|
145
124
|
}));
|
|
146
125
|
return data.basic_group;
|
|
@@ -154,7 +133,7 @@ export default function discourse(rl) {
|
|
|
154
133
|
},
|
|
155
134
|
async execute(input, ctx) {
|
|
156
135
|
const { name } = input;
|
|
157
|
-
const data = (await req(ctx, "GET",
|
|
136
|
+
const data = (await req(ctx, "GET", `groups/${pathSegment(name)}`));
|
|
158
137
|
return data.group;
|
|
159
138
|
},
|
|
160
139
|
});
|
|
@@ -166,7 +145,7 @@ export default function discourse(rl) {
|
|
|
166
145
|
},
|
|
167
146
|
async execute(input, ctx) {
|
|
168
147
|
const { limit } = (input ?? {});
|
|
169
|
-
const data = (await req(ctx, "GET", "
|
|
148
|
+
const data = (await req(ctx, "GET", "groups.json"));
|
|
170
149
|
const groups = data.groups;
|
|
171
150
|
if (limit)
|
|
172
151
|
return groups.slice(0, limit);
|
|
@@ -182,7 +161,9 @@ export default function discourse(rl) {
|
|
|
182
161
|
},
|
|
183
162
|
async execute(input, ctx) {
|
|
184
163
|
const { groupId, name } = input;
|
|
185
|
-
return req(ctx, "PUT",
|
|
164
|
+
return req(ctx, "PUT", `groups/${pathSegment(groupId)}.json`, {
|
|
165
|
+
group: { name },
|
|
166
|
+
});
|
|
186
167
|
},
|
|
187
168
|
});
|
|
188
169
|
// ── Post ────────────────────────────────────────────
|
|
@@ -227,7 +208,7 @@ export default function discourse(rl) {
|
|
|
227
208
|
body.topic_id = topicId;
|
|
228
209
|
if (replyToPostNumber)
|
|
229
210
|
body.reply_to_post_number = replyToPostNumber;
|
|
230
|
-
return req(ctx, "POST", "
|
|
211
|
+
return req(ctx, "POST", "posts.json", body);
|
|
231
212
|
},
|
|
232
213
|
});
|
|
233
214
|
rl.registerAction("post.get", {
|
|
@@ -237,7 +218,7 @@ export default function discourse(rl) {
|
|
|
237
218
|
postId: { type: "string", required: true, description: "Post ID" },
|
|
238
219
|
},
|
|
239
220
|
async execute(input, ctx) {
|
|
240
|
-
return req(ctx, "GET",
|
|
221
|
+
return req(ctx, "GET", `posts/${pathSegment(input.postId)}`);
|
|
241
222
|
},
|
|
242
223
|
});
|
|
243
224
|
rl.registerAction("post.list", {
|
|
@@ -248,7 +229,7 @@ export default function discourse(rl) {
|
|
|
248
229
|
},
|
|
249
230
|
async execute(input, ctx) {
|
|
250
231
|
const { limit } = (input ?? {});
|
|
251
|
-
const data = (await req(ctx, "GET", "
|
|
232
|
+
const data = (await req(ctx, "GET", "posts.json"));
|
|
252
233
|
const posts = data.latest_posts;
|
|
253
234
|
if (limit)
|
|
254
235
|
return posts.slice(0, limit);
|
|
@@ -276,7 +257,7 @@ export default function discourse(rl) {
|
|
|
276
257
|
const body = { raw: content };
|
|
277
258
|
if (editReason)
|
|
278
259
|
body.edit_reason = editReason;
|
|
279
|
-
const data = (await req(ctx, "PUT",
|
|
260
|
+
const data = (await req(ctx, "PUT", `posts/${pathSegment(postId)}.json`, body));
|
|
280
261
|
return data.post;
|
|
281
262
|
},
|
|
282
263
|
});
|
|
@@ -300,7 +281,7 @@ export default function discourse(rl) {
|
|
|
300
281
|
const body = { name, email, username, password };
|
|
301
282
|
if (active !== undefined)
|
|
302
283
|
body.active = active;
|
|
303
|
-
return req(ctx, "POST", "
|
|
284
|
+
return req(ctx, "POST", "users.json", body);
|
|
304
285
|
},
|
|
305
286
|
});
|
|
306
287
|
rl.registerAction("user.get", {
|
|
@@ -317,9 +298,9 @@ export default function discourse(rl) {
|
|
|
317
298
|
async execute(input, ctx) {
|
|
318
299
|
const { username, externalId } = (input ?? {});
|
|
319
300
|
if (externalId)
|
|
320
|
-
return req(ctx, "GET",
|
|
301
|
+
return req(ctx, "GET", `u/by-external/${pathSegment(externalId)}.json`);
|
|
321
302
|
if (username)
|
|
322
|
-
return req(ctx, "GET",
|
|
303
|
+
return req(ctx, "GET", `users/${pathSegment(username)}`);
|
|
323
304
|
throw new Error("Provide either username or externalId");
|
|
324
305
|
},
|
|
325
306
|
});
|
|
@@ -350,7 +331,7 @@ export default function discourse(rl) {
|
|
|
350
331
|
qs.asc = asc;
|
|
351
332
|
if (showEmails)
|
|
352
333
|
qs.show_emails = true;
|
|
353
|
-
let data = (await req(ctx, "GET",
|
|
334
|
+
let data = (await req(ctx, "GET", `admin/users/list/${pathSegment(flag)}.json`, undefined, qs));
|
|
354
335
|
if (limit)
|
|
355
336
|
data = data.slice(0, limit);
|
|
356
337
|
return data;
|
|
@@ -370,7 +351,9 @@ export default function discourse(rl) {
|
|
|
370
351
|
},
|
|
371
352
|
async execute(input, ctx) {
|
|
372
353
|
const { groupId, usernames } = input;
|
|
373
|
-
return req(ctx, "PUT",
|
|
354
|
+
return req(ctx, "PUT", `groups/${pathSegment(groupId)}/members.json`, {
|
|
355
|
+
usernames,
|
|
356
|
+
});
|
|
374
357
|
},
|
|
375
358
|
});
|
|
376
359
|
rl.registerAction("userGroup.remove", {
|
|
@@ -386,7 +369,7 @@ export default function discourse(rl) {
|
|
|
386
369
|
},
|
|
387
370
|
async execute(input, ctx) {
|
|
388
371
|
const { groupId, usernames } = input;
|
|
389
|
-
return req(ctx, "DELETE",
|
|
372
|
+
return req(ctx, "DELETE", `groups/${pathSegment(groupId)}/members.json`, {
|
|
390
373
|
usernames,
|
|
391
374
|
});
|
|
392
375
|
},
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { staticCredential } from "../../_shared/credentials.js";
|
|
2
|
+
/** An access token, sent as the api_key query parameter on read-only GETs. */
|
|
3
|
+
export const disqusCredential = staticCredential({
|
|
4
|
+
id: "disqus",
|
|
5
|
+
auth: { kind: "queryKey", param: "api_key" },
|
|
6
|
+
local: { secret: "apiKey" },
|
|
7
|
+
targets: {
|
|
8
|
+
api: {
|
|
9
|
+
baseUrl: "https://disqus.com/api/3.0/",
|
|
10
|
+
methods: ["GET"],
|
|
11
|
+
},
|
|
12
|
+
},
|
|
13
|
+
});
|