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,50 +1,23 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
url.searchParams.set(k, String(v));
|
|
8
|
-
}
|
|
9
|
-
}
|
|
10
|
-
const opts = {
|
|
1
|
+
import { credentialJson, pathSegment } from "../../_shared/credentials.js";
|
|
2
|
+
import { keapCredential } from "./credentials.js";
|
|
3
|
+
function apiRequest(ctx, method, endpoint, body, qs) {
|
|
4
|
+
return credentialJson(ctx, keapCredential, "keap", {
|
|
5
|
+
target: "api",
|
|
6
|
+
path: endpoint,
|
|
11
7
|
method,
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
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(`Keap API error ${res.status}: ${await res.text()}`);
|
|
25
|
-
if (res.status === 204)
|
|
26
|
-
return { success: true };
|
|
27
|
-
return res.json();
|
|
28
|
-
}
|
|
29
|
-
async function apiRequestAllItems(token, propertyName, method, endpoint, qs = {}) {
|
|
30
|
-
const all = [];
|
|
31
|
-
let uri;
|
|
32
|
-
qs.limit = 50;
|
|
33
|
-
let data;
|
|
34
|
-
do {
|
|
35
|
-
data = (uri
|
|
36
|
-
? await apiRequest(token, method, "", undefined, { ...qs })
|
|
37
|
-
: await apiRequest(token, method, endpoint, undefined, qs));
|
|
38
|
-
const items = data[propertyName];
|
|
39
|
-
if (Array.isArray(items))
|
|
40
|
-
all.push(...items);
|
|
41
|
-
uri = data.next;
|
|
42
|
-
} while (all.length < (data.count ?? all.length + 1) && uri);
|
|
43
|
-
return all;
|
|
8
|
+
query: qs,
|
|
9
|
+
...(body &&
|
|
10
|
+
Object.keys(body).length > 0 &&
|
|
11
|
+
method !== "GET" &&
|
|
12
|
+
method !== "DELETE"
|
|
13
|
+
? { json: body }
|
|
14
|
+
: {}),
|
|
15
|
+
});
|
|
44
16
|
}
|
|
45
17
|
export default function keap(rl) {
|
|
46
18
|
rl.setName("keap");
|
|
47
19
|
rl.setVersion("0.1.0");
|
|
20
|
+
rl.setCredential(keapCredential);
|
|
48
21
|
rl.setConnectionSchema({
|
|
49
22
|
accessToken: {
|
|
50
23
|
type: "string",
|
|
@@ -53,7 +26,6 @@ export default function keap(rl) {
|
|
|
53
26
|
env: "KEAP_ACCESS_TOKEN",
|
|
54
27
|
},
|
|
55
28
|
});
|
|
56
|
-
const tok = (ctx) => ctx.connection.config.accessToken;
|
|
57
29
|
// ── Company ─────────────────────────────────────────
|
|
58
30
|
rl.registerAction("company.create", {
|
|
59
31
|
access: "write",
|
|
@@ -96,7 +68,7 @@ export default function keap(rl) {
|
|
|
96
68
|
body.phone_number = phone;
|
|
97
69
|
if (fax)
|
|
98
70
|
body.fax_number = fax;
|
|
99
|
-
return apiRequest(
|
|
71
|
+
return apiRequest(ctx, "POST", "companies", body);
|
|
100
72
|
},
|
|
101
73
|
});
|
|
102
74
|
rl.registerAction("company.list", {
|
|
@@ -124,7 +96,7 @@ export default function keap(rl) {
|
|
|
124
96
|
qs.offset = offset;
|
|
125
97
|
if (optionalProperties)
|
|
126
98
|
qs.optional_properties = optionalProperties;
|
|
127
|
-
const data = (await apiRequest(
|
|
99
|
+
const data = (await apiRequest(ctx, "GET", "companies", undefined, qs));
|
|
128
100
|
return data.companies;
|
|
129
101
|
},
|
|
130
102
|
});
|
|
@@ -192,7 +164,7 @@ export default function keap(rl) {
|
|
|
192
164
|
body.social_accounts = socialAccounts;
|
|
193
165
|
if (additionalFields)
|
|
194
166
|
Object.assign(body, additionalFields);
|
|
195
|
-
return apiRequest(
|
|
167
|
+
return apiRequest(ctx, "PUT", "contacts", body);
|
|
196
168
|
},
|
|
197
169
|
});
|
|
198
170
|
rl.registerAction("contact.get", {
|
|
@@ -211,7 +183,7 @@ export default function keap(rl) {
|
|
|
211
183
|
const qs = {};
|
|
212
184
|
if (optionalProperties)
|
|
213
185
|
qs.optional_properties = optionalProperties;
|
|
214
|
-
return apiRequest(
|
|
186
|
+
return apiRequest(ctx, "GET", `contacts/${pathSegment(contactId)}`, undefined, qs);
|
|
215
187
|
},
|
|
216
188
|
});
|
|
217
189
|
rl.registerAction("contact.list", {
|
|
@@ -250,7 +222,7 @@ export default function keap(rl) {
|
|
|
250
222
|
qs.since = p.since;
|
|
251
223
|
if (p.until)
|
|
252
224
|
qs.until = p.until;
|
|
253
|
-
const data = (await apiRequest(
|
|
225
|
+
const data = (await apiRequest(ctx, "GET", "contacts", undefined, qs));
|
|
254
226
|
return data.contacts;
|
|
255
227
|
},
|
|
256
228
|
});
|
|
@@ -259,7 +231,7 @@ export default function keap(rl) {
|
|
|
259
231
|
description: "Delete a contact",
|
|
260
232
|
inputSchema: { contactId: { type: "number", required: true } },
|
|
261
233
|
async execute(input, ctx) {
|
|
262
|
-
await apiRequest(
|
|
234
|
+
await apiRequest(ctx, "DELETE", `contacts/${pathSegment(input.contactId)}`);
|
|
263
235
|
return { success: true };
|
|
264
236
|
},
|
|
265
237
|
});
|
|
@@ -294,7 +266,7 @@ export default function keap(rl) {
|
|
|
294
266
|
b.title = title;
|
|
295
267
|
if (type)
|
|
296
268
|
b.type = type;
|
|
297
|
-
return apiRequest(
|
|
269
|
+
return apiRequest(ctx, "POST", "notes", b);
|
|
298
270
|
},
|
|
299
271
|
});
|
|
300
272
|
rl.registerAction("contactNote.get", {
|
|
@@ -302,7 +274,7 @@ export default function keap(rl) {
|
|
|
302
274
|
description: "Get a note",
|
|
303
275
|
inputSchema: { noteId: { type: "number", required: true } },
|
|
304
276
|
async execute(input, ctx) {
|
|
305
|
-
return apiRequest(
|
|
277
|
+
return apiRequest(ctx, "GET", `notes/${pathSegment(input.noteId)}`);
|
|
306
278
|
},
|
|
307
279
|
});
|
|
308
280
|
rl.registerAction("contactNote.list", {
|
|
@@ -330,7 +302,7 @@ export default function keap(rl) {
|
|
|
330
302
|
qs.contact_id = p.contactId;
|
|
331
303
|
if (p.userId)
|
|
332
304
|
qs.user_id = p.userId;
|
|
333
|
-
const data = (await apiRequest(
|
|
305
|
+
const data = (await apiRequest(ctx, "GET", "notes", undefined, qs));
|
|
334
306
|
return data.notes;
|
|
335
307
|
},
|
|
336
308
|
});
|
|
@@ -352,7 +324,7 @@ export default function keap(rl) {
|
|
|
352
324
|
bd.title = title;
|
|
353
325
|
if (type)
|
|
354
326
|
bd.type = type;
|
|
355
|
-
return apiRequest(
|
|
327
|
+
return apiRequest(ctx, "PATCH", `notes/${pathSegment(noteId)}`, bd);
|
|
356
328
|
},
|
|
357
329
|
});
|
|
358
330
|
rl.registerAction("contactNote.delete", {
|
|
@@ -360,7 +332,7 @@ export default function keap(rl) {
|
|
|
360
332
|
description: "Delete a note",
|
|
361
333
|
inputSchema: { noteId: { type: "number", required: true } },
|
|
362
334
|
async execute(input, ctx) {
|
|
363
|
-
await apiRequest(
|
|
335
|
+
await apiRequest(ctx, "DELETE", `notes/${pathSegment(input.noteId)}`);
|
|
364
336
|
return { success: true };
|
|
365
337
|
},
|
|
366
338
|
});
|
|
@@ -378,7 +350,7 @@ export default function keap(rl) {
|
|
|
378
350
|
},
|
|
379
351
|
async execute(input, ctx) {
|
|
380
352
|
const { contactId, tagIds } = input;
|
|
381
|
-
return apiRequest(
|
|
353
|
+
return apiRequest(ctx, "POST", `contacts/${pathSegment(contactId)}/tags`, {
|
|
382
354
|
tagIds,
|
|
383
355
|
});
|
|
384
356
|
},
|
|
@@ -396,7 +368,7 @@ export default function keap(rl) {
|
|
|
396
368
|
},
|
|
397
369
|
async execute(input, ctx) {
|
|
398
370
|
const { contactId, tagIds } = input;
|
|
399
|
-
await apiRequest(
|
|
371
|
+
await apiRequest(ctx, "DELETE", `contacts/${pathSegment(contactId)}/tags`, undefined, { ids: tagIds });
|
|
400
372
|
return { success: true };
|
|
401
373
|
},
|
|
402
374
|
});
|
|
@@ -412,7 +384,7 @@ export default function keap(rl) {
|
|
|
412
384
|
const qs = {};
|
|
413
385
|
if (limit)
|
|
414
386
|
qs.limit = limit;
|
|
415
|
-
const data = (await apiRequest(
|
|
387
|
+
const data = (await apiRequest(ctx, "GET", `contacts/${pathSegment(contactId)}/tags`, undefined, qs));
|
|
416
388
|
return data.tags;
|
|
417
389
|
},
|
|
418
390
|
});
|
|
@@ -454,7 +426,7 @@ export default function keap(rl) {
|
|
|
454
426
|
body.shipping_address = shippingAddress;
|
|
455
427
|
if (additionalFields)
|
|
456
428
|
Object.assign(body, additionalFields);
|
|
457
|
-
return apiRequest(
|
|
429
|
+
return apiRequest(ctx, "POST", "orders", body);
|
|
458
430
|
},
|
|
459
431
|
});
|
|
460
432
|
rl.registerAction("order.get", {
|
|
@@ -462,7 +434,7 @@ export default function keap(rl) {
|
|
|
462
434
|
description: "Get an order",
|
|
463
435
|
inputSchema: { orderId: { type: "number", required: true } },
|
|
464
436
|
async execute(input, ctx) {
|
|
465
|
-
return apiRequest(
|
|
437
|
+
return apiRequest(ctx, "GET", `orders/${pathSegment(input.orderId)}`);
|
|
466
438
|
},
|
|
467
439
|
});
|
|
468
440
|
rl.registerAction("order.list", {
|
|
@@ -485,7 +457,7 @@ export default function keap(rl) {
|
|
|
485
457
|
qs.since = p.since;
|
|
486
458
|
if (p.until)
|
|
487
459
|
qs.until = p.until;
|
|
488
|
-
const data = (await apiRequest(
|
|
460
|
+
const data = (await apiRequest(ctx, "GET", "orders", undefined, qs));
|
|
489
461
|
return data.orders;
|
|
490
462
|
},
|
|
491
463
|
});
|
|
@@ -494,7 +466,7 @@ export default function keap(rl) {
|
|
|
494
466
|
description: "Delete an order",
|
|
495
467
|
inputSchema: { orderId: { type: "number", required: true } },
|
|
496
468
|
async execute(input, ctx) {
|
|
497
|
-
await apiRequest(
|
|
469
|
+
await apiRequest(ctx, "DELETE", `orders/${pathSegment(input.orderId)}`);
|
|
498
470
|
return { success: true };
|
|
499
471
|
},
|
|
500
472
|
});
|
|
@@ -515,7 +487,7 @@ export default function keap(rl) {
|
|
|
515
487
|
const body = { product_name: productName };
|
|
516
488
|
if (additionalFields)
|
|
517
489
|
Object.assign(body, additionalFields);
|
|
518
|
-
return apiRequest(
|
|
490
|
+
return apiRequest(ctx, "POST", "products", body);
|
|
519
491
|
},
|
|
520
492
|
});
|
|
521
493
|
rl.registerAction("product.get", {
|
|
@@ -523,7 +495,7 @@ export default function keap(rl) {
|
|
|
523
495
|
description: "Get a product",
|
|
524
496
|
inputSchema: { productId: { type: "number", required: true } },
|
|
525
497
|
async execute(input, ctx) {
|
|
526
|
-
return apiRequest(
|
|
498
|
+
return apiRequest(ctx, "GET", `products/${pathSegment(input.productId)}`);
|
|
527
499
|
},
|
|
528
500
|
});
|
|
529
501
|
rl.registerAction("product.list", {
|
|
@@ -534,7 +506,7 @@ export default function keap(rl) {
|
|
|
534
506
|
const qs = {};
|
|
535
507
|
if (input?.limit)
|
|
536
508
|
qs.limit = input.limit;
|
|
537
|
-
const data = (await apiRequest(
|
|
509
|
+
const data = (await apiRequest(ctx, "GET", "products", undefined, qs));
|
|
538
510
|
return data.products;
|
|
539
511
|
},
|
|
540
512
|
});
|
|
@@ -543,7 +515,7 @@ export default function keap(rl) {
|
|
|
543
515
|
description: "Delete a product",
|
|
544
516
|
inputSchema: { productId: { type: "number", required: true } },
|
|
545
517
|
async execute(input, ctx) {
|
|
546
|
-
await apiRequest(
|
|
518
|
+
await apiRequest(ctx, "DELETE", `products/${pathSegment(input.productId)}`);
|
|
547
519
|
return { success: true };
|
|
548
520
|
},
|
|
549
521
|
});
|
|
@@ -568,7 +540,7 @@ export default function keap(rl) {
|
|
|
568
540
|
};
|
|
569
541
|
if (additionalFields)
|
|
570
542
|
Object.assign(body, additionalFields);
|
|
571
|
-
return apiRequest(
|
|
543
|
+
return apiRequest(ctx, "POST", "emails", body);
|
|
572
544
|
},
|
|
573
545
|
});
|
|
574
546
|
rl.registerAction("email.delete", {
|
|
@@ -576,7 +548,7 @@ export default function keap(rl) {
|
|
|
576
548
|
description: "Delete an email record",
|
|
577
549
|
inputSchema: { emailRecordId: { type: "number", required: true } },
|
|
578
550
|
async execute(input, ctx) {
|
|
579
|
-
await apiRequest(
|
|
551
|
+
await apiRequest(ctx, "DELETE", `emails/${pathSegment(input.emailRecordId)}`);
|
|
580
552
|
return { success: true };
|
|
581
553
|
},
|
|
582
554
|
});
|
|
@@ -600,7 +572,7 @@ export default function keap(rl) {
|
|
|
600
572
|
qs.email = p.email;
|
|
601
573
|
if (p.sinceDate)
|
|
602
574
|
qs.since_sent_date = p.sinceDate;
|
|
603
|
-
const data = (await apiRequest(
|
|
575
|
+
const data = (await apiRequest(ctx, "GET", "emails", undefined, qs));
|
|
604
576
|
return data.emails;
|
|
605
577
|
},
|
|
606
578
|
});
|
|
@@ -640,7 +612,7 @@ export default function keap(rl) {
|
|
|
640
612
|
body.plain_content = plainContent;
|
|
641
613
|
if (attachments)
|
|
642
614
|
body.attachments = attachments;
|
|
643
|
-
await apiRequest(
|
|
615
|
+
await apiRequest(ctx, "POST", "emails/queue", body);
|
|
644
616
|
return { success: true };
|
|
645
617
|
},
|
|
646
618
|
});
|
|
@@ -650,7 +622,7 @@ export default function keap(rl) {
|
|
|
650
622
|
description: "Delete a file",
|
|
651
623
|
inputSchema: { fileId: { type: "number", required: true } },
|
|
652
624
|
async execute(input, ctx) {
|
|
653
|
-
await apiRequest(
|
|
625
|
+
await apiRequest(ctx, "DELETE", `files/${pathSegment(input.fileId)}`);
|
|
654
626
|
return { success: true };
|
|
655
627
|
},
|
|
656
628
|
});
|
|
@@ -689,7 +661,7 @@ export default function keap(rl) {
|
|
|
689
661
|
qs.viewable = p.viewable.toUpperCase();
|
|
690
662
|
if (p.contactId)
|
|
691
663
|
qs.contact_id = p.contactId;
|
|
692
|
-
const data = (await apiRequest(
|
|
664
|
+
const data = (await apiRequest(ctx, "GET", "files", undefined, qs));
|
|
693
665
|
return data.files;
|
|
694
666
|
},
|
|
695
667
|
});
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { httpsBase, staticCredential } from "../../_shared/credentials.js";
|
|
2
|
+
/** An API token, sent as `Authorization: Token …` to the server in config. */
|
|
3
|
+
export const kobotoolboxCredential = staticCredential({
|
|
4
|
+
id: "kobotoolbox",
|
|
5
|
+
auth: { kind: "apiKey", header: "Authorization", prefix: "Token " },
|
|
6
|
+
local: { secret: "token" },
|
|
7
|
+
targets: (config) => ({
|
|
8
|
+
api: {
|
|
9
|
+
baseUrl: httpsBase(config.url, "api/v2/"),
|
|
10
|
+
methods: ["GET", "POST", "PATCH", "DELETE"],
|
|
11
|
+
},
|
|
12
|
+
}),
|
|
13
|
+
});
|
|
@@ -1,51 +1,33 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
}
|
|
8
|
-
}
|
|
9
|
-
const opts = {
|
|
1
|
+
import { credentialJson, pathSegment, pathWithin, } from "../../_shared/credentials.js";
|
|
2
|
+
import { kobotoolboxCredential } from "./credentials.js";
|
|
3
|
+
function apiRequest(ctx, method, endpoint, body, qs) {
|
|
4
|
+
return credentialJson(ctx, kobotoolboxCredential, "kobotoolbox", {
|
|
5
|
+
target: "api",
|
|
6
|
+
path: endpoint,
|
|
10
7
|
method,
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
"
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
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(`KoBoToolbox API error ${res.status}: ${await res.text()}`);
|
|
25
|
-
if (res.status === 204)
|
|
26
|
-
return { success: true };
|
|
27
|
-
return res.json();
|
|
8
|
+
query: qs,
|
|
9
|
+
...(body &&
|
|
10
|
+
Object.keys(body).length > 0 &&
|
|
11
|
+
method !== "GET" &&
|
|
12
|
+
method !== "DELETE"
|
|
13
|
+
? { json: body }
|
|
14
|
+
: {}),
|
|
15
|
+
});
|
|
28
16
|
}
|
|
29
|
-
async function paginate(
|
|
17
|
+
async function paginate(ctx, endpoint, qs = {}) {
|
|
30
18
|
const all = [];
|
|
31
19
|
qs.limit = 3000;
|
|
32
|
-
let
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
nextUrl = initialUrl.toString();
|
|
39
|
-
while (nextUrl) {
|
|
40
|
-
const res = await fetch(nextUrl, {
|
|
41
|
-
headers: { Authorization: `Token ${token}`, Accept: "application/json" },
|
|
42
|
-
});
|
|
43
|
-
if (!res.ok)
|
|
44
|
-
throw new Error(`KoBoToolbox API error ${res.status}: ${await res.text()}`);
|
|
45
|
-
const data = (await res.json());
|
|
46
|
-
if (data.results && Array.isArray(data.results)) {
|
|
20
|
+
let path = endpoint;
|
|
21
|
+
let query = qs;
|
|
22
|
+
while (path) {
|
|
23
|
+
const data = (await apiRequest(ctx, "GET", path, undefined, query));
|
|
24
|
+
query = undefined;
|
|
25
|
+
if (!Array.isArray(data) && data.results && Array.isArray(data.results)) {
|
|
47
26
|
all.push(...data.results);
|
|
48
|
-
|
|
27
|
+
const next = data.next;
|
|
28
|
+
path = next
|
|
29
|
+
? pathWithin(ctx, kobotoolboxCredential, "api", next)
|
|
30
|
+
: undefined;
|
|
49
31
|
}
|
|
50
32
|
else {
|
|
51
33
|
// Non-paginated response
|
|
@@ -57,6 +39,7 @@ async function paginate(baseUrl, token, endpoint, qs = {}) {
|
|
|
57
39
|
export default function kobotoolbox(rl) {
|
|
58
40
|
rl.setName("kobotoolbox");
|
|
59
41
|
rl.setVersion("0.1.0");
|
|
42
|
+
rl.setCredential(kobotoolboxCredential);
|
|
60
43
|
rl.setConnectionSchema({
|
|
61
44
|
url: {
|
|
62
45
|
type: "string",
|
|
@@ -71,10 +54,6 @@ export default function kobotoolbox(rl) {
|
|
|
71
54
|
env: "KOBOTOOLBOX_TOKEN",
|
|
72
55
|
},
|
|
73
56
|
});
|
|
74
|
-
const conn = (ctx) => ({
|
|
75
|
-
baseUrl: ctx.connection.config.url.replace(/\/$/, ""),
|
|
76
|
-
token: ctx.connection.config.token,
|
|
77
|
-
});
|
|
78
57
|
// ── Form ────────────────────────────────────────────
|
|
79
58
|
rl.registerAction("form.get", {
|
|
80
59
|
access: "read",
|
|
@@ -83,8 +62,7 @@ export default function kobotoolbox(rl) {
|
|
|
83
62
|
formId: { type: "string", required: true, description: "Form/asset UID" },
|
|
84
63
|
},
|
|
85
64
|
async execute(input, ctx) {
|
|
86
|
-
|
|
87
|
-
return apiRequest(baseUrl, token, "GET", `/api/v2/assets/${input.formId}`);
|
|
65
|
+
return apiRequest(ctx, "GET", `assets/${pathSegment(input.formId)}`);
|
|
88
66
|
},
|
|
89
67
|
});
|
|
90
68
|
rl.registerAction("form.list", {
|
|
@@ -109,7 +87,6 @@ export default function kobotoolbox(rl) {
|
|
|
109
87
|
},
|
|
110
88
|
},
|
|
111
89
|
async execute(input, ctx) {
|
|
112
|
-
const { baseUrl, token } = conn(ctx);
|
|
113
90
|
const p = (input ?? {});
|
|
114
91
|
const qs = {};
|
|
115
92
|
if (p.filter)
|
|
@@ -118,9 +95,9 @@ export default function kobotoolbox(rl) {
|
|
|
118
95
|
qs.ordering = (p.descending ? "-" : "") + p.ordering;
|
|
119
96
|
if (p.limit) {
|
|
120
97
|
qs.limit = p.limit;
|
|
121
|
-
return apiRequest(
|
|
98
|
+
return apiRequest(ctx, "GET", "assets/", undefined, qs);
|
|
122
99
|
}
|
|
123
|
-
return paginate(
|
|
100
|
+
return paginate(ctx, "assets/", qs);
|
|
124
101
|
},
|
|
125
102
|
});
|
|
126
103
|
rl.registerAction("form.redeploy", {
|
|
@@ -128,8 +105,7 @@ export default function kobotoolbox(rl) {
|
|
|
128
105
|
description: "Redeploy a form",
|
|
129
106
|
inputSchema: { formId: { type: "string", required: true } },
|
|
130
107
|
async execute(input, ctx) {
|
|
131
|
-
|
|
132
|
-
return apiRequest(baseUrl, token, "PATCH", `/api/v2/assets/${input.formId}/deployment/`);
|
|
108
|
+
return apiRequest(ctx, "PATCH", `assets/${pathSegment(input.formId)}/deployment/`);
|
|
133
109
|
},
|
|
134
110
|
});
|
|
135
111
|
// ── Submission ──────────────────────────────────────
|
|
@@ -147,11 +123,10 @@ export default function kobotoolbox(rl) {
|
|
|
147
123
|
},
|
|
148
124
|
async execute(input, ctx) {
|
|
149
125
|
const { formId, submissionId, fields } = input;
|
|
150
|
-
const { baseUrl, token } = conn(ctx);
|
|
151
126
|
const qs = {};
|
|
152
127
|
if (fields && Array.isArray(fields))
|
|
153
128
|
qs.fields = JSON.stringify(fields);
|
|
154
|
-
return apiRequest(
|
|
129
|
+
return apiRequest(ctx, "GET", `assets/${pathSegment(formId)}/data/${pathSegment(submissionId)}`, undefined, qs);
|
|
155
130
|
},
|
|
156
131
|
});
|
|
157
132
|
rl.registerAction("submission.list", {
|
|
@@ -174,7 +149,6 @@ export default function kobotoolbox(rl) {
|
|
|
174
149
|
},
|
|
175
150
|
async execute(input, ctx) {
|
|
176
151
|
const p = input;
|
|
177
|
-
const { baseUrl, token } = conn(ctx);
|
|
178
152
|
const qs = {};
|
|
179
153
|
if (p.query)
|
|
180
154
|
qs.query = p.query;
|
|
@@ -184,10 +158,10 @@ export default function kobotoolbox(rl) {
|
|
|
184
158
|
qs.fields = JSON.stringify(p.fields);
|
|
185
159
|
if (p.limit) {
|
|
186
160
|
qs.limit = p.limit;
|
|
187
|
-
const data = (await apiRequest(
|
|
161
|
+
const data = (await apiRequest(ctx, "GET", `assets/${pathSegment(p.formId)}/data/`, undefined, qs));
|
|
188
162
|
return data.results ?? data;
|
|
189
163
|
}
|
|
190
|
-
return paginate(
|
|
164
|
+
return paginate(ctx, `assets/${pathSegment(p.formId)}/data/`, qs);
|
|
191
165
|
},
|
|
192
166
|
});
|
|
193
167
|
rl.registerAction("submission.delete", {
|
|
@@ -199,8 +173,7 @@ export default function kobotoolbox(rl) {
|
|
|
199
173
|
},
|
|
200
174
|
async execute(input, ctx) {
|
|
201
175
|
const { formId, submissionId } = input;
|
|
202
|
-
|
|
203
|
-
await apiRequest(baseUrl, token, "DELETE", `/api/v2/assets/${formId}/data/${submissionId}`);
|
|
176
|
+
await apiRequest(ctx, "DELETE", `assets/${pathSegment(formId)}/data/${pathSegment(submissionId)}`);
|
|
204
177
|
return { success: true };
|
|
205
178
|
},
|
|
206
179
|
});
|
|
@@ -213,8 +186,7 @@ export default function kobotoolbox(rl) {
|
|
|
213
186
|
},
|
|
214
187
|
async execute(input, ctx) {
|
|
215
188
|
const { formId, submissionId } = input;
|
|
216
|
-
|
|
217
|
-
return apiRequest(baseUrl, token, "GET", `/api/v2/assets/${formId}/data/${submissionId}/validation_status/`);
|
|
189
|
+
return apiRequest(ctx, "GET", `assets/${pathSegment(formId)}/data/${pathSegment(submissionId)}/validation_status/`);
|
|
218
190
|
},
|
|
219
191
|
});
|
|
220
192
|
rl.registerAction("submission.setValidation", {
|
|
@@ -231,8 +203,7 @@ export default function kobotoolbox(rl) {
|
|
|
231
203
|
},
|
|
232
204
|
async execute(input, ctx) {
|
|
233
205
|
const { formId, submissionId, validationStatus } = input;
|
|
234
|
-
|
|
235
|
-
return apiRequest(baseUrl, token, "PATCH", `/api/v2/assets/${formId}/data/${submissionId}/validation_status/`, { "validation_status.uid": validationStatus });
|
|
206
|
+
return apiRequest(ctx, "PATCH", `assets/${pathSegment(formId)}/data/${pathSegment(submissionId)}/validation_status/`, { "validation_status.uid": validationStatus });
|
|
236
207
|
},
|
|
237
208
|
});
|
|
238
209
|
// ── Hook ────────────────────────────────────────────
|
|
@@ -245,8 +216,7 @@ export default function kobotoolbox(rl) {
|
|
|
245
216
|
},
|
|
246
217
|
async execute(input, ctx) {
|
|
247
218
|
const { formId, hookId } = input;
|
|
248
|
-
|
|
249
|
-
return apiRequest(baseUrl, token, "GET", `/api/v2/assets/${formId}/hooks/${hookId}`);
|
|
219
|
+
return apiRequest(ctx, "GET", `assets/${pathSegment(formId)}/hooks/${pathSegment(hookId)}`);
|
|
250
220
|
},
|
|
251
221
|
});
|
|
252
222
|
rl.registerAction("hook.list", {
|
|
@@ -258,10 +228,9 @@ export default function kobotoolbox(rl) {
|
|
|
258
228
|
},
|
|
259
229
|
async execute(input, ctx) {
|
|
260
230
|
const { formId, limit } = input;
|
|
261
|
-
const { baseUrl, token } = conn(ctx);
|
|
262
231
|
if (limit)
|
|
263
|
-
return apiRequest(
|
|
264
|
-
return paginate(
|
|
232
|
+
return apiRequest(ctx, "GET", `assets/${pathSegment(formId)}/hooks/`, undefined, { limit });
|
|
233
|
+
return paginate(ctx, `assets/${pathSegment(formId)}/hooks/`);
|
|
265
234
|
},
|
|
266
235
|
});
|
|
267
236
|
rl.registerAction("hook.retryAll", {
|
|
@@ -273,8 +242,7 @@ export default function kobotoolbox(rl) {
|
|
|
273
242
|
},
|
|
274
243
|
async execute(input, ctx) {
|
|
275
244
|
const { formId, hookId } = input;
|
|
276
|
-
|
|
277
|
-
return apiRequest(baseUrl, token, "PATCH", `/api/v2/assets/${formId}/hooks/${hookId}/retry/`);
|
|
245
|
+
return apiRequest(ctx, "PATCH", `assets/${pathSegment(formId)}/hooks/${pathSegment(hookId)}/retry/`);
|
|
278
246
|
},
|
|
279
247
|
});
|
|
280
248
|
rl.registerAction("hook.getLogs", {
|
|
@@ -301,7 +269,6 @@ export default function kobotoolbox(rl) {
|
|
|
301
269
|
},
|
|
302
270
|
async execute(input, ctx) {
|
|
303
271
|
const { formId, hookId, startDate, endDate, status } = input;
|
|
304
|
-
const { baseUrl, token } = conn(ctx);
|
|
305
272
|
const qs = {};
|
|
306
273
|
if (startDate)
|
|
307
274
|
qs.start = startDate;
|
|
@@ -309,7 +276,7 @@ export default function kobotoolbox(rl) {
|
|
|
309
276
|
qs.end = endDate;
|
|
310
277
|
if (status)
|
|
311
278
|
qs.status = status;
|
|
312
|
-
return apiRequest(
|
|
279
|
+
return apiRequest(ctx, "GET", `assets/${pathSegment(formId)}/hooks/${pathSegment(hookId)}/logs/`, undefined, qs);
|
|
313
280
|
},
|
|
314
281
|
});
|
|
315
282
|
rl.registerAction("hook.retryOne", {
|
|
@@ -322,8 +289,7 @@ export default function kobotoolbox(rl) {
|
|
|
322
289
|
},
|
|
323
290
|
async execute(input, ctx) {
|
|
324
291
|
const { formId, hookId, logId } = input;
|
|
325
|
-
|
|
326
|
-
return apiRequest(baseUrl, token, "PATCH", `/api/v2/assets/${formId}/hooks/${hookId}/logs/${logId}/retry/`);
|
|
292
|
+
return apiRequest(ctx, "PATCH", `assets/${pathSegment(formId)}/hooks/${pathSegment(hookId)}/logs/${pathSegment(logId)}/retry/`);
|
|
327
293
|
},
|
|
328
294
|
});
|
|
329
295
|
// ── File ────────────────────────────────────────────
|
|
@@ -332,8 +298,7 @@ export default function kobotoolbox(rl) {
|
|
|
332
298
|
description: "List media files for a form",
|
|
333
299
|
inputSchema: { formId: { type: "string", required: true } },
|
|
334
300
|
async execute(input, ctx) {
|
|
335
|
-
|
|
336
|
-
return paginate(baseUrl, token, `/api/v2/assets/${input.formId}/files`, { file_type: "form_media" });
|
|
301
|
+
return paginate(ctx, `assets/${pathSegment(input.formId)}/files`, { file_type: "form_media" });
|
|
337
302
|
},
|
|
338
303
|
});
|
|
339
304
|
rl.registerAction("file.get", {
|
|
@@ -345,8 +310,7 @@ export default function kobotoolbox(rl) {
|
|
|
345
310
|
},
|
|
346
311
|
async execute(input, ctx) {
|
|
347
312
|
const { formId, fileId } = input;
|
|
348
|
-
|
|
349
|
-
return apiRequest(baseUrl, token, "GET", `/api/v2/assets/${formId}/files/${fileId}`);
|
|
313
|
+
return apiRequest(ctx, "GET", `assets/${pathSegment(formId)}/files/${pathSegment(fileId)}`);
|
|
350
314
|
},
|
|
351
315
|
});
|
|
352
316
|
rl.registerAction("file.delete", {
|
|
@@ -358,8 +322,7 @@ export default function kobotoolbox(rl) {
|
|
|
358
322
|
},
|
|
359
323
|
async execute(input, ctx) {
|
|
360
324
|
const { formId, fileId } = input;
|
|
361
|
-
|
|
362
|
-
return apiRequest(baseUrl, token, "DELETE", `/api/v2/assets/${formId}/files/${fileId}`);
|
|
325
|
+
return apiRequest(ctx, "DELETE", `assets/${pathSegment(formId)}/files/${pathSegment(fileId)}`);
|
|
363
326
|
},
|
|
364
327
|
});
|
|
365
328
|
rl.registerAction("file.createFromUrl", {
|
|
@@ -375,8 +338,7 @@ export default function kobotoolbox(rl) {
|
|
|
375
338
|
},
|
|
376
339
|
async execute(input, ctx) {
|
|
377
340
|
const { formId, redirectUrl } = input;
|
|
378
|
-
|
|
379
|
-
return apiRequest(baseUrl, token, "POST", `/api/v2/assets/${formId}/files/`, {
|
|
341
|
+
return apiRequest(ctx, "POST", `assets/${pathSegment(formId)}/files/`, {
|
|
380
342
|
description: "Uploaded file",
|
|
381
343
|
file_type: "form_media",
|
|
382
344
|
metadata: { redirect_url: redirectUrl },
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { staticCredential } from "../../_shared/credentials.js";
|
|
2
|
+
/** The API key as the Basic password with an empty username. */
|
|
3
|
+
export const lemlistCredential = staticCredential({
|
|
4
|
+
id: "lemlist",
|
|
5
|
+
auth: { kind: "basic" },
|
|
6
|
+
local: { username: { value: "" }, password: "apiKey" },
|
|
7
|
+
targets: {
|
|
8
|
+
api: {
|
|
9
|
+
baseUrl: "https://api.lemlist.com/api/",
|
|
10
|
+
methods: ["GET", "POST", "DELETE"],
|
|
11
|
+
},
|
|
12
|
+
},
|
|
13
|
+
probe: {
|
|
14
|
+
target: "api",
|
|
15
|
+
path: "team",
|
|
16
|
+
method: "GET",
|
|
17
|
+
acceptedStatuses: [200],
|
|
18
|
+
},
|
|
19
|
+
});
|