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
|
@@ -22,7 +22,8 @@
|
|
|
22
22
|
*/
|
|
23
23
|
import * as t from "typebox";
|
|
24
24
|
import { renderEmailJsx } from "../../_shared/emailJsx.js";
|
|
25
|
-
import {
|
|
25
|
+
import { pathSegment } from "../../_shared/credentials.js";
|
|
26
|
+
import { googleCredential, googleJsonRequest } from "../../_shared/googleAuth.js";
|
|
26
27
|
import { GoogleTimestamp, Id, NonEmptyString, stringEnum, } from "../../_shared/googleSchemas.js";
|
|
27
28
|
// ─── Request ─────────────────────────────────────────────────────
|
|
28
29
|
const API_BASE = "https://gmail.googleapis.com/gmail/v1/users/me";
|
|
@@ -437,7 +438,7 @@ async function replyToMessage(ctx, messageId, p) {
|
|
|
437
438
|
// Render before any network round-trip so malformed jsx fails
|
|
438
439
|
// without spending Gmail API calls.
|
|
439
440
|
const { text, html } = await resolveBody(p);
|
|
440
|
-
const original = (await gmailRequest(ctx, "GET", `/messages/${messageId}`, undefined, { format: "metadata", metadataHeaders: REPLY_METADATA_HEADERS }));
|
|
441
|
+
const original = (await gmailRequest(ctx, "GET", `/messages/${pathSegment(messageId)}`, undefined, { format: "metadata", metadataHeaders: REPLY_METADATA_HEADERS }));
|
|
441
442
|
const subject = findHeader(original.payload, "Subject") ?? "";
|
|
442
443
|
const messageIdHeader = findHeader(original.payload, "Message-ID") ?? "";
|
|
443
444
|
const threadId = original.threadId;
|
|
@@ -580,6 +581,7 @@ const ListInput = t.Object(ListFields, strict);
|
|
|
580
581
|
export default function gmail(rl) {
|
|
581
582
|
rl.setName("gmail");
|
|
582
583
|
rl.setVersion("0.1.0");
|
|
584
|
+
rl.setCredential(googleCredential("gmail", SCOPES));
|
|
583
585
|
rl.setOAuth({
|
|
584
586
|
authUrl: "https://accounts.google.com/o/oauth2/v2/auth",
|
|
585
587
|
tokenUrl: "https://oauth2.googleapis.com/token",
|
|
@@ -750,7 +752,7 @@ export default function gmail(rl) {
|
|
|
750
752
|
const qs = { format: p.format ?? "full" };
|
|
751
753
|
if (p.metadataHeaders)
|
|
752
754
|
qs.metadataHeaders = p.metadataHeaders;
|
|
753
|
-
const raw = (await gmailRequest(ctx, "GET", `/messages/${p.id}`, undefined, qs));
|
|
755
|
+
const raw = (await gmailRequest(ctx, "GET", `/messages/${pathSegment(p.id)}`, undefined, qs));
|
|
754
756
|
if (!p.simple)
|
|
755
757
|
return raw;
|
|
756
758
|
const labels = await loadLabelMap(ctx);
|
|
@@ -778,7 +780,7 @@ export default function gmail(rl) {
|
|
|
778
780
|
inputSchema: IdInput,
|
|
779
781
|
async execute(input, ctx) {
|
|
780
782
|
const { id } = input;
|
|
781
|
-
return gmailRequest(ctx, "DELETE", `/messages/${id}`);
|
|
783
|
+
return gmailRequest(ctx, "DELETE", `/messages/${pathSegment(id)}`);
|
|
782
784
|
},
|
|
783
785
|
});
|
|
784
786
|
rl.registerAction("message.trash", {
|
|
@@ -787,7 +789,7 @@ export default function gmail(rl) {
|
|
|
787
789
|
inputSchema: IdInput,
|
|
788
790
|
async execute(input, ctx) {
|
|
789
791
|
const { id } = input;
|
|
790
|
-
return gmailRequest(ctx, "POST", `/messages/${id}/trash`);
|
|
792
|
+
return gmailRequest(ctx, "POST", `/messages/${pathSegment(id)}/trash`);
|
|
791
793
|
},
|
|
792
794
|
});
|
|
793
795
|
rl.registerAction("message.untrash", {
|
|
@@ -796,7 +798,7 @@ export default function gmail(rl) {
|
|
|
796
798
|
inputSchema: IdInput,
|
|
797
799
|
async execute(input, ctx) {
|
|
798
800
|
const { id } = input;
|
|
799
|
-
return gmailRequest(ctx, "POST", `/messages/${id}/untrash`);
|
|
801
|
+
return gmailRequest(ctx, "POST", `/messages/${pathSegment(id)}/untrash`);
|
|
800
802
|
},
|
|
801
803
|
});
|
|
802
804
|
rl.registerAction("message.markAsRead", {
|
|
@@ -805,7 +807,7 @@ export default function gmail(rl) {
|
|
|
805
807
|
inputSchema: IdInput,
|
|
806
808
|
async execute(input, ctx) {
|
|
807
809
|
const { id } = input;
|
|
808
|
-
return gmailRequest(ctx, "POST", `/messages/${id}/modify`, {
|
|
810
|
+
return gmailRequest(ctx, "POST", `/messages/${pathSegment(id)}/modify`, {
|
|
809
811
|
removeLabelIds: ["UNREAD"],
|
|
810
812
|
});
|
|
811
813
|
},
|
|
@@ -816,7 +818,7 @@ export default function gmail(rl) {
|
|
|
816
818
|
inputSchema: IdInput,
|
|
817
819
|
async execute(input, ctx) {
|
|
818
820
|
const { id } = input;
|
|
819
|
-
return gmailRequest(ctx, "POST", `/messages/${id}/modify`, {
|
|
821
|
+
return gmailRequest(ctx, "POST", `/messages/${pathSegment(id)}/modify`, {
|
|
820
822
|
addLabelIds: ["UNREAD"],
|
|
821
823
|
});
|
|
822
824
|
},
|
|
@@ -827,7 +829,7 @@ export default function gmail(rl) {
|
|
|
827
829
|
inputSchema: t.Object({ id: Id, labelIds: LabelIds }, strict),
|
|
828
830
|
async execute(input, ctx) {
|
|
829
831
|
const { id, labelIds } = input;
|
|
830
|
-
return gmailRequest(ctx, "POST", `/messages/${id}/modify`, {
|
|
832
|
+
return gmailRequest(ctx, "POST", `/messages/${pathSegment(id)}/modify`, {
|
|
831
833
|
addLabelIds: labelIds,
|
|
832
834
|
});
|
|
833
835
|
},
|
|
@@ -838,7 +840,7 @@ export default function gmail(rl) {
|
|
|
838
840
|
inputSchema: t.Object({ id: Id, labelIds: LabelIds }, strict),
|
|
839
841
|
async execute(input, ctx) {
|
|
840
842
|
const { id, labelIds } = input;
|
|
841
|
-
return gmailRequest(ctx, "POST", `/messages/${id}/modify`, {
|
|
843
|
+
return gmailRequest(ctx, "POST", `/messages/${pathSegment(id)}/modify`, {
|
|
842
844
|
removeLabelIds: labelIds,
|
|
843
845
|
});
|
|
844
846
|
},
|
|
@@ -849,7 +851,7 @@ export default function gmail(rl) {
|
|
|
849
851
|
inputSchema: t.Object({ messageId: Id, attachmentId: Id }, strict),
|
|
850
852
|
async execute(input, ctx) {
|
|
851
853
|
const { messageId, attachmentId } = input;
|
|
852
|
-
return gmailRequest(ctx, "GET", `/messages/${messageId}/attachments/${attachmentId}`);
|
|
854
|
+
return gmailRequest(ctx, "GET", `/messages/${pathSegment(messageId)}/attachments/${pathSegment(attachmentId)}`);
|
|
853
855
|
},
|
|
854
856
|
});
|
|
855
857
|
// ── Thread ────────────────────────────────────────────
|
|
@@ -869,7 +871,7 @@ export default function gmail(rl) {
|
|
|
869
871
|
const qs = { format: p.format ?? "full" };
|
|
870
872
|
if (p.metadataHeaders)
|
|
871
873
|
qs.metadataHeaders = p.metadataHeaders;
|
|
872
|
-
const raw = (await gmailRequest(ctx, "GET", `/threads/${p.id}`, undefined, qs));
|
|
874
|
+
const raw = (await gmailRequest(ctx, "GET", `/threads/${pathSegment(p.id)}`, undefined, qs));
|
|
873
875
|
if (!p.simple)
|
|
874
876
|
return raw;
|
|
875
877
|
const labels = await loadLabelMap(ctx);
|
|
@@ -896,7 +898,7 @@ export default function gmail(rl) {
|
|
|
896
898
|
inputSchema: IdInput,
|
|
897
899
|
async execute(input, ctx) {
|
|
898
900
|
const { id } = input;
|
|
899
|
-
return gmailRequest(ctx, "DELETE", `/threads/${id}`);
|
|
901
|
+
return gmailRequest(ctx, "DELETE", `/threads/${pathSegment(id)}`);
|
|
900
902
|
},
|
|
901
903
|
});
|
|
902
904
|
rl.registerAction("thread.trash", {
|
|
@@ -905,7 +907,7 @@ export default function gmail(rl) {
|
|
|
905
907
|
inputSchema: IdInput,
|
|
906
908
|
async execute(input, ctx) {
|
|
907
909
|
const { id } = input;
|
|
908
|
-
return gmailRequest(ctx, "POST", `/threads/${id}/trash`);
|
|
910
|
+
return gmailRequest(ctx, "POST", `/threads/${pathSegment(id)}/trash`);
|
|
909
911
|
},
|
|
910
912
|
});
|
|
911
913
|
rl.registerAction("thread.untrash", {
|
|
@@ -914,7 +916,7 @@ export default function gmail(rl) {
|
|
|
914
916
|
inputSchema: IdInput,
|
|
915
917
|
async execute(input, ctx) {
|
|
916
918
|
const { id } = input;
|
|
917
|
-
return gmailRequest(ctx, "POST", `/threads/${id}/untrash`);
|
|
919
|
+
return gmailRequest(ctx, "POST", `/threads/${pathSegment(id)}/untrash`);
|
|
918
920
|
},
|
|
919
921
|
});
|
|
920
922
|
rl.registerAction("thread.addLabels", {
|
|
@@ -923,7 +925,7 @@ export default function gmail(rl) {
|
|
|
923
925
|
inputSchema: t.Object({ id: Id, labelIds: LabelIds }, strict),
|
|
924
926
|
async execute(input, ctx) {
|
|
925
927
|
const { id, labelIds } = input;
|
|
926
|
-
return gmailRequest(ctx, "POST", `/threads/${id}/modify`, {
|
|
928
|
+
return gmailRequest(ctx, "POST", `/threads/${pathSegment(id)}/modify`, {
|
|
927
929
|
addLabelIds: labelIds,
|
|
928
930
|
});
|
|
929
931
|
},
|
|
@@ -934,7 +936,7 @@ export default function gmail(rl) {
|
|
|
934
936
|
inputSchema: t.Object({ id: Id, labelIds: LabelIds }, strict),
|
|
935
937
|
async execute(input, ctx) {
|
|
936
938
|
const { id, labelIds } = input;
|
|
937
|
-
return gmailRequest(ctx, "POST", `/threads/${id}/modify`, {
|
|
939
|
+
return gmailRequest(ctx, "POST", `/threads/${pathSegment(id)}/modify`, {
|
|
938
940
|
removeLabelIds: labelIds,
|
|
939
941
|
});
|
|
940
942
|
},
|
|
@@ -945,7 +947,7 @@ export default function gmail(rl) {
|
|
|
945
947
|
inputSchema: t.Object({ id: Id, ...ReplyFields }, ReplyOptions),
|
|
946
948
|
async execute(input, ctx) {
|
|
947
949
|
const p = (input ?? {});
|
|
948
|
-
const thread = (await gmailRequest(ctx, "GET", `/threads/${p.id}`, undefined, { format: "minimal" }));
|
|
950
|
+
const thread = (await gmailRequest(ctx, "GET", `/threads/${pathSegment(p.id)}`, undefined, { format: "minimal" }));
|
|
949
951
|
const last = thread.messages?.[thread.messages.length - 1];
|
|
950
952
|
if (!last?.id) {
|
|
951
953
|
throw new Error(`gmail: thread ${p.id} has no messages to reply to`);
|
|
@@ -991,7 +993,7 @@ export default function gmail(rl) {
|
|
|
991
993
|
// thread and set In-Reply-To/References so Gmail places the
|
|
992
994
|
// draft into the conversation correctly.
|
|
993
995
|
if (p.threadId) {
|
|
994
|
-
const thread = (await gmailRequest(ctx, "GET", `/threads/${p.threadId}`, undefined, { format: "metadata", metadataHeaders: ["Message-ID"] }));
|
|
996
|
+
const thread = (await gmailRequest(ctx, "GET", `/threads/${pathSegment(p.threadId)}`, undefined, { format: "metadata", metadataHeaders: ["Message-ID"] }));
|
|
995
997
|
const last = thread.messages?.[thread.messages.length - 1];
|
|
996
998
|
const mid = findHeader(last?.payload, "Message-ID");
|
|
997
999
|
if (mid) {
|
|
@@ -1012,7 +1014,7 @@ export default function gmail(rl) {
|
|
|
1012
1014
|
async execute(input, ctx) {
|
|
1013
1015
|
const p = (input ?? {});
|
|
1014
1016
|
const qs = { format: p.format ?? "full" };
|
|
1015
|
-
return gmailRequest(ctx, "GET", `/drafts/${p.id}`, undefined, qs);
|
|
1017
|
+
return gmailRequest(ctx, "GET", `/drafts/${pathSegment(p.id)}`, undefined, qs);
|
|
1016
1018
|
},
|
|
1017
1019
|
});
|
|
1018
1020
|
rl.registerAction("draft.list", {
|
|
@@ -1047,7 +1049,7 @@ export default function gmail(rl) {
|
|
|
1047
1049
|
inputSchema: IdInput,
|
|
1048
1050
|
async execute(input, ctx) {
|
|
1049
1051
|
const { id } = input;
|
|
1050
|
-
return gmailRequest(ctx, "DELETE", `/drafts/${id}`);
|
|
1052
|
+
return gmailRequest(ctx, "DELETE", `/drafts/${pathSegment(id)}`);
|
|
1051
1053
|
},
|
|
1052
1054
|
});
|
|
1053
1055
|
rl.registerAction("draft.send", {
|
|
@@ -1086,7 +1088,7 @@ export default function gmail(rl) {
|
|
|
1086
1088
|
inputSchema: IdInput,
|
|
1087
1089
|
async execute(input, ctx) {
|
|
1088
1090
|
const { id } = input;
|
|
1089
|
-
return gmailRequest(ctx, "GET", `/labels/${id}`);
|
|
1091
|
+
return gmailRequest(ctx, "GET", `/labels/${pathSegment(id)}`);
|
|
1090
1092
|
},
|
|
1091
1093
|
});
|
|
1092
1094
|
rl.registerAction("label.list", {
|
|
@@ -1104,7 +1106,7 @@ export default function gmail(rl) {
|
|
|
1104
1106
|
inputSchema: IdInput,
|
|
1105
1107
|
async execute(input, ctx) {
|
|
1106
1108
|
const { id } = input;
|
|
1107
|
-
return gmailRequest(ctx, "DELETE", `/labels/${id}`);
|
|
1109
|
+
return gmailRequest(ctx, "DELETE", `/labels/${pathSegment(id)}`);
|
|
1108
1110
|
},
|
|
1109
1111
|
});
|
|
1110
1112
|
rl.registerAction("label.update", {
|
|
@@ -1134,7 +1136,7 @@ export default function gmail(rl) {
|
|
|
1134
1136
|
if (p.messageListVisibility) {
|
|
1135
1137
|
body.messageListVisibility = p.messageListVisibility;
|
|
1136
1138
|
}
|
|
1137
|
-
return gmailRequest(ctx, "PATCH", `/labels/${p.id}`, body);
|
|
1139
|
+
return gmailRequest(ctx, "PATCH", `/labels/${pathSegment(p.id)}`, body);
|
|
1138
1140
|
},
|
|
1139
1141
|
});
|
|
1140
1142
|
// ── Profile / aliases ─────────────────────────────────
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { httpsBase, staticCredential } from "../../_shared/credentials.js";
|
|
2
|
+
/**
|
|
3
|
+
* An access key and secret as the Basic pair, on the connection's Gong
|
|
4
|
+
* API base (api.gong.io, or the account's regional base) beneath /v2/.
|
|
5
|
+
*/
|
|
6
|
+
export const gongCredential = staticCredential({
|
|
7
|
+
id: "gong",
|
|
8
|
+
auth: { kind: "basic" },
|
|
9
|
+
local: { username: "accessKey", password: "accessKeySecret" },
|
|
10
|
+
targets: (config) => ({
|
|
11
|
+
api: {
|
|
12
|
+
baseUrl: httpsBase(config.baseUrl ?? "https://api.gong.io", "v2/"),
|
|
13
|
+
methods: ["POST"],
|
|
14
|
+
},
|
|
15
|
+
}),
|
|
16
|
+
});
|
|
@@ -1,27 +1,21 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
opts.body = JSON.stringify(body);
|
|
11
|
-
}
|
|
12
|
-
const res = await fetch(`${baseUrl}${endpoint}`, opts);
|
|
13
|
-
if (!res.ok)
|
|
14
|
-
throw new Error(`Gong API error ${res.status}: ${await res.text()}`);
|
|
15
|
-
return res.json();
|
|
1
|
+
import { credentialJson } from "../../_shared/credentials.js";
|
|
2
|
+
import { gongCredential } from "./credentials.js";
|
|
3
|
+
function api(ctx, path, body) {
|
|
4
|
+
return credentialJson(ctx, gongCredential, "gong", {
|
|
5
|
+
target: "api",
|
|
6
|
+
path,
|
|
7
|
+
method: "POST",
|
|
8
|
+
json: body,
|
|
9
|
+
});
|
|
16
10
|
}
|
|
17
|
-
async function paginate(
|
|
11
|
+
async function paginate(ctx, path, body, resultKey, limit) {
|
|
18
12
|
const results = [];
|
|
19
13
|
let cursor;
|
|
20
14
|
do {
|
|
21
15
|
const reqBody = { ...body };
|
|
22
16
|
if (cursor)
|
|
23
17
|
reqBody.cursor = cursor;
|
|
24
|
-
const data = (await
|
|
18
|
+
const data = (await api(ctx, path, reqBody));
|
|
25
19
|
const items = data[resultKey] ?? [];
|
|
26
20
|
results.push(...items);
|
|
27
21
|
cursor = data.records?.cursor;
|
|
@@ -30,16 +24,10 @@ async function paginate(baseUrl, accessKey, accessKeySecret, endpoint, body, res
|
|
|
30
24
|
} while (cursor);
|
|
31
25
|
return limit ? results.slice(0, limit) : results;
|
|
32
26
|
}
|
|
33
|
-
function getConn(ctx) {
|
|
34
|
-
return {
|
|
35
|
-
baseUrl: (ctx.connection.config.baseUrl ?? "https://api.gong.io").replace(/\/$/, ""),
|
|
36
|
-
accessKey: ctx.connection.config.accessKey,
|
|
37
|
-
accessKeySecret: ctx.connection.config.accessKeySecret,
|
|
38
|
-
};
|
|
39
|
-
}
|
|
40
27
|
export default function gong(rl) {
|
|
41
28
|
rl.setName("gong");
|
|
42
29
|
rl.setVersion("0.1.0");
|
|
30
|
+
rl.setCredential(gongCredential);
|
|
43
31
|
rl.setConnectionSchema({
|
|
44
32
|
baseUrl: {
|
|
45
33
|
type: "string",
|
|
@@ -74,11 +62,10 @@ export default function gong(rl) {
|
|
|
74
62
|
},
|
|
75
63
|
async execute(input, ctx) {
|
|
76
64
|
const { callId, contentSelector } = input;
|
|
77
|
-
const { baseUrl, accessKey, accessKeySecret } = getConn(ctx);
|
|
78
65
|
const body = { filter: { callIds: [callId] } };
|
|
79
66
|
if (contentSelector)
|
|
80
67
|
body.contentSelector = contentSelector;
|
|
81
|
-
const data = (await
|
|
68
|
+
const data = (await api(ctx, "calls/extensive", body));
|
|
82
69
|
const calls = data.calls;
|
|
83
70
|
return calls?.[0];
|
|
84
71
|
},
|
|
@@ -116,7 +103,6 @@ export default function gong(rl) {
|
|
|
116
103
|
},
|
|
117
104
|
async execute(input, ctx) {
|
|
118
105
|
const { limit, fromDateTime, toDateTime, workspaceId, callIds, primaryUserIds, } = (input ?? {});
|
|
119
|
-
const { baseUrl, accessKey, accessKeySecret } = getConn(ctx);
|
|
120
106
|
const filter = {};
|
|
121
107
|
if (fromDateTime)
|
|
122
108
|
filter.fromDateTime = fromDateTime;
|
|
@@ -128,7 +114,7 @@ export default function gong(rl) {
|
|
|
128
114
|
filter.callIds = callIds;
|
|
129
115
|
if (primaryUserIds)
|
|
130
116
|
filter.primaryUserIds = primaryUserIds;
|
|
131
|
-
return paginate(
|
|
117
|
+
return paginate(ctx, "calls/extensive", { filter }, "calls", limit);
|
|
132
118
|
},
|
|
133
119
|
});
|
|
134
120
|
rl.registerAction("user.get", {
|
|
@@ -139,8 +125,7 @@ export default function gong(rl) {
|
|
|
139
125
|
},
|
|
140
126
|
async execute(input, ctx) {
|
|
141
127
|
const { userId } = input;
|
|
142
|
-
const
|
|
143
|
-
const data = (await apiRequest(baseUrl, accessKey, accessKeySecret, "POST", "/v2/users/extensive", {
|
|
128
|
+
const data = (await api(ctx, "users/extensive", {
|
|
144
129
|
filter: { userIds: [userId] },
|
|
145
130
|
}));
|
|
146
131
|
const users = data.users;
|
|
@@ -170,7 +155,6 @@ export default function gong(rl) {
|
|
|
170
155
|
},
|
|
171
156
|
async execute(input, ctx) {
|
|
172
157
|
const { limit, createdFromDateTime, createdToDateTime, userIds } = (input ?? {});
|
|
173
|
-
const { baseUrl, accessKey, accessKeySecret } = getConn(ctx);
|
|
174
158
|
const filter = {};
|
|
175
159
|
if (createdFromDateTime)
|
|
176
160
|
filter.createdFromDateTime = createdFromDateTime;
|
|
@@ -178,7 +162,7 @@ export default function gong(rl) {
|
|
|
178
162
|
filter.createdToDateTime = createdToDateTime;
|
|
179
163
|
if (userIds)
|
|
180
164
|
filter.userIds = userIds;
|
|
181
|
-
return paginate(
|
|
165
|
+
return paginate(ctx, "users/extensive", { filter }, "users", limit);
|
|
182
166
|
},
|
|
183
167
|
});
|
|
184
168
|
}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import * as t from "typebox";
|
|
2
|
-
import {
|
|
2
|
+
import { pathSegment } from "../../_shared/credentials.js";
|
|
3
|
+
import { googleCredential, googleJsonRequest, } from "../../_shared/googleAuth.js";
|
|
3
4
|
import { Id, NonEmptyString, PositiveInteger, stringEnum, } from "../../_shared/googleSchemas.js";
|
|
4
5
|
const SCRIPT_API = "https://script.googleapis.com/v1";
|
|
5
6
|
const DRIVE_API = "https://www.googleapis.com/drive/v3";
|
|
@@ -33,21 +34,62 @@ const scriptFileSchema = t.Object({
|
|
|
33
34
|
type: scriptFileTypeSchema,
|
|
34
35
|
source: t.String(),
|
|
35
36
|
}, { additionalProperties: false });
|
|
37
|
+
/** `T` is the caller's statement of the answer's shape, unchecked, as for any parsed JSON. */
|
|
36
38
|
async function call(ctx, method, url, payload) {
|
|
37
39
|
return googleJsonRequest(ctx, "googleAppsScript", SCOPES, method, url, payload);
|
|
38
40
|
}
|
|
39
41
|
export default function googleAppsScript(rl) {
|
|
40
42
|
rl.setName("googleAppsScript");
|
|
41
43
|
rl.setVersion("1.0.0");
|
|
44
|
+
rl.setCredential(googleCredential("googleAppsScript", SCOPES));
|
|
42
45
|
rl.setConnectionSchema({
|
|
43
|
-
authMethod: {
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
46
|
+
authMethod: {
|
|
47
|
+
type: "string",
|
|
48
|
+
required: false,
|
|
49
|
+
description: "delegated or serviceAccount (legacy configs infer the method)",
|
|
50
|
+
},
|
|
51
|
+
clientId: {
|
|
52
|
+
type: "string",
|
|
53
|
+
required: false,
|
|
54
|
+
description: "OAuth client ID",
|
|
55
|
+
env: "GOOGLE_APPS_SCRIPT_CLIENT_ID",
|
|
56
|
+
},
|
|
57
|
+
clientSecret: {
|
|
58
|
+
type: "string",
|
|
59
|
+
required: false,
|
|
60
|
+
description: "OAuth client secret",
|
|
61
|
+
env: "GOOGLE_APPS_SCRIPT_CLIENT_SECRET",
|
|
62
|
+
},
|
|
63
|
+
refreshToken: {
|
|
64
|
+
type: "string",
|
|
65
|
+
required: false,
|
|
66
|
+
description: "OAuth refresh token",
|
|
67
|
+
env: "GOOGLE_APPS_SCRIPT_REFRESH_TOKEN",
|
|
68
|
+
},
|
|
69
|
+
serviceAccountJson: {
|
|
70
|
+
type: "string",
|
|
71
|
+
required: false,
|
|
72
|
+
description: "Service-account key JSON",
|
|
73
|
+
env: "GOOGLE_APPS_SCRIPT_SERVICE_ACCOUNT_JSON",
|
|
74
|
+
},
|
|
75
|
+
serviceAccountEmail: {
|
|
76
|
+
type: "string",
|
|
77
|
+
required: false,
|
|
78
|
+
description: "Service-account email",
|
|
79
|
+
env: "GOOGLE_APPS_SCRIPT_SERVICE_ACCOUNT_EMAIL",
|
|
80
|
+
},
|
|
81
|
+
serviceAccountPrivateKey: {
|
|
82
|
+
type: "string",
|
|
83
|
+
required: false,
|
|
84
|
+
description: "Service-account private key",
|
|
85
|
+
env: "GOOGLE_APPS_SCRIPT_SERVICE_ACCOUNT_PRIVATE_KEY",
|
|
86
|
+
},
|
|
87
|
+
serviceAccountSubject: {
|
|
88
|
+
type: "string",
|
|
89
|
+
required: false,
|
|
90
|
+
description: "User to impersonate (domain-wide delegation)",
|
|
91
|
+
env: "GOOGLE_APPS_SCRIPT_SERVICE_ACCOUNT_SUBJECT",
|
|
92
|
+
},
|
|
51
93
|
});
|
|
52
94
|
rl.registerAction("script.list", {
|
|
53
95
|
access: "read",
|
|
@@ -61,16 +103,17 @@ export default function googleAppsScript(rl) {
|
|
|
61
103
|
})),
|
|
62
104
|
}, { additionalProperties: false }),
|
|
63
105
|
async execute(input, ctx) {
|
|
106
|
+
const p = input;
|
|
64
107
|
const params = new URLSearchParams({
|
|
65
108
|
q: "mimeType='application/vnd.google-apps.script' and trashed=false",
|
|
66
109
|
fields: "files(id,name,modifiedTime)",
|
|
67
|
-
pageSize: String(
|
|
110
|
+
pageSize: String(p.pageSize ?? 50),
|
|
68
111
|
orderBy: "modifiedTime desc",
|
|
69
112
|
});
|
|
70
113
|
const res = await call(ctx, "GET", `${DRIVE_API}/files?${params}`);
|
|
71
114
|
let files = res.files ?? [];
|
|
72
|
-
if (
|
|
73
|
-
const q = String(
|
|
115
|
+
if (p.query) {
|
|
116
|
+
const q = String(p.query).toLowerCase();
|
|
74
117
|
files = files.filter((f) => (f.name || "").toLowerCase().includes(q));
|
|
75
118
|
}
|
|
76
119
|
return { count: files.length, scripts: files };
|
|
@@ -81,8 +124,9 @@ export default function googleAppsScript(rl) {
|
|
|
81
124
|
description: "Get all files of an Apps Script project (name, type, source).",
|
|
82
125
|
inputSchema: t.Object({ scriptId: Id }, { additionalProperties: false }),
|
|
83
126
|
async execute(input, ctx) {
|
|
84
|
-
const
|
|
85
|
-
|
|
127
|
+
const p = input;
|
|
128
|
+
const res = await call(ctx, "GET", `${SCRIPT_API}/projects/${pathSegment(p.scriptId)}/content`);
|
|
129
|
+
return { scriptId: p.scriptId, files: res.files ?? [] };
|
|
86
130
|
},
|
|
87
131
|
});
|
|
88
132
|
rl.registerAction("project.readFile", {
|
|
@@ -96,10 +140,11 @@ export default function googleAppsScript(rl) {
|
|
|
96
140
|
}),
|
|
97
141
|
}, { additionalProperties: false }),
|
|
98
142
|
async execute(input, ctx) {
|
|
99
|
-
const
|
|
100
|
-
const
|
|
143
|
+
const p = input;
|
|
144
|
+
const res = await call(ctx, "GET", `${SCRIPT_API}/projects/${pathSegment(p.scriptId)}/content`);
|
|
145
|
+
const file = (res.files ?? []).find((f) => f.name === p.name);
|
|
101
146
|
if (!file)
|
|
102
|
-
throw new Error(`No file "${
|
|
147
|
+
throw new Error(`No file "${p.name}". Available: ${(res.files ?? []).map((f) => f.name).join(", ")}`);
|
|
103
148
|
return { name: file.name, type: file.type, source: file.source };
|
|
104
149
|
},
|
|
105
150
|
});
|
|
@@ -113,17 +158,21 @@ export default function googleAppsScript(rl) {
|
|
|
113
158
|
type: t.Optional(stringEnum(["SERVER_JS", "HTML", "JSON"])),
|
|
114
159
|
}, { additionalProperties: false }),
|
|
115
160
|
async execute(input, ctx) {
|
|
116
|
-
const
|
|
161
|
+
const p = input;
|
|
162
|
+
const cur = await call(ctx, "GET", `${SCRIPT_API}/projects/${pathSegment(p.scriptId)}/content`);
|
|
117
163
|
const files = cur.files ?? [];
|
|
118
|
-
const idx = files.findIndex((f) => f.name ===
|
|
119
|
-
const type =
|
|
120
|
-
|
|
164
|
+
const idx = files.findIndex((f) => f.name === p.name);
|
|
165
|
+
const type = p.type ||
|
|
166
|
+
(p.name === "appsscript" ? "JSON" : files[idx]?.type || "SERVER_JS");
|
|
167
|
+
const entry = { name: p.name, type, source: p.source };
|
|
121
168
|
if (idx >= 0)
|
|
122
169
|
files[idx] = entry;
|
|
123
170
|
else
|
|
124
171
|
files.push(entry);
|
|
125
|
-
await call(ctx, "PUT", `${SCRIPT_API}/projects/${
|
|
126
|
-
|
|
172
|
+
await call(ctx, "PUT", `${SCRIPT_API}/projects/${pathSegment(p.scriptId)}/content`, {
|
|
173
|
+
files,
|
|
174
|
+
});
|
|
175
|
+
return { scriptId: p.scriptId, updated: p.name, fileCount: files.length };
|
|
127
176
|
},
|
|
128
177
|
});
|
|
129
178
|
rl.registerAction("project.updateContent", {
|
|
@@ -141,8 +190,9 @@ export default function googleAppsScript(rl) {
|
|
|
141
190
|
}),
|
|
142
191
|
}, { additionalProperties: false }),
|
|
143
192
|
async execute(input, ctx) {
|
|
144
|
-
const
|
|
145
|
-
|
|
193
|
+
const p = input;
|
|
194
|
+
const res = await call(ctx, "PUT", `${SCRIPT_API}/projects/${pathSegment(p.scriptId)}/content`, { files: p.files });
|
|
195
|
+
return { scriptId: p.scriptId, fileCount: (res.files ?? []).length };
|
|
146
196
|
},
|
|
147
197
|
});
|
|
148
198
|
rl.registerAction("project.create", {
|
|
@@ -156,11 +206,16 @@ export default function googleAppsScript(rl) {
|
|
|
156
206
|
})),
|
|
157
207
|
}, { additionalProperties: false }),
|
|
158
208
|
async execute(input, ctx) {
|
|
159
|
-
const
|
|
160
|
-
|
|
161
|
-
|
|
209
|
+
const p = input;
|
|
210
|
+
const payload = { title: p.title };
|
|
211
|
+
if (p.parentId)
|
|
212
|
+
payload.parentId = p.parentId;
|
|
162
213
|
const res = await call(ctx, "POST", `${SCRIPT_API}/projects`, payload);
|
|
163
|
-
return {
|
|
214
|
+
return {
|
|
215
|
+
scriptId: res.scriptId,
|
|
216
|
+
title: res.title,
|
|
217
|
+
parentId: res.parentId,
|
|
218
|
+
};
|
|
164
219
|
},
|
|
165
220
|
});
|
|
166
221
|
rl.registerAction("version.create", {
|
|
@@ -171,8 +226,13 @@ export default function googleAppsScript(rl) {
|
|
|
171
226
|
description: t.Optional(t.String()),
|
|
172
227
|
}, { additionalProperties: false }),
|
|
173
228
|
async execute(input, ctx) {
|
|
174
|
-
const
|
|
175
|
-
|
|
229
|
+
const p = input;
|
|
230
|
+
const res = await call(ctx, "POST", `${SCRIPT_API}/projects/${pathSegment(p.scriptId)}/versions`, { description: p.description || "" });
|
|
231
|
+
return {
|
|
232
|
+
scriptId: p.scriptId,
|
|
233
|
+
versionNumber: res.versionNumber,
|
|
234
|
+
description: res.description,
|
|
235
|
+
};
|
|
176
236
|
},
|
|
177
237
|
});
|
|
178
238
|
rl.registerAction("deployment.create", {
|
|
@@ -185,10 +245,11 @@ export default function googleAppsScript(rl) {
|
|
|
185
245
|
manifestFileName: t.Optional(t.String({ minLength: 1, description: "Defaults to 'appsscript'." })),
|
|
186
246
|
}, { additionalProperties: false }),
|
|
187
247
|
async execute(input, ctx) {
|
|
188
|
-
const
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
248
|
+
const p = input;
|
|
249
|
+
const res = await call(ctx, "POST", `${SCRIPT_API}/projects/${pathSegment(p.scriptId)}/deployments`, {
|
|
250
|
+
versionNumber: p.versionNumber,
|
|
251
|
+
manifestFileName: p.manifestFileName || "appsscript",
|
|
252
|
+
description: p.description || "",
|
|
192
253
|
});
|
|
193
254
|
return { deploymentId: res.deploymentId, entryPoints: res.entryPoints };
|
|
194
255
|
},
|
|
@@ -205,10 +266,11 @@ export default function googleAppsScript(rl) {
|
|
|
205
266
|
})),
|
|
206
267
|
}, { additionalProperties: false }),
|
|
207
268
|
async execute(input, ctx) {
|
|
208
|
-
const
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
269
|
+
const p = input;
|
|
270
|
+
const res = await call(ctx, "POST", `${SCRIPT_API}/scripts/${pathSegment(p.scriptId)}:run`, {
|
|
271
|
+
function: p.functionName,
|
|
272
|
+
parameters: p.parameters ?? [],
|
|
273
|
+
devMode: p.devMode === undefined ? true : p.devMode,
|
|
212
274
|
});
|
|
213
275
|
if (res.error) {
|
|
214
276
|
const d = res.error.details?.[0];
|
|
@@ -225,12 +287,16 @@ export default function googleAppsScript(rl) {
|
|
|
225
287
|
pageSize: t.Optional(t.Integer({ minimum: 1, maximum: 50, description: "Default 20." })),
|
|
226
288
|
}, { additionalProperties: false }),
|
|
227
289
|
async execute(input, ctx) {
|
|
290
|
+
const p = input;
|
|
228
291
|
const params = new URLSearchParams({
|
|
229
|
-
"userProcessFilter.scriptId":
|
|
230
|
-
pageSize: String(
|
|
292
|
+
"userProcessFilter.scriptId": p.scriptId,
|
|
293
|
+
pageSize: String(p.pageSize ?? 20),
|
|
231
294
|
});
|
|
232
295
|
const res = await call(ctx, "GET", `${SCRIPT_API}/processes?${params}`);
|
|
233
|
-
return {
|
|
296
|
+
return {
|
|
297
|
+
count: (res.processes ?? []).length,
|
|
298
|
+
processes: res.processes ?? [],
|
|
299
|
+
};
|
|
234
300
|
},
|
|
235
301
|
});
|
|
236
302
|
}
|