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,47 +1,24 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
const url = new URL(`https://api.storyblok.com${endpoint}`);
|
|
10
|
-
url.searchParams.set("token", token);
|
|
11
|
-
if (qs) {
|
|
12
|
-
for (const [k, v] of Object.entries(qs)) {
|
|
13
|
-
if (v !== undefined && v !== null)
|
|
14
|
-
url.searchParams.set(k, String(v));
|
|
15
|
-
}
|
|
16
|
-
}
|
|
17
|
-
const res = await fetch(url.toString());
|
|
18
|
-
if (!res.ok)
|
|
19
|
-
throw new Error(`Storyblok Content API error ${res.status}: ${await res.text()}`);
|
|
20
|
-
return res.json();
|
|
1
|
+
import { credentialJson, pathSegment, pathSegments, } from "../../_shared/credentials.js";
|
|
2
|
+
import { storyblokCredential } from "./credentials.js";
|
|
3
|
+
function contentApi(ctx, path, query) {
|
|
4
|
+
return credentialJson(ctx, storyblokCredential, "storyblok", {
|
|
5
|
+
target: "content",
|
|
6
|
+
path,
|
|
7
|
+
query,
|
|
8
|
+
});
|
|
21
9
|
}
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
if (v !== undefined && v !== null)
|
|
27
|
-
url.searchParams.set(k, String(v));
|
|
28
|
-
}
|
|
29
|
-
}
|
|
30
|
-
const init = {
|
|
10
|
+
function managementApi(ctx, method, path, query) {
|
|
11
|
+
return credentialJson(ctx, storyblokCredential, "storyblok", {
|
|
12
|
+
target: "management",
|
|
13
|
+
path,
|
|
31
14
|
method,
|
|
32
|
-
|
|
33
|
-
};
|
|
34
|
-
if (body && Object.keys(body).length > 0)
|
|
35
|
-
init.body = JSON.stringify(body);
|
|
36
|
-
const res = await fetch(url.toString(), init);
|
|
37
|
-
if (!res.ok)
|
|
38
|
-
throw new Error(`Storyblok Management API error ${res.status}: ${await res.text()}`);
|
|
39
|
-
const text = await res.text();
|
|
40
|
-
return text ? JSON.parse(text) : {};
|
|
15
|
+
query,
|
|
16
|
+
});
|
|
41
17
|
}
|
|
42
18
|
export default function storyblok(rl) {
|
|
43
19
|
rl.setName("storyblok");
|
|
44
20
|
rl.setVersion("0.1.0");
|
|
21
|
+
rl.setCredential(storyblokCredential);
|
|
45
22
|
rl.setConnectionSchema({
|
|
46
23
|
contentToken: {
|
|
47
24
|
type: "string",
|
|
@@ -68,10 +45,7 @@ export default function storyblok(rl) {
|
|
|
68
45
|
},
|
|
69
46
|
},
|
|
70
47
|
async execute(input, ctx) {
|
|
71
|
-
const
|
|
72
|
-
if (!conn.contentToken)
|
|
73
|
-
throw new Error("contentToken required for Content API");
|
|
74
|
-
const data = (await contentApi(conn.contentToken, `/v1/cdn/stories/${input.identifier}`));
|
|
48
|
+
const data = (await contentApi(ctx, `stories/${pathSegments(input.identifier)}`));
|
|
75
49
|
return data.story;
|
|
76
50
|
},
|
|
77
51
|
});
|
|
@@ -87,16 +61,13 @@ export default function storyblok(rl) {
|
|
|
87
61
|
},
|
|
88
62
|
},
|
|
89
63
|
async execute(input, ctx) {
|
|
90
|
-
const conn = getConn(ctx);
|
|
91
|
-
if (!conn.contentToken)
|
|
92
|
-
throw new Error("contentToken required for Content API");
|
|
93
64
|
const p = (input ?? {});
|
|
94
65
|
const qs = {};
|
|
95
66
|
if (p.limit)
|
|
96
67
|
qs.per_page = p.limit;
|
|
97
68
|
if (p.startsWith)
|
|
98
69
|
qs.starts_with = p.startsWith;
|
|
99
|
-
const data = (await contentApi(
|
|
70
|
+
const data = (await contentApi(ctx, "stories", qs));
|
|
100
71
|
return data.stories;
|
|
101
72
|
},
|
|
102
73
|
});
|
|
@@ -109,11 +80,8 @@ export default function storyblok(rl) {
|
|
|
109
80
|
storyId: { type: "string", required: true },
|
|
110
81
|
},
|
|
111
82
|
async execute(input, ctx) {
|
|
112
|
-
const conn = getConn(ctx);
|
|
113
|
-
if (!conn.managementToken)
|
|
114
|
-
throw new Error("managementToken required for Management API");
|
|
115
83
|
const p = input;
|
|
116
|
-
const data = (await managementApi(
|
|
84
|
+
const data = (await managementApi(ctx, "GET", `${pathSegment(p.spaceId)}/stories/${pathSegment(p.storyId)}`));
|
|
117
85
|
return data.story;
|
|
118
86
|
},
|
|
119
87
|
});
|
|
@@ -125,14 +93,11 @@ export default function storyblok(rl) {
|
|
|
125
93
|
limit: { type: "number", required: false },
|
|
126
94
|
},
|
|
127
95
|
async execute(input, ctx) {
|
|
128
|
-
const conn = getConn(ctx);
|
|
129
|
-
if (!conn.managementToken)
|
|
130
|
-
throw new Error("managementToken required for Management API");
|
|
131
96
|
const p = (input ?? {});
|
|
132
97
|
const qs = {};
|
|
133
98
|
if (p.limit)
|
|
134
99
|
qs.per_page = p.limit;
|
|
135
|
-
const data = (await managementApi(
|
|
100
|
+
const data = (await managementApi(ctx, "GET", `${pathSegment(p.spaceId)}/stories`, qs));
|
|
136
101
|
return data.stories;
|
|
137
102
|
},
|
|
138
103
|
});
|
|
@@ -144,11 +109,8 @@ export default function storyblok(rl) {
|
|
|
144
109
|
storyId: { type: "string", required: true },
|
|
145
110
|
},
|
|
146
111
|
async execute(input, ctx) {
|
|
147
|
-
const conn = getConn(ctx);
|
|
148
|
-
if (!conn.managementToken)
|
|
149
|
-
throw new Error("managementToken required for Management API");
|
|
150
112
|
const p = input;
|
|
151
|
-
const data = (await managementApi(
|
|
113
|
+
const data = (await managementApi(ctx, "DELETE", `${pathSegment(p.spaceId)}/stories/${pathSegment(p.storyId)}`));
|
|
152
114
|
return data.story;
|
|
153
115
|
},
|
|
154
116
|
});
|
|
@@ -162,16 +124,13 @@ export default function storyblok(rl) {
|
|
|
162
124
|
language: { type: "string", required: false },
|
|
163
125
|
},
|
|
164
126
|
async execute(input, ctx) {
|
|
165
|
-
const conn = getConn(ctx);
|
|
166
|
-
if (!conn.managementToken)
|
|
167
|
-
throw new Error("managementToken required for Management API");
|
|
168
127
|
const p = input;
|
|
169
128
|
const qs = {};
|
|
170
129
|
if (p.releaseId)
|
|
171
130
|
qs.release_id = p.releaseId;
|
|
172
131
|
if (p.language)
|
|
173
132
|
qs.lang = p.language;
|
|
174
|
-
const data = (await managementApi(
|
|
133
|
+
const data = (await managementApi(ctx, "GET", `${pathSegment(p.spaceId)}/stories/${pathSegment(p.storyId)}/publish`, qs));
|
|
175
134
|
return data.story;
|
|
176
135
|
},
|
|
177
136
|
});
|
|
@@ -183,11 +142,8 @@ export default function storyblok(rl) {
|
|
|
183
142
|
storyId: { type: "string", required: true },
|
|
184
143
|
},
|
|
185
144
|
async execute(input, ctx) {
|
|
186
|
-
const conn = getConn(ctx);
|
|
187
|
-
if (!conn.managementToken)
|
|
188
|
-
throw new Error("managementToken required for Management API");
|
|
189
145
|
const p = input;
|
|
190
|
-
const data = (await managementApi(
|
|
146
|
+
const data = (await managementApi(ctx, "GET", `${pathSegment(p.spaceId)}/stories/${pathSegment(p.storyId)}/unpublish`));
|
|
191
147
|
return data.story;
|
|
192
148
|
},
|
|
193
149
|
});
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
import { configChoice, grantSchema, httpsBase, staticCredential, } from "../../_shared/credentials.js";
|
|
2
|
+
/** The Strapi major version the connection names, v4 when absent. */
|
|
3
|
+
export function strapiVersion(config) {
|
|
4
|
+
return configChoice(config.apiVersion, ["v4", "v3"], "v4");
|
|
5
|
+
}
|
|
6
|
+
/** The content API beneath the instance: `api/` on v4, the root on v3. */
|
|
7
|
+
function apiBase(config) {
|
|
8
|
+
const prefix = strapiVersion(config) === "v4" ? "api/" : "";
|
|
9
|
+
return {
|
|
10
|
+
prefix,
|
|
11
|
+
target: {
|
|
12
|
+
baseUrl: httpsBase(config.url, prefix),
|
|
13
|
+
methods: ["GET", "POST", "PUT", "DELETE"],
|
|
14
|
+
},
|
|
15
|
+
};
|
|
16
|
+
}
|
|
17
|
+
const apiToken = staticCredential({
|
|
18
|
+
id: "strapi",
|
|
19
|
+
auth: { kind: "bearer" },
|
|
20
|
+
local: { secret: "apiToken" },
|
|
21
|
+
targets: (config) => ({ api: apiBase(config).target }),
|
|
22
|
+
});
|
|
23
|
+
/**
|
|
24
|
+
* An API token as a bearer, or a user's email and password, logged in at
|
|
25
|
+
* the instance's /auth/local for a JWT the transport stores and signs
|
|
26
|
+
* with, logging in again when Strapi rejects it. `authMethod` picks one;
|
|
27
|
+
* without it, a connection holding a token uses the token and one naming
|
|
28
|
+
* an email logs in. The instance URL is public config and must be HTTPS.
|
|
29
|
+
*/
|
|
30
|
+
export const strapiCredential = (config) => {
|
|
31
|
+
const token = apiToken(config);
|
|
32
|
+
const method = configChoice(config.authMethod ??
|
|
33
|
+
(config.apiToken ? "apiToken" : config.email ? "password" : "apiToken"), ["apiToken", "password"], "apiToken");
|
|
34
|
+
const { prefix, target } = apiBase(config);
|
|
35
|
+
const type = {
|
|
36
|
+
id: "strapi",
|
|
37
|
+
methods: {
|
|
38
|
+
...token.type.methods,
|
|
39
|
+
password: {
|
|
40
|
+
schema: grantSchema,
|
|
41
|
+
authentication: {
|
|
42
|
+
kind: "oauth2",
|
|
43
|
+
field: "grant",
|
|
44
|
+
renewal: "password",
|
|
45
|
+
definition: {
|
|
46
|
+
id: "strapi.login",
|
|
47
|
+
provider: "strapi",
|
|
48
|
+
password: {
|
|
49
|
+
url: httpsBase(config.url, `${prefix}auth/local`),
|
|
50
|
+
clientAuthentication: "none",
|
|
51
|
+
encoding: "json",
|
|
52
|
+
grantType: null,
|
|
53
|
+
fields: { username: "identifier" },
|
|
54
|
+
response: { accessToken: "jwt" },
|
|
55
|
+
},
|
|
56
|
+
},
|
|
57
|
+
},
|
|
58
|
+
targets: { api: target },
|
|
59
|
+
},
|
|
60
|
+
},
|
|
61
|
+
};
|
|
62
|
+
if (method === "apiToken")
|
|
63
|
+
return { ...token, type };
|
|
64
|
+
return {
|
|
65
|
+
type,
|
|
66
|
+
method: "password",
|
|
67
|
+
...(typeof config.email === "string" && typeof config.password === "string"
|
|
68
|
+
? { resourceOwner: { username: config.email, password: config.password } }
|
|
69
|
+
: {}),
|
|
70
|
+
};
|
|
71
|
+
};
|
|
@@ -1,64 +1,29 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
apiToken: c.apiToken,
|
|
7
|
-
email: c.email,
|
|
8
|
-
password: c.password,
|
|
9
|
-
};
|
|
1
|
+
import { credentialJson, pathSegment } from "../../_shared/credentials.js";
|
|
2
|
+
import { strapiCredential, strapiVersion } from "./credentials.js";
|
|
3
|
+
/** Whether the connection speaks Strapi v4, whose answers wrap entries in `data`. */
|
|
4
|
+
function isV4(ctx) {
|
|
5
|
+
return strapiVersion(ctx.connection.config) === "v4";
|
|
10
6
|
}
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
body: JSON.stringify({ identifier: conn.email, password: conn.password }),
|
|
7
|
+
/** A content API call; GET and DELETE carry no body. */
|
|
8
|
+
function apiRequest(ctx, method, path, body, query) {
|
|
9
|
+
return credentialJson(ctx, strapiCredential, "strapi", {
|
|
10
|
+
target: "api",
|
|
11
|
+
path,
|
|
12
|
+
method,
|
|
13
|
+
query,
|
|
14
|
+
...(body && method !== "GET" && method !== "DELETE" ? { json: body } : {}),
|
|
20
15
|
});
|
|
21
|
-
if (!res.ok)
|
|
22
|
-
throw new Error(`Strapi auth error ${res.status}: ${await res.text()}`);
|
|
23
|
-
const data = (await res.json());
|
|
24
|
-
const jwt = data.jwt;
|
|
25
|
-
cachedJwt = { token: jwt, url: conn.url, expiry: Date.now() + 3600_000 };
|
|
26
|
-
return jwt;
|
|
27
16
|
}
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
else {
|
|
34
|
-
token = await getJwt(conn);
|
|
35
|
-
}
|
|
36
|
-
const prefix = conn.apiVersion === "v4" ? "/api" : "";
|
|
37
|
-
const url = new URL(`${conn.url}${prefix}${endpoint}`);
|
|
38
|
-
if (qs) {
|
|
39
|
-
for (const [k, v] of Object.entries(qs)) {
|
|
40
|
-
if (v !== undefined && v !== null)
|
|
41
|
-
url.searchParams.set(k, String(v));
|
|
42
|
-
}
|
|
43
|
-
}
|
|
44
|
-
const init = {
|
|
45
|
-
method,
|
|
46
|
-
headers: {
|
|
47
|
-
Authorization: `Bearer ${token}`,
|
|
48
|
-
"Content-Type": "application/json",
|
|
49
|
-
},
|
|
50
|
-
};
|
|
51
|
-
if (body && Object.keys(body).length > 0)
|
|
52
|
-
init.body = JSON.stringify(body);
|
|
53
|
-
const res = await fetch(url.toString(), init);
|
|
54
|
-
if (!res.ok)
|
|
55
|
-
throw new Error(`Strapi error ${res.status}: ${await res.text()}`);
|
|
56
|
-
const text = await res.text();
|
|
57
|
-
return text ? JSON.parse(text) : {};
|
|
17
|
+
/** An entry, or a content type's collection, as a path beneath the API. */
|
|
18
|
+
function entryPath(contentType, entryId) {
|
|
19
|
+
return entryId === undefined
|
|
20
|
+
? pathSegment(contentType)
|
|
21
|
+
: `${pathSegment(contentType)}/${pathSegment(entryId)}`;
|
|
58
22
|
}
|
|
59
23
|
export default function strapi(rl) {
|
|
60
24
|
rl.setName("strapi");
|
|
61
25
|
rl.setVersion("0.1.0");
|
|
26
|
+
rl.setCredential(strapiCredential);
|
|
62
27
|
rl.setConnectionSchema({
|
|
63
28
|
url: {
|
|
64
29
|
type: "string",
|
|
@@ -72,6 +37,12 @@ export default function strapi(rl) {
|
|
|
72
37
|
description: "v3 or v4 (default: v4)",
|
|
73
38
|
env: "STRAPI_API_VERSION",
|
|
74
39
|
},
|
|
40
|
+
authMethod: {
|
|
41
|
+
type: "string",
|
|
42
|
+
required: false,
|
|
43
|
+
description: "apiToken or password (inferred from which credential the connection holds)",
|
|
44
|
+
env: "STRAPI_AUTH_METHOD",
|
|
45
|
+
},
|
|
75
46
|
apiToken: {
|
|
76
47
|
type: "string",
|
|
77
48
|
required: false,
|
|
@@ -103,12 +74,11 @@ export default function strapi(rl) {
|
|
|
103
74
|
data: { type: "object", required: true, description: "Entry fields" },
|
|
104
75
|
},
|
|
105
76
|
async execute(input, ctx) {
|
|
106
|
-
const conn = getConn(ctx);
|
|
107
77
|
const p = input;
|
|
108
|
-
const body =
|
|
78
|
+
const body = isV4(ctx)
|
|
109
79
|
? { data: p.data }
|
|
110
80
|
: p.data;
|
|
111
|
-
return apiRequest(
|
|
81
|
+
return apiRequest(ctx, "POST", entryPath(p.contentType), body);
|
|
112
82
|
},
|
|
113
83
|
});
|
|
114
84
|
rl.registerAction("entry.get", {
|
|
@@ -119,10 +89,9 @@ export default function strapi(rl) {
|
|
|
119
89
|
entryId: { type: "string", required: true },
|
|
120
90
|
},
|
|
121
91
|
async execute(input, ctx) {
|
|
122
|
-
const conn = getConn(ctx);
|
|
123
92
|
const p = input;
|
|
124
|
-
const data = (await apiRequest(
|
|
125
|
-
return
|
|
93
|
+
const data = (await apiRequest(ctx, "GET", entryPath(p.contentType, p.entryId)));
|
|
94
|
+
return isV4(ctx) ? data.data : data;
|
|
126
95
|
},
|
|
127
96
|
});
|
|
128
97
|
rl.registerAction("entry.list", {
|
|
@@ -148,10 +117,9 @@ export default function strapi(rl) {
|
|
|
148
117
|
},
|
|
149
118
|
},
|
|
150
119
|
async execute(input, ctx) {
|
|
151
|
-
const conn = getConn(ctx);
|
|
152
120
|
const p = (input ?? {});
|
|
153
121
|
const qs = {};
|
|
154
|
-
if (
|
|
122
|
+
if (isV4(ctx)) {
|
|
155
123
|
if (p.limit)
|
|
156
124
|
qs["pagination[pageSize]"] = p.limit;
|
|
157
125
|
if (p.sort)
|
|
@@ -160,7 +128,7 @@ export default function strapi(rl) {
|
|
|
160
128
|
qs.filters = p.filters;
|
|
161
129
|
if (p.publicationState)
|
|
162
130
|
qs.publicationState = p.publicationState;
|
|
163
|
-
const data = (await apiRequest(
|
|
131
|
+
const data = (await apiRequest(ctx, "GET", entryPath(p.contentType), undefined, qs));
|
|
164
132
|
return data.data;
|
|
165
133
|
}
|
|
166
134
|
if (p.limit)
|
|
@@ -171,7 +139,7 @@ export default function strapi(rl) {
|
|
|
171
139
|
qs._where = p.filters;
|
|
172
140
|
if (p.publicationState)
|
|
173
141
|
qs._publicationState = p.publicationState;
|
|
174
|
-
return apiRequest(
|
|
142
|
+
return apiRequest(ctx, "GET", entryPath(p.contentType), undefined, qs);
|
|
175
143
|
},
|
|
176
144
|
});
|
|
177
145
|
rl.registerAction("entry.update", {
|
|
@@ -183,13 +151,12 @@ export default function strapi(rl) {
|
|
|
183
151
|
data: { type: "object", required: true, description: "Fields to update" },
|
|
184
152
|
},
|
|
185
153
|
async execute(input, ctx) {
|
|
186
|
-
const conn = getConn(ctx);
|
|
187
154
|
const p = input;
|
|
188
|
-
const body =
|
|
155
|
+
const body = isV4(ctx)
|
|
189
156
|
? { data: p.data }
|
|
190
157
|
: p.data;
|
|
191
|
-
const result = (await apiRequest(
|
|
192
|
-
return
|
|
158
|
+
const result = (await apiRequest(ctx, "PUT", entryPath(p.contentType, p.entryId), body));
|
|
159
|
+
return isV4(ctx) ? result.data : result;
|
|
193
160
|
},
|
|
194
161
|
});
|
|
195
162
|
rl.registerAction("entry.delete", {
|
|
@@ -200,9 +167,8 @@ export default function strapi(rl) {
|
|
|
200
167
|
entryId: { type: "string", required: true },
|
|
201
168
|
},
|
|
202
169
|
async execute(input, ctx) {
|
|
203
|
-
const conn = getConn(ctx);
|
|
204
170
|
const p = input;
|
|
205
|
-
return apiRequest(
|
|
171
|
+
return apiRequest(ctx, "DELETE", entryPath(p.contentType, p.entryId));
|
|
206
172
|
},
|
|
207
173
|
});
|
|
208
174
|
}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { staticCredential } from "../../_shared/credentials.js";
|
|
2
|
+
/** An OAuth2 access token, sent as a bearer to Strava's one API origin. */
|
|
3
|
+
export const stravaCredential = staticCredential({
|
|
4
|
+
id: "strava",
|
|
5
|
+
auth: { kind: "bearer" },
|
|
6
|
+
local: { secret: "accessToken" },
|
|
7
|
+
targets: {
|
|
8
|
+
api: {
|
|
9
|
+
baseUrl: "https://www.strava.com/api/v3/",
|
|
10
|
+
methods: ["GET", "POST", "PUT"],
|
|
11
|
+
},
|
|
12
|
+
},
|
|
13
|
+
probe: {
|
|
14
|
+
target: "api",
|
|
15
|
+
path: "athlete",
|
|
16
|
+
method: "GET",
|
|
17
|
+
acceptedStatuses: [200],
|
|
18
|
+
},
|
|
19
|
+
});
|
|
@@ -1,34 +1,18 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
url.searchParams.set(k, String(v));
|
|
8
|
-
}
|
|
9
|
-
}
|
|
10
|
-
const init = {
|
|
1
|
+
import { credentialJson, pathSegment } from "../../_shared/credentials.js";
|
|
2
|
+
import { stravaCredential } from "./credentials.js";
|
|
3
|
+
function apiRequest(ctx, method, path, body, qs) {
|
|
4
|
+
return credentialJson(ctx, stravaCredential, "strava", {
|
|
5
|
+
target: "api",
|
|
6
|
+
path,
|
|
11
7
|
method,
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
const form = new URLSearchParams();
|
|
16
|
-
for (const [k, v] of Object.entries(body)) {
|
|
17
|
-
if (v !== undefined && v !== null)
|
|
18
|
-
form.set(k, String(v));
|
|
19
|
-
}
|
|
20
|
-
init.body = form;
|
|
21
|
-
init.headers["Content-Type"] =
|
|
22
|
-
"application/x-www-form-urlencoded";
|
|
23
|
-
}
|
|
24
|
-
const res = await fetch(url.toString(), init);
|
|
25
|
-
if (!res.ok)
|
|
26
|
-
throw new Error(`Strava error ${res.status}: ${await res.text()}`);
|
|
27
|
-
return res.json();
|
|
8
|
+
query: qs,
|
|
9
|
+
...(body && Object.keys(body).length > 0 ? { form: body } : {}),
|
|
10
|
+
});
|
|
28
11
|
}
|
|
29
12
|
export default function strava(rl) {
|
|
30
13
|
rl.setName("strava");
|
|
31
14
|
rl.setVersion("0.1.0");
|
|
15
|
+
rl.setCredential(stravaCredential);
|
|
32
16
|
rl.setConnectionSchema({
|
|
33
17
|
accessToken: {
|
|
34
18
|
type: "string",
|
|
@@ -37,7 +21,6 @@ export default function strava(rl) {
|
|
|
37
21
|
env: "STRAVA_ACCESS_TOKEN",
|
|
38
22
|
},
|
|
39
23
|
});
|
|
40
|
-
const key = (ctx) => ctx.connection.config.accessToken;
|
|
41
24
|
rl.registerAction("activity.create", {
|
|
42
25
|
access: "write",
|
|
43
26
|
description: "Create an activity",
|
|
@@ -83,7 +66,7 @@ export default function strava(rl) {
|
|
|
83
66
|
body.trainer = 1;
|
|
84
67
|
if (p.commute)
|
|
85
68
|
body.commute = 1;
|
|
86
|
-
return apiRequest(
|
|
69
|
+
return apiRequest(ctx, "POST", "activities", body);
|
|
87
70
|
},
|
|
88
71
|
});
|
|
89
72
|
rl.registerAction("activity.get", {
|
|
@@ -91,7 +74,7 @@ export default function strava(rl) {
|
|
|
91
74
|
description: "Get an activity by ID",
|
|
92
75
|
inputSchema: { activityId: { type: "string", required: true } },
|
|
93
76
|
async execute(input, ctx) {
|
|
94
|
-
return apiRequest(
|
|
77
|
+
return apiRequest(ctx, "GET", `activities/${pathSegment(input.activityId)}`);
|
|
95
78
|
},
|
|
96
79
|
});
|
|
97
80
|
rl.registerAction("activity.list", {
|
|
@@ -102,7 +85,7 @@ export default function strava(rl) {
|
|
|
102
85
|
const qs = {};
|
|
103
86
|
if (input?.limit)
|
|
104
87
|
qs.per_page = input.limit;
|
|
105
|
-
return apiRequest(
|
|
88
|
+
return apiRequest(ctx, "GET", "activities", undefined, qs);
|
|
106
89
|
},
|
|
107
90
|
});
|
|
108
91
|
rl.registerAction("activity.update", {
|
|
@@ -132,7 +115,7 @@ export default function strava(rl) {
|
|
|
132
115
|
body.commute = fields.commute;
|
|
133
116
|
if (fields.gearId)
|
|
134
117
|
body.gear_id = fields.gearId;
|
|
135
|
-
return apiRequest(
|
|
118
|
+
return apiRequest(ctx, "PUT", `activities/${pathSegment(activityId)}`, body);
|
|
136
119
|
},
|
|
137
120
|
});
|
|
138
121
|
for (const sub of [
|
|
@@ -162,7 +145,7 @@ export default function strava(rl) {
|
|
|
162
145
|
},
|
|
163
146
|
async execute(input, ctx) {
|
|
164
147
|
const p = input;
|
|
165
|
-
const data = (await apiRequest(
|
|
148
|
+
const data = (await apiRequest(ctx, "GET", `activities/${pathSegment(p.activityId)}/${sub.path}`));
|
|
166
149
|
if (p.limit)
|
|
167
150
|
return data.slice(0, p.limit);
|
|
168
151
|
return data;
|
|
@@ -182,7 +165,7 @@ export default function strava(rl) {
|
|
|
182
165
|
},
|
|
183
166
|
async execute(input, ctx) {
|
|
184
167
|
const p = input;
|
|
185
|
-
return apiRequest(
|
|
168
|
+
return apiRequest(ctx, "GET", `activities/${pathSegment(p.activityId)}/streams`, undefined, { keys: p.keys, key_by_type: "true" });
|
|
186
169
|
},
|
|
187
170
|
});
|
|
188
171
|
}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { staticCredential } from "../../_shared/credentials.js";
|
|
2
|
+
/** A secret key, sent as a bearer to Stripe's v1 API base. */
|
|
3
|
+
export const stripeCredential = staticCredential({
|
|
4
|
+
id: "stripe",
|
|
5
|
+
auth: { kind: "bearer" },
|
|
6
|
+
local: { secret: "secretKey" },
|
|
7
|
+
targets: {
|
|
8
|
+
api: {
|
|
9
|
+
baseUrl: "https://api.stripe.com/v1/",
|
|
10
|
+
methods: ["GET", "POST", "DELETE"],
|
|
11
|
+
},
|
|
12
|
+
},
|
|
13
|
+
probe: {
|
|
14
|
+
target: "api",
|
|
15
|
+
path: "balance",
|
|
16
|
+
method: "GET",
|
|
17
|
+
acceptedStatuses: [200],
|
|
18
|
+
},
|
|
19
|
+
});
|