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,39 +1,20 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
if (v !== undefined && v !== null)
|
|
8
|
-
url.searchParams.set(k, String(v));
|
|
9
|
-
}
|
|
10
|
-
}
|
|
11
|
-
const opts = {
|
|
1
|
+
import { credentialJson, pathSegment } from "../../_shared/credentials.js";
|
|
2
|
+
import { beeminderCredential } from "./credentials.js";
|
|
3
|
+
function apiRequest(ctx, method, path, body, query) {
|
|
4
|
+
return credentialJson(ctx, beeminderCredential, "beeminder", {
|
|
5
|
+
target: "api",
|
|
6
|
+
path,
|
|
12
7
|
method,
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
Object.keys(body).length > 0 &&
|
|
17
|
-
method !== "GET" &&
|
|
18
|
-
method !== "DELETE") {
|
|
19
|
-
opts.body = JSON.stringify(body);
|
|
20
|
-
}
|
|
21
|
-
const res = await fetch(url.toString(), opts);
|
|
22
|
-
if (!res.ok) {
|
|
23
|
-
const text = await res.text();
|
|
24
|
-
throw new Error(`Beeminder API error ${res.status}: ${text}`);
|
|
25
|
-
}
|
|
26
|
-
const ct = res.headers.get("content-type") ?? "";
|
|
27
|
-
if (ct.includes("application/json"))
|
|
28
|
-
return res.json();
|
|
29
|
-
return { success: true };
|
|
8
|
+
query,
|
|
9
|
+
...(body && Object.keys(body).length > 0 ? { json: body } : {}),
|
|
10
|
+
});
|
|
30
11
|
}
|
|
31
|
-
async function paginateAll(
|
|
12
|
+
async function paginateAll(ctx, path, query) {
|
|
32
13
|
const results = [];
|
|
33
14
|
let page = 1;
|
|
34
15
|
while (true) {
|
|
35
|
-
const data = (await apiRequest(
|
|
36
|
-
...
|
|
16
|
+
const data = (await apiRequest(ctx, "GET", path, undefined, {
|
|
17
|
+
...query,
|
|
37
18
|
page,
|
|
38
19
|
}));
|
|
39
20
|
if (!Array.isArray(data) || data.length === 0)
|
|
@@ -43,12 +24,10 @@ async function paginateAll(token, endpoint, qs) {
|
|
|
43
24
|
}
|
|
44
25
|
return results;
|
|
45
26
|
}
|
|
46
|
-
function getToken(ctx) {
|
|
47
|
-
return ctx.connection.config.apiToken;
|
|
48
|
-
}
|
|
49
27
|
export default function beeminder(rl) {
|
|
50
28
|
rl.setName("beeminder");
|
|
51
29
|
rl.setVersion("0.1.0");
|
|
30
|
+
rl.setCredential(beeminderCredential);
|
|
52
31
|
rl.setConnectionSchema({
|
|
53
32
|
apiToken: {
|
|
54
33
|
type: "string",
|
|
@@ -78,7 +57,7 @@ export default function beeminder(rl) {
|
|
|
78
57
|
},
|
|
79
58
|
async execute(input, ctx) {
|
|
80
59
|
const { goalName, ...body } = input;
|
|
81
|
-
return apiRequest(
|
|
60
|
+
return apiRequest(ctx, "POST", `users/me/goals/${pathSegment(goalName)}/datapoints.json`, body);
|
|
82
61
|
},
|
|
83
62
|
});
|
|
84
63
|
rl.registerAction("datapoint.createAll", {
|
|
@@ -94,7 +73,7 @@ export default function beeminder(rl) {
|
|
|
94
73
|
},
|
|
95
74
|
async execute(input, ctx) {
|
|
96
75
|
const { goalName, datapoints } = input;
|
|
97
|
-
return apiRequest(
|
|
76
|
+
return apiRequest(ctx, "POST", `users/me/goals/${pathSegment(goalName)}/datapoints/create_all.json`, { datapoints });
|
|
98
77
|
},
|
|
99
78
|
});
|
|
100
79
|
rl.registerAction("datapoint.get", {
|
|
@@ -110,7 +89,7 @@ export default function beeminder(rl) {
|
|
|
110
89
|
},
|
|
111
90
|
async execute(input, ctx) {
|
|
112
91
|
const { goalName, datapointId } = input;
|
|
113
|
-
return apiRequest(
|
|
92
|
+
return apiRequest(ctx, "GET", `users/me/goals/${pathSegment(goalName)}/datapoints/${pathSegment(datapointId)}.json`);
|
|
114
93
|
},
|
|
115
94
|
});
|
|
116
95
|
rl.registerAction("datapoint.list", {
|
|
@@ -137,7 +116,6 @@ export default function beeminder(rl) {
|
|
|
137
116
|
},
|
|
138
117
|
async execute(input, ctx) {
|
|
139
118
|
const { goalName, sort, limit, page, per } = (input ?? {});
|
|
140
|
-
const token = getToken(ctx);
|
|
141
119
|
const qs = {};
|
|
142
120
|
if (sort)
|
|
143
121
|
qs.sort = sort;
|
|
@@ -147,9 +125,9 @@ export default function beeminder(rl) {
|
|
|
147
125
|
qs.page = page;
|
|
148
126
|
if (per)
|
|
149
127
|
qs.per = per;
|
|
150
|
-
return apiRequest(
|
|
128
|
+
return apiRequest(ctx, "GET", `users/me/goals/${pathSegment(goalName)}/datapoints.json`, undefined, qs);
|
|
151
129
|
}
|
|
152
|
-
return paginateAll(
|
|
130
|
+
return paginateAll(ctx, `users/me/goals/${pathSegment(goalName)}/datapoints.json`, qs);
|
|
153
131
|
},
|
|
154
132
|
});
|
|
155
133
|
rl.registerAction("datapoint.update", {
|
|
@@ -172,7 +150,7 @@ export default function beeminder(rl) {
|
|
|
172
150
|
},
|
|
173
151
|
async execute(input, ctx) {
|
|
174
152
|
const { goalName, datapointId, ...body } = input;
|
|
175
|
-
return apiRequest(
|
|
153
|
+
return apiRequest(ctx, "PUT", `users/me/goals/${pathSegment(goalName)}/datapoints/${pathSegment(datapointId)}.json`, body);
|
|
176
154
|
},
|
|
177
155
|
});
|
|
178
156
|
rl.registerAction("datapoint.delete", {
|
|
@@ -188,7 +166,7 @@ export default function beeminder(rl) {
|
|
|
188
166
|
},
|
|
189
167
|
async execute(input, ctx) {
|
|
190
168
|
const { goalName, datapointId } = input;
|
|
191
|
-
return apiRequest(
|
|
169
|
+
return apiRequest(ctx, "DELETE", `users/me/goals/${pathSegment(goalName)}/datapoints/${pathSegment(datapointId)}.json`);
|
|
192
170
|
},
|
|
193
171
|
});
|
|
194
172
|
// ── Charge ──────────────────────────────────────────
|
|
@@ -215,7 +193,7 @@ export default function beeminder(rl) {
|
|
|
215
193
|
body.note = note;
|
|
216
194
|
if (dryrun)
|
|
217
195
|
body.dryrun = dryrun;
|
|
218
|
-
return apiRequest(
|
|
196
|
+
return apiRequest(ctx, "POST", "charges.json", body);
|
|
219
197
|
},
|
|
220
198
|
});
|
|
221
199
|
// ── Goal ────────────────────────────────────────────
|
|
@@ -282,7 +260,7 @@ export default function beeminder(rl) {
|
|
|
282
260
|
},
|
|
283
261
|
},
|
|
284
262
|
async execute(input, ctx) {
|
|
285
|
-
return apiRequest(
|
|
263
|
+
return apiRequest(ctx, "POST", "users/me/goals.json", input);
|
|
286
264
|
},
|
|
287
265
|
});
|
|
288
266
|
rl.registerAction("goal.get", {
|
|
@@ -303,7 +281,7 @@ export default function beeminder(rl) {
|
|
|
303
281
|
},
|
|
304
282
|
async execute(input, ctx) {
|
|
305
283
|
const { goalName, ...qs } = input;
|
|
306
|
-
return apiRequest(
|
|
284
|
+
return apiRequest(ctx, "GET", `users/me/goals/${pathSegment(goalName)}.json`, undefined, qs);
|
|
307
285
|
},
|
|
308
286
|
});
|
|
309
287
|
rl.registerAction("goal.list", {
|
|
@@ -318,7 +296,7 @@ export default function beeminder(rl) {
|
|
|
318
296
|
},
|
|
319
297
|
async execute(input, ctx) {
|
|
320
298
|
const qs = (input ?? {});
|
|
321
|
-
return apiRequest(
|
|
299
|
+
return apiRequest(ctx, "GET", "users/me/goals.json", undefined, qs);
|
|
322
300
|
},
|
|
323
301
|
});
|
|
324
302
|
rl.registerAction("goal.listArchived", {
|
|
@@ -333,7 +311,7 @@ export default function beeminder(rl) {
|
|
|
333
311
|
},
|
|
334
312
|
async execute(input, ctx) {
|
|
335
313
|
const qs = (input ?? {});
|
|
336
|
-
return apiRequest(
|
|
314
|
+
return apiRequest(ctx, "GET", "users/me/goals/archived.json", undefined, qs);
|
|
337
315
|
},
|
|
338
316
|
});
|
|
339
317
|
rl.registerAction("goal.update", {
|
|
@@ -377,7 +355,7 @@ export default function beeminder(rl) {
|
|
|
377
355
|
},
|
|
378
356
|
async execute(input, ctx) {
|
|
379
357
|
const { goalName, ...body } = input;
|
|
380
|
-
return apiRequest(
|
|
358
|
+
return apiRequest(ctx, "PUT", `users/me/goals/${pathSegment(goalName)}.json`, body);
|
|
381
359
|
},
|
|
382
360
|
});
|
|
383
361
|
rl.registerAction("goal.refresh", {
|
|
@@ -388,7 +366,7 @@ export default function beeminder(rl) {
|
|
|
388
366
|
},
|
|
389
367
|
async execute(input, ctx) {
|
|
390
368
|
const { goalName } = input;
|
|
391
|
-
return apiRequest(
|
|
369
|
+
return apiRequest(ctx, "GET", `users/me/goals/${pathSegment(goalName)}/refresh_graph.json`);
|
|
392
370
|
},
|
|
393
371
|
});
|
|
394
372
|
rl.registerAction("goal.shortCircuit", {
|
|
@@ -399,7 +377,7 @@ export default function beeminder(rl) {
|
|
|
399
377
|
},
|
|
400
378
|
async execute(input, ctx) {
|
|
401
379
|
const { goalName } = input;
|
|
402
|
-
return apiRequest(
|
|
380
|
+
return apiRequest(ctx, "POST", `users/me/goals/${pathSegment(goalName)}/shortcircuit.json`);
|
|
403
381
|
},
|
|
404
382
|
});
|
|
405
383
|
rl.registerAction("goal.stepDown", {
|
|
@@ -410,7 +388,7 @@ export default function beeminder(rl) {
|
|
|
410
388
|
},
|
|
411
389
|
async execute(input, ctx) {
|
|
412
390
|
const { goalName } = input;
|
|
413
|
-
return apiRequest(
|
|
391
|
+
return apiRequest(ctx, "POST", `users/me/goals/${pathSegment(goalName)}/stepdown.json`);
|
|
414
392
|
},
|
|
415
393
|
});
|
|
416
394
|
rl.registerAction("goal.cancelStepDown", {
|
|
@@ -421,7 +399,7 @@ export default function beeminder(rl) {
|
|
|
421
399
|
},
|
|
422
400
|
async execute(input, ctx) {
|
|
423
401
|
const { goalName } = input;
|
|
424
|
-
return apiRequest(
|
|
402
|
+
return apiRequest(ctx, "POST", `users/me/goals/${pathSegment(goalName)}/cancel_stepdown.json`);
|
|
425
403
|
},
|
|
426
404
|
});
|
|
427
405
|
rl.registerAction("goal.uncle", {
|
|
@@ -432,7 +410,7 @@ export default function beeminder(rl) {
|
|
|
432
410
|
},
|
|
433
411
|
async execute(input, ctx) {
|
|
434
412
|
const { goalName } = input;
|
|
435
|
-
return apiRequest(
|
|
413
|
+
return apiRequest(ctx, "POST", `users/me/goals/${pathSegment(goalName)}/uncleme.json`);
|
|
436
414
|
},
|
|
437
415
|
});
|
|
438
416
|
// ── User ────────────────────────────────────────────
|
|
@@ -468,7 +446,7 @@ export default function beeminder(rl) {
|
|
|
468
446
|
},
|
|
469
447
|
async execute(input, ctx) {
|
|
470
448
|
const qs = (input ?? {});
|
|
471
|
-
return apiRequest(
|
|
449
|
+
return apiRequest(ctx, "GET", "users/me.json", undefined, qs);
|
|
472
450
|
},
|
|
473
451
|
});
|
|
474
452
|
}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { staticCredential } from "../../_shared/credentials.js";
|
|
2
|
+
/** An access token, sent as a bearer to Bitly's one API origin. */
|
|
3
|
+
export const bitlyCredential = staticCredential({
|
|
4
|
+
id: "bitly",
|
|
5
|
+
auth: { kind: "bearer" },
|
|
6
|
+
local: { secret: "accessToken" },
|
|
7
|
+
targets: {
|
|
8
|
+
api: {
|
|
9
|
+
baseUrl: "https://api-ssl.bitly.com/v4/",
|
|
10
|
+
methods: ["GET", "POST", "PATCH"],
|
|
11
|
+
},
|
|
12
|
+
},
|
|
13
|
+
probe: {
|
|
14
|
+
target: "api",
|
|
15
|
+
path: "user",
|
|
16
|
+
method: "GET",
|
|
17
|
+
acceptedStatuses: [200],
|
|
18
|
+
},
|
|
19
|
+
});
|
|
@@ -1,31 +1,17 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
1
|
+
import { credentialJson, pathSegments } from "../../_shared/credentials.js";
|
|
2
|
+
import { bitlyCredential } from "./credentials.js";
|
|
3
|
+
function apiRequest(ctx, method, path, body) {
|
|
4
|
+
return credentialJson(ctx, bitlyCredential, "bitly", {
|
|
5
|
+
target: "api",
|
|
6
|
+
path,
|
|
4
7
|
method,
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
Authorization: `Bearer ${token}`,
|
|
8
|
-
},
|
|
9
|
-
};
|
|
10
|
-
if (body &&
|
|
11
|
-
Object.keys(body).length > 0 &&
|
|
12
|
-
method !== "GET" &&
|
|
13
|
-
method !== "DELETE") {
|
|
14
|
-
opts.body = JSON.stringify(body);
|
|
15
|
-
}
|
|
16
|
-
const res = await fetch(`${BASE_URL}${endpoint}`, opts);
|
|
17
|
-
if (!res.ok) {
|
|
18
|
-
const text = await res.text();
|
|
19
|
-
throw new Error(`Bitly API error ${res.status}: ${text}`);
|
|
20
|
-
}
|
|
21
|
-
return res.json();
|
|
22
|
-
}
|
|
23
|
-
function getToken(ctx) {
|
|
24
|
-
return ctx.connection.config.accessToken;
|
|
8
|
+
...(body && Object.keys(body).length > 0 ? { json: body } : {}),
|
|
9
|
+
});
|
|
25
10
|
}
|
|
26
11
|
export default function bitly(rl) {
|
|
27
12
|
rl.setName("bitly");
|
|
28
13
|
rl.setVersion("0.1.0");
|
|
14
|
+
rl.setCredential(bitlyCredential);
|
|
29
15
|
rl.setConnectionSchema({
|
|
30
16
|
accessToken: {
|
|
31
17
|
type: "string",
|
|
@@ -79,7 +65,7 @@ export default function bitly(rl) {
|
|
|
79
65
|
body.tags = tags;
|
|
80
66
|
if (deeplinks)
|
|
81
67
|
body.deeplinks = deeplinks;
|
|
82
|
-
return apiRequest(
|
|
68
|
+
return apiRequest(ctx, "POST", "bitlinks", body);
|
|
83
69
|
},
|
|
84
70
|
});
|
|
85
71
|
rl.registerAction("link.get", {
|
|
@@ -94,7 +80,7 @@ export default function bitly(rl) {
|
|
|
94
80
|
},
|
|
95
81
|
async execute(input, ctx) {
|
|
96
82
|
const { bitlink } = input;
|
|
97
|
-
return apiRequest(
|
|
83
|
+
return apiRequest(ctx, "GET", `bitlinks/${pathSegments(bitlink)}`);
|
|
98
84
|
},
|
|
99
85
|
});
|
|
100
86
|
rl.registerAction("link.update", {
|
|
@@ -140,7 +126,7 @@ export default function bitly(rl) {
|
|
|
140
126
|
body.tags = tags;
|
|
141
127
|
if (deeplinks)
|
|
142
128
|
body.deeplinks = deeplinks;
|
|
143
|
-
return apiRequest(
|
|
129
|
+
return apiRequest(ctx, "PATCH", `bitlinks/${pathSegments(bitlink)}`, body);
|
|
144
130
|
},
|
|
145
131
|
});
|
|
146
132
|
}
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
import { configChoice, grantSchema, httpsBase, } from "../../_shared/credentials.js";
|
|
2
|
+
/**
|
|
3
|
+
* An organization API key (client id and secret), exchanged for a bearer
|
|
4
|
+
* token via the client-credentials grant against Bitwarden's identity
|
|
5
|
+
* service — the cloud one, or the self-hosted instance's own. Requests go
|
|
6
|
+
* to the matching Public API beneath /public/. A self-hosted connection
|
|
7
|
+
* must name its HTTPS domain; it is never sent to the cloud instead. The
|
|
8
|
+
* device fields are the fixed client registration Bitwarden's token
|
|
9
|
+
* endpoint requires.
|
|
10
|
+
*/
|
|
11
|
+
export const bitwardenCredential = (config) => {
|
|
12
|
+
const selfHosted = configChoice(config.environment, ["cloudHosted", "selfHosted"], "cloudHosted") === "selfHosted";
|
|
13
|
+
const api = {
|
|
14
|
+
baseUrl: selfHosted
|
|
15
|
+
? httpsBase(config.domain, "api/public/")
|
|
16
|
+
: "https://api.bitwarden.com/public/",
|
|
17
|
+
methods: ["GET", "POST", "PUT", "DELETE"],
|
|
18
|
+
};
|
|
19
|
+
return {
|
|
20
|
+
type: {
|
|
21
|
+
id: "bitwarden",
|
|
22
|
+
methods: {
|
|
23
|
+
oauth2: {
|
|
24
|
+
schema: grantSchema,
|
|
25
|
+
authentication: {
|
|
26
|
+
kind: "oauth2",
|
|
27
|
+
field: "grant",
|
|
28
|
+
definition: {
|
|
29
|
+
id: "bitwarden.oauth2",
|
|
30
|
+
provider: "bitwarden",
|
|
31
|
+
clientCredentials: {
|
|
32
|
+
url: selfHosted
|
|
33
|
+
? httpsBase(config.domain, "identity/connect/token")
|
|
34
|
+
: "https://identity.bitwarden.com/connect/token",
|
|
35
|
+
clientAuthentication: "client_secret_post",
|
|
36
|
+
parameters: {
|
|
37
|
+
deviceName: "runline",
|
|
38
|
+
deviceType: "2",
|
|
39
|
+
deviceIdentifier: "runline",
|
|
40
|
+
},
|
|
41
|
+
},
|
|
42
|
+
},
|
|
43
|
+
renewal: "clientCredentials",
|
|
44
|
+
scopes: ["api.organization"],
|
|
45
|
+
},
|
|
46
|
+
targets: { api },
|
|
47
|
+
probe: {
|
|
48
|
+
target: "api",
|
|
49
|
+
path: "collections",
|
|
50
|
+
method: "GET",
|
|
51
|
+
acceptedStatuses: [200],
|
|
52
|
+
},
|
|
53
|
+
},
|
|
54
|
+
},
|
|
55
|
+
},
|
|
56
|
+
method: "oauth2",
|
|
57
|
+
application: {
|
|
58
|
+
clientId: config.clientId,
|
|
59
|
+
clientSecret: config.clientSecret,
|
|
60
|
+
},
|
|
61
|
+
};
|
|
62
|
+
};
|
|
@@ -1,69 +1,23 @@
|
|
|
1
|
-
import {
|
|
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 { bitwardenCredential } from "./credentials.js";
|
|
3
|
+
function authedRequest(ctx, method, path, body, qs) {
|
|
4
|
+
return credentialJson(ctx, bitwardenCredential, "bitwarden", {
|
|
5
|
+
target: "api",
|
|
6
|
+
path,
|
|
11
7
|
method,
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
method !== "GET" &&
|
|
20
|
-
method !== "DELETE") {
|
|
21
|
-
opts.body = JSON.stringify(body);
|
|
22
|
-
}
|
|
23
|
-
const res = await fetch(url.toString(), opts);
|
|
24
|
-
if (!res.ok) {
|
|
25
|
-
const text = await res.text();
|
|
26
|
-
throw new Error(`Bitwarden API error ${res.status}: ${text}`);
|
|
27
|
-
}
|
|
28
|
-
if (res.status === 204 || res.headers.get("content-length") === "0")
|
|
29
|
-
return { success: true };
|
|
30
|
-
const ct = res.headers.get("content-type") ?? "";
|
|
31
|
-
if (ct.includes("application/json"))
|
|
32
|
-
return res.json();
|
|
33
|
-
return { success: true };
|
|
34
|
-
}
|
|
35
|
-
function getConn(cfg) {
|
|
36
|
-
const domain = cfg.domain?.replace(/\/$/, "");
|
|
37
|
-
const env = cfg.environment;
|
|
38
|
-
const baseUrl = env === "selfHosted" && domain
|
|
39
|
-
? `${domain}/api`
|
|
40
|
-
: "https://api.bitwarden.com";
|
|
41
|
-
const tokenUrl = env === "selfHosted" && domain
|
|
42
|
-
? `${domain}/identity/connect/token`
|
|
43
|
-
: "https://identity.bitwarden.com/connect/token";
|
|
44
|
-
return {
|
|
45
|
-
clientId: cfg.clientId,
|
|
46
|
-
clientSecret: cfg.clientSecret,
|
|
47
|
-
baseUrl,
|
|
48
|
-
tokenUrl,
|
|
49
|
-
};
|
|
50
|
-
}
|
|
51
|
-
async function authedRequest(ctx, method, endpoint, body, qs) {
|
|
52
|
-
const token = await coordinatedAccessToken(ctx, (current) => {
|
|
53
|
-
const { clientId, clientSecret, tokenUrl } = getConn(current);
|
|
54
|
-
return requestToken({ url: tokenUrl, clientAuthentication: "client_secret_post" }, {
|
|
55
|
-
grant_type: "client_credentials",
|
|
56
|
-
scope: "api.organization",
|
|
57
|
-
deviceName: "runline",
|
|
58
|
-
deviceType: "2",
|
|
59
|
-
deviceIdentifier: "runline",
|
|
60
|
-
}, { clientId, clientSecret });
|
|
8
|
+
query: qs,
|
|
9
|
+
...(body &&
|
|
10
|
+
Object.keys(body).length > 0 &&
|
|
11
|
+
method !== "GET" &&
|
|
12
|
+
method !== "DELETE"
|
|
13
|
+
? { json: body }
|
|
14
|
+
: {}),
|
|
61
15
|
});
|
|
62
|
-
return apiRequest(token, getConn(ctx.connection.config).baseUrl, method, endpoint, body, qs);
|
|
63
16
|
}
|
|
64
17
|
export default function bitwarden(rl) {
|
|
65
18
|
rl.setName("bitwarden");
|
|
66
19
|
rl.setVersion("0.1.0");
|
|
20
|
+
rl.setCredential(bitwardenCredential);
|
|
67
21
|
rl.setConnectionSchema({
|
|
68
22
|
clientId: {
|
|
69
23
|
type: "string",
|
|
@@ -104,7 +58,7 @@ export default function bitwarden(rl) {
|
|
|
104
58
|
},
|
|
105
59
|
async execute(input, ctx) {
|
|
106
60
|
const { collectionId } = input;
|
|
107
|
-
return authedRequest(ctx, "GET",
|
|
61
|
+
return authedRequest(ctx, "GET", `collections/${pathSegment(collectionId)}`);
|
|
108
62
|
},
|
|
109
63
|
});
|
|
110
64
|
rl.registerAction("collection.list", {
|
|
@@ -115,7 +69,7 @@ export default function bitwarden(rl) {
|
|
|
115
69
|
},
|
|
116
70
|
async execute(input, ctx) {
|
|
117
71
|
const { limit } = (input ?? {});
|
|
118
|
-
const data = (await authedRequest(ctx, "GET", "
|
|
72
|
+
const data = (await authedRequest(ctx, "GET", "collections"));
|
|
119
73
|
if (limit)
|
|
120
74
|
return data.data.slice(0, limit);
|
|
121
75
|
return data.data;
|
|
@@ -152,7 +106,7 @@ export default function bitwarden(rl) {
|
|
|
152
106
|
}
|
|
153
107
|
if (externalId)
|
|
154
108
|
body.externalId = externalId;
|
|
155
|
-
return authedRequest(ctx, "PUT",
|
|
109
|
+
return authedRequest(ctx, "PUT", `collections/${pathSegment(collectionId)}`, body);
|
|
156
110
|
},
|
|
157
111
|
});
|
|
158
112
|
rl.registerAction("collection.delete", {
|
|
@@ -167,7 +121,7 @@ export default function bitwarden(rl) {
|
|
|
167
121
|
},
|
|
168
122
|
async execute(input, ctx) {
|
|
169
123
|
const { collectionId } = input;
|
|
170
|
-
await authedRequest(ctx, "DELETE",
|
|
124
|
+
await authedRequest(ctx, "DELETE", `collections/${pathSegment(collectionId)}`);
|
|
171
125
|
return { success: true };
|
|
172
126
|
},
|
|
173
127
|
});
|
|
@@ -200,7 +154,7 @@ export default function bitwarden(rl) {
|
|
|
200
154
|
},
|
|
201
155
|
async execute(input, ctx) {
|
|
202
156
|
const { limit, ...qs } = (input ?? {});
|
|
203
|
-
const data = (await authedRequest(ctx, "GET", "
|
|
157
|
+
const data = (await authedRequest(ctx, "GET", "events", undefined, qs));
|
|
204
158
|
if (limit)
|
|
205
159
|
return data.data.slice(0, limit);
|
|
206
160
|
return data.data;
|
|
@@ -239,7 +193,7 @@ export default function bitwarden(rl) {
|
|
|
239
193
|
}
|
|
240
194
|
if (externalId)
|
|
241
195
|
body.externalId = externalId;
|
|
242
|
-
return authedRequest(ctx, "POST", "
|
|
196
|
+
return authedRequest(ctx, "POST", "groups", body);
|
|
243
197
|
},
|
|
244
198
|
});
|
|
245
199
|
rl.registerAction("group.get", {
|
|
@@ -250,7 +204,7 @@ export default function bitwarden(rl) {
|
|
|
250
204
|
},
|
|
251
205
|
async execute(input, ctx) {
|
|
252
206
|
const { groupId } = input;
|
|
253
|
-
return authedRequest(ctx, "GET",
|
|
207
|
+
return authedRequest(ctx, "GET", `groups/${pathSegment(groupId)}`);
|
|
254
208
|
},
|
|
255
209
|
});
|
|
256
210
|
rl.registerAction("group.list", {
|
|
@@ -261,7 +215,7 @@ export default function bitwarden(rl) {
|
|
|
261
215
|
},
|
|
262
216
|
async execute(input, ctx) {
|
|
263
217
|
const { limit } = (input ?? {});
|
|
264
|
-
const data = (await authedRequest(ctx, "GET", "
|
|
218
|
+
const data = (await authedRequest(ctx, "GET", "groups"));
|
|
265
219
|
if (limit)
|
|
266
220
|
return data.data.slice(0, limit);
|
|
267
221
|
return data.data;
|
|
@@ -275,7 +229,7 @@ export default function bitwarden(rl) {
|
|
|
275
229
|
},
|
|
276
230
|
async execute(input, ctx) {
|
|
277
231
|
const { groupId } = input;
|
|
278
|
-
const memberIds = (await authedRequest(ctx, "GET",
|
|
232
|
+
const memberIds = (await authedRequest(ctx, "GET", `groups/${pathSegment(groupId)}/member-ids`));
|
|
279
233
|
return memberIds.map((memberId) => ({ memberId }));
|
|
280
234
|
},
|
|
281
235
|
});
|
|
@@ -309,7 +263,7 @@ export default function bitwarden(rl) {
|
|
|
309
263
|
body.name = name;
|
|
310
264
|
}
|
|
311
265
|
else {
|
|
312
|
-
const current = (await authedRequest(ctx, "GET",
|
|
266
|
+
const current = (await authedRequest(ctx, "GET", `groups/${pathSegment(groupId)}`));
|
|
313
267
|
body.name = current.name;
|
|
314
268
|
}
|
|
315
269
|
body.AccessAll = accessAll ?? false;
|
|
@@ -321,7 +275,7 @@ export default function bitwarden(rl) {
|
|
|
321
275
|
}
|
|
322
276
|
if (externalId)
|
|
323
277
|
body.externalId = externalId;
|
|
324
|
-
return authedRequest(ctx, "PUT",
|
|
278
|
+
return authedRequest(ctx, "PUT", `groups/${pathSegment(groupId)}`, body);
|
|
325
279
|
},
|
|
326
280
|
});
|
|
327
281
|
rl.registerAction("group.updateMembers", {
|
|
@@ -337,7 +291,7 @@ export default function bitwarden(rl) {
|
|
|
337
291
|
},
|
|
338
292
|
async execute(input, ctx) {
|
|
339
293
|
const { groupId, memberIds } = input;
|
|
340
|
-
await authedRequest(ctx, "PUT",
|
|
294
|
+
await authedRequest(ctx, "PUT", `groups/${pathSegment(groupId)}/member-ids`, {
|
|
341
295
|
memberIds,
|
|
342
296
|
});
|
|
343
297
|
return { success: true };
|
|
@@ -351,7 +305,7 @@ export default function bitwarden(rl) {
|
|
|
351
305
|
},
|
|
352
306
|
async execute(input, ctx) {
|
|
353
307
|
const { groupId } = input;
|
|
354
|
-
await authedRequest(ctx, "DELETE",
|
|
308
|
+
await authedRequest(ctx, "DELETE", `groups/${pathSegment(groupId)}`);
|
|
355
309
|
return { success: true };
|
|
356
310
|
},
|
|
357
311
|
});
|
|
@@ -397,7 +351,7 @@ export default function bitwarden(rl) {
|
|
|
397
351
|
}
|
|
398
352
|
if (externalId)
|
|
399
353
|
body.externalId = externalId;
|
|
400
|
-
return authedRequest(ctx, "POST", "
|
|
354
|
+
return authedRequest(ctx, "POST", "members/", body);
|
|
401
355
|
},
|
|
402
356
|
});
|
|
403
357
|
rl.registerAction("member.get", {
|
|
@@ -408,7 +362,7 @@ export default function bitwarden(rl) {
|
|
|
408
362
|
},
|
|
409
363
|
async execute(input, ctx) {
|
|
410
364
|
const { memberId } = input;
|
|
411
|
-
return authedRequest(ctx, "GET",
|
|
365
|
+
return authedRequest(ctx, "GET", `members/${pathSegment(memberId)}`);
|
|
412
366
|
},
|
|
413
367
|
});
|
|
414
368
|
rl.registerAction("member.list", {
|
|
@@ -419,7 +373,7 @@ export default function bitwarden(rl) {
|
|
|
419
373
|
},
|
|
420
374
|
async execute(input, ctx) {
|
|
421
375
|
const { limit } = (input ?? {});
|
|
422
|
-
const data = (await authedRequest(ctx, "GET", "
|
|
376
|
+
const data = (await authedRequest(ctx, "GET", "members"));
|
|
423
377
|
if (limit)
|
|
424
378
|
return data.data.slice(0, limit);
|
|
425
379
|
return data.data;
|
|
@@ -433,7 +387,7 @@ export default function bitwarden(rl) {
|
|
|
433
387
|
},
|
|
434
388
|
async execute(input, ctx) {
|
|
435
389
|
const { memberId } = input;
|
|
436
|
-
const groupIds = (await authedRequest(ctx, "GET",
|
|
390
|
+
const groupIds = (await authedRequest(ctx, "GET", `members/${pathSegment(memberId)}/group-ids`));
|
|
437
391
|
return groupIds.map((groupId) => ({ groupId }));
|
|
438
392
|
},
|
|
439
393
|
});
|
|
@@ -478,7 +432,7 @@ export default function bitwarden(rl) {
|
|
|
478
432
|
}
|
|
479
433
|
if (externalId)
|
|
480
434
|
body.externalId = externalId;
|
|
481
|
-
return authedRequest(ctx, "PUT",
|
|
435
|
+
return authedRequest(ctx, "PUT", `members/${pathSegment(memberId)}`, body);
|
|
482
436
|
},
|
|
483
437
|
});
|
|
484
438
|
rl.registerAction("member.updateGroups", {
|
|
@@ -494,7 +448,7 @@ export default function bitwarden(rl) {
|
|
|
494
448
|
},
|
|
495
449
|
async execute(input, ctx) {
|
|
496
450
|
const { memberId, groupIds } = input;
|
|
497
|
-
await authedRequest(ctx, "PUT",
|
|
451
|
+
await authedRequest(ctx, "PUT", `members/${pathSegment(memberId)}/group-ids`, {
|
|
498
452
|
groupIds,
|
|
499
453
|
});
|
|
500
454
|
return { success: true };
|
|
@@ -508,7 +462,7 @@ export default function bitwarden(rl) {
|
|
|
508
462
|
},
|
|
509
463
|
async execute(input, ctx) {
|
|
510
464
|
const { memberId } = input;
|
|
511
|
-
await authedRequest(ctx, "DELETE",
|
|
465
|
+
await authedRequest(ctx, "DELETE", `members/${pathSegment(memberId)}`);
|
|
512
466
|
return { success: true };
|
|
513
467
|
},
|
|
514
468
|
});
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { staticCredential } from "../../_shared/credentials.js";
|
|
2
|
+
/** An OAuth2 access or developer token, sent as a bearer to Box's API origin. */
|
|
3
|
+
export const boxCredential = staticCredential({
|
|
4
|
+
id: "box",
|
|
5
|
+
auth: { kind: "bearer" },
|
|
6
|
+
local: { secret: "accessToken" },
|
|
7
|
+
targets: {
|
|
8
|
+
api: {
|
|
9
|
+
baseUrl: "https://api.box.com/2.0/",
|
|
10
|
+
methods: ["GET", "POST", "PUT", "DELETE"],
|
|
11
|
+
},
|
|
12
|
+
},
|
|
13
|
+
probe: {
|
|
14
|
+
target: "api",
|
|
15
|
+
path: "users/me",
|
|
16
|
+
method: "GET",
|
|
17
|
+
acceptedStatuses: [200],
|
|
18
|
+
},
|
|
19
|
+
});
|