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,24 +1,47 @@
|
|
|
1
|
+
import { AuthError } from "runline";
|
|
1
2
|
import * as t from "typebox";
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
3
|
+
import { credentialBroker } from "../../_shared/credentialAdapter.js";
|
|
4
|
+
import { errorIdentifier, failureMessage } from "../../_shared/credentials.js";
|
|
5
|
+
import { SHIFT_API_URL, STRICT_OBJECT } from "../../_shared/shiftCloud.js";
|
|
6
|
+
import { shiftCredential, shiftPath } from "../../_shared/shiftCredentials.js";
|
|
7
|
+
import { BusinessWorldModelClient, BwmClientError, } from "./vendor/client.js";
|
|
4
8
|
import { BWM_BUILT_IN_OBJECT_TYPES, BWM_LIST_MAX_LIMIT, } from "./vendor/contracts.js";
|
|
5
9
|
import { BwmFilterOperator } from "./vendor/models.js";
|
|
6
10
|
export { idSchema, STRICT_OBJECT, STRICT_UPDATE_OBJECT, } from "../../_shared/shiftCloud.js";
|
|
11
|
+
export const shiftBwmCredential = shiftCredential();
|
|
7
12
|
// ─── client ──────────────────────────────────────────────────────
|
|
13
|
+
/**
|
|
14
|
+
* The vendored client's fetch, sent through the declared credential: the
|
|
15
|
+
* client names Shift API URLs, and each becomes a path beneath the Shift
|
|
16
|
+
* target. The client never holds the key.
|
|
17
|
+
*/
|
|
18
|
+
function brokeredFetch(ctx) {
|
|
19
|
+
return (input, init) => {
|
|
20
|
+
const url = new URL(input);
|
|
21
|
+
if (url.origin !== SHIFT_API_URL)
|
|
22
|
+
throw new AuthError("request_not_allowed");
|
|
23
|
+
return credentialBroker(ctx, shiftBwmCredential).request({
|
|
24
|
+
target: "api",
|
|
25
|
+
path: `${shiftPath(url.pathname)}${url.search}`,
|
|
26
|
+
method: (init?.method ?? "GET"),
|
|
27
|
+
headers: {
|
|
28
|
+
Accept: "application/json",
|
|
29
|
+
...Object.fromEntries(init?.headers ?? []),
|
|
30
|
+
},
|
|
31
|
+
...(init?.body !== undefined ? { body: init.body } : {}),
|
|
32
|
+
});
|
|
33
|
+
};
|
|
34
|
+
}
|
|
8
35
|
/**
|
|
9
36
|
* One client per call. Cheap (prefix + fetch closure), and it lets a
|
|
10
37
|
* create attach its own `Idempotency-Key` without leaking it into the
|
|
11
|
-
* next request.
|
|
12
|
-
* one deadline, bounded body.
|
|
38
|
+
* next request.
|
|
13
39
|
*/
|
|
14
40
|
export function clientFor(ctx, extraHeaders = {}) {
|
|
15
41
|
return new BusinessWorldModelClient({
|
|
16
42
|
baseUrl: SHIFT_API_URL,
|
|
17
|
-
fetch:
|
|
18
|
-
headers:
|
|
19
|
-
authorization: `Bearer ${apiKey(ctx)}`,
|
|
20
|
-
...extraHeaders,
|
|
21
|
-
},
|
|
43
|
+
fetch: brokeredFetch(ctx),
|
|
44
|
+
headers: extraHeaders,
|
|
22
45
|
});
|
|
23
46
|
}
|
|
24
47
|
/** Client whose every mutation carries a fresh `Idempotency-Key`. */
|
|
@@ -29,17 +52,19 @@ export function idempotentClientFor(ctx) {
|
|
|
29
52
|
/**
|
|
30
53
|
* Only `message` survives the trip back to the agent's code, so the
|
|
31
54
|
* fields the model needs to self-correct — `code` and `param` — are
|
|
32
|
-
* folded into it. `param` names the offending
|
|
33
|
-
* (`fields.tier`, `relationships.$owner`).
|
|
55
|
+
* folded into it, as for every Shift plugin. `param` names the offending
|
|
56
|
+
* request location (`fields.tier`, `relationships.$owner`). The service's
|
|
57
|
+
* free-text message can echo request data and is not returned.
|
|
34
58
|
*/
|
|
35
59
|
export function describeError(err) {
|
|
36
60
|
if (err instanceof BwmClientError) {
|
|
37
|
-
const
|
|
38
|
-
const
|
|
61
|
+
const code = errorIdentifier(err.code);
|
|
62
|
+
const param = errorIdentifier(err.param);
|
|
63
|
+
const error = new Error(failureMessage("shiftBwm", err.status, { code, param }));
|
|
39
64
|
error.status = err.status;
|
|
40
|
-
error.type = err.type;
|
|
41
|
-
error.code =
|
|
42
|
-
error.param =
|
|
65
|
+
error.type = errorIdentifier(err.type);
|
|
66
|
+
error.code = code;
|
|
67
|
+
error.param = param;
|
|
43
68
|
return error;
|
|
44
69
|
}
|
|
45
70
|
return err instanceof Error ? err : new Error(String(err));
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import * as t from "typebox";
|
|
2
|
-
import { CRM_ACCESS_ROLE, CRM_BASE, enumSchema, idSchema,
|
|
2
|
+
import { CRM_ACCESS_ROLE, CRM_BASE, enumSchema, idSchema, pathSegment, request, STRICT_OBJECT, } from "./shared.js";
|
|
3
3
|
export function registerAccessActions(rl) {
|
|
4
4
|
rl.registerAction("access.me", {
|
|
5
5
|
access: "read",
|
|
@@ -14,7 +14,7 @@ export function registerAccessActions(rl) {
|
|
|
14
14
|
description: "List CRM access grants. Requires a CRM admin grant or admin:* permission.",
|
|
15
15
|
inputSchema: t.Object({ includeRevoked: t.Optional(t.Boolean()) }, STRICT_OBJECT),
|
|
16
16
|
async execute(input, ctx) {
|
|
17
|
-
const body = await request(ctx,
|
|
17
|
+
const body = await request(ctx, `${CRM_BASE}/access`, { query: input });
|
|
18
18
|
return body.grants;
|
|
19
19
|
},
|
|
20
20
|
});
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import * as t from "typebox";
|
|
2
|
-
import { CRM_BASE, createRecordFields, idSchema,
|
|
2
|
+
import { CRM_BASE, createRecordFields, idSchema, paginationFields, pathSegment, request, STRICT_OBJECT, STRICT_UPDATE_OBJECT, updateRecordFields, } from "./shared.js";
|
|
3
3
|
const accountListFields = {
|
|
4
4
|
search: t.Optional(t.String({ minLength: 1, pattern: "\\S", description: "Name search" })),
|
|
5
5
|
accountType: t.Optional(t.String({ minLength: 1, description: "Account type filter" })),
|
|
@@ -19,7 +19,7 @@ export function registerAccountActions(rl) {
|
|
|
19
19
|
description: "List the first page of CRM accounts.",
|
|
20
20
|
inputSchema: t.Object(accountListFields, STRICT_OBJECT),
|
|
21
21
|
async execute(input, ctx) {
|
|
22
|
-
const body = await request(ctx,
|
|
22
|
+
const body = await request(ctx, `${CRM_BASE}/accounts`, { query: input });
|
|
23
23
|
return body.accounts;
|
|
24
24
|
},
|
|
25
25
|
});
|
|
@@ -28,7 +28,7 @@ export function registerAccountActions(rl) {
|
|
|
28
28
|
description: "List a cursor-paginated page of CRM accounts.",
|
|
29
29
|
inputSchema: t.Object(accountListFields, STRICT_OBJECT),
|
|
30
30
|
async execute(input, ctx) {
|
|
31
|
-
return request(ctx,
|
|
31
|
+
return request(ctx, `${CRM_BASE}/accounts`, { query: input });
|
|
32
32
|
},
|
|
33
33
|
});
|
|
34
34
|
rl.registerAction("account.get", {
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import * as t from "typebox";
|
|
2
|
-
import { assertTimeOrder, CRM_ACTIVITY_DIRECTION, CRM_ACTIVITY_STATUS, CRM_BASE, createRecordFields, enumSchema, idSchema,
|
|
2
|
+
import { assertTimeOrder, CRM_ACTIVITY_DIRECTION, CRM_ACTIVITY_STATUS, CRM_BASE, createRecordFields, enumSchema, idSchema, paginationFields, request, STRICT_OBJECT, timestampSchema, } from "./shared.js";
|
|
3
3
|
const activityListFields = {
|
|
4
4
|
linkedRecordId: t.Optional(idSchema("Filter by linked CRM record ID")),
|
|
5
5
|
status: t.Optional(enumSchema("Activity status", CRM_ACTIVITY_STATUS)),
|
|
@@ -11,7 +11,7 @@ export function registerActivityActions(rl) {
|
|
|
11
11
|
description: "List the first page of CRM activities.",
|
|
12
12
|
inputSchema: t.Object(activityListFields, STRICT_OBJECT),
|
|
13
13
|
async execute(input, ctx) {
|
|
14
|
-
const body = await request(ctx,
|
|
14
|
+
const body = await request(ctx, `${CRM_BASE}/activities`, { query: input });
|
|
15
15
|
return body.activities;
|
|
16
16
|
},
|
|
17
17
|
});
|
|
@@ -20,7 +20,7 @@ export function registerActivityActions(rl) {
|
|
|
20
20
|
description: "List a cursor-paginated page of CRM activities.",
|
|
21
21
|
inputSchema: t.Object(activityListFields, STRICT_OBJECT),
|
|
22
22
|
async execute(input, ctx) {
|
|
23
|
-
return request(ctx,
|
|
23
|
+
return request(ctx, `${CRM_BASE}/activities`, { query: input });
|
|
24
24
|
},
|
|
25
25
|
});
|
|
26
26
|
rl.registerAction("activity.log", {
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { shiftClient } from "../../_shared/shiftCredentials.js";
|
|
2
|
+
/**
|
|
3
|
+
* A user-subject Shift CRM API key, signed like every Shift key. The probe
|
|
4
|
+
* reads the key's own CRM access: a key without a grant is rejected there.
|
|
5
|
+
*/
|
|
6
|
+
export const { credential: shiftCrmCredential, request } = shiftClient("shiftCrm", { probe: "crm/access/me" });
|
|
@@ -2,6 +2,7 @@ import * as t from "typebox";
|
|
|
2
2
|
import { registerAccessActions } from "./access.js";
|
|
3
3
|
import { registerAccountActions } from "./accounts.js";
|
|
4
4
|
import { registerActivityActions } from "./activities.js";
|
|
5
|
+
import { shiftCrmCredential } from "./credentials.js";
|
|
5
6
|
import { registerImportActions } from "./imports.js";
|
|
6
7
|
import { registerOpportunityActions, registerPipelineActions, } from "./opportunities.js";
|
|
7
8
|
import { registerPersonActions } from "./people.js";
|
|
@@ -10,6 +11,7 @@ import { registerTaskActions } from "./tasks.js";
|
|
|
10
11
|
export default function shiftCrm(rl) {
|
|
11
12
|
rl.setName("shiftCrm");
|
|
12
13
|
rl.setVersion("0.1.0");
|
|
14
|
+
rl.setCredential(shiftCrmCredential);
|
|
13
15
|
rl.setConnectionSchema(t.Object({
|
|
14
16
|
apiKey: t.String({
|
|
15
17
|
description: "User-subject Shift CRM API key minted by an operator via `bun run crm:access key`. It authenticates as its bound user, whose active CRM access grant authorizes data access. Regular Shift cloud service API keys (SHIFT_LABS_API_KEY) cannot reach CRM data.",
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import * as t from "typebox";
|
|
2
|
-
import { CRM_BASE, CRM_PIPELINE_OUTCOME, createRecordFields, enumSchema, idSchema,
|
|
2
|
+
import { CRM_BASE, CRM_PIPELINE_OUTCOME, createRecordFields, enumSchema, idSchema, nullableTimestamp, paginationFields, pathSegment, request, STRICT_OBJECT, STRICT_UPDATE_OBJECT, timestampSchema, updateRecordFields, } from "./shared.js";
|
|
3
3
|
const opportunityListFields = {
|
|
4
4
|
accountId: t.Optional(idSchema("Filter by account record ID")),
|
|
5
5
|
pipelineId: t.Optional(idSchema("Filter by pipeline ID")),
|
|
@@ -70,7 +70,7 @@ export function registerOpportunityActions(rl) {
|
|
|
70
70
|
description: "List the first page of CRM opportunities.",
|
|
71
71
|
inputSchema: t.Object(opportunityListFields, STRICT_OBJECT),
|
|
72
72
|
async execute(input, ctx) {
|
|
73
|
-
const body = await request(ctx,
|
|
73
|
+
const body = await request(ctx, `${CRM_BASE}/opportunities`, { query: input });
|
|
74
74
|
return body.opportunities;
|
|
75
75
|
},
|
|
76
76
|
});
|
|
@@ -79,7 +79,7 @@ export function registerOpportunityActions(rl) {
|
|
|
79
79
|
description: "List a cursor-paginated page of CRM opportunities.",
|
|
80
80
|
inputSchema: t.Object(opportunityListFields, STRICT_OBJECT),
|
|
81
81
|
async execute(input, ctx) {
|
|
82
|
-
return request(ctx,
|
|
82
|
+
return request(ctx, `${CRM_BASE}/opportunities`, { query: input });
|
|
83
83
|
},
|
|
84
84
|
});
|
|
85
85
|
rl.registerAction("opportunity.get", {
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import * as t from "typebox";
|
|
2
|
-
import { assertTimeOrder, CRM_BASE, CRM_IDENTITY_KIND, createRecordFields, enumSchema, idSchema,
|
|
2
|
+
import { assertTimeOrder, CRM_BASE, CRM_IDENTITY_KIND, createRecordFields, enumSchema, idSchema, paginationFields, pathSegment, request, STRICT_OBJECT, STRICT_UPDATE_OBJECT, timestampSchema, updateRecordFields, } from "./shared.js";
|
|
3
3
|
const personListFields = {
|
|
4
4
|
search: t.Optional(t.String({ minLength: 1, pattern: "\\S", description: "Name search" })),
|
|
5
5
|
accountId: t.Optional(idSchema("Filter by affiliated account record ID")),
|
|
@@ -55,7 +55,7 @@ export function registerPersonActions(rl) {
|
|
|
55
55
|
description: "List the first page of CRM people.",
|
|
56
56
|
inputSchema: t.Object(personListFields, STRICT_OBJECT),
|
|
57
57
|
async execute(input, ctx) {
|
|
58
|
-
const body = await request(ctx,
|
|
58
|
+
const body = await request(ctx, `${CRM_BASE}/people`, { query: input });
|
|
59
59
|
return body.people;
|
|
60
60
|
},
|
|
61
61
|
});
|
|
@@ -64,7 +64,7 @@ export function registerPersonActions(rl) {
|
|
|
64
64
|
description: "List a cursor-paginated page of CRM people.",
|
|
65
65
|
inputSchema: t.Object(personListFields, STRICT_OBJECT),
|
|
66
66
|
async execute(input, ctx) {
|
|
67
|
-
return request(ctx,
|
|
67
|
+
return request(ctx, `${CRM_BASE}/people`, { query: input });
|
|
68
68
|
},
|
|
69
69
|
});
|
|
70
70
|
rl.registerAction("person.get", {
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import * as t from "typebox";
|
|
2
|
-
import { CRM_BASE, CRM_PROPERTY_DATA_TYPE, enumSchema, idSchema,
|
|
2
|
+
import { CRM_BASE, CRM_PROPERTY_DATA_TYPE, enumSchema, idSchema, pathSegment, recordTypeSchema, request, STRICT_OBJECT, } from "./shared.js";
|
|
3
3
|
export function registerRecordActions(rl) {
|
|
4
4
|
rl.registerAction("record.changeEvents", {
|
|
5
5
|
access: "read",
|
|
@@ -16,7 +16,7 @@ export function registerRecordActions(rl) {
|
|
|
16
16
|
description: "List governed custom-property definitions, optionally for one record type.",
|
|
17
17
|
inputSchema: t.Object({ recordType: t.Optional(recordTypeSchema()) }, STRICT_OBJECT),
|
|
18
18
|
async execute(input, ctx) {
|
|
19
|
-
const body = await request(ctx,
|
|
19
|
+
const body = await request(ctx, `${CRM_BASE}/property-definitions`, { query: input });
|
|
20
20
|
return body.propertyDefinitions;
|
|
21
21
|
},
|
|
22
22
|
});
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import * as t from "typebox";
|
|
2
2
|
import { cursorSchema, enumSchema, idSchema, timestampSchema, } from "../../_shared/shiftCloud.js";
|
|
3
|
-
export { enumSchema, idSchema,
|
|
3
|
+
export { enumSchema, idSchema, pathSegment, STRICT_OBJECT, STRICT_UPDATE_OBJECT, timestampSchema, } from "../../_shared/shiftCloud.js";
|
|
4
|
+
export { request } from "./credentials.js";
|
|
4
5
|
export const CRM_BASE = "/v1/crm";
|
|
5
6
|
export const CRM_ACCESS_ROLE = ["user", "admin"];
|
|
6
7
|
export const CRM_RECORD_TYPE = [
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import * as t from "typebox";
|
|
2
|
-
import { CRM_BASE, CRM_TASK_PRIORITY, CRM_TASK_STATUS, createRecordFields, enumSchema, idSchema,
|
|
2
|
+
import { CRM_BASE, CRM_TASK_PRIORITY, CRM_TASK_STATUS, createRecordFields, enumSchema, idSchema, nullableTimestamp, paginationFields, pathSegment, request, STRICT_OBJECT, STRICT_UPDATE_OBJECT, timestampSchema, updateRecordFields, } from "./shared.js";
|
|
3
3
|
const taskListFields = {
|
|
4
4
|
linkedRecordId: t.Optional(idSchema("Filter by linked CRM record ID")),
|
|
5
5
|
status: t.Optional(enumSchema("Task status", CRM_TASK_STATUS)),
|
|
@@ -12,7 +12,7 @@ export function registerTaskActions(rl) {
|
|
|
12
12
|
description: "List the first page of CRM tasks.",
|
|
13
13
|
inputSchema: t.Object(taskListFields, STRICT_OBJECT),
|
|
14
14
|
async execute(input, ctx) {
|
|
15
|
-
const body = await request(ctx,
|
|
15
|
+
const body = await request(ctx, `${CRM_BASE}/tasks`, { query: input });
|
|
16
16
|
return body.tasks;
|
|
17
17
|
},
|
|
18
18
|
});
|
|
@@ -21,7 +21,7 @@ export function registerTaskActions(rl) {
|
|
|
21
21
|
description: "List a cursor-paginated page of CRM tasks.",
|
|
22
22
|
inputSchema: t.Object(taskListFields, STRICT_OBJECT),
|
|
23
23
|
async execute(input, ctx) {
|
|
24
|
-
return request(ctx,
|
|
24
|
+
return request(ctx, `${CRM_BASE}/tasks`, { query: input });
|
|
25
25
|
},
|
|
26
26
|
});
|
|
27
27
|
rl.registerAction("task.get", {
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import * as t from "typebox";
|
|
2
|
+
import { shiftObjectsCredential } from "./credentials.js";
|
|
2
3
|
import { registerObjectActions } from "./objects.js";
|
|
3
4
|
/**
|
|
4
5
|
* Shift Objects — the organization's durable object bucket in the
|
|
@@ -10,6 +11,7 @@ import { registerObjectActions } from "./objects.js";
|
|
|
10
11
|
export default function shiftObjects(rl) {
|
|
11
12
|
rl.setName("shiftObjects");
|
|
12
13
|
rl.setVersion("0.1.0");
|
|
14
|
+
rl.setCredential(shiftObjectsCredential);
|
|
13
15
|
rl.setConnectionSchema(t.Object({
|
|
14
16
|
apiKey: t.String({
|
|
15
17
|
description: "Shift Labs API key",
|
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
import { writeFile } from "node:fs/promises";
|
|
2
2
|
import { basename } from "node:path";
|
|
3
3
|
import * as t from "typebox";
|
|
4
|
-
import { enumSchema,
|
|
4
|
+
import { enumSchema, pathSegment, STRICT_OBJECT, } from "../../_shared/shiftCloud.js";
|
|
5
5
|
import { GENERAL_MEDIA_TYPES, mediaTypeFromPath, putThroughGrant, SIGNED_UPLOAD_MAX_BYTES, statUploadFile, } from "../../_shared/shiftUpload.js";
|
|
6
|
+
import { request } from "./credentials.js";
|
|
6
7
|
const OBJECTS_BASE = "/v1/services/objects";
|
|
7
8
|
export const OBJECT_STATUS = ["pending_upload", "ready", "archived"];
|
|
8
9
|
export const OBJECT_LINK_TARGET = [
|
|
@@ -83,7 +84,7 @@ export function registerObjectActions(rl) {
|
|
|
83
84
|
metadata: fields.metadata,
|
|
84
85
|
}),
|
|
85
86
|
});
|
|
86
|
-
await putThroughGrant(created.upload, fields.path, contentType,
|
|
87
|
+
await putThroughGrant(created.upload, fields.path, contentType, "Object upload");
|
|
87
88
|
return request(ctx, `${OBJECTS_BASE}/objects/${pathSegment(created.object.id)}/complete`, { method: "POST" });
|
|
88
89
|
},
|
|
89
90
|
});
|
|
@@ -97,7 +98,7 @@ export function registerObjectActions(rl) {
|
|
|
97
98
|
...provenanceFields,
|
|
98
99
|
}, STRICT_OBJECT),
|
|
99
100
|
async execute(input, ctx) {
|
|
100
|
-
const body = await request(ctx,
|
|
101
|
+
const body = await request(ctx, `${OBJECTS_BASE}/objects`, { query: input });
|
|
101
102
|
return body.objects;
|
|
102
103
|
},
|
|
103
104
|
});
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { shiftClient } from "../../_shared/shiftCredentials.js";
|
|
2
|
+
/**
|
|
3
|
+
* Extraction runs synchronously; a long multi-page PDF takes minutes, not
|
|
4
|
+
* seconds. The target declares that deadline so the transport holds the
|
|
5
|
+
* request open for the whole extraction.
|
|
6
|
+
*/
|
|
7
|
+
export const EXTRACT_TIMEOUT_MS = 5 * 60_000;
|
|
8
|
+
export const { credential: shiftOcrCredential, request } = shiftClient("shiftOcr", { timeoutMs: EXTRACT_TIMEOUT_MS });
|
|
@@ -1,8 +1,9 @@
|
|
|
1
|
-
import { readFile } from "node:fs/promises";
|
|
2
1
|
import { basename, extname } from "node:path";
|
|
3
2
|
import * as t from "typebox";
|
|
4
|
-
import {
|
|
3
|
+
import { readLocalFile } from "../../_shared/localFile.js";
|
|
4
|
+
import { pathSegment, STRICT_OBJECT, } from "../../_shared/shiftCloud.js";
|
|
5
5
|
import { putThroughGrant, SIGNED_UPLOAD_MAX_BYTES, statUploadFile, } from "../../_shared/shiftUpload.js";
|
|
6
|
+
import { request, shiftOcrCredential } from "./credentials.js";
|
|
6
7
|
/**
|
|
7
8
|
* Shift OCR — text and structured-field extraction from images and
|
|
8
9
|
* PDFs through the Shift cloud OCR service. The API key is the tenant
|
|
@@ -30,8 +31,6 @@ const DOCUMENT_TYPES = {
|
|
|
30
31
|
* anything larger uploads to the object bucket instead.
|
|
31
32
|
*/
|
|
32
33
|
const MAX_INLINE_BYTES = 20 * 1024 * 1024;
|
|
33
|
-
/** Extraction runs synchronously; a long multi-page PDF takes minutes, not seconds. */
|
|
34
|
-
const EXTRACT_TIMEOUT_MS = 5 * 60_000;
|
|
35
34
|
async function documentFromPath(ctx, path) {
|
|
36
35
|
const extension = extname(path).slice(1).toLowerCase();
|
|
37
36
|
const imageType = IMAGE_TYPES[extension];
|
|
@@ -45,7 +44,12 @@ async function documentFromPath(ctx, path) {
|
|
|
45
44
|
const mediaType = (imageType ?? documentType);
|
|
46
45
|
const sizeBytes = await statUploadFile(path, SIGNED_UPLOAD_MAX_BYTES);
|
|
47
46
|
if (sizeBytes <= MAX_INLINE_BYTES) {
|
|
48
|
-
const
|
|
47
|
+
const bytes = await readLocalFile(path, {
|
|
48
|
+
subject: "File",
|
|
49
|
+
maxBytes: MAX_INLINE_BYTES,
|
|
50
|
+
oversize: "File grew past the inline limit while reading; retry",
|
|
51
|
+
});
|
|
52
|
+
const url = `data:${mediaType};base64,${bytes.toString("base64")}`;
|
|
49
53
|
return imageType
|
|
50
54
|
? { type: "image", url }
|
|
51
55
|
: { type: "document", url, name: basename(path) };
|
|
@@ -60,8 +64,8 @@ async function documentFromPath(ctx, path) {
|
|
|
60
64
|
filename: basename(path),
|
|
61
65
|
}),
|
|
62
66
|
});
|
|
63
|
-
await putThroughGrant(created.upload, path, mediaType
|
|
64
|
-
await request(ctx, `/v1/services/objects/objects/${created.object.id}/complete`, { method: "POST" });
|
|
67
|
+
await putThroughGrant(created.upload, path, mediaType);
|
|
68
|
+
await request(ctx, `/v1/services/objects/objects/${pathSegment(created.object.id)}/complete`, { method: "POST" });
|
|
65
69
|
return { type: "object", objectId: created.object.id };
|
|
66
70
|
}
|
|
67
71
|
function documentFromUrl(url, kind) {
|
|
@@ -81,6 +85,7 @@ function documentFromUrl(url, kind) {
|
|
|
81
85
|
export default function shiftOcr(rl) {
|
|
82
86
|
rl.setName("shiftOcr");
|
|
83
87
|
rl.setVersion("0.1.0");
|
|
88
|
+
rl.setCredential(shiftOcrCredential);
|
|
84
89
|
rl.setConnectionSchema(t.Object({
|
|
85
90
|
// Same Shift Labs API key as the shiftLabs plugin; the cloud
|
|
86
91
|
// derives the organization from it, so no org ID is needed.
|
|
@@ -160,6 +165,7 @@ export default function shiftOcr(rl) {
|
|
|
160
165
|
: fields.path
|
|
161
166
|
? await documentFromPath(ctx, fields.path)
|
|
162
167
|
: documentFromUrl(fields.url, fields.kind);
|
|
168
|
+
// The target's declared EXTRACT_TIMEOUT_MS covers the synchronous run.
|
|
163
169
|
return await request(ctx, "/v1/services/ocr/extract", {
|
|
164
170
|
method: "POST",
|
|
165
171
|
body: JSON.stringify({
|
|
@@ -177,7 +183,7 @@ export default function shiftOcr(rl) {
|
|
|
177
183
|
}
|
|
178
184
|
: {}),
|
|
179
185
|
}),
|
|
180
|
-
}
|
|
186
|
+
});
|
|
181
187
|
},
|
|
182
188
|
});
|
|
183
189
|
rl.registerAction("ocr.providers", {
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import * as t from "typebox";
|
|
2
2
|
import { registerPageActions } from "./pages.js";
|
|
3
|
+
import { shiftPagesCredential } from "./shared.js";
|
|
3
4
|
/**
|
|
4
5
|
* Shift Pages — hosted HTML pages in the Shift cloud: draft, publish,
|
|
5
6
|
* archive, share with invited viewers, and resolve authenticated
|
|
@@ -9,6 +10,7 @@ import { registerPageActions } from "./pages.js";
|
|
|
9
10
|
export default function shiftPages(rl) {
|
|
10
11
|
rl.setName("shiftPages");
|
|
11
12
|
rl.setVersion("0.1.0");
|
|
13
|
+
rl.setCredential(shiftPagesCredential);
|
|
12
14
|
rl.setConnectionSchema(t.Object({
|
|
13
15
|
apiKey: t.String({
|
|
14
16
|
description: "Shift Labs API key",
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import * as t from "typebox";
|
|
2
|
-
import { enumSchema, idSchema,
|
|
2
|
+
import { enumSchema, idSchema, PAGE_STATUS, PAGE_TYPE, PAGE_VISIBILITY, pageRenderUrl, pathSegment, request, STRICT_OBJECT, timestampSchema, } from "./shared.js";
|
|
3
3
|
const PageSlug = t.String({
|
|
4
4
|
minLength: 1,
|
|
5
5
|
maxLength: 120,
|
|
@@ -26,7 +26,9 @@ export function registerPageActions(rl) {
|
|
|
26
26
|
})),
|
|
27
27
|
}, STRICT_OBJECT),
|
|
28
28
|
async execute(input, ctx) {
|
|
29
|
-
const body = await request(ctx,
|
|
29
|
+
const body = await request(ctx, "/v1/pages", {
|
|
30
|
+
query: input,
|
|
31
|
+
});
|
|
30
32
|
return body.pages;
|
|
31
33
|
},
|
|
32
34
|
});
|
|
@@ -48,7 +50,7 @@ export function registerPageActions(rl) {
|
|
|
48
50
|
"deployment must belong to the API key's organization.",
|
|
49
51
|
inputSchema: t.Object({ deploymentId: idSchema("Managed Vex deployment ID") }, STRICT_OBJECT),
|
|
50
52
|
async execute(input, ctx) {
|
|
51
|
-
const body = await request(ctx,
|
|
53
|
+
const body = await request(ctx, "/v1/pages/vex-artifacts", { query: input });
|
|
52
54
|
return body.artifacts;
|
|
53
55
|
},
|
|
54
56
|
});
|
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
import { baseUrl, pathSegment } from "../../_shared/shiftCloud.js";
|
|
2
|
-
|
|
2
|
+
import { shiftClient } from "../../_shared/shiftCredentials.js";
|
|
3
|
+
export { enumSchema, idSchema, pathSegment, STRICT_OBJECT, timestampSchema, } from "../../_shared/shiftCloud.js";
|
|
4
|
+
export const { credential: shiftPagesCredential, request } = shiftClient("shiftPages");
|
|
3
5
|
export const PAGE_STATUS = ["draft", "published", "archived"];
|
|
4
6
|
export const PAGE_TYPE = [
|
|
5
7
|
"hosted_html",
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import * as t from "typebox";
|
|
2
|
+
import { shiftTranscriptionCredential } from "./shared.js";
|
|
2
3
|
import { registerTranscriptionActions } from "./transcription.js";
|
|
3
4
|
/**
|
|
4
5
|
* Shift Transcription — audio and video transcription through the
|
|
@@ -10,6 +11,7 @@ import { registerTranscriptionActions } from "./transcription.js";
|
|
|
10
11
|
export default function shiftTranscription(rl) {
|
|
11
12
|
rl.setName("shiftTranscription");
|
|
12
13
|
rl.setVersion("0.2.0");
|
|
14
|
+
rl.setCredential(shiftTranscriptionCredential);
|
|
13
15
|
rl.setConnectionSchema(t.Object({
|
|
14
16
|
apiKey: t.String({
|
|
15
17
|
description: "Shift Labs API key",
|
|
@@ -1,3 +1,13 @@
|
|
|
1
|
-
|
|
1
|
+
import { shiftClient } from "../../_shared/shiftCredentials.js";
|
|
2
|
+
export { enumSchema, pathSegment, STRICT_OBJECT, } from "../../_shared/shiftCloud.js";
|
|
3
|
+
/** The longest server-held wait /await accepts: waitSeconds is capped at 120. */
|
|
4
|
+
export const MAX_AWAIT_WAIT_MS = 120_000;
|
|
5
|
+
/**
|
|
6
|
+
* The target's deadline: the /await endpoint holds the request open for up
|
|
7
|
+
* to MAX_AWAIT_WAIT_MS, so the transport allows that wait plus 60 s for the
|
|
8
|
+
* exchange itself. Every other transcription route answers well within it.
|
|
9
|
+
*/
|
|
10
|
+
export const AWAIT_DEADLINE_MS = MAX_AWAIT_WAIT_MS + 60_000;
|
|
11
|
+
export const { credential: shiftTranscriptionCredential, request } = shiftClient("shiftTranscription", { timeoutMs: AWAIT_DEADLINE_MS });
|
|
2
12
|
export const TRANSCRIPTION_LANGUAGE = ["auto", "en", "he"];
|
|
3
13
|
export const TRANSCRIPT_FORMAT = ["txt", "srt", "vtt", "json"];
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import * as t from "typebox";
|
|
2
2
|
import { AUDIO_VIDEO_MEDIA_TYPES, putThroughGrant, requireMediaType, SIGNED_UPLOAD_MAX_BYTES, statUploadFile, } from "../../_shared/shiftUpload.js";
|
|
3
|
-
import { enumSchema, pathSegment, request,
|
|
3
|
+
import { enumSchema, pathSegment, request, STRICT_OBJECT, TRANSCRIPT_FORMAT, TRANSCRIPTION_LANGUAGE, } from "./shared.js";
|
|
4
4
|
/** Transcript previews returned into the sandbox are capped, not truncated silently. */
|
|
5
5
|
const MAX_TRANSCRIPT_BYTES = 2 * 1024 * 1024;
|
|
6
6
|
const Id = t.String({ minLength: 1, pattern: "\\S" });
|
|
@@ -48,7 +48,7 @@ export function registerTranscriptionActions(rl) {
|
|
|
48
48
|
sizeBytes,
|
|
49
49
|
}),
|
|
50
50
|
});
|
|
51
|
-
await putThroughGrant(created.upload, fields.path, contentType,
|
|
51
|
+
await putThroughGrant(created.upload, fields.path, contentType, "Media upload");
|
|
52
52
|
await request(ctx, `/v1/services/transcription/assets/${pathSegment(created.asset.id)}/complete`, { method: "POST" });
|
|
53
53
|
const job = await request(ctx, "/v1/services/transcription/jobs", {
|
|
54
54
|
method: "POST",
|
|
@@ -63,9 +63,9 @@ export function registerTranscriptionActions(rl) {
|
|
|
63
63
|
if (!fields.waitSeconds)
|
|
64
64
|
return job;
|
|
65
65
|
const timeoutMs = Math.min(Math.max(fields.waitSeconds, 1), 120) * 1000;
|
|
66
|
-
// The server holds the request open for up to timeoutMs
|
|
67
|
-
//
|
|
68
|
-
return request(ctx, `/v1/services/transcription/jobs/${pathSegment(job.id)}/await?timeoutMs=${timeoutMs}`, { method: "POST" }
|
|
66
|
+
// The server holds the request open for up to timeoutMs; the
|
|
67
|
+
// target's declared AWAIT_DEADLINE_MS covers that wait.
|
|
68
|
+
return request(ctx, `/v1/services/transcription/jobs/${pathSegment(job.id)}/await?timeoutMs=${timeoutMs}`, { method: "POST" });
|
|
69
69
|
},
|
|
70
70
|
});
|
|
71
71
|
rl.registerAction("transcription.job.list", {
|
|
@@ -2,6 +2,7 @@ import * as t from "typebox";
|
|
|
2
2
|
import { registerIssueViewActions } from "./issue-views.js";
|
|
3
3
|
import { registerIssueActions } from "./issues.js";
|
|
4
4
|
import { registerProjectActions } from "./projects.js";
|
|
5
|
+
import { shiftWorkCredential } from "./shared.js";
|
|
5
6
|
/**
|
|
6
7
|
* Shift Work — the work-tracking domain of the Shift cloud: Projects,
|
|
7
8
|
* Issues (with dependencies and comments), and saved Issue Views.
|
|
@@ -11,6 +12,7 @@ import { registerProjectActions } from "./projects.js";
|
|
|
11
12
|
export default function shiftWork(rl) {
|
|
12
13
|
rl.setName("shiftWork");
|
|
13
14
|
rl.setVersion("0.1.0");
|
|
15
|
+
rl.setCredential(shiftWorkCredential);
|
|
14
16
|
rl.setConnectionSchema(t.Object({
|
|
15
17
|
apiKey: t.String({
|
|
16
18
|
description: "Shift Labs API key",
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import * as t from "typebox";
|
|
2
|
-
import { cursorSchema, enumSchema, ISSUE_PRIORITY, ISSUE_STATUS, ISSUE_VIEW_GROUP, ISSUE_VIEW_LAYOUT, ISSUE_VIEW_SORT, ISSUE_VIEW_VISIBILITY, idSchema,
|
|
2
|
+
import { cursorSchema, enumSchema, ISSUE_PRIORITY, ISSUE_STATUS, ISSUE_VIEW_GROUP, ISSUE_VIEW_LAYOUT, ISSUE_VIEW_SORT, ISSUE_VIEW_VISIBILITY, idSchema, pathSegment, request, STRICT_OBJECT, STRICT_UPDATE_OBJECT, timestampSchema, } from "./shared.js";
|
|
3
3
|
const viewFields = {
|
|
4
4
|
name: t.String({
|
|
5
5
|
minLength: 1,
|
|
@@ -38,7 +38,7 @@ export function registerIssueViewActions(rl) {
|
|
|
38
38
|
description: "List the first page of personal and organization Issue Views.",
|
|
39
39
|
inputSchema: t.Object(listFields, STRICT_OBJECT),
|
|
40
40
|
async execute(input, ctx) {
|
|
41
|
-
const body = await request(ctx,
|
|
41
|
+
const body = await request(ctx, "/v1/issue-views", { query: input });
|
|
42
42
|
return body.views;
|
|
43
43
|
},
|
|
44
44
|
});
|
|
@@ -47,7 +47,7 @@ export function registerIssueViewActions(rl) {
|
|
|
47
47
|
description: "List a cursor-paginated page of Issue Views.",
|
|
48
48
|
inputSchema: t.Object(listFields, STRICT_OBJECT),
|
|
49
49
|
async execute(input, ctx) {
|
|
50
|
-
return request(ctx,
|
|
50
|
+
return request(ctx, "/v1/issue-views", { query: input });
|
|
51
51
|
},
|
|
52
52
|
});
|
|
53
53
|
rl.registerAction("issueView.get", {
|
|
@@ -69,7 +69,7 @@ export function registerIssueViewActions(rl) {
|
|
|
69
69
|
}, STRICT_OBJECT),
|
|
70
70
|
async execute(input, ctx) {
|
|
71
71
|
const { id, ...pagination } = input;
|
|
72
|
-
const body = await request(ctx,
|
|
72
|
+
const body = await request(ctx, `/v1/issue-views/${pathSegment(id)}/issues`, { query: pagination });
|
|
73
73
|
return body.issues;
|
|
74
74
|
},
|
|
75
75
|
});
|
|
@@ -83,7 +83,7 @@ export function registerIssueViewActions(rl) {
|
|
|
83
83
|
}, STRICT_OBJECT),
|
|
84
84
|
async execute(input, ctx) {
|
|
85
85
|
const { id, ...pagination } = input;
|
|
86
|
-
return request(ctx,
|
|
86
|
+
return request(ctx, `/v1/issue-views/${pathSegment(id)}/issues`, { query: pagination });
|
|
87
87
|
},
|
|
88
88
|
});
|
|
89
89
|
rl.registerAction("issueView.create", {
|