runline 0.33.0 → 0.35.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 +21 -8
- 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 +184 -22
- package/dist/credentials/transport.d.ts +48 -2
- package/dist/credentials/transport.js +248 -70
- package/dist/credentials/types.d.ts +177 -10
- package/dist/index.d.ts +6 -5
- package/dist/index.js +3 -2
- package/dist/plugin/api.d.ts +7 -0
- package/dist/plugin/api.js +7 -0
- package/dist/plugin/schema.d.ts +16 -4
- package/dist/plugin/schema.js +28 -5
- package/dist/plugin/types.d.ts +20 -0
- package/dist/plugins/_shared/base64.js +30 -0
- package/dist/plugins/_shared/credentialAdapter.js +99 -15
- package/dist/plugins/_shared/credentials.js +416 -0
- package/dist/plugins/_shared/googleAuth.js +69 -39
- package/dist/plugins/_shared/googleCredentials.js +68 -14
- package/dist/plugins/_shared/localFile.js +40 -0
- package/dist/plugins/_shared/mediaFile.js +12 -12
- package/dist/plugins/_shared/microsoftAuth.js +31 -47
- package/dist/plugins/_shared/microsoftCredentials.js +42 -15
- package/dist/plugins/_shared/provider.js +2 -14
- package/dist/plugins/_shared/shiftCloud.js +16 -56
- package/dist/plugins/_shared/shiftCredentials.js +83 -0
- package/dist/plugins/_shared/shiftUpload.js +14 -10
- 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/agentMail/src/credentials.js +35 -0
- package/dist/plugins/agentMail/src/drafts.js +137 -0
- package/dist/plugins/agentMail/src/inboxes.js +95 -0
- package/dist/plugins/agentMail/src/index.js +35 -0
- package/dist/plugins/agentMail/src/messages.js +154 -0
- package/dist/plugins/agentMail/src/schemas.js +156 -0
- package/dist/plugins/agentMail/src/shared.js +203 -0
- package/dist/plugins/agentMail/src/threads.js +75 -0
- 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 +87 -62
- 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 +5 -3
- 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 +47 -108
- 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 +109 -42
- package/dist/plugins/googleCalendar/src/index.js +20 -51
- package/dist/plugins/googleContacts/src/index.js +13 -40
- package/dist/plugins/googleDocs/src/index.js +3 -32
- package/dist/plugins/googleDocs/src/shared.js +2 -1
- package/dist/plugins/googleDrive/src/index.js +68 -97
- package/dist/plugins/googleImage/src/credentials.js +14 -0
- package/dist/plugins/googleImage/src/index.js +15 -26
- package/dist/plugins/googleSheets/src/index.js +27 -60
- package/dist/plugins/googleSlides/src/index.js +7 -35
- package/dist/plugins/googleTasks/src/index.js +14 -42
- 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 +42 -65
- 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 +49 -18
- package/dist/plugins/microsoftFiles/src/index.js +95 -31
- package/dist/plugins/microsoftMail/src/index.js +63 -21
- 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 +16 -24
- 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 +39 -28
- 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 +18 -28
- 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 +4 -3
- package/dist/plugins/shiftOcr/src/credentials.js +8 -0
- package/dist/plugins/shiftOcr/src/index.js +14 -8
- 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 +5 -5
- 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 +31 -33
- 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 +32 -31
- 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 +2 -1
- package/dist/plugins/_shared/authedFetch.js +0 -33
- package/dist/plugins/_shared/tokenRefresh.js +0 -41
- package/dist/tests/helpers/engine-harness.d.ts +0 -1
- package/dist/tests/helpers/engine-harness.js +0 -236
|
@@ -1,51 +1,25 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
:
|
|
7
|
-
return {
|
|
8
|
-
base,
|
|
9
|
-
accessToken: c.accessToken,
|
|
10
|
-
companyId: c.companyId,
|
|
11
|
-
};
|
|
12
|
-
}
|
|
13
|
-
async function api(conn, method, endpoint, body, qs) {
|
|
14
|
-
const url = new URL(`${conn.base}${endpoint}`);
|
|
15
|
-
if (qs) {
|
|
16
|
-
for (const [k, v] of Object.entries(qs)) {
|
|
17
|
-
if (v !== undefined && v !== null)
|
|
18
|
-
url.searchParams.set(k, String(v));
|
|
19
|
-
}
|
|
20
|
-
}
|
|
21
|
-
const init = {
|
|
1
|
+
import { credentialJson, pathSegment } from "../../_shared/credentials.js";
|
|
2
|
+
import { quickbooksCredential } from "./credentials.js";
|
|
3
|
+
function api(ctx, method, endpoint, body, qs) {
|
|
4
|
+
return credentialJson(ctx, quickbooksCredential, "quickbooks", {
|
|
5
|
+
target: "api",
|
|
6
|
+
path: endpoint,
|
|
22
7
|
method,
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
"Content-Type": "application/json",
|
|
27
|
-
},
|
|
28
|
-
};
|
|
29
|
-
if (body && Object.keys(body).length > 0)
|
|
30
|
-
init.body = JSON.stringify(body);
|
|
31
|
-
const res = await fetch(url.toString(), init);
|
|
32
|
-
if (!res.ok)
|
|
33
|
-
throw new Error(`QuickBooks error ${res.status}: ${await res.text()}`);
|
|
34
|
-
return res.json();
|
|
8
|
+
query: qs,
|
|
9
|
+
...(body && Object.keys(body).length > 0 ? { json: body } : {}),
|
|
10
|
+
});
|
|
35
11
|
}
|
|
36
12
|
function capitalCase(s) {
|
|
37
13
|
return s.charAt(0).toUpperCase() + s.slice(1);
|
|
38
14
|
}
|
|
39
|
-
function registerQbResource(rl, resource
|
|
15
|
+
function registerQbResource(rl, resource) {
|
|
40
16
|
const cap = capitalCase(resource);
|
|
41
|
-
const prefix = (c) => `/v3/company/${c.companyId}`;
|
|
42
17
|
rl.registerAction(`${resource}.create`, {
|
|
43
18
|
access: "write",
|
|
44
19
|
description: `Create a ${resource}`,
|
|
45
20
|
inputSchema: { data: { type: "object", required: true } },
|
|
46
21
|
async execute(input, ctx) {
|
|
47
|
-
|
|
48
|
-
return api(c, "POST", `${prefix(c)}/${resource}`, input.data);
|
|
22
|
+
return api(ctx, "POST", resource, input.data);
|
|
49
23
|
},
|
|
50
24
|
});
|
|
51
25
|
rl.registerAction(`${resource}.get`, {
|
|
@@ -53,8 +27,7 @@ function registerQbResource(rl, resource, conn) {
|
|
|
53
27
|
description: `Get a ${resource} by ID`,
|
|
54
28
|
inputSchema: { id: { type: "string", required: true } },
|
|
55
29
|
async execute(input, ctx) {
|
|
56
|
-
const
|
|
57
|
-
const data = (await api(c, "GET", `${prefix(c)}/${resource}/${input.id}`));
|
|
30
|
+
const data = (await api(ctx, "GET", `${resource}/${pathSegment(input.id)}`));
|
|
58
31
|
return data[cap];
|
|
59
32
|
},
|
|
60
33
|
});
|
|
@@ -70,14 +43,13 @@ function registerQbResource(rl, resource, conn) {
|
|
|
70
43
|
limit: { type: "number", required: false },
|
|
71
44
|
},
|
|
72
45
|
async execute(input, ctx) {
|
|
73
|
-
const c = conn(ctx);
|
|
74
46
|
const p = (input ?? {});
|
|
75
47
|
let q = `SELECT * FROM ${cap}`;
|
|
76
48
|
if (p.query)
|
|
77
49
|
q += ` ${p.query}`;
|
|
78
50
|
if (p.limit)
|
|
79
51
|
q += ` MAXRESULTS ${p.limit}`;
|
|
80
|
-
const data = (await api(
|
|
52
|
+
const data = (await api(ctx, "GET", "query", undefined, {
|
|
81
53
|
query: q,
|
|
82
54
|
}));
|
|
83
55
|
return data.QueryResponse?.[cap] ?? [];
|
|
@@ -88,8 +60,7 @@ function registerQbResource(rl, resource, conn) {
|
|
|
88
60
|
description: `Update a ${resource} (must include Id and SyncToken)`,
|
|
89
61
|
inputSchema: { data: { type: "object", required: true } },
|
|
90
62
|
async execute(input, ctx) {
|
|
91
|
-
|
|
92
|
-
return api(c, "POST", `${prefix(c)}/${resource}`, input.data);
|
|
63
|
+
return api(ctx, "POST", resource, input.data);
|
|
93
64
|
},
|
|
94
65
|
});
|
|
95
66
|
rl.registerAction(`${resource}.delete`, {
|
|
@@ -100,15 +71,15 @@ function registerQbResource(rl, resource, conn) {
|
|
|
100
71
|
syncToken: { type: "string", required: true },
|
|
101
72
|
},
|
|
102
73
|
async execute(input, ctx) {
|
|
103
|
-
const c = conn(ctx);
|
|
104
74
|
const p = input;
|
|
105
|
-
return api(
|
|
75
|
+
return api(ctx, "POST", resource, { Id: p.id, SyncToken: p.syncToken }, { operation: "delete" });
|
|
106
76
|
},
|
|
107
77
|
});
|
|
108
78
|
}
|
|
109
79
|
export default function quickbooks(rl) {
|
|
110
80
|
rl.setName("quickbooks");
|
|
111
81
|
rl.setVersion("0.1.0");
|
|
82
|
+
rl.setCredential(quickbooksCredential);
|
|
112
83
|
rl.setConnectionSchema({
|
|
113
84
|
accessToken: {
|
|
114
85
|
type: "string",
|
|
@@ -140,6 +111,6 @@ export default function quickbooks(rl) {
|
|
|
140
111
|
"purchase",
|
|
141
112
|
"vendor",
|
|
142
113
|
]) {
|
|
143
|
-
registerQbResource(rl, resource
|
|
114
|
+
registerQbResource(rl, resource);
|
|
144
115
|
}
|
|
145
116
|
}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { staticCredential } from "../../_shared/credentials.js";
|
|
2
|
+
/** An access token, sent as a bearer to Raindrop's one API origin. */
|
|
3
|
+
export const raindropCredential = staticCredential({
|
|
4
|
+
id: "raindrop",
|
|
5
|
+
auth: { kind: "bearer" },
|
|
6
|
+
local: { secret: "accessToken" },
|
|
7
|
+
targets: {
|
|
8
|
+
api: {
|
|
9
|
+
baseUrl: "https://api.raindrop.io/rest/v1/",
|
|
10
|
+
methods: ["GET", "POST", "PUT", "DELETE"],
|
|
11
|
+
},
|
|
12
|
+
},
|
|
13
|
+
probe: {
|
|
14
|
+
target: "api",
|
|
15
|
+
path: "user",
|
|
16
|
+
method: "GET",
|
|
17
|
+
acceptedStatuses: [200],
|
|
18
|
+
},
|
|
19
|
+
});
|
|
@@ -1,22 +1,17 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
1
|
+
import { credentialJson, pathSegment } from "../../_shared/credentials.js";
|
|
2
|
+
import { raindropCredential } from "./credentials.js";
|
|
3
|
+
function apiRequest(ctx, method, endpoint, body) {
|
|
4
|
+
return credentialJson(ctx, raindropCredential, "raindrop", {
|
|
5
|
+
target: "api",
|
|
6
|
+
path: endpoint,
|
|
4
7
|
method,
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
"Content-Type": "application/json",
|
|
8
|
-
},
|
|
9
|
-
};
|
|
10
|
-
if (body && Object.keys(body).length > 0)
|
|
11
|
-
init.body = JSON.stringify(body);
|
|
12
|
-
const res = await fetch(`${BASE}${endpoint}`, init);
|
|
13
|
-
if (!res.ok)
|
|
14
|
-
throw new Error(`Raindrop error ${res.status}: ${await res.text()}`);
|
|
15
|
-
return res.json();
|
|
8
|
+
...(body && Object.keys(body).length > 0 ? { json: body } : {}),
|
|
9
|
+
});
|
|
16
10
|
}
|
|
17
11
|
export default function raindrop(rl) {
|
|
18
12
|
rl.setName("raindrop");
|
|
19
13
|
rl.setVersion("0.1.0");
|
|
14
|
+
rl.setCredential(raindropCredential);
|
|
20
15
|
rl.setConnectionSchema({
|
|
21
16
|
accessToken: {
|
|
22
17
|
type: "string",
|
|
@@ -25,7 +20,6 @@ export default function raindrop(rl) {
|
|
|
25
20
|
env: "RAINDROP_ACCESS_TOKEN",
|
|
26
21
|
},
|
|
27
22
|
});
|
|
28
|
-
const key = (ctx) => ctx.connection.config.accessToken;
|
|
29
23
|
// ── Bookmark ────────────────────────────────────────
|
|
30
24
|
rl.registerAction("bookmark.create", {
|
|
31
25
|
access: "write",
|
|
@@ -57,7 +51,7 @@ export default function raindrop(rl) {
|
|
|
57
51
|
body.tags = p.tags.split(",").map((t) => t.trim());
|
|
58
52
|
if (p.pleaseParse)
|
|
59
53
|
body.pleaseParse = {};
|
|
60
|
-
const data = (await apiRequest(
|
|
54
|
+
const data = (await apiRequest(ctx, "POST", "raindrop", body));
|
|
61
55
|
return data.item;
|
|
62
56
|
},
|
|
63
57
|
});
|
|
@@ -67,7 +61,7 @@ export default function raindrop(rl) {
|
|
|
67
61
|
inputSchema: { bookmarkId: { type: "string", required: true } },
|
|
68
62
|
async execute(input, ctx) {
|
|
69
63
|
const { bookmarkId } = input;
|
|
70
|
-
const data = (await apiRequest(
|
|
64
|
+
const data = (await apiRequest(ctx, "GET", `raindrop/${pathSegment(bookmarkId)}`));
|
|
71
65
|
return data.item;
|
|
72
66
|
},
|
|
73
67
|
});
|
|
@@ -80,7 +74,7 @@ export default function raindrop(rl) {
|
|
|
80
74
|
},
|
|
81
75
|
async execute(input, ctx) {
|
|
82
76
|
const p = input;
|
|
83
|
-
const data = (await apiRequest(
|
|
77
|
+
const data = (await apiRequest(ctx, "GET", `raindrops/${pathSegment(p.collectionId)}`));
|
|
84
78
|
let items = (data.items ?? []);
|
|
85
79
|
if (p.limit)
|
|
86
80
|
items = items.slice(0, p.limit);
|
|
@@ -112,7 +106,7 @@ export default function raindrop(rl) {
|
|
|
112
106
|
body.tags = p.tags.split(",").map((t) => t.trim());
|
|
113
107
|
if (p.collectionId)
|
|
114
108
|
body.collection = { $id: Number(p.collectionId) };
|
|
115
|
-
const data = (await apiRequest(
|
|
109
|
+
const data = (await apiRequest(ctx, "PUT", `raindrop/${pathSegment(p.bookmarkId)}`, body));
|
|
116
110
|
return data.item;
|
|
117
111
|
},
|
|
118
112
|
});
|
|
@@ -122,7 +116,7 @@ export default function raindrop(rl) {
|
|
|
122
116
|
inputSchema: { bookmarkId: { type: "string", required: true } },
|
|
123
117
|
async execute(input, ctx) {
|
|
124
118
|
const { bookmarkId } = input;
|
|
125
|
-
return apiRequest(
|
|
119
|
+
return apiRequest(ctx, "DELETE", `raindrop/${pathSegment(bookmarkId)}`);
|
|
126
120
|
},
|
|
127
121
|
});
|
|
128
122
|
// ── Collection ──────────────────────────────────────
|
|
@@ -142,7 +136,7 @@ export default function raindrop(rl) {
|
|
|
142
136
|
const body = { title: p.title };
|
|
143
137
|
if (p.parentId)
|
|
144
138
|
body["parent.$id"] = Number(p.parentId);
|
|
145
|
-
const data = (await apiRequest(
|
|
139
|
+
const data = (await apiRequest(ctx, "POST", "collection", body));
|
|
146
140
|
return data.item;
|
|
147
141
|
},
|
|
148
142
|
});
|
|
@@ -152,7 +146,7 @@ export default function raindrop(rl) {
|
|
|
152
146
|
inputSchema: { collectionId: { type: "string", required: true } },
|
|
153
147
|
async execute(input, ctx) {
|
|
154
148
|
const { collectionId } = input;
|
|
155
|
-
const data = (await apiRequest(
|
|
149
|
+
const data = (await apiRequest(ctx, "GET", `collection/${pathSegment(collectionId)}`));
|
|
156
150
|
return data.item;
|
|
157
151
|
},
|
|
158
152
|
});
|
|
@@ -169,8 +163,8 @@ export default function raindrop(rl) {
|
|
|
169
163
|
},
|
|
170
164
|
async execute(input, ctx) {
|
|
171
165
|
const p = (input ?? {});
|
|
172
|
-
const endpoint = p.type === "children" ? "
|
|
173
|
-
const data = (await apiRequest(
|
|
166
|
+
const endpoint = p.type === "children" ? "collections/childrens" : "collections";
|
|
167
|
+
const data = (await apiRequest(ctx, "GET", endpoint));
|
|
174
168
|
let items = (data.items ?? []);
|
|
175
169
|
if (p.limit)
|
|
176
170
|
items = items.slice(0, p.limit);
|
|
@@ -192,7 +186,7 @@ export default function raindrop(rl) {
|
|
|
192
186
|
body.title = p.title;
|
|
193
187
|
if (p.parentId)
|
|
194
188
|
body["parent.$id"] = Number(p.parentId);
|
|
195
|
-
const data = (await apiRequest(
|
|
189
|
+
const data = (await apiRequest(ctx, "PUT", `collection/${pathSegment(p.collectionId)}`, body));
|
|
196
190
|
return data.item;
|
|
197
191
|
},
|
|
198
192
|
});
|
|
@@ -202,7 +196,7 @@ export default function raindrop(rl) {
|
|
|
202
196
|
inputSchema: { collectionId: { type: "string", required: true } },
|
|
203
197
|
async execute(input, ctx) {
|
|
204
198
|
const { collectionId } = input;
|
|
205
|
-
return apiRequest(
|
|
199
|
+
return apiRequest(ctx, "DELETE", `collection/${pathSegment(collectionId)}`);
|
|
206
200
|
},
|
|
207
201
|
});
|
|
208
202
|
// ── Tag ─────────────────────────────────────────────
|
|
@@ -215,8 +209,10 @@ export default function raindrop(rl) {
|
|
|
215
209
|
},
|
|
216
210
|
async execute(input, ctx) {
|
|
217
211
|
const p = (input ?? {});
|
|
218
|
-
const endpoint = p.collectionId
|
|
219
|
-
|
|
212
|
+
const endpoint = p.collectionId
|
|
213
|
+
? `tags/${pathSegment(p.collectionId)}`
|
|
214
|
+
: "tags";
|
|
215
|
+
const data = (await apiRequest(ctx, "GET", endpoint));
|
|
220
216
|
let items = (data.items ?? []);
|
|
221
217
|
if (p.limit)
|
|
222
218
|
items = items.slice(0, p.limit);
|
|
@@ -236,8 +232,10 @@ export default function raindrop(rl) {
|
|
|
236
232
|
},
|
|
237
233
|
async execute(input, ctx) {
|
|
238
234
|
const p = input;
|
|
239
|
-
const endpoint = p.collectionId
|
|
240
|
-
|
|
235
|
+
const endpoint = p.collectionId
|
|
236
|
+
? `tags/${pathSegment(p.collectionId)}`
|
|
237
|
+
: "tags";
|
|
238
|
+
return apiRequest(ctx, "DELETE", endpoint, {
|
|
241
239
|
tags: p.tags.split(",").map((t) => t.trim()),
|
|
242
240
|
});
|
|
243
241
|
},
|
|
@@ -255,8 +253,8 @@ export default function raindrop(rl) {
|
|
|
255
253
|
},
|
|
256
254
|
async execute(input, ctx) {
|
|
257
255
|
const userId = input?.userId;
|
|
258
|
-
const endpoint = userId ?
|
|
259
|
-
const data = (await apiRequest(
|
|
256
|
+
const endpoint = userId ? `user/${pathSegment(userId)}` : "user";
|
|
257
|
+
const data = (await apiRequest(ctx, "GET", endpoint));
|
|
260
258
|
return data.user;
|
|
261
259
|
},
|
|
262
260
|
});
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { staticCredential } from "../../_shared/credentials.js";
|
|
2
|
+
/** An API key as a bearer to Recraft's image generation endpoints. */
|
|
3
|
+
export const recraftCredential = staticCredential({
|
|
4
|
+
id: "recraft",
|
|
5
|
+
auth: { kind: "bearer" },
|
|
6
|
+
local: { secret: "apiKey" },
|
|
7
|
+
targets: {
|
|
8
|
+
images: {
|
|
9
|
+
baseUrl: "https://external.api.recraft.ai/v1/images/",
|
|
10
|
+
methods: ["POST"],
|
|
11
|
+
},
|
|
12
|
+
},
|
|
13
|
+
});
|
|
@@ -13,12 +13,13 @@
|
|
|
13
13
|
* legacy `style` knob — pass `styleId` against your own custom
|
|
14
14
|
* style if you've set one up.
|
|
15
15
|
*/
|
|
16
|
-
import {
|
|
17
|
-
|
|
18
|
-
|
|
16
|
+
import { credentialJson, multipartBody } from "../../_shared/credentials.js";
|
|
17
|
+
import { readImageInput, SEND_FILE_NOTE, writeImageFile, } from "../../_shared/mediaFile.js";
|
|
18
|
+
import { recraftCredential } from "./credentials.js";
|
|
19
19
|
export default function recraft(rl) {
|
|
20
20
|
rl.setName("recraft");
|
|
21
21
|
rl.setVersion("0.1.0");
|
|
22
|
+
rl.setCredential(recraftCredential);
|
|
22
23
|
rl.setConnectionSchema({
|
|
23
24
|
apiKey: {
|
|
24
25
|
type: "string",
|
|
@@ -72,7 +73,6 @@ export default function recraft(rl) {
|
|
|
72
73
|
if (typeof p.prompt !== "string" || p.prompt.length === 0) {
|
|
73
74
|
throw new Error("recraft: prompt is required");
|
|
74
75
|
}
|
|
75
|
-
const apiKey = ctx.connection.config.apiKey;
|
|
76
76
|
const model = p.model ?? "recraftv3";
|
|
77
77
|
const body = {
|
|
78
78
|
prompt: p.prompt,
|
|
@@ -86,20 +86,21 @@ export default function recraft(rl) {
|
|
|
86
86
|
body.style = p.style;
|
|
87
87
|
if (p.styleId)
|
|
88
88
|
body.style_id = p.styleId;
|
|
89
|
-
const
|
|
89
|
+
const data = (await credentialJson(ctx, recraftCredential, "recraft", {
|
|
90
|
+
target: "images",
|
|
91
|
+
path: "generations",
|
|
90
92
|
method: "POST",
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
Authorization: `Bearer ${apiKey}`,
|
|
94
|
-
},
|
|
95
|
-
body: JSON.stringify(body),
|
|
96
|
-
});
|
|
97
|
-
if (!res.ok) {
|
|
98
|
-
throw new Error(`Recraft API error ${res.status}: ${await res.text()}`);
|
|
99
|
-
}
|
|
100
|
-
const data = (await res.json());
|
|
93
|
+
json: body,
|
|
94
|
+
}));
|
|
101
95
|
const stamp = Date.now();
|
|
102
|
-
const images = (data.data ?? []).map((d, i) => writeImageFile({
|
|
96
|
+
const images = (data.data ?? []).map((d, i) => writeImageFile({
|
|
97
|
+
base64: d.b64_json,
|
|
98
|
+
mimeType: "image/png",
|
|
99
|
+
provider: "recraft",
|
|
100
|
+
index: i,
|
|
101
|
+
saveDir: p.saveDir,
|
|
102
|
+
stamp,
|
|
103
|
+
}));
|
|
103
104
|
return { provider: "recraft", model, images, note: SEND_FILE_NOTE };
|
|
104
105
|
},
|
|
105
106
|
});
|
|
@@ -153,8 +154,7 @@ export default function recraft(rl) {
|
|
|
153
154
|
if (typeof p.prompt !== "string" || p.prompt.length === 0) {
|
|
154
155
|
throw new Error("recraft: prompt is required");
|
|
155
156
|
}
|
|
156
|
-
const img = readImageInput(p.imagePath, "recraft");
|
|
157
|
-
const apiKey = ctx.connection.config.apiKey;
|
|
157
|
+
const img = await readImageInput(p.imagePath, "recraft");
|
|
158
158
|
const form = new FormData();
|
|
159
159
|
form.append("image", new Blob([img.bytes], { type: img.mimeType }), img.fileName);
|
|
160
160
|
form.append("prompt", p.prompt);
|
|
@@ -167,19 +167,30 @@ export default function recraft(rl) {
|
|
|
167
167
|
form.append("style", p.style);
|
|
168
168
|
if (p.styleId)
|
|
169
169
|
form.append("style_id", p.styleId);
|
|
170
|
-
const
|
|
170
|
+
const { body, contentType } = await multipartBody(form);
|
|
171
|
+
const data = (await credentialJson(ctx, recraftCredential, "recraft", {
|
|
172
|
+
target: "images",
|
|
173
|
+
path: "imageToImage",
|
|
171
174
|
method: "POST",
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
});
|
|
175
|
-
if (!res.ok) {
|
|
176
|
-
throw new Error(`Recraft API error ${res.status}: ${await res.text()}`);
|
|
177
|
-
}
|
|
178
|
-
const data = (await res.json());
|
|
175
|
+
body,
|
|
176
|
+
headers: { "Content-Type": contentType },
|
|
177
|
+
}));
|
|
179
178
|
const stamp = Date.now();
|
|
180
|
-
const images = (data.data ?? []).map((d, i) => writeImageFile({
|
|
179
|
+
const images = (data.data ?? []).map((d, i) => writeImageFile({
|
|
180
|
+
base64: d.b64_json,
|
|
181
|
+
mimeType: "image/png",
|
|
182
|
+
provider: "recraft",
|
|
183
|
+
index: i,
|
|
184
|
+
saveDir: p.saveDir,
|
|
185
|
+
stamp,
|
|
186
|
+
}));
|
|
181
187
|
// The imageToImage endpoint's own default model is recraftv4_1.
|
|
182
|
-
return {
|
|
188
|
+
return {
|
|
189
|
+
provider: "recraft",
|
|
190
|
+
model: p.model ?? "recraftv4_1",
|
|
191
|
+
images,
|
|
192
|
+
note: SEND_FILE_NOTE,
|
|
193
|
+
};
|
|
183
194
|
},
|
|
184
195
|
});
|
|
185
196
|
}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { staticCredential } from "../../_shared/credentials.js";
|
|
2
|
+
/**
|
|
3
|
+
* An optional OAuth2 access token, sent as a bearer to oauth.reddit.com;
|
|
4
|
+
* without one, public reads go unsigned to www.reddit.com.
|
|
5
|
+
*/
|
|
6
|
+
export const redditCredential = staticCredential({
|
|
7
|
+
id: "reddit",
|
|
8
|
+
auth: { kind: "bearer" },
|
|
9
|
+
local: { secret: "accessToken" },
|
|
10
|
+
optional: {
|
|
11
|
+
targets: {
|
|
12
|
+
api: {
|
|
13
|
+
baseUrl: "https://www.reddit.com/",
|
|
14
|
+
methods: ["GET"],
|
|
15
|
+
allowedHeaders: ["User-Agent"],
|
|
16
|
+
},
|
|
17
|
+
},
|
|
18
|
+
},
|
|
19
|
+
targets: {
|
|
20
|
+
api: {
|
|
21
|
+
baseUrl: "https://oauth.reddit.com/",
|
|
22
|
+
methods: ["GET", "POST"],
|
|
23
|
+
allowedHeaders: ["User-Agent"],
|
|
24
|
+
},
|
|
25
|
+
},
|
|
26
|
+
});
|
|
@@ -1,28 +1,24 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
}
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
throw new Error(`Reddit error ${res.status}: ${await res.text()}`);
|
|
18
|
-
return res.json();
|
|
19
|
-
}
|
|
20
|
-
function getToken(ctx) {
|
|
21
|
-
return ctx.connection.config.accessToken;
|
|
1
|
+
import { credentialJson, pathSegment } from "../../_shared/credentials.js";
|
|
2
|
+
import { redditCredential } from "./credentials.js";
|
|
3
|
+
/**
|
|
4
|
+
* A Reddit call; every answer is asked for as JSON (`api_type=json`). A
|
|
5
|
+
* read's parameters travel as its query, a write's as a form body, so
|
|
6
|
+
* posted text never reaches a URL.
|
|
7
|
+
*/
|
|
8
|
+
function apiRequest(ctx, method, endpoint, params) {
|
|
9
|
+
const all = { ...params, api_type: "json" };
|
|
10
|
+
return credentialJson(ctx, redditCredential, "reddit", {
|
|
11
|
+
target: "api",
|
|
12
|
+
path: endpoint,
|
|
13
|
+
method,
|
|
14
|
+
...(method === "GET" ? { query: all } : { form: all }),
|
|
15
|
+
headers: { "User-Agent": "runline" },
|
|
16
|
+
});
|
|
22
17
|
}
|
|
23
18
|
export default function reddit(rl) {
|
|
24
19
|
rl.setName("reddit");
|
|
25
20
|
rl.setVersion("0.1.0");
|
|
21
|
+
rl.setCredential(redditCredential);
|
|
26
22
|
rl.setConnectionSchema({
|
|
27
23
|
accessToken: {
|
|
28
24
|
type: "string",
|
|
@@ -68,7 +64,7 @@ export default function reddit(rl) {
|
|
|
68
64
|
qs.url = p.url;
|
|
69
65
|
if (p.resubmit)
|
|
70
66
|
qs.resubmit = "true";
|
|
71
|
-
const data = (await apiRequest(
|
|
67
|
+
const data = (await apiRequest(ctx, "POST", "api/submit", qs));
|
|
72
68
|
return data.json?.data;
|
|
73
69
|
},
|
|
74
70
|
});
|
|
@@ -81,7 +77,7 @@ export default function reddit(rl) {
|
|
|
81
77
|
},
|
|
82
78
|
async execute(input, ctx) {
|
|
83
79
|
const { subreddit, postId } = input;
|
|
84
|
-
const data = (await apiRequest(
|
|
80
|
+
const data = (await apiRequest(ctx, "GET", `r/${pathSegment(subreddit)}/comments/${pathSegment(`${postId}.json`)}`));
|
|
85
81
|
const listing = data[0];
|
|
86
82
|
const ld = listing.data;
|
|
87
83
|
const children = ld.children;
|
|
@@ -108,12 +104,12 @@ export default function reddit(rl) {
|
|
|
108
104
|
const p = (input ?? {});
|
|
109
105
|
const cat = p.category ?? "";
|
|
110
106
|
const endpoint = cat
|
|
111
|
-
? `r/${p.subreddit}/${cat}.json`
|
|
112
|
-
: `r/${p.subreddit}.json`;
|
|
107
|
+
? `r/${pathSegment(p.subreddit)}/${pathSegment(`${cat}.json`)}`
|
|
108
|
+
: `r/${pathSegment(`${p.subreddit}.json`)}`;
|
|
113
109
|
const qs = {};
|
|
114
110
|
if (p.limit)
|
|
115
111
|
qs.limit = p.limit;
|
|
116
|
-
const data = (await apiRequest(
|
|
112
|
+
const data = (await apiRequest(ctx, "GET", endpoint, qs));
|
|
117
113
|
const ld = data.data;
|
|
118
114
|
return ld.children.map((c) => c.data);
|
|
119
115
|
},
|
|
@@ -124,7 +120,7 @@ export default function reddit(rl) {
|
|
|
124
120
|
inputSchema: { postId: { type: "string", required: true } },
|
|
125
121
|
async execute(input, ctx) {
|
|
126
122
|
const { postId } = input;
|
|
127
|
-
await apiRequest(
|
|
123
|
+
await apiRequest(ctx, "POST", "api/del", {
|
|
128
124
|
id: `t3_${postId}`,
|
|
129
125
|
});
|
|
130
126
|
return { success: true };
|
|
@@ -155,11 +151,11 @@ export default function reddit(rl) {
|
|
|
155
151
|
if (p.limit)
|
|
156
152
|
qs.limit = p.limit;
|
|
157
153
|
const endpoint = p.subreddit
|
|
158
|
-
? `r/${p.subreddit}/search.json`
|
|
154
|
+
? `r/${pathSegment(p.subreddit)}/search.json`
|
|
159
155
|
: "search.json";
|
|
160
156
|
if (p.subreddit)
|
|
161
157
|
qs.restrict_sr = "true";
|
|
162
|
-
const data = (await apiRequest(
|
|
158
|
+
const data = (await apiRequest(ctx, "GET", endpoint, qs));
|
|
163
159
|
const ld = data.data;
|
|
164
160
|
return ld.children.map((c) => c.data);
|
|
165
161
|
},
|
|
@@ -174,7 +170,7 @@ export default function reddit(rl) {
|
|
|
174
170
|
},
|
|
175
171
|
async execute(input, ctx) {
|
|
176
172
|
const { postId, text } = input;
|
|
177
|
-
const data = (await apiRequest(
|
|
173
|
+
const data = (await apiRequest(ctx, "POST", "api/comment", {
|
|
178
174
|
thing_id: `t3_${postId}`,
|
|
179
175
|
text,
|
|
180
176
|
}));
|
|
@@ -193,7 +189,7 @@ export default function reddit(rl) {
|
|
|
193
189
|
},
|
|
194
190
|
async execute(input, ctx) {
|
|
195
191
|
const { commentId, text } = input;
|
|
196
|
-
const data = (await apiRequest(
|
|
192
|
+
const data = (await apiRequest(ctx, "POST", "api/comment", {
|
|
197
193
|
thing_id: `t1_${commentId}`,
|
|
198
194
|
text,
|
|
199
195
|
}));
|
|
@@ -209,7 +205,7 @@ export default function reddit(rl) {
|
|
|
209
205
|
inputSchema: { commentId: { type: "string", required: true } },
|
|
210
206
|
async execute(input, ctx) {
|
|
211
207
|
const { commentId } = input;
|
|
212
|
-
await apiRequest(
|
|
208
|
+
await apiRequest(ctx, "POST", "api/del", {
|
|
213
209
|
id: `t1_${commentId}`,
|
|
214
210
|
});
|
|
215
211
|
return { success: true };
|
|
@@ -230,7 +226,7 @@ export default function reddit(rl) {
|
|
|
230
226
|
async execute(input, ctx) {
|
|
231
227
|
const p = input;
|
|
232
228
|
const content = p.content ?? "about";
|
|
233
|
-
const data = (await apiRequest(
|
|
229
|
+
const data = (await apiRequest(ctx, "GET", `r/${pathSegment(p.subreddit)}/about/${pathSegment(`${content}.json`)}`));
|
|
234
230
|
if (content === "rules")
|
|
235
231
|
return data.rules;
|
|
236
232
|
return data.data;
|
|
@@ -243,7 +239,7 @@ export default function reddit(rl) {
|
|
|
243
239
|
inputSchema: { username: { type: "string", required: true } },
|
|
244
240
|
async execute(input, ctx) {
|
|
245
241
|
const { username } = input;
|
|
246
|
-
const data = (await apiRequest(
|
|
242
|
+
const data = (await apiRequest(ctx, "GET", `user/${pathSegment(username)}/about.json`));
|
|
247
243
|
return data.data;
|
|
248
244
|
},
|
|
249
245
|
});
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { staticCredential } from "../../_shared/credentials.js";
|
|
2
|
+
/**
|
|
3
|
+
* An API token, sent as a bearer to Replicate's v1 API. `Prefer: wait`
|
|
4
|
+
* lets the server hold a create open for fast predictions.
|
|
5
|
+
*/
|
|
6
|
+
export const replicateCredential = staticCredential({
|
|
7
|
+
id: "replicate",
|
|
8
|
+
auth: { kind: "bearer" },
|
|
9
|
+
local: { secret: "apiToken" },
|
|
10
|
+
targets: {
|
|
11
|
+
api: {
|
|
12
|
+
baseUrl: "https://api.replicate.com/v1/",
|
|
13
|
+
methods: ["GET", "POST"],
|
|
14
|
+
allowedHeaders: ["Prefer"],
|
|
15
|
+
},
|
|
16
|
+
},
|
|
17
|
+
probe: {
|
|
18
|
+
target: "api",
|
|
19
|
+
path: "account",
|
|
20
|
+
method: "GET",
|
|
21
|
+
acceptedStatuses: [200],
|
|
22
|
+
},
|
|
23
|
+
});
|