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,54 +1,31 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
url.searchParams.set(k, String(v));
|
|
8
|
-
}
|
|
9
|
-
}
|
|
10
|
-
const opts = {
|
|
1
|
+
import { credentialJson, pathSegment, pathWithin, } from "../../_shared/credentials.js";
|
|
2
|
+
import { asanaCredential } from "./credentials.js";
|
|
3
|
+
async function apiRequest(ctx, method, path, body, qs) {
|
|
4
|
+
const json = (await credentialJson(ctx, asanaCredential, "asana", {
|
|
5
|
+
target: "api",
|
|
6
|
+
path,
|
|
11
7
|
method,
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
method !== "DELETE") {
|
|
21
|
-
opts.body = JSON.stringify({ data: body });
|
|
22
|
-
}
|
|
23
|
-
const res = await fetch(url.toString(), opts);
|
|
24
|
-
if (!res.ok) {
|
|
25
|
-
const text = await res.text();
|
|
26
|
-
throw new Error(`Asana API error ${res.status}: ${text}`);
|
|
27
|
-
}
|
|
28
|
-
if (res.status === 204)
|
|
29
|
-
return { success: true };
|
|
30
|
-
const json = (await res.json());
|
|
8
|
+
query: qs,
|
|
9
|
+
...(body &&
|
|
10
|
+
Object.keys(body).length > 0 &&
|
|
11
|
+
method !== "GET" &&
|
|
12
|
+
method !== "DELETE"
|
|
13
|
+
? { json: { data: body } }
|
|
14
|
+
: {}),
|
|
15
|
+
}));
|
|
31
16
|
return json.data ?? json;
|
|
32
17
|
}
|
|
33
|
-
async function paginateAll(
|
|
18
|
+
async function paginateAll(ctx, path, qs, limit) {
|
|
34
19
|
const results = [];
|
|
35
|
-
|
|
36
|
-
|
|
20
|
+
let page = {
|
|
21
|
+
path,
|
|
22
|
+
query: { limit: 100, ...qs },
|
|
23
|
+
};
|
|
37
24
|
while (true) {
|
|
38
|
-
const
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
if (v !== undefined)
|
|
43
|
-
url.searchParams.set(k, String(v));
|
|
44
|
-
}
|
|
45
|
-
}
|
|
46
|
-
const res = await fetch(url.toString(), {
|
|
47
|
-
headers: { Authorization: `Bearer ${token}` },
|
|
48
|
-
});
|
|
49
|
-
if (!res.ok)
|
|
50
|
-
throw new Error(`Asana API error ${res.status}: ${await res.text()}`);
|
|
51
|
-
const json = (await res.json());
|
|
25
|
+
const json = (await credentialJson(ctx, asanaCredential, "asana", {
|
|
26
|
+
target: "api",
|
|
27
|
+
...page,
|
|
28
|
+
}));
|
|
52
29
|
const data = json.data ?? [];
|
|
53
30
|
results.push(...data);
|
|
54
31
|
if (limit && results.length >= limit)
|
|
@@ -56,16 +33,14 @@ async function paginateAll(token, endpoint, qs, limit) {
|
|
|
56
33
|
const nextPage = json.next_page;
|
|
57
34
|
if (!nextPage?.uri)
|
|
58
35
|
break;
|
|
59
|
-
|
|
36
|
+
page = { path: pathWithin(ctx, asanaCredential, "api", nextPage.uri) };
|
|
60
37
|
}
|
|
61
38
|
return results;
|
|
62
39
|
}
|
|
63
|
-
function getToken(ctx) {
|
|
64
|
-
return ctx.connection.config.token;
|
|
65
|
-
}
|
|
66
40
|
export default function asana(rl) {
|
|
67
41
|
rl.setName("asana");
|
|
68
42
|
rl.setVersion("0.1.0");
|
|
43
|
+
rl.setCredential(asanaCredential);
|
|
69
44
|
rl.setConnectionSchema({
|
|
70
45
|
token: {
|
|
71
46
|
type: "string",
|
|
@@ -120,7 +95,7 @@ export default function asana(rl) {
|
|
|
120
95
|
body.due_on = dueOn;
|
|
121
96
|
if (completed !== undefined)
|
|
122
97
|
body.completed = completed;
|
|
123
|
-
return apiRequest(
|
|
98
|
+
return apiRequest(ctx, "POST", "tasks", body);
|
|
124
99
|
},
|
|
125
100
|
});
|
|
126
101
|
rl.registerAction("task.get", {
|
|
@@ -131,7 +106,7 @@ export default function asana(rl) {
|
|
|
131
106
|
},
|
|
132
107
|
async execute(input, ctx) {
|
|
133
108
|
const { taskId } = input;
|
|
134
|
-
return apiRequest(
|
|
109
|
+
return apiRequest(ctx, "GET", `tasks/${pathSegment(taskId)}`);
|
|
135
110
|
},
|
|
136
111
|
});
|
|
137
112
|
rl.registerAction("task.list", {
|
|
@@ -168,7 +143,7 @@ export default function asana(rl) {
|
|
|
168
143
|
qs.workspace = workspace;
|
|
169
144
|
if (assignee)
|
|
170
145
|
qs.assignee = assignee;
|
|
171
|
-
return paginateAll(
|
|
146
|
+
return paginateAll(ctx, "tasks", qs, limit);
|
|
172
147
|
},
|
|
173
148
|
});
|
|
174
149
|
rl.registerAction("task.update", {
|
|
@@ -199,7 +174,7 @@ export default function asana(rl) {
|
|
|
199
174
|
const body = { ...fields };
|
|
200
175
|
if (dueOn)
|
|
201
176
|
body.due_on = dueOn;
|
|
202
|
-
return apiRequest(
|
|
177
|
+
return apiRequest(ctx, "PUT", `tasks/${pathSegment(taskId)}`, body);
|
|
203
178
|
},
|
|
204
179
|
});
|
|
205
180
|
rl.registerAction("task.delete", {
|
|
@@ -210,7 +185,7 @@ export default function asana(rl) {
|
|
|
210
185
|
},
|
|
211
186
|
async execute(input, ctx) {
|
|
212
187
|
const { taskId } = input;
|
|
213
|
-
await apiRequest(
|
|
188
|
+
await apiRequest(ctx, "DELETE", `tasks/${pathSegment(taskId)}`);
|
|
214
189
|
return { success: true };
|
|
215
190
|
},
|
|
216
191
|
});
|
|
@@ -227,7 +202,9 @@ export default function asana(rl) {
|
|
|
227
202
|
},
|
|
228
203
|
async execute(input, ctx) {
|
|
229
204
|
const { taskId, sectionId } = input;
|
|
230
|
-
await apiRequest(
|
|
205
|
+
await apiRequest(ctx, "POST", `sections/${pathSegment(sectionId)}/addTask`, {
|
|
206
|
+
task: taskId,
|
|
207
|
+
});
|
|
231
208
|
return { success: true };
|
|
232
209
|
},
|
|
233
210
|
});
|
|
@@ -258,7 +235,7 @@ export default function asana(rl) {
|
|
|
258
235
|
qs.text = text;
|
|
259
236
|
if (completed !== undefined)
|
|
260
237
|
qs.completed = completed;
|
|
261
|
-
return apiRequest(
|
|
238
|
+
return apiRequest(ctx, "GET", `workspaces/${pathSegment(workspace)}/tasks/search`, undefined, qs);
|
|
262
239
|
},
|
|
263
240
|
});
|
|
264
241
|
// ── Subtask ─────────────────────────────────────────
|
|
@@ -294,7 +271,7 @@ export default function asana(rl) {
|
|
|
294
271
|
const body = { ...fields };
|
|
295
272
|
if (dueOn)
|
|
296
273
|
body.due_on = dueOn;
|
|
297
|
-
return apiRequest(
|
|
274
|
+
return apiRequest(ctx, "POST", `tasks/${pathSegment(taskId)}/subtasks`, body);
|
|
298
275
|
},
|
|
299
276
|
});
|
|
300
277
|
rl.registerAction("subtask.list", {
|
|
@@ -314,7 +291,7 @@ export default function asana(rl) {
|
|
|
314
291
|
},
|
|
315
292
|
async execute(input, ctx) {
|
|
316
293
|
const { taskId, limit } = input;
|
|
317
|
-
const data = (await apiRequest(
|
|
294
|
+
const data = (await apiRequest(ctx, "GET", `tasks/${pathSegment(taskId)}/subtasks`));
|
|
318
295
|
if (limit)
|
|
319
296
|
return data.slice(0, limit);
|
|
320
297
|
return data;
|
|
@@ -345,7 +322,7 @@ export default function asana(rl) {
|
|
|
345
322
|
: { text };
|
|
346
323
|
if (isPinned)
|
|
347
324
|
body.is_pinned = true;
|
|
348
|
-
return apiRequest(
|
|
325
|
+
return apiRequest(ctx, "POST", `tasks/${pathSegment(taskId)}/stories`, body);
|
|
349
326
|
},
|
|
350
327
|
});
|
|
351
328
|
rl.registerAction("taskComment.remove", {
|
|
@@ -360,7 +337,7 @@ export default function asana(rl) {
|
|
|
360
337
|
},
|
|
361
338
|
async execute(input, ctx) {
|
|
362
339
|
const { commentId } = input;
|
|
363
|
-
await apiRequest(
|
|
340
|
+
await apiRequest(ctx, "DELETE", `stories/${pathSegment(commentId)}`);
|
|
364
341
|
return { success: true };
|
|
365
342
|
},
|
|
366
343
|
});
|
|
@@ -374,7 +351,7 @@ export default function asana(rl) {
|
|
|
374
351
|
},
|
|
375
352
|
async execute(input, ctx) {
|
|
376
353
|
const { taskId, tagId } = input;
|
|
377
|
-
await apiRequest(
|
|
354
|
+
await apiRequest(ctx, "POST", `tasks/${pathSegment(taskId)}/addTag`, {
|
|
378
355
|
tag: tagId,
|
|
379
356
|
});
|
|
380
357
|
return { success: true };
|
|
@@ -389,7 +366,7 @@ export default function asana(rl) {
|
|
|
389
366
|
},
|
|
390
367
|
async execute(input, ctx) {
|
|
391
368
|
const { taskId, tagId } = input;
|
|
392
|
-
await apiRequest(
|
|
369
|
+
await apiRequest(ctx, "POST", `tasks/${pathSegment(taskId)}/removeTag`, {
|
|
393
370
|
tag: tagId,
|
|
394
371
|
});
|
|
395
372
|
return { success: true };
|
|
@@ -413,7 +390,7 @@ export default function asana(rl) {
|
|
|
413
390
|
const body = { project: projectId };
|
|
414
391
|
if (section)
|
|
415
392
|
body.section = section;
|
|
416
|
-
await apiRequest(
|
|
393
|
+
await apiRequest(ctx, "POST", `tasks/${pathSegment(taskId)}/addProject`, body);
|
|
417
394
|
return { success: true };
|
|
418
395
|
},
|
|
419
396
|
});
|
|
@@ -426,7 +403,9 @@ export default function asana(rl) {
|
|
|
426
403
|
},
|
|
427
404
|
async execute(input, ctx) {
|
|
428
405
|
const { taskId, projectId } = input;
|
|
429
|
-
await apiRequest(
|
|
406
|
+
await apiRequest(ctx, "POST", `tasks/${pathSegment(taskId)}/removeProject`, {
|
|
407
|
+
project: projectId,
|
|
408
|
+
});
|
|
430
409
|
return { success: true };
|
|
431
410
|
},
|
|
432
411
|
});
|
|
@@ -443,7 +422,7 @@ export default function asana(rl) {
|
|
|
443
422
|
},
|
|
444
423
|
async execute(input, ctx) {
|
|
445
424
|
const { userId } = input;
|
|
446
|
-
return apiRequest(
|
|
425
|
+
return apiRequest(ctx, "GET", `users/${pathSegment(userId)}`);
|
|
447
426
|
},
|
|
448
427
|
});
|
|
449
428
|
rl.registerAction("user.list", {
|
|
@@ -458,7 +437,7 @@ export default function asana(rl) {
|
|
|
458
437
|
},
|
|
459
438
|
async execute(input, ctx) {
|
|
460
439
|
const { workspace } = input;
|
|
461
|
-
return apiRequest(
|
|
440
|
+
return apiRequest(ctx, "GET", `workspaces/${pathSegment(workspace)}/users`);
|
|
462
441
|
},
|
|
463
442
|
});
|
|
464
443
|
// ── Project ─────────────────────────────────────────
|
|
@@ -494,7 +473,7 @@ export default function asana(rl) {
|
|
|
494
473
|
body.color = color;
|
|
495
474
|
if (dueOn)
|
|
496
475
|
body.due_on = dueOn;
|
|
497
|
-
return apiRequest(
|
|
476
|
+
return apiRequest(ctx, "POST", `teams/${pathSegment(team)}/projects`, body);
|
|
498
477
|
},
|
|
499
478
|
});
|
|
500
479
|
rl.registerAction("project.get", {
|
|
@@ -505,7 +484,7 @@ export default function asana(rl) {
|
|
|
505
484
|
},
|
|
506
485
|
async execute(input, ctx) {
|
|
507
486
|
const { projectId } = input;
|
|
508
|
-
return apiRequest(
|
|
487
|
+
return apiRequest(ctx, "GET", `projects/${pathSegment(projectId)}`);
|
|
509
488
|
},
|
|
510
489
|
});
|
|
511
490
|
rl.registerAction("project.list", {
|
|
@@ -544,7 +523,7 @@ export default function asana(rl) {
|
|
|
544
523
|
}
|
|
545
524
|
if (archived !== undefined)
|
|
546
525
|
qs.archived = archived;
|
|
547
|
-
return paginateAll(
|
|
526
|
+
return paginateAll(ctx, "projects", qs, limit);
|
|
548
527
|
},
|
|
549
528
|
});
|
|
550
529
|
rl.registerAction("project.update", {
|
|
@@ -571,7 +550,7 @@ export default function asana(rl) {
|
|
|
571
550
|
const body = { ...fields };
|
|
572
551
|
if (dueOn)
|
|
573
552
|
body.due_on = dueOn;
|
|
574
|
-
return apiRequest(
|
|
553
|
+
return apiRequest(ctx, "PUT", `projects/${pathSegment(projectId)}`, body);
|
|
575
554
|
},
|
|
576
555
|
});
|
|
577
556
|
rl.registerAction("project.delete", {
|
|
@@ -582,7 +561,7 @@ export default function asana(rl) {
|
|
|
582
561
|
},
|
|
583
562
|
async execute(input, ctx) {
|
|
584
563
|
const { projectId } = input;
|
|
585
|
-
await apiRequest(
|
|
564
|
+
await apiRequest(ctx, "DELETE", `projects/${pathSegment(projectId)}`);
|
|
586
565
|
return { success: true };
|
|
587
566
|
},
|
|
588
567
|
});
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { staticCredential } from "../../_shared/credentials.js";
|
|
2
|
+
/** An API key, sent as the autopilotapikey header to Autopilot's one origin. */
|
|
3
|
+
export const autopilotCredential = staticCredential({
|
|
4
|
+
id: "autopilot",
|
|
5
|
+
auth: { kind: "apiKey", header: "autopilotapikey" },
|
|
6
|
+
local: { secret: "apiKey" },
|
|
7
|
+
targets: {
|
|
8
|
+
api: {
|
|
9
|
+
baseUrl: "https://api2.autopilothq.com/v1/",
|
|
10
|
+
methods: ["GET", "POST", "DELETE"],
|
|
11
|
+
},
|
|
12
|
+
},
|
|
13
|
+
probe: {
|
|
14
|
+
target: "api",
|
|
15
|
+
path: "lists",
|
|
16
|
+
method: "GET",
|
|
17
|
+
acceptedStatuses: [200],
|
|
18
|
+
},
|
|
19
|
+
});
|
|
@@ -1,32 +1,23 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
1
|
+
import { credentialJson, credentialRequest, pathSegment, requestFailed, } from "../../_shared/credentials.js";
|
|
2
|
+
import { autopilotCredential } from "./credentials.js";
|
|
3
|
+
function apiRequest(ctx, method, path, body) {
|
|
4
|
+
return credentialJson(ctx, autopilotCredential, "autopilot", {
|
|
5
|
+
target: "api",
|
|
6
|
+
path,
|
|
4
7
|
method,
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
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(`Autopilot API error ${res.status}: ${text}`);
|
|
20
|
-
}
|
|
21
|
-
if (res.status === 204 || res.headers.get("content-length") === "0")
|
|
22
|
-
return { success: true };
|
|
23
|
-
return res.json();
|
|
8
|
+
...(body &&
|
|
9
|
+
Object.keys(body).length > 0 &&
|
|
10
|
+
method !== "GET" &&
|
|
11
|
+
method !== "DELETE"
|
|
12
|
+
? { json: body }
|
|
13
|
+
: {}),
|
|
14
|
+
});
|
|
24
15
|
}
|
|
25
|
-
async function paginateAll(
|
|
16
|
+
async function paginateAll(ctx, path, dataKey, limit) {
|
|
26
17
|
const results = [];
|
|
27
|
-
let
|
|
18
|
+
let currentPath = path;
|
|
28
19
|
while (true) {
|
|
29
|
-
const data = (await apiRequest(
|
|
20
|
+
const data = (await apiRequest(ctx, "GET", currentPath));
|
|
30
21
|
const items = data[dataKey] ?? [];
|
|
31
22
|
results.push(...items);
|
|
32
23
|
if (limit && results.length >= limit)
|
|
@@ -34,16 +25,14 @@ async function paginateAll(apiKey, endpoint, dataKey, limit) {
|
|
|
34
25
|
const bookmark = data.bookmark;
|
|
35
26
|
if (!bookmark)
|
|
36
27
|
break;
|
|
37
|
-
|
|
28
|
+
currentPath = `${path}/${pathSegment(bookmark)}`;
|
|
38
29
|
}
|
|
39
30
|
return results;
|
|
40
31
|
}
|
|
41
|
-
function getKey(ctx) {
|
|
42
|
-
return ctx.connection.config.apiKey;
|
|
43
|
-
}
|
|
44
32
|
export default function autopilot(rl) {
|
|
45
33
|
rl.setName("autopilot");
|
|
46
34
|
rl.setVersion("0.1.0");
|
|
35
|
+
rl.setCredential(autopilotCredential);
|
|
47
36
|
rl.setConnectionSchema({
|
|
48
37
|
apiKey: {
|
|
49
38
|
type: "string",
|
|
@@ -88,7 +77,7 @@ export default function autopilot(rl) {
|
|
|
88
77
|
contact._autopilot_list = listId;
|
|
89
78
|
if (newEmail)
|
|
90
79
|
contact._NewEmail = newEmail;
|
|
91
|
-
return apiRequest(
|
|
80
|
+
return apiRequest(ctx, "POST", "contact", { contact });
|
|
92
81
|
},
|
|
93
82
|
});
|
|
94
83
|
rl.registerAction("contact.get", {
|
|
@@ -103,7 +92,7 @@ export default function autopilot(rl) {
|
|
|
103
92
|
},
|
|
104
93
|
async execute(input, ctx) {
|
|
105
94
|
const { contactId } = input;
|
|
106
|
-
return apiRequest(
|
|
95
|
+
return apiRequest(ctx, "GET", `contact/${pathSegment(contactId)}`);
|
|
107
96
|
},
|
|
108
97
|
});
|
|
109
98
|
rl.registerAction("contact.list", {
|
|
@@ -118,7 +107,7 @@ export default function autopilot(rl) {
|
|
|
118
107
|
},
|
|
119
108
|
async execute(input, ctx) {
|
|
120
109
|
const { limit } = (input ?? {});
|
|
121
|
-
return paginateAll(
|
|
110
|
+
return paginateAll(ctx, "contacts", "contacts", limit);
|
|
122
111
|
},
|
|
123
112
|
});
|
|
124
113
|
rl.registerAction("contact.delete", {
|
|
@@ -129,7 +118,7 @@ export default function autopilot(rl) {
|
|
|
129
118
|
},
|
|
130
119
|
async execute(input, ctx) {
|
|
131
120
|
const { contactId } = input;
|
|
132
|
-
await apiRequest(
|
|
121
|
+
await apiRequest(ctx, "DELETE", `contact/${pathSegment(contactId)}`);
|
|
133
122
|
return { success: true };
|
|
134
123
|
},
|
|
135
124
|
});
|
|
@@ -147,7 +136,7 @@ export default function autopilot(rl) {
|
|
|
147
136
|
},
|
|
148
137
|
async execute(input, ctx) {
|
|
149
138
|
const { triggerId, contactId } = input;
|
|
150
|
-
await apiRequest(
|
|
139
|
+
await apiRequest(ctx, "POST", `trigger/${pathSegment(triggerId)}/contact/${pathSegment(contactId)}`);
|
|
151
140
|
return { success: true };
|
|
152
141
|
},
|
|
153
142
|
});
|
|
@@ -161,7 +150,7 @@ export default function autopilot(rl) {
|
|
|
161
150
|
},
|
|
162
151
|
async execute(input, ctx) {
|
|
163
152
|
const { listId, contactId } = input;
|
|
164
|
-
await apiRequest(
|
|
153
|
+
await apiRequest(ctx, "POST", `list/${pathSegment(listId)}/contact/${pathSegment(contactId)}`);
|
|
165
154
|
return { success: true };
|
|
166
155
|
},
|
|
167
156
|
});
|
|
@@ -174,7 +163,7 @@ export default function autopilot(rl) {
|
|
|
174
163
|
},
|
|
175
164
|
async execute(input, ctx) {
|
|
176
165
|
const { listId, contactId } = input;
|
|
177
|
-
await apiRequest(
|
|
166
|
+
await apiRequest(ctx, "DELETE", `list/${pathSegment(listId)}/contact/${pathSegment(contactId)}`);
|
|
178
167
|
return { success: true };
|
|
179
168
|
},
|
|
180
169
|
});
|
|
@@ -187,13 +176,17 @@ export default function autopilot(rl) {
|
|
|
187
176
|
},
|
|
188
177
|
async execute(input, ctx) {
|
|
189
178
|
const { listId, contactId } = input;
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
179
|
+
// Membership is the lookup's status: 404 means not in the list; any
|
|
180
|
+
// other failure is reported, not mistaken for an answer.
|
|
181
|
+
const response = await credentialRequest(ctx, autopilotCredential, {
|
|
182
|
+
target: "api",
|
|
183
|
+
path: `list/${pathSegment(listId)}/contact/${pathSegment(contactId)}`,
|
|
184
|
+
});
|
|
185
|
+
if (response.status === 404)
|
|
195
186
|
return { exists: false };
|
|
196
|
-
|
|
187
|
+
if (!response.ok)
|
|
188
|
+
throw requestFailed("autopilot", response.status);
|
|
189
|
+
return { exists: true };
|
|
197
190
|
},
|
|
198
191
|
});
|
|
199
192
|
rl.registerAction("contactList.list", {
|
|
@@ -209,7 +202,7 @@ export default function autopilot(rl) {
|
|
|
209
202
|
},
|
|
210
203
|
async execute(input, ctx) {
|
|
211
204
|
const { listId, limit } = input;
|
|
212
|
-
return paginateAll(
|
|
205
|
+
return paginateAll(ctx, `list/${pathSegment(listId)}/contacts`, "contacts", limit);
|
|
213
206
|
},
|
|
214
207
|
});
|
|
215
208
|
// ── List ────────────────────────────────────────────
|
|
@@ -221,7 +214,7 @@ export default function autopilot(rl) {
|
|
|
221
214
|
},
|
|
222
215
|
async execute(input, ctx) {
|
|
223
216
|
const { name } = input;
|
|
224
|
-
return apiRequest(
|
|
217
|
+
return apiRequest(ctx, "POST", "list", { name });
|
|
225
218
|
},
|
|
226
219
|
});
|
|
227
220
|
rl.registerAction("list.list", {
|
|
@@ -236,7 +229,7 @@ export default function autopilot(rl) {
|
|
|
236
229
|
},
|
|
237
230
|
async execute(input, ctx) {
|
|
238
231
|
const { limit } = (input ?? {});
|
|
239
|
-
const data = (await apiRequest(
|
|
232
|
+
const data = (await apiRequest(ctx, "GET", "lists"));
|
|
240
233
|
if (limit)
|
|
241
234
|
return data.lists.slice(0, limit);
|
|
242
235
|
return data.lists;
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { hostLabel, staticCredential } from "../../_shared/credentials.js";
|
|
2
|
+
/**
|
|
3
|
+
* The API key as the Basic username, with BambooHR's fixed "x" password,
|
|
4
|
+
* sent to the connection's own company path on the one API gateway host.
|
|
5
|
+
*/
|
|
6
|
+
export const bambooHrCredential = staticCredential({
|
|
7
|
+
id: "bambooHr",
|
|
8
|
+
auth: { kind: "basic" },
|
|
9
|
+
local: { username: "apiKey", password: { value: "x" } },
|
|
10
|
+
targets: (config) => ({
|
|
11
|
+
api: {
|
|
12
|
+
baseUrl: `https://api.bamboohr.com/api/gateway.php/${hostLabel(config.subdomain)}/v1/`,
|
|
13
|
+
methods: ["GET", "POST", "DELETE"],
|
|
14
|
+
},
|
|
15
|
+
}),
|
|
16
|
+
});
|