runline 0.32.0 → 0.34.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/auth/oauth2.d.ts +7 -1
- package/dist/auth/oauth2.js +10 -0
- package/dist/auth/token.d.ts +1 -0
- package/dist/auth/token.js +19 -1
- package/dist/auth/types.d.ts +22 -1
- package/dist/core/engine.d.ts +7 -0
- package/dist/core/engine.js +9 -0
- package/dist/credentials/policy.d.ts +53 -1
- package/dist/credentials/policy.js +146 -6
- package/dist/credentials/registry.d.ts +9 -0
- package/dist/credentials/registry.js +179 -22
- package/dist/credentials/transport.d.ts +48 -2
- package/dist/credentials/transport.js +248 -70
- package/dist/credentials/types.d.ts +167 -10
- package/dist/index.d.ts +5 -5
- package/dist/index.js +2 -2
- package/dist/plugin/api.d.ts +7 -0
- package/dist/plugin/api.js +7 -0
- package/dist/plugin/types.d.ts +12 -0
- package/dist/plugins/_shared/credentialAdapter.js +79 -15
- package/dist/plugins/_shared/credentials.js +389 -0
- package/dist/plugins/_shared/googleAuth.js +9 -40
- package/dist/plugins/_shared/googleCredentials.js +28 -7
- package/dist/plugins/_shared/microsoftAuth.js +13 -44
- package/dist/plugins/_shared/microsoftCredentials.js +30 -8
- package/dist/plugins/_shared/provider.js +2 -14
- package/dist/plugins/_shared/shiftCloud.js +22 -34
- package/dist/plugins/_shared/shiftCredentials.js +83 -0
- package/dist/plugins/_shared/shiftUpload.js +1 -1
- package/dist/plugins/actionNetwork/src/credentials.js +14 -0
- package/dist/plugins/actionNetwork/src/index.js +39 -50
- package/dist/plugins/activeCampaign/src/credentials.js +22 -0
- package/dist/plugins/activeCampaign/src/index.js +61 -132
- package/dist/plugins/adalo/src/credentials.js +16 -0
- package/dist/plugins/adalo/src/index.js +19 -43
- package/dist/plugins/affinity/src/credentials.js +19 -0
- package/dist/plugins/affinity/src/index.js +29 -54
- package/dist/plugins/agileCrm/src/credentials.js +16 -0
- package/dist/plugins/agileCrm/src/index.js +46 -112
- package/dist/plugins/airtable/src/credentials.js +19 -0
- package/dist/plugins/airtable/src/index.js +37 -50
- package/dist/plugins/airtop/src/credentials.js +20 -0
- package/dist/plugins/airtop/src/index.js +51 -75
- package/dist/plugins/apiTemplateIo/src/credentials.js +19 -0
- package/dist/plugins/apiTemplateIo/src/index.js +14 -31
- package/dist/plugins/asana/src/credentials.js +19 -0
- package/dist/plugins/asana/src/index.js +51 -72
- package/dist/plugins/autopilot/src/credentials.js +19 -0
- package/dist/plugins/autopilot/src/index.js +38 -45
- package/dist/plugins/bambooHr/src/credentials.js +16 -0
- package/dist/plugins/bambooHr/src/index.js +41 -67
- package/dist/plugins/bannerbear/src/credentials.js +19 -0
- package/dist/plugins/bannerbear/src/index.js +15 -27
- package/dist/plugins/baserow/src/credentials.js +17 -0
- package/dist/plugins/baserow/src/index.js +23 -49
- package/dist/plugins/beeminder/src/credentials.js +19 -0
- package/dist/plugins/beeminder/src/index.js +32 -54
- package/dist/plugins/bitly/src/credentials.js +19 -0
- package/dist/plugins/bitly/src/index.js +12 -26
- package/dist/plugins/bitwarden/src/credentials.js +62 -0
- package/dist/plugins/bitwarden/src/index.js +34 -80
- package/dist/plugins/box/src/credentials.js +19 -0
- package/dist/plugins/box/src/index.js +24 -49
- package/dist/plugins/brandfetch/src/credentials.js +13 -0
- package/dist/plugins/brandfetch/src/index.js +12 -17
- package/dist/plugins/brevo/src/credentials.js +19 -0
- package/dist/plugins/brevo/src/index.js +30 -51
- package/dist/plugins/bubble/src/credentials.js +28 -0
- package/dist/plugins/bubble/src/index.js +29 -65
- package/dist/plugins/chargebee/src/credentials.js +16 -0
- package/dist/plugins/chargebee/src/index.js +15 -45
- package/dist/plugins/circleci/src/credentials.js +19 -0
- package/dist/plugins/circleci/src/index.js +19 -39
- package/dist/plugins/ciscoWebex/src/credentials.js +19 -0
- package/dist/plugins/ciscoWebex/src/index.js +43 -61
- package/dist/plugins/clearbit/src/credentials.js +22 -0
- package/dist/plugins/clearbit/src/index.js +11 -21
- package/dist/plugins/clickup/src/credentials.js +19 -0
- package/dist/plugins/clickup/src/index.js +85 -117
- package/dist/plugins/clockify/src/credentials.js +19 -0
- package/dist/plugins/clockify/src/index.js +46 -61
- package/dist/plugins/cloudflare/src/credentials.js +19 -0
- package/dist/plugins/cloudflare/src/index.js +19 -34
- package/dist/plugins/cockpit/src/credentials.js +17 -0
- package/dist/plugins/cockpit/src/index.js +18 -31
- package/dist/plugins/coda/src/credentials.js +19 -0
- package/dist/plugins/coda/src/index.js +33 -50
- package/dist/plugins/coingecko/src/credentials.js +20 -0
- package/dist/plugins/coingecko/src/index.js +24 -34
- package/dist/plugins/contentful/src/credentials.js +26 -0
- package/dist/plugins/contentful/src/index.js +19 -40
- package/dist/plugins/convertkit/src/credentials.js +26 -0
- package/dist/plugins/convertkit/src/index.js +27 -45
- package/dist/plugins/copper/src/credentials.js +17 -0
- package/dist/plugins/copper/src/index.js +25 -47
- package/dist/plugins/cortex/src/credentials.js +28 -0
- package/dist/plugins/cortex/src/index.js +26 -49
- package/dist/plugins/currents/src/credentials.js +19 -0
- package/dist/plugins/currents/src/index.js +46 -59
- package/dist/plugins/customerIo/src/credentials.js +52 -0
- package/dist/plugins/customerIo/src/index.js +30 -58
- package/dist/plugins/databricks/src/credentials.js +13 -0
- package/dist/plugins/databricks/src/index.js +51 -103
- package/dist/plugins/deepl/src/credentials.js +19 -0
- package/dist/plugins/deepl/src/index.js +13 -39
- package/dist/plugins/demio/src/credentials.js +26 -0
- package/dist/plugins/demio/src/index.js +17 -41
- package/dist/plugins/dhl/src/credentials.js +13 -0
- package/dist/plugins/dhl/src/index.js +8 -19
- package/dist/plugins/discord/src/credentials.js +19 -0
- package/dist/plugins/discord/src/index.js +30 -58
- package/dist/plugins/discourse/src/credentials.js +18 -0
- package/dist/plugins/discourse/src/index.js +36 -53
- package/dist/plugins/disqus/src/credentials.js +13 -0
- package/dist/plugins/disqus/src/index.js +14 -32
- package/dist/plugins/drift/src/credentials.js +13 -0
- package/dist/plugins/drift/src/index.js +16 -26
- package/dist/plugins/dropbox/src/credentials.js +13 -0
- package/dist/plugins/dropbox/src/index.js +23 -30
- package/dist/plugins/dropcontact/src/credentials.js +13 -0
- package/dist/plugins/dropcontact/src/index.js +13 -18
- package/dist/plugins/egoi/src/credentials.js +19 -0
- package/dist/plugins/egoi/src/index.js +23 -38
- package/dist/plugins/elasticsearch/src/credentials.js +18 -0
- package/dist/plugins/elasticsearch/src/index.js +27 -48
- package/dist/plugins/elevenlabs/src/credentials.js +30 -0
- package/dist/plugins/elevenlabs/src/index.js +4 -1
- package/dist/plugins/elevenlabs/src/schemas.js +2 -1
- package/dist/plugins/elevenlabs/src/shared.js +74 -35
- package/dist/plugins/elevenlabs/src/workflows.js +2 -2
- package/dist/plugins/emelia/src/credentials.js +14 -0
- package/dist/plugins/emelia/src/index.js +19 -23
- package/dist/plugins/erpnext/src/credentials.js +27 -0
- package/dist/plugins/erpnext/src/index.js +21 -42
- package/dist/plugins/facebookGraph/src/credentials.js +20 -0
- package/dist/plugins/facebookGraph/src/index.js +39 -37
- package/dist/plugins/fal/src/credentials.js +14 -0
- package/dist/plugins/fal/src/index.js +4 -2
- package/dist/plugins/fal/src/shared.js +58 -63
- package/dist/plugins/freshdesk/src/credentials.js +20 -0
- package/dist/plugins/freshdesk/src/index.js +25 -46
- package/dist/plugins/freshservice/src/credentials.js +16 -0
- package/dist/plugins/freshservice/src/index.js +37 -58
- package/dist/plugins/freshworksCrm/src/credentials.js +16 -0
- package/dist/plugins/freshworksCrm/src/index.js +20 -39
- package/dist/plugins/getresponse/src/credentials.js +22 -0
- package/dist/plugins/getresponse/src/index.js +20 -32
- package/dist/plugins/gett/src/credentials.js +64 -0
- package/dist/plugins/gett/src/index.js +11 -6
- package/dist/plugins/gett/src/login.js +24 -0
- package/dist/plugins/gett/src/session.js +15 -38
- package/dist/plugins/gett/src/shared.js +41 -84
- package/dist/plugins/ghost/src/credentials.js +36 -0
- package/dist/plugins/ghost/src/index.js +18 -59
- package/dist/plugins/github/src/credentials.js +18 -0
- package/dist/plugins/github/src/index.js +55 -78
- package/dist/plugins/gitlab/src/credentials.js +24 -0
- package/dist/plugins/gitlab/src/index.js +29 -48
- package/dist/plugins/gmail/src/index.js +26 -24
- package/dist/plugins/gong/src/credentials.js +16 -0
- package/dist/plugins/gong/src/index.js +16 -32
- package/dist/plugins/googleAppsScript/src/index.js +108 -42
- package/dist/plugins/googleCalendar/src/index.js +15 -13
- package/dist/plugins/googleContacts/src/index.js +12 -9
- package/dist/plugins/googleDocs/src/index.js +2 -0
- package/dist/plugins/googleDocs/src/shared.js +2 -1
- package/dist/plugins/googleDrive/src/index.js +50 -53
- package/dist/plugins/googleImage/src/credentials.js +14 -0
- package/dist/plugins/googleImage/src/index.js +14 -25
- package/dist/plugins/googleSheets/src/index.js +26 -27
- package/dist/plugins/googleSlides/src/index.js +6 -4
- package/dist/plugins/googleTasks/src/index.js +13 -11
- package/dist/plugins/gotify/src/credentials.js +32 -0
- package/dist/plugins/gotify/src/index.js +14 -36
- package/dist/plugins/gotowebinar/src/credentials.js +13 -0
- package/dist/plugins/gotowebinar/src/index.js +52 -69
- package/dist/plugins/grafana/src/credentials.js +16 -0
- package/dist/plugins/grafana/src/index.js +34 -53
- package/dist/plugins/graphql/src/credentials.js +42 -0
- package/dist/plugins/graphql/src/index.js +21 -46
- package/dist/plugins/grist/src/credentials.js +30 -0
- package/dist/plugins/grist/src/index.js +14 -43
- package/dist/plugins/halopsa/src/credentials.js +56 -0
- package/dist/plugins/halopsa/src/index.js +20 -47
- package/dist/plugins/harvest/src/credentials.js +20 -0
- package/dist/plugins/harvest/src/index.js +24 -43
- package/dist/plugins/helpscout/src/credentials.js +13 -0
- package/dist/plugins/helpscout/src/index.js +26 -38
- package/dist/plugins/highlevel/src/credentials.js +19 -0
- package/dist/plugins/highlevel/src/index.js +34 -63
- package/dist/plugins/homeAssistant/src/credentials.js +27 -0
- package/dist/plugins/homeAssistant/src/index.js +34 -52
- package/dist/plugins/hubspot/src/credentials.js +16 -0
- package/dist/plugins/hubspot/src/index.js +29 -41
- package/dist/plugins/humanticAi/src/credentials.js +13 -0
- package/dist/plugins/humanticAi/src/index.js +15 -22
- package/dist/plugins/hunter/src/credentials.js +13 -0
- package/dist/plugins/hunter/src/index.js +18 -17
- package/dist/plugins/intercom/src/credentials.js +19 -0
- package/dist/plugins/intercom/src/index.js +25 -38
- package/dist/plugins/iterable/src/credentials.js +17 -0
- package/dist/plugins/iterable/src/index.js +26 -40
- package/dist/plugins/jenkins/src/credentials.js +16 -0
- package/dist/plugins/jenkins/src/index.js +22 -36
- package/dist/plugins/jira/src/credentials.js +16 -0
- package/dist/plugins/jira/src/index.js +35 -61
- package/dist/plugins/keap/src/credentials.js +19 -0
- package/dist/plugins/keap/src/index.js +43 -71
- package/dist/plugins/kobotoolbox/src/credentials.js +13 -0
- package/dist/plugins/kobotoolbox/src/index.js +46 -84
- package/dist/plugins/lemlist/src/credentials.js +19 -0
- package/dist/plugins/lemlist/src/index.js +35 -47
- package/dist/plugins/linear/src/attachments.js +7 -7
- package/dist/plugins/linear/src/comments.js +7 -7
- package/dist/plugins/linear/src/credentials.js +17 -0
- package/dist/plugins/linear/src/cycles.js +5 -5
- package/dist/plugins/linear/src/index.js +2 -0
- package/dist/plugins/linear/src/initiatives.js +6 -6
- package/dist/plugins/linear/src/issues.js +14 -14
- package/dist/plugins/linear/src/labels.js +6 -6
- package/dist/plugins/linear/src/organization.js +2 -2
- package/dist/plugins/linear/src/projects.js +12 -12
- package/dist/plugins/linear/src/shared.js +34 -32
- package/dist/plugins/linear/src/states.js +3 -3
- package/dist/plugins/linear/src/teams.js +4 -4
- package/dist/plugins/linear/src/users.js +3 -3
- package/dist/plugins/linear/src/views.js +5 -5
- package/dist/plugins/linear/src/webhooks.js +5 -5
- package/dist/plugins/lingvanex/src/credentials.js +13 -0
- package/dist/plugins/lingvanex/src/index.js +7 -9
- package/dist/plugins/linkedin/src/credentials.js +17 -0
- package/dist/plugins/linkedin/src/index.js +13 -17
- package/dist/plugins/lonescale/src/credentials.js +13 -0
- package/dist/plugins/lonescale/src/index.js +16 -26
- package/dist/plugins/magento/src/credentials.js +16 -0
- package/dist/plugins/magento/src/index.js +67 -84
- package/dist/plugins/mailcheck/src/credentials.js +17 -0
- package/dist/plugins/mailcheck/src/index.js +7 -9
- package/dist/plugins/mailchimp/src/credentials.js +32 -0
- package/dist/plugins/mailchimp/src/index.js +36 -44
- package/dist/plugins/mailerlite/src/credentials.js +13 -0
- package/dist/plugins/mailerlite/src/index.js +19 -32
- package/dist/plugins/mailgun/src/credentials.js +21 -0
- package/dist/plugins/mailgun/src/index.js +15 -21
- package/dist/plugins/mailjet/src/credentials.js +38 -0
- package/dist/plugins/mailjet/src/index.js +60 -115
- package/dist/plugins/mandrill/src/credentials.js +17 -0
- package/dist/plugins/mandrill/src/index.js +11 -12
- package/dist/plugins/marketstack/src/credentials.js +16 -0
- package/dist/plugins/marketstack/src/index.js +18 -28
- package/dist/plugins/matrix/src/credentials.js +19 -0
- package/dist/plugins/matrix/src/index.js +23 -52
- package/dist/plugins/mattermost/src/credentials.js +19 -0
- package/dist/plugins/mattermost/src/index.js +41 -73
- package/dist/plugins/mautic/src/credentials.js +16 -0
- package/dist/plugins/mautic/src/index.js +46 -62
- package/dist/plugins/medium/src/credentials.js +20 -0
- package/dist/plugins/medium/src/index.js +18 -23
- package/dist/plugins/messagebird/src/credentials.js +22 -0
- package/dist/plugins/messagebird/src/index.js +13 -18
- package/dist/plugins/metabase/src/credentials.js +19 -0
- package/dist/plugins/metabase/src/index.js +24 -40
- package/dist/plugins/microsoftCalendar/src/index.js +48 -12
- package/dist/plugins/microsoftFiles/src/index.js +90 -25
- package/dist/plugins/microsoftMail/src/index.js +62 -15
- package/dist/plugins/misp/src/credentials.js +16 -0
- package/dist/plugins/misp/src/index.js +60 -71
- package/dist/plugins/mocean/src/credentials.js +17 -0
- package/dist/plugins/mocean/src/index.js +11 -23
- package/dist/plugins/monday/src/credentials.js +14 -0
- package/dist/plugins/monday/src/index.js +31 -44
- package/dist/plugins/monicaCrm/src/credentials.js +19 -0
- package/dist/plugins/monicaCrm/src/index.js +25 -42
- package/dist/plugins/msg91/src/credentials.js +10 -0
- package/dist/plugins/msg91/src/index.js +15 -11
- package/dist/plugins/nasa/src/credentials.js +22 -0
- package/dist/plugins/nasa/src/index.js +24 -28
- package/dist/plugins/netlify/src/credentials.js +19 -0
- package/dist/plugins/netlify/src/index.js +27 -51
- package/dist/plugins/netscalerAdc/src/credentials.js +18 -0
- package/dist/plugins/netscalerAdc/src/index.js +16 -31
- package/dist/plugins/nextcloud/src/credentials.js +27 -0
- package/dist/plugins/nextcloud/src/index.js +55 -109
- package/dist/plugins/nocodb/src/credentials.js +16 -0
- package/dist/plugins/nocodb/src/index.js +19 -37
- package/dist/plugins/notion/src/credentials.js +21 -0
- package/dist/plugins/notion/src/index.js +25 -38
- package/dist/plugins/npm/src/credentials.js +19 -0
- package/dist/plugins/npm/src/index.js +22 -32
- package/dist/plugins/odoo/src/credentials.js +21 -0
- package/dist/plugins/odoo/src/index.js +53 -69
- package/dist/plugins/okta/src/credentials.js +23 -0
- package/dist/plugins/okta/src/index.js +30 -35
- package/dist/plugins/oneSimpleApi/src/credentials.js +16 -0
- package/dist/plugins/oneSimpleApi/src/index.js +19 -24
- package/dist/plugins/onfleet/src/credentials.js +23 -0
- package/dist/plugins/onfleet/src/index.js +42 -53
- package/dist/plugins/openai/src/credentials.js +13 -0
- package/dist/plugins/openai/src/index.js +15 -23
- package/dist/plugins/openweathermap/src/credentials.js +16 -0
- package/dist/plugins/openweathermap/src/index.js +22 -22
- package/dist/plugins/oura/src/credentials.js +19 -0
- package/dist/plugins/oura/src/index.js +13 -18
- package/dist/plugins/paddle/src/credentials.js +27 -0
- package/dist/plugins/paddle/src/index.js +20 -36
- package/dist/plugins/pagerduty/src/credentials.js +24 -0
- package/dist/plugins/pagerduty/src/index.js +30 -39
- package/dist/plugins/parallel/src/credentials.js +18 -0
- package/dist/plugins/parallel/src/index.js +16 -22
- package/dist/plugins/paypal/src/credentials.js +44 -0
- package/dist/plugins/paypal/src/index.js +14 -40
- package/dist/plugins/peekalink/src/credentials.js +16 -0
- package/dist/plugins/peekalink/src/index.js +10 -11
- package/dist/plugins/phantombuster/src/credentials.js +19 -0
- package/dist/plugins/phantombuster/src/index.js +19 -32
- package/dist/plugins/philipsHue/src/credentials.js +17 -0
- package/dist/plugins/philipsHue/src/index.js +15 -27
- package/dist/plugins/pipedrive/src/credentials.js +26 -0
- package/dist/plugins/pipedrive/src/index.js +43 -73
- package/dist/plugins/plaud/src/index.js +2 -1
- package/dist/plugins/plaud/src/shared.js +23 -19
- package/dist/plugins/plivo/src/credentials.js +20 -0
- package/dist/plugins/plivo/src/index.js +13 -19
- package/dist/plugins/posthog/src/credentials.js +18 -0
- package/dist/plugins/posthog/src/index.js +14 -20
- package/dist/plugins/profitwell/src/credentials.js +22 -0
- package/dist/plugins/profitwell/src/index.js +10 -17
- package/dist/plugins/pushbullet/src/credentials.js +19 -0
- package/dist/plugins/pushbullet/src/index.js +19 -27
- package/dist/plugins/pushcut/src/credentials.js +19 -0
- package/dist/plugins/pushcut/src/index.js +7 -8
- package/dist/plugins/pushover/src/credentials.js +14 -0
- package/dist/plugins/pushover/src/index.js +7 -12
- package/dist/plugins/quickbase/src/credentials.js +15 -0
- package/dist/plugins/quickbase/src/index.js +24 -34
- package/dist/plugins/quickbooks/src/credentials.js +22 -0
- package/dist/plugins/quickbooks/src/index.js +17 -46
- package/dist/plugins/raindrop/src/credentials.js +19 -0
- package/dist/plugins/raindrop/src/index.js +30 -32
- package/dist/plugins/recraft/src/credentials.js +13 -0
- package/dist/plugins/recraft/src/index.js +38 -27
- package/dist/plugins/reddit/src/credentials.js +26 -0
- package/dist/plugins/reddit/src/index.js +30 -34
- package/dist/plugins/replicate/src/credentials.js +23 -0
- package/dist/plugins/replicate/src/index.js +17 -27
- package/dist/plugins/rocketchat/src/credentials.js +17 -0
- package/dist/plugins/rocketchat/src/index.js +8 -19
- package/dist/plugins/rundeck/src/credentials.js +16 -0
- package/dist/plugins/rundeck/src/index.js +12 -28
- package/dist/plugins/salesforce/src/credentials.js +73 -0
- package/dist/plugins/salesforce/src/index.js +6 -0
- package/dist/plugins/salesforce/src/metadata.js +3 -16
- package/dist/plugins/salesforce/src/shared.js +25 -100
- package/dist/plugins/salesforce/src/sobjects.js +10 -9
- package/dist/plugins/salesmate/src/credentials.js +17 -0
- package/dist/plugins/salesmate/src/index.js +20 -37
- package/dist/plugins/securityScorecard/src/credentials.js +22 -0
- package/dist/plugins/securityScorecard/src/index.js +24 -37
- package/dist/plugins/segment/src/credentials.js +16 -0
- package/dist/plugins/segment/src/index.js +12 -16
- package/dist/plugins/sendgrid/src/credentials.js +13 -0
- package/dist/plugins/sendgrid/src/index.js +31 -35
- package/dist/plugins/sendy/src/credentials.js +18 -0
- package/dist/plugins/sendy/src/index.js +18 -24
- package/dist/plugins/sentry/src/credentials.js +16 -0
- package/dist/plugins/sentry/src/index.js +30 -98
- package/dist/plugins/servicenow/src/credentials.js +13 -0
- package/dist/plugins/servicenow/src/index.js +22 -41
- package/dist/plugins/shiftAtlas/src/graph.js +2 -2
- package/dist/plugins/shiftAtlas/src/index.js +2 -0
- package/dist/plugins/shiftAtlas/src/shared.js +3 -1
- package/dist/plugins/shiftBwm/src/collections.js +201 -0
- package/dist/plugins/shiftBwm/src/index.js +35 -0
- package/dist/plugins/shiftBwm/src/records.js +180 -0
- package/dist/plugins/shiftBwm/src/shared.js +168 -0
- package/dist/plugins/shiftBwm/src/vendor/client.js +227 -0
- package/dist/plugins/shiftBwm/src/vendor/contracts.js +59 -0
- package/dist/plugins/shiftBwm/src/vendor/models.js +525 -0
- package/dist/plugins/shiftCrm/src/access.js +2 -2
- package/dist/plugins/shiftCrm/src/accounts.js +3 -3
- package/dist/plugins/shiftCrm/src/activities.js +3 -3
- package/dist/plugins/shiftCrm/src/credentials.js +6 -0
- package/dist/plugins/shiftCrm/src/index.js +2 -0
- package/dist/plugins/shiftCrm/src/opportunities.js +3 -3
- package/dist/plugins/shiftCrm/src/people.js +3 -3
- package/dist/plugins/shiftCrm/src/records.js +2 -2
- package/dist/plugins/shiftCrm/src/shared.js +2 -1
- package/dist/plugins/shiftCrm/src/tasks.js +3 -3
- package/dist/plugins/shiftObjects/src/credentials.js +2 -0
- package/dist/plugins/shiftObjects/src/index.js +2 -0
- package/dist/plugins/shiftObjects/src/objects.js +3 -3
- package/dist/plugins/shiftOcr/src/credentials.js +8 -0
- package/dist/plugins/shiftOcr/src/index.js +5 -2
- package/dist/plugins/shiftPages/src/index.js +2 -0
- package/dist/plugins/shiftPages/src/pages.js +5 -3
- package/dist/plugins/shiftPages/src/shared.js +3 -1
- package/dist/plugins/shiftTranscription/src/index.js +2 -0
- package/dist/plugins/shiftTranscription/src/shared.js +11 -1
- package/dist/plugins/shiftTranscription/src/transcription.js +3 -2
- package/dist/plugins/shiftWork/src/index.js +2 -0
- package/dist/plugins/shiftWork/src/issue-views.js +5 -5
- package/dist/plugins/shiftWork/src/issues.js +11 -7
- package/dist/plugins/shiftWork/src/projects.js +3 -3
- package/dist/plugins/shiftWork/src/shared.js +3 -1
- package/dist/plugins/shopify/src/credentials.js +16 -0
- package/dist/plugins/shopify/src/index.js +32 -59
- package/dist/plugins/signl4/src/credentials.js +17 -0
- package/dist/plugins/signl4/src/index.js +28 -29
- package/dist/plugins/slack/src/credentials.js +19 -0
- package/dist/plugins/slack/src/index.js +51 -60
- package/dist/plugins/sms77/src/credentials.js +17 -0
- package/dist/plugins/sms77/src/index.js +11 -16
- package/dist/plugins/splunk/src/credentials.js +19 -0
- package/dist/plugins/splunk/src/index.js +32 -74
- package/dist/plugins/spotify/src/credentials.js +19 -0
- package/dist/plugins/spotify/src/index.js +40 -55
- package/dist/plugins/stackby/src/credentials.js +13 -0
- package/dist/plugins/stackby/src/index.js +14 -23
- package/dist/plugins/steel/src/auth.js +27 -0
- package/dist/plugins/steel/src/browser.js +4 -3
- package/dist/plugins/steel/src/captchas.js +4 -3
- package/dist/plugins/steel/src/extensions.js +3 -2
- package/dist/plugins/steel/src/files.js +9 -10
- package/dist/plugins/steel/src/index.js +2 -0
- package/dist/plugins/steel/src/page/tools.js +3 -3
- package/dist/plugins/steel/src/profiles.js +4 -3
- package/dist/plugins/steel/src/sessions.js +13 -13
- package/dist/plugins/steel/src/shared.js +21 -51
- package/dist/plugins/storyblok/src/credentials.js +37 -0
- package/dist/plugins/storyblok/src/index.js +22 -66
- package/dist/plugins/strapi/src/credentials.js +71 -0
- package/dist/plugins/strapi/src/index.js +36 -70
- package/dist/plugins/strava/src/credentials.js +19 -0
- package/dist/plugins/strava/src/index.js +16 -33
- package/dist/plugins/stripe/src/credentials.js +19 -0
- package/dist/plugins/stripe/src/index.js +44 -58
- package/dist/plugins/supabase/src/credentials.js +30 -0
- package/dist/plugins/supabase/src/index.js +18 -40
- package/dist/plugins/syncromsp/src/credentials.js +16 -0
- package/dist/plugins/syncromsp/src/index.js +37 -70
- package/dist/plugins/tapfiliate/src/credentials.js +13 -0
- package/dist/plugins/tapfiliate/src/index.js +21 -31
- package/dist/plugins/telegram/src/credentials.js +20 -0
- package/dist/plugins/telegram/src/index.js +31 -39
- package/dist/plugins/thehive/src/credentials.js +14 -0
- package/dist/plugins/thehive/src/index.js +33 -50
- package/dist/plugins/thehiveProject/src/credentials.js +16 -0
- package/dist/plugins/thehiveProject/src/index.js +53 -122
- package/dist/plugins/todoist/src/credentials.js +26 -0
- package/dist/plugins/todoist/src/index.js +49 -79
- package/dist/plugins/together/src/credentials.js +16 -0
- package/dist/plugins/together/src/index.js +30 -32
- package/dist/plugins/travisci/src/credentials.js +24 -0
- package/dist/plugins/travisci/src/index.js +16 -30
- package/dist/plugins/trello/src/credentials.js +29 -0
- package/dist/plugins/trello/src/index.js +49 -64
- package/dist/plugins/twake/src/credentials.js +16 -0
- package/dist/plugins/twake/src/index.js +8 -10
- package/dist/plugins/twilio/src/credentials.js +23 -0
- package/dist/plugins/twilio/src/index.js +12 -26
- package/dist/plugins/twist/src/credentials.js +13 -0
- package/dist/plugins/twist/src/index.js +32 -44
- package/dist/plugins/twitter/src/credentials.js +16 -0
- package/dist/plugins/twitter/src/index.js +25 -37
- package/dist/plugins/typesafe/src/credentials.js +28 -0
- package/dist/plugins/typesafe/src/index.js +3 -1
- package/dist/plugins/typesafe/src/shared.js +23 -35
- package/dist/plugins/unleashedSoftware/src/credentials.js +21 -0
- package/dist/plugins/unleashedSoftware/src/index.js +13 -37
- package/dist/plugins/uplead/src/credentials.js +16 -0
- package/dist/plugins/uplead/src/index.js +11 -16
- package/dist/plugins/uproc/src/credentials.js +14 -0
- package/dist/plugins/uproc/src/index.js +7 -10
- package/dist/plugins/uptimerobot/src/credentials.js +14 -0
- package/dist/plugins/uptimerobot/src/index.js +28 -39
- package/dist/plugins/urlscanio/src/credentials.js +13 -0
- package/dist/plugins/urlscanio/src/index.js +13 -22
- package/dist/plugins/vercel/src/credentials.js +19 -0
- package/dist/plugins/vercel/src/deployments.js +27 -11
- package/dist/plugins/vercel/src/env.js +31 -12
- package/dist/plugins/vercel/src/index.js +2 -0
- package/dist/plugins/vercel/src/projects.js +6 -3
- package/dist/plugins/vercel/src/shared.js +32 -37
- package/dist/plugins/vero/src/credentials.js +17 -0
- package/dist/plugins/vero/src/index.js +18 -21
- package/dist/plugins/vonage/src/credentials.js +17 -0
- package/dist/plugins/vonage/src/index.js +14 -18
- package/dist/plugins/wekan/src/credentials.js +16 -0
- package/dist/plugins/wekan/src/index.js +33 -46
- package/dist/plugins/wolt/src/account.js +6 -0
- package/dist/plugins/wolt/src/catalog.js +2 -2
- package/dist/plugins/wolt/src/credentials.js +64 -0
- package/dist/plugins/wolt/src/index.js +8 -3
- package/dist/plugins/wolt/src/orders.js +2 -2
- package/dist/plugins/wolt/src/public.js +91 -0
- package/dist/plugins/wolt/src/shared.js +49 -158
- package/dist/plugins/woocommerce/src/credentials.js +16 -0
- package/dist/plugins/woocommerce/src/index.js +19 -37
- package/dist/plugins/wordpress/src/credentials.js +16 -0
- package/dist/plugins/wordpress/src/index.js +23 -42
- package/dist/plugins/xai/src/credentials.js +13 -0
- package/dist/plugins/xai/src/index.js +31 -30
- package/dist/plugins/xero/src/credentials.js +17 -0
- package/dist/plugins/xero/src/index.js +19 -36
- package/dist/plugins/yourls/src/credentials.js +17 -0
- package/dist/plugins/yourls/src/index.js +13 -23
- package/dist/plugins/zammad/src/credentials.js +15 -0
- package/dist/plugins/zammad/src/index.js +27 -47
- package/dist/plugins/zendesk/src/credentials.js +26 -0
- package/dist/plugins/zendesk/src/index.js +29 -48
- package/dist/plugins/zoho/src/credentials.js +17 -0
- package/dist/plugins/zoho/src/index.js +18 -38
- package/dist/plugins/zoom/src/credentials.js +19 -0
- package/dist/plugins/zoom/src/index.js +15 -30
- package/dist/plugins/zulip/src/credentials.js +16 -0
- package/dist/plugins/zulip/src/index.js +36 -42
- package/dist/sdk.d.ts +8 -0
- package/dist/sdk.js +3 -0
- package/package.json +3 -2
- package/dist/plugins/_shared/authedFetch.js +0 -33
- package/dist/plugins/_shared/tokenRefresh.js +0 -41
|
@@ -1,29 +1,18 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
url.searchParams.set(k, String(v));
|
|
8
|
-
}
|
|
9
|
-
}
|
|
10
|
-
const init = {
|
|
1
|
+
import { credentialJson } from "../../_shared/credentials.js";
|
|
2
|
+
import { twistCredential } from "./credentials.js";
|
|
3
|
+
function api(ctx, method, endpoint, body, qs) {
|
|
4
|
+
return credentialJson(ctx, twistCredential, "twist", {
|
|
5
|
+
target: "api",
|
|
6
|
+
path: endpoint.replace(/^\//, ""),
|
|
11
7
|
method,
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
},
|
|
16
|
-
};
|
|
17
|
-
if (body && Object.keys(body).length > 0)
|
|
18
|
-
init.body = JSON.stringify(body);
|
|
19
|
-
const res = await fetch(url.toString(), init);
|
|
20
|
-
if (!res.ok)
|
|
21
|
-
throw new Error(`Twist error ${res.status}: ${await res.text()}`);
|
|
22
|
-
return res.json();
|
|
8
|
+
query: qs,
|
|
9
|
+
...(body && Object.keys(body).length > 0 ? { json: body } : {}),
|
|
10
|
+
});
|
|
23
11
|
}
|
|
24
12
|
export default function twist(rl) {
|
|
25
13
|
rl.setName("twist");
|
|
26
14
|
rl.setVersion("0.1.0");
|
|
15
|
+
rl.setCredential(twistCredential);
|
|
27
16
|
rl.setConnectionSchema({
|
|
28
17
|
accessToken: {
|
|
29
18
|
type: "string",
|
|
@@ -32,7 +21,6 @@ export default function twist(rl) {
|
|
|
32
21
|
env: "TWIST_ACCESS_TOKEN",
|
|
33
22
|
},
|
|
34
23
|
});
|
|
35
|
-
const t = (ctx) => ctx.connection.config.accessToken;
|
|
36
24
|
// ── Channel ─────────────────────────────────────────
|
|
37
25
|
rl.registerAction("channel.create", {
|
|
38
26
|
access: "write",
|
|
@@ -42,7 +30,7 @@ export default function twist(rl) {
|
|
|
42
30
|
name: { type: "string", required: true },
|
|
43
31
|
},
|
|
44
32
|
async execute(input, ctx) {
|
|
45
|
-
return api(
|
|
33
|
+
return api(ctx, "POST", "/channels/add", {
|
|
46
34
|
workspace_id: input.workspaceId,
|
|
47
35
|
name: input.name,
|
|
48
36
|
});
|
|
@@ -53,7 +41,7 @@ export default function twist(rl) {
|
|
|
53
41
|
description: "Get a channel",
|
|
54
42
|
inputSchema: { id: { type: "number", required: true } },
|
|
55
43
|
async execute(input, ctx) {
|
|
56
|
-
return api(
|
|
44
|
+
return api(ctx, "GET", "/channels/getone", undefined, {
|
|
57
45
|
id: input.id,
|
|
58
46
|
});
|
|
59
47
|
},
|
|
@@ -67,7 +55,7 @@ export default function twist(rl) {
|
|
|
67
55
|
},
|
|
68
56
|
async execute(input, ctx) {
|
|
69
57
|
const p = input;
|
|
70
|
-
const data = (await api(
|
|
58
|
+
const data = (await api(ctx, "GET", "/channels/get", undefined, {
|
|
71
59
|
workspace_id: p.workspaceId,
|
|
72
60
|
}));
|
|
73
61
|
return p.limit ? data.slice(0, p.limit) : data;
|
|
@@ -82,7 +70,7 @@ export default function twist(rl) {
|
|
|
82
70
|
description: { type: "string", required: false },
|
|
83
71
|
},
|
|
84
72
|
async execute(input, ctx) {
|
|
85
|
-
return api(
|
|
73
|
+
return api(ctx, "POST", "/channels/update", input);
|
|
86
74
|
},
|
|
87
75
|
});
|
|
88
76
|
rl.registerAction("channel.delete", {
|
|
@@ -90,7 +78,7 @@ export default function twist(rl) {
|
|
|
90
78
|
description: "Delete a channel",
|
|
91
79
|
inputSchema: { id: { type: "number", required: true } },
|
|
92
80
|
async execute(input, ctx) {
|
|
93
|
-
return api(
|
|
81
|
+
return api(ctx, "POST", "/channels/remove", undefined, {
|
|
94
82
|
id: input.id,
|
|
95
83
|
});
|
|
96
84
|
},
|
|
@@ -100,7 +88,7 @@ export default function twist(rl) {
|
|
|
100
88
|
description: "Archive a channel",
|
|
101
89
|
inputSchema: { id: { type: "number", required: true } },
|
|
102
90
|
async execute(input, ctx) {
|
|
103
|
-
return api(
|
|
91
|
+
return api(ctx, "POST", "/channels/archive", undefined, {
|
|
104
92
|
id: input.id,
|
|
105
93
|
});
|
|
106
94
|
},
|
|
@@ -110,7 +98,7 @@ export default function twist(rl) {
|
|
|
110
98
|
description: "Unarchive a channel",
|
|
111
99
|
inputSchema: { id: { type: "number", required: true } },
|
|
112
100
|
async execute(input, ctx) {
|
|
113
|
-
return api(
|
|
101
|
+
return api(ctx, "POST", "/channels/unarchive", undefined, {
|
|
114
102
|
id: input.id,
|
|
115
103
|
});
|
|
116
104
|
},
|
|
@@ -126,7 +114,7 @@ export default function twist(rl) {
|
|
|
126
114
|
},
|
|
127
115
|
async execute(input, ctx) {
|
|
128
116
|
const p = input;
|
|
129
|
-
return api(
|
|
117
|
+
return api(ctx, "POST", "/threads/add", {
|
|
130
118
|
channel_id: p.channelId,
|
|
131
119
|
title: p.title,
|
|
132
120
|
content: p.content,
|
|
@@ -138,7 +126,7 @@ export default function twist(rl) {
|
|
|
138
126
|
description: "Get a thread",
|
|
139
127
|
inputSchema: { id: { type: "number", required: true } },
|
|
140
128
|
async execute(input, ctx) {
|
|
141
|
-
return api(
|
|
129
|
+
return api(ctx, "GET", "/threads/getone", undefined, {
|
|
142
130
|
id: input.id,
|
|
143
131
|
});
|
|
144
132
|
},
|
|
@@ -155,7 +143,7 @@ export default function twist(rl) {
|
|
|
155
143
|
const qs = { channel_id: p.channelId };
|
|
156
144
|
if (p.limit)
|
|
157
145
|
qs.limit = p.limit;
|
|
158
|
-
return api(
|
|
146
|
+
return api(ctx, "GET", "/threads/get", undefined, qs);
|
|
159
147
|
},
|
|
160
148
|
});
|
|
161
149
|
rl.registerAction("thread.update", {
|
|
@@ -167,7 +155,7 @@ export default function twist(rl) {
|
|
|
167
155
|
content: { type: "string", required: false },
|
|
168
156
|
},
|
|
169
157
|
async execute(input, ctx) {
|
|
170
|
-
return api(
|
|
158
|
+
return api(ctx, "POST", "/threads/update", input);
|
|
171
159
|
},
|
|
172
160
|
});
|
|
173
161
|
rl.registerAction("thread.delete", {
|
|
@@ -175,7 +163,7 @@ export default function twist(rl) {
|
|
|
175
163
|
description: "Delete a thread",
|
|
176
164
|
inputSchema: { id: { type: "number", required: true } },
|
|
177
165
|
async execute(input, ctx) {
|
|
178
|
-
return api(
|
|
166
|
+
return api(ctx, "POST", "/threads/remove", undefined, {
|
|
179
167
|
id: input.id,
|
|
180
168
|
});
|
|
181
169
|
},
|
|
@@ -190,7 +178,7 @@ export default function twist(rl) {
|
|
|
190
178
|
},
|
|
191
179
|
async execute(input, ctx) {
|
|
192
180
|
const p = input;
|
|
193
|
-
return api(
|
|
181
|
+
return api(ctx, "POST", "/comments/add", {
|
|
194
182
|
thread_id: p.threadId,
|
|
195
183
|
content: p.content,
|
|
196
184
|
});
|
|
@@ -201,7 +189,7 @@ export default function twist(rl) {
|
|
|
201
189
|
description: "Get a comment",
|
|
202
190
|
inputSchema: { id: { type: "number", required: true } },
|
|
203
191
|
async execute(input, ctx) {
|
|
204
|
-
const data = (await api(
|
|
192
|
+
const data = (await api(ctx, "GET", "/comments/getone", undefined, {
|
|
205
193
|
id: input.id,
|
|
206
194
|
}));
|
|
207
195
|
return data.comment ?? data;
|
|
@@ -219,7 +207,7 @@ export default function twist(rl) {
|
|
|
219
207
|
const qs = { thread_id: p.threadId };
|
|
220
208
|
if (p.limit)
|
|
221
209
|
qs.limit = p.limit;
|
|
222
|
-
return api(
|
|
210
|
+
return api(ctx, "GET", "/comments/get", undefined, qs);
|
|
223
211
|
},
|
|
224
212
|
});
|
|
225
213
|
rl.registerAction("comment.update", {
|
|
@@ -230,7 +218,7 @@ export default function twist(rl) {
|
|
|
230
218
|
content: { type: "string", required: false },
|
|
231
219
|
},
|
|
232
220
|
async execute(input, ctx) {
|
|
233
|
-
return api(
|
|
221
|
+
return api(ctx, "POST", "/comments/update", input);
|
|
234
222
|
},
|
|
235
223
|
});
|
|
236
224
|
rl.registerAction("comment.delete", {
|
|
@@ -238,7 +226,7 @@ export default function twist(rl) {
|
|
|
238
226
|
description: "Delete a comment",
|
|
239
227
|
inputSchema: { id: { type: "number", required: true } },
|
|
240
228
|
async execute(input, ctx) {
|
|
241
|
-
return api(
|
|
229
|
+
return api(ctx, "POST", "/comments/remove", undefined, {
|
|
242
230
|
id: input.id,
|
|
243
231
|
});
|
|
244
232
|
},
|
|
@@ -254,7 +242,7 @@ export default function twist(rl) {
|
|
|
254
242
|
},
|
|
255
243
|
async execute(input, ctx) {
|
|
256
244
|
const p = input;
|
|
257
|
-
return api(
|
|
245
|
+
return api(ctx, "POST", "/conversation_messages/add", {
|
|
258
246
|
workspace_id: p.workspaceId,
|
|
259
247
|
conversation_id: p.conversationId,
|
|
260
248
|
content: p.content,
|
|
@@ -266,7 +254,7 @@ export default function twist(rl) {
|
|
|
266
254
|
description: "Get a conversation message",
|
|
267
255
|
inputSchema: { id: { type: "number", required: true } },
|
|
268
256
|
async execute(input, ctx) {
|
|
269
|
-
return api(
|
|
257
|
+
return api(ctx, "GET", "/conversation_messages/getone", undefined, {
|
|
270
258
|
id: input.id,
|
|
271
259
|
});
|
|
272
260
|
},
|
|
@@ -276,7 +264,7 @@ export default function twist(rl) {
|
|
|
276
264
|
description: "List messages in a conversation",
|
|
277
265
|
inputSchema: { conversationId: { type: "number", required: true } },
|
|
278
266
|
async execute(input, ctx) {
|
|
279
|
-
return api(
|
|
267
|
+
return api(ctx, "GET", "/conversation_messages/get", undefined, {
|
|
280
268
|
conversation_id: input.conversationId,
|
|
281
269
|
});
|
|
282
270
|
},
|
|
@@ -289,7 +277,7 @@ export default function twist(rl) {
|
|
|
289
277
|
content: { type: "string", required: false },
|
|
290
278
|
},
|
|
291
279
|
async execute(input, ctx) {
|
|
292
|
-
return api(
|
|
280
|
+
return api(ctx, "POST", "/conversation_messages/update", input);
|
|
293
281
|
},
|
|
294
282
|
});
|
|
295
283
|
rl.registerAction("messageConversation.delete", {
|
|
@@ -297,7 +285,7 @@ export default function twist(rl) {
|
|
|
297
285
|
description: "Delete a conversation message",
|
|
298
286
|
inputSchema: { id: { type: "number", required: true } },
|
|
299
287
|
async execute(input, ctx) {
|
|
300
|
-
return api(
|
|
288
|
+
return api(ctx, "POST", "/conversation_messages/remove", undefined, {
|
|
301
289
|
id: input.id,
|
|
302
290
|
});
|
|
303
291
|
},
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { staticCredential } from "../../_shared/credentials.js";
|
|
2
|
+
/**
|
|
3
|
+
* An OAuth2 token (app-only or user-context), sent as a bearer to the
|
|
4
|
+
* Twitter/X v2 API origin.
|
|
5
|
+
*/
|
|
6
|
+
export const twitterCredential = staticCredential({
|
|
7
|
+
id: "twitter",
|
|
8
|
+
auth: { kind: "bearer" },
|
|
9
|
+
local: { secret: "bearerToken" },
|
|
10
|
+
targets: {
|
|
11
|
+
api: {
|
|
12
|
+
baseUrl: "https://api.twitter.com/2/",
|
|
13
|
+
methods: ["GET", "POST", "DELETE"],
|
|
14
|
+
},
|
|
15
|
+
},
|
|
16
|
+
});
|
|
@@ -1,35 +1,23 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
url.searchParams.set(k, String(v));
|
|
8
|
-
}
|
|
9
|
-
}
|
|
10
|
-
const init = {
|
|
1
|
+
import { credentialJson, pathSegment } from "../../_shared/credentials.js";
|
|
2
|
+
import { twitterCredential } from "./credentials.js";
|
|
3
|
+
async function api(ctx, method, path, body, qs, fullOutput = false) {
|
|
4
|
+
const json = (await credentialJson(ctx, twitterCredential, "twitter", {
|
|
5
|
+
target: "api",
|
|
6
|
+
path,
|
|
11
7
|
method,
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
},
|
|
16
|
-
};
|
|
17
|
-
if (body && Object.keys(body).length > 0)
|
|
18
|
-
init.body = JSON.stringify(body);
|
|
19
|
-
const res = await fetch(url.toString(), init);
|
|
20
|
-
if (!res.ok)
|
|
21
|
-
throw new Error(`Twitter error ${res.status}: ${await res.text()}`);
|
|
22
|
-
const json = (await res.json());
|
|
8
|
+
query: qs,
|
|
9
|
+
...(body && Object.keys(body).length > 0 ? { json: body } : {}),
|
|
10
|
+
}));
|
|
23
11
|
return fullOutput ? json : json.data;
|
|
24
12
|
}
|
|
25
|
-
async function paginate(
|
|
13
|
+
async function paginate(ctx, path, qs = {}, limit) {
|
|
26
14
|
const results = [];
|
|
27
15
|
let nextToken;
|
|
28
16
|
qs.max_results = limit && limit < 100 ? limit : 10;
|
|
29
17
|
do {
|
|
30
18
|
if (nextToken)
|
|
31
19
|
qs.next_token = nextToken;
|
|
32
|
-
const res = (await api(
|
|
20
|
+
const res = (await api(ctx, "GET", path, undefined, { ...qs }, true));
|
|
33
21
|
const data = res.data;
|
|
34
22
|
if (data)
|
|
35
23
|
results.push(...data);
|
|
@@ -43,6 +31,7 @@ async function paginate(token, endpoint, qs = {}, limit) {
|
|
|
43
31
|
export default function twitter(rl) {
|
|
44
32
|
rl.setName("twitter");
|
|
45
33
|
rl.setVersion("0.1.0");
|
|
34
|
+
rl.setCredential(twitterCredential);
|
|
46
35
|
rl.setConnectionSchema({
|
|
47
36
|
bearerToken: {
|
|
48
37
|
type: "string",
|
|
@@ -51,7 +40,6 @@ export default function twitter(rl) {
|
|
|
51
40
|
env: "TWITTER_BEARER_TOKEN",
|
|
52
41
|
},
|
|
53
42
|
});
|
|
54
|
-
const t = (ctx) => ctx.connection.config.bearerToken;
|
|
55
43
|
// ── Tweet ───────────────────────────────────────────
|
|
56
44
|
rl.registerAction("tweet.create", {
|
|
57
45
|
access: "write",
|
|
@@ -82,7 +70,7 @@ export default function twitter(rl) {
|
|
|
82
70
|
body.media = { media_ids: [p.mediaId] };
|
|
83
71
|
if (p.placeId)
|
|
84
72
|
body.geo = { place_id: p.placeId };
|
|
85
|
-
return api(
|
|
73
|
+
return api(ctx, "POST", "tweets", body);
|
|
86
74
|
},
|
|
87
75
|
});
|
|
88
76
|
rl.registerAction("tweet.delete", {
|
|
@@ -90,7 +78,7 @@ export default function twitter(rl) {
|
|
|
90
78
|
description: "Delete a tweet",
|
|
91
79
|
inputSchema: { id: { type: "string", required: true } },
|
|
92
80
|
async execute(input, ctx) {
|
|
93
|
-
return api(
|
|
81
|
+
return api(ctx, "DELETE", `tweets/${pathSegment(input.id)}`);
|
|
94
82
|
},
|
|
95
83
|
});
|
|
96
84
|
rl.registerAction("tweet.like", {
|
|
@@ -98,8 +86,8 @@ export default function twitter(rl) {
|
|
|
98
86
|
description: "Like a tweet (requires user context)",
|
|
99
87
|
inputSchema: { tweetId: { type: "string", required: true } },
|
|
100
88
|
async execute(input, ctx) {
|
|
101
|
-
const user = (await api(
|
|
102
|
-
return api(
|
|
89
|
+
const user = (await api(ctx, "GET", "users/me"));
|
|
90
|
+
return api(ctx, "POST", `users/${pathSegment(user.id)}/likes`, {
|
|
103
91
|
tweet_id: input.tweetId,
|
|
104
92
|
});
|
|
105
93
|
},
|
|
@@ -109,8 +97,8 @@ export default function twitter(rl) {
|
|
|
109
97
|
description: "Retweet a tweet (requires user context)",
|
|
110
98
|
inputSchema: { tweetId: { type: "string", required: true } },
|
|
111
99
|
async execute(input, ctx) {
|
|
112
|
-
const user = (await api(
|
|
113
|
-
return api(
|
|
100
|
+
const user = (await api(ctx, "GET", "users/me"));
|
|
101
|
+
return api(ctx, "POST", `users/${pathSegment(user.id)}/retweets`, {
|
|
114
102
|
tweet_id: input.tweetId,
|
|
115
103
|
});
|
|
116
104
|
},
|
|
@@ -155,9 +143,9 @@ export default function twitter(rl) {
|
|
|
155
143
|
qs["tweet.fields"] = p.tweetFields;
|
|
156
144
|
const limit = p.limit;
|
|
157
145
|
if (limit) {
|
|
158
|
-
return paginate(
|
|
146
|
+
return paginate(ctx, "tweets/search/recent", qs, limit);
|
|
159
147
|
}
|
|
160
|
-
return paginate(
|
|
148
|
+
return paginate(ctx, "tweets/search/recent", qs);
|
|
161
149
|
},
|
|
162
150
|
});
|
|
163
151
|
// ── User ────────────────────────────────────────────
|
|
@@ -180,13 +168,13 @@ export default function twitter(rl) {
|
|
|
180
168
|
async execute(input, ctx) {
|
|
181
169
|
const p = input;
|
|
182
170
|
if (p.me)
|
|
183
|
-
return api(
|
|
171
|
+
return api(ctx, "GET", "users/me");
|
|
184
172
|
if (p.username) {
|
|
185
173
|
const name = p.username.replace(/^@/, "");
|
|
186
|
-
return api(
|
|
174
|
+
return api(ctx, "GET", `users/by/username/${pathSegment(name)}`);
|
|
187
175
|
}
|
|
188
176
|
if (p.id)
|
|
189
|
-
return api(
|
|
177
|
+
return api(ctx, "GET", `users/${pathSegment(p.id)}`);
|
|
190
178
|
throw new Error("Provide username, id, or set me=true");
|
|
191
179
|
},
|
|
192
180
|
});
|
|
@@ -200,7 +188,7 @@ export default function twitter(rl) {
|
|
|
200
188
|
},
|
|
201
189
|
async execute(input, ctx) {
|
|
202
190
|
const p = input;
|
|
203
|
-
return api(
|
|
191
|
+
return api(ctx, "POST", `lists/${pathSegment(p.listId)}/members`, {
|
|
204
192
|
user_id: p.userId,
|
|
205
193
|
});
|
|
206
194
|
},
|
|
@@ -223,7 +211,7 @@ export default function twitter(rl) {
|
|
|
223
211
|
const body = { text: p.text };
|
|
224
212
|
if (p.mediaId)
|
|
225
213
|
body.attachments = [{ media_id: p.mediaId }];
|
|
226
|
-
return api(
|
|
214
|
+
return api(ctx, "POST", `dm_conversations/with/${pathSegment(p.userId)}/messages`, body);
|
|
227
215
|
},
|
|
228
216
|
});
|
|
229
217
|
}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { httpsBase, staticCredential } from "../../_shared/credentials.js";
|
|
2
|
+
const DEFAULT_BASE = "https://api.typesafe.ai";
|
|
3
|
+
/**
|
|
4
|
+
* A TypeSafe API key, sent as a bearer to the configured base's /v1/
|
|
5
|
+
* endpoints. The base URL is public config, defaults to the hosted API,
|
|
6
|
+
* and must be HTTPS.
|
|
7
|
+
*/
|
|
8
|
+
export const typesafeCredential = staticCredential({
|
|
9
|
+
id: "typesafe",
|
|
10
|
+
auth: { kind: "bearer" },
|
|
11
|
+
local: { secret: "apiKey" },
|
|
12
|
+
targets: (config) => {
|
|
13
|
+
const raw = config.baseUrl;
|
|
14
|
+
const base = typeof raw === "string" && raw.trim() ? raw.trim() : DEFAULT_BASE;
|
|
15
|
+
return {
|
|
16
|
+
api: {
|
|
17
|
+
baseUrl: httpsBase(base, "v1/"),
|
|
18
|
+
methods: ["GET", "POST"],
|
|
19
|
+
},
|
|
20
|
+
};
|
|
21
|
+
},
|
|
22
|
+
probe: {
|
|
23
|
+
target: "api",
|
|
24
|
+
path: "models",
|
|
25
|
+
method: "GET",
|
|
26
|
+
acceptedStatuses: [200],
|
|
27
|
+
},
|
|
28
|
+
});
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import * as t from "typebox";
|
|
2
|
+
import { typesafeCredential } from "./credentials.js";
|
|
2
3
|
import { GUIDE, GUIDE_TOPICS } from "./guide.js";
|
|
3
4
|
import { choiceRubric, noulRubric, questionsSchema, scoreRubric, toWireQuestion, toWireQuestions, } from "./questions.js";
|
|
4
5
|
import { DEFAULT_BASE, DEFAULT_MODEL, evaluate, modelSchema, request, resolveModel, STRICT, stateSchema, } from "./shared.js";
|
|
@@ -25,6 +26,7 @@ const USE_WHEN = "Reach for it whenever a bounded decision is currently costing
|
|
|
25
26
|
export default function typesafe(rl) {
|
|
26
27
|
rl.setName("typesafe");
|
|
27
28
|
rl.setVersion("0.1.0");
|
|
29
|
+
rl.setCredential(typesafeCredential);
|
|
28
30
|
rl.setConnectionSchema(t.Object({
|
|
29
31
|
apiKey: t.String({
|
|
30
32
|
env: "TYPESAFE_API_KEY",
|
|
@@ -137,7 +139,7 @@ export default function typesafe(rl) {
|
|
|
137
139
|
"Versioned ids such as 'jev-1.13.0' are accepted whether or not they appear here.",
|
|
138
140
|
inputSchema: t.Object({}, STRICT),
|
|
139
141
|
async execute(_input, ctx) {
|
|
140
|
-
const body = await request(ctx, "
|
|
142
|
+
const body = await request(ctx, "models");
|
|
141
143
|
if (!Array.isArray(body.models)) {
|
|
142
144
|
throw new Error("TypeSafe returned a response with no models list.");
|
|
143
145
|
}
|
|
@@ -1,4 +1,6 @@
|
|
|
1
1
|
import * as t from "typebox";
|
|
2
|
+
import { credentialRequest } from "../../_shared/credentials.js";
|
|
3
|
+
import { typesafeCredential } from "./credentials.js";
|
|
2
4
|
export const STRICT = { additionalProperties: false };
|
|
3
5
|
export const DEFAULT_BASE = "https://api.typesafe.ai";
|
|
4
6
|
export const DEFAULT_MODEL = "jev-latest";
|
|
@@ -19,18 +21,6 @@ const CHARS_PER_TOKEN = 4;
|
|
|
19
21
|
function config(ctx) {
|
|
20
22
|
return ctx.connection?.config ?? {};
|
|
21
23
|
}
|
|
22
|
-
function apiKey(ctx) {
|
|
23
|
-
const key = config(ctx).apiKey;
|
|
24
|
-
if (typeof key !== "string" || !key.trim()) {
|
|
25
|
-
throw new Error("Missing TYPESAFE_API_KEY. Create a key at https://console.typesafe.ai/settings/keys and store it as a secret.");
|
|
26
|
-
}
|
|
27
|
-
return key.trim();
|
|
28
|
-
}
|
|
29
|
-
function baseUrl(ctx) {
|
|
30
|
-
const raw = config(ctx).baseUrl;
|
|
31
|
-
const base = typeof raw === "string" && raw.trim() ? raw.trim() : DEFAULT_BASE;
|
|
32
|
-
return base.replace(/\/+$/, "");
|
|
33
|
-
}
|
|
34
24
|
export function resolveModel(ctx, override) {
|
|
35
25
|
if (typeof override === "string" && override.trim())
|
|
36
26
|
return override.trim();
|
|
@@ -63,39 +53,36 @@ function retryDelayMs(response, attempt) {
|
|
|
63
53
|
}
|
|
64
54
|
return Math.min(250 * 2 ** attempt, 8_000);
|
|
65
55
|
}
|
|
66
|
-
|
|
67
|
-
|
|
56
|
+
/** By status alone: provider error text can echo request data and is dropped. */
|
|
57
|
+
function explain(status) {
|
|
68
58
|
switch (status) {
|
|
69
59
|
case 401:
|
|
70
|
-
return
|
|
60
|
+
return "TypeSafe 401: the API key was rejected.";
|
|
71
61
|
case 422:
|
|
72
|
-
return
|
|
62
|
+
return "TypeSafe 422: the request body failed validation — a missing field or a malformed question.";
|
|
73
63
|
case 429:
|
|
74
|
-
return
|
|
64
|
+
return "TypeSafe 429: rate limit exceeded (250k tokens/sec, 1,200 req/min). Raise the connection's maxRetries or slow the caller.";
|
|
75
65
|
case 503:
|
|
76
|
-
return
|
|
66
|
+
return "TypeSafe 503: the model is unavailable. Transient — retry, and contact TypeSafe if it persists.";
|
|
77
67
|
case 529:
|
|
78
|
-
return
|
|
68
|
+
return "TypeSafe 529: the service is overloaded. Retry after a short delay.";
|
|
79
69
|
default:
|
|
80
70
|
return status >= 500
|
|
81
|
-
? `TypeSafe ${status}: the service failed this request. Transient — retry after a short delay
|
|
82
|
-
: `TypeSafe ${status}:
|
|
71
|
+
? `TypeSafe ${status}: the service failed this request. Transient — retry after a short delay.`
|
|
72
|
+
: `TypeSafe ${status}: request failed.`;
|
|
83
73
|
}
|
|
84
74
|
}
|
|
85
75
|
async function sleep(ms) {
|
|
86
76
|
await new Promise((resolve) => setTimeout(resolve, ms));
|
|
87
77
|
}
|
|
88
|
-
export async function request(ctx, path,
|
|
89
|
-
const url = `${baseUrl(ctx)}${path}`;
|
|
90
|
-
const headers = new Headers(init.headers);
|
|
91
|
-
headers.set("authorization", `Bearer ${apiKey(ctx)}`);
|
|
92
|
-
headers.set("accept", "application/json");
|
|
93
|
-
if (init.body && !headers.has("content-type")) {
|
|
94
|
-
headers.set("content-type", "application/json");
|
|
95
|
-
}
|
|
78
|
+
export async function request(ctx, path, json) {
|
|
96
79
|
const attempts = maxRetries(ctx);
|
|
97
80
|
for (let attempt = 0;; attempt++) {
|
|
98
|
-
const response = await
|
|
81
|
+
const response = await credentialRequest(ctx, typesafeCredential, {
|
|
82
|
+
target: "api",
|
|
83
|
+
path,
|
|
84
|
+
...(json !== undefined ? { method: "POST", json } : {}),
|
|
85
|
+
});
|
|
99
86
|
if (response.ok) {
|
|
100
87
|
const text = await response.text();
|
|
101
88
|
if (!text)
|
|
@@ -104,14 +91,14 @@ export async function request(ctx, path, init = {}) {
|
|
|
104
91
|
return JSON.parse(text);
|
|
105
92
|
}
|
|
106
93
|
catch {
|
|
107
|
-
throw new Error(
|
|
94
|
+
throw new Error("TypeSafe returned a non-JSON body.");
|
|
108
95
|
}
|
|
109
96
|
}
|
|
110
97
|
if (retryable(response.status) && attempt < attempts) {
|
|
111
98
|
await sleep(retryDelayMs(response, attempt));
|
|
112
99
|
continue;
|
|
113
100
|
}
|
|
114
|
-
throw new Error(explain(response.status
|
|
101
|
+
throw new Error(explain(response.status));
|
|
115
102
|
}
|
|
116
103
|
}
|
|
117
104
|
/** Serialized length, measuring exactly what the request body will carry. */
|
|
@@ -142,9 +129,10 @@ export async function evaluate(ctx, state, questions, model) {
|
|
|
142
129
|
throw new Error("At least one question is required.");
|
|
143
130
|
}
|
|
144
131
|
assertWithinContext(state, questions);
|
|
145
|
-
const body = await request(ctx, "
|
|
146
|
-
|
|
147
|
-
|
|
132
|
+
const body = await request(ctx, "systemone", {
|
|
133
|
+
state,
|
|
134
|
+
model,
|
|
135
|
+
questions,
|
|
148
136
|
});
|
|
149
137
|
if (!body || typeof body.answers !== "object" || body.answers === null) {
|
|
150
138
|
throw new Error("TypeSafe returned a response with no answers map.");
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { staticCredential } from "../../_shared/credentials.js";
|
|
2
|
+
/**
|
|
3
|
+
* An API ID, sent as the api-auth-id header, and an API key that signs
|
|
4
|
+
* the query of every request: the transport sends its HMAC-SHA256 as
|
|
5
|
+
* api-auth-signature and never the key itself.
|
|
6
|
+
*/
|
|
7
|
+
export const unleashedSoftwareCredential = staticCredential({
|
|
8
|
+
id: "unleashedSoftware",
|
|
9
|
+
auth: {
|
|
10
|
+
kind: "static",
|
|
11
|
+
parts: ["apiId", "apiKey"],
|
|
12
|
+
placements: [
|
|
13
|
+
{ in: "header", part: "apiId", name: "api-auth-id" },
|
|
14
|
+
{ in: "querySignature", part: "apiKey", name: "api-auth-signature" },
|
|
15
|
+
],
|
|
16
|
+
},
|
|
17
|
+
local: { apiId: "apiId", apiKey: "apiKey" },
|
|
18
|
+
targets: {
|
|
19
|
+
api: { baseUrl: "https://api.unleashedsoftware.com/", methods: ["GET"] },
|
|
20
|
+
},
|
|
21
|
+
});
|