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,40 +1,22 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
}
|
|
8
|
-
async function api(conn, method, endpoint, body, qs) {
|
|
9
|
-
const url = new URL(`${BASE}${endpoint}`);
|
|
10
|
-
if (qs) {
|
|
11
|
-
for (const [k, v] of Object.entries(qs)) {
|
|
12
|
-
if (v !== undefined && v !== null)
|
|
13
|
-
url.searchParams.set(k, String(v));
|
|
14
|
-
}
|
|
15
|
-
}
|
|
16
|
-
const init = {
|
|
1
|
+
import { credentialJson, pathSegment } from "../../_shared/credentials.js";
|
|
2
|
+
import { salesmateCredential } from "./credentials.js";
|
|
3
|
+
function api(ctx, method, endpoint, body, qs) {
|
|
4
|
+
return credentialJson(ctx, salesmateCredential, "salesmate", {
|
|
5
|
+
target: "api",
|
|
6
|
+
path: endpoint.replace(/^\//, ""),
|
|
17
7
|
method,
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
},
|
|
23
|
-
};
|
|
24
|
-
if (body && Object.keys(body).length > 0)
|
|
25
|
-
init.body = JSON.stringify(body);
|
|
26
|
-
const res = await fetch(url.toString(), init);
|
|
27
|
-
if (!res.ok)
|
|
28
|
-
throw new Error(`Salesmate error ${res.status}: ${await res.text()}`);
|
|
29
|
-
return res.json();
|
|
8
|
+
query: qs,
|
|
9
|
+
headers: { "x-linkname": String(ctx.connection.config.linkname) },
|
|
10
|
+
...(body && Object.keys(body).length > 0 ? { json: body } : {}),
|
|
11
|
+
});
|
|
30
12
|
}
|
|
31
|
-
function registerCrud(rl, resource, plural,
|
|
13
|
+
function registerCrud(rl, resource, plural, createSchema) {
|
|
32
14
|
rl.registerAction(`${resource}.create`, {
|
|
33
15
|
access: "write",
|
|
34
16
|
description: `Create a ${resource}`,
|
|
35
17
|
inputSchema: createSchema,
|
|
36
18
|
async execute(input, ctx) {
|
|
37
|
-
const data = (await api(
|
|
19
|
+
const data = (await api(ctx, "POST", `/v1/${plural}`, input));
|
|
38
20
|
return data.Data;
|
|
39
21
|
},
|
|
40
22
|
});
|
|
@@ -43,7 +25,7 @@ function registerCrud(rl, resource, plural, conn, createSchema) {
|
|
|
43
25
|
description: `Get a ${resource} by ID`,
|
|
44
26
|
inputSchema: { id: { type: "string", required: true } },
|
|
45
27
|
async execute(input, ctx) {
|
|
46
|
-
const data = (await api(
|
|
28
|
+
const data = (await api(ctx, "GET", `/v1/${plural}/${pathSegment(input.id)}`));
|
|
47
29
|
return data.Data;
|
|
48
30
|
},
|
|
49
31
|
});
|
|
@@ -72,7 +54,7 @@ function registerCrud(rl, resource, plural, conn, createSchema) {
|
|
|
72
54
|
const qs = {};
|
|
73
55
|
if (p.limit)
|
|
74
56
|
qs.rows = p.limit;
|
|
75
|
-
const data = (await api(
|
|
57
|
+
const data = (await api(ctx, "POST", `/v2/${plural}/search`, body, qs));
|
|
76
58
|
return data.Data.data;
|
|
77
59
|
},
|
|
78
60
|
});
|
|
@@ -85,7 +67,7 @@ function registerCrud(rl, resource, plural, conn, createSchema) {
|
|
|
85
67
|
},
|
|
86
68
|
async execute(input, ctx) {
|
|
87
69
|
const p = input;
|
|
88
|
-
const data = (await api(
|
|
70
|
+
const data = (await api(ctx, "PUT", `/v1/${plural}/${pathSegment(p.id)}`, p.data));
|
|
89
71
|
return data.Data;
|
|
90
72
|
},
|
|
91
73
|
});
|
|
@@ -94,13 +76,14 @@ function registerCrud(rl, resource, plural, conn, createSchema) {
|
|
|
94
76
|
description: `Delete a ${resource}`,
|
|
95
77
|
inputSchema: { id: { type: "string", required: true } },
|
|
96
78
|
async execute(input, ctx) {
|
|
97
|
-
return api(
|
|
79
|
+
return api(ctx, "DELETE", `/v1/${plural}/${pathSegment(input.id)}`);
|
|
98
80
|
},
|
|
99
81
|
});
|
|
100
82
|
}
|
|
101
83
|
export default function salesmate(rl) {
|
|
102
84
|
rl.setName("salesmate");
|
|
103
85
|
rl.setVersion("0.1.0");
|
|
86
|
+
rl.setCredential(salesmateCredential);
|
|
104
87
|
rl.setConnectionSchema({
|
|
105
88
|
sessionToken: {
|
|
106
89
|
type: "string",
|
|
@@ -115,14 +98,14 @@ export default function salesmate(rl) {
|
|
|
115
98
|
env: "SALESMATE_LINKNAME",
|
|
116
99
|
},
|
|
117
100
|
});
|
|
118
|
-
registerCrud(rl, "company", "companies",
|
|
101
|
+
registerCrud(rl, "company", "companies", {
|
|
119
102
|
name: { type: "string", required: true },
|
|
120
103
|
owner: { type: "number", required: true },
|
|
121
104
|
website: { type: "string", required: false },
|
|
122
105
|
phone: { type: "string", required: false },
|
|
123
106
|
description: { type: "string", required: false },
|
|
124
107
|
});
|
|
125
|
-
registerCrud(rl, "activity", "activities",
|
|
108
|
+
registerCrud(rl, "activity", "activities", {
|
|
126
109
|
title: { type: "string", required: true },
|
|
127
110
|
owner: { type: "number", required: true },
|
|
128
111
|
type: {
|
|
@@ -133,7 +116,7 @@ export default function salesmate(rl) {
|
|
|
133
116
|
description: { type: "string", required: false },
|
|
134
117
|
dueDate: { type: "string", required: false },
|
|
135
118
|
});
|
|
136
|
-
registerCrud(rl, "deal", "deals",
|
|
119
|
+
registerCrud(rl, "deal", "deals", {
|
|
137
120
|
title: { type: "string", required: true },
|
|
138
121
|
owner: { type: "number", required: true },
|
|
139
122
|
primaryContact: { type: "number", required: true },
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { staticCredential } from "../../_shared/credentials.js";
|
|
2
|
+
/**
|
|
3
|
+
* An API key, sent as `Authorization: Token {key}` to SecurityScorecard's
|
|
4
|
+
* one API origin.
|
|
5
|
+
*/
|
|
6
|
+
export const securityScorecardCredential = staticCredential({
|
|
7
|
+
id: "securityScorecard",
|
|
8
|
+
auth: { kind: "apiKey", header: "Authorization", prefix: "Token " },
|
|
9
|
+
local: { secret: "apiKey" },
|
|
10
|
+
targets: {
|
|
11
|
+
api: {
|
|
12
|
+
baseUrl: "https://api.securityscorecard.io/",
|
|
13
|
+
methods: ["GET", "POST", "PUT", "DELETE"],
|
|
14
|
+
},
|
|
15
|
+
},
|
|
16
|
+
probe: {
|
|
17
|
+
target: "api",
|
|
18
|
+
path: "portfolios",
|
|
19
|
+
method: "GET",
|
|
20
|
+
acceptedStatuses: [200],
|
|
21
|
+
},
|
|
22
|
+
});
|
|
@@ -1,30 +1,18 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
url.searchParams.set(k, String(v));
|
|
8
|
-
}
|
|
9
|
-
}
|
|
10
|
-
const init = {
|
|
1
|
+
import { credentialJson, pathSegment } from "../../_shared/credentials.js";
|
|
2
|
+
import { securityScorecardCredential } from "./credentials.js";
|
|
3
|
+
function apiRequest(ctx, method, path, body, qs) {
|
|
4
|
+
return credentialJson(ctx, securityScorecardCredential, "securityScorecard", {
|
|
5
|
+
target: "api",
|
|
6
|
+
path,
|
|
11
7
|
method,
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
},
|
|
16
|
-
};
|
|
17
|
-
if (body && Object.keys(body).length > 0)
|
|
18
|
-
init.body = JSON.stringify(body);
|
|
19
|
-
const res = await fetch(url.toString(), init);
|
|
20
|
-
if (!res.ok)
|
|
21
|
-
throw new Error(`SecurityScorecard error ${res.status}: ${await res.text()}`);
|
|
22
|
-
const text = await res.text();
|
|
23
|
-
return text ? JSON.parse(text) : {};
|
|
8
|
+
query: qs,
|
|
9
|
+
...(body && Object.keys(body).length > 0 ? { json: body } : {}),
|
|
10
|
+
});
|
|
24
11
|
}
|
|
25
12
|
export default function securityScorecard(rl) {
|
|
26
13
|
rl.setName("securityScorecard");
|
|
27
14
|
rl.setVersion("0.1.0");
|
|
15
|
+
rl.setCredential(securityScorecardCredential);
|
|
28
16
|
rl.setConnectionSchema({
|
|
29
17
|
apiKey: {
|
|
30
18
|
type: "string",
|
|
@@ -33,14 +21,13 @@ export default function securityScorecard(rl) {
|
|
|
33
21
|
env: "SECURITYSCORECARD_API_KEY",
|
|
34
22
|
},
|
|
35
23
|
});
|
|
36
|
-
const key = (ctx) => ctx.connection.config.apiKey;
|
|
37
24
|
// ── Company ─────────────────────────────────────────
|
|
38
25
|
rl.registerAction("company.getScorecard", {
|
|
39
26
|
access: "read",
|
|
40
27
|
description: "Get a company's scorecard by domain",
|
|
41
28
|
inputSchema: { domain: { type: "string", required: true } },
|
|
42
29
|
async execute(input, ctx) {
|
|
43
|
-
return apiRequest(
|
|
30
|
+
return apiRequest(ctx, "GET", `companies/${pathSegment(input.domain)}`);
|
|
44
31
|
},
|
|
45
32
|
});
|
|
46
33
|
rl.registerAction("company.getFactors", {
|
|
@@ -52,7 +39,7 @@ export default function securityScorecard(rl) {
|
|
|
52
39
|
},
|
|
53
40
|
async execute(input, ctx) {
|
|
54
41
|
const p = input;
|
|
55
|
-
const data = (await apiRequest(
|
|
42
|
+
const data = (await apiRequest(ctx, "GET", `companies/${pathSegment(p.domain)}/factors`));
|
|
56
43
|
let entries = (data.entries ?? []);
|
|
57
44
|
if (p.limit)
|
|
58
45
|
entries = entries.slice(0, p.limit);
|
|
@@ -83,7 +70,7 @@ export default function securityScorecard(rl) {
|
|
|
83
70
|
qs.from = p.from;
|
|
84
71
|
if (p.to)
|
|
85
72
|
qs.to = p.to;
|
|
86
|
-
const data = (await apiRequest(
|
|
73
|
+
const data = (await apiRequest(ctx, "GET", `companies/${pathSegment(p.domain)}/history/factors/score`, undefined, qs));
|
|
87
74
|
let entries = (data.entries ?? []);
|
|
88
75
|
if (p.limit)
|
|
89
76
|
entries = entries.slice(0, p.limit);
|
|
@@ -99,7 +86,7 @@ export default function securityScorecard(rl) {
|
|
|
99
86
|
},
|
|
100
87
|
async execute(input, ctx) {
|
|
101
88
|
const p = input;
|
|
102
|
-
const data = (await apiRequest(
|
|
89
|
+
const data = (await apiRequest(ctx, "GET", `companies/${pathSegment(p.domain)}/score-plans/by-target/${pathSegment(p.targetScore)}`));
|
|
103
90
|
return data.entries;
|
|
104
91
|
},
|
|
105
92
|
});
|
|
@@ -109,7 +96,7 @@ export default function securityScorecard(rl) {
|
|
|
109
96
|
description: "Get an industry's average score",
|
|
110
97
|
inputSchema: { industry: { type: "string", required: true } },
|
|
111
98
|
async execute(input, ctx) {
|
|
112
|
-
return apiRequest(
|
|
99
|
+
return apiRequest(ctx, "GET", `industries/${pathSegment(input.industry)}/score`);
|
|
113
100
|
},
|
|
114
101
|
});
|
|
115
102
|
// ── Portfolio ───────────────────────────────────────
|
|
@@ -127,7 +114,7 @@ export default function securityScorecard(rl) {
|
|
|
127
114
|
},
|
|
128
115
|
async execute(input, ctx) {
|
|
129
116
|
const p = input;
|
|
130
|
-
return apiRequest(
|
|
117
|
+
return apiRequest(ctx, "POST", "portfolios", {
|
|
131
118
|
name: p.name,
|
|
132
119
|
description: p.description,
|
|
133
120
|
privacy: p.privacy,
|
|
@@ -139,7 +126,7 @@ export default function securityScorecard(rl) {
|
|
|
139
126
|
description: "List all portfolios",
|
|
140
127
|
inputSchema: { limit: { type: "number", required: false } },
|
|
141
128
|
async execute(input, ctx) {
|
|
142
|
-
const data = (await apiRequest(
|
|
129
|
+
const data = (await apiRequest(ctx, "GET", "portfolios"));
|
|
143
130
|
let entries = (data.entries ?? []);
|
|
144
131
|
if (input?.limit)
|
|
145
132
|
entries = entries.slice(0, input.limit);
|
|
@@ -151,7 +138,7 @@ export default function securityScorecard(rl) {
|
|
|
151
138
|
description: "Delete a portfolio",
|
|
152
139
|
inputSchema: { portfolioId: { type: "string", required: true } },
|
|
153
140
|
async execute(input, ctx) {
|
|
154
|
-
await apiRequest(
|
|
141
|
+
await apiRequest(ctx, "DELETE", `portfolios/${pathSegment(input.portfolioId)}`);
|
|
155
142
|
return { success: true };
|
|
156
143
|
},
|
|
157
144
|
});
|
|
@@ -164,7 +151,7 @@ export default function securityScorecard(rl) {
|
|
|
164
151
|
},
|
|
165
152
|
async execute(input, ctx) {
|
|
166
153
|
const p = input;
|
|
167
|
-
return apiRequest(
|
|
154
|
+
return apiRequest(ctx, "PUT", `portfolios/${pathSegment(p.portfolioId)}/companies/${pathSegment(p.domain)}`);
|
|
168
155
|
},
|
|
169
156
|
});
|
|
170
157
|
rl.registerAction("portfolioCompany.remove", {
|
|
@@ -176,7 +163,7 @@ export default function securityScorecard(rl) {
|
|
|
176
163
|
},
|
|
177
164
|
async execute(input, ctx) {
|
|
178
165
|
const p = input;
|
|
179
|
-
await apiRequest(
|
|
166
|
+
await apiRequest(ctx, "DELETE", `portfolios/${pathSegment(p.portfolioId)}/companies/${pathSegment(p.domain)}`);
|
|
180
167
|
return { success: true };
|
|
181
168
|
},
|
|
182
169
|
});
|
|
@@ -189,7 +176,7 @@ export default function securityScorecard(rl) {
|
|
|
189
176
|
},
|
|
190
177
|
async execute(input, ctx) {
|
|
191
178
|
const p = input;
|
|
192
|
-
const data = (await apiRequest(
|
|
179
|
+
const data = (await apiRequest(ctx, "GET", `portfolios/${pathSegment(p.portfolioId)}/companies`));
|
|
193
180
|
let entries = (data.entries ?? []);
|
|
194
181
|
if (p.limit)
|
|
195
182
|
entries = entries.slice(0, p.limit);
|
|
@@ -208,7 +195,7 @@ export default function securityScorecard(rl) {
|
|
|
208
195
|
},
|
|
209
196
|
async execute(input, ctx) {
|
|
210
197
|
const p = input;
|
|
211
|
-
return apiRequest(
|
|
198
|
+
return apiRequest(ctx, "POST", "invitations", {
|
|
212
199
|
email: p.email,
|
|
213
200
|
first_name: p.firstName,
|
|
214
201
|
last_name: p.lastName,
|
|
@@ -254,7 +241,7 @@ export default function securityScorecard(rl) {
|
|
|
254
241
|
body.format = p.format;
|
|
255
242
|
if (p.branding)
|
|
256
243
|
body.branding = p.branding;
|
|
257
|
-
return apiRequest(
|
|
244
|
+
return apiRequest(ctx, "POST", `reports/${pathSegment(p.reportType)}`, body);
|
|
258
245
|
},
|
|
259
246
|
});
|
|
260
247
|
rl.registerAction("report.list", {
|
|
@@ -262,7 +249,7 @@ export default function securityScorecard(rl) {
|
|
|
262
249
|
description: "List recent reports",
|
|
263
250
|
inputSchema: { limit: { type: "number", required: false } },
|
|
264
251
|
async execute(input, ctx) {
|
|
265
|
-
const data = (await apiRequest(
|
|
252
|
+
const data = (await apiRequest(ctx, "GET", "reports/recent"));
|
|
266
253
|
let entries = (data.entries ?? []);
|
|
267
254
|
if (input?.limit)
|
|
268
255
|
entries = entries.slice(0, input.limit);
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { staticCredential } from "../../_shared/credentials.js";
|
|
2
|
+
/**
|
|
3
|
+
* A source write key as the Basic username with a fixed empty password,
|
|
4
|
+
* to Segment's v1 tracking API.
|
|
5
|
+
*/
|
|
6
|
+
export const segmentCredential = staticCredential({
|
|
7
|
+
id: "segment",
|
|
8
|
+
auth: { kind: "basic" },
|
|
9
|
+
local: { username: "writeKey", password: { value: "" } },
|
|
10
|
+
targets: {
|
|
11
|
+
api: {
|
|
12
|
+
baseUrl: "https://api.segment.io/v1/",
|
|
13
|
+
methods: ["POST"],
|
|
14
|
+
},
|
|
15
|
+
},
|
|
16
|
+
});
|
|
@@ -1,20 +1,17 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
1
|
+
import { credentialJson } from "../../_shared/credentials.js";
|
|
2
|
+
import { segmentCredential } from "./credentials.js";
|
|
3
|
+
function apiRequest(ctx, path, body) {
|
|
4
|
+
return credentialJson(ctx, segmentCredential, "segment", {
|
|
5
|
+
target: "api",
|
|
6
|
+
path,
|
|
4
7
|
method: "POST",
|
|
5
|
-
|
|
6
|
-
Authorization: "Basic " + btoa(`${writeKey}:`),
|
|
7
|
-
"Content-Type": "application/json",
|
|
8
|
-
},
|
|
9
|
-
body: JSON.stringify(body),
|
|
8
|
+
json: body,
|
|
10
9
|
});
|
|
11
|
-
if (!res.ok)
|
|
12
|
-
throw new Error(`Segment error ${res.status}: ${await res.text()}`);
|
|
13
|
-
return res.json();
|
|
14
10
|
}
|
|
15
11
|
export default function segment(rl) {
|
|
16
12
|
rl.setName("segment");
|
|
17
13
|
rl.setVersion("0.1.0");
|
|
14
|
+
rl.setCredential(segmentCredential);
|
|
18
15
|
rl.setConnectionSchema({
|
|
19
16
|
writeKey: {
|
|
20
17
|
type: "string",
|
|
@@ -23,7 +20,6 @@ export default function segment(rl) {
|
|
|
23
20
|
env: "SEGMENT_WRITE_KEY",
|
|
24
21
|
},
|
|
25
22
|
});
|
|
26
|
-
const key = (ctx) => ctx.connection.config.writeKey;
|
|
27
23
|
rl.registerAction("identify.create", {
|
|
28
24
|
access: "write",
|
|
29
25
|
description: "Identify a user (tie user to traits)",
|
|
@@ -55,7 +51,7 @@ export default function segment(rl) {
|
|
|
55
51
|
body.context = p.context;
|
|
56
52
|
if (p.integrations)
|
|
57
53
|
body.integrations = p.integrations;
|
|
58
|
-
return apiRequest(
|
|
54
|
+
return apiRequest(ctx, "identify", body);
|
|
59
55
|
},
|
|
60
56
|
});
|
|
61
57
|
rl.registerAction("track.event", {
|
|
@@ -86,7 +82,7 @@ export default function segment(rl) {
|
|
|
86
82
|
body.context = p.context;
|
|
87
83
|
if (p.integrations)
|
|
88
84
|
body.integrations = p.integrations;
|
|
89
|
-
return apiRequest(
|
|
85
|
+
return apiRequest(ctx, "track", body);
|
|
90
86
|
},
|
|
91
87
|
});
|
|
92
88
|
rl.registerAction("track.page", {
|
|
@@ -113,7 +109,7 @@ export default function segment(rl) {
|
|
|
113
109
|
body.context = p.context;
|
|
114
110
|
if (p.integrations)
|
|
115
111
|
body.integrations = p.integrations;
|
|
116
|
-
return apiRequest(
|
|
112
|
+
return apiRequest(ctx, "page", body);
|
|
117
113
|
},
|
|
118
114
|
});
|
|
119
115
|
rl.registerAction("group.add", {
|
|
@@ -140,7 +136,7 @@ export default function segment(rl) {
|
|
|
140
136
|
body.context = p.context;
|
|
141
137
|
if (p.integrations)
|
|
142
138
|
body.integrations = p.integrations;
|
|
143
|
-
return apiRequest(
|
|
139
|
+
return apiRequest(ctx, "group", body);
|
|
144
140
|
},
|
|
145
141
|
});
|
|
146
142
|
}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { staticCredential } from "../../_shared/credentials.js";
|
|
2
|
+
/** An API key, sent as a bearer to SendGrid's v3 API. */
|
|
3
|
+
export const sendgridCredential = staticCredential({
|
|
4
|
+
id: "sendgrid",
|
|
5
|
+
auth: { kind: "bearer" },
|
|
6
|
+
local: { secret: "apiKey" },
|
|
7
|
+
targets: {
|
|
8
|
+
api: {
|
|
9
|
+
baseUrl: "https://api.sendgrid.com/v3/",
|
|
10
|
+
methods: ["GET", "POST", "PUT", "PATCH", "DELETE"],
|
|
11
|
+
},
|
|
12
|
+
},
|
|
13
|
+
});
|
|
@@ -1,34 +1,31 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
}
|
|
10
|
-
const init = {
|
|
1
|
+
import { AuthError, } from "runline";
|
|
2
|
+
import { credentialOk, pathSegment } from "../../_shared/credentials.js";
|
|
3
|
+
import { sendgridCredential } from "./credentials.js";
|
|
4
|
+
/** A JSON request whose response headers stay readable (mail.send's x-message-id). */
|
|
5
|
+
async function apiRequest(ctx, method, endpoint, body, qs) {
|
|
6
|
+
const res = await credentialOk(ctx, sendgridCredential, "sendgrid", {
|
|
7
|
+
target: "api",
|
|
8
|
+
path: endpoint,
|
|
11
9
|
method,
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
},
|
|
16
|
-
};
|
|
17
|
-
if (body !== undefined)
|
|
18
|
-
init.body = JSON.stringify(body);
|
|
19
|
-
const res = await fetch(url.toString(), init);
|
|
20
|
-
if (!res.ok && res.status !== 202)
|
|
21
|
-
throw new Error(`SendGrid error ${res.status}: ${await res.text()}`);
|
|
10
|
+
query: qs,
|
|
11
|
+
...(body !== undefined ? { json: body } : {}),
|
|
12
|
+
});
|
|
22
13
|
const text = await res.text();
|
|
23
14
|
const headers = {};
|
|
24
15
|
res.headers.forEach((v, k) => {
|
|
25
16
|
headers[k] = v;
|
|
26
17
|
});
|
|
27
|
-
|
|
18
|
+
try {
|
|
19
|
+
return { data: text ? JSON.parse(text) : {}, headers };
|
|
20
|
+
}
|
|
21
|
+
catch {
|
|
22
|
+
throw new AuthError("invalid_response");
|
|
23
|
+
}
|
|
28
24
|
}
|
|
29
25
|
export default function sendgrid(rl) {
|
|
30
26
|
rl.setName("sendgrid");
|
|
31
27
|
rl.setVersion("0.1.0");
|
|
28
|
+
rl.setCredential(sendgridCredential);
|
|
32
29
|
rl.setConnectionSchema({
|
|
33
30
|
apiKey: {
|
|
34
31
|
type: "string",
|
|
@@ -37,7 +34,6 @@ export default function sendgrid(rl) {
|
|
|
37
34
|
env: "SENDGRID_API_KEY",
|
|
38
35
|
},
|
|
39
36
|
});
|
|
40
|
-
const key = (ctx) => ctx.connection.config.apiKey;
|
|
41
37
|
// ── Mail ────────────────────────────────────────────
|
|
42
38
|
rl.registerAction("mail.send", {
|
|
43
39
|
access: "write",
|
|
@@ -112,7 +108,7 @@ export default function sendgrid(rl) {
|
|
|
112
108
|
body.reply_to_list = p.replyTo
|
|
113
109
|
.split(",")
|
|
114
110
|
.map((e) => ({ email: e.trim() }));
|
|
115
|
-
const { headers } = await apiRequest(
|
|
111
|
+
const { headers } = await apiRequest(ctx, "POST", "mail/send", body);
|
|
116
112
|
return { messageId: headers["x-message-id"] ?? null };
|
|
117
113
|
},
|
|
118
114
|
});
|
|
@@ -131,10 +127,10 @@ export default function sendgrid(rl) {
|
|
|
131
127
|
async execute(input, ctx) {
|
|
132
128
|
const p = input;
|
|
133
129
|
if (p.contactId) {
|
|
134
|
-
const { data } = await apiRequest(
|
|
130
|
+
const { data } = await apiRequest(ctx, "GET", `marketing/contacts/${pathSegment(p.contactId)}`);
|
|
135
131
|
return data;
|
|
136
132
|
}
|
|
137
|
-
const { data } = await apiRequest(
|
|
133
|
+
const { data } = await apiRequest(ctx, "POST", "marketing/contacts/search", { query: `email LIKE '${p.email}'` });
|
|
138
134
|
const result = data.result;
|
|
139
135
|
return result?.[0];
|
|
140
136
|
},
|
|
@@ -152,15 +148,15 @@ export default function sendgrid(rl) {
|
|
|
152
148
|
},
|
|
153
149
|
async execute(input, ctx) {
|
|
154
150
|
const p = (input ?? {});
|
|
155
|
-
let endpoint = "
|
|
151
|
+
let endpoint = "marketing/contacts";
|
|
156
152
|
let method = "GET";
|
|
157
153
|
const body = {};
|
|
158
154
|
if (p.query) {
|
|
159
|
-
endpoint = "
|
|
155
|
+
endpoint = "marketing/contacts/search";
|
|
160
156
|
method = "POST";
|
|
161
157
|
body.query = p.query;
|
|
162
158
|
}
|
|
163
|
-
const { data } = await apiRequest(
|
|
159
|
+
const { data } = await apiRequest(ctx, method, endpoint, Object.keys(body).length ? body : undefined);
|
|
164
160
|
let result = (data.result ??
|
|
165
161
|
[]);
|
|
166
162
|
if (p.limit)
|
|
@@ -188,7 +184,7 @@ export default function sendgrid(rl) {
|
|
|
188
184
|
const body = { contacts: p.contacts };
|
|
189
185
|
if (p.listIds)
|
|
190
186
|
body.list_ids = p.listIds;
|
|
191
|
-
const { data } = await apiRequest(
|
|
187
|
+
const { data } = await apiRequest(ctx, "PUT", "marketing/contacts", body);
|
|
192
188
|
return data;
|
|
193
189
|
},
|
|
194
190
|
});
|
|
@@ -204,7 +200,7 @@ export default function sendgrid(rl) {
|
|
|
204
200
|
},
|
|
205
201
|
async execute(input, ctx) {
|
|
206
202
|
const { ids } = input;
|
|
207
|
-
const { data } = await apiRequest(
|
|
203
|
+
const { data } = await apiRequest(ctx, "DELETE", "marketing/contacts", undefined, { ids });
|
|
208
204
|
return data;
|
|
209
205
|
},
|
|
210
206
|
});
|
|
@@ -214,7 +210,7 @@ export default function sendgrid(rl) {
|
|
|
214
210
|
description: "Create a contact list",
|
|
215
211
|
inputSchema: { name: { type: "string", required: true } },
|
|
216
212
|
async execute(input, ctx) {
|
|
217
|
-
const { data } = await apiRequest(
|
|
213
|
+
const { data } = await apiRequest(ctx, "POST", "marketing/lists", {
|
|
218
214
|
name: input.name,
|
|
219
215
|
});
|
|
220
216
|
return data;
|
|
@@ -225,7 +221,7 @@ export default function sendgrid(rl) {
|
|
|
225
221
|
description: "Get a list by ID",
|
|
226
222
|
inputSchema: { listId: { type: "string", required: true } },
|
|
227
223
|
async execute(input, ctx) {
|
|
228
|
-
const { data } = await apiRequest(
|
|
224
|
+
const { data } = await apiRequest(ctx, "GET", `marketing/lists/${pathSegment(input.listId)}`);
|
|
229
225
|
return data;
|
|
230
226
|
},
|
|
231
227
|
});
|
|
@@ -234,7 +230,7 @@ export default function sendgrid(rl) {
|
|
|
234
230
|
description: "List all contact lists",
|
|
235
231
|
inputSchema: { limit: { type: "number", required: false } },
|
|
236
232
|
async execute(input, ctx) {
|
|
237
|
-
const { data } = await apiRequest(
|
|
233
|
+
const { data } = await apiRequest(ctx, "GET", "marketing/lists");
|
|
238
234
|
let result = (data.result ??
|
|
239
235
|
[]);
|
|
240
236
|
if (input?.limit)
|
|
@@ -251,7 +247,7 @@ export default function sendgrid(rl) {
|
|
|
251
247
|
},
|
|
252
248
|
async execute(input, ctx) {
|
|
253
249
|
const p = input;
|
|
254
|
-
const { data } = await apiRequest(
|
|
250
|
+
const { data } = await apiRequest(ctx, "PATCH", `marketing/lists/${pathSegment(p.listId)}`, { name: p.name });
|
|
255
251
|
return data;
|
|
256
252
|
},
|
|
257
253
|
});
|
|
@@ -268,7 +264,7 @@ export default function sendgrid(rl) {
|
|
|
268
264
|
},
|
|
269
265
|
async execute(input, ctx) {
|
|
270
266
|
const p = input;
|
|
271
|
-
await apiRequest(
|
|
267
|
+
await apiRequest(ctx, "DELETE", `marketing/lists/${pathSegment(p.listId)}`, undefined, { delete_contacts: p.deleteContacts ? "true" : "false" });
|
|
272
268
|
return { success: true };
|
|
273
269
|
},
|
|
274
270
|
});
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { httpsBase, staticCredential } from "../../_shared/credentials.js";
|
|
2
|
+
/**
|
|
3
|
+
* An API key, added by the transport as the api_key field of every form
|
|
4
|
+
* call to the connection's own Sendy installation. The installation URL
|
|
5
|
+
* is public config and must be HTTPS.
|
|
6
|
+
*/
|
|
7
|
+
export const sendyCredential = staticCredential({
|
|
8
|
+
id: "sendy",
|
|
9
|
+
auth: {
|
|
10
|
+
kind: "static",
|
|
11
|
+
parts: ["key"],
|
|
12
|
+
placements: [{ in: "body", part: "key", name: "api_key" }],
|
|
13
|
+
},
|
|
14
|
+
local: { key: "apiKey" },
|
|
15
|
+
targets: (config) => ({
|
|
16
|
+
api: { baseUrl: httpsBase(config.url, ""), methods: ["POST"] },
|
|
17
|
+
}),
|
|
18
|
+
});
|