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,38 +1,26 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
url.searchParams.set(k, String(v));
|
|
8
|
-
}
|
|
9
|
-
}
|
|
10
|
-
const opts = {
|
|
1
|
+
import { credentialJson, pathSegment } from "../../_shared/credentials.js";
|
|
2
|
+
import { lemlistCredential } from "./credentials.js";
|
|
3
|
+
function apiRequest(ctx, method, path, body, qs) {
|
|
4
|
+
return credentialJson(ctx, lemlistCredential, "lemlist", {
|
|
5
|
+
target: "api",
|
|
6
|
+
path,
|
|
11
7
|
method,
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
method !== "DELETE")
|
|
21
|
-
opts.body = JSON.stringify(body);
|
|
22
|
-
const res = await fetch(url.toString(), opts);
|
|
23
|
-
if (!res.ok)
|
|
24
|
-
throw new Error(`Lemlist API error ${res.status}: ${await res.text()}`);
|
|
25
|
-
if (res.status === 204)
|
|
26
|
-
return { success: true };
|
|
27
|
-
return res.json();
|
|
8
|
+
query: qs,
|
|
9
|
+
...(body &&
|
|
10
|
+
Object.keys(body).length > 0 &&
|
|
11
|
+
method !== "GET" &&
|
|
12
|
+
method !== "DELETE"
|
|
13
|
+
? { json: body }
|
|
14
|
+
: {}),
|
|
15
|
+
});
|
|
28
16
|
}
|
|
29
|
-
async function paginate(
|
|
17
|
+
async function paginate(ctx, method, path, qs = {}) {
|
|
30
18
|
const all = [];
|
|
31
19
|
qs.limit = 100;
|
|
32
20
|
qs.offset = 0;
|
|
33
21
|
let data;
|
|
34
22
|
do {
|
|
35
|
-
data = (await apiRequest(
|
|
23
|
+
data = (await apiRequest(ctx, method, path, undefined, qs));
|
|
36
24
|
all.push(...data);
|
|
37
25
|
qs.offset += qs.limit;
|
|
38
26
|
} while (data.length > 0);
|
|
@@ -41,6 +29,7 @@ async function paginate(apiKey, method, endpoint, qs = {}) {
|
|
|
41
29
|
export default function lemlist(rl) {
|
|
42
30
|
rl.setName("lemlist");
|
|
43
31
|
rl.setVersion("0.1.0");
|
|
32
|
+
rl.setCredential(lemlistCredential);
|
|
44
33
|
rl.setConnectionSchema({
|
|
45
34
|
apiKey: {
|
|
46
35
|
type: "string",
|
|
@@ -49,7 +38,6 @@ export default function lemlist(rl) {
|
|
|
49
38
|
env: "LEMLIST_API_KEY",
|
|
50
39
|
},
|
|
51
40
|
});
|
|
52
|
-
const key = (ctx) => ctx.connection.config.apiKey;
|
|
53
41
|
// ── Activity ────────────────────────────────────────
|
|
54
42
|
rl.registerAction("activity.list", {
|
|
55
43
|
access: "read",
|
|
@@ -83,9 +71,9 @@ export default function lemlist(rl) {
|
|
|
83
71
|
qs.isFirst = p.isFirst;
|
|
84
72
|
if (p.limit) {
|
|
85
73
|
qs.limit = p.limit;
|
|
86
|
-
return apiRequest(
|
|
74
|
+
return apiRequest(ctx, "GET", "activities", undefined, qs);
|
|
87
75
|
}
|
|
88
|
-
return paginate(
|
|
76
|
+
return paginate(ctx, "GET", "activities", qs);
|
|
89
77
|
},
|
|
90
78
|
});
|
|
91
79
|
// ── Campaign ────────────────────────────────────────
|
|
@@ -98,10 +86,10 @@ export default function lemlist(rl) {
|
|
|
98
86
|
async execute(input, ctx) {
|
|
99
87
|
const p = (input ?? {});
|
|
100
88
|
if (p.limit)
|
|
101
|
-
return apiRequest(
|
|
89
|
+
return apiRequest(ctx, "GET", "campaigns", undefined, {
|
|
102
90
|
limit: p.limit,
|
|
103
91
|
});
|
|
104
|
-
return paginate(
|
|
92
|
+
return paginate(ctx, "GET", "campaigns");
|
|
105
93
|
},
|
|
106
94
|
});
|
|
107
95
|
rl.registerAction("campaign.getStats", {
|
|
@@ -127,7 +115,7 @@ export default function lemlist(rl) {
|
|
|
127
115
|
},
|
|
128
116
|
async execute(input, ctx) {
|
|
129
117
|
const { campaignId, startDate, endDate, timezone } = input;
|
|
130
|
-
return apiRequest(
|
|
118
|
+
return apiRequest(ctx, "GET", `campaigns/${pathSegment(campaignId)}/stats`, undefined, { startDate, endDate, timezone });
|
|
131
119
|
},
|
|
132
120
|
});
|
|
133
121
|
// ── Lead ────────────────────────────────────────────
|
|
@@ -165,7 +153,7 @@ export default function lemlist(rl) {
|
|
|
165
153
|
const qs = {};
|
|
166
154
|
if (deduplicate !== undefined)
|
|
167
155
|
qs.deduplicate = deduplicate;
|
|
168
|
-
return apiRequest(
|
|
156
|
+
return apiRequest(ctx, "POST", `campaigns/${pathSegment(campaignId)}/leads/${pathSegment(email)}`, body, Object.keys(qs).length > 0 ? qs : undefined);
|
|
169
157
|
},
|
|
170
158
|
});
|
|
171
159
|
rl.registerAction("lead.get", {
|
|
@@ -173,7 +161,7 @@ export default function lemlist(rl) {
|
|
|
173
161
|
description: "Get a lead by email",
|
|
174
162
|
inputSchema: { email: { type: "string", required: true } },
|
|
175
163
|
async execute(input, ctx) {
|
|
176
|
-
return apiRequest(
|
|
164
|
+
return apiRequest(ctx, "GET", `leads/${pathSegment(input.email)}`);
|
|
177
165
|
},
|
|
178
166
|
});
|
|
179
167
|
rl.registerAction("lead.delete", {
|
|
@@ -185,7 +173,7 @@ export default function lemlist(rl) {
|
|
|
185
173
|
},
|
|
186
174
|
async execute(input, ctx) {
|
|
187
175
|
const { campaignId, email } = input;
|
|
188
|
-
return apiRequest(
|
|
176
|
+
return apiRequest(ctx, "DELETE", `campaigns/${pathSegment(campaignId)}/leads/${pathSegment(email)}`, undefined, { action: "remove" });
|
|
189
177
|
},
|
|
190
178
|
});
|
|
191
179
|
rl.registerAction("lead.unsubscribe", {
|
|
@@ -197,7 +185,7 @@ export default function lemlist(rl) {
|
|
|
197
185
|
},
|
|
198
186
|
async execute(input, ctx) {
|
|
199
187
|
const { campaignId, email } = input;
|
|
200
|
-
return apiRequest(
|
|
188
|
+
return apiRequest(ctx, "DELETE", `campaigns/${pathSegment(campaignId)}/leads/${pathSegment(email)}`);
|
|
201
189
|
},
|
|
202
190
|
});
|
|
203
191
|
// ── Team ────────────────────────────────────────────
|
|
@@ -205,14 +193,14 @@ export default function lemlist(rl) {
|
|
|
205
193
|
access: "read",
|
|
206
194
|
description: "Get team information",
|
|
207
195
|
async execute(_input, ctx) {
|
|
208
|
-
return apiRequest(
|
|
196
|
+
return apiRequest(ctx, "GET", "team");
|
|
209
197
|
},
|
|
210
198
|
});
|
|
211
199
|
rl.registerAction("team.getCredits", {
|
|
212
200
|
access: "read",
|
|
213
201
|
description: "Get team credits",
|
|
214
202
|
async execute(_input, ctx) {
|
|
215
|
-
return apiRequest(
|
|
203
|
+
return apiRequest(ctx, "GET", "team/credits");
|
|
216
204
|
},
|
|
217
205
|
});
|
|
218
206
|
// ── Unsubscribe ─────────────────────────────────────
|
|
@@ -221,7 +209,7 @@ export default function lemlist(rl) {
|
|
|
221
209
|
description: "Add an email to the unsubscribe list",
|
|
222
210
|
inputSchema: { email: { type: "string", required: true } },
|
|
223
211
|
async execute(input, ctx) {
|
|
224
|
-
return apiRequest(
|
|
212
|
+
return apiRequest(ctx, "POST", `unsubscribes/${pathSegment(input.email)}`);
|
|
225
213
|
},
|
|
226
214
|
});
|
|
227
215
|
rl.registerAction("unsubscribe.delete", {
|
|
@@ -229,7 +217,7 @@ export default function lemlist(rl) {
|
|
|
229
217
|
description: "Remove an email from the unsubscribe list",
|
|
230
218
|
inputSchema: { email: { type: "string", required: true } },
|
|
231
219
|
async execute(input, ctx) {
|
|
232
|
-
return apiRequest(
|
|
220
|
+
return apiRequest(ctx, "DELETE", `unsubscribes/${pathSegment(input.email)}`);
|
|
233
221
|
},
|
|
234
222
|
});
|
|
235
223
|
rl.registerAction("unsubscribe.list", {
|
|
@@ -239,10 +227,10 @@ export default function lemlist(rl) {
|
|
|
239
227
|
async execute(input, ctx) {
|
|
240
228
|
const p = (input ?? {});
|
|
241
229
|
if (p.limit)
|
|
242
|
-
return apiRequest(
|
|
230
|
+
return apiRequest(ctx, "GET", "unsubscribes", undefined, {
|
|
243
231
|
limit: p.limit,
|
|
244
232
|
});
|
|
245
|
-
return paginate(
|
|
233
|
+
return paginate(ctx, "GET", "unsubscribes");
|
|
246
234
|
},
|
|
247
235
|
});
|
|
248
236
|
// ── Enrichment ──────────────────────────────────────
|
|
@@ -251,7 +239,7 @@ export default function lemlist(rl) {
|
|
|
251
239
|
description: "Get an enrichment result by ID",
|
|
252
240
|
inputSchema: { enrichId: { type: "string", required: true } },
|
|
253
241
|
async execute(input, ctx) {
|
|
254
|
-
return apiRequest(
|
|
242
|
+
return apiRequest(ctx, "GET", `enrich/${pathSegment(input.enrichId)}`);
|
|
255
243
|
},
|
|
256
244
|
});
|
|
257
245
|
rl.registerAction("enrich.lead", {
|
|
@@ -266,7 +254,7 @@ export default function lemlist(rl) {
|
|
|
266
254
|
},
|
|
267
255
|
async execute(input, ctx) {
|
|
268
256
|
const { leadId, findEmail, verifyEmail, linkedinEnrichment, findPhone } = input;
|
|
269
|
-
return apiRequest(
|
|
257
|
+
return apiRequest(ctx, "POST", `leads/${pathSegment(leadId)}/enrich/`, {}, {
|
|
270
258
|
findEmail,
|
|
271
259
|
verifyEmail,
|
|
272
260
|
linkedinEnrichment,
|
|
@@ -301,7 +289,7 @@ export default function lemlist(rl) {
|
|
|
301
289
|
if (v !== undefined && v !== null)
|
|
302
290
|
qs[k] = v;
|
|
303
291
|
}
|
|
304
|
-
return apiRequest(
|
|
292
|
+
return apiRequest(ctx, "POST", "enrich/", {}, qs);
|
|
305
293
|
},
|
|
306
294
|
});
|
|
307
295
|
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import * as t from "typebox";
|
|
2
|
-
import { ATTACHMENT_FIELDS, assertAttachmentInScope, assertIssueInScope, gql,
|
|
2
|
+
import { ATTACHMENT_FIELDS, assertAttachmentInScope, assertIssueInScope, gql, requireUnscoped, withScopedNote, } from "./shared.js";
|
|
3
3
|
export function registerAttachmentActions(rl) {
|
|
4
4
|
rl.registerAction("attachment.list", {
|
|
5
5
|
access: "read",
|
|
@@ -8,7 +8,7 @@ export function registerAttachmentActions(rl) {
|
|
|
8
8
|
async execute(input, ctx) {
|
|
9
9
|
requireUnscoped(ctx, "attachment.list");
|
|
10
10
|
const limit = input?.limit ?? 50;
|
|
11
|
-
const data = await gql(
|
|
11
|
+
const data = await gql(ctx, `query($first: Int) { attachments(first: $first) { nodes { ${ATTACHMENT_FIELDS} } pageInfo { hasNextPage endCursor } } }`, { first: limit });
|
|
12
12
|
return data.attachments;
|
|
13
13
|
},
|
|
14
14
|
});
|
|
@@ -19,7 +19,7 @@ export function registerAttachmentActions(rl) {
|
|
|
19
19
|
async execute(input, ctx) {
|
|
20
20
|
const id = input.id;
|
|
21
21
|
await assertAttachmentInScope(ctx, id);
|
|
22
|
-
const data = await gql(
|
|
22
|
+
const data = await gql(ctx, `query($id: String!) { attachment(id: $id) { ${ATTACHMENT_FIELDS} } }`, { id });
|
|
23
23
|
return data.attachment;
|
|
24
24
|
},
|
|
25
25
|
});
|
|
@@ -52,7 +52,7 @@ export function registerAttachmentActions(rl) {
|
|
|
52
52
|
async execute(input, ctx) {
|
|
53
53
|
const fields = input;
|
|
54
54
|
await assertIssueInScope(ctx, String(fields.issueId));
|
|
55
|
-
const data = await gql(
|
|
55
|
+
const data = await gql(ctx, `mutation($input: AttachmentCreateInput!) { attachmentCreate(input: $input) { success attachment { ${ATTACHMENT_FIELDS} } } }`, { input: fields });
|
|
56
56
|
return data.attachmentCreate?.attachment;
|
|
57
57
|
},
|
|
58
58
|
});
|
|
@@ -73,7 +73,7 @@ export function registerAttachmentActions(rl) {
|
|
|
73
73
|
async execute(input, ctx) {
|
|
74
74
|
const { id, ...fields } = input;
|
|
75
75
|
await assertAttachmentInScope(ctx, String(id));
|
|
76
|
-
const data = await gql(
|
|
76
|
+
const data = await gql(ctx, `mutation($id: String!, $input: AttachmentUpdateInput!) { attachmentUpdate(id: $id, input: $input) { success attachment { ${ATTACHMENT_FIELDS} } } }`, { id, input: fields });
|
|
77
77
|
return data.attachmentUpdate?.attachment;
|
|
78
78
|
},
|
|
79
79
|
});
|
|
@@ -93,7 +93,7 @@ export function registerAttachmentActions(rl) {
|
|
|
93
93
|
async execute(input, ctx) {
|
|
94
94
|
const { issueId, url, title, id } = input;
|
|
95
95
|
await assertIssueInScope(ctx, String(issueId));
|
|
96
|
-
const data = await gql(
|
|
96
|
+
const data = await gql(ctx, `mutation($issueId: String!, $url: String!, $title: String, $id: String) {
|
|
97
97
|
attachmentLinkURL(issueId: $issueId, url: $url, title: $title, id: $id) { success attachment { ${ATTACHMENT_FIELDS} } }
|
|
98
98
|
}`, { issueId, url, title: title ?? null, id: id ?? null });
|
|
99
99
|
return data.attachmentLinkURL?.attachment;
|
|
@@ -110,7 +110,7 @@ export function registerAttachmentActions(rl) {
|
|
|
110
110
|
async execute(input, ctx) {
|
|
111
111
|
const id = input.id;
|
|
112
112
|
await assertAttachmentInScope(ctx, id);
|
|
113
|
-
const data = await gql(
|
|
113
|
+
const data = await gql(ctx, `mutation($id: String!) { attachmentDelete(id: $id) { success } }`, { id });
|
|
114
114
|
return data.attachmentDelete;
|
|
115
115
|
},
|
|
116
116
|
});
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import * as t from "typebox";
|
|
2
|
-
import { assertCommentInScope, assertIssueInScope, COMMENT_FIELDS, gql,
|
|
2
|
+
import { assertCommentInScope, assertIssueInScope, COMMENT_FIELDS, gql, requireUnscoped, } from "./shared.js";
|
|
3
3
|
export function registerCommentActions(rl) {
|
|
4
4
|
rl.registerAction("comment.create", {
|
|
5
5
|
access: "write",
|
|
@@ -22,7 +22,7 @@ export function registerCommentActions(rl) {
|
|
|
22
22
|
async execute(input, ctx) {
|
|
23
23
|
const fields = input;
|
|
24
24
|
await assertIssueInScope(ctx, String(fields.issueId));
|
|
25
|
-
const data = await gql(
|
|
25
|
+
const data = await gql(ctx, `mutation($input: CommentCreateInput!) { commentCreate(input: $input) { success comment { ${COMMENT_FIELDS} } } }`, { input: fields });
|
|
26
26
|
return data.commentCreate?.comment;
|
|
27
27
|
},
|
|
28
28
|
});
|
|
@@ -39,11 +39,11 @@ export function registerCommentActions(rl) {
|
|
|
39
39
|
const { issueId, limit = 50 } = (input ?? {});
|
|
40
40
|
if (issueId) {
|
|
41
41
|
await assertIssueInScope(ctx, issueId);
|
|
42
|
-
const data = await gql(
|
|
42
|
+
const data = await gql(ctx, `query($id: String!, $first: Int) { issue(id: $id) { comments(first: $first) { nodes { ${COMMENT_FIELDS} } pageInfo { hasNextPage endCursor } } } }`, { id: issueId, first: limit });
|
|
43
43
|
return (data.issue?.comments ?? null);
|
|
44
44
|
}
|
|
45
45
|
requireUnscoped(ctx, "comment.list");
|
|
46
|
-
const data = await gql(
|
|
46
|
+
const data = await gql(ctx, `query($first: Int) { comments(first: $first) { nodes { ${COMMENT_FIELDS} } pageInfo { hasNextPage endCursor } } }`, { first: limit });
|
|
47
47
|
return data.comments;
|
|
48
48
|
},
|
|
49
49
|
});
|
|
@@ -54,7 +54,7 @@ export function registerCommentActions(rl) {
|
|
|
54
54
|
async execute(input, ctx) {
|
|
55
55
|
const id = input.id;
|
|
56
56
|
await assertCommentInScope(ctx, id);
|
|
57
|
-
const data = await gql(
|
|
57
|
+
const data = await gql(ctx, `query($id: String!) { comment(id: $id) { ${COMMENT_FIELDS} } }`, { id });
|
|
58
58
|
return data.comment;
|
|
59
59
|
},
|
|
60
60
|
});
|
|
@@ -71,7 +71,7 @@ export function registerCommentActions(rl) {
|
|
|
71
71
|
async execute(input, ctx) {
|
|
72
72
|
const { id, ...fields } = input;
|
|
73
73
|
await assertCommentInScope(ctx, String(id));
|
|
74
|
-
const data = await gql(
|
|
74
|
+
const data = await gql(ctx, `mutation($id: String!, $input: CommentUpdateInput!) { commentUpdate(id: $id, input: $input) { success comment { ${COMMENT_FIELDS} } } }`, { id, input: fields });
|
|
75
75
|
return data.commentUpdate?.comment;
|
|
76
76
|
},
|
|
77
77
|
});
|
|
@@ -82,7 +82,7 @@ export function registerCommentActions(rl) {
|
|
|
82
82
|
async execute(input, ctx) {
|
|
83
83
|
const id = input.id;
|
|
84
84
|
await assertCommentInScope(ctx, id);
|
|
85
|
-
const data = await gql(
|
|
85
|
+
const data = await gql(ctx, `mutation($id: String!) { commentDelete(id: $id) { success } }`, { id });
|
|
86
86
|
return data.commentDelete;
|
|
87
87
|
},
|
|
88
88
|
});
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { staticCredential } from "../../_shared/credentials.js";
|
|
2
|
+
/**
|
|
3
|
+
* A personal API key, sent verbatim in the Authorization header (no
|
|
4
|
+
* scheme prefix) to Linear's one GraphQL origin. Every action is a POST
|
|
5
|
+
* to the `graphql` path beneath it.
|
|
6
|
+
*/
|
|
7
|
+
export const linearCredential = staticCredential({
|
|
8
|
+
id: "linear",
|
|
9
|
+
auth: { kind: "apiKey", header: "Authorization" },
|
|
10
|
+
local: { secret: "apiKey" },
|
|
11
|
+
targets: {
|
|
12
|
+
gql: {
|
|
13
|
+
baseUrl: "https://api.linear.app/",
|
|
14
|
+
methods: ["POST"],
|
|
15
|
+
},
|
|
16
|
+
},
|
|
17
|
+
});
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import * as t from "typebox";
|
|
2
|
-
import { bindGetAction, bindListAction, CYCLE_FIELDS, gql,
|
|
2
|
+
import { bindGetAction, bindListAction, CYCLE_FIELDS, gql, requireUnscoped, withScopedNote, } from "./shared.js";
|
|
3
3
|
export function registerCycleActions(rl) {
|
|
4
4
|
const listAction = bindListAction(rl);
|
|
5
5
|
const getAction = bindGetAction(rl);
|
|
@@ -27,7 +27,7 @@ export function registerCycleActions(rl) {
|
|
|
27
27
|
}),
|
|
28
28
|
async execute(input, ctx) {
|
|
29
29
|
requireUnscoped(ctx, "cycles.*");
|
|
30
|
-
const data = await gql(
|
|
30
|
+
const data = await gql(ctx, `mutation($input: CycleCreateInput!) { cycleCreate(input: $input) { success cycle { ${CYCLE_FIELDS} } } }`, { input: input });
|
|
31
31
|
return data.cycleCreate?.cycle;
|
|
32
32
|
},
|
|
33
33
|
});
|
|
@@ -51,7 +51,7 @@ export function registerCycleActions(rl) {
|
|
|
51
51
|
async execute(input, ctx) {
|
|
52
52
|
requireUnscoped(ctx, "cycles.*");
|
|
53
53
|
const { id, ...fields } = input;
|
|
54
|
-
const data = await gql(
|
|
54
|
+
const data = await gql(ctx, `mutation($id: String!, $input: CycleUpdateInput!) { cycleUpdate(id: $id, input: $input) { success cycle { ${CYCLE_FIELDS} } } }`, { id, input: fields });
|
|
55
55
|
return data.cycleUpdate?.cycle;
|
|
56
56
|
},
|
|
57
57
|
});
|
|
@@ -67,7 +67,7 @@ export function registerCycleActions(rl) {
|
|
|
67
67
|
async execute(input, ctx) {
|
|
68
68
|
requireUnscoped(ctx, "cycles.*");
|
|
69
69
|
const { id } = input;
|
|
70
|
-
const data = await gql(
|
|
70
|
+
const data = await gql(ctx, `mutation($id: String!) { cycleArchive(id: $id) { success } }`, { id });
|
|
71
71
|
return data.cycleArchive;
|
|
72
72
|
},
|
|
73
73
|
});
|
|
@@ -90,7 +90,7 @@ export function registerCycleActions(rl) {
|
|
|
90
90
|
async execute(input, ctx) {
|
|
91
91
|
requireUnscoped(ctx, "cycles.*");
|
|
92
92
|
const { teamId } = input;
|
|
93
|
-
const data = await gql(
|
|
93
|
+
const data = await gql(ctx, `mutation($id: String!) { teamCyclesDelete(id: $id) { success } }`, { id: teamId });
|
|
94
94
|
return data.teamCyclesDelete;
|
|
95
95
|
},
|
|
96
96
|
});
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import * as t from "typebox";
|
|
2
2
|
import { registerAttachmentActions } from "./attachments.js";
|
|
3
3
|
import { registerCommentActions } from "./comments.js";
|
|
4
|
+
import { linearCredential } from "./credentials.js";
|
|
4
5
|
import { registerCycleActions } from "./cycles.js";
|
|
5
6
|
import { registerInitiativeActions } from "./initiatives.js";
|
|
6
7
|
import { registerIssueActions } from "./issues.js";
|
|
@@ -15,6 +16,7 @@ import { registerWebhookActions } from "./webhooks.js";
|
|
|
15
16
|
export default function linear(rl) {
|
|
16
17
|
rl.setName("linear");
|
|
17
18
|
rl.setVersion("0.6.0");
|
|
19
|
+
rl.setCredential(linearCredential);
|
|
18
20
|
rl.setConnectionSchema(t.Object({
|
|
19
21
|
apiKey: t.String({
|
|
20
22
|
description: "Linear API key (https://linear.app/settings/account/security)",
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import * as t from "typebox";
|
|
2
|
-
import { bindGetAction, bindListAction, gql, INITIATIVE_FIELDS,
|
|
2
|
+
import { bindGetAction, bindListAction, gql, INITIATIVE_FIELDS, requireUnscoped, withScopedNote, } from "./shared.js";
|
|
3
3
|
export function registerInitiativeActions(rl) {
|
|
4
4
|
const listAction = bindListAction(rl);
|
|
5
5
|
const getAction = bindGetAction(rl);
|
|
@@ -35,7 +35,7 @@ export function registerInitiativeActions(rl) {
|
|
|
35
35
|
}),
|
|
36
36
|
async execute(input, ctx) {
|
|
37
37
|
requireUnscoped(ctx, "initiatives.*");
|
|
38
|
-
const data = await gql(
|
|
38
|
+
const data = await gql(ctx, `mutation($input: InitiativeCreateInput!) { initiativeCreate(input: $input) { success initiative { ${INITIATIVE_FIELDS} } } }`, { input: input });
|
|
39
39
|
return data.initiativeCreate?.initiative;
|
|
40
40
|
},
|
|
41
41
|
});
|
|
@@ -73,7 +73,7 @@ export function registerInitiativeActions(rl) {
|
|
|
73
73
|
async execute(input, ctx) {
|
|
74
74
|
requireUnscoped(ctx, "initiatives.*");
|
|
75
75
|
const { id, ...fields } = input;
|
|
76
|
-
const data = await gql(
|
|
76
|
+
const data = await gql(ctx, `mutation($id: String!, $input: InitiativeUpdateInput!) { initiativeUpdate(id: $id, input: $input) { success initiative { ${INITIATIVE_FIELDS} } } }`, { id, input: fields });
|
|
77
77
|
return data.initiativeUpdate?.initiative;
|
|
78
78
|
},
|
|
79
79
|
});
|
|
@@ -87,7 +87,7 @@ export function registerInitiativeActions(rl) {
|
|
|
87
87
|
}),
|
|
88
88
|
async execute(input, ctx) {
|
|
89
89
|
requireUnscoped(ctx, "initiatives.*");
|
|
90
|
-
const data = await gql(
|
|
90
|
+
const data = await gql(ctx, `mutation($id: String!) { initiativeDelete(id: $id) { success } }`, { id: input.id });
|
|
91
91
|
return data.initiativeDelete;
|
|
92
92
|
},
|
|
93
93
|
});
|
|
@@ -108,7 +108,7 @@ export function registerInitiativeActions(rl) {
|
|
|
108
108
|
}),
|
|
109
109
|
async execute(input, ctx) {
|
|
110
110
|
requireUnscoped(ctx, "initiatives.*");
|
|
111
|
-
const data = await gql(
|
|
111
|
+
const data = await gql(ctx, `mutation($input: InitiativeToProjectCreateInput!) { initiativeToProjectCreate(input: $input) { success initiativeToProject { id initiative { id name projects { nodes { id name } } } project { id name } } } }`, { input: input });
|
|
112
112
|
return data.initiativeToProjectCreate;
|
|
113
113
|
},
|
|
114
114
|
});
|
|
@@ -122,7 +122,7 @@ export function registerInitiativeActions(rl) {
|
|
|
122
122
|
}),
|
|
123
123
|
async execute(input, ctx) {
|
|
124
124
|
requireUnscoped(ctx, "initiatives.*");
|
|
125
|
-
const data = await gql(
|
|
125
|
+
const data = await gql(ctx, `mutation($id: String!) { initiativeToProjectDelete(id: $id) { success } }`, { id: input.id });
|
|
126
126
|
return data.initiativeToProjectDelete;
|
|
127
127
|
},
|
|
128
128
|
});
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import * as t from "typebox";
|
|
2
|
-
import { assertIssueInScope, buildConnArgs, ensureScopeLabelsOnCreateOrReplace, forbidScopeLabelRemoval, gql, ISSUE_FIELDS, ISSUE_LITE, issueHasScope,
|
|
2
|
+
import { assertIssueInScope, buildConnArgs, ensureScopeLabelsOnCreateOrReplace, forbidScopeLabelRemoval, gql, ISSUE_FIELDS, ISSUE_LITE, issueHasScope, LIST_INPUT_SCHEMA, mergeIssueScopeFilter, } from "./shared.js";
|
|
3
3
|
/**
|
|
4
4
|
* Linear's IssueUpdateInput accepts explicit null for clearable relations
|
|
5
5
|
* (e.g. cycleId: null removes the issue from its cycle). Omitted = leave
|
|
@@ -69,7 +69,7 @@ export function registerIssueActions(rl) {
|
|
|
69
69
|
async execute(input, ctx) {
|
|
70
70
|
const fields = { ...input };
|
|
71
71
|
fields.labelIds = await ensureScopeLabelsOnCreateOrReplace(ctx, fields.labelIds);
|
|
72
|
-
const data = await gql(
|
|
72
|
+
const data = await gql(ctx, `mutation($input: IssueCreateInput!) { issueCreate(input: $input) { success issue { ${ISSUE_FIELDS} } } }`, { input: fields });
|
|
73
73
|
return data.issueCreate?.issue;
|
|
74
74
|
},
|
|
75
75
|
});
|
|
@@ -82,7 +82,7 @@ export function registerIssueActions(rl) {
|
|
|
82
82
|
}),
|
|
83
83
|
}),
|
|
84
84
|
async execute(input, ctx) {
|
|
85
|
-
const data = await gql(
|
|
85
|
+
const data = await gql(ctx, `query($id: String!) { issue(id: $id) { ${ISSUE_FIELDS} } }`, { id: input.issueId });
|
|
86
86
|
const issue = data.issue;
|
|
87
87
|
if (!(await issueHasScope(ctx, issue)))
|
|
88
88
|
throw new Error("Linear issue is not available to this scoped connection");
|
|
@@ -107,7 +107,7 @@ export function registerIssueActions(rl) {
|
|
|
107
107
|
merged.assignee = { id: { eq: opts.assigneeId } };
|
|
108
108
|
const filter = await mergeIssueScopeFilter(ctx, Object.keys(merged).length > 0 ? merged : undefined);
|
|
109
109
|
const { argsDecl, argsCall, vars } = buildConnArgs({ ...opts, filter }, "IssueFilter");
|
|
110
|
-
const data = await gql(
|
|
110
|
+
const data = await gql(ctx, `query${argsDecl} { issues${argsCall} { nodes { ${ISSUE_LITE} } pageInfo { hasNextPage endCursor } } }`, vars);
|
|
111
111
|
const conn = data.issues;
|
|
112
112
|
return { nodes: conn.nodes, pageInfo: conn.pageInfo };
|
|
113
113
|
},
|
|
@@ -172,7 +172,7 @@ export function registerIssueActions(rl) {
|
|
|
172
172
|
await forbidScopeLabelRemoval(ctx, fields.removedLabelIds);
|
|
173
173
|
if (fields.labelIds)
|
|
174
174
|
fields.labelIds = await ensureScopeLabelsOnCreateOrReplace(ctx, fields.labelIds);
|
|
175
|
-
const data = await gql(
|
|
175
|
+
const data = await gql(ctx, `mutation($id: String!, $input: IssueUpdateInput!) { issueUpdate(id: $id, input: $input) { success issue { ${ISSUE_FIELDS} } } }`, { id: issueId, input: fields });
|
|
176
176
|
return data.issueUpdate?.issue;
|
|
177
177
|
},
|
|
178
178
|
});
|
|
@@ -186,7 +186,7 @@ export function registerIssueActions(rl) {
|
|
|
186
186
|
async execute(input, ctx) {
|
|
187
187
|
const { issueId, permanentlyDelete } = input;
|
|
188
188
|
await assertIssueInScope(ctx, issueId);
|
|
189
|
-
const data = await gql(
|
|
189
|
+
const data = await gql(ctx, `mutation($id: String!, $perm: Boolean) { issueDelete(id: $id, permanentlyDelete: $perm) { success } }`, { id: issueId, perm: permanentlyDelete ?? null });
|
|
190
190
|
return data.issueDelete;
|
|
191
191
|
},
|
|
192
192
|
});
|
|
@@ -200,7 +200,7 @@ export function registerIssueActions(rl) {
|
|
|
200
200
|
async execute(input, ctx) {
|
|
201
201
|
const { issueId, trash } = input;
|
|
202
202
|
await assertIssueInScope(ctx, issueId);
|
|
203
|
-
const data = await gql(
|
|
203
|
+
const data = await gql(ctx, `mutation($id: String!, $trash: Boolean) { issueArchive(id: $id, trash: $trash) { success } }`, { id: issueId, trash: trash ?? null });
|
|
204
204
|
return data.issueArchive;
|
|
205
205
|
},
|
|
206
206
|
});
|
|
@@ -211,7 +211,7 @@ export function registerIssueActions(rl) {
|
|
|
211
211
|
async execute(input, ctx) {
|
|
212
212
|
const issueId = input.issueId;
|
|
213
213
|
await assertIssueInScope(ctx, issueId);
|
|
214
|
-
const data = await gql(
|
|
214
|
+
const data = await gql(ctx, `mutation($id: String!) { issueUnarchive(id: $id) { success } }`, { id: issueId });
|
|
215
215
|
return data.issueUnarchive;
|
|
216
216
|
},
|
|
217
217
|
});
|
|
@@ -237,7 +237,7 @@ export function registerIssueActions(rl) {
|
|
|
237
237
|
}),
|
|
238
238
|
async execute(input, ctx) {
|
|
239
239
|
const opts = input;
|
|
240
|
-
const data = await gql(
|
|
240
|
+
const data = await gql(ctx, `query($term: String!, $first: Int, $filter: IssueFilter, $includeComments: Boolean, $includeArchived: Boolean, $teamId: String, $orderBy: PaginationOrderBy, $after: String, $before: String) {
|
|
241
241
|
searchIssues(term: $term, first: $first, filter: $filter, includeComments: $includeComments, includeArchived: $includeArchived, teamId: $teamId, orderBy: $orderBy, after: $after, before: $before) {
|
|
242
242
|
nodes { ${ISSUE_LITE} }
|
|
243
243
|
totalCount
|
|
@@ -267,7 +267,7 @@ export function registerIssueActions(rl) {
|
|
|
267
267
|
async execute(input, ctx) {
|
|
268
268
|
const { issueId, labelId } = input;
|
|
269
269
|
await assertIssueInScope(ctx, issueId);
|
|
270
|
-
const data = await gql(
|
|
270
|
+
const data = await gql(ctx, `mutation($id: String!, $labelId: String!) { issueAddLabel(id: $id, labelId: $labelId) { success } }`, { id: issueId, labelId });
|
|
271
271
|
return data.issueAddLabel;
|
|
272
272
|
},
|
|
273
273
|
});
|
|
@@ -282,7 +282,7 @@ export function registerIssueActions(rl) {
|
|
|
282
282
|
const { issueId, labelId } = input;
|
|
283
283
|
await assertIssueInScope(ctx, issueId);
|
|
284
284
|
await forbidScopeLabelRemoval(ctx, labelId);
|
|
285
|
-
const data = await gql(
|
|
285
|
+
const data = await gql(ctx, `mutation($id: String!, $labelId: String!) { issueRemoveLabel(id: $id, labelId: $labelId) { success } }`, { id: issueId, labelId });
|
|
286
286
|
return data.issueRemoveLabel;
|
|
287
287
|
},
|
|
288
288
|
});
|
|
@@ -297,7 +297,7 @@ export function registerIssueActions(rl) {
|
|
|
297
297
|
async execute(input, ctx) {
|
|
298
298
|
const { issueId, userId, userEmail } = input;
|
|
299
299
|
await assertIssueInScope(ctx, String(issueId));
|
|
300
|
-
const data = await gql(
|
|
300
|
+
const data = await gql(ctx, `mutation($id: String!, $userId: String, $userEmail: String) {
|
|
301
301
|
issueSubscribe(id: $id, userId: $userId, userEmail: $userEmail) { success }
|
|
302
302
|
}`, { id: issueId, userId: userId ?? null, userEmail: userEmail ?? null });
|
|
303
303
|
return data.issueSubscribe;
|
|
@@ -314,7 +314,7 @@ export function registerIssueActions(rl) {
|
|
|
314
314
|
async execute(input, ctx) {
|
|
315
315
|
const { issueId, userId, userEmail } = input;
|
|
316
316
|
await assertIssueInScope(ctx, String(issueId));
|
|
317
|
-
const data = await gql(
|
|
317
|
+
const data = await gql(ctx, `mutation($id: String!, $userId: String, $userEmail: String) {
|
|
318
318
|
issueUnsubscribe(id: $id, userId: $userId, userEmail: $userEmail) { success }
|
|
319
319
|
}`, { id: issueId, userId: userId ?? null, userEmail: userEmail ?? null });
|
|
320
320
|
return data.issueUnsubscribe;
|
|
@@ -338,7 +338,7 @@ export function registerIssueActions(rl) {
|
|
|
338
338
|
const fields = input;
|
|
339
339
|
await assertIssueInScope(ctx, String(fields.issueId));
|
|
340
340
|
await assertIssueInScope(ctx, String(fields.relatedIssueId));
|
|
341
|
-
const data = await gql(
|
|
341
|
+
const data = await gql(ctx, `mutation($input: IssueRelationCreateInput!) { issueRelationCreate(input: $input) { success issueRelation { id type } } }`, { input: fields });
|
|
342
342
|
return data.issueRelationCreate;
|
|
343
343
|
},
|
|
344
344
|
});
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import * as t from "typebox";
|
|
2
|
-
import { bindGetAction, bindListAction, gql,
|
|
2
|
+
import { bindGetAction, bindListAction, gql, LABEL_FIELDS, requireUnscoped, withScopedNote, } from "./shared.js";
|
|
3
3
|
export function registerLabelActions(rl) {
|
|
4
4
|
const listAction = bindListAction(rl);
|
|
5
5
|
const getAction = bindGetAction(rl);
|
|
@@ -32,7 +32,7 @@ export function registerLabelActions(rl) {
|
|
|
32
32
|
async execute(input, ctx) {
|
|
33
33
|
requireUnscoped(ctx, "label.create");
|
|
34
34
|
const { replaceTeamLabels, ...fields } = input;
|
|
35
|
-
const data = await gql(
|
|
35
|
+
const data = await gql(ctx, `mutation($input: IssueLabelCreateInput!, $replaceTeamLabels: Boolean) { issueLabelCreate(input: $input, replaceTeamLabels: $replaceTeamLabels) { success issueLabel { ${LABEL_FIELDS} } } }`, { input: fields, replaceTeamLabels: replaceTeamLabels ?? null });
|
|
36
36
|
return data.issueLabelCreate?.issueLabel;
|
|
37
37
|
},
|
|
38
38
|
});
|
|
@@ -56,7 +56,7 @@ export function registerLabelActions(rl) {
|
|
|
56
56
|
async execute(input, ctx) {
|
|
57
57
|
requireUnscoped(ctx, "label.update");
|
|
58
58
|
const { id, replaceTeamLabels, ...fields } = input;
|
|
59
|
-
const data = await gql(
|
|
59
|
+
const data = await gql(ctx, `mutation($id: String!, $input: IssueLabelUpdateInput!, $replaceTeamLabels: Boolean) { issueLabelUpdate(id: $id, input: $input, replaceTeamLabels: $replaceTeamLabels) { success issueLabel { ${LABEL_FIELDS} } } }`, { id, input: fields, replaceTeamLabels: replaceTeamLabels ?? null });
|
|
60
60
|
return data.issueLabelUpdate?.issueLabel;
|
|
61
61
|
},
|
|
62
62
|
});
|
|
@@ -68,7 +68,7 @@ export function registerLabelActions(rl) {
|
|
|
68
68
|
}),
|
|
69
69
|
async execute(input, ctx) {
|
|
70
70
|
requireUnscoped(ctx, "label.delete");
|
|
71
|
-
const data = await gql(
|
|
71
|
+
const data = await gql(ctx, `mutation($id: String!) { issueLabelDelete(id: $id) { success } }`, { id: input.id });
|
|
72
72
|
return data.issueLabelDelete;
|
|
73
73
|
},
|
|
74
74
|
});
|
|
@@ -80,7 +80,7 @@ export function registerLabelActions(rl) {
|
|
|
80
80
|
}),
|
|
81
81
|
async execute(input, ctx) {
|
|
82
82
|
requireUnscoped(ctx, "label.retire");
|
|
83
|
-
const data = await gql(
|
|
83
|
+
const data = await gql(ctx, `mutation($id: String!) { issueLabelRetire(id: $id) { success issueLabel { ${LABEL_FIELDS} } } }`, { id: input.id });
|
|
84
84
|
return data.issueLabelRetire?.issueLabel;
|
|
85
85
|
},
|
|
86
86
|
});
|
|
@@ -92,7 +92,7 @@ export function registerLabelActions(rl) {
|
|
|
92
92
|
}),
|
|
93
93
|
async execute(input, ctx) {
|
|
94
94
|
requireUnscoped(ctx, "label.restore");
|
|
95
|
-
const data = await gql(
|
|
95
|
+
const data = await gql(ctx, `mutation($id: String!) { issueLabelRestore(id: $id) { success issueLabel { ${LABEL_FIELDS} } } }`, { id: input.id });
|
|
96
96
|
return data.issueLabelRestore?.issueLabel;
|
|
97
97
|
},
|
|
98
98
|
});
|