@memberjunction/messaging-adapters 0.0.1 → 5.18.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.
Files changed (58) hide show
  1. package/README.md +231 -43
  2. package/dist/base/BaseMessagingAdapter.d.ts +428 -0
  3. package/dist/base/BaseMessagingAdapter.d.ts.map +1 -0
  4. package/dist/base/BaseMessagingAdapter.js +934 -0
  5. package/dist/base/BaseMessagingAdapter.js.map +1 -0
  6. package/dist/base/message-formatter.d.ts +70 -0
  7. package/dist/base/message-formatter.d.ts.map +1 -0
  8. package/dist/base/message-formatter.js +201 -0
  9. package/dist/base/message-formatter.js.map +1 -0
  10. package/dist/base/types.d.ts +211 -0
  11. package/dist/base/types.d.ts.map +1 -0
  12. package/dist/base/types.js +6 -0
  13. package/dist/base/types.js.map +1 -0
  14. package/dist/index.d.ts +72 -0
  15. package/dist/index.d.ts.map +1 -0
  16. package/dist/index.js +76 -0
  17. package/dist/index.js.map +1 -0
  18. package/dist/slack/SlackAdapter.d.ts +141 -0
  19. package/dist/slack/SlackAdapter.d.ts.map +1 -0
  20. package/dist/slack/SlackAdapter.js +291 -0
  21. package/dist/slack/SlackAdapter.js.map +1 -0
  22. package/dist/slack/SlackMessagingExtension.d.ts +148 -0
  23. package/dist/slack/SlackMessagingExtension.d.ts.map +1 -0
  24. package/dist/slack/SlackMessagingExtension.js +433 -0
  25. package/dist/slack/SlackMessagingExtension.js.map +1 -0
  26. package/dist/slack/slack-block-builder.d.ts +133 -0
  27. package/dist/slack/slack-block-builder.d.ts.map +1 -0
  28. package/dist/slack/slack-block-builder.js +748 -0
  29. package/dist/slack/slack-block-builder.js.map +1 -0
  30. package/dist/slack/slack-formatter.d.ts +37 -0
  31. package/dist/slack/slack-formatter.d.ts.map +1 -0
  32. package/dist/slack/slack-formatter.js +116 -0
  33. package/dist/slack/slack-formatter.js.map +1 -0
  34. package/dist/slack/slack-interactivity.d.ts +38 -0
  35. package/dist/slack/slack-interactivity.d.ts.map +1 -0
  36. package/dist/slack/slack-interactivity.js +414 -0
  37. package/dist/slack/slack-interactivity.js.map +1 -0
  38. package/dist/slack/slack-routes.d.ts +35 -0
  39. package/dist/slack/slack-routes.d.ts.map +1 -0
  40. package/dist/slack/slack-routes.js +98 -0
  41. package/dist/slack/slack-routes.js.map +1 -0
  42. package/dist/teams/TeamsAdapter.d.ts +155 -0
  43. package/dist/teams/TeamsAdapter.d.ts.map +1 -0
  44. package/dist/teams/TeamsAdapter.js +383 -0
  45. package/dist/teams/TeamsAdapter.js.map +1 -0
  46. package/dist/teams/TeamsMessagingExtension.d.ts +75 -0
  47. package/dist/teams/TeamsMessagingExtension.d.ts.map +1 -0
  48. package/dist/teams/TeamsMessagingExtension.js +176 -0
  49. package/dist/teams/TeamsMessagingExtension.js.map +1 -0
  50. package/dist/teams/teams-card-builder.d.ts +94 -0
  51. package/dist/teams/teams-card-builder.d.ts.map +1 -0
  52. package/dist/teams/teams-card-builder.js +648 -0
  53. package/dist/teams/teams-card-builder.js.map +1 -0
  54. package/dist/teams/teams-formatter.d.ts +39 -0
  55. package/dist/teams/teams-formatter.d.ts.map +1 -0
  56. package/dist/teams/teams-formatter.js +107 -0
  57. package/dist/teams/teams-formatter.js.map +1 -0
  58. package/package.json +40 -7
