@hiver/connector-agent 4.21.2 → 4.22.0-slackM2-beta.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/app/hig-slack/HigSlackSection.d.ts +3 -0
- package/app/hig-slack/HigSlackSection.d.ts.map +1 -1
- package/constants/tracking-events.d.ts +4 -0
- package/constants/tracking-events.d.ts.map +1 -1
- package/features/slack/api/__tests__/errors.test.d.ts +2 -0
- package/features/slack/api/__tests__/errors.test.d.ts.map +1 -0
- package/features/slack/api/__tests__/links.test.d.ts +2 -0
- package/features/slack/api/__tests__/links.test.d.ts.map +1 -0
- package/features/slack/api/conversations.d.ts +6 -2
- package/features/slack/api/conversations.d.ts.map +1 -1
- package/features/slack/api/errors.d.ts +37 -0
- package/features/slack/api/errors.d.ts.map +1 -0
- package/features/slack/api/index.d.ts +2 -0
- package/features/slack/api/index.d.ts.map +1 -1
- package/features/slack/api/linked-conv.d.ts +11 -2
- package/features/slack/api/linked-conv.d.ts.map +1 -1
- package/features/slack/api/links.d.ts +90 -0
- package/features/slack/api/links.d.ts.map +1 -0
- package/features/slack/api/members.d.ts +2 -2
- package/features/slack/api/members.d.ts.map +1 -1
- package/features/slack/api/messages.d.ts +1 -1
- package/features/slack/api/messages.d.ts.map +1 -1
- package/features/slack/components/LinkExistingModal/index.d.ts +29 -0
- package/features/slack/components/LinkExistingModal/index.d.ts.map +1 -0
- package/features/slack/components/LinkedConversationPanel/Composer.d.ts.map +1 -1
- package/features/slack/components/LinkedConversationPanel/LinkedChannelHeader.d.ts +10 -3
- package/features/slack/components/LinkedConversationPanel/LinkedChannelHeader.d.ts.map +1 -1
- package/features/slack/components/LinkedConversationPanel/MessageItem.d.ts.map +1 -1
- package/features/slack/components/LinkedConversationPanel/ThreadDetailView.d.ts.map +1 -1
- package/features/slack/components/LinkedConversationPanel/index.d.ts +18 -1
- package/features/slack/components/LinkedConversationPanel/index.d.ts.map +1 -1
- package/features/slack/components/SlackConversationTab.d.ts.map +1 -1
- package/features/slack/components/SlackLinkList.d.ts +23 -0
- package/features/slack/components/SlackLinkList.d.ts.map +1 -0
- package/features/slack/components/StartModal/index.d.ts +8 -2
- package/features/slack/components/StartModal/index.d.ts.map +1 -1
- package/features/slack/constants/api.d.ts +6 -0
- package/features/slack/constants/api.d.ts.map +1 -1
- package/features/slack/context.d.ts +18 -0
- package/features/slack/context.d.ts.map +1 -1
- package/features/slack/hooks/__tests__/useMarkLinkRead.test.d.ts +2 -0
- package/features/slack/hooks/__tests__/useMarkLinkRead.test.d.ts.map +1 -0
- package/features/slack/hooks/useMarkLinkRead.d.ts +33 -0
- package/features/slack/hooks/useMarkLinkRead.d.ts.map +1 -0
- package/features/slack/hooks/useSlackLinks.d.ts +32 -0
- package/features/slack/hooks/useSlackLinks.d.ts.map +1 -0
- package/features/slack/link-scope.d.ts +7 -0
- package/features/slack/link-scope.d.ts.map +1 -0
- package/features/slack/types/wire.d.ts +75 -0
- package/features/slack/types/wire.d.ts.map +1 -1
- package/features/slack/utils/__tests__/join-notices.test.d.ts +2 -0
- package/features/slack/utils/__tests__/join-notices.test.d.ts.map +1 -0
- package/features/slack/utils/__tests__/slack-thread-url.test.d.ts +2 -0
- package/features/slack/utils/__tests__/slack-thread-url.test.d.ts.map +1 -0
- package/features/slack/utils/join-notices.d.ts +3 -0
- package/features/slack/utils/join-notices.d.ts.map +1 -0
- package/features/slack/utils/slack-thread-url.d.ts +23 -0
- package/features/slack/utils/slack-thread-url.d.ts.map +1 -0
- package/index.d.ts +3 -0
- package/index.d.ts.map +1 -1
- package/index.es.js +13471 -12560
- package/index.umd.js +647 -647
- package/main-dev.d.ts.map +1 -1
- package/package.json +1 -1
- package/testing/mocks/handlers/slack.d.ts +22 -12
- package/testing/mocks/handlers/slack.d.ts.map +1 -1
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { SlackTargetKind } from '../types/wire';
|
|
2
|
+
export interface SlackLinkSummary {
|
|
3
|
+
/** The link row id — the selector every scoped call takes. */
|
|
4
|
+
linkId: string;
|
|
5
|
+
/** Display label; never empty (falls back per target kind when the
|
|
6
|
+
* backend hasn't enriched channelName yet). */
|
|
7
|
+
label: string;
|
|
8
|
+
targetKind: SlackTargetKind;
|
|
9
|
+
unreadCount: number;
|
|
10
|
+
}
|
|
11
|
+
export interface SlackLinksSummary {
|
|
12
|
+
links: SlackLinkSummary[];
|
|
13
|
+
/** Collated unread across all links — drives the tab badge / red dot. */
|
|
14
|
+
totalUnreadCount: number;
|
|
15
|
+
/** True once at least one link exists. */
|
|
16
|
+
isLinked: boolean;
|
|
17
|
+
cap: number;
|
|
18
|
+
remainingSlots: number;
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* Host-facing links summary (M2) — grows useSlackTabLabel's job to N
|
|
22
|
+
* links: per-item label/kind/unread for a switcher or tab strip, plus the
|
|
23
|
+
* collated unread count for a badge. Reads the SAME query/cache as the
|
|
24
|
+
* panel's own useLinks, so an active panel keeps this fresh for free.
|
|
25
|
+
*
|
|
26
|
+
* `refetchIntervalMs` defaults to 0 (no own polling — piggyback on the
|
|
27
|
+
* mounted panel's poll, mirroring useSlackTabLabel). Hosts that render
|
|
28
|
+
* badges with NO Slack surface mounted (e.g. a host-owned tab strip)
|
|
29
|
+
* pass a positive interval, e.g. LINKS_POLL_INTERVAL_MS.
|
|
30
|
+
*/
|
|
31
|
+
export declare function useSlackLinksSummary(hiverConvId: string, refetchIntervalMs?: number): SlackLinksSummary;
|
|
32
|
+
//# sourceMappingURL=useSlackLinks.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useSlackLinks.d.ts","sourceRoot":"","sources":["../../../../src/features/slack/hooks/useSlackLinks.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAEnE,MAAM,WAAW,gBAAgB;IAC/B,8DAA8D;IAC9D,MAAM,EAAE,MAAM,CAAC;IACf;oDACgD;IAChD,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,eAAe,CAAC;IAC5B,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,iBAAiB;IAChC,KAAK,EAAE,gBAAgB,EAAE,CAAC;IAC1B,yEAAyE;IACzE,gBAAgB,EAAE,MAAM,CAAC;IACzB,0CAA0C;IAC1C,QAAQ,EAAE,OAAO,CAAC;IAClB,GAAG,EAAE,MAAM,CAAC;IACZ,cAAc,EAAE,MAAM,CAAC;CACxB;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,oBAAoB,CAAC,WAAW,EAAE,MAAM,EAAE,iBAAiB,SAAI,GAAG,iBAAiB,CAelG"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"link-scope.d.ts","sourceRoot":"","sources":["../../../src/features/slack/link-scope.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAiB,EAAE,EAAE,SAAS,EAAc,MAAM,OAAO,CAAC;AAajE,eAAO,MAAM,iBAAiB,EAAE,EAAE,CAAC;IAAE,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,SAAS,CAAA;CAAE,CAE1E,CAAC;AAGF,eAAO,MAAM,YAAY,QAAO,MAAM,GAAG,SAAyC,CAAC"}
|
|
@@ -142,6 +142,77 @@ export interface SlackOlderPage {
|
|
|
142
142
|
/** Window size used by the server for this page. */
|
|
143
143
|
pageSize: number;
|
|
144
144
|
}
|
|
145
|
+
/** How a link row came to exist. `start_*` = created from Hiver (M1
|
|
146
|
+
* flows), `link_existing_*` = attached pre-existing Slack targets (M2).
|
|
147
|
+
* Drives the "started vs attached" labelling + analytics metadata. */
|
|
148
|
+
export type SlackLinkedVia = 'start_existing_channel' | 'start_new_channel' | 'link_existing_thread' | 'link_existing_channel';
|
|
149
|
+
/**
|
|
150
|
+
* One link row on GET /external-conversations/:hiverConvId/links (M2).
|
|
151
|
+
* `id` is THE linkId passed as the selector everywhere else — an opaque
|
|
152
|
+
* row id, deliberately not the Slack channel/thread id (a stale linkId
|
|
153
|
+
* 404s loudly; a stale Slack id would silently resolve to a re-attached
|
|
154
|
+
* row and post somewhere the rep never chose).
|
|
155
|
+
*/
|
|
156
|
+
export interface SlackLink {
|
|
157
|
+
id: string;
|
|
158
|
+
hiverConvId: string;
|
|
159
|
+
connectorId: string;
|
|
160
|
+
/** thread_ts for a thread, channel id for a channel. */
|
|
161
|
+
externalId: string;
|
|
162
|
+
/** Channel id when this is a thread; null for a channel link. */
|
|
163
|
+
parentExternalId: string | null;
|
|
164
|
+
channelId: string;
|
|
165
|
+
/** Null when targetKind === 'channel'. */
|
|
166
|
+
threadTs: string | null;
|
|
167
|
+
/** May be null on older links until first read — display code must
|
|
168
|
+
* fall back (see linkDisplayName). */
|
|
169
|
+
channelName: string | null;
|
|
170
|
+
targetKind: SlackTargetKind;
|
|
171
|
+
linkedVia: SlackLinkedVia;
|
|
172
|
+
linkedByUserId: string;
|
|
173
|
+
/** ISO timestamp; list is ordered by this ascending (stable tab
|
|
174
|
+
* positions as items are added). */
|
|
175
|
+
linkedAt: string;
|
|
176
|
+
/** Newest message ts known to the backend cache; null if nothing
|
|
177
|
+
* cached. Drives the cold-open "most recent activity" rule. */
|
|
178
|
+
lastActivityTs: string | null;
|
|
179
|
+
/** Per-viewer. Only POST …/read clears it; can legitimately be 0
|
|
180
|
+
* with history present (bounded cache) — never treat as a total. */
|
|
181
|
+
unreadCount: number;
|
|
182
|
+
}
|
|
183
|
+
/** GET …/links envelope. `cap`/`remainingSlots` are server-authoritative
|
|
184
|
+
* — never hardcode the 4 (decision D6). */
|
|
185
|
+
export interface SlackLinksResponse {
|
|
186
|
+
links: SlackLink[];
|
|
187
|
+
totalUnreadCount: number;
|
|
188
|
+
cap: number;
|
|
189
|
+
remainingSlots: number;
|
|
190
|
+
}
|
|
191
|
+
export interface LinkExistingThreadRequest {
|
|
192
|
+
hiverConvId: string;
|
|
193
|
+
channelId: string;
|
|
194
|
+
threadTs: string;
|
|
195
|
+
/** Always posted into the target before linking (no silent attach).
|
|
196
|
+
* Product decision D2: the link modal has no compose box — send ''. */
|
|
197
|
+
messageText: string;
|
|
198
|
+
}
|
|
199
|
+
export interface LinkExistingChannelRequest {
|
|
200
|
+
hiverConvId: string;
|
|
201
|
+
channelId: string;
|
|
202
|
+
messageText: string;
|
|
203
|
+
}
|
|
204
|
+
/**
|
|
205
|
+
* DUMMY CONTRACT (D1) — response of the pending /preview/thread
|
|
206
|
+
* endpoint, used to render the link-a-thread preview card before the
|
|
207
|
+
* rep confirms. Shape agreed in discussion; confirm with backend.
|
|
208
|
+
*/
|
|
209
|
+
export interface SlackThreadPreview {
|
|
210
|
+
/** First (root) message text of the thread. */
|
|
211
|
+
firstMessage: string;
|
|
212
|
+
channelName: string;
|
|
213
|
+
memberCount: number;
|
|
214
|
+
channelType: 'private' | 'public';
|
|
215
|
+
}
|
|
145
216
|
export interface MemberResolutionReport {
|
|
146
217
|
added: Array<{
|
|
147
218
|
email: string;
|
|
@@ -176,6 +247,10 @@ export interface PostMessageRequest {
|
|
|
176
247
|
/** Channel mode (B4): root ts of the thread to reply into. Omit to
|
|
177
248
|
* post a new top-level message (a new thread) to the channel. */
|
|
178
249
|
externalThreadTs?: string;
|
|
250
|
+
/** Multi-link selector (M2). Omitted ⇒ backend falls back to the most
|
|
251
|
+
* recently linked item (compat shim for the flag-off single-link UI).
|
|
252
|
+
* Always sent by the multi-link surfaces. */
|
|
253
|
+
linkId?: string;
|
|
179
254
|
}
|
|
180
255
|
export interface ChannelMember {
|
|
181
256
|
externalUserId: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wire.d.ts","sourceRoot":"","sources":["../../../../src/features/slack/types/wire.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"wire.d.ts","sourceRoot":"","sources":["../../../../src/features/slack/types/wire.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"join-notices.test.d.ts","sourceRoot":"","sources":["../../../../../src/features/slack/utils/__tests__/join-notices.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"slack-thread-url.test.d.ts","sourceRoot":"","sources":["../../../../../src/features/slack/utils/__tests__/slack-thread-url.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"join-notices.d.ts","sourceRoot":"","sources":["../../../../src/features/slack/utils/join-notices.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AA6BhE,eAAO,MAAM,mBAAmB,aAAc,YAAY,EAAE,KAAG,YAAY,EAgC1E,CAAC"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Parse a pasted Slack thread permalink into the {channelId, threadTs}
|
|
3
|
+
* pair the /link/existing-thread and /preview/thread endpoints need.
|
|
4
|
+
* Parsing happens CLIENT-SIDE (decision D1) — the backend receives ids,
|
|
5
|
+
* never the raw URL.
|
|
6
|
+
*
|
|
7
|
+
* Permalink shapes Slack produces ("Copy link" on a message):
|
|
8
|
+
* https://<ws>.slack.com/archives/C0A21B3CD/p1727123456123456
|
|
9
|
+
* https://<ws>.slack.com/archives/C0A21B3CD/p1727123456123456
|
|
10
|
+
* ?thread_ts=1727123450.000200&cid=C0A21B3CD
|
|
11
|
+
*
|
|
12
|
+
* The `p<16 digits>` segment is the MESSAGE's ts with the dot removed
|
|
13
|
+
* (last 6 digits are the fractional part). When a `thread_ts` query param
|
|
14
|
+
* is present the copied message is a REPLY — the thread root is
|
|
15
|
+
* `thread_ts`, not the p-segment — so that wins. Otherwise the message is
|
|
16
|
+
* the root itself.
|
|
17
|
+
*/
|
|
18
|
+
export interface ParsedSlackThreadUrl {
|
|
19
|
+
channelId: string;
|
|
20
|
+
threadTs: string;
|
|
21
|
+
}
|
|
22
|
+
export declare const parseSlackThreadUrl: (raw: string) => ParsedSlackThreadUrl | null;
|
|
23
|
+
//# sourceMappingURL=slack-thread-url.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"slack-thread-url.d.ts","sourceRoot":"","sources":["../../../../src/features/slack/utils/slack-thread-url.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,MAAM,WAAW,oBAAoB;IACnC,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAUD,eAAO,MAAM,mBAAmB,QAAS,MAAM,KAAG,oBAAoB,GAAG,IAuBxE,CAAC"}
|
package/index.d.ts
CHANGED
|
@@ -20,6 +20,9 @@ export type { HigSlackSectionProps, HigSlackSectionBodyProps } from './app/hig-s
|
|
|
20
20
|
export { HigSlackConnectModalIsland } from './app/hig-slack/HigSlackConnectModalIsland';
|
|
21
21
|
export type { HigSlackConnectModalIslandProps } from './app/hig-slack/HigSlackConnectModalIsland';
|
|
22
22
|
export { useSlackTabLabel } from './features/slack/hooks/useSlackTabLabel';
|
|
23
|
+
export { useSlackLinksSummary } from './features/slack/hooks/useSlackLinks';
|
|
24
|
+
export type { SlackLinkSummary, SlackLinksSummary } from './features/slack/hooks/useSlackLinks';
|
|
25
|
+
export { SLACK_LINKS_API } from './features/slack/constants/api';
|
|
23
26
|
export { fetchAppCfValues, fetchDeferredAppCfValues } from './api/appCustomField';
|
|
24
27
|
export type { AppCfValuesRequest, AppCfValuesResponse, AppFieldValue, AppFieldValueStatus } from './api/appCustomField';
|
|
25
28
|
export { useConnectorSelectedEmail } from './store/connectorEmailStore';
|
package/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,IAAI,iBAAiB,EAAE,MAAM,aAAa,CAAC;AACvD,OAAO,EAAE,uBAAuB,EAAE,MAAM,iBAAiB,CAAC;AAC1D,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,EAAE,qBAAqB,EAAE,2BAA2B,EAAE,yBAAyB,EAAE,MAAM,oBAAoB,CAAC;AACnH,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACnD,OAAO,EACL,gBAAgB,EAChB,qBAAqB,EACrB,0BAA0B,EAC1B,mBAAmB,EACnB,sBAAsB,EACvB,MAAM,sBAAsB,CAAC;AAC9B,YAAY,EAAE,aAAa,EAAE,cAAc,EAAE,SAAS,EAAE,SAAS,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAC9G,OAAO,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACnE,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAC1D,YAAY,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AACpE,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAChD,YAAY,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAG1D,OAAO,EAAE,uBAAuB,EAAE,MAAM,0CAA0C,CAAC;AACnF,YAAY,EAAE,4BAA4B,EAAE,MAAM,0CAA0C,CAAC;AAI7F,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAC9C,YAAY,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACxD,OAAO,EAAE,eAAe,EAAE,mBAAmB,EAAE,MAAM,iCAAiC,CAAC;AACvF,YAAY,EAAE,oBAAoB,EAAE,wBAAwB,EAAE,MAAM,iCAAiC,CAAC;AAGtG,OAAO,EAAE,0BAA0B,EAAE,MAAM,4CAA4C,CAAC;AACxF,YAAY,EAAE,+BAA+B,EAAE,MAAM,4CAA4C,CAAC;AAIlG,OAAO,EAAE,gBAAgB,EAAE,MAAM,yCAAyC,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,IAAI,iBAAiB,EAAE,MAAM,aAAa,CAAC;AACvD,OAAO,EAAE,uBAAuB,EAAE,MAAM,iBAAiB,CAAC;AAC1D,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,EAAE,qBAAqB,EAAE,2BAA2B,EAAE,yBAAyB,EAAE,MAAM,oBAAoB,CAAC;AACnH,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACnD,OAAO,EACL,gBAAgB,EAChB,qBAAqB,EACrB,0BAA0B,EAC1B,mBAAmB,EACnB,sBAAsB,EACvB,MAAM,sBAAsB,CAAC;AAC9B,YAAY,EAAE,aAAa,EAAE,cAAc,EAAE,SAAS,EAAE,SAAS,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAC9G,OAAO,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACnE,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAC1D,YAAY,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AACpE,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAChD,YAAY,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAG1D,OAAO,EAAE,uBAAuB,EAAE,MAAM,0CAA0C,CAAC;AACnF,YAAY,EAAE,4BAA4B,EAAE,MAAM,0CAA0C,CAAC;AAI7F,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAC9C,YAAY,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACxD,OAAO,EAAE,eAAe,EAAE,mBAAmB,EAAE,MAAM,iCAAiC,CAAC;AACvF,YAAY,EAAE,oBAAoB,EAAE,wBAAwB,EAAE,MAAM,iCAAiC,CAAC;AAGtG,OAAO,EAAE,0BAA0B,EAAE,MAAM,4CAA4C,CAAC;AACxF,YAAY,EAAE,+BAA+B,EAAE,MAAM,4CAA4C,CAAC;AAIlG,OAAO,EAAE,gBAAgB,EAAE,MAAM,yCAAyC,CAAC;AAK3E,OAAO,EAAE,oBAAoB,EAAE,MAAM,sCAAsC,CAAC;AAC5E,YAAY,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,sCAAsC,CAAC;AAIhG,OAAO,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAC;AACjE,OAAO,EAAE,gBAAgB,EAAE,wBAAwB,EAAE,MAAM,sBAAsB,CAAC;AAClF,YAAY,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,aAAa,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AACxH,OAAO,EAAE,yBAAyB,EAAE,MAAM,6BAA6B,CAAC;AACxE,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,sBAAsB,EAAE,2BAA2B,EAAE,MAAM,yBAAyB,CAAC;AAC9F,YAAY,EAAE,oBAAoB,EAAE,oBAAoB,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AAChH,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC"}
|