runline 0.33.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 +19 -55
- package/dist/plugins/_shared/shiftCredentials.js +83 -0
- 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/index.js +4 -2
- package/dist/plugins/shiftBwm/src/shared.js +41 -16
- package/dist/plugins/shiftCrm/src/access.js +2 -2
- package/dist/plugins/shiftCrm/src/accounts.js +3 -3
- package/dist/plugins/shiftCrm/src/activities.js +3 -3
- package/dist/plugins/shiftCrm/src/credentials.js +6 -0
- package/dist/plugins/shiftCrm/src/index.js +2 -0
- package/dist/plugins/shiftCrm/src/opportunities.js +3 -3
- package/dist/plugins/shiftCrm/src/people.js +3 -3
- package/dist/plugins/shiftCrm/src/records.js +2 -2
- package/dist/plugins/shiftCrm/src/shared.js +2 -1
- package/dist/plugins/shiftCrm/src/tasks.js +3 -3
- package/dist/plugins/shiftObjects/src/credentials.js +2 -0
- package/dist/plugins/shiftObjects/src/index.js +2 -0
- package/dist/plugins/shiftObjects/src/objects.js +3 -2
- package/dist/plugins/shiftOcr/src/credentials.js +8 -0
- package/dist/plugins/shiftOcr/src/index.js +6 -5
- 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 +4 -4
- 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 +1 -1
- package/dist/plugins/_shared/authedFetch.js +0 -33
- package/dist/plugins/_shared/tokenRefresh.js +0 -41
|
@@ -8,14 +8,15 @@
|
|
|
8
8
|
* text rendering well. Sized via aspect_ratio rather than W×H —
|
|
9
9
|
* the API does the math.
|
|
10
10
|
*/
|
|
11
|
-
import {
|
|
12
|
-
|
|
13
|
-
|
|
11
|
+
import { credentialJson } from "../../_shared/credentials.js";
|
|
12
|
+
import { readImageInput, SEND_FILE_NOTE, writeImageFile, } from "../../_shared/mediaFile.js";
|
|
13
|
+
import { xaiCredential } from "./credentials.js";
|
|
14
14
|
const MODEL = "grok-imagine-image";
|
|
15
15
|
const EDIT_MODEL = "grok-imagine-image-2.0";
|
|
16
16
|
export default function xai(rl) {
|
|
17
17
|
rl.setName("xai");
|
|
18
18
|
rl.setVersion("0.1.0");
|
|
19
|
+
rl.setCredential(xaiCredential);
|
|
19
20
|
rl.setConnectionSchema({
|
|
20
21
|
apiKey: {
|
|
21
22
|
type: "string",
|
|
@@ -54,7 +55,6 @@ export default function xai(rl) {
|
|
|
54
55
|
if (typeof p.prompt !== "string" || p.prompt.length === 0) {
|
|
55
56
|
throw new Error("xai: prompt is required");
|
|
56
57
|
}
|
|
57
|
-
const apiKey = ctx.connection.config.apiKey;
|
|
58
58
|
const body = {
|
|
59
59
|
model: MODEL,
|
|
60
60
|
prompt: p.prompt,
|
|
@@ -63,21 +63,22 @@ export default function xai(rl) {
|
|
|
63
63
|
};
|
|
64
64
|
if (p.aspectRatio)
|
|
65
65
|
body.aspect_ratio = p.aspectRatio;
|
|
66
|
-
const
|
|
66
|
+
const data = (await credentialJson(ctx, xaiCredential, "xai", {
|
|
67
|
+
target: "api",
|
|
68
|
+
path: "images/generations",
|
|
67
69
|
method: "POST",
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
Authorization: `Bearer ${apiKey}`,
|
|
71
|
-
},
|
|
72
|
-
body: JSON.stringify(body),
|
|
73
|
-
});
|
|
74
|
-
if (!res.ok) {
|
|
75
|
-
throw new Error(`xAI API error ${res.status}: ${await res.text()}`);
|
|
76
|
-
}
|
|
77
|
-
const data = (await res.json());
|
|
70
|
+
json: body,
|
|
71
|
+
}));
|
|
78
72
|
const stamp = Date.now();
|
|
79
73
|
const images = (data.data ?? []).map((d, i) => ({
|
|
80
|
-
...writeImageFile({
|
|
74
|
+
...writeImageFile({
|
|
75
|
+
base64: d.b64_json,
|
|
76
|
+
mimeType: d.mime_type ?? "image/jpeg",
|
|
77
|
+
provider: "xai",
|
|
78
|
+
index: i,
|
|
79
|
+
saveDir: p.saveDir,
|
|
80
|
+
stamp,
|
|
81
|
+
}),
|
|
81
82
|
...(d.revised_prompt ? { revisedPrompt: d.revised_prompt } : {}),
|
|
82
83
|
}));
|
|
83
84
|
return { provider: "xai", model: MODEL, images, note: SEND_FILE_NOTE };
|
|
@@ -119,29 +120,29 @@ export default function xai(rl) {
|
|
|
119
120
|
throw new Error("xai: prompt is required");
|
|
120
121
|
}
|
|
121
122
|
const img = readImageInput(p.imagePath, "xai");
|
|
122
|
-
const apiKey = ctx.connection.config.apiKey;
|
|
123
123
|
const model = p.model ?? EDIT_MODEL;
|
|
124
|
-
const
|
|
124
|
+
const data = (await credentialJson(ctx, xaiCredential, "xai", {
|
|
125
|
+
target: "api",
|
|
126
|
+
path: "images/edits",
|
|
125
127
|
method: "POST",
|
|
126
|
-
|
|
127
|
-
"Content-Type": "application/json",
|
|
128
|
-
Authorization: `Bearer ${apiKey}`,
|
|
129
|
-
},
|
|
130
|
-
body: JSON.stringify({
|
|
128
|
+
json: {
|
|
131
129
|
model,
|
|
132
130
|
prompt: p.prompt,
|
|
133
131
|
image: { url: img.dataUri },
|
|
134
132
|
n: Math.min(p.n ?? 1, 10),
|
|
135
133
|
response_format: "b64_json",
|
|
136
|
-
}
|
|
137
|
-
});
|
|
138
|
-
if (!res.ok) {
|
|
139
|
-
throw new Error(`xAI API error ${res.status}: ${await res.text()}`);
|
|
140
|
-
}
|
|
141
|
-
const data = (await res.json());
|
|
134
|
+
},
|
|
135
|
+
}));
|
|
142
136
|
const stamp = Date.now();
|
|
143
137
|
const images = (data.data ?? []).map((d, i) => ({
|
|
144
|
-
...writeImageFile({
|
|
138
|
+
...writeImageFile({
|
|
139
|
+
base64: d.b64_json,
|
|
140
|
+
mimeType: d.mime_type ?? "image/jpeg",
|
|
141
|
+
provider: "xai",
|
|
142
|
+
index: i,
|
|
143
|
+
saveDir: p.saveDir,
|
|
144
|
+
stamp,
|
|
145
|
+
}),
|
|
145
146
|
...(d.revised_prompt ? { revisedPrompt: d.revised_prompt } : {}),
|
|
146
147
|
}));
|
|
147
148
|
return { provider: "xai", model, images, note: SEND_FILE_NOTE };
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { staticCredential } from "../../_shared/credentials.js";
|
|
2
|
+
/**
|
|
3
|
+
* An OAuth2 access token, sent as a bearer to Xero's accounting API. The
|
|
4
|
+
* public Xero-tenant-id companion header names the organization.
|
|
5
|
+
*/
|
|
6
|
+
export const xeroCredential = staticCredential({
|
|
7
|
+
id: "xero",
|
|
8
|
+
auth: { kind: "bearer" },
|
|
9
|
+
local: { secret: "accessToken" },
|
|
10
|
+
targets: {
|
|
11
|
+
api: {
|
|
12
|
+
baseUrl: "https://api.xero.com/api.xro/2.0/",
|
|
13
|
+
methods: ["GET", "POST"],
|
|
14
|
+
allowedHeaders: ["Xero-tenant-id"],
|
|
15
|
+
},
|
|
16
|
+
},
|
|
17
|
+
});
|
|
@@ -1,36 +1,19 @@
|
|
|
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 { xeroCredential } from "./credentials.js";
|
|
3
|
+
function api(ctx, method, endpoint, body, qs) {
|
|
4
|
+
return credentialJson(ctx, xeroCredential, "xero", {
|
|
5
|
+
target: "api",
|
|
6
|
+
path: endpoint,
|
|
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(`Xero error ${res.status}: ${await res.text()}`);
|
|
29
|
-
return res.json();
|
|
8
|
+
query: qs,
|
|
9
|
+
headers: { "Xero-tenant-id": ctx.connection.config.tenantId },
|
|
10
|
+
...(body && Object.keys(body).length > 0 ? { json: body } : {}),
|
|
11
|
+
});
|
|
30
12
|
}
|
|
31
13
|
export default function xero(rl) {
|
|
32
14
|
rl.setName("xero");
|
|
33
15
|
rl.setVersion("0.1.0");
|
|
16
|
+
rl.setCredential(xeroCredential);
|
|
34
17
|
rl.setConnectionSchema({
|
|
35
18
|
accessToken: {
|
|
36
19
|
type: "string",
|
|
@@ -89,7 +72,7 @@ export default function xero(rl) {
|
|
|
89
72
|
body.Reference = p.Reference;
|
|
90
73
|
if (p.CurrencyCode)
|
|
91
74
|
body.CurrencyCode = p.CurrencyCode;
|
|
92
|
-
const data = (await api(
|
|
75
|
+
const data = (await api(ctx, "POST", "Invoices", body));
|
|
93
76
|
return data.Invoices;
|
|
94
77
|
},
|
|
95
78
|
});
|
|
@@ -98,7 +81,7 @@ export default function xero(rl) {
|
|
|
98
81
|
description: "Get an invoice by ID",
|
|
99
82
|
inputSchema: { invoiceId: { type: "string", required: true } },
|
|
100
83
|
async execute(input, ctx) {
|
|
101
|
-
const data = (await api(
|
|
84
|
+
const data = (await api(ctx, "GET", `Invoices/${pathSegment(input.invoiceId)}`));
|
|
102
85
|
return data.Invoices;
|
|
103
86
|
},
|
|
104
87
|
});
|
|
@@ -121,7 +104,7 @@ export default function xero(rl) {
|
|
|
121
104
|
qs.statuses = p.statuses;
|
|
122
105
|
if (p.where)
|
|
123
106
|
qs.where = p.where;
|
|
124
|
-
const data = (await api(
|
|
107
|
+
const data = (await api(ctx, "GET", "Invoices", undefined, qs));
|
|
125
108
|
const invoices = data.Invoices;
|
|
126
109
|
return p.limit ? invoices.slice(0, p.limit) : invoices;
|
|
127
110
|
},
|
|
@@ -139,7 +122,7 @@ export default function xero(rl) {
|
|
|
139
122
|
},
|
|
140
123
|
async execute(input, ctx) {
|
|
141
124
|
const p = input;
|
|
142
|
-
const result = (await api(
|
|
125
|
+
const result = (await api(ctx, "POST", `Invoices/${pathSegment(p.invoiceId)}`, p.data));
|
|
143
126
|
return result.Invoices;
|
|
144
127
|
},
|
|
145
128
|
});
|
|
@@ -156,7 +139,7 @@ export default function xero(rl) {
|
|
|
156
139
|
async execute(input, ctx) {
|
|
157
140
|
const p = input;
|
|
158
141
|
const body = { Contacts: [p] };
|
|
159
|
-
const data = (await api(
|
|
142
|
+
const data = (await api(ctx, "POST", "Contacts", body));
|
|
160
143
|
return data.Contacts;
|
|
161
144
|
},
|
|
162
145
|
});
|
|
@@ -165,7 +148,7 @@ export default function xero(rl) {
|
|
|
165
148
|
description: "Get a contact by ID",
|
|
166
149
|
inputSchema: { contactId: { type: "string", required: true } },
|
|
167
150
|
async execute(input, ctx) {
|
|
168
|
-
const data = (await api(
|
|
151
|
+
const data = (await api(ctx, "GET", `Contacts/${pathSegment(input.contactId)}`));
|
|
169
152
|
return data.Contacts;
|
|
170
153
|
},
|
|
171
154
|
});
|
|
@@ -184,7 +167,7 @@ export default function xero(rl) {
|
|
|
184
167
|
qs.where = p.where;
|
|
185
168
|
if (p.includeArchived)
|
|
186
169
|
qs.includeArchived = "true";
|
|
187
|
-
const data = (await api(
|
|
170
|
+
const data = (await api(ctx, "GET", "Contacts", undefined, qs));
|
|
188
171
|
const contacts = data.Contacts;
|
|
189
172
|
return p.limit ? contacts.slice(0, p.limit) : contacts;
|
|
190
173
|
},
|
|
@@ -203,7 +186,7 @@ export default function xero(rl) {
|
|
|
203
186
|
async execute(input, ctx) {
|
|
204
187
|
const p = input;
|
|
205
188
|
const body = { Contacts: [p.data] };
|
|
206
|
-
const result = (await api(
|
|
189
|
+
const result = (await api(ctx, "POST", `Contacts/${pathSegment(p.contactId)}`, body));
|
|
207
190
|
return result.Contacts;
|
|
208
191
|
},
|
|
209
192
|
});
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { httpsBase, staticCredential } from "../../_shared/credentials.js";
|
|
2
|
+
/**
|
|
3
|
+
* A signature token, appended by the transport as the signature query
|
|
4
|
+
* parameter on the installation's own yourls-api.php. The installation
|
|
5
|
+
* URL is public config and must be HTTPS.
|
|
6
|
+
*/
|
|
7
|
+
export const yourlsCredential = staticCredential({
|
|
8
|
+
id: "yourls",
|
|
9
|
+
auth: { kind: "queryKey", param: "signature" },
|
|
10
|
+
local: { secret: "signature" },
|
|
11
|
+
targets: (config) => ({
|
|
12
|
+
api: {
|
|
13
|
+
baseUrl: httpsBase(config.url, ""),
|
|
14
|
+
methods: ["GET"],
|
|
15
|
+
},
|
|
16
|
+
}),
|
|
17
|
+
});
|
|
@@ -1,29 +1,19 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
}
|
|
8
|
-
|
|
9
|
-
const url = new URL(`${conn.url}/yourls-api.php`);
|
|
10
|
-
qs.signature = conn.signature;
|
|
11
|
-
qs.format = "json";
|
|
12
|
-
for (const [k, v] of Object.entries(qs)) {
|
|
13
|
-
if (v !== undefined && v !== null)
|
|
14
|
-
url.searchParams.set(k, String(v));
|
|
15
|
-
}
|
|
16
|
-
const res = await fetch(url.toString());
|
|
17
|
-
if (!res.ok)
|
|
18
|
-
throw new Error(`Yourls error ${res.status}: ${await res.text()}`);
|
|
19
|
-
const data = (await res.json());
|
|
1
|
+
import { answerFailed, credentialJson } from "../../_shared/credentials.js";
|
|
2
|
+
import { yourlsCredential } from "./credentials.js";
|
|
3
|
+
async function apiRequest(ctx, qs) {
|
|
4
|
+
const data = (await credentialJson(ctx, yourlsCredential, "yourls", {
|
|
5
|
+
target: "api",
|
|
6
|
+
path: "yourls-api.php",
|
|
7
|
+
query: { ...qs, format: "json" },
|
|
8
|
+
}));
|
|
20
9
|
if (data.status === "fail")
|
|
21
|
-
throw
|
|
10
|
+
throw answerFailed("yourls", { code: data.code, message: data.message });
|
|
22
11
|
return data;
|
|
23
12
|
}
|
|
24
13
|
export default function yourls(rl) {
|
|
25
14
|
rl.setName("yourls");
|
|
26
15
|
rl.setVersion("0.1.0");
|
|
16
|
+
rl.setCredential(yourlsCredential);
|
|
27
17
|
rl.setConnectionSchema({
|
|
28
18
|
url: {
|
|
29
19
|
type: "string",
|
|
@@ -57,7 +47,7 @@ export default function yourls(rl) {
|
|
|
57
47
|
qs.keyword = p.keyword;
|
|
58
48
|
if (p.title)
|
|
59
49
|
qs.title = p.title;
|
|
60
|
-
return apiRequest(
|
|
50
|
+
return apiRequest(ctx, qs);
|
|
61
51
|
},
|
|
62
52
|
});
|
|
63
53
|
rl.registerAction("url.expand", {
|
|
@@ -65,7 +55,7 @@ export default function yourls(rl) {
|
|
|
65
55
|
description: "Expand a short URL to its original",
|
|
66
56
|
inputSchema: { shortUrl: { type: "string", required: true } },
|
|
67
57
|
async execute(input, ctx) {
|
|
68
|
-
return apiRequest(
|
|
58
|
+
return apiRequest(ctx, {
|
|
69
59
|
action: "expand",
|
|
70
60
|
shorturl: input.shortUrl,
|
|
71
61
|
});
|
|
@@ -76,7 +66,7 @@ export default function yourls(rl) {
|
|
|
76
66
|
description: "Get stats for a short URL",
|
|
77
67
|
inputSchema: { shortUrl: { type: "string", required: true } },
|
|
78
68
|
async execute(input, ctx) {
|
|
79
|
-
const data = (await apiRequest(
|
|
69
|
+
const data = (await apiRequest(ctx, {
|
|
80
70
|
action: "url-stats",
|
|
81
71
|
shorturl: input.shortUrl,
|
|
82
72
|
}));
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { httpsBase, staticCredential } from "../../_shared/credentials.js";
|
|
2
|
+
/** An access token, sent as `Authorization: Token token={token}` to the
|
|
3
|
+
* connection's own Zammad instance beneath /api/v1/. The instance URL is
|
|
4
|
+
* public config and must be HTTPS. */
|
|
5
|
+
export const zammadCredential = staticCredential({
|
|
6
|
+
id: "zammad",
|
|
7
|
+
auth: { kind: "apiKey", header: "Authorization", prefix: "Token token=" },
|
|
8
|
+
local: { secret: "token" },
|
|
9
|
+
targets: (config) => ({
|
|
10
|
+
api: {
|
|
11
|
+
baseUrl: httpsBase(config.url, "api/v1/"),
|
|
12
|
+
methods: ["GET", "POST", "PUT", "DELETE"],
|
|
13
|
+
},
|
|
14
|
+
}),
|
|
15
|
+
});
|
|
@@ -1,41 +1,21 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
}
|
|
8
|
-
async function api(conn, method, endpoint, body, qs) {
|
|
9
|
-
const url = new URL(`${conn.url}/api/v1${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 { zammadCredential } from "./credentials.js";
|
|
3
|
+
async function api(ctx, method, endpoint, body, qs) {
|
|
4
|
+
return credentialJson(ctx, zammadCredential, "zammad", {
|
|
5
|
+
target: "api",
|
|
6
|
+
path: endpoint,
|
|
17
7
|
method,
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
},
|
|
22
|
-
};
|
|
23
|
-
if (body && Object.keys(body).length > 0)
|
|
24
|
-
init.body = JSON.stringify(body);
|
|
25
|
-
const res = await fetch(url.toString(), init);
|
|
26
|
-
if (!res.ok)
|
|
27
|
-
throw new Error(`Zammad error ${res.status}: ${await res.text()}`);
|
|
28
|
-
if (res.status === 204)
|
|
29
|
-
return { success: true };
|
|
30
|
-
return res.json();
|
|
8
|
+
query: qs,
|
|
9
|
+
...(body && Object.keys(body).length > 0 ? { json: body } : {}),
|
|
10
|
+
});
|
|
31
11
|
}
|
|
32
|
-
function registerCrud(rl, resource, plural,
|
|
12
|
+
function registerCrud(rl, resource, plural, createSchema) {
|
|
33
13
|
rl.registerAction(`${resource}.create`, {
|
|
34
14
|
access: "write",
|
|
35
15
|
description: `Create a ${resource}`,
|
|
36
16
|
inputSchema: createSchema,
|
|
37
17
|
async execute(input, ctx) {
|
|
38
|
-
return api(
|
|
18
|
+
return api(ctx, "POST", plural, input);
|
|
39
19
|
},
|
|
40
20
|
});
|
|
41
21
|
rl.registerAction(`${resource}.get`, {
|
|
@@ -43,7 +23,7 @@ function registerCrud(rl, resource, plural, conn, createSchema) {
|
|
|
43
23
|
description: `Get a ${resource} by ID`,
|
|
44
24
|
inputSchema: { id: { type: "string", required: true } },
|
|
45
25
|
async execute(input, ctx) {
|
|
46
|
-
return api(
|
|
26
|
+
return api(ctx, "GET", `${plural}/${pathSegment(input.id)}`);
|
|
47
27
|
},
|
|
48
28
|
});
|
|
49
29
|
rl.registerAction(`${resource}.list`, {
|
|
@@ -53,7 +33,7 @@ function registerCrud(rl, resource, plural, conn, createSchema) {
|
|
|
53
33
|
async execute(input, ctx) {
|
|
54
34
|
const p = (input ?? {});
|
|
55
35
|
const qs = { per_page: p.limit ?? 100 };
|
|
56
|
-
return api(
|
|
36
|
+
return api(ctx, "GET", plural, undefined, qs);
|
|
57
37
|
},
|
|
58
38
|
});
|
|
59
39
|
rl.registerAction(`${resource}.update`, {
|
|
@@ -65,7 +45,7 @@ function registerCrud(rl, resource, plural, conn, createSchema) {
|
|
|
65
45
|
},
|
|
66
46
|
async execute(input, ctx) {
|
|
67
47
|
const p = input;
|
|
68
|
-
return api(
|
|
48
|
+
return api(ctx, "PUT", `${plural}/${pathSegment(p.id)}`, p.data);
|
|
69
49
|
},
|
|
70
50
|
});
|
|
71
51
|
rl.registerAction(`${resource}.delete`, {
|
|
@@ -73,7 +53,7 @@ function registerCrud(rl, resource, plural, conn, createSchema) {
|
|
|
73
53
|
description: `Delete a ${resource}`,
|
|
74
54
|
inputSchema: { id: { type: "string", required: true } },
|
|
75
55
|
async execute(input, ctx) {
|
|
76
|
-
await api(
|
|
56
|
+
await api(ctx, "DELETE", `${plural}/${pathSegment(input.id)}`);
|
|
77
57
|
return { success: true };
|
|
78
58
|
},
|
|
79
59
|
});
|
|
@@ -81,6 +61,7 @@ function registerCrud(rl, resource, plural, conn, createSchema) {
|
|
|
81
61
|
export default function zammad(rl) {
|
|
82
62
|
rl.setName("zammad");
|
|
83
63
|
rl.setVersion("0.1.0");
|
|
64
|
+
rl.setCredential(zammadCredential);
|
|
84
65
|
rl.setConnectionSchema({
|
|
85
66
|
url: {
|
|
86
67
|
type: "string",
|
|
@@ -95,15 +76,15 @@ export default function zammad(rl) {
|
|
|
95
76
|
env: "ZAMMAD_TOKEN",
|
|
96
77
|
},
|
|
97
78
|
});
|
|
98
|
-
registerCrud(rl, "user", "users",
|
|
79
|
+
registerCrud(rl, "user", "users", {
|
|
99
80
|
firstname: { type: "string", required: true },
|
|
100
81
|
lastname: { type: "string", required: true },
|
|
101
82
|
email: { type: "string", required: false },
|
|
102
83
|
});
|
|
103
|
-
registerCrud(rl, "organization", "organizations",
|
|
84
|
+
registerCrud(rl, "organization", "organizations", {
|
|
104
85
|
name: { type: "string", required: true },
|
|
105
86
|
});
|
|
106
|
-
registerCrud(rl, "group", "groups",
|
|
87
|
+
registerCrud(rl, "group", "groups", {
|
|
107
88
|
name: { type: "string", required: true },
|
|
108
89
|
});
|
|
109
90
|
// ── Ticket (special: includes article) ──────────────
|
|
@@ -132,7 +113,7 @@ export default function zammad(rl) {
|
|
|
132
113
|
};
|
|
133
114
|
if (p.articleSubject)
|
|
134
115
|
body.article.subject = p.articleSubject;
|
|
135
|
-
return api(
|
|
116
|
+
return api(ctx, "POST", "tickets", body);
|
|
136
117
|
},
|
|
137
118
|
});
|
|
138
119
|
rl.registerAction("ticket.get", {
|
|
@@ -140,10 +121,9 @@ export default function zammad(rl) {
|
|
|
140
121
|
description: "Get a ticket with articles",
|
|
141
122
|
inputSchema: { id: { type: "string", required: true } },
|
|
142
123
|
async execute(input, ctx) {
|
|
143
|
-
const c = getConn(ctx);
|
|
144
124
|
const id = input.id;
|
|
145
|
-
const ticket = (await api(
|
|
146
|
-
ticket.articles = await api(
|
|
125
|
+
const ticket = (await api(ctx, "GET", `tickets/${pathSegment(id)}`));
|
|
126
|
+
ticket.articles = await api(ctx, "GET", `ticket_articles/by_ticket/${pathSegment(id)}`);
|
|
147
127
|
return ticket;
|
|
148
128
|
},
|
|
149
129
|
});
|
|
@@ -155,7 +135,7 @@ export default function zammad(rl) {
|
|
|
155
135
|
const qs = {
|
|
156
136
|
per_page: (input ?? {}).limit ?? 100,
|
|
157
137
|
};
|
|
158
|
-
return api(
|
|
138
|
+
return api(ctx, "GET", "tickets", undefined, qs);
|
|
159
139
|
},
|
|
160
140
|
});
|
|
161
141
|
rl.registerAction("ticket.update", {
|
|
@@ -167,7 +147,7 @@ export default function zammad(rl) {
|
|
|
167
147
|
},
|
|
168
148
|
async execute(input, ctx) {
|
|
169
149
|
const p = input;
|
|
170
|
-
return api(
|
|
150
|
+
return api(ctx, "PUT", `tickets/${pathSegment(p.id)}`, p.data);
|
|
171
151
|
},
|
|
172
152
|
});
|
|
173
153
|
rl.registerAction("ticket.delete", {
|
|
@@ -175,7 +155,7 @@ export default function zammad(rl) {
|
|
|
175
155
|
description: "Delete a ticket",
|
|
176
156
|
inputSchema: { id: { type: "string", required: true } },
|
|
177
157
|
async execute(input, ctx) {
|
|
178
|
-
await api(
|
|
158
|
+
await api(ctx, "DELETE", `tickets/${pathSegment(input.id)}`);
|
|
179
159
|
return { success: true };
|
|
180
160
|
},
|
|
181
161
|
});
|
|
@@ -185,7 +165,7 @@ export default function zammad(rl) {
|
|
|
185
165
|
description: "Get the current user",
|
|
186
166
|
inputSchema: {},
|
|
187
167
|
async execute(_input, ctx) {
|
|
188
|
-
return api(
|
|
168
|
+
return api(ctx, "GET", "users/me");
|
|
189
169
|
},
|
|
190
170
|
});
|
|
191
171
|
rl.registerAction("user.search", {
|
|
@@ -200,7 +180,7 @@ export default function zammad(rl) {
|
|
|
200
180
|
const qs = { query: p.query };
|
|
201
181
|
if (p.limit)
|
|
202
182
|
qs.per_page = p.limit;
|
|
203
|
-
return api(
|
|
183
|
+
return api(ctx, "GET", "users/search", undefined, qs);
|
|
204
184
|
},
|
|
205
185
|
});
|
|
206
186
|
}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { hostLabel, staticCredential } from "../../_shared/credentials.js";
|
|
2
|
+
/**
|
|
3
|
+
* An API token as the Basic password, with the agent email joined to the
|
|
4
|
+
* fixed /token suffix as the username, on the account's own Zendesk
|
|
5
|
+
* subdomain.
|
|
6
|
+
*/
|
|
7
|
+
export const zendeskCredential = staticCredential({
|
|
8
|
+
id: "zendesk",
|
|
9
|
+
auth: { kind: "basic" },
|
|
10
|
+
local: {
|
|
11
|
+
username: { concat: [{ field: "email" }, { value: "/token" }] },
|
|
12
|
+
password: "apiToken",
|
|
13
|
+
},
|
|
14
|
+
targets: (config) => ({
|
|
15
|
+
api: {
|
|
16
|
+
baseUrl: `https://${hostLabel(config.subdomain)}.zendesk.com/api/v2/`,
|
|
17
|
+
methods: ["GET", "POST", "PUT", "DELETE"],
|
|
18
|
+
},
|
|
19
|
+
}),
|
|
20
|
+
probe: {
|
|
21
|
+
target: "api",
|
|
22
|
+
path: "users/me.json",
|
|
23
|
+
method: "GET",
|
|
24
|
+
acceptedStatuses: [200],
|
|
25
|
+
},
|
|
26
|
+
});
|