runline 0.32.0 → 0.34.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 +9 -0
- 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 +179 -22
- package/dist/credentials/transport.d.ts +48 -2
- package/dist/credentials/transport.js +248 -70
- package/dist/credentials/types.d.ts +167 -10
- package/dist/index.d.ts +5 -5
- package/dist/index.js +2 -2
- package/dist/plugin/api.d.ts +7 -0
- package/dist/plugin/api.js +7 -0
- package/dist/plugin/types.d.ts +12 -0
- package/dist/plugins/_shared/credentialAdapter.js +79 -15
- package/dist/plugins/_shared/credentials.js +389 -0
- package/dist/plugins/_shared/googleAuth.js +9 -40
- package/dist/plugins/_shared/googleCredentials.js +28 -7
- package/dist/plugins/_shared/microsoftAuth.js +13 -44
- package/dist/plugins/_shared/microsoftCredentials.js +30 -8
- package/dist/plugins/_shared/provider.js +2 -14
- package/dist/plugins/_shared/shiftCloud.js +22 -34
- package/dist/plugins/_shared/shiftCredentials.js +83 -0
- package/dist/plugins/_shared/shiftUpload.js +1 -1
- 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/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 +74 -35
- 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 +4 -2
- 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 +26 -24
- 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 +108 -42
- package/dist/plugins/googleCalendar/src/index.js +15 -13
- package/dist/plugins/googleContacts/src/index.js +12 -9
- package/dist/plugins/googleDocs/src/index.js +2 -0
- package/dist/plugins/googleDocs/src/shared.js +2 -1
- package/dist/plugins/googleDrive/src/index.js +50 -53
- package/dist/plugins/googleImage/src/credentials.js +14 -0
- package/dist/plugins/googleImage/src/index.js +14 -25
- package/dist/plugins/googleSheets/src/index.js +26 -27
- package/dist/plugins/googleSlides/src/index.js +6 -4
- package/dist/plugins/googleTasks/src/index.js +13 -11
- 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 +34 -63
- 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 +48 -12
- package/dist/plugins/microsoftFiles/src/index.js +90 -25
- package/dist/plugins/microsoftMail/src/index.js +62 -15
- 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 +15 -23
- 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 +38 -27
- 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 +17 -27
- 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/collections.js +201 -0
- package/dist/plugins/shiftBwm/src/index.js +35 -0
- package/dist/plugins/shiftBwm/src/records.js +180 -0
- package/dist/plugins/shiftBwm/src/shared.js +168 -0
- package/dist/plugins/shiftBwm/src/vendor/client.js +227 -0
- package/dist/plugins/shiftBwm/src/vendor/contracts.js +59 -0
- package/dist/plugins/shiftBwm/src/vendor/models.js +525 -0
- 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 +3 -3
- package/dist/plugins/shiftOcr/src/credentials.js +8 -0
- package/dist/plugins/shiftOcr/src/index.js +5 -2
- 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 +3 -2
- 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 +30 -32
- 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 +31 -30
- 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 +3 -2
- package/dist/plugins/_shared/authedFetch.js +0 -33
- package/dist/plugins/_shared/tokenRefresh.js +0 -41
|
@@ -1,30 +1,18 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
url.searchParams.set(k, String(v));
|
|
8
|
-
}
|
|
9
|
-
}
|
|
10
|
-
const opts = {
|
|
1
|
+
import { credentialOk, jsonAnswer, pathSegment, } from "../../_shared/credentials.js";
|
|
2
|
+
import { helpscoutCredential } from "./credentials.js";
|
|
3
|
+
async function apiRequest(ctx, method, endpoint, body, qs) {
|
|
4
|
+
const res = await credentialOk(ctx, helpscoutCredential, "helpscout", {
|
|
5
|
+
target: "api",
|
|
6
|
+
path: endpoint,
|
|
11
7
|
method,
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
};
|
|
17
|
-
if (body &&
|
|
18
|
-
Object.keys(body).length > 0 &&
|
|
19
|
-
method !== "GET" &&
|
|
20
|
-
method !== "DELETE")
|
|
21
|
-
opts.body = JSON.stringify(body);
|
|
22
|
-
const res = await fetch(url.toString(), opts);
|
|
23
|
-
if (!res.ok)
|
|
24
|
-
throw new Error(`HelpScout API error ${res.status}: ${await res.text()}`);
|
|
8
|
+
query: qs,
|
|
9
|
+
...(body && Object.keys(body).length > 0 && method !== "GET"
|
|
10
|
+
? { json: body }
|
|
11
|
+
: {}),
|
|
12
|
+
});
|
|
25
13
|
if (res.status === 201 || res.status === 204)
|
|
26
14
|
return { success: true, location: res.headers.get("Location") };
|
|
27
|
-
return res
|
|
15
|
+
return jsonAnswer(res);
|
|
28
16
|
}
|
|
29
17
|
function unwrapEmbedded(data, key) {
|
|
30
18
|
if (data &&
|
|
@@ -37,6 +25,7 @@ function unwrapEmbedded(data, key) {
|
|
|
37
25
|
export default function helpscout(rl) {
|
|
38
26
|
rl.setName("helpscout");
|
|
39
27
|
rl.setVersion("0.1.0");
|
|
28
|
+
rl.setCredential(helpscoutCredential);
|
|
40
29
|
rl.setConnectionSchema({
|
|
41
30
|
accessToken: {
|
|
42
31
|
type: "string",
|
|
@@ -45,7 +34,6 @@ export default function helpscout(rl) {
|
|
|
45
34
|
env: "HELPSCOUT_ACCESS_TOKEN",
|
|
46
35
|
},
|
|
47
36
|
});
|
|
48
|
-
const tok = (ctx) => ctx.connection.config.accessToken;
|
|
49
37
|
// ── Conversation ────────────────────────────────────
|
|
50
38
|
rl.registerAction("conversation.create", {
|
|
51
39
|
access: "write",
|
|
@@ -88,7 +76,7 @@ export default function helpscout(rl) {
|
|
|
88
76
|
body.status = status;
|
|
89
77
|
if (tags)
|
|
90
78
|
body.tags = tags;
|
|
91
|
-
return apiRequest(
|
|
79
|
+
return apiRequest(ctx, "POST", "conversations", body);
|
|
92
80
|
},
|
|
93
81
|
});
|
|
94
82
|
rl.registerAction("conversation.get", {
|
|
@@ -102,7 +90,7 @@ export default function helpscout(rl) {
|
|
|
102
90
|
},
|
|
103
91
|
},
|
|
104
92
|
async execute(input, ctx) {
|
|
105
|
-
return apiRequest(
|
|
93
|
+
return apiRequest(ctx, "GET", `conversations/${pathSegment(input.conversationId)}`);
|
|
106
94
|
},
|
|
107
95
|
});
|
|
108
96
|
rl.registerAction("conversation.list", {
|
|
@@ -133,7 +121,7 @@ export default function helpscout(rl) {
|
|
|
133
121
|
qs.pageSize = limit;
|
|
134
122
|
if (page)
|
|
135
123
|
qs.page = page;
|
|
136
|
-
return unwrapEmbedded(await apiRequest(
|
|
124
|
+
return unwrapEmbedded(await apiRequest(ctx, "GET", "conversations", undefined, qs), "conversations");
|
|
137
125
|
},
|
|
138
126
|
});
|
|
139
127
|
rl.registerAction("conversation.delete", {
|
|
@@ -147,7 +135,7 @@ export default function helpscout(rl) {
|
|
|
147
135
|
},
|
|
148
136
|
},
|
|
149
137
|
async execute(input, ctx) {
|
|
150
|
-
await apiRequest(
|
|
138
|
+
await apiRequest(ctx, "DELETE", `conversations/${pathSegment(input.conversationId)}`);
|
|
151
139
|
return { success: true };
|
|
152
140
|
},
|
|
153
141
|
});
|
|
@@ -174,7 +162,7 @@ export default function helpscout(rl) {
|
|
|
174
162
|
body.emails = emails;
|
|
175
163
|
if (phones)
|
|
176
164
|
body.phones = phones;
|
|
177
|
-
return apiRequest(
|
|
165
|
+
return apiRequest(ctx, "POST", "customers", body);
|
|
178
166
|
},
|
|
179
167
|
});
|
|
180
168
|
rl.registerAction("customer.get", {
|
|
@@ -188,7 +176,7 @@ export default function helpscout(rl) {
|
|
|
188
176
|
},
|
|
189
177
|
},
|
|
190
178
|
async execute(input, ctx) {
|
|
191
|
-
return apiRequest(
|
|
179
|
+
return apiRequest(ctx, "GET", `customers/${pathSegment(input.customerId)}`);
|
|
192
180
|
},
|
|
193
181
|
});
|
|
194
182
|
rl.registerAction("customer.list", {
|
|
@@ -205,7 +193,7 @@ export default function helpscout(rl) {
|
|
|
205
193
|
qs.pageSize = limit;
|
|
206
194
|
if (page)
|
|
207
195
|
qs.page = page;
|
|
208
|
-
return unwrapEmbedded(await apiRequest(
|
|
196
|
+
return unwrapEmbedded(await apiRequest(ctx, "GET", "customers", undefined, qs), "customers");
|
|
209
197
|
},
|
|
210
198
|
});
|
|
211
199
|
rl.registerAction("customer.update", {
|
|
@@ -225,7 +213,7 @@ export default function helpscout(rl) {
|
|
|
225
213
|
},
|
|
226
214
|
async execute(input, ctx) {
|
|
227
215
|
const { customerId, properties } = input;
|
|
228
|
-
return apiRequest(
|
|
216
|
+
return apiRequest(ctx, "PUT", `customers/${pathSegment(customerId)}`, properties);
|
|
229
217
|
},
|
|
230
218
|
});
|
|
231
219
|
rl.registerAction("customer.getProperties", {
|
|
@@ -239,7 +227,7 @@ export default function helpscout(rl) {
|
|
|
239
227
|
},
|
|
240
228
|
},
|
|
241
229
|
async execute(input, ctx) {
|
|
242
|
-
return apiRequest(
|
|
230
|
+
return apiRequest(ctx, "GET", `customers/${pathSegment(input.customerId)}/properties`);
|
|
243
231
|
},
|
|
244
232
|
});
|
|
245
233
|
// ── Mailbox ─────────────────────────────────────────
|
|
@@ -250,14 +238,14 @@ export default function helpscout(rl) {
|
|
|
250
238
|
mailboxId: { type: "number", required: true, description: "Mailbox ID" },
|
|
251
239
|
},
|
|
252
240
|
async execute(input, ctx) {
|
|
253
|
-
return apiRequest(
|
|
241
|
+
return apiRequest(ctx, "GET", `mailboxes/${pathSegment(input.mailboxId)}`);
|
|
254
242
|
},
|
|
255
243
|
});
|
|
256
244
|
rl.registerAction("mailbox.list", {
|
|
257
245
|
access: "read",
|
|
258
246
|
description: "List mailboxes",
|
|
259
247
|
async execute(_input, ctx) {
|
|
260
|
-
return unwrapEmbedded(await apiRequest(
|
|
248
|
+
return unwrapEmbedded(await apiRequest(ctx, "GET", "mailboxes"), "mailboxes");
|
|
261
249
|
},
|
|
262
250
|
});
|
|
263
251
|
// ── Thread ──────────────────────────────────────────
|
|
@@ -291,7 +279,7 @@ export default function helpscout(rl) {
|
|
|
291
279
|
const body = { type, text };
|
|
292
280
|
if (customer)
|
|
293
281
|
body.customer = customer;
|
|
294
|
-
return apiRequest(
|
|
282
|
+
return apiRequest(ctx, "POST", `conversations/${pathSegment(conversationId)}/reply`, body);
|
|
295
283
|
},
|
|
296
284
|
});
|
|
297
285
|
rl.registerAction("thread.list", {
|
|
@@ -305,7 +293,7 @@ export default function helpscout(rl) {
|
|
|
305
293
|
},
|
|
306
294
|
},
|
|
307
295
|
async execute(input, ctx) {
|
|
308
|
-
return unwrapEmbedded(await apiRequest(
|
|
296
|
+
return unwrapEmbedded(await apiRequest(ctx, "GET", `conversations/${pathSegment(input.conversationId)}/threads`), "threads");
|
|
309
297
|
},
|
|
310
298
|
});
|
|
311
299
|
}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { staticCredential } from "../../_shared/credentials.js";
|
|
2
|
+
/** The API version header every HighLevel request carries. */
|
|
3
|
+
export const HIGHLEVEL_VERSION = "2021-07-28";
|
|
4
|
+
/**
|
|
5
|
+
* An OAuth2 access token, sent as a bearer to HighLevel's one API origin.
|
|
6
|
+
* The Version header is a public API-version marker, not a credential.
|
|
7
|
+
*/
|
|
8
|
+
export const highlevelCredential = staticCredential({
|
|
9
|
+
id: "highlevel",
|
|
10
|
+
auth: { kind: "bearer" },
|
|
11
|
+
local: { secret: "accessToken" },
|
|
12
|
+
targets: {
|
|
13
|
+
api: {
|
|
14
|
+
baseUrl: "https://services.leadconnectorhq.com/",
|
|
15
|
+
methods: ["GET", "POST", "PUT", "DELETE"],
|
|
16
|
+
allowedHeaders: ["Version"],
|
|
17
|
+
},
|
|
18
|
+
},
|
|
19
|
+
});
|
|
@@ -1,38 +1,22 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
locationId: ctx.connection.config.locationId,
|
|
6
|
-
};
|
|
1
|
+
import { credentialJson, pathSegment } from "../../_shared/credentials.js";
|
|
2
|
+
import { HIGHLEVEL_VERSION, highlevelCredential } from "./credentials.js";
|
|
3
|
+
function locationOf(ctx) {
|
|
4
|
+
return ctx.connection.config.locationId;
|
|
7
5
|
}
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
if (v !== undefined && v !== null)
|
|
13
|
-
url.searchParams.set(k, String(v));
|
|
14
|
-
}
|
|
15
|
-
}
|
|
16
|
-
const init = {
|
|
6
|
+
function api(ctx, method, path, body, qs) {
|
|
7
|
+
return credentialJson(ctx, highlevelCredential, "highlevel", {
|
|
8
|
+
target: "api",
|
|
9
|
+
path,
|
|
17
10
|
method,
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
Version: "2021-07-28",
|
|
23
|
-
},
|
|
24
|
-
};
|
|
25
|
-
if (body && Object.keys(body).length > 0)
|
|
26
|
-
init.body = JSON.stringify(body);
|
|
27
|
-
const res = await fetch(url.toString(), init);
|
|
28
|
-
if (!res.ok)
|
|
29
|
-
throw new Error(`HighLevel error ${res.status}: ${await res.text()}`);
|
|
30
|
-
const text = await res.text();
|
|
31
|
-
return text ? JSON.parse(text) : { success: true };
|
|
11
|
+
query: qs,
|
|
12
|
+
headers: { Version: HIGHLEVEL_VERSION },
|
|
13
|
+
...(body && Object.keys(body).length > 0 ? { json: body } : {}),
|
|
14
|
+
});
|
|
32
15
|
}
|
|
33
16
|
export default function highlevel(rl) {
|
|
34
17
|
rl.setName("highlevel");
|
|
35
18
|
rl.setVersion("0.1.0");
|
|
19
|
+
rl.setCredential(highlevelCredential);
|
|
36
20
|
rl.setConnectionSchema({
|
|
37
21
|
accessToken: {
|
|
38
22
|
type: "string",
|
|
@@ -77,13 +61,13 @@ export default function highlevel(rl) {
|
|
|
77
61
|
},
|
|
78
62
|
},
|
|
79
63
|
async execute(input, ctx) {
|
|
80
|
-
const
|
|
64
|
+
const locationId = locationOf(ctx);
|
|
81
65
|
const body = { ...input, locationId };
|
|
82
66
|
if (typeof body.tags === "string")
|
|
83
67
|
body.tags = body.tags
|
|
84
68
|
.split(",")
|
|
85
69
|
.map((t) => t.trim());
|
|
86
|
-
const res = (await api(
|
|
70
|
+
const res = (await api(ctx, "POST", "contacts/upsert/", body));
|
|
87
71
|
return res.contact ?? res;
|
|
88
72
|
},
|
|
89
73
|
});
|
|
@@ -92,8 +76,7 @@ export default function highlevel(rl) {
|
|
|
92
76
|
description: "Get a contact by ID",
|
|
93
77
|
inputSchema: { id: { type: "string", required: true } },
|
|
94
78
|
async execute(input, ctx) {
|
|
95
|
-
const
|
|
96
|
-
const res = (await api(token, "GET", `/contacts/${input.id}/`));
|
|
79
|
+
const res = (await api(ctx, "GET", `contacts/${pathSegment(input.id)}/`));
|
|
97
80
|
return res.contact ?? res;
|
|
98
81
|
},
|
|
99
82
|
});
|
|
@@ -115,7 +98,7 @@ export default function highlevel(rl) {
|
|
|
115
98
|
order: { type: "string", required: false, description: "asc or desc" },
|
|
116
99
|
},
|
|
117
100
|
async execute(input, ctx) {
|
|
118
|
-
const
|
|
101
|
+
const locationId = locationOf(ctx);
|
|
119
102
|
const p = (input ?? {});
|
|
120
103
|
const qs = { locationId };
|
|
121
104
|
if (p.limit)
|
|
@@ -126,7 +109,7 @@ export default function highlevel(rl) {
|
|
|
126
109
|
qs.sortBy = p.sortBy;
|
|
127
110
|
if (p.order)
|
|
128
111
|
qs.order = p.order;
|
|
129
|
-
const res = (await api(
|
|
112
|
+
const res = (await api(ctx, "GET", "contacts/", undefined, qs));
|
|
130
113
|
return res.contacts ?? res;
|
|
131
114
|
},
|
|
132
115
|
});
|
|
@@ -150,13 +133,12 @@ export default function highlevel(rl) {
|
|
|
150
133
|
customFields: { type: "object", required: false },
|
|
151
134
|
},
|
|
152
135
|
async execute(input, ctx) {
|
|
153
|
-
const { token } = getConn(ctx);
|
|
154
136
|
const { id, ...body } = input;
|
|
155
137
|
if (typeof body.tags === "string")
|
|
156
138
|
body.tags = body.tags
|
|
157
139
|
.split(",")
|
|
158
140
|
.map((t) => t.trim());
|
|
159
|
-
const res = (await api(
|
|
141
|
+
const res = (await api(ctx, "PUT", `contacts/${pathSegment(id)}/`, body));
|
|
160
142
|
return res.contact ?? res;
|
|
161
143
|
},
|
|
162
144
|
});
|
|
@@ -165,8 +147,7 @@ export default function highlevel(rl) {
|
|
|
165
147
|
description: "Delete a contact",
|
|
166
148
|
inputSchema: { id: { type: "string", required: true } },
|
|
167
149
|
async execute(input, ctx) {
|
|
168
|
-
|
|
169
|
-
await api(token, "DELETE", `/contacts/${input.id}/`);
|
|
150
|
+
await api(ctx, "DELETE", `contacts/${pathSegment(input.id)}/`);
|
|
170
151
|
return { success: true };
|
|
171
152
|
},
|
|
172
153
|
});
|
|
@@ -194,7 +175,7 @@ export default function highlevel(rl) {
|
|
|
194
175
|
tags: { type: "object", required: false },
|
|
195
176
|
},
|
|
196
177
|
async execute(input, ctx) {
|
|
197
|
-
const
|
|
178
|
+
const locationId = locationOf(ctx);
|
|
198
179
|
const body = { ...input, locationId };
|
|
199
180
|
if (body.stageId) {
|
|
200
181
|
body.pipelineStageId = body.stageId;
|
|
@@ -204,7 +185,7 @@ export default function highlevel(rl) {
|
|
|
204
185
|
body.tags = body.tags
|
|
205
186
|
.split(",")
|
|
206
187
|
.map((t) => t.trim());
|
|
207
|
-
return api(
|
|
188
|
+
return api(ctx, "POST", "opportunities/", body);
|
|
208
189
|
},
|
|
209
190
|
});
|
|
210
191
|
rl.registerAction("opportunity.get", {
|
|
@@ -212,8 +193,7 @@ export default function highlevel(rl) {
|
|
|
212
193
|
description: "Get an opportunity",
|
|
213
194
|
inputSchema: { id: { type: "string", required: true } },
|
|
214
195
|
async execute(input, ctx) {
|
|
215
|
-
|
|
216
|
-
return api(token, "GET", `/opportunities/${input.id}`);
|
|
196
|
+
return api(ctx, "GET", `opportunities/${pathSegment(input.id)}`);
|
|
217
197
|
},
|
|
218
198
|
});
|
|
219
199
|
rl.registerAction("opportunity.list", {
|
|
@@ -230,7 +210,7 @@ export default function highlevel(rl) {
|
|
|
230
210
|
endDate: { type: "string", required: false },
|
|
231
211
|
},
|
|
232
212
|
async execute(input, ctx) {
|
|
233
|
-
const
|
|
213
|
+
const locationId = locationOf(ctx);
|
|
234
214
|
const p = (input ?? {});
|
|
235
215
|
const qs = { location_id: locationId };
|
|
236
216
|
if (p.limit)
|
|
@@ -249,7 +229,7 @@ export default function highlevel(rl) {
|
|
|
249
229
|
qs.startDate = new Date(p.startDate).getTime();
|
|
250
230
|
if (p.endDate)
|
|
251
231
|
qs.endDate = new Date(p.endDate).getTime();
|
|
252
|
-
const res = (await api(
|
|
232
|
+
const res = (await api(ctx, "GET", "opportunities/search", undefined, qs));
|
|
253
233
|
return res.opportunities ?? res;
|
|
254
234
|
},
|
|
255
235
|
});
|
|
@@ -266,13 +246,12 @@ export default function highlevel(rl) {
|
|
|
266
246
|
assignedTo: { type: "string", required: false },
|
|
267
247
|
},
|
|
268
248
|
async execute(input, ctx) {
|
|
269
|
-
const { token } = getConn(ctx);
|
|
270
249
|
const { id, ...body } = input;
|
|
271
250
|
if (body.stageId) {
|
|
272
251
|
body.pipelineStageId = body.stageId;
|
|
273
252
|
delete body.stageId;
|
|
274
253
|
}
|
|
275
|
-
return api(
|
|
254
|
+
return api(ctx, "PUT", `opportunities/${pathSegment(id)}`, body);
|
|
276
255
|
},
|
|
277
256
|
});
|
|
278
257
|
rl.registerAction("opportunity.delete", {
|
|
@@ -280,8 +259,7 @@ export default function highlevel(rl) {
|
|
|
280
259
|
description: "Delete an opportunity",
|
|
281
260
|
inputSchema: { id: { type: "string", required: true } },
|
|
282
261
|
async execute(input, ctx) {
|
|
283
|
-
|
|
284
|
-
await api(token, "DELETE", `/opportunities/${input.id}`);
|
|
262
|
+
await api(ctx, "DELETE", `opportunities/${pathSegment(input.id)}`);
|
|
285
263
|
return { success: true };
|
|
286
264
|
},
|
|
287
265
|
});
|
|
@@ -298,9 +276,8 @@ export default function highlevel(rl) {
|
|
|
298
276
|
assignedTo: { type: "string", required: false },
|
|
299
277
|
},
|
|
300
278
|
async execute(input, ctx) {
|
|
301
|
-
const { token } = getConn(ctx);
|
|
302
279
|
const { contactId, ...body } = input;
|
|
303
|
-
return api(
|
|
280
|
+
return api(ctx, "POST", `contacts/${pathSegment(contactId)}/tasks/`, body);
|
|
304
281
|
},
|
|
305
282
|
});
|
|
306
283
|
rl.registerAction("task.get", {
|
|
@@ -311,9 +288,8 @@ export default function highlevel(rl) {
|
|
|
311
288
|
taskId: { type: "string", required: true },
|
|
312
289
|
},
|
|
313
290
|
async execute(input, ctx) {
|
|
314
|
-
const { token } = getConn(ctx);
|
|
315
291
|
const p = input;
|
|
316
|
-
return api(
|
|
292
|
+
return api(ctx, "GET", `contacts/${pathSegment(p.contactId)}/tasks/${pathSegment(p.taskId)}/`);
|
|
317
293
|
},
|
|
318
294
|
});
|
|
319
295
|
rl.registerAction("task.list", {
|
|
@@ -321,8 +297,7 @@ export default function highlevel(rl) {
|
|
|
321
297
|
description: "List tasks for a contact",
|
|
322
298
|
inputSchema: { contactId: { type: "string", required: true } },
|
|
323
299
|
async execute(input, ctx) {
|
|
324
|
-
const
|
|
325
|
-
const res = (await api(token, "GET", `/contacts/${input.contactId}/tasks/`));
|
|
300
|
+
const res = (await api(ctx, "GET", `contacts/${pathSegment(input.contactId)}/tasks/`));
|
|
326
301
|
return res.tasks ?? res;
|
|
327
302
|
},
|
|
328
303
|
});
|
|
@@ -339,9 +314,8 @@ export default function highlevel(rl) {
|
|
|
339
314
|
assignedTo: { type: "string", required: false },
|
|
340
315
|
},
|
|
341
316
|
async execute(input, ctx) {
|
|
342
|
-
const { token } = getConn(ctx);
|
|
343
317
|
const { contactId, taskId, ...body } = input;
|
|
344
|
-
return api(
|
|
318
|
+
return api(ctx, "PUT", `contacts/${pathSegment(contactId)}/tasks/${pathSegment(taskId)}/`, body);
|
|
345
319
|
},
|
|
346
320
|
});
|
|
347
321
|
rl.registerAction("task.delete", {
|
|
@@ -352,9 +326,8 @@ export default function highlevel(rl) {
|
|
|
352
326
|
taskId: { type: "string", required: true },
|
|
353
327
|
},
|
|
354
328
|
async execute(input, ctx) {
|
|
355
|
-
const { token } = getConn(ctx);
|
|
356
329
|
const p = input;
|
|
357
|
-
await api(
|
|
330
|
+
await api(ctx, "DELETE", `contacts/${pathSegment(p.contactId)}/tasks/${pathSegment(p.taskId)}/`);
|
|
358
331
|
return { success: true };
|
|
359
332
|
},
|
|
360
333
|
});
|
|
@@ -383,8 +356,7 @@ export default function highlevel(rl) {
|
|
|
383
356
|
toNotify: { type: "boolean", required: false },
|
|
384
357
|
},
|
|
385
358
|
async execute(input, ctx) {
|
|
386
|
-
|
|
387
|
-
return api(token, "POST", "/calendars/events/appointments", input);
|
|
359
|
+
return api(ctx, "POST", "calendars/events/appointments", input);
|
|
388
360
|
},
|
|
389
361
|
});
|
|
390
362
|
rl.registerAction("calendar.getFreeSlots", {
|
|
@@ -406,7 +378,6 @@ export default function highlevel(rl) {
|
|
|
406
378
|
userId: { type: "string", required: false },
|
|
407
379
|
},
|
|
408
380
|
async execute(input, ctx) {
|
|
409
|
-
const { token } = getConn(ctx);
|
|
410
381
|
const p = input;
|
|
411
382
|
const qs = {
|
|
412
383
|
startDate: p.startDate,
|
|
@@ -416,7 +387,7 @@ export default function highlevel(rl) {
|
|
|
416
387
|
qs.timezone = p.timezone;
|
|
417
388
|
if (p.userId)
|
|
418
389
|
qs.userId = p.userId;
|
|
419
|
-
return api(
|
|
390
|
+
return api(ctx, "GET", `calendars/${pathSegment(p.calendarId)}/free-slots`, undefined, qs);
|
|
420
391
|
},
|
|
421
392
|
});
|
|
422
393
|
}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { configFlag, httpsBase, staticCredential, } from "../../_shared/credentials.js";
|
|
2
|
+
/**
|
|
3
|
+
* A long-lived access token, sent as a bearer to the instance's own /api/
|
|
4
|
+
* base. The target carries the scheme `ssl` selects, and config-derived
|
|
5
|
+
* hosts are HTTPS-only: httpsBase refuses the plain-http base that
|
|
6
|
+
* `ssl: false` (the default) selects, as invalid_credentials.
|
|
7
|
+
*/
|
|
8
|
+
export const homeAssistantCredential = staticCredential({
|
|
9
|
+
id: "homeAssistant",
|
|
10
|
+
auth: { kind: "bearer" },
|
|
11
|
+
local: { secret: "accessToken" },
|
|
12
|
+
targets: (config) => {
|
|
13
|
+
const scheme = configFlag(config.ssl) ? "https" : "http";
|
|
14
|
+
return {
|
|
15
|
+
api: {
|
|
16
|
+
baseUrl: httpsBase(`${scheme}://${String(config.host)}:${config.port ?? 8123}`, "api/"),
|
|
17
|
+
methods: ["GET", "POST"],
|
|
18
|
+
},
|
|
19
|
+
};
|
|
20
|
+
},
|
|
21
|
+
probe: {
|
|
22
|
+
target: "api",
|
|
23
|
+
path: "config",
|
|
24
|
+
method: "GET",
|
|
25
|
+
acceptedStatuses: [200],
|
|
26
|
+
},
|
|
27
|
+
});
|
|
@@ -1,44 +1,21 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
for (const [k, v] of Object.entries(qs)) {
|
|
5
|
-
if (v !== undefined && v !== null)
|
|
6
|
-
url.searchParams.set(k, String(v));
|
|
7
|
-
}
|
|
8
|
-
}
|
|
9
|
-
const opts = {
|
|
10
|
-
method,
|
|
11
|
-
headers: {
|
|
12
|
-
Authorization: `Bearer ${token}`,
|
|
13
|
-
"Content-Type": "application/json",
|
|
14
|
-
},
|
|
15
|
-
};
|
|
16
|
-
if (body &&
|
|
17
|
-
Object.keys(body).length > 0 &&
|
|
18
|
-
method !== "GET" &&
|
|
19
|
-
method !== "DELETE")
|
|
20
|
-
opts.body = JSON.stringify(body);
|
|
21
|
-
const res = await fetch(url.toString(), opts);
|
|
22
|
-
if (!res.ok)
|
|
23
|
-
throw new Error(`Home Assistant API error ${res.status}: ${await res.text()}`);
|
|
24
|
-
return res.json();
|
|
25
|
-
}
|
|
26
|
-
function getConn(ctx) {
|
|
27
|
-
const cfg = ctx.connection.config;
|
|
28
|
-
const ssl = cfg.ssl === true || cfg.ssl === "true";
|
|
29
|
-
const proto = ssl ? "https" : "http";
|
|
30
|
-
return {
|
|
31
|
-
baseUrl: `${proto}://${cfg.host}:${cfg.port ?? 8123}`,
|
|
32
|
-
token: cfg.accessToken,
|
|
33
|
-
};
|
|
34
|
-
}
|
|
1
|
+
import { credentialJson, credentialOk, pathSegment, } from "../../_shared/credentials.js";
|
|
2
|
+
import { homeAssistantCredential } from "./credentials.js";
|
|
3
|
+
/** One Home Assistant call: every endpoint is a path beneath /api/. */
|
|
35
4
|
function ha(ctx, method, endpoint, body, qs) {
|
|
36
|
-
|
|
37
|
-
|
|
5
|
+
return credentialJson(ctx, homeAssistantCredential, "homeAssistant", {
|
|
6
|
+
target: "api",
|
|
7
|
+
path: endpoint,
|
|
8
|
+
method,
|
|
9
|
+
query: qs,
|
|
10
|
+
...(body && Object.keys(body).length > 0 && method !== "GET"
|
|
11
|
+
? { json: body }
|
|
12
|
+
: {}),
|
|
13
|
+
});
|
|
38
14
|
}
|
|
39
15
|
export default function homeAssistant(rl) {
|
|
40
16
|
rl.setName("homeAssistant");
|
|
41
17
|
rl.setVersion("0.1.0");
|
|
18
|
+
rl.setCredential(homeAssistantCredential);
|
|
42
19
|
rl.setConnectionSchema({
|
|
43
20
|
host: {
|
|
44
21
|
type: "string",
|
|
@@ -69,21 +46,21 @@ export default function homeAssistant(rl) {
|
|
|
69
46
|
access: "read",
|
|
70
47
|
description: "Get Home Assistant configuration",
|
|
71
48
|
async execute(_input, ctx) {
|
|
72
|
-
return ha(ctx, "GET", "
|
|
49
|
+
return ha(ctx, "GET", "config");
|
|
73
50
|
},
|
|
74
51
|
});
|
|
75
52
|
rl.registerAction("config.check", {
|
|
76
53
|
access: "read",
|
|
77
54
|
description: "Check if configuration is valid",
|
|
78
55
|
async execute(_input, ctx) {
|
|
79
|
-
return ha(ctx, "POST", "
|
|
56
|
+
return ha(ctx, "POST", "config/core/check_config");
|
|
80
57
|
},
|
|
81
58
|
});
|
|
82
59
|
rl.registerAction("service.list", {
|
|
83
60
|
access: "read",
|
|
84
61
|
description: "List available services",
|
|
85
62
|
async execute(_input, ctx) {
|
|
86
|
-
return ha(ctx, "GET", "
|
|
63
|
+
return ha(ctx, "GET", "services");
|
|
87
64
|
},
|
|
88
65
|
});
|
|
89
66
|
rl.registerAction("service.call", {
|
|
@@ -108,14 +85,14 @@ export default function homeAssistant(rl) {
|
|
|
108
85
|
},
|
|
109
86
|
async execute(input, ctx) {
|
|
110
87
|
const { domain, service, serviceData } = input;
|
|
111
|
-
return ha(ctx, "POST",
|
|
88
|
+
return ha(ctx, "POST", `services/${pathSegment(domain)}/${pathSegment(service)}`, serviceData ?? {});
|
|
112
89
|
},
|
|
113
90
|
});
|
|
114
91
|
rl.registerAction("state.list", {
|
|
115
92
|
access: "read",
|
|
116
93
|
description: "List all entity states",
|
|
117
94
|
async execute(_input, ctx) {
|
|
118
|
-
return ha(ctx, "GET", "
|
|
95
|
+
return ha(ctx, "GET", "states");
|
|
119
96
|
},
|
|
120
97
|
});
|
|
121
98
|
rl.registerAction("state.get", {
|
|
@@ -129,7 +106,7 @@ export default function homeAssistant(rl) {
|
|
|
129
106
|
},
|
|
130
107
|
},
|
|
131
108
|
async execute(input, ctx) {
|
|
132
|
-
return ha(ctx, "GET",
|
|
109
|
+
return ha(ctx, "GET", `states/${pathSegment(input.entityId)}`);
|
|
133
110
|
},
|
|
134
111
|
});
|
|
135
112
|
rl.registerAction("state.set", {
|
|
@@ -149,14 +126,14 @@ export default function homeAssistant(rl) {
|
|
|
149
126
|
const body = { state };
|
|
150
127
|
if (attributes)
|
|
151
128
|
body.attributes = attributes;
|
|
152
|
-
return ha(ctx, "POST",
|
|
129
|
+
return ha(ctx, "POST", `states/${pathSegment(entityId)}`, body);
|
|
153
130
|
},
|
|
154
131
|
});
|
|
155
132
|
rl.registerAction("event.list", {
|
|
156
133
|
access: "read",
|
|
157
134
|
description: "List event types",
|
|
158
135
|
async execute(_input, ctx) {
|
|
159
|
-
return ha(ctx, "GET", "
|
|
136
|
+
return ha(ctx, "GET", "events");
|
|
160
137
|
},
|
|
161
138
|
});
|
|
162
139
|
rl.registerAction("event.fire", {
|
|
@@ -168,14 +145,14 @@ export default function homeAssistant(rl) {
|
|
|
168
145
|
},
|
|
169
146
|
async execute(input, ctx) {
|
|
170
147
|
const { eventType, eventData } = input;
|
|
171
|
-
return ha(ctx, "POST",
|
|
148
|
+
return ha(ctx, "POST", `events/${pathSegment(eventType)}`, eventData ?? {});
|
|
172
149
|
},
|
|
173
150
|
});
|
|
174
151
|
rl.registerAction("log.getErrors", {
|
|
175
152
|
access: "read",
|
|
176
153
|
description: "Get error log",
|
|
177
154
|
async execute(_input, ctx) {
|
|
178
|
-
return ha(ctx, "GET", "
|
|
155
|
+
return ha(ctx, "GET", "error_log");
|
|
179
156
|
},
|
|
180
157
|
});
|
|
181
158
|
rl.registerAction("log.getLogbook", {
|
|
@@ -200,9 +177,9 @@ export default function homeAssistant(rl) {
|
|
|
200
177
|
},
|
|
201
178
|
async execute(input, ctx) {
|
|
202
179
|
const { entityId, startTime, endTime } = (input ?? {});
|
|
203
|
-
let endpoint = "
|
|
180
|
+
let endpoint = "logbook";
|
|
204
181
|
if (startTime)
|
|
205
|
-
endpoint += `/${startTime}`;
|
|
182
|
+
endpoint += `/${pathSegment(startTime)}`;
|
|
206
183
|
const qs = {};
|
|
207
184
|
if (entityId)
|
|
208
185
|
qs.entity = entityId;
|
|
@@ -222,9 +199,14 @@ export default function homeAssistant(rl) {
|
|
|
222
199
|
},
|
|
223
200
|
},
|
|
224
201
|
async execute(input, ctx) {
|
|
225
|
-
|
|
226
|
-
|
|
202
|
+
// /api/template answers the rendered value as plain text, not JSON.
|
|
203
|
+
const res = await credentialOk(ctx, homeAssistantCredential, "homeAssistant", {
|
|
204
|
+
target: "api",
|
|
205
|
+
path: "template",
|
|
206
|
+
method: "POST",
|
|
207
|
+
json: { template: input.template },
|
|
227
208
|
});
|
|
209
|
+
return res.text();
|
|
228
210
|
},
|
|
229
211
|
});
|
|
230
212
|
rl.registerAction("history.get", {
|
|
@@ -245,9 +227,9 @@ export default function homeAssistant(rl) {
|
|
|
245
227
|
},
|
|
246
228
|
async execute(input, ctx) {
|
|
247
229
|
const { entityIds, startTime, endTime } = (input ?? {});
|
|
248
|
-
let endpoint = "
|
|
230
|
+
let endpoint = "history/period";
|
|
249
231
|
if (startTime)
|
|
250
|
-
endpoint += `/${startTime}`;
|
|
232
|
+
endpoint += `/${pathSegment(startTime)}`;
|
|
251
233
|
const qs = {};
|
|
252
234
|
if (entityIds)
|
|
253
235
|
qs.filter_entity_id = entityIds;
|