{"version":3,"sources":["../../../node_modules/@slack/types/dist/dialog.js","../../../node_modules/@slack/types/dist/events/app.js","../../../node_modules/@slack/types/dist/events/assistant.js","../../../node_modules/@slack/types/dist/events/call.js","../../../node_modules/@slack/types/dist/events/channel.js","../../../node_modules/@slack/types/dist/events/dnd.js","../../../node_modules/@slack/types/dist/events/email.js","../../../node_modules/@slack/types/dist/events/emoji.js","../../../node_modules/@slack/types/dist/events/function.js","../../../node_modules/@slack/types/dist/events/grid-migration.js","../../../node_modules/@slack/types/dist/events/group.js","../../../node_modules/@slack/types/dist/events/im.js","../../../node_modules/@slack/types/dist/events/invite.js","../../../node_modules/@slack/types/dist/events/link-shared.js","../../../node_modules/@slack/types/dist/events/member.js","../../../node_modules/@slack/types/dist/events/message.js","../../../node_modules/@slack/types/dist/events/message-metadata.js","../../../node_modules/@slack/types/dist/events/pin.js","../../../node_modules/@slack/types/dist/events/reaction.js","../../../node_modules/@slack/types/dist/events/shared-channel.js","../../../node_modules/@slack/types/dist/events/star.js","../../../node_modules/@slack/types/dist/events/subteam.js","../../../node_modules/@slack/types/dist/events/team.js","../../../node_modules/@slack/types/dist/events/token.js","../../../node_modules/@slack/types/dist/events/user.js","../../../node_modules/@slack/types/dist/events/steps-from-apps.js","../../../node_modules/@slack/types/src/events/index.ts","../../../node_modules/@slack/types/dist/message-metadata.js","../../../node_modules/@slack/types/dist/message-attachments.js","../../../node_modules/@slack/types/dist/views.js","../../../node_modules/@slack/types/dist/block-kit/blocks.js","../../../node_modules/@slack/types/dist/block-kit/extensions.js","../../../node_modules/@slack/types/src/index.ts","../src/index.ts","../src/SlackWebhook.ts","../src/types/index.ts","../src/types/slack-events-api-types.ts"],"sourcesContent":["\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=dialog.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=app.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=assistant.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=call.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=channel.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=dnd.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=email.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=emoji.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=function.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=grid-migration.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=group.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=im.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=invite.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=link-shared.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=member.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=message.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=message-metadata.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=pin.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=reaction.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=shared-channel.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=star.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=subteam.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=team.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=token.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=user.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=steps-from-apps.js.map",null,"\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=message-metadata.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=message-attachments.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=views.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=blocks.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=extensions.js.map",null,"export * from './SlackWebhook';\nexport * from './types';\n","import {\n  Webhook,\n  WebhookRequest,\n  WebhookResponse,\n  WebhookVerificationError,\n} from '@microfox/webhook-core';\nimport {\n  isValidSlackRequest,\n  type AckFn,\n  type BlockElementAction,\n  type Context,\n  type DialogSubmitAction,\n  type DialogValidation,\n  type EnvelopedEvent,\n  type InteractiveAction,\n  type KnownEventFromType,\n  type RespondArguments,\n  type RespondFn,\n  type SayArguments,\n  type SayFn,\n  type SlackAction,\n  type SlackShortcut,\n  type SlashCommand,\n  type StringIndexed,\n} from '@slack/bolt';\nimport { type AllMessageEvents } from './types';\n\nexport class WebhookParseError extends Error {\n  constructor(message: string) {\n    super(message);\n    this.name = 'WebhookParseError';\n  }\n}\n\ninterface MessageCallbackArgs {\n  message: AllMessageEvents;\n  context: Context & StringIndexed;\n  say: SayFn;\n  body: EnvelopedEvent<AllMessageEvents>;\n}\n\n/**\n * SlackWebhook - A class for handling Slack webhooks\n */\nexport class SlackWebhook extends Webhook {\n  private botToken?: string;\n  private callbacks: Record<string, ((args: any) => Promise<void> | void)[]> =\n    {};\n\n  constructor(options: { secret: string; botToken?: string }) {\n    super(options);\n    this.botToken = options.botToken ?? process.env.SLACK_BOT_TOKEN;\n    if (!this.botToken) {\n      throw new Error('Bot token is required');\n    }\n  }\n\n  async sign(payload: string | Buffer): Promise<string> {\n    throw new Error('Signing is not supported by the Slack adapter.');\n  }\n\n  async verify(\n    payload: string | Buffer,\n    signature: string,\n    timestamp?: number,\n  ): Promise<boolean> {\n    const payloadString = payload.toString();\n    if (!timestamp) {\n      throw new WebhookVerificationError(\n        'Timestamp is required for verification',\n      );\n    }\n    return isValidSlackRequest({\n      signingSecret: this.secret,\n      body: payloadString,\n      headers: {\n        'x-slack-signature': signature,\n        'x-slack-request-timestamp': timestamp,\n      },\n    });\n  }\n\n  async receive(request: WebhookRequest): Promise<WebhookResponse | void> {\n    const signature = request.headers['x-slack-signature'] as string;\n    const timestamp = Number(request.headers['x-slack-request-timestamp']);\n\n    if (!signature || !timestamp) {\n      throw new WebhookVerificationError(\n        'Slack signature or timestamp not found in headers',\n      );\n    }\n\n    const valid = await this.verify(request.body, signature, timestamp);\n    if (!valid) {\n      throw new WebhookVerificationError('Invalid signature');\n    }\n\n    const body = JSON.parse(request.body.toString());\n\n    if (body.ssl_check) {\n      return {\n        statusCode: 200,\n        body: JSON.stringify({ ok: true }),\n        payload: body,\n      };\n    }\n\n    // Handle URL verification challenge\n    if (body?.type === 'url_verification') {\n      return {\n        statusCode: 200,\n        body: JSON.stringify({ challenge: body.challenge }),\n        payload: body,\n      };\n    }\n\n    // TODO: Build out a more robust event dispatcher\n    // that can provide the full context to the callbacks.\n    // This is a simplified version for now.\n\n    const eventType = body?.event?.type;\n    const command = body?.command;\n    const actionId = body?.actions?.[0]?.action_id;\n    const shortcutId = body?.shortcut_id;\n    const dialogCallbackId = body?.callback_id;\n\n    if (eventType && this.callbacks[eventType]) {\n      this.callbacks[eventType].forEach(cb => cb(body));\n    } else if (command && this.callbacks[`command_${command}`]) {\n      this.callbacks[`command_${command}`].forEach(cb => cb(body));\n    } else if (actionId && this.callbacks[`action_${actionId}`]) {\n      this.callbacks[`action_${actionId}`].forEach(cb => cb(body));\n    } else if (shortcutId && this.callbacks[`shortcut_${shortcutId}`]) {\n      this.callbacks[`shortcut_${shortcutId}`].forEach(cb => cb(body));\n    } else if (\n      dialogCallbackId &&\n      this.callbacks[`dialog_${dialogCallbackId}`]\n    ) {\n      this.callbacks[`dialog_${dialogCallbackId}`].forEach(cb => cb(body));\n    } else if (this.callbacks.message) {\n      // Fallback for general messages\n      this.callbacks.message.forEach(cb => cb(body));\n    }\n\n    return {\n      statusCode: 200,\n      body: JSON.stringify({ ok: true }),\n      payload: body,\n    };\n  }\n\n  on(event: string, listener: (...args: any[]) => void): this;\n  on(event: 'error', listener: (error: Error) => void): this;\n  on(event: string, listener: (...args: any[]) => void): this {\n    if (this.callbacks[event]) {\n      this.callbacks[event].push(listener);\n    } else {\n      this.callbacks[event] = [listener];\n    }\n    return this;\n  }\n\n  onMessage(callback: (args: MessageCallbackArgs) => Promise<void>) {\n    if (this.callbacks.message) {\n      this.callbacks.message.push(callback);\n    } else {\n      this.callbacks.message = [callback as any];\n    }\n  }\n\n  onCommand(\n    command: string,\n    callback: (args: {\n      command: SlashCommand;\n      context: Context & StringIndexed;\n      say: SayFn;\n      ack: AckFn<string | RespondArguments>;\n      body: SlashCommand;\n      respond: RespondFn;\n    }) => Promise<void>,\n  ) {\n    const key = `command_${command}`;\n    if (this.callbacks[key]) {\n      this.callbacks[key].push(callback);\n    } else {\n      this.callbacks[key] = [callback as any];\n    }\n  }\n\n  onAction(\n    actionId: string,\n    callback: (args: {\n      action: BlockElementAction | InteractiveAction;\n      context: Context & StringIndexed;\n      ack: AckFn<string | SayArguments> | AckFn<void>;\n      body: SlackAction;\n      respond: RespondFn;\n    }) => Promise<void>,\n  ) {\n    const key = `action_${actionId}`;\n    if (this.callbacks[key]) {\n      this.callbacks[key].push(callback);\n    } else {\n      this.callbacks[key] = [callback as any];\n    }\n  }\n\n  onDialogSubmission(\n    dialogCallbackId: string,\n    callback: (args: {\n      dialog: DialogSubmitAction;\n      context: Context & StringIndexed;\n      ack: AckFn<string | SayArguments> | AckFn<void> | AckFn<DialogValidation>;\n      body: SlackAction;\n      respond: RespondFn;\n    }) => Promise<void>,\n  ) {\n    const key = `dialog_${dialogCallbackId}`;\n    if (this.callbacks[key]) {\n      this.callbacks[key].push(callback);\n    } else {\n      this.callbacks[key] = [callback as any];\n    }\n  }\n\n  onShortcut(\n    shortcutId: string,\n    callback: (args: {\n      shortcut: SlackShortcut;\n      context: Context & StringIndexed;\n      ack: AckFn<void>;\n      body: SlackShortcut;\n      respond: RespondFn;\n    }) => Promise<void>,\n  ) {\n    const key = `shortcut_${shortcutId}`;\n    if (this.callbacks[key]) {\n      this.callbacks[key].push(callback);\n    } else {\n      this.callbacks[key] = [callback as any];\n    }\n  }\n\n  onEvent(\n    eventType: string,\n    callback: (args: {\n      event: KnownEventFromType<string>;\n      context: Context & StringIndexed;\n      body: EnvelopedEvent<KnownEventFromType<string>>;\n    }) => Promise<void>,\n  ) {\n    if (this.callbacks[eventType]) {\n      this.callbacks[eventType].push(callback);\n    } else {\n      this.callbacks[eventType] = [callback as any];\n    }\n  }\n}\n","// Barrel file for type exports\nexport * from './slack-events-api-types';\n","export * from '@slack/types';\nimport type { SlackEvent, FunctionExecutedEvent } from '@slack/types';\nimport type {\n  ChatPostMessageArguments,\n  ChatPostMessageResponse,\n} from '@slack/web-api';\n/**\n/** Using type parameter T (generic), can distribute the Omit over a union set. */\ntype DistributiveOmit<T, K extends PropertyKey> = T extends any\n  ? Omit<T, K>\n  : never;\n/**\n * Extend this interface to build a type that is treated as an open set of properties, where each key is a string.\n */\nexport type StringIndexed = Record<string, any>;\n\nexport type SayArguments = DistributiveOmit<\n  ChatPostMessageArguments,\n  'channel'\n> & {\n  channel?: string;\n};\nexport type SayFn = (\n  message: string | SayArguments,\n) => Promise<ChatPostMessageResponse>;\nexport type RespondArguments = DistributiveOmit<\n  ChatPostMessageArguments,\n  'channel' | 'text'\n> & {\n  /** Response URLs can be used to send ephemeral messages or in-channel messages using this argument */\n  response_type?: 'in_channel' | 'ephemeral';\n  replace_original?: boolean;\n  delete_original?: boolean;\n  text?: string;\n};\nexport type RespondFn = (message: string | RespondArguments) => Promise<any>;\nexport type AckFn<Response> = (response?: Response) => Promise<void>;\n/**\n * Arguments which listeners and middleware receive to process an event from Slack's Events API.\n */\nexport type SlackEventMiddlewareArgs<EventType extends string = string> = {\n  payload: EventFromType<EventType>;\n  event: EventFromType<EventType>;\n  body: EnvelopedEvent<EventFromType<EventType>>;\n} & (EventType extends 'message'\n  ? {\n      message: EventFromType<EventType>;\n    }\n  : unknown) &\n  (EventFromType<EventType> extends\n    | {\n        channel: string;\n      }\n    | {\n        item: {\n          channel: string;\n        };\n      }\n    ? {\n        say: SayFn;\n      }\n    : unknown) &\n  (EventType extends 'function_executed'\n    ? {\n        inputs: FunctionExecutedEvent['inputs'];\n        ack: AckFn<void>;\n      }\n    : {\n        ack?: undefined;\n      });\nexport interface BaseSlackEvent<T extends string = string> {\n  type: T;\n}\nexport type EventTypePattern = string | RegExp;\nexport type FunctionInputs = Record<string, unknown>;\n/**\n * A Slack Events API event wrapped in the standard envelope.\n *\n * This describes the entire JSON-encoded body of a request from Slack's Events API.\n */\nexport interface EnvelopedEvent<Event = BaseSlackEvent> extends StringIndexed {\n  token: string;\n  team_id: string;\n  enterprise_id?: string;\n  api_app_id: string;\n  event: Event;\n  type: 'event_callback';\n  event_id: string;\n  event_time: number;\n  is_ext_shared_channel?: boolean;\n  authorizations?: Authorization[];\n}\ninterface Authorization {\n  enterprise_id: string | null;\n  team_id: string | null;\n  user_id: string;\n  is_bot: boolean;\n  is_enterprise_install?: boolean;\n}\n/**\n * Type function which given a string `T` returns a type for the matching Slack event(s).\n *\n * When the string matches known event(s) from the `SlackEvent` union, only those types are returned (also as a union).\n * Otherwise, the `BasicSlackEvent<T>` type is returned.\n */\nexport type EventFromType<T extends string> =\n  KnownEventFromType<T> extends never\n    ? BaseSlackEvent<T>\n    : KnownEventFromType<T>;\nexport type KnownEventFromType<T extends string> = Extract<\n  SlackEvent,\n  {\n    type: T;\n  }\n>;\n\n/**\n * Arguments which listeners and middleware receive to process a slash command from Slack.\n */\nexport interface SlackCommandMiddlewareArgs {\n  payload: SlashCommand;\n  command: this['payload'];\n  body: this['payload'];\n  say: SayFn;\n  respond: RespondFn;\n  ack: AckFn<string | RespondArguments>;\n}\n/**\n * A Slack slash command\n *\n * This describes the entire URL-encoded body of a request from Slack's slash commands.\n */\nexport interface SlashCommand extends StringIndexed {\n  token: string;\n  command: string;\n  text: string;\n  response_url: string;\n  trigger_id: string;\n  user_id: string;\n  user_name: string;\n  team_id: string;\n  team_domain: string;\n  channel_id: string;\n  channel_name: string;\n  api_app_id: string;\n  enterprise_id?: string;\n  enterprise_name?: string;\n  is_enterprise_install?: string;\n}\n"],"mappings":"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","names":["require_message_metadata"]}