@mastra/slack 0.1.0 → 1.0.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.
@@ -0,0 +1 @@
1
+ {"version":3,"file":"slack.cjs.development.js","sources":["../src/assets/slack.svg","../src/schemas.ts","../src/apis/create-new-channel.ts","../src/apis/invite-to-channel.ts","../src/apis/send-message-to-channel.ts","../src/client.ts","../src/constants.ts","../src/index.ts"],"sourcesContent":["var img = \"data:image/svg+xml,%3csvg enable-background='new 0 0 2447.6 2452.5' viewBox='0 0 2447.6 2452.5' xmlns='http://www.w3.org/2000/svg'%3e%3cg clip-rule='evenodd' fill-rule='evenodd'%3e%3cpath d='m897.4 0c-135.3.1-244.8 109.9-244.7 245.2-.1 135.3 109.5 245.1 244.8 245.2h244.8v-245.1c.1-135.3-109.5-245.1-244.9-245.3.1 0 .1 0 0 0m0 654h-652.6c-135.3.1-244.9 109.9-244.8 245.2-.2 135.3 109.4 245.1 244.7 245.3h652.7c135.3-.1 244.9-109.9 244.8-245.2.1-135.4-109.5-245.2-244.8-245.3z' fill='%2336c5f0'/%3e%3cpath d='m2447.6 899.2c.1-135.3-109.5-245.1-244.8-245.2-135.3.1-244.9 109.9-244.8 245.2v245.3h244.8c135.3-.1 244.9-109.9 244.8-245.3zm-652.7 0v-654c.1-135.2-109.4-245-244.7-245.2-135.3.1-244.9 109.9-244.8 245.2v654c-.2 135.3 109.4 245.1 244.7 245.3 135.3-.1 244.9-109.9 244.8-245.3z' fill='%232eb67d'/%3e%3cpath d='m1550.1 2452.5c135.3-.1 244.9-109.9 244.8-245.2.1-135.3-109.5-245.1-244.8-245.2h-244.8v245.2c-.1 135.2 109.5 245 244.8 245.2zm0-654.1h652.7c135.3-.1 244.9-109.9 244.8-245.2.2-135.3-109.4-245.1-244.7-245.3h-652.7c-135.3.1-244.9 109.9-244.8 245.2-.1 135.4 109.4 245.2 244.7 245.3z' fill='%23ecb22e'/%3e%3cpath d='m0 1553.2c-.1 135.3 109.5 245.1 244.8 245.2 135.3-.1 244.9-109.9 244.8-245.2v-245.2h-244.8c-135.3.1-244.9 109.9-244.8 245.2zm652.7 0v654c-.2 135.3 109.4 245.1 244.7 245.3 135.3-.1 244.9-109.9 244.8-245.2v-653.9c.2-135.3-109.4-245.1-244.7-245.3-135.4 0-244.9 109.8-244.8 245.1 0 0 0 .1 0 0' fill='%23e01e5a'/%3e%3c/g%3e%3c/svg%3e\";\n export default img;","import { IntegrationFieldTypeEnum } from '@mastra/core';\nimport { z } from 'zod';\n\nexport const SEND_MESSAGE_TO_CHANNEL_SCHEMA = z.object({\n channelId: z.string().trim().min(1, 'Required'),\n message: z.string().describe(`type::${IntegrationFieldTypeEnum.LONG_TEXT}`),\n});\n\nexport const CREATE_NEW_CHANNEL_SCHEMA = z.object({\n channelName: z.string().trim().min(1, 'Required'),\n isPrivate: z.enum(['true', 'false']),\n});\n\nexport const CREATE_NEW_CHANNEL_OUTPUT_SCHEMA = z.object({\n channelId: z.string().nullable(),\n});\n\nexport const INVITE_TO_CHANNEL_SCHEMA = z.object({\n channelId: z.string().trim().min(1, 'Required'),\n users: z.array(z.string()),\n});\n","// @ts-ignore\n// import slackIcon from '../assets/slack.svg';\nimport { DataLayer, IntegrationApi } from '@mastra/core';\nimport { z } from 'zod';\n\n// @ts-ignore\nimport slackIcon from '../assets/slack.svg';\nimport { CREATE_NEW_CHANNEL_SCHEMA, CREATE_NEW_CHANNEL_OUTPUT_SCHEMA } from '../schemas';\nimport { MakeClient } from '../types';\n\nexport const CREATE_NEW_CHANNEL = ({\n name,\n makeClient,\n}: {\n name: string;\n dataAccess: DataLayer;\n makeClient: MakeClient;\n}): IntegrationApi<z.infer<typeof CREATE_NEW_CHANNEL_SCHEMA>, z.infer<typeof CREATE_NEW_CHANNEL_OUTPUT_SCHEMA>> => ({\n integrationName: name,\n executor: async ({ data, ctx: { connectionId } }) => {\n const client = await makeClient({ connectionId });\n\n const { channelName, isPrivate } = data;\n\n const createdChannel = await client.createChannel({\n name: channelName?.replaceAll(' ', '-').toLowerCase(),\n isPrivate: isPrivate === 'true' ? true : false,\n });\n\n if (createdChannel?.error) {\n throw new Error('Error creating channel');\n }\n\n const channelId = createdChannel?.channel?.id!;\n\n return {\n channelId,\n };\n },\n icon: {\n alt: 'Slack Icon',\n icon: slackIcon,\n },\n type: 'CREATE_NEW_CHANNEL',\n schema: CREATE_NEW_CHANNEL_SCHEMA,\n description: 'Create a new channel',\n label: 'Create New Channel',\n outputSchema: CREATE_NEW_CHANNEL_OUTPUT_SCHEMA,\n});\n","import { DataLayer, IntegrationApi } from '@mastra/core';\nimport { z } from 'zod';\n\n//@ts-ignore\nimport slackIcon from '../assets/slack.svg';\nimport { INVITE_TO_CHANNEL_SCHEMA } from '../schemas';\nimport { MakeClient } from '../types';\n\nexport const INVITE_TO_CHANNEL = ({\n name,\n makeClient,\n}: {\n name: string;\n dataAccess: DataLayer;\n makeClient: MakeClient;\n}): IntegrationApi<z.infer<typeof INVITE_TO_CHANNEL_SCHEMA>> => ({\n integrationName: name,\n executor: async ({ data, ctx: { connectionId } }) => {\n const client = await makeClient({ connectionId });\n\n const { channelId, users } = data;\n\n if (!users?.length) return { success: false, message: 'No users to invite' };\n\n await client.invite({ channelId, users });\n return { success: true, message: 'Users invited' };\n },\n type: 'INVITE_TO_CHANNEL',\n description: 'Invite users to a channel',\n label: 'Invite to Channel',\n schema: INVITE_TO_CHANNEL_SCHEMA,\n icon: {\n icon: slackIcon,\n alt: 'Slack Icon',\n },\n async getSchemaOptions({ ctx }) {\n const usersSet = new Set<any>();\n\n const client = await makeClient({ connectionId: ctx.connectionId });\n\n const users = await client.getActiveUsers();\n const channels = await client.getAllChannels();\n\n users?.forEach(user => {\n usersSet.add(user);\n });\n\n const schemaOptions = Array.from(usersSet).map(user => {\n return {\n label: user.name,\n value: user.id,\n };\n });\n\n const channelOptions = channels?.map(channel => {\n return {\n label: channel.name ?? '',\n value: channel.id ?? '',\n };\n });\n\n return {\n users: { options: schemaOptions },\n channelId: { options: channelOptions ?? [] },\n };\n },\n});\n","// @ts-ignore\n// import slackIcon from '../assets/slack.svg';\nimport { DataLayer, IntegrationApi } from '@mastra/core';\nimport { z } from 'zod';\n\n// @ts-ignore\nimport slackIcon from '../assets/slack.svg';\nimport { SEND_MESSAGE_TO_CHANNEL_SCHEMA } from '../schemas';\nimport { MakeClient } from '../types';\n\nexport const SEND_MESSAGE_TO_CHANNEL = ({\n name,\n dataAccess,\n makeClient,\n}: {\n name: string;\n dataAccess: DataLayer;\n makeClient: MakeClient;\n}): IntegrationApi<z.infer<typeof SEND_MESSAGE_TO_CHANNEL_SCHEMA>> => ({\n integrationName: name,\n executor: async ({ data, ctx: { connectionId } }) => {\n const client = await makeClient({ connectionId });\n\n const { channelId, message } = data;\n\n try {\n await client.joinChannel({ channelId });\n } catch (e) {\n console.log(e);\n // fail silently if the channel is already joined\n }\n\n await client.sendMessage({ channelId, message });\n\n return { success: true, message: 'Message sent' };\n },\n type: 'SEND_MESSAGE_TO_CHANNEL',\n schema: SEND_MESSAGE_TO_CHANNEL_SCHEMA,\n description: 'Send a message to a channel',\n icon: {\n icon: slackIcon,\n alt: 'Slack Icon',\n },\n async getSchemaOptions({ ctx }) {\n const channelsSet = new Set<any>();\n const client = await makeClient({ connectionId: ctx.connectionId });\n\n const channels = await client.getAllChannels();\n\n channels?.forEach(channel => {\n channelsSet.add(channel);\n });\n\n const schemaOptions = Array.from(channelsSet).map(channel => {\n return {\n label: `# ${channel.name}`,\n value: channel.id,\n };\n });\n\n return {\n channelId: { options: schemaOptions },\n };\n },\n label: 'Send Message to Channel',\n});\n","import { WebClient } from '@slack/web-api';\n\nexport class SlackClient {\n // @ts-ignore\n private token: string;\n private client: WebClient;\n\n constructor({ token }: { token: string }) {\n this.token = token;\n this.client = new WebClient(token);\n }\n\n async getAllChannels() {\n const response = await this.client.conversations.list({\n types: 'private_channel,public_channel',\n limit: 999,\n });\n return response.channels?.filter(({ is_archived }) => !is_archived);\n }\n\n async channelByName(channelName: string) {\n const channels = await this.getAllChannels();\n\n return channels?.find(({ name }) => {\n return name === channelName;\n });\n }\n\n async getActiveUsers() {\n const { members } = await this.client.users.list({});\n\n const activeMembers = members?.filter(({ deleted, is_bot }) => !deleted && !is_bot);\n\n return activeMembers;\n }\n\n async userIdsByNames(names: string[]) {\n const users = await this.getActiveUsers();\n\n const peopleIds = users\n ?.filter(({ name }) => {\n if (name) {\n const nameMatch = names.find(n => {\n return n.toLowerCase().includes(name.toLowerCase()) || name.toLowerCase().includes(n.toLowerCase());\n });\n return !!nameMatch;\n }\n return false;\n })\n ?.map(({ id }) => id);\n\n return peopleIds;\n }\n\n async sendMessage({ channelId, message }: { channelId: string; message: string }) {\n return await this.client.chat.postMessage({\n channel: channelId,\n text: message,\n });\n }\n\n async invite({ channelId, users }: { channelId: string; users: string[] }) {\n return await this.client.conversations.invite({\n channel: channelId,\n users: users.join(','),\n });\n }\n\n async createChannel({ name, isPrivate }: { name: string; isPrivate: boolean }) {\n const result = await this.client.conversations.create({ name, is_private: isPrivate });\n return result;\n }\n\n async joinChannel({ channelId }: { channelId: string }) {\n return await this.client.conversations.join({ channel: channelId });\n }\n}\n","export const SLACK_INTEGRATION_NAME = 'SLACK';\n","import { Connection, IntegrationApi, IntegrationAuth, Integration } from '@mastra/core';\n\nimport { CREATE_NEW_CHANNEL } from './apis/create-new-channel';\nimport { INVITE_TO_CHANNEL } from './apis/invite-to-channel';\nimport { SEND_MESSAGE_TO_CHANNEL } from './apis/send-message-to-channel';\n//@ts-ignore\nimport slackIcon from './assets/slack.svg';\nimport { SlackClient } from './client';\nimport { SLACK_INTEGRATION_NAME } from './constants';\n\ntype SlackConfig = {\n CLIENT_ID: string;\n CLIENT_SECRET: string;\n SCOPES: string[];\n [key: string]: any;\n};\n\nexport class SlackIntegration extends Integration<SlackClient> {\n config: SlackConfig;\n availableScopes = [\n { key: 'channels:manage', description: 'Manage channels' },\n { key: 'users:read', description: 'Read user information' },\n { key: 'channels:write.invites', description: 'Invite users to channels' },\n { key: 'chat:write', description: 'Send messages' },\n { key: 'channels:read', description: 'View channels' },\n { key: 'groups:read', description: 'View private channels' },\n { key: 'channels:join', description: 'Join channels' },\n { key: 'groups:write.invites', description: 'Invite users to private channels' },\n { key: 'groups:write', description: 'Manage private channels' },\n ];\n\n constructor({ config }: { config: SlackConfig }) {\n config.authType = `OAUTH`;\n\n super({\n config,\n name: SLACK_INTEGRATION_NAME,\n logoUrl: slackIcon,\n });\n\n this.config = config;\n }\n\n makeClient = async ({ connectionId }: { connectionId: string }) => {\n const authenticator = this.getAuthenticator();\n const connection = await this.dataLayer?.getConnection({ connectionId, name: this.name });\n\n if (!connection) throw new Error('No connection found');\n\n const token = await authenticator.getAuthToken({ k_id: connection?.id });\n\n return new SlackClient({ token: token.accessToken });\n };\n\n registerApis(): Record<string, IntegrationApi<any>> {\n this.apis = {\n SEND_MESSAGE_TO_CHANNEL: SEND_MESSAGE_TO_CHANNEL({\n dataAccess: this?.dataLayer!,\n name: this.name,\n makeClient: this.makeClient,\n }),\n CREATE_NEW_CHANNEL: CREATE_NEW_CHANNEL({\n dataAccess: this?.dataLayer!,\n name: this.name,\n makeClient: this.makeClient,\n }),\n INVITE_TO_CHANNEL: INVITE_TO_CHANNEL({\n dataAccess: this?.dataLayer!,\n name: this.name,\n makeClient: this.makeClient,\n }),\n };\n return this.apis;\n }\n\n async onConnectionCreated({ connection }: { connection: Connection }) {}\n\n async onDisconnect({ connectionId }: { connectionId: string }) {}\n\n getAuthenticator(): IntegrationAuth {\n const isScopesDefined = this.config.SCOPES && this.config.SCOPES.length > 0; // TODO: remove this once we a document, and we can define the scopes\n const fallbackScopes = this.availableScopes?.map(scope => scope.key) || [];\n\n return new IntegrationAuth({\n dataAccess: this.dataLayer!,\n onConnectionCreated: connection => {\n return this.onConnectionCreated({ connection });\n },\n config: {\n CLIENT_ID: this.config.CLIENT_ID,\n CLIENT_SECRET: this.config.CLIENT_SECRET,\n REDIRECT_URI: this.config.REDIRECT_URI || this.corePresets.redirectURI,\n AUTH_TYPE: this.config.authType,\n SERVER: 'https://slack.com',\n DISCOVERY_ENDPOINT: '/.well-known/openid-configuration',\n AUTHORIZATION_ENDPOINT: '/oauth/v2/authorize',\n TOKEN_ENDPOINT: '/api/oauth.v2.access',\n REVOCATION_ENDPOINT: '/api/auth.revoke',\n SCOPES: isScopesDefined ? this.config.SCOPES : fallbackScopes,\n INTEGRATION_NAME: this.name,\n EXTRA_AUTH_PARAMS: {\n access_type: 'offline',\n prompt: 'consent',\n },\n },\n });\n }\n}\n"],"names":["SEND_MESSAGE_TO_CHANNEL_SCHEMA","z","object","channelId","string","trim","min","message","describe","IntegrationFieldTypeEnum","LONG_TEXT","CREATE_NEW_CHANNEL_SCHEMA","channelName","isPrivate","CREATE_NEW_CHANNEL_OUTPUT_SCHEMA","nullable","INVITE_TO_CHANNEL_SCHEMA","users","array","CREATE_NEW_CHANNEL","_ref","name","makeClient","integrationName","executor","_executor","_asyncToGenerator","_regeneratorRuntime","mark","_callee","_ref2","_createdChannel$chann","data","connectionId","client","createdChannel","wrap","_callee$","_context","prev","next","ctx","sent","createChannel","replaceAll","toLowerCase","error","Error","channel","id","abrupt","stop","_x","apply","arguments","icon","alt","slackIcon","type","schema","description","label","outputSchema","INVITE_TO_CHANNEL","length","success","invite","getSchemaOptions","_ref3","_callee2","usersSet","channels","schemaOptions","channelOptions","_callee2$","_context2","Set","getActiveUsers","getAllChannels","forEach","user","add","Array","from","map","value","_channel$name","_channel$id","options","SEND_MESSAGE_TO_CHANNEL","joinChannel","t0","console","log","sendMessage","channelsSet","SlackClient","token","WebClient","_proto","prototype","_getAllChannels","_response$channels","response","conversations","list","types","limit","filter","is_archived","channelByName","_channelByName","find","_getActiveUsers","_callee3","_yield$this$client$us","members","activeMembers","_callee3$","_context3","_ref4","deleted","is_bot","userIdsByNames","_userIdsByNames","_callee4","names","_users$filter","peopleIds","_callee4$","_context4","_ref5","nameMatch","n","includes","_ref6","_x2","_sendMessage","_callee5","_ref7","_callee5$","_context5","chat","postMessage","text","_x3","_invite","_callee6","_ref8","_callee6$","_context6","join","_x4","_createChannel","_callee7","_ref9","result","_callee7$","_context7","create","is_private","_x5","_joinChannel","_callee8","_ref10","_callee8$","_context8","_x6","SLACK_INTEGRATION_NAME","SlackIntegration","_Integration","_this","config","authType","call","logoUrl","availableScopes","key","_this$dataLayer","authenticator","connection","getAuthenticator","dataLayer","getConnection","getAuthToken","k_id","accessToken","_inheritsLoose","registerApis","apis","dataAccess","onConnectionCreated","_onConnectionCreated","onDisconnect","_onDisconnect","_this$availableScopes","_this2","isScopesDefined","SCOPES","fallbackScopes","scope","IntegrationAuth","CLIENT_ID","CLIENT_SECRET","REDIRECT_URI","corePresets","redirectURI","AUTH_TYPE","SERVER","DISCOVERY_ENDPOINT","AUTHORIZATION_ENDPOINT","TOKEN_ENDPOINT","REVOCATION_ENDPOINT","INTEGRATION_NAME","EXTRA_AUTH_PARAMS","access_type","prompt","Integration"],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("@mastra/core"),t=require("zod"),n=require("@slack/web-api");function r(e,t,n,r,a,i,o){try{var c=e[i](o),s=c.value}catch(e){return void n(e)}c.done?t(s):Promise.resolve(s).then(r,a)}function a(e){return function(){var t=this,n=arguments;return new Promise((function(a,i){var o=e.apply(t,n);function c(e){r(o,a,i,c,s,"next",e)}function s(e){r(o,a,i,c,s,"throw",e)}c(void 0)}))}}function i(){i=function(){return t};var e,t={},n=Object.prototype,r=n.hasOwnProperty,a=Object.defineProperty||function(e,t,n){e[t]=n.value},o="function"==typeof Symbol?Symbol:{},c=o.iterator||"@@iterator",s=o.asyncIterator||"@@asyncIterator",u=o.toStringTag||"@@toStringTag";function l(e,t,n){return Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}),e[t]}try{l({},"")}catch(e){l=function(e,t,n){return e[t]=n}}function h(e,t,n,r){var i=Object.create((t&&t.prototype instanceof g?t:g).prototype),o=new O(r||[]);return a(i,"_invoke",{value:N(e,n,o)}),i}function f(e,t,n){try{return{type:"normal",arg:e.call(t,n)}}catch(e){return{type:"throw",arg:e}}}t.wrap=h;var p="suspendedStart",v="suspendedYield",d="executing",m="completed",y={};function g(){}function w(){}function x(){}var E={};l(E,c,(function(){return this}));var b=Object.getPrototypeOf,I=b&&b(b(S([])));I&&I!==n&&r.call(I,c)&&(E=I);var k=x.prototype=g.prototype=Object.create(E);function C(e){["next","throw","return"].forEach((function(t){l(e,t,(function(e){return this._invoke(t,e)}))}))}function _(e,t){function n(a,i,o,c){var s=f(e[a],e,i);if("throw"!==s.type){var u=s.arg,l=u.value;return l&&"object"==typeof l&&r.call(l,"__await")?t.resolve(l.__await).then((function(e){n("next",e,o,c)}),(function(e){n("throw",e,o,c)})):t.resolve(l).then((function(e){u.value=e,o(u)}),(function(e){return n("throw",e,o,c)}))}c(s.arg)}var i;a(this,"_invoke",{value:function(e,r){function a(){return new t((function(t,a){n(e,r,t,a)}))}return i=i?i.then(a,a):a()}})}function N(t,n,r){var a=p;return function(i,o){if(a===d)throw Error("Generator is already running");if(a===m){if("throw"===i)throw o;return{value:e,done:!0}}for(r.method=i,r.arg=o;;){var c=r.delegate;if(c){var s=L(c,r);if(s){if(s===y)continue;return s}}if("next"===r.method)r.sent=r._sent=r.arg;else if("throw"===r.method){if(a===p)throw a=m,r.arg;r.dispatchException(r.arg)}else"return"===r.method&&r.abrupt("return",r.arg);a=d;var u=f(t,n,r);if("normal"===u.type){if(a=r.done?m:v,u.arg===y)continue;return{value:u.arg,done:r.done}}"throw"===u.type&&(a=m,r.method="throw",r.arg=u.arg)}}}function L(t,n){var r=n.method,a=t.iterator[r];if(a===e)return n.delegate=null,"throw"===r&&t.iterator.return&&(n.method="return",n.arg=e,L(t,n),"throw"===n.method)||"return"!==r&&(n.method="throw",n.arg=new TypeError("The iterator does not provide a '"+r+"' method")),y;var i=f(a,t.iterator,n.arg);if("throw"===i.type)return n.method="throw",n.arg=i.arg,n.delegate=null,y;var o=i.arg;return o?o.done?(n[t.resultName]=o.value,n.next=t.nextLoc,"return"!==n.method&&(n.method="next",n.arg=e),n.delegate=null,y):o:(n.method="throw",n.arg=new TypeError("iterator result is not an object"),n.delegate=null,y)}function T(e){var t={tryLoc:e[0]};1 in e&&(t.catchLoc=e[1]),2 in e&&(t.finallyLoc=e[2],t.afterLoc=e[3]),this.tryEntries.push(t)}function A(e){var t=e.completion||{};t.type="normal",delete t.arg,e.completion=t}function O(e){this.tryEntries=[{tryLoc:"root"}],e.forEach(T,this),this.reset(!0)}function S(t){if(t||""===t){var n=t[c];if(n)return n.call(t);if("function"==typeof t.next)return t;if(!isNaN(t.length)){var a=-1,i=function n(){for(;++a<t.length;)if(r.call(t,a))return n.value=t[a],n.done=!1,n;return n.value=e,n.done=!0,n};return i.next=i}}throw new TypeError(typeof t+" is not iterable")}return w.prototype=x,a(k,"constructor",{value:x,configurable:!0}),a(x,"constructor",{value:w,configurable:!0}),w.displayName=l(x,u,"GeneratorFunction"),t.isGeneratorFunction=function(e){var t="function"==typeof e&&e.constructor;return!!t&&(t===w||"GeneratorFunction"===(t.displayName||t.name))},t.mark=function(e){return Object.setPrototypeOf?Object.setPrototypeOf(e,x):(e.__proto__=x,l(e,u,"GeneratorFunction")),e.prototype=Object.create(k),e},t.awrap=function(e){return{__await:e}},C(_.prototype),l(_.prototype,s,(function(){return this})),t.AsyncIterator=_,t.async=function(e,n,r,a,i){void 0===i&&(i=Promise);var o=new _(h(e,n,r,a),i);return t.isGeneratorFunction(n)?o:o.next().then((function(e){return e.done?e.value:o.next()}))},C(k),l(k,u,"Generator"),l(k,c,(function(){return this})),l(k,"toString",(function(){return"[object Generator]"})),t.keys=function(e){var t=Object(e),n=[];for(var r in t)n.push(r);return n.reverse(),function e(){for(;n.length;){var r=n.pop();if(r in t)return e.value=r,e.done=!1,e}return e.done=!0,e}},t.values=S,O.prototype={constructor:O,reset:function(t){if(this.prev=0,this.next=0,this.sent=this._sent=e,this.done=!1,this.delegate=null,this.method="next",this.arg=e,this.tryEntries.forEach(A),!t)for(var n in this)"t"===n.charAt(0)&&r.call(this,n)&&!isNaN(+n.slice(1))&&(this[n]=e)},stop:function(){this.done=!0;var e=this.tryEntries[0].completion;if("throw"===e.type)throw e.arg;return this.rval},dispatchException:function(t){if(this.done)throw t;var n=this;function a(r,a){return c.type="throw",c.arg=t,n.next=r,a&&(n.method="next",n.arg=e),!!a}for(var i=this.tryEntries.length-1;i>=0;--i){var o=this.tryEntries[i],c=o.completion;if("root"===o.tryLoc)return a("end");if(o.tryLoc<=this.prev){var s=r.call(o,"catchLoc"),u=r.call(o,"finallyLoc");if(s&&u){if(this.prev<o.catchLoc)return a(o.catchLoc,!0);if(this.prev<o.finallyLoc)return a(o.finallyLoc)}else if(s){if(this.prev<o.catchLoc)return a(o.catchLoc,!0)}else{if(!u)throw Error("try statement without catch or finally");if(this.prev<o.finallyLoc)return a(o.finallyLoc)}}}},abrupt:function(e,t){for(var n=this.tryEntries.length-1;n>=0;--n){var a=this.tryEntries[n];if(a.tryLoc<=this.prev&&r.call(a,"finallyLoc")&&this.prev<a.finallyLoc){var i=a;break}}i&&("break"===e||"continue"===e)&&i.tryLoc<=t&&t<=i.finallyLoc&&(i=null);var o=i?i.completion:{};return o.type=e,o.arg=t,i?(this.method="next",this.next=i.finallyLoc,y):this.complete(o)},complete:function(e,t){if("throw"===e.type)throw e.arg;return"break"===e.type||"continue"===e.type?this.next=e.arg:"return"===e.type?(this.rval=this.arg=e.arg,this.method="return",this.next="end"):"normal"===e.type&&t&&(this.next=t),y},finish:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var n=this.tryEntries[t];if(n.finallyLoc===e)return this.complete(n.completion,n.afterLoc),A(n),y}},catch:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var n=this.tryEntries[t];if(n.tryLoc===e){var r=n.completion;if("throw"===r.type){var a=r.arg;A(n)}return a}}throw Error("illegal catch attempt")},delegateYield:function(t,n,r){return this.delegate={iterator:S(t),resultName:n,nextLoc:r},"next"===this.method&&(this.arg=e),y}},t}function o(e,t){return o=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e},o(e,t)}var c="data:image/svg+xml,%3csvg enable-background='new 0 0 2447.6 2452.5' viewBox='0 0 2447.6 2452.5' xmlns='http://www.w3.org/2000/svg'%3e%3cg clip-rule='evenodd' fill-rule='evenodd'%3e%3cpath d='m897.4 0c-135.3.1-244.8 109.9-244.7 245.2-.1 135.3 109.5 245.1 244.8 245.2h244.8v-245.1c.1-135.3-109.5-245.1-244.9-245.3.1 0 .1 0 0 0m0 654h-652.6c-135.3.1-244.9 109.9-244.8 245.2-.2 135.3 109.4 245.1 244.7 245.3h652.7c135.3-.1 244.9-109.9 244.8-245.2.1-135.4-109.5-245.2-244.8-245.3z' fill='%2336c5f0'/%3e%3cpath d='m2447.6 899.2c.1-135.3-109.5-245.1-244.8-245.2-135.3.1-244.9 109.9-244.8 245.2v245.3h244.8c135.3-.1 244.9-109.9 244.8-245.3zm-652.7 0v-654c.1-135.2-109.4-245-244.7-245.2-135.3.1-244.9 109.9-244.8 245.2v654c-.2 135.3 109.4 245.1 244.7 245.3 135.3-.1 244.9-109.9 244.8-245.3z' fill='%232eb67d'/%3e%3cpath d='m1550.1 2452.5c135.3-.1 244.9-109.9 244.8-245.2.1-135.3-109.5-245.1-244.8-245.2h-244.8v245.2c-.1 135.2 109.5 245 244.8 245.2zm0-654.1h652.7c135.3-.1 244.9-109.9 244.8-245.2.2-135.3-109.4-245.1-244.7-245.3h-652.7c-135.3.1-244.9 109.9-244.8 245.2-.1 135.4 109.4 245.2 244.7 245.3z' fill='%23ecb22e'/%3e%3cpath d='m0 1553.2c-.1 135.3 109.5 245.1 244.8 245.2 135.3-.1 244.9-109.9 244.8-245.2v-245.2h-244.8c-135.3.1-244.9 109.9-244.8 245.2zm652.7 0v654c-.2 135.3 109.4 245.1 244.7 245.3 135.3-.1 244.9-109.9 244.8-245.2v-653.9c.2-135.3-109.4-245.1-244.7-245.3-135.4 0-244.9 109.8-244.8 245.1 0 0 0 .1 0 0' fill='%23e01e5a'/%3e%3c/g%3e%3c/svg%3e",s=t.z.object({channelId:t.z.string().trim().min(1,"Required"),message:t.z.string().describe("type::"+e.IntegrationFieldTypeEnum.LONG_TEXT)}),u=t.z.object({channelName:t.z.string().trim().min(1,"Required"),isPrivate:t.z.enum(["true","false"])}),l=t.z.object({channelId:t.z.string().nullable()}),h=t.z.object({channelId:t.z.string().trim().min(1,"Required"),users:t.z.array(t.z.string())}),f=function(e){var t,n=e.makeClient;return{integrationName:e.name,executor:(t=a(i().mark((function e(t){var r,a,o,c,s,u,l,h;return i().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return a=t.data,o=t.ctx.connectionId,e.next=3,n({connectionId:o});case 3:return c=e.sent,s=a.channelName,u=a.isPrivate,e.next=7,c.createChannel({name:null==s?void 0:s.replaceAll(" ","-").toLowerCase(),isPrivate:"true"===u});case 7:if(null==(l=e.sent)||!l.error){e.next=10;break}throw new Error("Error creating channel");case 10:return h=null==l||null==(r=l.channel)?void 0:r.id,e.abrupt("return",{channelId:h});case 12:case"end":return e.stop()}}),e)}))),function(e){return t.apply(this,arguments)}),icon:{alt:"Slack Icon",icon:c},type:"CREATE_NEW_CHANNEL",schema:u,description:"Create a new channel",label:"Create New Channel",outputSchema:l}},p=function(e){var t,n=e.makeClient;return{integrationName:e.name,executor:(t=a(i().mark((function e(t){var r,a,o,c,s;return i().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return r=t.data,a=t.ctx.connectionId,e.next=3,n({connectionId:a});case 3:if(o=e.sent,c=r.channelId,null!=(s=r.users)&&s.length){e.next=7;break}return e.abrupt("return",{success:!1,message:"No users to invite"});case 7:return e.next=9,o.invite({channelId:c,users:s});case 9:return e.abrupt("return",{success:!0,message:"Users invited"});case 10:case"end":return e.stop()}}),e)}))),function(e){return t.apply(this,arguments)}),type:"INVITE_TO_CHANNEL",description:"Invite users to a channel",label:"Invite to Channel",schema:h,icon:{icon:c,alt:"Slack Icon"},getSchemaOptions:function(e){return a(i().mark((function t(){var r,a,o,c,s,u,l;return i().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return r=e.ctx,a=new Set,t.next=4,n({connectionId:r.connectionId});case 4:return o=t.sent,t.next=7,o.getActiveUsers();case 7:return c=t.sent,t.next=10,o.getAllChannels();case 10:return s=t.sent,null==c||c.forEach((function(e){a.add(e)})),u=Array.from(a).map((function(e){return{label:e.name,value:e.id}})),l=null==s?void 0:s.map((function(e){var t,n;return{label:null!=(t=e.name)?t:"",value:null!=(n=e.id)?n:""}})),t.abrupt("return",{users:{options:u},channelId:{options:null!=l?l:[]}});case 15:case"end":return t.stop()}}),t)})))()}}},v=function(){function e(e){var t=e.token;this.token=void 0,this.client=void 0,this.token=t,this.client=new n.WebClient(t)}var t=e.prototype;return t.getAllChannels=function(){var e=a(i().mark((function e(){var t;return i().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this.client.conversations.list({types:"private_channel,public_channel",limit:999});case 2:return e.abrupt("return",null==(t=e.sent.channels)?void 0:t.filter((function(e){return!e.is_archived})));case 4:case"end":return e.stop()}}),e,this)})));return function(){return e.apply(this,arguments)}}(),t.channelByName=function(){var e=a(i().mark((function e(t){var n;return i().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this.getAllChannels();case 2:return e.abrupt("return",null==(n=e.sent)?void 0:n.find((function(e){return e.name===t})));case 4:case"end":return e.stop()}}),e,this)})));return function(t){return e.apply(this,arguments)}}(),t.getActiveUsers=function(){var e=a(i().mark((function e(){var t,n;return i().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this.client.users.list({});case 2:return n=null==(t=e.sent.members)?void 0:t.filter((function(e){return!e.deleted&&!e.is_bot})),e.abrupt("return",n);case 6:case"end":return e.stop()}}),e,this)})));return function(){return e.apply(this,arguments)}}(),t.userIdsByNames=function(){var e=a(i().mark((function e(t){var n,r,a;return i().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this.getActiveUsers();case 2:return a=null==(r=e.sent)||null==(n=r.filter((function(e){var n=e.name;return!!n&&!!t.find((function(e){return e.toLowerCase().includes(n.toLowerCase())||n.toLowerCase().includes(e.toLowerCase())}))})))?void 0:n.map((function(e){return e.id})),e.abrupt("return",a);case 5:case"end":return e.stop()}}),e,this)})));return function(t){return e.apply(this,arguments)}}(),t.sendMessage=function(){var e=a(i().mark((function e(t){var n,r;return i().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return n=t.channelId,r=t.message,e.next=3,this.client.chat.postMessage({channel:n,text:r});case 3:return e.abrupt("return",e.sent);case 4:case"end":return e.stop()}}),e,this)})));return function(t){return e.apply(this,arguments)}}(),t.invite=function(){var e=a(i().mark((function e(t){var n,r;return i().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return n=t.channelId,r=t.users,e.next=3,this.client.conversations.invite({channel:n,users:r.join(",")});case 3:return e.abrupt("return",e.sent);case 4:case"end":return e.stop()}}),e,this)})));return function(t){return e.apply(this,arguments)}}(),t.createChannel=function(){var e=a(i().mark((function e(t){var n,r;return i().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return n=t.name,r=t.isPrivate,e.next=3,this.client.conversations.create({name:n,is_private:r});case 3:return e.abrupt("return",e.sent);case 5:case"end":return e.stop()}}),e,this)})));return function(t){return e.apply(this,arguments)}}(),t.joinChannel=function(){var e=a(i().mark((function e(t){var n;return i().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return n=t.channelId,e.next=3,this.client.conversations.join({channel:n});case 3:return e.abrupt("return",e.sent);case 4:case"end":return e.stop()}}),e,this)})));return function(t){return e.apply(this,arguments)}}(),e}();exports.SlackIntegration=function(t){function n(e){var n,r=e.config;return r.authType="OAUTH",(n=t.call(this,{config:r,name:"SLACK",logoUrl:c})||this).config=void 0,n.availableScopes=[{key:"channels:manage",description:"Manage channels"},{key:"users:read",description:"Read user information"},{key:"channels:write.invites",description:"Invite users to channels"},{key:"chat:write",description:"Send messages"},{key:"channels:read",description:"View channels"},{key:"groups:read",description:"View private channels"},{key:"channels:join",description:"Join channels"},{key:"groups:write.invites",description:"Invite users to private channels"},{key:"groups:write",description:"Manage private channels"}],n.makeClient=function(){var e=a(i().mark((function e(t){var r,a,o,c;return i().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return a=t.connectionId,o=n.getAuthenticator(),e.next=4,null==(r=n.dataLayer)?void 0:r.getConnection({connectionId:a,name:n.name});case 4:if(c=e.sent){e.next=7;break}throw new Error("No connection found");case 7:return e.next=9,o.getAuthToken({k_id:null==c?void 0:c.id});case 9:return e.abrupt("return",new v({token:e.sent.accessToken}));case 11:case"end":return e.stop()}}),e)})));return function(t){return e.apply(this,arguments)}}(),n.config=r,n}var r,u;u=t,(r=n).prototype=Object.create(u.prototype),r.prototype.constructor=r,o(r,u);var l=n.prototype;return l.registerApis=function(){var e,t,n;return this.apis={SEND_MESSAGE_TO_CHANNEL:(e={dataAccess:null==this?void 0:this.dataLayer,name:this.name,makeClient:this.makeClient},n=e.makeClient,{integrationName:e.name,executor:(t=a(i().mark((function e(t){var r,a,o,c,s;return i().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return r=t.data,a=t.ctx.connectionId,e.next=3,n({connectionId:a});case 3:return o=e.sent,c=r.channelId,s=r.message,e.prev=5,e.next=8,o.joinChannel({channelId:c});case 8:e.next=13;break;case 10:e.prev=10,e.t0=e.catch(5),console.log(e.t0);case 13:return e.next=15,o.sendMessage({channelId:c,message:s});case 15:return e.abrupt("return",{success:!0,message:"Message sent"});case 16:case"end":return e.stop()}}),e,null,[[5,10]])}))),function(e){return t.apply(this,arguments)}),type:"SEND_MESSAGE_TO_CHANNEL",schema:s,description:"Send a message to a channel",icon:{icon:c,alt:"Slack Icon"},getSchemaOptions:function(e){return a(i().mark((function t(){var r,a,o,c,s;return i().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return r=e.ctx,a=new Set,t.next=4,n({connectionId:r.connectionId});case 4:return o=t.sent,t.next=7,o.getAllChannels();case 7:return null==(c=t.sent)||c.forEach((function(e){a.add(e)})),s=Array.from(a).map((function(e){return{label:"# "+e.name,value:e.id}})),t.abrupt("return",{channelId:{options:s}});case 11:case"end":return t.stop()}}),t)})))()},label:"Send Message to Channel"}),CREATE_NEW_CHANNEL:f({dataAccess:null==this?void 0:this.dataLayer,name:this.name,makeClient:this.makeClient}),INVITE_TO_CHANNEL:p({dataAccess:null==this?void 0:this.dataLayer,name:this.name,makeClient:this.makeClient})},this.apis},l.onConnectionCreated=function(){var e=a(i().mark((function e(t){return i().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:case 1:case"end":return e.stop()}}),e)})));return function(t){return e.apply(this,arguments)}}(),l.onDisconnect=function(){var e=a(i().mark((function e(t){return i().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:case 1:case"end":return e.stop()}}),e)})));return function(t){return e.apply(this,arguments)}}(),l.getAuthenticator=function(){var t,n=this,r=this.config.SCOPES&&this.config.SCOPES.length>0,a=(null==(t=this.availableScopes)?void 0:t.map((function(e){return e.key})))||[];return new e.IntegrationAuth({dataAccess:this.dataLayer,onConnectionCreated:function(e){return n.onConnectionCreated({connection:e})},config:{CLIENT_ID:this.config.CLIENT_ID,CLIENT_SECRET:this.config.CLIENT_SECRET,REDIRECT_URI:this.config.REDIRECT_URI||this.corePresets.redirectURI,AUTH_TYPE:this.config.authType,SERVER:"https://slack.com",DISCOVERY_ENDPOINT:"/.well-known/openid-configuration",AUTHORIZATION_ENDPOINT:"/oauth/v2/authorize",TOKEN_ENDPOINT:"/api/oauth.v2.access",REVOCATION_ENDPOINT:"/api/auth.revoke",SCOPES:r?this.config.SCOPES:a,INTEGRATION_NAME:this.name,EXTRA_AUTH_PARAMS:{access_type:"offline",prompt:"consent"}}})},n}(e.Integration);
2
+ //# sourceMappingURL=slack.cjs.production.min.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"slack.cjs.production.min.js","sources":["../src/assets/slack.svg","../src/schemas.ts","../src/apis/create-new-channel.ts","../src/apis/invite-to-channel.ts","../src/client.ts","../src/index.ts","../src/constants.ts","../src/apis/send-message-to-channel.ts"],"sourcesContent":["var img = \"data:image/svg+xml,%3csvg enable-background='new 0 0 2447.6 2452.5' viewBox='0 0 2447.6 2452.5' xmlns='http://www.w3.org/2000/svg'%3e%3cg clip-rule='evenodd' fill-rule='evenodd'%3e%3cpath d='m897.4 0c-135.3.1-244.8 109.9-244.7 245.2-.1 135.3 109.5 245.1 244.8 245.2h244.8v-245.1c.1-135.3-109.5-245.1-244.9-245.3.1 0 .1 0 0 0m0 654h-652.6c-135.3.1-244.9 109.9-244.8 245.2-.2 135.3 109.4 245.1 244.7 245.3h652.7c135.3-.1 244.9-109.9 244.8-245.2.1-135.4-109.5-245.2-244.8-245.3z' fill='%2336c5f0'/%3e%3cpath d='m2447.6 899.2c.1-135.3-109.5-245.1-244.8-245.2-135.3.1-244.9 109.9-244.8 245.2v245.3h244.8c135.3-.1 244.9-109.9 244.8-245.3zm-652.7 0v-654c.1-135.2-109.4-245-244.7-245.2-135.3.1-244.9 109.9-244.8 245.2v654c-.2 135.3 109.4 245.1 244.7 245.3 135.3-.1 244.9-109.9 244.8-245.3z' fill='%232eb67d'/%3e%3cpath d='m1550.1 2452.5c135.3-.1 244.9-109.9 244.8-245.2.1-135.3-109.5-245.1-244.8-245.2h-244.8v245.2c-.1 135.2 109.5 245 244.8 245.2zm0-654.1h652.7c135.3-.1 244.9-109.9 244.8-245.2.2-135.3-109.4-245.1-244.7-245.3h-652.7c-135.3.1-244.9 109.9-244.8 245.2-.1 135.4 109.4 245.2 244.7 245.3z' fill='%23ecb22e'/%3e%3cpath d='m0 1553.2c-.1 135.3 109.5 245.1 244.8 245.2 135.3-.1 244.9-109.9 244.8-245.2v-245.2h-244.8c-135.3.1-244.9 109.9-244.8 245.2zm652.7 0v654c-.2 135.3 109.4 245.1 244.7 245.3 135.3-.1 244.9-109.9 244.8-245.2v-653.9c.2-135.3-109.4-245.1-244.7-245.3-135.4 0-244.9 109.8-244.8 245.1 0 0 0 .1 0 0' fill='%23e01e5a'/%3e%3c/g%3e%3c/svg%3e\";\n export default img;","import { IntegrationFieldTypeEnum } from '@mastra/core';\nimport { z } from 'zod';\n\nexport const SEND_MESSAGE_TO_CHANNEL_SCHEMA = z.object({\n channelId: z.string().trim().min(1, 'Required'),\n message: z.string().describe(`type::${IntegrationFieldTypeEnum.LONG_TEXT}`),\n});\n\nexport const CREATE_NEW_CHANNEL_SCHEMA = z.object({\n channelName: z.string().trim().min(1, 'Required'),\n isPrivate: z.enum(['true', 'false']),\n});\n\nexport const CREATE_NEW_CHANNEL_OUTPUT_SCHEMA = z.object({\n channelId: z.string().nullable(),\n});\n\nexport const INVITE_TO_CHANNEL_SCHEMA = z.object({\n channelId: z.string().trim().min(1, 'Required'),\n users: z.array(z.string()),\n});\n","// @ts-ignore\n// import slackIcon from '../assets/slack.svg';\nimport { DataLayer, IntegrationApi } from '@mastra/core';\nimport { z } from 'zod';\n\n// @ts-ignore\nimport slackIcon from '../assets/slack.svg';\nimport { CREATE_NEW_CHANNEL_SCHEMA, CREATE_NEW_CHANNEL_OUTPUT_SCHEMA } from '../schemas';\nimport { MakeClient } from '../types';\n\nexport const CREATE_NEW_CHANNEL = ({\n name,\n makeClient,\n}: {\n name: string;\n dataAccess: DataLayer;\n makeClient: MakeClient;\n}): IntegrationApi<z.infer<typeof CREATE_NEW_CHANNEL_SCHEMA>, z.infer<typeof CREATE_NEW_CHANNEL_OUTPUT_SCHEMA>> => ({\n integrationName: name,\n executor: async ({ data, ctx: { connectionId } }) => {\n const client = await makeClient({ connectionId });\n\n const { channelName, isPrivate } = data;\n\n const createdChannel = await client.createChannel({\n name: channelName?.replaceAll(' ', '-').toLowerCase(),\n isPrivate: isPrivate === 'true' ? true : false,\n });\n\n if (createdChannel?.error) {\n throw new Error('Error creating channel');\n }\n\n const channelId = createdChannel?.channel?.id!;\n\n return {\n channelId,\n };\n },\n icon: {\n alt: 'Slack Icon',\n icon: slackIcon,\n },\n type: 'CREATE_NEW_CHANNEL',\n schema: CREATE_NEW_CHANNEL_SCHEMA,\n description: 'Create a new channel',\n label: 'Create New Channel',\n outputSchema: CREATE_NEW_CHANNEL_OUTPUT_SCHEMA,\n});\n","import { DataLayer, IntegrationApi } from '@mastra/core';\nimport { z } from 'zod';\n\n//@ts-ignore\nimport slackIcon from '../assets/slack.svg';\nimport { INVITE_TO_CHANNEL_SCHEMA } from '../schemas';\nimport { MakeClient } from '../types';\n\nexport const INVITE_TO_CHANNEL = ({\n name,\n makeClient,\n}: {\n name: string;\n dataAccess: DataLayer;\n makeClient: MakeClient;\n}): IntegrationApi<z.infer<typeof INVITE_TO_CHANNEL_SCHEMA>> => ({\n integrationName: name,\n executor: async ({ data, ctx: { connectionId } }) => {\n const client = await makeClient({ connectionId });\n\n const { channelId, users } = data;\n\n if (!users?.length) return { success: false, message: 'No users to invite' };\n\n await client.invite({ channelId, users });\n return { success: true, message: 'Users invited' };\n },\n type: 'INVITE_TO_CHANNEL',\n description: 'Invite users to a channel',\n label: 'Invite to Channel',\n schema: INVITE_TO_CHANNEL_SCHEMA,\n icon: {\n icon: slackIcon,\n alt: 'Slack Icon',\n },\n async getSchemaOptions({ ctx }) {\n const usersSet = new Set<any>();\n\n const client = await makeClient({ connectionId: ctx.connectionId });\n\n const users = await client.getActiveUsers();\n const channels = await client.getAllChannels();\n\n users?.forEach(user => {\n usersSet.add(user);\n });\n\n const schemaOptions = Array.from(usersSet).map(user => {\n return {\n label: user.name,\n value: user.id,\n };\n });\n\n const channelOptions = channels?.map(channel => {\n return {\n label: channel.name ?? '',\n value: channel.id ?? '',\n };\n });\n\n return {\n users: { options: schemaOptions },\n channelId: { options: channelOptions ?? [] },\n };\n },\n});\n","import { WebClient } from '@slack/web-api';\n\nexport class SlackClient {\n // @ts-ignore\n private token: string;\n private client: WebClient;\n\n constructor({ token }: { token: string }) {\n this.token = token;\n this.client = new WebClient(token);\n }\n\n async getAllChannels() {\n const response = await this.client.conversations.list({\n types: 'private_channel,public_channel',\n limit: 999,\n });\n return response.channels?.filter(({ is_archived }) => !is_archived);\n }\n\n async channelByName(channelName: string) {\n const channels = await this.getAllChannels();\n\n return channels?.find(({ name }) => {\n return name === channelName;\n });\n }\n\n async getActiveUsers() {\n const { members } = await this.client.users.list({});\n\n const activeMembers = members?.filter(({ deleted, is_bot }) => !deleted && !is_bot);\n\n return activeMembers;\n }\n\n async userIdsByNames(names: string[]) {\n const users = await this.getActiveUsers();\n\n const peopleIds = users\n ?.filter(({ name }) => {\n if (name) {\n const nameMatch = names.find(n => {\n return n.toLowerCase().includes(name.toLowerCase()) || name.toLowerCase().includes(n.toLowerCase());\n });\n return !!nameMatch;\n }\n return false;\n })\n ?.map(({ id }) => id);\n\n return peopleIds;\n }\n\n async sendMessage({ channelId, message }: { channelId: string; message: string }) {\n return await this.client.chat.postMessage({\n channel: channelId,\n text: message,\n });\n }\n\n async invite({ channelId, users }: { channelId: string; users: string[] }) {\n return await this.client.conversations.invite({\n channel: channelId,\n users: users.join(','),\n });\n }\n\n async createChannel({ name, isPrivate }: { name: string; isPrivate: boolean }) {\n const result = await this.client.conversations.create({ name, is_private: isPrivate });\n return result;\n }\n\n async joinChannel({ channelId }: { channelId: string }) {\n return await this.client.conversations.join({ channel: channelId });\n }\n}\n","import { Connection, IntegrationApi, IntegrationAuth, Integration } from '@mastra/core';\n\nimport { CREATE_NEW_CHANNEL } from './apis/create-new-channel';\nimport { INVITE_TO_CHANNEL } from './apis/invite-to-channel';\nimport { SEND_MESSAGE_TO_CHANNEL } from './apis/send-message-to-channel';\n//@ts-ignore\nimport slackIcon from './assets/slack.svg';\nimport { SlackClient } from './client';\nimport { SLACK_INTEGRATION_NAME } from './constants';\n\ntype SlackConfig = {\n CLIENT_ID: string;\n CLIENT_SECRET: string;\n SCOPES: string[];\n [key: string]: any;\n};\n\nexport class SlackIntegration extends Integration<SlackClient> {\n config: SlackConfig;\n availableScopes = [\n { key: 'channels:manage', description: 'Manage channels' },\n { key: 'users:read', description: 'Read user information' },\n { key: 'channels:write.invites', description: 'Invite users to channels' },\n { key: 'chat:write', description: 'Send messages' },\n { key: 'channels:read', description: 'View channels' },\n { key: 'groups:read', description: 'View private channels' },\n { key: 'channels:join', description: 'Join channels' },\n { key: 'groups:write.invites', description: 'Invite users to private channels' },\n { key: 'groups:write', description: 'Manage private channels' },\n ];\n\n constructor({ config }: { config: SlackConfig }) {\n config.authType = `OAUTH`;\n\n super({\n config,\n name: SLACK_INTEGRATION_NAME,\n logoUrl: slackIcon,\n });\n\n this.config = config;\n }\n\n makeClient = async ({ connectionId }: { connectionId: string }) => {\n const authenticator = this.getAuthenticator();\n const connection = await this.dataLayer?.getConnection({ connectionId, name: this.name });\n\n if (!connection) throw new Error('No connection found');\n\n const token = await authenticator.getAuthToken({ k_id: connection?.id });\n\n return new SlackClient({ token: token.accessToken });\n };\n\n registerApis(): Record<string, IntegrationApi<any>> {\n this.apis = {\n SEND_MESSAGE_TO_CHANNEL: SEND_MESSAGE_TO_CHANNEL({\n dataAccess: this?.dataLayer!,\n name: this.name,\n makeClient: this.makeClient,\n }),\n CREATE_NEW_CHANNEL: CREATE_NEW_CHANNEL({\n dataAccess: this?.dataLayer!,\n name: this.name,\n makeClient: this.makeClient,\n }),\n INVITE_TO_CHANNEL: INVITE_TO_CHANNEL({\n dataAccess: this?.dataLayer!,\n name: this.name,\n makeClient: this.makeClient,\n }),\n };\n return this.apis;\n }\n\n async onConnectionCreated({ connection }: { connection: Connection }) {}\n\n async onDisconnect({ connectionId }: { connectionId: string }) {}\n\n getAuthenticator(): IntegrationAuth {\n const isScopesDefined = this.config.SCOPES && this.config.SCOPES.length > 0; // TODO: remove this once we a document, and we can define the scopes\n const fallbackScopes = this.availableScopes?.map(scope => scope.key) || [];\n\n return new IntegrationAuth({\n dataAccess: this.dataLayer!,\n onConnectionCreated: connection => {\n return this.onConnectionCreated({ connection });\n },\n config: {\n CLIENT_ID: this.config.CLIENT_ID,\n CLIENT_SECRET: this.config.CLIENT_SECRET,\n REDIRECT_URI: this.config.REDIRECT_URI || this.corePresets.redirectURI,\n AUTH_TYPE: this.config.authType,\n SERVER: 'https://slack.com',\n DISCOVERY_ENDPOINT: '/.well-known/openid-configuration',\n AUTHORIZATION_ENDPOINT: '/oauth/v2/authorize',\n TOKEN_ENDPOINT: '/api/oauth.v2.access',\n REVOCATION_ENDPOINT: '/api/auth.revoke',\n SCOPES: isScopesDefined ? this.config.SCOPES : fallbackScopes,\n INTEGRATION_NAME: this.name,\n EXTRA_AUTH_PARAMS: {\n access_type: 'offline',\n prompt: 'consent',\n },\n },\n });\n }\n}\n","export const SLACK_INTEGRATION_NAME = 'SLACK';\n","// @ts-ignore\n// import slackIcon from '../assets/slack.svg';\nimport { DataLayer, IntegrationApi } from '@mastra/core';\nimport { z } from 'zod';\n\n// @ts-ignore\nimport slackIcon from '../assets/slack.svg';\nimport { SEND_MESSAGE_TO_CHANNEL_SCHEMA } from '../schemas';\nimport { MakeClient } from '../types';\n\nexport const SEND_MESSAGE_TO_CHANNEL = ({\n name,\n dataAccess,\n makeClient,\n}: {\n name: string;\n dataAccess: DataLayer;\n makeClient: MakeClient;\n}): IntegrationApi<z.infer<typeof SEND_MESSAGE_TO_CHANNEL_SCHEMA>> => ({\n integrationName: name,\n executor: async ({ data, ctx: { connectionId } }) => {\n const client = await makeClient({ connectionId });\n\n const { channelId, message } = data;\n\n try {\n await client.joinChannel({ channelId });\n } catch (e) {\n console.log(e);\n // fail silently if the channel is already joined\n }\n\n await client.sendMessage({ channelId, message });\n\n return { success: true, message: 'Message sent' };\n },\n type: 'SEND_MESSAGE_TO_CHANNEL',\n schema: SEND_MESSAGE_TO_CHANNEL_SCHEMA,\n description: 'Send a message to a channel',\n icon: {\n icon: slackIcon,\n alt: 'Slack Icon',\n },\n async getSchemaOptions({ ctx }) {\n const channelsSet = new Set<any>();\n const client = await makeClient({ connectionId: ctx.connectionId });\n\n const channels = await client.getAllChannels();\n\n channels?.forEach(channel => {\n channelsSet.add(channel);\n });\n\n const schemaOptions = Array.from(channelsSet).map(channel => {\n return {\n label: `# ${channel.name}`,\n value: channel.id,\n };\n });\n\n return {\n channelId: { options: schemaOptions },\n };\n },\n label: 'Send Message to Channel',\n});\n"],"names":["img","SEND_MESSAGE_TO_CHANNEL_SCHEMA","z","object","channelId","string","trim","min","message","describe","IntegrationFieldTypeEnum","LONG_TEXT","CREATE_NEW_CHANNEL_SCHEMA","channelName","isPrivate","CREATE_NEW_CHANNEL_OUTPUT_SCHEMA","nullable","INVITE_TO_CHANNEL_SCHEMA","users","array","CREATE_NEW_CHANNEL","_ref","_executor","makeClient","integrationName","name","executor","_asyncToGenerator","_regeneratorRuntime","mark","_callee","_ref2","_createdChannel$chann","data","connectionId","client","createdChannel","wrap","_context","prev","next","ctx","sent","createChannel","replaceAll","toLowerCase","error","Error","channel","id","abrupt","stop","_x","apply","this","arguments","icon","alt","slackIcon","type","schema","description","label","outputSchema","INVITE_TO_CHANNEL","length","success","invite","getSchemaOptions","_ref3","_callee2","usersSet","channels","schemaOptions","channelOptions","_context2","Set","getActiveUsers","getAllChannels","forEach","user","add","Array","from","map","value","_channel$name","_channel$id","options","SlackClient","token","WebClient","_proto","prototype","_getAllChannels","_response$channels","conversations","list","types","limit","filter","is_archived","channelByName","_channelByName","find","_getActiveUsers","_callee3","members","activeMembers","_context3","_ref4","deleted","is_bot","userIdsByNames","_userIdsByNames","_callee4","names","_users$filter","peopleIds","_context4","_ref5","n","includes","_ref6","_x2","sendMessage","_sendMessage","_callee5","_ref7","_context5","chat","postMessage","text","_x3","_invite","_callee6","_ref8","_context6","join","_x4","_createChannel","_callee7","_ref9","_context7","create","is_private","_x5","joinChannel","_joinChannel","_callee8","_ref10","_context8","_x6","_Integration","SlackIntegration","_this","config","authType","call","logoUrl","availableScopes","key","_this$dataLayer","authenticator","connection","getAuthenticator","dataLayer","getConnection","getAuthToken","k_id","accessToken","registerApis","apis","SEND_MESSAGE_TO_CHANNEL","dataAccess","t0","console","log","channelsSet","onConnectionCreated","_onConnectionCreated","onDisconnect","_onDisconnect","_this$availableScopes","_this2","isScopesDefined","SCOPES","fallbackScopes","scope","IntegrationAuth","CLIENT_ID","CLIENT_SECRET","REDIRECT_URI","corePresets","redirectURI","AUTH_TYPE","SERVER","DISCOVERY_ENDPOINT","AUTHORIZATION_ENDPOINT","TOKEN_ENDPOINT","REVOCATION_ENDPOINT","INTEGRATION_NAME","EXTRA_AUTH_PARAMS","access_type","prompt","Integration"],"mappings":"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"}