@@ -0,0 +1 @@
1
+ {"version":3,"file":"slack-interactivity.js","sourceRoot":"","sources":["../../src/slack/slack-interactivity.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,35 @@
1
+ /**
2
+ * @module @memberjunction/messaging-adapters
3
+ * @description Slack webhook signature verification and route utilities.
4
+ *
5
+ * Slack sends a signature with every webhook request. This module provides
6
+ * HMAC-SHA256 verification with replay attack protection.
7
+ *
8
+ * @see https://api.slack.com/authentication/verifying-requests-from-slack
9
+ */
10
+ import { Request } from 'express';
11
+ /**
12
+ * Verify that a Slack webhook request is authentic using HMAC-SHA256.
13
+ *
14
+ * Performs two checks:
15
+ * 1. **Timestamp freshness**: Rejects requests older than 5 minutes to prevent replay attacks
16
+ * 2. **Signature verification**: Computes HMAC-SHA256 of `v0:{timestamp}:{body}` and compares
17
+ * with the signature header using `crypto.timingSafeEqual` to prevent timing attacks
18
+ *
19
+ * @param req - Express request object. Must have `x-slack-request-timestamp` and
20
+ * `x-slack-signature` headers, and a parsed `req.body`.
21
+ * @param signingSecret - Slack app signing secret from the app configuration page.
22
+ * @returns `true` if the request is authentic, `false` otherwise.
23
+ *
24
+ * @example
25
+ * ```typescript
26
+ * app.post('/webhook/slack', (req, res) => {
27
+ * if (!verifySlackSignature(req, process.env.SLACK_SIGNING_SECRET)) {
28
+ * return res.status(401).send('Invalid signature');
29
+ * }
30
+ * // Process the request...
31
+ * });
32
+ * ```
33
+ */
34
+ export declare function verifySlackSignature(req: Request, signingSecret: string): boolean;
35
+ //# sourceMappingURL=slack-routes.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"slack-routes.d.ts","sourceRoot":"","sources":["../../src/slack/slack-routes.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAOlC;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,OAAO,EAAE,aAAa,EAAE,MAAM,GAAG,OAAO,CAmBjF"}
@@ -0,0 +1,98 @@
1
+ /**
2
+ * @module @memberjunction/messaging-adapters
3
+ * @description Slack webhook signature verification and route utilities.
4
+ *
5
+ * Slack sends a signature with every webhook request. This module provides
6
+ * HMAC-SHA256 verification with replay attack protection.
7
+ *
8
+ * @see https://api.slack.com/authentication/verifying-requests-from-slack
9
+ */
10
+ import crypto from 'crypto';
11
+ /** Maximum age of a valid Slack request (5 minutes in seconds). */
12
+ const MAX_REQUEST_AGE_SECONDS = 300;
13
+ /**
14
+ * Verify that a Slack webhook request is authentic using HMAC-SHA256.
15
+ *
16
+ * Performs two checks:
17
+ * 1. **Timestamp freshness**: Rejects requests older than 5 minutes to prevent replay attacks
18
+ * 2. **Signature verification**: Computes HMAC-SHA256 of `v0:{timestamp}:{body}` and compares
19
+ * with the signature header using `crypto.timingSafeEqual` to prevent timing attacks
20
+ *
21
+ * @param req - Express request object. Must have `x-slack-request-timestamp` and
22
+ * `x-slack-signature` headers, and a parsed `req.body`.
23
+ * @param signingSecret - Slack app signing secret from the app configuration page.
24
+ * @returns `true` if the request is authentic, `false` otherwise.
25
+ *
26
+ * @example
27
+ * ```typescript
28
+ * app.post('/webhook/slack', (req, res) => {
29
+ * if (!verifySlackSignature(req, process.env.SLACK_SIGNING_SECRET)) {
30
+ * return res.status(401).send('Invalid signature');
31
+ * }
32
+ * // Process the request...
33
+ * });
34
+ * ```
35
+ */
36
+ export function verifySlackSignature(req, signingSecret) {
37
+ const timestamp = req.headers['x-slack-request-timestamp'];
38
+ const signature = req.headers['x-slack-signature'];
39
+ if (!timestamp || !signature) {
40
+ return false;
41
+ }
42
+ // Prevent replay attacks: reject requests older than 5 minutes
43
+ if (isRequestTooOld(timestamp)) {
44
+ return false;
45
+ }
46
+ // Compute expected signature, preferring rawBody if available
47
+ const rawBody = req.rawBody;
48
+ const expectedSignature = computeSignature(req.body, timestamp, signingSecret, rawBody);
49
+ // Use timing-safe comparison to prevent timing attacks
50
+ return safeCompare(expectedSignature, signature);
51
+ }
52
+ /**
53
+ * Check if a Slack request timestamp is too old (> 5 minutes).
54
+ *
55
+ * @param timestamp - Unix timestamp string from `x-slack-request-timestamp` header.
56
+ * @returns `true` if the request is older than 5 minutes.
57
+ */
58
+ function isRequestTooOld(timestamp) {
59
+ const requestTime = parseInt(timestamp, 10);
60
+ if (isNaN(requestTime)) {
61
+ return true;
62
+ }
63
+ const currentTime = Math.floor(Date.now() / 1000);
64
+ return (currentTime - requestTime) > MAX_REQUEST_AGE_SECONDS;
65
+ }
66
+ /**
67
+ * Compute the HMAC-SHA256 signature for a Slack request.
68
+ *
69
+ * @param body - Parsed request body (will be JSON.stringified).
70
+ * @param timestamp - Unix timestamp string.
71
+ * @param signingSecret - Slack app signing secret.
72
+ * @returns Signature string in format `v0={hex_hash}`.
73
+ */
74
+ function computeSignature(body, timestamp, signingSecret, rawBody) {
75
+ const bodyStr = rawBody ?? (typeof body === 'string' ? body : JSON.stringify(body));
76
+ const sigBasestring = `v0:${timestamp}:${bodyStr}`;
77
+ const hmac = crypto
78
+ .createHmac('sha256', signingSecret)
79
+ .update(sigBasestring)
80
+ .digest('hex');
81
+ return `v0=${hmac}`;
82
+ }
83
+ /**
84
+ * Timing-safe string comparison to prevent timing attacks.
85
+ *
86
+ * @param expected - Expected signature.
87
+ * @param actual - Actual signature from the request header.
88
+ * @returns `true` if the signatures match.
89
+ */
90
+ function safeCompare(expected, actual) {
91
+ const expectedBytes = new Uint8Array(Buffer.from(expected));
92
+ const actualBytes = new Uint8Array(Buffer.from(actual));
93
+ if (expectedBytes.length !== actualBytes.length) {
94
+ return false;
95
+ }
96
+ return crypto.timingSafeEqual(expectedBytes, actualBytes);
97
+ }
98
+ //# sourceMappingURL=slack-routes.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"slack-routes.js","sourceRoot":"","sources":["../../src/slack/slack-routes.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAGH,OAAO,MAAM,MAAM,QAAQ,CAAC;AAG5B,mEAAmE;AACnE,MAAM,uBAAuB,GAAG,GAAG,CAAC;AAEpC;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,MAAM,UAAU,oBAAoB,CAAC,GAAY,EAAE,aAAqB;IACpE,MAAM,SAAS,GAAG,GAAG,CAAC,OAAO,CAAC,2BAA2B,CAAuB,CAAC;IACjF,MAAM,SAAS,GAAG,GAAG,CAAC,OAAO,CAAC,mBAAmB,CAAuB,CAAC;IAEzE,IAAI,CAAC,SAAS,IAAI,CAAC,SAAS,EAAE,CAAC;QAC3B,OAAO,KAAK,CAAC;IACjB,CAAC;IAED,+DAA+D;IAC/D,IAAI,eAAe,CAAC,SAAS,CAAC,EAAE,CAAC;QAC7B,OAAO,KAAK,CAAC;IACjB,CAAC;IAED,8DAA8D;IAC9D,MAAM,OAAO,GAAI,GAA0B,CAAC,OAAO,CAAC;IACpD,MAAM,iBAAiB,GAAG,gBAAgB,CAAC,GAAG,CAAC,IAAI,EAAE,SAAS,EAAE,aAAa,EAAE,OAAO,CAAC,CAAC;IAExF,uDAAuD;IACvD,OAAO,WAAW,CAAC,iBAAiB,EAAE,SAAS,CAAC,CAAC;AACrD,CAAC;AAED;;;;;GAKG;AACH,SAAS,eAAe,CAAC,SAAiB;IACtC,MAAM,WAAW,GAAG,QAAQ,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;IAC5C,IAAI,KAAK,CAAC,WAAW,CAAC,EAAE,CAAC;QACrB,OAAO,IAAI,CAAC;IAChB,CAAC;IACD,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC;IAClD,OAAO,CAAC,WAAW,GAAG,WAAW,CAAC,GAAG,uBAAuB,CAAC;AACjE,CAAC;AAED;;;;;;;GAOG;AACH,SAAS,gBAAgB,CAAC,IAAa,EAAE,SAAiB,EAAE,aAAqB,EAAE,OAAgB;IAC/F,MAAM,OAAO,GAAG,OAAO,IAAI,CAAC,OAAO,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC;IACpF,MAAM,aAAa,GAAG,MAAM,SAAS,IAAI,OAAO,EAAE,CAAC;IACnD,MAAM,IAAI,GAAG,MAAM;SACd,UAAU,CAAC,QAAQ,EAAE,aAAa,CAAC;SACnC,MAAM,CAAC,aAAa,CAAC;SACrB,MAAM,CAAC,KAAK,CAAC,CAAC;IACnB,OAAO,MAAM,IAAI,EAAE,CAAC;AACxB,CAAC;AAED;;;;;;GAMG;AACH,SAAS,WAAW,CAAC,QAAgB,EAAE,MAAc;IACjD,MAAM,aAAa,GAAG,IAAI,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;IAC5D,MAAM,WAAW,GAAG,IAAI,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;IAExD,IAAI,aAAa,CAAC,MAAM,KAAK,WAAW,CAAC,MAAM,EAAE,CAAC;QAC9C,OAAO,KAAK,CAAC;IACjB,CAAC;IAED,OAAO,MAAM,CAAC,eAAe,CAAC,aAAa,EAAE,WAAW,CAAC,CAAC;AAC9D,CAAC"}
@@ -0,0 +1,155 @@
1
+ /**
2
+ * @module @memberjunction/messaging-adapters
3
+ * @description Microsoft Teams-specific messaging adapter implementation.
4
+ *
5
+ * Extends `BaseMessagingAdapter` with Bot Framework operations for:
6
+ * - Sending and updating messages via `TurnContext`
7
+ * - Showing typing indicators via `ActivityTypes.Typing`
8
+ * - Formatting responses as Adaptive Cards
9
+ * - Stripping bot `<at>` mentions from message text
10
+ */
11
+ import { TurnContext } from 'botbuilder';
12
+ import { ExecuteAgentResult, MJAIAgentEntityExtended } from '@memberjunction/ai-core-plus';
13
+ import { BaseMessagingAdapter } from '../base/BaseMessagingAdapter.js';
14
+ import { IncomingMessage, FormattedResponse, MessagingAdapterSettings, AgentResponseMetadata } from '../base/types.js';
15
+ /**
16
+ * Microsoft Teams-specific adapter that implements all platform operations
17
+ * using the Bot Framework SDK (`botbuilder`).
18
+ *
19
+ * ## Features
20
+ * - Native typing indicators via `ActivityTypes.Typing`
21
+ * - Adaptive Card rich formatting for responses
22
+ * - Bot mention stripping (`<at>BotName</at>`) for clean agent input
23
+ * - User email extraction from Bot Framework activities
24
+ *
25
+ * ## Authentication
26
+ * Requires a Microsoft App ID and Password registered in Azure Bot Service.
27
+ * The Bot Framework SDK handles JWT token validation automatically.
28
+ *
29
+ * ## Thread History
30
+ * Teams thread history fetching via Microsoft Graph API is not yet implemented.
31
+ * This means conversations are currently single-turn. Multi-turn support
32
+ * requires Graph API access with `ChannelMessage.Read.All` permission.
33
+ */
34
+ export declare class TeamsAdapter extends BaseMessagingAdapter {
35
+ /** The bot's Microsoft App ID (also used as the bot's user ID). */
36
+ private botID;
37
+ /**
38
+ * Stored conversation references for proactive messaging.
39
+ * Maps conversation ID to the reference needed to send proactive messages.
40
+ * Entries are evicted after 24 hours to prevent unbounded growth.
41
+ */
42
+ private conversationReferences;
43
+ private static readonly CONV_REF_TTL_MS;
44
+ private static readonly CONV_REF_MAX_SIZE;
45
+ protected get PlatformName(): string;
46
+ constructor(settings: MessagingAdapterSettings);
47
+ /**
48
+ * Convert a Bot Framework `TurnContext` into a normalized `IncomingMessage`.
49
+ *
50
+ * Called by `TeamsMessagingExtension` when a message activity is received.
51
+ *
52
+ * @param turnContext - Bot Framework turn context for the current activity.
53
+ * @returns Normalized incoming message.
54
+ */
55
+ MapTeamsActivity(turnContext: TurnContext): IncomingMessage;
56
+ /**
57
+ * Initialize: set the bot ID from config or environment.
58
+ */
59
+ protected onInitialize(): Promise<void>;
60
+ protected getBotUserId(): string;
61
+ /**
62
+ * Send a typing indicator to the Teams conversation.
63
+ * Teams natively supports typing indicators via the Bot Framework.
64
+ */
65
+ protected showTypingIndicator(message: IncomingMessage, _agent?: MJAIAgentEntityExtended): Promise<void>;
66
+ /**
67
+ * Fetch thread history from Teams.
68
+ *
69
+ * NOTE: Not yet implemented. Requires Microsoft Graph API access with
70
+ * `ChannelMessage.Read.All` permission. Currently returns empty array,
71
+ * meaning conversations are single-turn.
72
+ *
73
+ * Future implementation would use:
74
+ * `GET /teams/{id}/channels/{id}/messages/{id}/replies`
75
+ */
76
+ protected fetchThreadHistory(_channelId: string, _threadId: string): Promise<IncomingMessage[]>;
77
+ /**
78
+ * Post a new streaming message or update an existing one.
79
+ * Falls back to sending a new message if the channel doesn't support updates.
80
+ *
81
+ * Instead of caching update support on the singleton, we detect per-turn
82
+ * by checking `channelId`. Web Chat (`'webchat'`) doesn't support updates;
83
+ * real Teams (`'msteams'`) does. For unknown channels we try/catch.
84
+ */
85
+ protected sendOrUpdateStreamingMessage(originalMessage: IncomingMessage, currentContent: string, existingMessageId: string | null, _agent?: MJAIAgentEntityExtended): Promise<string>;
86
+ /**
87
+ * Send the final formatted response as an Adaptive Card.
88
+ */
89
+ protected sendFinalMessage(originalMessage: IncomingMessage, response: FormattedResponse): Promise<void>;
90
+ /**
91
+ * Update the streaming progress message with the final Adaptive Card.
92
+ * Falls back to sending a new message if the channel doesn't support updates.
93
+ */
94
+ protected updateFinalMessage(originalMessage: IncomingMessage, messageId: string, response: FormattedResponse): Promise<void>;
95
+ /**
96
+ * Format agent response as a rich Teams Adaptive Card.
97
+ *
98
+ * When a full `ExecuteAgentResult` is available, builds a rich card with
99
+ * agent header, action buttons, explorer links, and metadata footer.
100
+ * Falls back to basic markdown-to-TextBlock conversion otherwise.
101
+ */
102
+ protected formatResponse(result: ExecuteAgentResult | null, agent: MJAIAgentEntityExtended, responseText: string, metadata?: AgentResponseMetadata): Promise<FormattedResponse>;
103
+ /**
104
+ * Strip the bot's `<at>` mention from the message text.
105
+ * Teams @mentions use the format `<at>BotName</at>`.
106
+ */
107
+ protected stripBotMention(text: string): string;
108
+ /**
109
+ * Look up the email for a Teams user.
110
+ * In Teams, the email is often available directly on the activity's `from` property.
111
+ *
112
+ * @param platformUserId - Teams user ID.
113
+ * @returns Email address, or `null` if not available.
114
+ */
115
+ protected lookupUserEmail(platformUserId: string): Promise<string | null>;
116
+ /**
117
+ * Detect whether the current channel supports `updateActivity`.
118
+ * Real Teams (`msteams`) supports updates; Web Chat (`webchat`) does not.
119
+ * Unknown channels are assumed to support updates (try/catch guards the call).
120
+ */
121
+ private channelSupportsUpdate;
122
+ /**
123
+ * Recently processed form activity IDs — prevents double-processing when
124
+ * Web Chat sends both an invoke and a message for the same Action.Submit.
125
+ * Uses timestamps instead of setTimeout for cleanup (avoids timer leaks).
126
+ */
127
+ private recentFormActivityIds;
128
+ private static readonly FORM_DEDUP_TTL_MS;
129
+ /**
130
+ * Handle an Adaptive Card Action.Submit from a form rendered in Teams.
131
+ *
132
+ * Extracts field values from `activity.value`, builds the same
133
+ * `@{_mode:"form",...}` payload that Slack uses for modal submissions,
134
+ * and routes through `HandleMessage()` as a synthetic IncomingMessage.
135
+ *
136
+ * Does NOT send a bot acknowledgement message — the agent's own response
137
+ * serves as the acknowledgement, and a bot-authored echo of the form values
138
+ * would pollute the conversation history the agent sees.
139
+ */
140
+ HandleFormSubmit(turnContext: TurnContext): Promise<void>;
141
+ /**
142
+ * Extract form field values from an Action.Submit activity.value object.
143
+ * Keys starting with "mj_form_" are input field IDs set by the card builder.
144
+ */
145
+ private extractFormFields;
146
+ /**
147
+ * Check if the bot was @mentioned in a Teams activity.
148
+ */
149
+ private hasBotMention;
150
+ /** Store a conversation reference with TTL-based eviction. */
151
+ private storeConversationRef;
152
+ /** Check if a form activity was recently processed (dedup). */
153
+ private isRecentFormActivity;
154
+ }
155
+ //# sourceMappingURL=TeamsAdapter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TeamsAdapter.d.ts","sourceRoot":"","sources":["../../src/teams/TeamsAdapter.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAAE,WAAW,EAAkD,MAAM,YAAY,CAAC;AACzF,OAAO,EAAE,kBAAkB,EAAE,uBAAuB,EAAE,MAAM,8BAA8B,CAAC;AAE3F,OAAO,EAAE,oBAAoB,EAAE,MAAM,iCAAiC,CAAC;AACvE,OAAO,EAAE,eAAe,EAAE,iBAAiB,EAAE,wBAAwB,EAAE,qBAAqB,EAAE,MAAM,kBAAkB,CAAC;AAIvH;;;;;;;;;;;;;;;;;;GAkBG;AACH,qBAAa,YAAa,SAAQ,oBAAoB;IAClD,mEAAmE;IACnE,OAAO,CAAC,KAAK,CAAc;IAE3B;;;;OAIG;IACH,OAAO,CAAC,sBAAsB,CAAiF;IAC/G,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,eAAe,CAAuB;IAC9D,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,iBAAiB,CAAU;IAEnD,SAAS,KAAK,YAAY,IAAI,MAAM,CAAoB;gBAE5C,QAAQ,EAAE,wBAAwB;IAI9C;;;;;;;OAOG;IACI,gBAAgB,CAAC,WAAW,EAAE,WAAW,GAAG,eAAe;IAyBlE;;OAEG;cACa,YAAY,IAAI,OAAO,CAAC,IAAI,CAAC;IAK7C,SAAS,CAAC,YAAY,IAAI,MAAM;IAIhC;;;OAGG;cACa,mBAAmB,CAAC,OAAO,EAAE,eAAe,EAAE,MAAM,CAAC,EAAE,uBAAuB,GAAG,OAAO,CAAC,IAAI,CAAC;IAO9G;;;;;;;;;OASG;cACa,kBAAkB,CAC9B,UAAU,EAAE,MAAM,EAClB,SAAS,EAAE,MAAM,GAClB,OAAO,CAAC,eAAe,EAAE,CAAC;IAO7B;;;;;;;OAOG;cACa,4BAA4B,CACxC,eAAe,EAAE,eAAe,EAChC,cAAc,EAAE,MAAM,EACtB,iBAAiB,EAAE,MAAM,GAAG,IAAI,EAChC,MAAM,CAAC,EAAE,uBAAuB,GACjC,OAAO,CAAC,MAAM,CAAC;IA8BlB;;OAEG;cACa,gBAAgB,CAAC,eAAe,EAAE,eAAe,EAAE,QAAQ,EAAE,iBAAiB,GAAG,OAAO,CAAC,IAAI,CAAC;IAe9G;;;OAGG;cACa,kBAAkB,CAC9B,eAAe,EAAE,eAAe,EAChC,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,iBAAiB,GAC5B,OAAO,CAAC,IAAI,CAAC;IAwBhB;;;;;;OAMG;cACa,cAAc,CAC1B,MAAM,EAAE,kBAAkB,GAAG,IAAI,EACjC,KAAK,EAAE,uBAAuB,EAC9B,YAAY,EAAE,MAAM,EACpB,QAAQ,CAAC,EAAE,qBAAqB,GACjC,OAAO,CAAC,iBAAiB,CAAC;IAe7B;;;OAGG;IACH,SAAS,CAAC,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM;IAI/C;;;;;;OAMG;cACa,eAAe,CAAC,cAAc,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAO/E;;;;OAIG;IACH,OAAO,CAAC,qBAAqB;IAQ7B;;;;OAIG;IACH,OAAO,CAAC,qBAAqB,CAA6B;IAC1D,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,iBAAiB,CAAU;IAEnD;;;;;;;;;;OAUG;IACU,gBAAgB,CAAC,WAAW,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;IA+DtE;;;OAGG;IACH,OAAO,CAAC,iBAAiB;IAmBzB;;OAEG;IACH,OAAO,CAAC,aAAa;IAWrB,8DAA8D;IAC9D,OAAO,CAAC,oBAAoB;IAkB5B,+DAA+D;IAC/D,OAAO,CAAC,oBAAoB;CAe/B"}