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,30 +1,18 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
url.searchParams.set(k, String(v));
|
|
8
|
-
}
|
|
9
|
-
}
|
|
10
|
-
const init = {
|
|
1
|
+
import { credentialJson } from "../../_shared/credentials.js";
|
|
2
|
+
import { phantombusterCredential } from "./credentials.js";
|
|
3
|
+
function api(ctx, method, path, body, qs) {
|
|
4
|
+
return credentialJson(ctx, phantombusterCredential, "phantombuster", {
|
|
5
|
+
target: "api",
|
|
6
|
+
path,
|
|
11
7
|
method,
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
},
|
|
16
|
-
};
|
|
17
|
-
if (body && Object.keys(body).length > 0)
|
|
18
|
-
init.body = JSON.stringify(body);
|
|
19
|
-
const res = await fetch(url.toString(), init);
|
|
20
|
-
if (!res.ok)
|
|
21
|
-
throw new Error(`Phantombuster error ${res.status}: ${await res.text()}`);
|
|
22
|
-
const text = await res.text();
|
|
23
|
-
return text ? JSON.parse(text) : {};
|
|
8
|
+
query: qs,
|
|
9
|
+
...(body && Object.keys(body).length > 0 ? { json: body } : {}),
|
|
10
|
+
});
|
|
24
11
|
}
|
|
25
12
|
export default function phantombuster(rl) {
|
|
26
13
|
rl.setName("phantombuster");
|
|
27
14
|
rl.setVersion("0.1.0");
|
|
15
|
+
rl.setCredential(phantombusterCredential);
|
|
28
16
|
rl.setConnectionSchema({
|
|
29
17
|
apiKey: {
|
|
30
18
|
type: "string",
|
|
@@ -33,14 +21,13 @@ export default function phantombuster(rl) {
|
|
|
33
21
|
env: "PHANTOMBUSTER_API_KEY",
|
|
34
22
|
},
|
|
35
23
|
});
|
|
36
|
-
const key = (ctx) => ctx.connection.config.apiKey;
|
|
37
24
|
rl.registerAction("agent.delete", {
|
|
38
25
|
access: "write",
|
|
39
26
|
description: "Delete an agent",
|
|
40
27
|
inputSchema: { agentId: { type: "string", required: true } },
|
|
41
28
|
async execute(input, ctx) {
|
|
42
29
|
const { agentId } = input;
|
|
43
|
-
await
|
|
30
|
+
await api(ctx, "POST", "agents/delete", { id: agentId });
|
|
44
31
|
return { success: true };
|
|
45
32
|
},
|
|
46
33
|
});
|
|
@@ -50,9 +37,7 @@ export default function phantombuster(rl) {
|
|
|
50
37
|
inputSchema: { agentId: { type: "string", required: true } },
|
|
51
38
|
async execute(input, ctx) {
|
|
52
39
|
const { agentId } = input;
|
|
53
|
-
return
|
|
54
|
-
id: agentId,
|
|
55
|
-
});
|
|
40
|
+
return api(ctx, "GET", "agents/fetch", undefined, { id: agentId });
|
|
56
41
|
},
|
|
57
42
|
});
|
|
58
43
|
rl.registerAction("agent.getOutput", {
|
|
@@ -68,9 +53,11 @@ export default function phantombuster(rl) {
|
|
|
68
53
|
},
|
|
69
54
|
async execute(input, ctx) {
|
|
70
55
|
const p = input;
|
|
71
|
-
const data = (await
|
|
56
|
+
const data = (await api(ctx, "GET", "agents/fetch-output", undefined, {
|
|
57
|
+
id: p.agentId,
|
|
58
|
+
}));
|
|
72
59
|
if (p.resolveData) {
|
|
73
|
-
const result = (await
|
|
60
|
+
const result = (await api(ctx, "GET", "containers/fetch-result-object", undefined, { id: data.containerId }));
|
|
74
61
|
if (!result.resultObject)
|
|
75
62
|
return {};
|
|
76
63
|
return JSON.parse(result.resultObject);
|
|
@@ -83,7 +70,7 @@ export default function phantombuster(rl) {
|
|
|
83
70
|
description: "List all agents",
|
|
84
71
|
inputSchema: { limit: { type: "number", required: false } },
|
|
85
72
|
async execute(input, ctx) {
|
|
86
|
-
const agents = (await
|
|
73
|
+
const agents = (await api(ctx, "GET", "agents/fetch-all"));
|
|
87
74
|
const limit = input?.limit;
|
|
88
75
|
if (limit)
|
|
89
76
|
return agents.slice(0, limit);
|
|
@@ -118,9 +105,9 @@ export default function phantombuster(rl) {
|
|
|
118
105
|
body.arguments = p.arguments;
|
|
119
106
|
if (p.bonusArgument)
|
|
120
107
|
body.bonusArgument = p.bonusArgument;
|
|
121
|
-
const data = (await
|
|
108
|
+
const data = (await api(ctx, "POST", "agents/launch", body));
|
|
122
109
|
if (p.resolveData) {
|
|
123
|
-
return
|
|
110
|
+
return api(ctx, "GET", "containers/fetch", undefined, {
|
|
124
111
|
id: data.containerId,
|
|
125
112
|
});
|
|
126
113
|
}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { staticCredential } from "../../_shared/credentials.js";
|
|
2
|
+
/**
|
|
3
|
+
* An OAuth2 access token, sent as a bearer to the Hue remote API. The
|
|
4
|
+
* bridge username is public config and rides in the request path beneath
|
|
5
|
+
* the target, never in the declaration.
|
|
6
|
+
*/
|
|
7
|
+
export const philipsHueCredential = staticCredential({
|
|
8
|
+
id: "philipsHue",
|
|
9
|
+
auth: { kind: "bearer" },
|
|
10
|
+
local: { secret: "accessToken" },
|
|
11
|
+
targets: {
|
|
12
|
+
api: {
|
|
13
|
+
baseUrl: "https://api.meethue.com/route/",
|
|
14
|
+
methods: ["GET", "PUT", "DELETE"],
|
|
15
|
+
},
|
|
16
|
+
},
|
|
17
|
+
});
|
|
@@ -1,22 +1,17 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
1
|
+
import { credentialJson, pathSegment } from "../../_shared/credentials.js";
|
|
2
|
+
import { philipsHueCredential } from "./credentials.js";
|
|
3
|
+
function apiRequest(ctx, method, path, body) {
|
|
4
|
+
return credentialJson(ctx, philipsHueCredential, "philipsHue", {
|
|
5
|
+
target: "api",
|
|
6
|
+
path,
|
|
4
7
|
method,
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
"Content-Type": "application/json",
|
|
8
|
-
},
|
|
9
|
-
};
|
|
10
|
-
if (body && Object.keys(body).length > 0)
|
|
11
|
-
init.body = JSON.stringify(body);
|
|
12
|
-
const res = await fetch(`${BASE}${path}`, init);
|
|
13
|
-
if (!res.ok)
|
|
14
|
-
throw new Error(`Philips Hue error ${res.status}: ${await res.text()}`);
|
|
15
|
-
return res.json();
|
|
8
|
+
...(body && Object.keys(body).length > 0 ? { json: body } : {}),
|
|
9
|
+
});
|
|
16
10
|
}
|
|
17
11
|
export default function philipsHue(rl) {
|
|
18
12
|
rl.setName("philipsHue");
|
|
19
13
|
rl.setVersion("0.1.0");
|
|
14
|
+
rl.setCredential(philipsHueCredential);
|
|
20
15
|
rl.setConnectionSchema({
|
|
21
16
|
accessToken: {
|
|
22
17
|
type: "string",
|
|
@@ -31,11 +26,8 @@ export default function philipsHue(rl) {
|
|
|
31
26
|
env: "PHILIPS_HUE_USERNAME",
|
|
32
27
|
},
|
|
33
28
|
});
|
|
34
|
-
function
|
|
35
|
-
return
|
|
36
|
-
token: ctx.connection.config.accessToken,
|
|
37
|
-
user: ctx.connection.config.username,
|
|
38
|
-
};
|
|
29
|
+
function user(ctx) {
|
|
30
|
+
return pathSegment(ctx.connection.config.username);
|
|
39
31
|
}
|
|
40
32
|
rl.registerAction("light.get", {
|
|
41
33
|
access: "read",
|
|
@@ -43,8 +35,7 @@ export default function philipsHue(rl) {
|
|
|
43
35
|
inputSchema: { lightId: { type: "string", required: true } },
|
|
44
36
|
async execute(input, ctx) {
|
|
45
37
|
const { lightId } = input;
|
|
46
|
-
|
|
47
|
-
return apiRequest(c.token, "GET", `/api/${c.user}/lights/${lightId}`);
|
|
38
|
+
return apiRequest(ctx, "GET", `api/${user(ctx)}/lights/${pathSegment(lightId)}`);
|
|
48
39
|
},
|
|
49
40
|
});
|
|
50
41
|
rl.registerAction("light.list", {
|
|
@@ -52,8 +43,7 @@ export default function philipsHue(rl) {
|
|
|
52
43
|
description: "List all lights",
|
|
53
44
|
inputSchema: { limit: { type: "number", required: false } },
|
|
54
45
|
async execute(input, ctx) {
|
|
55
|
-
const
|
|
56
|
-
const data = (await apiRequest(c.token, "GET", `/api/${c.user}/lights`));
|
|
46
|
+
const data = (await apiRequest(ctx, "GET", `api/${user(ctx)}/lights`));
|
|
57
47
|
const lights = Object.entries(data).map(([id, v]) => ({
|
|
58
48
|
id,
|
|
59
49
|
...v,
|
|
@@ -113,7 +103,6 @@ export default function philipsHue(rl) {
|
|
|
113
103
|
},
|
|
114
104
|
async execute(input, ctx) {
|
|
115
105
|
const p = input;
|
|
116
|
-
const c = conn(ctx);
|
|
117
106
|
const body = { on: p.on };
|
|
118
107
|
if (p.bri !== undefined)
|
|
119
108
|
body.bri = p.bri;
|
|
@@ -131,7 +120,7 @@ export default function philipsHue(rl) {
|
|
|
131
120
|
body.alert = p.alert;
|
|
132
121
|
if (p.effect)
|
|
133
122
|
body.effect = p.effect;
|
|
134
|
-
const data = (await apiRequest(
|
|
123
|
+
const data = (await apiRequest(ctx, "PUT", `api/${user(ctx)}/lights/${pathSegment(p.lightId)}/state`, body));
|
|
135
124
|
const result = {};
|
|
136
125
|
for (const item of data) {
|
|
137
126
|
if (item.success)
|
|
@@ -146,8 +135,7 @@ export default function philipsHue(rl) {
|
|
|
146
135
|
inputSchema: { lightId: { type: "string", required: true } },
|
|
147
136
|
async execute(input, ctx) {
|
|
148
137
|
const { lightId } = input;
|
|
149
|
-
|
|
150
|
-
return apiRequest(c.token, "DELETE", `/api/${c.user}/lights/${lightId}`);
|
|
138
|
+
return apiRequest(ctx, "DELETE", `api/${user(ctx)}/lights/${pathSegment(lightId)}`);
|
|
151
139
|
},
|
|
152
140
|
});
|
|
153
141
|
}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { staticCredential } from "../../_shared/credentials.js";
|
|
2
|
+
/**
|
|
3
|
+
* An API token, appended by the transport as the api_token query parameter
|
|
4
|
+
* on Pipedrive's v2 and v1 API bases.
|
|
5
|
+
*/
|
|
6
|
+
export const pipedriveCredential = staticCredential({
|
|
7
|
+
id: "pipedrive",
|
|
8
|
+
auth: { kind: "queryKey", param: "api_token" },
|
|
9
|
+
local: { secret: "apiToken" },
|
|
10
|
+
targets: {
|
|
11
|
+
v2: {
|
|
12
|
+
baseUrl: "https://api.pipedrive.com/api/v2/",
|
|
13
|
+
methods: ["GET", "POST", "PATCH", "DELETE"],
|
|
14
|
+
},
|
|
15
|
+
v1: {
|
|
16
|
+
baseUrl: "https://api.pipedrive.com/v1/",
|
|
17
|
+
methods: ["GET", "PUT", "DELETE"],
|
|
18
|
+
},
|
|
19
|
+
},
|
|
20
|
+
probe: {
|
|
21
|
+
target: "v1",
|
|
22
|
+
path: "users/me",
|
|
23
|
+
method: "GET",
|
|
24
|
+
acceptedStatuses: [200],
|
|
25
|
+
},
|
|
26
|
+
});
|
|
@@ -1,51 +1,32 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
function
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
const base = version === "v1" ? V1 : V2;
|
|
8
|
-
const url = new URL(`${base}${endpoint}`);
|
|
9
|
-
url.searchParams.set("api_token", token);
|
|
10
|
-
if (qs) {
|
|
11
|
-
for (const [k, v] of Object.entries(qs)) {
|
|
12
|
-
if (v !== undefined && v !== null)
|
|
13
|
-
url.searchParams.set(k, String(v));
|
|
14
|
-
}
|
|
15
|
-
}
|
|
16
|
-
const init = {
|
|
1
|
+
import { answerFailed, credentialJson, pathSegment, } from "../../_shared/credentials.js";
|
|
2
|
+
import { pipedriveCredential } from "./credentials.js";
|
|
3
|
+
async function api(ctx, method, path, body, qs, version = "v2") {
|
|
4
|
+
const json = (await credentialJson(ctx, pipedriveCredential, "pipedrive", {
|
|
5
|
+
target: version,
|
|
6
|
+
path,
|
|
17
7
|
method,
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
init.body = JSON.stringify(body);
|
|
22
|
-
const res = await fetch(url.toString(), init);
|
|
23
|
-
if (!res.ok)
|
|
24
|
-
throw new Error(`Pipedrive error ${res.status}: ${await res.text()}`);
|
|
25
|
-
const json = (await res.json());
|
|
8
|
+
query: qs,
|
|
9
|
+
...(body && Object.keys(body).length > 0 ? { json: body } : {}),
|
|
10
|
+
}));
|
|
26
11
|
if (json.success === false)
|
|
27
|
-
throw
|
|
12
|
+
throw answerFailed("pipedrive", {
|
|
13
|
+
code: json.errorCode,
|
|
14
|
+
message: json.error,
|
|
15
|
+
});
|
|
28
16
|
return json.data ?? json;
|
|
29
17
|
}
|
|
30
|
-
async function paginate(
|
|
18
|
+
async function paginate(ctx, path, qs = {}) {
|
|
31
19
|
const results = [];
|
|
32
20
|
qs.limit = 500;
|
|
33
21
|
let cursor;
|
|
34
22
|
do {
|
|
35
23
|
if (cursor)
|
|
36
24
|
qs.cursor = cursor;
|
|
37
|
-
const
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
}
|
|
43
|
-
const res = await fetch(url.toString(), {
|
|
44
|
-
headers: { Accept: "application/json" },
|
|
45
|
-
});
|
|
46
|
-
if (!res.ok)
|
|
47
|
-
throw new Error(`Pipedrive error ${res.status}: ${await res.text()}`);
|
|
48
|
-
const json = (await res.json());
|
|
25
|
+
const json = (await credentialJson(ctx, pipedriveCredential, "pipedrive", {
|
|
26
|
+
target: "v2",
|
|
27
|
+
path,
|
|
28
|
+
query: qs,
|
|
29
|
+
}));
|
|
49
30
|
const data = json.data;
|
|
50
31
|
if (Array.isArray(data))
|
|
51
32
|
results.push(...data);
|
|
@@ -57,8 +38,7 @@ async function paginate(token, endpoint, qs = {}) {
|
|
|
57
38
|
return results;
|
|
58
39
|
}
|
|
59
40
|
function registerCrud(rl, resource, endpoint, opts) {
|
|
60
|
-
const
|
|
61
|
-
const updateMethod = opts?.updateMethod ?? "PATCH";
|
|
41
|
+
const updateMethod = (opts?.updateMethod ?? "PATCH");
|
|
62
42
|
rl.registerAction(`${resource}.create`, {
|
|
63
43
|
access: "write",
|
|
64
44
|
description: `Create a ${resource}`,
|
|
@@ -71,8 +51,7 @@ function registerCrud(rl, resource, endpoint, opts) {
|
|
|
71
51
|
...(opts?.extraCreate ?? {}),
|
|
72
52
|
},
|
|
73
53
|
async execute(input, ctx) {
|
|
74
|
-
|
|
75
|
-
return api(t, "POST", endpoint, input.data);
|
|
54
|
+
return api(ctx, "POST", endpoint, input.data);
|
|
76
55
|
},
|
|
77
56
|
});
|
|
78
57
|
rl.registerAction(`${resource}.get`, {
|
|
@@ -80,8 +59,7 @@ function registerCrud(rl, resource, endpoint, opts) {
|
|
|
80
59
|
description: `Get a ${resource}`,
|
|
81
60
|
inputSchema: { id: { type: "number", required: true } },
|
|
82
61
|
async execute(input, ctx) {
|
|
83
|
-
|
|
84
|
-
return api(t, "GET", `${endpoint}/${input.id}`);
|
|
62
|
+
return api(ctx, "GET", `${endpoint}/${pathSegment(input.id)}`);
|
|
85
63
|
},
|
|
86
64
|
});
|
|
87
65
|
rl.registerAction(`${resource}.list`, {
|
|
@@ -92,16 +70,15 @@ function registerCrud(rl, resource, endpoint, opts) {
|
|
|
92
70
|
filterId: { type: "number", required: false },
|
|
93
71
|
},
|
|
94
72
|
async execute(input, ctx) {
|
|
95
|
-
const t = getConn(ctx);
|
|
96
73
|
const p = (input ?? {});
|
|
97
74
|
const qs = {};
|
|
98
75
|
if (p.filterId)
|
|
99
76
|
qs.filter_id = p.filterId;
|
|
100
77
|
if (p.limit) {
|
|
101
78
|
qs.limit = p.limit;
|
|
102
|
-
return api(
|
|
79
|
+
return api(ctx, "GET", endpoint, undefined, qs);
|
|
103
80
|
}
|
|
104
|
-
return paginate(
|
|
81
|
+
return paginate(ctx, endpoint, qs);
|
|
105
82
|
},
|
|
106
83
|
});
|
|
107
84
|
rl.registerAction(`${resource}.update`, {
|
|
@@ -113,9 +90,8 @@ function registerCrud(rl, resource, endpoint, opts) {
|
|
|
113
90
|
...(opts?.extraUpdate ?? {}),
|
|
114
91
|
},
|
|
115
92
|
async execute(input, ctx) {
|
|
116
|
-
const t = getConn(ctx);
|
|
117
93
|
const p = input;
|
|
118
|
-
return api(
|
|
94
|
+
return api(ctx, updateMethod, `${endpoint}/${pathSegment(p.id)}`, p.data);
|
|
119
95
|
},
|
|
120
96
|
});
|
|
121
97
|
rl.registerAction(`${resource}.delete`, {
|
|
@@ -123,8 +99,7 @@ function registerCrud(rl, resource, endpoint, opts) {
|
|
|
123
99
|
description: `Delete a ${resource}`,
|
|
124
100
|
inputSchema: { id: { type: "number", required: true } },
|
|
125
101
|
async execute(input, ctx) {
|
|
126
|
-
|
|
127
|
-
await api(t, "DELETE", `${endpoint}/${input.id}`);
|
|
102
|
+
await api(ctx, "DELETE", `${endpoint}/${pathSegment(input.id)}`);
|
|
128
103
|
return { success: true };
|
|
129
104
|
},
|
|
130
105
|
});
|
|
@@ -143,7 +118,6 @@ function registerCrud(rl, resource, endpoint, opts) {
|
|
|
143
118
|
},
|
|
144
119
|
},
|
|
145
120
|
async execute(input, ctx) {
|
|
146
|
-
const t = getConn(ctx);
|
|
147
121
|
const p = input;
|
|
148
122
|
const qs = { term: p.term };
|
|
149
123
|
if (p.exactMatch)
|
|
@@ -153,7 +127,7 @@ function registerCrud(rl, resource, endpoint, opts) {
|
|
|
153
127
|
if (p.fields)
|
|
154
128
|
qs.fields = p.fields;
|
|
155
129
|
// Search uses v1 API
|
|
156
|
-
const res = (await api(
|
|
130
|
+
const res = (await api(ctx, "GET", `${endpoint}/search`, undefined, qs, "v1"));
|
|
157
131
|
if (Array.isArray(res))
|
|
158
132
|
return res.map((r) => r.item ?? r);
|
|
159
133
|
return res;
|
|
@@ -166,8 +140,7 @@ function registerCrud(rl, resource, endpoint, opts) {
|
|
|
166
140
|
description: `Duplicate a ${resource}`,
|
|
167
141
|
inputSchema: { id: { type: "number", required: true } },
|
|
168
142
|
async execute(input, ctx) {
|
|
169
|
-
|
|
170
|
-
return api(t, "POST", `${endpoint}/${input.id}/duplicate`);
|
|
143
|
+
return api(ctx, "POST", `${endpoint}/${pathSegment(input.id)}/duplicate`);
|
|
171
144
|
},
|
|
172
145
|
});
|
|
173
146
|
}
|
|
@@ -175,6 +148,7 @@ function registerCrud(rl, resource, endpoint, opts) {
|
|
|
175
148
|
export default function pipedrive(rl) {
|
|
176
149
|
rl.setName("pipedrive");
|
|
177
150
|
rl.setVersion("0.1.0");
|
|
151
|
+
rl.setCredential(pipedriveCredential);
|
|
178
152
|
rl.setConnectionSchema({
|
|
179
153
|
apiToken: {
|
|
180
154
|
type: "string",
|
|
@@ -184,9 +158,9 @@ export default function pipedrive(rl) {
|
|
|
184
158
|
},
|
|
185
159
|
});
|
|
186
160
|
// ── Activity ────────────────────────────────────────
|
|
187
|
-
registerCrud(rl, "activity", "
|
|
161
|
+
registerCrud(rl, "activity", "activities");
|
|
188
162
|
// ── Deal ────────────────────────────────────────────
|
|
189
|
-
registerCrud(rl, "deal", "
|
|
163
|
+
registerCrud(rl, "deal", "deals", { hasSearch: true, hasDuplicate: true });
|
|
190
164
|
// ── Deal Product ────────────────────────────────────
|
|
191
165
|
rl.registerAction("dealProduct.add", {
|
|
192
166
|
access: "write",
|
|
@@ -205,9 +179,8 @@ export default function pipedrive(rl) {
|
|
|
205
179
|
comments: { type: "string", required: false },
|
|
206
180
|
},
|
|
207
181
|
async execute(input, ctx) {
|
|
208
|
-
const t = getConn(ctx);
|
|
209
182
|
const { dealId, ...body } = input;
|
|
210
|
-
return api(
|
|
183
|
+
return api(ctx, "POST", `deals/${pathSegment(dealId)}/products`, {
|
|
211
184
|
product_id: body.productId,
|
|
212
185
|
item_price: body.itemPrice,
|
|
213
186
|
quantity: body.quantity,
|
|
@@ -225,12 +198,11 @@ export default function pipedrive(rl) {
|
|
|
225
198
|
limit: { type: "number", required: false },
|
|
226
199
|
},
|
|
227
200
|
async execute(input, ctx) {
|
|
228
|
-
const t = getConn(ctx);
|
|
229
201
|
const p = input;
|
|
230
202
|
const qs = {};
|
|
231
203
|
if (p.limit)
|
|
232
204
|
qs.limit = p.limit;
|
|
233
|
-
return api(
|
|
205
|
+
return api(ctx, "GET", `deals/${pathSegment(p.dealId)}/products`, undefined, qs);
|
|
234
206
|
},
|
|
235
207
|
});
|
|
236
208
|
rl.registerAction("dealProduct.update", {
|
|
@@ -242,9 +214,8 @@ export default function pipedrive(rl) {
|
|
|
242
214
|
data: { type: "object", required: true },
|
|
243
215
|
},
|
|
244
216
|
async execute(input, ctx) {
|
|
245
|
-
const t = getConn(ctx);
|
|
246
217
|
const p = input;
|
|
247
|
-
return api(
|
|
218
|
+
return api(ctx, "PATCH", `deals/${pathSegment(p.dealId)}/products/${pathSegment(p.productAttachmentId)}`, p.data);
|
|
248
219
|
},
|
|
249
220
|
});
|
|
250
221
|
rl.registerAction("dealProduct.remove", {
|
|
@@ -255,9 +226,8 @@ export default function pipedrive(rl) {
|
|
|
255
226
|
productAttachmentId: { type: "number", required: true },
|
|
256
227
|
},
|
|
257
228
|
async execute(input, ctx) {
|
|
258
|
-
const t = getConn(ctx);
|
|
259
229
|
const p = input;
|
|
260
|
-
await api(
|
|
230
|
+
await api(ctx, "DELETE", `deals/${pathSegment(p.dealId)}/products/${pathSegment(p.productAttachmentId)}`);
|
|
261
231
|
return { success: true };
|
|
262
232
|
},
|
|
263
233
|
});
|
|
@@ -267,7 +237,7 @@ export default function pipedrive(rl) {
|
|
|
267
237
|
description: "Get file metadata",
|
|
268
238
|
inputSchema: { id: { type: "number", required: true } },
|
|
269
239
|
async execute(input, ctx) {
|
|
270
|
-
return api(
|
|
240
|
+
return api(ctx, "GET", `files/${pathSegment(input.id)}`, undefined, undefined, "v1");
|
|
271
241
|
},
|
|
272
242
|
});
|
|
273
243
|
rl.registerAction("file.delete", {
|
|
@@ -275,7 +245,7 @@ export default function pipedrive(rl) {
|
|
|
275
245
|
description: "Delete a file",
|
|
276
246
|
inputSchema: { id: { type: "number", required: true } },
|
|
277
247
|
async execute(input, ctx) {
|
|
278
|
-
await api(
|
|
248
|
+
await api(ctx, "DELETE", `files/${pathSegment(input.id)}`, undefined, undefined, "v1");
|
|
279
249
|
return { success: true };
|
|
280
250
|
},
|
|
281
251
|
});
|
|
@@ -289,17 +259,17 @@ export default function pipedrive(rl) {
|
|
|
289
259
|
},
|
|
290
260
|
async execute(input, ctx) {
|
|
291
261
|
const { id, ...body } = input;
|
|
292
|
-
return api(
|
|
262
|
+
return api(ctx, "PUT", `files/${pathSegment(id)}`, body, undefined, "v1");
|
|
293
263
|
},
|
|
294
264
|
});
|
|
295
265
|
// ── Lead ────────────────────────────────────────────
|
|
296
|
-
registerCrud(rl, "lead", "
|
|
266
|
+
registerCrud(rl, "lead", "leads");
|
|
297
267
|
// ── Note ────────────────────────────────────────────
|
|
298
|
-
registerCrud(rl, "note", "
|
|
268
|
+
registerCrud(rl, "note", "notes");
|
|
299
269
|
// ── Organization ────────────────────────────────────
|
|
300
|
-
registerCrud(rl, "organization", "
|
|
270
|
+
registerCrud(rl, "organization", "organizations", { hasSearch: true });
|
|
301
271
|
// ── Person ──────────────────────────────────────────
|
|
302
|
-
registerCrud(rl, "person", "
|
|
272
|
+
registerCrud(rl, "person", "persons", { hasSearch: true });
|
|
303
273
|
// ── Product ─────────────────────────────────────────
|
|
304
|
-
registerCrud(rl, "product", "
|
|
274
|
+
registerCrud(rl, "product", "products", { hasSearch: true });
|
|
305
275
|
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import * as t from "typebox";
|
|
2
|
-
import { blockContent, blocks, dateBoundary, list, PLAUD_OAUTH, PLAUD_PUBLIC_CLIENT_ID, PLAUD_REDIRECT_URI, recording, request, scan, } from "./shared.js";
|
|
2
|
+
import { blockContent, blocks, dateBoundary, list, PLAUD_OAUTH, PLAUD_PUBLIC_CLIENT_ID, PLAUD_REDIRECT_URI, plaudCredential, recording, request, scan, } from "./shared.js";
|
|
3
3
|
const strict = { additionalProperties: false };
|
|
4
4
|
const Id = t.String({ minLength: 1, maxLength: 512 });
|
|
5
5
|
const RecordingInput = t.Object({ id: Id }, strict);
|
|
@@ -43,6 +43,7 @@ const SummaryInput = t.Object({ id: Id, index: t.Optional(t.Integer({ minimum: 0
|
|
|
43
43
|
export default function plaud(rl) {
|
|
44
44
|
rl.setName("plaud");
|
|
45
45
|
rl.setVersion("0.1.0");
|
|
46
|
+
rl.setCredential(plaudCredential);
|
|
46
47
|
rl.setOAuth({
|
|
47
48
|
protocol: PLAUD_OAUTH,
|
|
48
49
|
scopes: [],
|
|
@@ -1,6 +1,5 @@
|
|
|
1
|
-
import { AuthError, downloadResource,
|
|
2
|
-
import
|
|
3
|
-
import { credentialRuntime } from "../../_shared/credentialAdapter.js";
|
|
1
|
+
import { AuthError, downloadResource, } from "runline";
|
|
2
|
+
import { credentialOk, grantSchema, pathSegment, } from "../../_shared/credentials.js";
|
|
4
3
|
const BASE = "https://platform.plaud.ai/developer/api";
|
|
5
4
|
/** Public client identifier and fixed callback published in Plaud's official CLI. */
|
|
6
5
|
export const PLAUD_PUBLIC_CLIENT_ID = "client_f9e0b214-c11f-434b-8b95-c4497d1feb81";
|
|
@@ -27,10 +26,10 @@ export const PLAUD_CREDENTIAL = {
|
|
|
27
26
|
id: "plaud",
|
|
28
27
|
methods: {
|
|
29
28
|
oauth2: {
|
|
30
|
-
schema:
|
|
29
|
+
schema: grantSchema,
|
|
31
30
|
authentication: {
|
|
32
31
|
kind: "oauth2",
|
|
33
|
-
|
|
32
|
+
field: "grant",
|
|
34
33
|
definition: PLAUD_OAUTH,
|
|
35
34
|
renewal: "refresh",
|
|
36
35
|
},
|
|
@@ -46,34 +45,39 @@ export const PLAUD_CREDENTIAL = {
|
|
|
46
45
|
},
|
|
47
46
|
},
|
|
48
47
|
};
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
}
|
|
48
|
+
/** Plaud signs one way: its public client's OAuth grant. */
|
|
49
|
+
export const plaudCredential = (config) => ({
|
|
50
|
+
type: PLAUD_CREDENTIAL,
|
|
51
|
+
method: "oauth2",
|
|
52
|
+
application: { clientId: config.clientId },
|
|
53
|
+
});
|
|
54
54
|
function object(value) {
|
|
55
55
|
if (!value || typeof value !== "object" || Array.isArray(value))
|
|
56
56
|
throw new AuthError("invalid_response");
|
|
57
57
|
return value;
|
|
58
58
|
}
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
const response = await
|
|
62
|
-
|
|
63
|
-
|
|
59
|
+
/** Every Plaud answer is one JSON object; anything else, empty included, is invalid_response. */
|
|
60
|
+
export async function request(ctx, path, query) {
|
|
61
|
+
const response = await credentialOk(ctx, plaudCredential, "plaud", {
|
|
62
|
+
target: "api",
|
|
63
|
+
path,
|
|
64
|
+
query,
|
|
65
|
+
});
|
|
64
66
|
try {
|
|
65
|
-
return object(await response.
|
|
67
|
+
return object(JSON.parse(await response.text()));
|
|
66
68
|
}
|
|
67
69
|
catch {
|
|
68
70
|
throw new AuthError("invalid_response");
|
|
69
71
|
}
|
|
70
72
|
}
|
|
71
73
|
export async function recording(ctx, id) {
|
|
72
|
-
|
|
73
|
-
return request(ctx, `files/${encodeURIComponent(id)}`);
|
|
74
|
+
return request(ctx, `files/${pathSegment(id)}`);
|
|
74
75
|
}
|
|
75
76
|
export async function list(ctx, page, pageSize) {
|
|
76
|
-
const result = await request(ctx,
|
|
77
|
+
const result = await request(ctx, "files/", {
|
|
78
|
+
page,
|
|
79
|
+
page_size: pageSize,
|
|
80
|
+
});
|
|
77
81
|
if (!Array.isArray(result.data) || result.data.length > pageSize)
|
|
78
82
|
throw new AuthError("invalid_response");
|
|
79
83
|
const data = result.data.map(object);
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { staticCredential } from "../../_shared/credentials.js";
|
|
2
|
+
/**
|
|
3
|
+
* The auth ID and token: the ID is both the Basic username and the account
|
|
4
|
+
* segment of every path, so one stored part serves both.
|
|
5
|
+
*/
|
|
6
|
+
export const plivoCredential = staticCredential({
|
|
7
|
+
id: "plivo",
|
|
8
|
+
auth: {
|
|
9
|
+
kind: "static",
|
|
10
|
+
parts: ["authId", "authToken"],
|
|
11
|
+
placements: [
|
|
12
|
+
{ in: "path", part: "authId" },
|
|
13
|
+
{ in: "basic", username: "authId", password: "authToken" },
|
|
14
|
+
],
|
|
15
|
+
},
|
|
16
|
+
local: { authId: "authId", authToken: "authToken" },
|
|
17
|
+
targets: {
|
|
18
|
+
api: { baseUrl: "https://api.plivo.com/v1/Account/", methods: ["POST"] },
|
|
19
|
+
},
|
|
20
|
+
});
|