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,38 +1,24 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
for (const [k, v] of Object.entries(qs)) {
|
|
6
|
-
if (v !== undefined)
|
|
7
|
-
url.searchParams.set(k, String(v));
|
|
8
|
-
}
|
|
9
|
-
}
|
|
10
|
-
const opts = {
|
|
11
|
-
method,
|
|
12
|
-
headers: {
|
|
13
|
-
"Content-Type": "application/json",
|
|
14
|
-
Authorization: `Bearer ${apiKey}`,
|
|
15
|
-
},
|
|
16
|
-
};
|
|
17
|
-
if (body &&
|
|
1
|
+
import { credentialJson, pathSegment } from "../../_shared/credentials.js";
|
|
2
|
+
import { airtopCredential } from "./credentials.js";
|
|
3
|
+
function apiRequest(ctx, method, path, body, qs, target = "api") {
|
|
4
|
+
const json = body &&
|
|
18
5
|
Object.keys(body).length > 0 &&
|
|
19
6
|
method !== "GET" &&
|
|
20
|
-
method !== "DELETE"
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
return res.json();
|
|
7
|
+
method !== "DELETE"
|
|
8
|
+
? body
|
|
9
|
+
: undefined;
|
|
10
|
+
return credentialJson(ctx, airtopCredential, "airtop", {
|
|
11
|
+
target,
|
|
12
|
+
path,
|
|
13
|
+
method,
|
|
14
|
+
query: qs,
|
|
15
|
+
...(json !== undefined ? { json } : {}),
|
|
16
|
+
});
|
|
31
17
|
}
|
|
32
|
-
async function pollUntil(
|
|
18
|
+
async function pollUntil(ctx, path, statusField, targetStatuses, timeoutMs, intervalMs = 1000) {
|
|
33
19
|
const start = Date.now();
|
|
34
20
|
while (true) {
|
|
35
|
-
const data = (await apiRequest(
|
|
21
|
+
const data = (await apiRequest(ctx, "GET", path));
|
|
36
22
|
const nested = data.data;
|
|
37
23
|
const status = (nested?.[statusField] ?? data[statusField]);
|
|
38
24
|
if (targetStatuses.includes(status))
|
|
@@ -42,12 +28,10 @@ async function pollUntil(apiKey, endpoint, statusField, targetStatuses, timeoutM
|
|
|
42
28
|
await new Promise((r) => setTimeout(r, intervalMs));
|
|
43
29
|
}
|
|
44
30
|
}
|
|
45
|
-
function getKey(ctx) {
|
|
46
|
-
return ctx.connection.config.apiKey;
|
|
47
|
-
}
|
|
48
31
|
export default function airtop(rl) {
|
|
49
32
|
rl.setName("airtop");
|
|
50
33
|
rl.setVersion("0.1.0");
|
|
34
|
+
rl.setCredential(airtopCredential);
|
|
51
35
|
rl.setConnectionSchema({
|
|
52
36
|
apiKey: {
|
|
53
37
|
type: "string",
|
|
@@ -99,7 +83,6 @@ export default function airtop(rl) {
|
|
|
99
83
|
},
|
|
100
84
|
async execute(input, ctx) {
|
|
101
85
|
const { profileName, timeoutMinutes = 10, proxy, proxyCountry, record, solveCaptcha, saveProfileOnTermination, } = (input ?? {});
|
|
102
|
-
const apiKey = getKey(ctx);
|
|
103
86
|
let proxyConfig = false;
|
|
104
87
|
if (proxy) {
|
|
105
88
|
proxyConfig = proxyCountry
|
|
@@ -115,15 +98,15 @@ export default function airtop(rl) {
|
|
|
115
98
|
record: record ?? false,
|
|
116
99
|
},
|
|
117
100
|
};
|
|
118
|
-
const response = (await apiRequest(
|
|
101
|
+
const response = (await apiRequest(ctx, "POST", "sessions", body));
|
|
119
102
|
const sessionId = response.data
|
|
120
103
|
?.id;
|
|
121
104
|
if (!sessionId)
|
|
122
105
|
throw new Error("Failed to create session");
|
|
123
106
|
// Poll until running
|
|
124
|
-
await pollUntil(
|
|
107
|
+
await pollUntil(ctx, `sessions/${pathSegment(sessionId)}`, "status", ["running"], 5 * 60 * 1000);
|
|
125
108
|
if (saveProfileOnTermination && profileName) {
|
|
126
|
-
await apiRequest(
|
|
109
|
+
await apiRequest(ctx, "PUT", `sessions/${pathSegment(sessionId)}/save-profile-on-termination/${pathSegment(profileName)}`);
|
|
127
110
|
}
|
|
128
111
|
return { sessionId, ...response };
|
|
129
112
|
},
|
|
@@ -136,7 +119,7 @@ export default function airtop(rl) {
|
|
|
136
119
|
},
|
|
137
120
|
async execute(input, ctx) {
|
|
138
121
|
const { sessionId } = input;
|
|
139
|
-
await apiRequest(
|
|
122
|
+
await apiRequest(ctx, "DELETE", `sessions/${pathSegment(sessionId)}`);
|
|
140
123
|
return { success: true };
|
|
141
124
|
},
|
|
142
125
|
});
|
|
@@ -153,7 +136,7 @@ export default function airtop(rl) {
|
|
|
153
136
|
},
|
|
154
137
|
async execute(input, ctx) {
|
|
155
138
|
const { sessionId, profileName } = input;
|
|
156
|
-
const response = await apiRequest(
|
|
139
|
+
const response = await apiRequest(ctx, "PUT", `sessions/${pathSegment(sessionId)}/save-profile-on-termination/${pathSegment(profileName)}`);
|
|
157
140
|
return {
|
|
158
141
|
sessionId,
|
|
159
142
|
profileName,
|
|
@@ -176,10 +159,9 @@ export default function airtop(rl) {
|
|
|
176
159
|
const { sessionId, timeoutSeconds = 30 } = input;
|
|
177
160
|
// This relies on SSE which we can't do cleanly in a plugin action.
|
|
178
161
|
// Fall back to polling the files endpoint.
|
|
179
|
-
const apiKey = getKey(ctx);
|
|
180
162
|
const start = Date.now();
|
|
181
163
|
while (Date.now() - start < timeoutSeconds * 1000) {
|
|
182
|
-
const data = (await apiRequest(
|
|
164
|
+
const data = (await apiRequest(ctx, "GET", "files", undefined, {
|
|
183
165
|
sessionIds: sessionId,
|
|
184
166
|
}));
|
|
185
167
|
const files = data.data?.files ?? [];
|
|
@@ -219,7 +201,7 @@ export default function airtop(rl) {
|
|
|
219
201
|
body.url = url;
|
|
220
202
|
if (waitUntil)
|
|
221
203
|
body.waitUntil = waitUntil;
|
|
222
|
-
const response = (await apiRequest(
|
|
204
|
+
const response = (await apiRequest(ctx, "POST", `sessions/${pathSegment(sessionId)}/windows`, body));
|
|
223
205
|
const windowId = response.data
|
|
224
206
|
?.windowId;
|
|
225
207
|
return { sessionId, windowId, ...response };
|
|
@@ -234,7 +216,7 @@ export default function airtop(rl) {
|
|
|
234
216
|
},
|
|
235
217
|
async execute(input, ctx) {
|
|
236
218
|
const { sessionId, windowId } = input;
|
|
237
|
-
const response = await apiRequest(
|
|
219
|
+
const response = await apiRequest(ctx, "DELETE", `sessions/${pathSegment(sessionId)}/windows/${pathSegment(windowId)}`);
|
|
238
220
|
return { sessionId, windowId, ...response };
|
|
239
221
|
},
|
|
240
222
|
});
|
|
@@ -260,7 +242,7 @@ export default function airtop(rl) {
|
|
|
260
242
|
const body = { url };
|
|
261
243
|
if (waitUntil)
|
|
262
244
|
body.waitUntil = waitUntil;
|
|
263
|
-
return apiRequest(
|
|
245
|
+
return apiRequest(ctx, "POST", `sessions/${pathSegment(sessionId)}/windows/${pathSegment(windowId)}`, body);
|
|
264
246
|
},
|
|
265
247
|
});
|
|
266
248
|
rl.registerAction("window.list", {
|
|
@@ -271,7 +253,7 @@ export default function airtop(rl) {
|
|
|
271
253
|
},
|
|
272
254
|
async execute(input, ctx) {
|
|
273
255
|
const { sessionId } = input;
|
|
274
|
-
return apiRequest(
|
|
256
|
+
return apiRequest(ctx, "GET", `sessions/${pathSegment(sessionId)}/windows`);
|
|
275
257
|
},
|
|
276
258
|
});
|
|
277
259
|
rl.registerAction("window.getLiveView", {
|
|
@@ -305,7 +287,7 @@ export default function airtop(rl) {
|
|
|
305
287
|
qs.screenResolution = screenResolution;
|
|
306
288
|
if (disableResize)
|
|
307
289
|
qs.disableResize = true;
|
|
308
|
-
return apiRequest(
|
|
290
|
+
return apiRequest(ctx, "GET", `sessions/${pathSegment(sessionId)}/windows/${pathSegment(windowId)}`, undefined, qs);
|
|
309
291
|
},
|
|
310
292
|
});
|
|
311
293
|
rl.registerAction("window.takeScreenshot", {
|
|
@@ -317,7 +299,7 @@ export default function airtop(rl) {
|
|
|
317
299
|
},
|
|
318
300
|
async execute(input, ctx) {
|
|
319
301
|
const { sessionId, windowId } = input;
|
|
320
|
-
return apiRequest(
|
|
302
|
+
return apiRequest(ctx, "POST", `sessions/${pathSegment(sessionId)}/windows/${pathSegment(windowId)}/screenshot`);
|
|
321
303
|
},
|
|
322
304
|
});
|
|
323
305
|
// ── Extraction ──────────────────────────────────────
|
|
@@ -356,7 +338,7 @@ export default function airtop(rl) {
|
|
|
356
338
|
...(outputSchema ? { outputSchema } : {}),
|
|
357
339
|
},
|
|
358
340
|
};
|
|
359
|
-
return apiRequest(
|
|
341
|
+
return apiRequest(ctx, "POST", `sessions/${pathSegment(sessionId)}/windows/${pathSegment(windowId)}/page-query`, body);
|
|
360
342
|
},
|
|
361
343
|
});
|
|
362
344
|
rl.registerAction("extraction.scrape", {
|
|
@@ -368,7 +350,7 @@ export default function airtop(rl) {
|
|
|
368
350
|
},
|
|
369
351
|
async execute(input, ctx) {
|
|
370
352
|
const { sessionId, windowId } = input;
|
|
371
|
-
return apiRequest(
|
|
353
|
+
return apiRequest(ctx, "POST", `sessions/${pathSegment(sessionId)}/windows/${pathSegment(windowId)}/scrape-content`, {});
|
|
372
354
|
},
|
|
373
355
|
});
|
|
374
356
|
rl.registerAction("extraction.getPaginated", {
|
|
@@ -407,7 +389,7 @@ export default function airtop(rl) {
|
|
|
407
389
|
configuration.paginationMode = paginationMode;
|
|
408
390
|
if (interactionMode)
|
|
409
391
|
configuration.interactionMode = interactionMode;
|
|
410
|
-
return apiRequest(
|
|
392
|
+
return apiRequest(ctx, "POST", `sessions/${pathSegment(sessionId)}/windows/${pathSegment(windowId)}/paginated-extraction`, { prompt, configuration });
|
|
411
393
|
},
|
|
412
394
|
});
|
|
413
395
|
// ── Interaction ─────────────────────────────────────
|
|
@@ -430,7 +412,7 @@ export default function airtop(rl) {
|
|
|
430
412
|
},
|
|
431
413
|
async execute(input, ctx) {
|
|
432
414
|
const { sessionId, windowId, elementDescription, clickType = "click", } = input;
|
|
433
|
-
return apiRequest(
|
|
415
|
+
return apiRequest(ctx, "POST", `sessions/${pathSegment(sessionId)}/windows/${pathSegment(windowId)}/click`, {
|
|
434
416
|
elementDescription,
|
|
435
417
|
configuration: { clickType },
|
|
436
418
|
});
|
|
@@ -450,7 +432,7 @@ export default function airtop(rl) {
|
|
|
450
432
|
},
|
|
451
433
|
async execute(input, ctx) {
|
|
452
434
|
const { sessionId, windowId, elementDescription } = input;
|
|
453
|
-
return apiRequest(
|
|
435
|
+
return apiRequest(ctx, "POST", `sessions/${pathSegment(sessionId)}/windows/${pathSegment(windowId)}/hover`, {
|
|
454
436
|
elementDescription,
|
|
455
437
|
});
|
|
456
438
|
},
|
|
@@ -480,7 +462,7 @@ export default function airtop(rl) {
|
|
|
480
462
|
body.elementDescription = elementDescription;
|
|
481
463
|
if (pressEnterKey)
|
|
482
464
|
body.pressEnterKey = true;
|
|
483
|
-
return apiRequest(
|
|
465
|
+
return apiRequest(ctx, "POST", `sessions/${pathSegment(sessionId)}/windows/${pathSegment(windowId)}/type`, body);
|
|
484
466
|
},
|
|
485
467
|
});
|
|
486
468
|
rl.registerAction("interaction.fill", {
|
|
@@ -497,14 +479,13 @@ export default function airtop(rl) {
|
|
|
497
479
|
},
|
|
498
480
|
async execute(input, ctx) {
|
|
499
481
|
const { sessionId, windowId, formData } = input;
|
|
500
|
-
const apiKey = getKey(ctx);
|
|
501
482
|
// Start async automation
|
|
502
|
-
const asyncResponse = (await apiRequest(
|
|
483
|
+
const asyncResponse = (await apiRequest(ctx, "POST", `async/sessions/${pathSegment(sessionId)}/windows/${pathSegment(windowId)}/execute-automation`, { automationId: "auto", parameters: { customData: formData } }));
|
|
503
484
|
const reqId = asyncResponse.requestId;
|
|
504
485
|
if (!reqId)
|
|
505
486
|
throw new Error("No requestId received from automation");
|
|
506
487
|
// Poll until completed
|
|
507
|
-
const result = await pollUntil(
|
|
488
|
+
const result = await pollUntil(ctx, `requests/${pathSegment(reqId)}/status`, "status", ["completed", "error"], 5 * 60 * 1000);
|
|
508
489
|
return { sessionId, windowId, ...result };
|
|
509
490
|
},
|
|
510
491
|
});
|
|
@@ -546,7 +527,7 @@ export default function airtop(rl) {
|
|
|
546
527
|
body.scrollBy = scrollBy;
|
|
547
528
|
if (scrollWithin)
|
|
548
529
|
body.scrollWithin = scrollWithin;
|
|
549
|
-
return apiRequest(
|
|
530
|
+
return apiRequest(ctx, "POST", `sessions/${pathSegment(sessionId)}/windows/${pathSegment(windowId)}/scroll`, body);
|
|
550
531
|
},
|
|
551
532
|
});
|
|
552
533
|
// ── Agent ───────────────────────────────────────────
|
|
@@ -573,17 +554,14 @@ export default function airtop(rl) {
|
|
|
573
554
|
},
|
|
574
555
|
async execute(input, ctx) {
|
|
575
556
|
const { agentId, parameters, awaitExecution = true, timeoutSeconds = 600, } = input;
|
|
576
|
-
const apiKey = getKey(ctx);
|
|
577
|
-
const HOOKS_BASE = "https://api.airtop.ai/api/hooks";
|
|
578
557
|
// Get agent details for webhook ID
|
|
579
|
-
const agentDetails = (await apiRequest(
|
|
558
|
+
const agentDetails = (await apiRequest(ctx, "GET", `agents/${pathSegment(agentId)}`));
|
|
580
559
|
const data = agentDetails.data;
|
|
581
560
|
const webhookId = data?.webhookId;
|
|
582
561
|
if (!webhookId)
|
|
583
562
|
throw new Error("No webhookId found for agent");
|
|
584
|
-
// Invoke agent
|
|
585
|
-
const
|
|
586
|
-
const invocation = (await apiRequest(apiKey, "POST", invokeUrl, (parameters ?? {})));
|
|
563
|
+
// Invoke agent, on the hooks base of the same origin
|
|
564
|
+
const invocation = (await apiRequest(ctx, "POST", `agents/${pathSegment(agentId)}/webhooks/${pathSegment(webhookId)}`, (parameters ?? {}), undefined, "hooks"));
|
|
587
565
|
const invocationId = invocation.invocationId;
|
|
588
566
|
if (!invocationId)
|
|
589
567
|
throw new Error("No invocationId received");
|
|
@@ -593,7 +571,7 @@ export default function airtop(rl) {
|
|
|
593
571
|
// Poll for completion
|
|
594
572
|
const start = Date.now();
|
|
595
573
|
while (true) {
|
|
596
|
-
const status = (await apiRequest(
|
|
574
|
+
const status = (await apiRequest(ctx, "GET", `agents/${pathSegment(agentId)}/invocations/${pathSegment(invocationId)}`));
|
|
597
575
|
const invData = status.data;
|
|
598
576
|
const s = (invData?.status ?? status.status);
|
|
599
577
|
if (s === "completed" || s === "error") {
|
|
@@ -617,7 +595,7 @@ export default function airtop(rl) {
|
|
|
617
595
|
},
|
|
618
596
|
async execute(input, ctx) {
|
|
619
597
|
const { fileId } = input;
|
|
620
|
-
return apiRequest(
|
|
598
|
+
return apiRequest(ctx, "GET", `files/${pathSegment(fileId)}`);
|
|
621
599
|
},
|
|
622
600
|
});
|
|
623
601
|
rl.registerAction("file.list", {
|
|
@@ -642,7 +620,7 @@ export default function airtop(rl) {
|
|
|
642
620
|
qs.sessionIds = sessionIds;
|
|
643
621
|
if (limit)
|
|
644
622
|
qs.limit = limit;
|
|
645
|
-
return apiRequest(
|
|
623
|
+
return apiRequest(ctx, "GET", "files", undefined, qs);
|
|
646
624
|
},
|
|
647
625
|
});
|
|
648
626
|
rl.registerAction("file.delete", {
|
|
@@ -653,7 +631,7 @@ export default function airtop(rl) {
|
|
|
653
631
|
},
|
|
654
632
|
async execute(input, ctx) {
|
|
655
633
|
const { fileId } = input;
|
|
656
|
-
await apiRequest(
|
|
634
|
+
await apiRequest(ctx, "DELETE", `files/${pathSegment(fileId)}`);
|
|
657
635
|
return { success: true };
|
|
658
636
|
},
|
|
659
637
|
});
|
|
@@ -691,15 +669,14 @@ export default function airtop(rl) {
|
|
|
691
669
|
},
|
|
692
670
|
async execute(input, ctx) {
|
|
693
671
|
const { sessionId, windowId, fileName, url, fileType = "customer_upload", triggerFileInput: triggerInput = true, elementDescription, } = input;
|
|
694
|
-
|
|
695
|
-
// Fetch the file
|
|
672
|
+
// Fetch the file: a public, credential-free download of a caller URL
|
|
696
673
|
const fileRes = await fetch(url);
|
|
697
674
|
if (!fileRes.ok)
|
|
698
675
|
throw new Error(`Failed to fetch file from ${url}: ${fileRes.status}`);
|
|
699
676
|
const fileBuffer = await fileRes.arrayBuffer();
|
|
700
677
|
const base64 = Buffer.from(fileBuffer).toString("base64");
|
|
701
678
|
// Create file
|
|
702
|
-
const createResponse = (await apiRequest(
|
|
679
|
+
const createResponse = (await apiRequest(ctx, "POST", "files", {
|
|
703
680
|
fileName,
|
|
704
681
|
fileType,
|
|
705
682
|
content: base64,
|
|
@@ -707,7 +684,7 @@ export default function airtop(rl) {
|
|
|
707
684
|
const fileId = createResponse.data
|
|
708
685
|
?.id;
|
|
709
686
|
// Push to session
|
|
710
|
-
await apiRequest(
|
|
687
|
+
await apiRequest(ctx, "POST", `sessions/${pathSegment(sessionId)}/files`, {
|
|
711
688
|
fileId,
|
|
712
689
|
});
|
|
713
690
|
// Trigger file input if needed
|
|
@@ -715,7 +692,7 @@ export default function airtop(rl) {
|
|
|
715
692
|
const body = { fileId };
|
|
716
693
|
if (elementDescription)
|
|
717
694
|
body.elementDescription = elementDescription;
|
|
718
|
-
await apiRequest(
|
|
695
|
+
await apiRequest(ctx, "POST", `sessions/${pathSegment(sessionId)}/windows/${pathSegment(windowId)}/trigger-file-input`, body);
|
|
719
696
|
}
|
|
720
697
|
return { sessionId, windowId, fileId, success: true };
|
|
721
698
|
},
|
|
@@ -739,16 +716,15 @@ export default function airtop(rl) {
|
|
|
739
716
|
},
|
|
740
717
|
async execute(input, ctx) {
|
|
741
718
|
const { sessionId, windowId, fileId, elementDescription } = input;
|
|
742
|
-
const apiKey = getKey(ctx);
|
|
743
719
|
// Push to session
|
|
744
|
-
await apiRequest(
|
|
720
|
+
await apiRequest(ctx, "POST", `sessions/${pathSegment(sessionId)}/files`, {
|
|
745
721
|
fileId,
|
|
746
722
|
});
|
|
747
723
|
// Trigger file input
|
|
748
724
|
const body = { fileId };
|
|
749
725
|
if (elementDescription)
|
|
750
726
|
body.elementDescription = elementDescription;
|
|
751
|
-
await apiRequest(
|
|
727
|
+
await apiRequest(ctx, "POST", `sessions/${pathSegment(sessionId)}/windows/${pathSegment(windowId)}/trigger-file-input`, body);
|
|
752
728
|
return { sessionId, windowId, fileId, success: true };
|
|
753
729
|
},
|
|
754
730
|
});
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { staticCredential } from "../../_shared/credentials.js";
|
|
2
|
+
/** An API key, sent as the X-API-KEY header to APITemplate.io's one origin. */
|
|
3
|
+
export const apiTemplateIoCredential = staticCredential({
|
|
4
|
+
id: "apiTemplateIo",
|
|
5
|
+
auth: { kind: "apiKey", header: "X-API-KEY" },
|
|
6
|
+
local: { secret: "apiKey" },
|
|
7
|
+
targets: {
|
|
8
|
+
api: {
|
|
9
|
+
baseUrl: "https://api.apitemplate.io/v1/",
|
|
10
|
+
methods: ["GET", "POST"],
|
|
11
|
+
},
|
|
12
|
+
},
|
|
13
|
+
probe: {
|
|
14
|
+
target: "api",
|
|
15
|
+
path: "account-information",
|
|
16
|
+
method: "GET",
|
|
17
|
+
acceptedStatuses: [200],
|
|
18
|
+
},
|
|
19
|
+
});
|
|
@@ -1,35 +1,18 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
url.searchParams.set(k, String(v));
|
|
8
|
-
}
|
|
9
|
-
}
|
|
10
|
-
const opts = {
|
|
1
|
+
import { credentialJson } from "../../_shared/credentials.js";
|
|
2
|
+
import { apiTemplateIoCredential } from "./credentials.js";
|
|
3
|
+
function apiRequest(ctx, method, path, query, body) {
|
|
4
|
+
return credentialJson(ctx, apiTemplateIoCredential, "apiTemplateIo", {
|
|
5
|
+
target: "api",
|
|
6
|
+
path,
|
|
11
7
|
method,
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
},
|
|
16
|
-
};
|
|
17
|
-
if (body && Object.keys(body).length > 0) {
|
|
18
|
-
opts.body = JSON.stringify(body);
|
|
19
|
-
}
|
|
20
|
-
const res = await fetch(url.toString(), opts);
|
|
21
|
-
if (!res.ok) {
|
|
22
|
-
const text = await res.text();
|
|
23
|
-
throw new Error(`APITemplate.io error ${res.status}: ${text}`);
|
|
24
|
-
}
|
|
25
|
-
return res.json();
|
|
26
|
-
}
|
|
27
|
-
function getKey(ctx) {
|
|
28
|
-
return ctx.connection.config.apiKey;
|
|
8
|
+
query,
|
|
9
|
+
...(body && Object.keys(body).length > 0 ? { json: body } : {}),
|
|
10
|
+
});
|
|
29
11
|
}
|
|
30
12
|
export default function apiTemplateIo(rl) {
|
|
31
13
|
rl.setName("apiTemplateIo");
|
|
32
14
|
rl.setVersion("0.1.0");
|
|
15
|
+
rl.setCredential(apiTemplateIoCredential);
|
|
33
16
|
rl.setConnectionSchema({
|
|
34
17
|
apiKey: {
|
|
35
18
|
type: "string",
|
|
@@ -42,7 +25,7 @@ export default function apiTemplateIo(rl) {
|
|
|
42
25
|
access: "read",
|
|
43
26
|
description: "Get account information",
|
|
44
27
|
async execute(_input, ctx) {
|
|
45
|
-
return apiRequest(
|
|
28
|
+
return apiRequest(ctx, "GET", "account-information");
|
|
46
29
|
},
|
|
47
30
|
});
|
|
48
31
|
rl.registerAction("template.list", {
|
|
@@ -57,7 +40,7 @@ export default function apiTemplateIo(rl) {
|
|
|
57
40
|
},
|
|
58
41
|
async execute(input, ctx) {
|
|
59
42
|
const { format } = (input ?? {});
|
|
60
|
-
const templates = (await apiRequest(
|
|
43
|
+
const templates = (await apiRequest(ctx, "GET", "list-templates"));
|
|
61
44
|
if (format) {
|
|
62
45
|
return templates.filter((t) => t.format === format.toUpperCase());
|
|
63
46
|
}
|
|
@@ -84,7 +67,7 @@ export default function apiTemplateIo(rl) {
|
|
|
84
67
|
const body = {};
|
|
85
68
|
if (overrides)
|
|
86
69
|
body.overrides = overrides;
|
|
87
|
-
return apiRequest(
|
|
70
|
+
return apiRequest(ctx, "POST", "create", { template_id: templateId }, body);
|
|
88
71
|
},
|
|
89
72
|
});
|
|
90
73
|
rl.registerAction("pdf.create", {
|
|
@@ -104,7 +87,7 @@ export default function apiTemplateIo(rl) {
|
|
|
104
87
|
},
|
|
105
88
|
async execute(input, ctx) {
|
|
106
89
|
const { templateId, properties } = input;
|
|
107
|
-
return apiRequest(
|
|
90
|
+
return apiRequest(ctx, "POST", "create", { template_id: templateId }, properties);
|
|
108
91
|
},
|
|
109
92
|
});
|
|
110
93
|
}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { staticCredential } from "../../_shared/credentials.js";
|
|
2
|
+
/** A personal access token, sent as a bearer to Asana's one API origin. */
|
|
3
|
+
export const asanaCredential = staticCredential({
|
|
4
|
+
id: "asana",
|
|
5
|
+
auth: { kind: "bearer" },
|
|
6
|
+
local: { secret: "token" },
|
|
7
|
+
targets: {
|
|
8
|
+
api: {
|
|
9
|
+
baseUrl: "https://app.asana.com/api/1.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
|
+
});
|