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,17 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
headers.Authorization = `Bearer ${conn.token}`;
|
|
11
|
-
if (contentType)
|
|
12
|
-
headers["Content-Type"] = contentType;
|
|
13
|
-
else
|
|
14
|
-
headers["Content-Type"] = "application/json";
|
|
15
|
-
const init = { method, headers };
|
|
16
|
-
if (body !== undefined)
|
|
17
|
-
init.body = body;
|
|
18
|
-
const res = await fetch(`${conn.registryUrl}${path}`, init);
|
|
19
|
-
if (!res.ok)
|
|
20
|
-
throw new Error(`npm registry error ${res.status}: ${await res.text()}`);
|
|
21
|
-
const text = await res.text();
|
|
22
|
-
return text ? JSON.parse(text) : {};
|
|
1
|
+
import { credentialJson, pathSegment, slashEncodedSegment, } from "../../_shared/credentials.js";
|
|
2
|
+
import { npmCredential } from "./credentials.js";
|
|
3
|
+
function apiRequest(ctx, method, path, options = {}) {
|
|
4
|
+
return credentialJson(ctx, npmCredential, "npm", {
|
|
5
|
+
target: "registry",
|
|
6
|
+
path,
|
|
7
|
+
method,
|
|
8
|
+
...options,
|
|
9
|
+
});
|
|
23
10
|
}
|
|
24
11
|
export default function npm(rl) {
|
|
25
12
|
rl.setName("npm");
|
|
26
13
|
rl.setVersion("0.1.0");
|
|
14
|
+
rl.setCredential(npmCredential);
|
|
27
15
|
rl.setConnectionSchema({
|
|
28
16
|
registryUrl: {
|
|
29
17
|
type: "string",
|
|
@@ -56,7 +44,7 @@ export default function npm(rl) {
|
|
|
56
44
|
async execute(input, ctx) {
|
|
57
45
|
const { packageName, version } = input;
|
|
58
46
|
const v = version || "latest";
|
|
59
|
-
return apiRequest(
|
|
47
|
+
return apiRequest(ctx, "GET", `${slashEncodedSegment(packageName)}/${pathSegment(v)}`);
|
|
60
48
|
},
|
|
61
49
|
});
|
|
62
50
|
rl.registerAction("package.getVersions", {
|
|
@@ -71,7 +59,7 @@ export default function npm(rl) {
|
|
|
71
59
|
},
|
|
72
60
|
async execute(input, ctx) {
|
|
73
61
|
const { packageName } = input;
|
|
74
|
-
const data = (await apiRequest(
|
|
62
|
+
const data = (await apiRequest(ctx, "GET", slashEncodedSegment(packageName)));
|
|
75
63
|
const time = (data.time ?? {});
|
|
76
64
|
const versions = Object.entries(time)
|
|
77
65
|
.filter(([v]) => /^\d+\.\d+\.\d+/.test(v))
|
|
@@ -99,12 +87,14 @@ export default function npm(rl) {
|
|
|
99
87
|
},
|
|
100
88
|
async execute(input, ctx) {
|
|
101
89
|
const p = (input ?? {});
|
|
102
|
-
const
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
90
|
+
const data = (await apiRequest(ctx, "GET", "-/v1/search", {
|
|
91
|
+
query: {
|
|
92
|
+
text: p.query,
|
|
93
|
+
size: p.limit ?? 10,
|
|
94
|
+
from: p.offset ?? 0,
|
|
95
|
+
popularity: 0.99,
|
|
96
|
+
},
|
|
97
|
+
}));
|
|
108
98
|
const objects = (data.objects ?? []);
|
|
109
99
|
return objects.map(({ package: pkg }) => ({
|
|
110
100
|
name: pkg.name,
|
|
@@ -125,7 +115,7 @@ export default function npm(rl) {
|
|
|
125
115
|
},
|
|
126
116
|
async execute(input, ctx) {
|
|
127
117
|
const { packageName } = input;
|
|
128
|
-
return apiRequest(
|
|
118
|
+
return apiRequest(ctx, "GET", `-/package/${slashEncodedSegment(packageName)}/dist-tags`);
|
|
129
119
|
},
|
|
130
120
|
});
|
|
131
121
|
rl.registerAction("distTag.update", {
|
|
@@ -150,7 +140,7 @@ export default function npm(rl) {
|
|
|
150
140
|
},
|
|
151
141
|
async execute(input, ctx) {
|
|
152
142
|
const { packageName, tagName, version } = input;
|
|
153
|
-
return apiRequest(
|
|
143
|
+
return apiRequest(ctx, "PUT", `-/package/${slashEncodedSegment(packageName)}/dist-tags/${pathSegment(tagName)}`, { json: version });
|
|
154
144
|
},
|
|
155
145
|
});
|
|
156
146
|
}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { httpsBase, staticCredential } from "../../_shared/credentials.js";
|
|
2
|
+
/**
|
|
3
|
+
* The user's password or API key, which Odoo's JSON-RPC takes as the third
|
|
4
|
+
* argument of every call; the plugin leaves that slot null and the
|
|
5
|
+
* transport fills it. The instance URL is public config and must be HTTPS;
|
|
6
|
+
* the username and database are public config too.
|
|
7
|
+
*/
|
|
8
|
+
export const odooCredential = staticCredential({
|
|
9
|
+
id: "odoo",
|
|
10
|
+
auth: {
|
|
11
|
+
kind: "static",
|
|
12
|
+
parts: ["password"],
|
|
13
|
+
placements: [
|
|
14
|
+
{ in: "jsonPointer", part: "password", pointer: "/params/args/2" },
|
|
15
|
+
],
|
|
16
|
+
},
|
|
17
|
+
local: { password: "password" },
|
|
18
|
+
targets: (config) => ({
|
|
19
|
+
rpc: { baseUrl: httpsBase(config.url, ""), methods: ["POST"] },
|
|
20
|
+
}),
|
|
21
|
+
});
|
|
@@ -1,60 +1,56 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
1
|
+
import { AuthError } from "runline";
|
|
2
|
+
import { answerFailed, credentialJson } from "../../_shared/credentials.js";
|
|
3
|
+
import { odooCredential } from "./credentials.js";
|
|
4
|
+
/**
|
|
5
|
+
* One JSON-RPC call. Every Odoo service takes the password as its third
|
|
6
|
+
* argument, so `args` carries null there for the transport to fill.
|
|
7
|
+
*/
|
|
8
|
+
async function rpc(ctx, service, method, args) {
|
|
9
|
+
const answer = await credentialJson(ctx, odooCredential, "odoo", {
|
|
10
|
+
target: "rpc",
|
|
11
|
+
path: "jsonrpc",
|
|
12
|
+
method: "POST",
|
|
13
|
+
json: {
|
|
14
|
+
jsonrpc: "2.0",
|
|
15
|
+
method: "call",
|
|
16
|
+
params: { service, method, args },
|
|
17
|
+
id: 1,
|
|
18
|
+
},
|
|
19
|
+
});
|
|
20
|
+
if (answer.error)
|
|
21
|
+
throw answerFailed("odoo", {
|
|
22
|
+
code: answer.error.data?.name ?? answer.error.code,
|
|
23
|
+
message: answer.error.data?.message ?? answer.error.message,
|
|
24
|
+
});
|
|
25
|
+
return answer.result;
|
|
9
26
|
}
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
27
|
+
/** The database the connection names, else the instance's first host label. */
|
|
28
|
+
function database(config) {
|
|
29
|
+
if (typeof config.db === "string" && config.db)
|
|
30
|
+
return config.db;
|
|
13
31
|
try {
|
|
14
|
-
return new URL(url).hostname.split(".")[0];
|
|
32
|
+
return new URL(String(config.url)).hostname.split(".")[0];
|
|
15
33
|
}
|
|
16
34
|
catch {
|
|
17
|
-
|
|
35
|
+
throw new AuthError("invalid_credentials");
|
|
18
36
|
}
|
|
19
37
|
}
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
});
|
|
32
|
-
if (!res.ok)
|
|
33
|
-
throw new Error(`Odoo HTTP error ${res.status}: ${await res.text()}`);
|
|
34
|
-
const json = (await res.json());
|
|
35
|
-
if (json.error) {
|
|
36
|
-
const err = json.error;
|
|
37
|
-
const data = (err.data ?? err);
|
|
38
|
-
throw new Error(`Odoo RPC error: ${data.message ?? JSON.stringify(err)}`);
|
|
39
|
-
}
|
|
40
|
-
return json.result;
|
|
41
|
-
}
|
|
42
|
-
async function login(url, db, username, password) {
|
|
43
|
-
const uid = (await jsonRpc(url, {
|
|
44
|
-
service: "common",
|
|
45
|
-
method: "login",
|
|
46
|
-
args: [db, username, password],
|
|
47
|
-
}));
|
|
48
|
-
if (!uid)
|
|
49
|
-
throw new Error("Odoo login failed — check credentials");
|
|
50
|
-
return uid;
|
|
38
|
+
/** The database and the logged-in user's ID, which every model call names. */
|
|
39
|
+
async function session(ctx) {
|
|
40
|
+
const db = database(ctx.connection.config);
|
|
41
|
+
const uid = await rpc(ctx, "common", "login", [
|
|
42
|
+
db,
|
|
43
|
+
ctx.connection.config.username,
|
|
44
|
+
null,
|
|
45
|
+
]);
|
|
46
|
+
if (typeof uid !== "number")
|
|
47
|
+
throw new AuthError("invalid_credentials");
|
|
48
|
+
return { db, uid };
|
|
51
49
|
}
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
args: [db, uid, password, model, method, ...args],
|
|
57
|
-
});
|
|
50
|
+
/** A method on a model, as the logged-in user. */
|
|
51
|
+
async function call(ctx, model, method, ...args) {
|
|
52
|
+
const { db, uid } = await session(ctx);
|
|
53
|
+
return rpc(ctx, "object", "execute", [db, uid, null, model, method, ...args]);
|
|
58
54
|
}
|
|
59
55
|
const MODEL_MAP = {
|
|
60
56
|
contact: "res.partner",
|
|
@@ -67,6 +63,7 @@ function resolveModel(resource) {
|
|
|
67
63
|
export default function odoo(rl) {
|
|
68
64
|
rl.setName("odoo");
|
|
69
65
|
rl.setVersion("0.1.0");
|
|
66
|
+
rl.setCredential(odooCredential);
|
|
70
67
|
rl.setConnectionSchema({
|
|
71
68
|
url: {
|
|
72
69
|
type: "string",
|
|
@@ -93,13 +90,6 @@ export default function odoo(rl) {
|
|
|
93
90
|
env: "ODOO_PASSWORD",
|
|
94
91
|
},
|
|
95
92
|
});
|
|
96
|
-
// Helper to get authenticated session
|
|
97
|
-
async function getSession(ctx) {
|
|
98
|
-
const c = getConn(ctx);
|
|
99
|
-
const db = getDBName(c.db, c.url);
|
|
100
|
-
const uid = await login(c.url, db, c.username, c.password);
|
|
101
|
-
return { url: c.url, db, uid, password: c.password };
|
|
102
|
-
}
|
|
103
93
|
rl.registerAction("record.create", {
|
|
104
94
|
access: "write",
|
|
105
95
|
description: "Create a record in any Odoo model (contact, opportunity, note, or custom model name)",
|
|
@@ -117,8 +107,7 @@ export default function odoo(rl) {
|
|
|
117
107
|
},
|
|
118
108
|
async execute(input, ctx) {
|
|
119
109
|
const { model, fields } = input;
|
|
120
|
-
const
|
|
121
|
-
const id = await execute(s.url, s.db, s.uid, s.password, resolveModel(model), "create", fields);
|
|
110
|
+
const id = await call(ctx, resolveModel(model), "create", fields);
|
|
122
111
|
return { id };
|
|
123
112
|
},
|
|
124
113
|
});
|
|
@@ -140,9 +129,8 @@ export default function odoo(rl) {
|
|
|
140
129
|
},
|
|
141
130
|
async execute(input, ctx) {
|
|
142
131
|
const p = input;
|
|
143
|
-
const s = await getSession(ctx);
|
|
144
132
|
const fieldsToRead = p.fields ?? [];
|
|
145
|
-
return
|
|
133
|
+
return call(ctx, resolveModel(p.model), "read", [p.id], fieldsToRead);
|
|
146
134
|
},
|
|
147
135
|
});
|
|
148
136
|
rl.registerAction("record.list", {
|
|
@@ -177,12 +165,11 @@ export default function odoo(rl) {
|
|
|
177
165
|
},
|
|
178
166
|
async execute(input, ctx) {
|
|
179
167
|
const p = input;
|
|
180
|
-
const s = await getSession(ctx);
|
|
181
168
|
const filters = p.filters ?? [];
|
|
182
169
|
const fields = p.fields ?? [];
|
|
183
170
|
const offset = p.offset ?? 0;
|
|
184
171
|
const limit = p.limit ?? 0;
|
|
185
|
-
return
|
|
172
|
+
return call(ctx, resolveModel(p.model), "search_read", filters, fields, offset, limit);
|
|
186
173
|
},
|
|
187
174
|
});
|
|
188
175
|
rl.registerAction("record.update", {
|
|
@@ -203,8 +190,7 @@ export default function odoo(rl) {
|
|
|
203
190
|
},
|
|
204
191
|
async execute(input, ctx) {
|
|
205
192
|
const p = input;
|
|
206
|
-
|
|
207
|
-
await execute(s.url, s.db, s.uid, s.password, resolveModel(p.model), "write", [p.id], p.fields);
|
|
193
|
+
await call(ctx, resolveModel(p.model), "write", [p.id], p.fields);
|
|
208
194
|
return { id: p.id };
|
|
209
195
|
},
|
|
210
196
|
});
|
|
@@ -221,8 +207,7 @@ export default function odoo(rl) {
|
|
|
221
207
|
},
|
|
222
208
|
async execute(input, ctx) {
|
|
223
209
|
const p = input;
|
|
224
|
-
|
|
225
|
-
await execute(s.url, s.db, s.uid, s.password, resolveModel(p.model), "unlink", [p.id]);
|
|
210
|
+
await call(ctx, resolveModel(p.model), "unlink", [p.id]);
|
|
226
211
|
return { success: true };
|
|
227
212
|
},
|
|
228
213
|
});
|
|
@@ -238,8 +223,7 @@ export default function odoo(rl) {
|
|
|
238
223
|
},
|
|
239
224
|
async execute(input, ctx) {
|
|
240
225
|
const { model } = input;
|
|
241
|
-
|
|
242
|
-
return execute(s.url, s.db, s.uid, s.password, resolveModel(model), "fields_get", [], ["string", "type", "help", "required", "name"]);
|
|
226
|
+
return call(ctx, resolveModel(model), "fields_get", [], ["string", "type", "help", "required", "name"]);
|
|
243
227
|
},
|
|
244
228
|
});
|
|
245
229
|
}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { httpsBase, staticCredential } from "../../_shared/credentials.js";
|
|
2
|
+
/**
|
|
3
|
+
* An SSWS API token, sent as `Authorization: SSWS {token}` to the
|
|
4
|
+
* configured org's /api/v1/ base. The org URL is public config and must
|
|
5
|
+
* be HTTPS.
|
|
6
|
+
*/
|
|
7
|
+
export const oktaCredential = staticCredential({
|
|
8
|
+
id: "okta",
|
|
9
|
+
auth: { kind: "apiKey", header: "Authorization", prefix: "SSWS " },
|
|
10
|
+
local: { secret: "apiToken" },
|
|
11
|
+
targets: (config) => ({
|
|
12
|
+
api: {
|
|
13
|
+
baseUrl: httpsBase(config.url, "api/v1/"),
|
|
14
|
+
methods: ["GET", "POST", "DELETE"],
|
|
15
|
+
},
|
|
16
|
+
}),
|
|
17
|
+
probe: {
|
|
18
|
+
target: "api",
|
|
19
|
+
path: "users/me",
|
|
20
|
+
method: "GET",
|
|
21
|
+
acceptedStatuses: [200],
|
|
22
|
+
},
|
|
23
|
+
});
|
|
@@ -1,40 +1,34 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
if (qs) {
|
|
9
|
-
for (const [k, v] of Object.entries(qs)) {
|
|
10
|
-
if (v !== undefined && v !== null)
|
|
11
|
-
u.searchParams.set(k, String(v));
|
|
12
|
-
}
|
|
13
|
-
}
|
|
14
|
-
const init = {
|
|
1
|
+
import { AuthError } from "runline";
|
|
2
|
+
import { credentialOk, pathSegment } from "../../_shared/credentials.js";
|
|
3
|
+
import { oktaCredential } from "./credentials.js";
|
|
4
|
+
async function apiRequest(ctx, method, path, body, qs) {
|
|
5
|
+
const res = await credentialOk(ctx, oktaCredential, "okta", {
|
|
6
|
+
target: "api",
|
|
7
|
+
path,
|
|
15
8
|
method,
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
},
|
|
20
|
-
};
|
|
21
|
-
if (body && Object.keys(body).length > 0)
|
|
22
|
-
init.body = JSON.stringify(body);
|
|
23
|
-
const res = await fetch(u.toString(), init);
|
|
24
|
-
if (!res.ok)
|
|
25
|
-
throw new Error(`Okta API error ${res.status}: ${await res.text()}`);
|
|
9
|
+
query: qs,
|
|
10
|
+
...(body && Object.keys(body).length > 0 ? { json: body } : {}),
|
|
11
|
+
});
|
|
26
12
|
const text = await res.text();
|
|
27
|
-
|
|
13
|
+
let data = {};
|
|
14
|
+
if (text) {
|
|
15
|
+
try {
|
|
16
|
+
data = JSON.parse(text);
|
|
17
|
+
}
|
|
18
|
+
catch {
|
|
19
|
+
throw new AuthError("invalid_response");
|
|
20
|
+
}
|
|
21
|
+
}
|
|
28
22
|
return { data, linkHeader: res.headers.get("link") ?? undefined };
|
|
29
23
|
}
|
|
30
|
-
async function paginate(
|
|
24
|
+
async function paginate(ctx, path, qs = {}) {
|
|
31
25
|
const all = [];
|
|
32
26
|
let after;
|
|
33
27
|
do {
|
|
34
28
|
if (after)
|
|
35
29
|
qs.after = after;
|
|
36
30
|
qs.limit = 200;
|
|
37
|
-
const { data, linkHeader } = await apiRequest(
|
|
31
|
+
const { data, linkHeader } = await apiRequest(ctx, "GET", path, undefined, qs);
|
|
38
32
|
const items = Array.isArray(data) ? data : [];
|
|
39
33
|
all.push(...items);
|
|
40
34
|
after = undefined;
|
|
@@ -49,6 +43,7 @@ async function paginate(conn, endpoint, qs = {}) {
|
|
|
49
43
|
export default function okta(rl) {
|
|
50
44
|
rl.setName("okta");
|
|
51
45
|
rl.setVersion("0.1.0");
|
|
46
|
+
rl.setCredential(oktaCredential);
|
|
52
47
|
rl.setConnectionSchema({
|
|
53
48
|
url: {
|
|
54
49
|
type: "string",
|
|
@@ -89,7 +84,6 @@ export default function okta(rl) {
|
|
|
89
84
|
},
|
|
90
85
|
async execute(input, ctx) {
|
|
91
86
|
const p = input;
|
|
92
|
-
const conn = getConn(ctx);
|
|
93
87
|
const body = {
|
|
94
88
|
profile: {
|
|
95
89
|
firstName: p.firstName,
|
|
@@ -105,7 +99,7 @@ export default function okta(rl) {
|
|
|
105
99
|
const qs = {
|
|
106
100
|
activate: p.activate !== false ? "true" : "false",
|
|
107
101
|
};
|
|
108
|
-
const { data } = await apiRequest(
|
|
102
|
+
const { data } = await apiRequest(ctx, "POST", "users/", body, qs);
|
|
109
103
|
return data;
|
|
110
104
|
},
|
|
111
105
|
});
|
|
@@ -121,7 +115,7 @@ export default function okta(rl) {
|
|
|
121
115
|
},
|
|
122
116
|
async execute(input, ctx) {
|
|
123
117
|
const { userId } = input;
|
|
124
|
-
const { data } = await apiRequest(
|
|
118
|
+
const { data } = await apiRequest(ctx, "GET", `users/${pathSegment(userId)}`);
|
|
125
119
|
return data;
|
|
126
120
|
},
|
|
127
121
|
});
|
|
@@ -142,16 +136,15 @@ export default function okta(rl) {
|
|
|
142
136
|
},
|
|
143
137
|
async execute(input, ctx) {
|
|
144
138
|
const p = (input ?? {});
|
|
145
|
-
const conn = getConn(ctx);
|
|
146
139
|
const qs = {};
|
|
147
140
|
if (p.search)
|
|
148
141
|
qs.search = p.search;
|
|
149
142
|
if (p.limit) {
|
|
150
143
|
qs.limit = p.limit;
|
|
151
|
-
const { data } = await apiRequest(
|
|
144
|
+
const { data } = await apiRequest(ctx, "GET", "users/", undefined, qs);
|
|
152
145
|
return data;
|
|
153
146
|
}
|
|
154
|
-
return paginate(
|
|
147
|
+
return paginate(ctx, "users/", qs);
|
|
155
148
|
},
|
|
156
149
|
});
|
|
157
150
|
rl.registerAction("user.update", {
|
|
@@ -167,7 +160,9 @@ export default function okta(rl) {
|
|
|
167
160
|
},
|
|
168
161
|
async execute(input, ctx) {
|
|
169
162
|
const { userId, profile } = input;
|
|
170
|
-
const { data } = await apiRequest(
|
|
163
|
+
const { data } = await apiRequest(ctx, "POST", `users/${pathSegment(userId)}`, {
|
|
164
|
+
profile,
|
|
165
|
+
});
|
|
171
166
|
return data;
|
|
172
167
|
},
|
|
173
168
|
});
|
|
@@ -179,7 +174,7 @@ export default function okta(rl) {
|
|
|
179
174
|
},
|
|
180
175
|
async execute(input, ctx) {
|
|
181
176
|
const { userId } = input;
|
|
182
|
-
await apiRequest(
|
|
177
|
+
await apiRequest(ctx, "DELETE", `users/${pathSegment(userId)}`);
|
|
183
178
|
return { success: true };
|
|
184
179
|
},
|
|
185
180
|
});
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { staticCredential } from "../../_shared/credentials.js";
|
|
2
|
+
/**
|
|
3
|
+
* An API token, appended by the transport as the token query parameter on
|
|
4
|
+
* OneSimpleAPI's one origin.
|
|
5
|
+
*/
|
|
6
|
+
export const oneSimpleApiCredential = staticCredential({
|
|
7
|
+
id: "oneSimpleApi",
|
|
8
|
+
auth: { kind: "queryKey", param: "token" },
|
|
9
|
+
local: { secret: "apiToken" },
|
|
10
|
+
targets: {
|
|
11
|
+
api: {
|
|
12
|
+
baseUrl: "https://onesimpleapi.com/api/",
|
|
13
|
+
methods: ["GET"],
|
|
14
|
+
},
|
|
15
|
+
},
|
|
16
|
+
});
|
|
@@ -1,20 +1,16 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
}
|
|
10
|
-
const res = await fetch(url.toString());
|
|
11
|
-
if (!res.ok)
|
|
12
|
-
throw new Error(`OneSimpleAPI error ${res.status}: ${await res.text()}`);
|
|
13
|
-
return res.json();
|
|
1
|
+
import { credentialJson } from "../../_shared/credentials.js";
|
|
2
|
+
import { oneSimpleApiCredential } from "./credentials.js";
|
|
3
|
+
function apiRequest(ctx, path, qs = {}) {
|
|
4
|
+
return credentialJson(ctx, oneSimpleApiCredential, "oneSimpleApi", {
|
|
5
|
+
target: "api",
|
|
6
|
+
path,
|
|
7
|
+
query: { output: "json", ...qs },
|
|
8
|
+
});
|
|
14
9
|
}
|
|
15
10
|
export default function oneSimpleApi(rl) {
|
|
16
11
|
rl.setName("oneSimpleApi");
|
|
17
12
|
rl.setVersion("0.1.0");
|
|
13
|
+
rl.setCredential(oneSimpleApiCredential);
|
|
18
14
|
rl.setConnectionSchema({
|
|
19
15
|
apiToken: {
|
|
20
16
|
type: "string",
|
|
@@ -23,7 +19,6 @@ export default function oneSimpleApi(rl) {
|
|
|
23
19
|
env: "ONE_SIMPLE_API_TOKEN",
|
|
24
20
|
},
|
|
25
21
|
});
|
|
26
|
-
const key = (ctx) => ctx.connection.config.apiToken;
|
|
27
22
|
// ── Website ─────────────────────────────────────────
|
|
28
23
|
rl.registerAction("website.pdf", {
|
|
29
24
|
access: "write",
|
|
@@ -47,7 +42,7 @@ export default function oneSimpleApi(rl) {
|
|
|
47
42
|
if (p.page)
|
|
48
43
|
qs.page = p.page;
|
|
49
44
|
qs.force = p.force ? "yes" : "no";
|
|
50
|
-
return apiRequest(
|
|
45
|
+
return apiRequest(ctx, "pdf", qs);
|
|
51
46
|
},
|
|
52
47
|
});
|
|
53
48
|
rl.registerAction("website.screenshot", {
|
|
@@ -78,7 +73,7 @@ export default function oneSimpleApi(rl) {
|
|
|
78
73
|
qs.screen = p.screen;
|
|
79
74
|
qs.fullpage = p.fullpage ? "yes" : "no";
|
|
80
75
|
qs.force = p.force ? "yes" : "no";
|
|
81
|
-
return apiRequest(
|
|
76
|
+
return apiRequest(ctx, "screenshot", qs);
|
|
82
77
|
},
|
|
83
78
|
});
|
|
84
79
|
rl.registerAction("website.seo", {
|
|
@@ -97,7 +92,7 @@ export default function oneSimpleApi(rl) {
|
|
|
97
92
|
const qs = { url: p.url };
|
|
98
93
|
if (p.headers)
|
|
99
94
|
qs.headers = "yes";
|
|
100
|
-
return apiRequest(
|
|
95
|
+
return apiRequest(ctx, "page_info", qs);
|
|
101
96
|
},
|
|
102
97
|
});
|
|
103
98
|
// ── Social Profile ──────────────────────────────────
|
|
@@ -113,7 +108,7 @@ export default function oneSimpleApi(rl) {
|
|
|
113
108
|
},
|
|
114
109
|
async execute(input, ctx) {
|
|
115
110
|
const { profile } = input;
|
|
116
|
-
return apiRequest(
|
|
111
|
+
return apiRequest(ctx, "instagram_profile", { profile });
|
|
117
112
|
},
|
|
118
113
|
});
|
|
119
114
|
rl.registerAction("socialProfile.spotify", {
|
|
@@ -128,7 +123,7 @@ export default function oneSimpleApi(rl) {
|
|
|
128
123
|
},
|
|
129
124
|
async execute(input, ctx) {
|
|
130
125
|
const { profile } = input;
|
|
131
|
-
return apiRequest(
|
|
126
|
+
return apiRequest(ctx, "spotify_profile", { profile });
|
|
132
127
|
},
|
|
133
128
|
});
|
|
134
129
|
// ── Information ─────────────────────────────────────
|
|
@@ -154,7 +149,7 @@ export default function oneSimpleApi(rl) {
|
|
|
154
149
|
},
|
|
155
150
|
async execute(input, ctx) {
|
|
156
151
|
const { value, fromCurrency, toCurrency } = input;
|
|
157
|
-
return apiRequest(
|
|
152
|
+
return apiRequest(ctx, "exchange_rate", {
|
|
158
153
|
from_value: value,
|
|
159
154
|
from_currency: fromCurrency,
|
|
160
155
|
to_currency: toCurrency,
|
|
@@ -169,7 +164,7 @@ export default function oneSimpleApi(rl) {
|
|
|
169
164
|
},
|
|
170
165
|
async execute(input, ctx) {
|
|
171
166
|
const { url } = input;
|
|
172
|
-
return apiRequest(
|
|
167
|
+
return apiRequest(ctx, "image_info", { url, raw: true });
|
|
173
168
|
},
|
|
174
169
|
});
|
|
175
170
|
// ── Utility ─────────────────────────────────────────
|
|
@@ -185,7 +180,7 @@ export default function oneSimpleApi(rl) {
|
|
|
185
180
|
},
|
|
186
181
|
async execute(input, ctx) {
|
|
187
182
|
const { email } = input;
|
|
188
|
-
return apiRequest(
|
|
183
|
+
return apiRequest(ctx, "email", { email });
|
|
189
184
|
},
|
|
190
185
|
});
|
|
191
186
|
rl.registerAction("utility.expandUrl", {
|
|
@@ -196,7 +191,7 @@ export default function oneSimpleApi(rl) {
|
|
|
196
191
|
},
|
|
197
192
|
async execute(input, ctx) {
|
|
198
193
|
const { url } = input;
|
|
199
|
-
return apiRequest(
|
|
194
|
+
return apiRequest(ctx, "unshorten", { url });
|
|
200
195
|
},
|
|
201
196
|
});
|
|
202
197
|
rl.registerAction("utility.qrCode", {
|
|
@@ -226,7 +221,7 @@ export default function oneSimpleApi(rl) {
|
|
|
226
221
|
qs.size = p.size;
|
|
227
222
|
if (p.format)
|
|
228
223
|
qs.format = p.format;
|
|
229
|
-
return apiRequest(
|
|
224
|
+
return apiRequest(ctx, "qr_code", qs);
|
|
230
225
|
},
|
|
231
226
|
});
|
|
232
227
|
}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { staticCredential } from "../../_shared/credentials.js";
|
|
2
|
+
/**
|
|
3
|
+
* An API key as the Basic username, with an empty password, to Onfleet's
|
|
4
|
+
* one API origin. The fixed User-Agent is a public companion header.
|
|
5
|
+
*/
|
|
6
|
+
export const onfleetCredential = staticCredential({
|
|
7
|
+
id: "onfleet",
|
|
8
|
+
auth: { kind: "basic" },
|
|
9
|
+
local: { username: "apiKey", password: { value: "" } },
|
|
10
|
+
targets: {
|
|
11
|
+
api: {
|
|
12
|
+
baseUrl: "https://onfleet.com/api/v2/",
|
|
13
|
+
methods: ["GET", "POST", "PUT", "DELETE"],
|
|
14
|
+
allowedHeaders: ["User-Agent"],
|
|
15
|
+
},
|
|
16
|
+
},
|
|
17
|
+
probe: {
|
|
18
|
+
target: "api",
|
|
19
|
+
path: "organization",
|
|
20
|
+
method: "GET",
|
|
21
|
+
acceptedStatuses: [200],
|
|
22
|
+
},
|
|
23
|
+
});
|