@projectcor/maia-components 2.11.78-16 → 2.11.78-2

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 (43) hide show
  1. package/CHANGELOG.md +0 -15
  2. package/lib/components/atoms/SessionGeneratingDot/SessionGeneratingDot.js +17 -0
  3. package/lib/components/atoms/SessionGeneratingDot/SessionGeneratingDot.styles.js +15 -0
  4. package/lib/components/atoms/SessionGeneratingDot/index.js +2 -0
  5. package/lib/components/atoms/SessionUnreadDot/SessionUnreadDot.js +12 -0
  6. package/lib/components/atoms/SessionUnreadDot/SessionUnreadDot.styles.js +8 -0
  7. package/lib/components/atoms/SessionUnreadDot/index.js +2 -0
  8. package/lib/components/molecules/ChatAIMessages/ChatAIMessages.js +46 -7
  9. package/lib/components/molecules/ChatAIModal/ChatAIModal.js +4 -5
  10. package/lib/components/molecules/Sidebar/Sidebar.js +51 -42
  11. package/lib/components/molecules/Sidebar/Sidebar.styles.js +10 -6
  12. package/lib/components/organisms/ChatAI/ChatAI.js +10 -2
  13. package/lib/hooks/useChatManager/useChatManager.js +456 -428
  14. package/lib/hooks/useChatMessages/useChatMessages.js +411 -249
  15. package/lib/hooks/useChats/useChats.js +8 -3
  16. package/lib/hooks/useOrchestratorStream/useOrchestratorStream.interface.js +1 -1
  17. package/lib/hooks/useOrchestratorStream/useOrchestratorStream.js +140 -496
  18. package/lib/hooks/useStreamingMessage/index.js +2 -3
  19. package/lib/hooks/useStreamingMessage/useStreamingMessage.js +13 -17
  20. package/lib/lang/br/index.js +7 -4
  21. package/lib/lang/en/index.js +7 -4
  22. package/lib/lang/es/index.js +7 -4
  23. package/lib/lang/fr/index.js +9 -5
  24. package/lib/store/chatsSidebarOptimistic.js +87 -0
  25. package/lib/store/chatsStore.types.js +1 -1
  26. package/lib/store/sessions/activeView.js +22 -0
  27. package/lib/store/sessions/index.js +10 -0
  28. package/lib/store/sessions/sessionHitlContext.js +15 -0
  29. package/lib/store/sessions/sessionNotificationSound.js +57 -0
  30. package/lib/store/sessions/sessionNotifications.js +111 -0
  31. package/lib/store/sessions/sessionNotifications.types.js +2 -0
  32. package/lib/store/sessions/sessionStreamManager.js +585 -0
  33. package/lib/store/sessions/sessionStreamingText.js +80 -0
  34. package/lib/store/sessions/sessionUnreadPersistence.js +49 -0
  35. package/lib/store/sessions/sessions.types.js +35 -0
  36. package/lib/store/sessions/useSessionMeta.js +39 -0
  37. package/lib/store/sessions/useSessionStreamingText.js +18 -0
  38. package/lib/store/sessions/useSessionsStore.js +234 -0
  39. package/lib/store/useChatsStore.js +41 -9
  40. package/lib/types/streamActivity.js +1 -1
  41. package/lib/types/userType.d.js +1 -1
  42. package/package.json +31 -70
  43. package/lib/hooks/useStreamingMessage/streamingStore.js +0 -69
@@ -0,0 +1,111 @@
1
+ import i18n from '../../lang';
2
+ import { SECTIONS } from '../../constants/config';
3
+ import { formatChatListTitleMentions } from '../../utils/renderContextMentions';
4
+ import { ChatHistoryRole } from '../../types/Chat';
5
+ import { useChatsStore } from '../useChatsStore';
6
+ import { useSessionsStore } from './useSessionsStore';
7
+ import { activeView } from './activeView';
8
+ import { playSessionFinishedSound } from './sessionNotificationSound';
9
+ var initialized = false;
10
+ var resolveSessionNotificationTitle = function resolveSessionNotificationTitle(sessionId) {
11
+ var _chat$title, _meta$title, _userMessage$message;
12
+ var chat = useChatsStore.getState().chats.find(function (item) {
13
+ return item.sessionExternalId === sessionId;
14
+ });
15
+ if (chat !== null && chat !== void 0 && (_chat$title = chat.title) !== null && _chat$title !== void 0 && _chat$title.trim()) {
16
+ return formatChatListTitleMentions(chat.title);
17
+ }
18
+ var meta = useSessionsStore.getState().getMeta(sessionId);
19
+ if (meta !== null && meta !== void 0 && (_meta$title = meta.title) !== null && _meta$title !== void 0 && _meta$title.trim()) {
20
+ return meta.title.trim();
21
+ }
22
+ var messages = useSessionsStore.getState().getMessages(sessionId);
23
+ var userMessage = messages.find(function (msg) {
24
+ var _msg$user;
25
+ return msg.role === ChatHistoryRole.USER || ((_msg$user = msg.user) === null || _msg$user === void 0 ? void 0 : _msg$user.id) && msg.user.id !== 'assistant';
26
+ });
27
+ var raw = userMessage === null || userMessage === void 0 || (_userMessage$message = userMessage.message) === null || _userMessage$message === void 0 ? void 0 : _userMessage$message.trim();
28
+ if (raw) {
29
+ return raw.length > 60 ? "".concat(raw.slice(0, 60), "\u2026") : raw;
30
+ }
31
+ return i18n.t('conversations.emptyLabel', {
32
+ ns: SECTIONS.chatAI,
33
+ defaultValue: 'Conversation'
34
+ });
35
+ };
36
+ var buildNotificationMessage = function buildNotificationMessage(kind, title) {
37
+ var truncatedTitle = title.length > 48 ? "".concat(title.slice(0, 48), "\u2026") : title;
38
+ if (kind === 'approval_required') {
39
+ return i18n.t('conversations.sessionFinishedApproval', {
40
+ ns: SECTIONS.chatAI,
41
+ title: truncatedTitle,
42
+ defaultValue: '{{title}} requires your approval'
43
+ });
44
+ }
45
+ if (kind === 'error') {
46
+ return i18n.t('conversations.sessionFinishedError', {
47
+ ns: SECTIONS.chatAI,
48
+ title: truncatedTitle,
49
+ defaultValue: '{{title}} encountered an error'
50
+ });
51
+ }
52
+ return i18n.t('conversations.sessionFinished', {
53
+ ns: SECTIONS.chatAI,
54
+ title: truncatedTitle,
55
+ defaultValue: '{{title}} finished responding'
56
+ });
57
+ };
58
+ var showBrowserNotificationIfAllowed = function showBrowserNotificationIfAllowed(message) {
59
+ if (typeof window === 'undefined' || !('Notification' in window)) return;
60
+ if (Notification.permission !== 'granted') return;
61
+ if (!document.hidden) return;
62
+ try {
63
+ // eslint-disable-next-line no-new
64
+ new Notification('MAIA', {
65
+ body: message,
66
+ tag: 'maia-session-finished'
67
+ });
68
+ } catch (_unused) {
69
+ // ignore
70
+ }
71
+ };
72
+ var handleSessionFinishedEvent = function handleSessionFinishedEvent(event) {
73
+ var _ref = event,
74
+ detail = _ref.detail;
75
+ if (!(detail !== null && detail !== void 0 && detail.sessionId)) return;
76
+ playSessionFinishedSound();
77
+ var message = buildNotificationMessage(detail.kind, resolveSessionNotificationTitle(detail.sessionId));
78
+ document.dispatchEvent(new CustomEvent('snackbar-event', {
79
+ detail: {
80
+ show: true,
81
+ severity: detail.kind === 'error' ? 'error' : 'info',
82
+ message: message,
83
+ autoHideDuration: 5000
84
+ }
85
+ }));
86
+ showBrowserNotificationIfAllowed(message);
87
+ };
88
+
89
+ /** Registra el listener global (idempotente). Sobrevive al desmontaje del chat visible. */
90
+ export var ensureSessionNotificationsInitialized = function ensureSessionNotificationsInitialized() {
91
+ if (initialized || typeof document === 'undefined') return;
92
+ initialized = true;
93
+ document.addEventListener('maia-session-finished', handleSessionFinishedEvent);
94
+ };
95
+
96
+ /**
97
+ * Marca unread y emite evento solo si la sesión NO es la que el usuario está mirando.
98
+ * Toast + sonido los consume `ensureSessionNotificationsInitialized`.
99
+ */
100
+ export var notifySessionFinishedInBackground = function notifySessionFinishedInBackground(sessionId, kind) {
101
+ ensureSessionNotificationsInitialized();
102
+ if (activeView.is(sessionId)) return;
103
+ useSessionsStore.getState().markUnread(sessionId, true);
104
+ document.dispatchEvent(new CustomEvent('maia-session-finished', {
105
+ detail: {
106
+ sessionId: sessionId,
107
+ kind: kind
108
+ }
109
+ }));
110
+ };
111
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJpMThuIiwiU0VDVElPTlMiLCJmb3JtYXRDaGF0TGlzdFRpdGxlTWVudGlvbnMiLCJDaGF0SGlzdG9yeVJvbGUiLCJ1c2VDaGF0c1N0b3JlIiwidXNlU2Vzc2lvbnNTdG9yZSIsImFjdGl2ZVZpZXciLCJwbGF5U2Vzc2lvbkZpbmlzaGVkU291bmQiLCJpbml0aWFsaXplZCIsInJlc29sdmVTZXNzaW9uTm90aWZpY2F0aW9uVGl0bGUiLCJzZXNzaW9uSWQiLCJfY2hhdCR0aXRsZSIsIl9tZXRhJHRpdGxlIiwiX3VzZXJNZXNzYWdlJG1lc3NhZ2UiLCJjaGF0IiwiZ2V0U3RhdGUiLCJjaGF0cyIsImZpbmQiLCJpdGVtIiwic2Vzc2lvbkV4dGVybmFsSWQiLCJ0aXRsZSIsInRyaW0iLCJtZXRhIiwiZ2V0TWV0YSIsIm1lc3NhZ2VzIiwiZ2V0TWVzc2FnZXMiLCJ1c2VyTWVzc2FnZSIsIm1zZyIsIl9tc2ckdXNlciIsInJvbGUiLCJVU0VSIiwidXNlciIsImlkIiwicmF3IiwibWVzc2FnZSIsImxlbmd0aCIsImNvbmNhdCIsInNsaWNlIiwidCIsIm5zIiwiY2hhdEFJIiwiZGVmYXVsdFZhbHVlIiwiYnVpbGROb3RpZmljYXRpb25NZXNzYWdlIiwia2luZCIsInRydW5jYXRlZFRpdGxlIiwic2hvd0Jyb3dzZXJOb3RpZmljYXRpb25JZkFsbG93ZWQiLCJ3aW5kb3ciLCJOb3RpZmljYXRpb24iLCJwZXJtaXNzaW9uIiwiZG9jdW1lbnQiLCJoaWRkZW4iLCJib2R5IiwidGFnIiwiX3VudXNlZCIsImhhbmRsZVNlc3Npb25GaW5pc2hlZEV2ZW50IiwiZXZlbnQiLCJfcmVmIiwiZGV0YWlsIiwiZGlzcGF0Y2hFdmVudCIsIkN1c3RvbUV2ZW50Iiwic2hvdyIsInNldmVyaXR5IiwiYXV0b0hpZGVEdXJhdGlvbiIsImVuc3VyZVNlc3Npb25Ob3RpZmljYXRpb25zSW5pdGlhbGl6ZWQiLCJhZGRFdmVudExpc3RlbmVyIiwibm90aWZ5U2Vzc2lvbkZpbmlzaGVkSW5CYWNrZ3JvdW5kIiwiaXMiLCJtYXJrVW5yZWFkIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3N0b3JlL3Nlc3Npb25zL3Nlc3Npb25Ob3RpZmljYXRpb25zLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBpMThuIGZyb20gJy4uLy4uL2xhbmcnXG5pbXBvcnQgeyBTRUNUSU9OUyB9IGZyb20gJy4uLy4uL2NvbnN0YW50cy9jb25maWcnXG5pbXBvcnQgeyBmb3JtYXRDaGF0TGlzdFRpdGxlTWVudGlvbnMgfSBmcm9tICcuLi8uLi91dGlscy9yZW5kZXJDb250ZXh0TWVudGlvbnMnXG5pbXBvcnQgeyBDaGF0SGlzdG9yeVJvbGUgfSBmcm9tICcuLi8uLi90eXBlcy9DaGF0J1xuaW1wb3J0IHsgdXNlQ2hhdHNTdG9yZSB9IGZyb20gJy4uL3VzZUNoYXRzU3RvcmUnXG5pbXBvcnQgeyB1c2VTZXNzaW9uc1N0b3JlIH0gZnJvbSAnLi91c2VTZXNzaW9uc1N0b3JlJ1xuaW1wb3J0IHsgYWN0aXZlVmlldyB9IGZyb20gJy4vYWN0aXZlVmlldydcbmltcG9ydCB7IHBsYXlTZXNzaW9uRmluaXNoZWRTb3VuZCB9IGZyb20gJy4vc2Vzc2lvbk5vdGlmaWNhdGlvblNvdW5kJ1xuaW1wb3J0IHR5cGUgeyBNYWlhU2Vzc2lvbkZpbmlzaGVkRGV0YWlsLCBTZXNzaW9uRmluaXNoZWRLaW5kIH0gZnJvbSAnLi9zZXNzaW9uTm90aWZpY2F0aW9ucy50eXBlcydcblxubGV0IGluaXRpYWxpemVkID0gZmFsc2VcblxuY29uc3QgcmVzb2x2ZVNlc3Npb25Ob3RpZmljYXRpb25UaXRsZSA9IChzZXNzaW9uSWQ6IHN0cmluZyk6IHN0cmluZyA9PiB7XG4gIGNvbnN0IGNoYXQgPSB1c2VDaGF0c1N0b3JlLmdldFN0YXRlKCkuY2hhdHMuZmluZChpdGVtID0+IGl0ZW0uc2Vzc2lvbkV4dGVybmFsSWQgPT09IHNlc3Npb25JZClcbiAgaWYgKGNoYXQ/LnRpdGxlPy50cmltKCkpIHtcbiAgICByZXR1cm4gZm9ybWF0Q2hhdExpc3RUaXRsZU1lbnRpb25zKGNoYXQudGl0bGUpXG4gIH1cblxuICBjb25zdCBtZXRhID0gdXNlU2Vzc2lvbnNTdG9yZS5nZXRTdGF0ZSgpLmdldE1ldGEoc2Vzc2lvbklkKVxuICBpZiAobWV0YT8udGl0bGU/LnRyaW0oKSkge1xuICAgIHJldHVybiBtZXRhLnRpdGxlLnRyaW0oKVxuICB9XG5cbiAgY29uc3QgbWVzc2FnZXMgPSB1c2VTZXNzaW9uc1N0b3JlLmdldFN0YXRlKCkuZ2V0TWVzc2FnZXMoc2Vzc2lvbklkKVxuICBjb25zdCB1c2VyTWVzc2FnZSA9IG1lc3NhZ2VzLmZpbmQoXG4gICAgbXNnID0+IG1zZy5yb2xlID09PSBDaGF0SGlzdG9yeVJvbGUuVVNFUiB8fCAobXNnLnVzZXI/LmlkICYmIG1zZy51c2VyLmlkICE9PSAnYXNzaXN0YW50JylcbiAgKVxuICBjb25zdCByYXcgPSB1c2VyTWVzc2FnZT8ubWVzc2FnZT8udHJpbSgpXG4gIGlmIChyYXcpIHtcbiAgICByZXR1cm4gcmF3Lmxlbmd0aCA+IDYwID8gYCR7cmF3LnNsaWNlKDAsIDYwKX3igKZgIDogcmF3XG4gIH1cblxuICByZXR1cm4gaTE4bi50KCdjb252ZXJzYXRpb25zLmVtcHR5TGFiZWwnLCB7XG4gICAgbnM6IFNFQ1RJT05TLmNoYXRBSSxcbiAgICBkZWZhdWx0VmFsdWU6ICdDb252ZXJzYXRpb24nLFxuICB9KVxufVxuXG5jb25zdCBidWlsZE5vdGlmaWNhdGlvbk1lc3NhZ2UgPSAoa2luZDogU2Vzc2lvbkZpbmlzaGVkS2luZCwgdGl0bGU6IHN0cmluZyk6IHN0cmluZyA9PiB7XG4gIGNvbnN0IHRydW5jYXRlZFRpdGxlID0gdGl0bGUubGVuZ3RoID4gNDggPyBgJHt0aXRsZS5zbGljZSgwLCA0OCl94oCmYCA6IHRpdGxlXG5cbiAgaWYgKGtpbmQgPT09ICdhcHByb3ZhbF9yZXF1aXJlZCcpIHtcbiAgICByZXR1cm4gaTE4bi50KCdjb252ZXJzYXRpb25zLnNlc3Npb25GaW5pc2hlZEFwcHJvdmFsJywge1xuICAgICAgbnM6IFNFQ1RJT05TLmNoYXRBSSxcbiAgICAgIHRpdGxlOiB0cnVuY2F0ZWRUaXRsZSxcbiAgICAgIGRlZmF1bHRWYWx1ZTogJ3t7dGl0bGV9fSByZXF1aXJlcyB5b3VyIGFwcHJvdmFsJyxcbiAgICB9KVxuICB9XG5cbiAgaWYgKGtpbmQgPT09ICdlcnJvcicpIHtcbiAgICByZXR1cm4gaTE4bi50KCdjb252ZXJzYXRpb25zLnNlc3Npb25GaW5pc2hlZEVycm9yJywge1xuICAgICAgbnM6IFNFQ1RJT05TLmNoYXRBSSxcbiAgICAgIHRpdGxlOiB0cnVuY2F0ZWRUaXRsZSxcbiAgICAgIGRlZmF1bHRWYWx1ZTogJ3t7dGl0bGV9fSBlbmNvdW50ZXJlZCBhbiBlcnJvcicsXG4gICAgfSlcbiAgfVxuXG4gIHJldHVybiBpMThuLnQoJ2NvbnZlcnNhdGlvbnMuc2Vzc2lvbkZpbmlzaGVkJywge1xuICAgIG5zOiBTRUNUSU9OUy5jaGF0QUksXG4gICAgdGl0bGU6IHRydW5jYXRlZFRpdGxlLFxuICAgIGRlZmF1bHRWYWx1ZTogJ3t7dGl0bGV9fSBmaW5pc2hlZCByZXNwb25kaW5nJyxcbiAgfSlcbn1cblxuY29uc3Qgc2hvd0Jyb3dzZXJOb3RpZmljYXRpb25JZkFsbG93ZWQgPSAobWVzc2FnZTogc3RyaW5nKTogdm9pZCA9PiB7XG4gIGlmICh0eXBlb2Ygd2luZG93ID09PSAndW5kZWZpbmVkJyB8fCAhKCdOb3RpZmljYXRpb24nIGluIHdpbmRvdykpIHJldHVyblxuICBpZiAoTm90aWZpY2F0aW9uLnBlcm1pc3Npb24gIT09ICdncmFudGVkJykgcmV0dXJuXG4gIGlmICghZG9jdW1lbnQuaGlkZGVuKSByZXR1cm5cblxuICB0cnkge1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1uZXdcbiAgICBuZXcgTm90aWZpY2F0aW9uKCdNQUlBJywgeyBib2R5OiBtZXNzYWdlLCB0YWc6ICdtYWlhLXNlc3Npb24tZmluaXNoZWQnIH0pXG4gIH0gY2F0Y2gge1xuICAgIC8vIGlnbm9yZVxuICB9XG59XG5cbmNvbnN0IGhhbmRsZVNlc3Npb25GaW5pc2hlZEV2ZW50ID0gKGV2ZW50OiBFdmVudCk6IHZvaWQgPT4ge1xuICBjb25zdCB7IGRldGFpbCB9ID0gZXZlbnQgYXMgQ3VzdG9tRXZlbnQ8TWFpYVNlc3Npb25GaW5pc2hlZERldGFpbD5cbiAgaWYgKCFkZXRhaWw/LnNlc3Npb25JZCkgcmV0dXJuXG5cbiAgcGxheVNlc3Npb25GaW5pc2hlZFNvdW5kKClcblxuICBjb25zdCBtZXNzYWdlID0gYnVpbGROb3RpZmljYXRpb25NZXNzYWdlKGRldGFpbC5raW5kLCByZXNvbHZlU2Vzc2lvbk5vdGlmaWNhdGlvblRpdGxlKGRldGFpbC5zZXNzaW9uSWQpKVxuXG4gIGRvY3VtZW50LmRpc3BhdGNoRXZlbnQoXG4gICAgbmV3IEN1c3RvbUV2ZW50KCdzbmFja2Jhci1ldmVudCcsIHtcbiAgICAgIGRldGFpbDoge1xuICAgICAgICBzaG93OiB0cnVlLFxuICAgICAgICBzZXZlcml0eTogZGV0YWlsLmtpbmQgPT09ICdlcnJvcicgPyAnZXJyb3InIDogJ2luZm8nLFxuICAgICAgICBtZXNzYWdlLFxuICAgICAgICBhdXRvSGlkZUR1cmF0aW9uOiA1MDAwLFxuICAgICAgfSxcbiAgICB9KVxuICApXG5cbiAgc2hvd0Jyb3dzZXJOb3RpZmljYXRpb25JZkFsbG93ZWQobWVzc2FnZSlcbn1cblxuLyoqIFJlZ2lzdHJhIGVsIGxpc3RlbmVyIGdsb2JhbCAoaWRlbXBvdGVudGUpLiBTb2JyZXZpdmUgYWwgZGVzbW9udGFqZSBkZWwgY2hhdCB2aXNpYmxlLiAqL1xuZXhwb3J0IGNvbnN0IGVuc3VyZVNlc3Npb25Ob3RpZmljYXRpb25zSW5pdGlhbGl6ZWQgPSAoKTogdm9pZCA9PiB7XG4gIGlmIChpbml0aWFsaXplZCB8fCB0eXBlb2YgZG9jdW1lbnQgPT09ICd1bmRlZmluZWQnKSByZXR1cm5cbiAgaW5pdGlhbGl6ZWQgPSB0cnVlXG4gIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ21haWEtc2Vzc2lvbi1maW5pc2hlZCcsIGhhbmRsZVNlc3Npb25GaW5pc2hlZEV2ZW50KVxufVxuXG4vKipcbiAqIE1hcmNhIHVucmVhZCB5IGVtaXRlIGV2ZW50byBzb2xvIHNpIGxhIHNlc2nDs24gTk8gZXMgbGEgcXVlIGVsIHVzdWFyaW8gZXN0w6EgbWlyYW5kby5cbiAqIFRvYXN0ICsgc29uaWRvIGxvcyBjb25zdW1lIGBlbnN1cmVTZXNzaW9uTm90aWZpY2F0aW9uc0luaXRpYWxpemVkYC5cbiAqL1xuZXhwb3J0IGNvbnN0IG5vdGlmeVNlc3Npb25GaW5pc2hlZEluQmFja2dyb3VuZCA9IChzZXNzaW9uSWQ6IHN0cmluZywga2luZDogU2Vzc2lvbkZpbmlzaGVkS2luZCk6IHZvaWQgPT4ge1xuICBlbnN1cmVTZXNzaW9uTm90aWZpY2F0aW9uc0luaXRpYWxpemVkKClcblxuICBpZiAoYWN0aXZlVmlldy5pcyhzZXNzaW9uSWQpKSByZXR1cm5cblxuICB1c2VTZXNzaW9uc1N0b3JlLmdldFN0YXRlKCkubWFya1VucmVhZChzZXNzaW9uSWQsIHRydWUpXG4gIGRvY3VtZW50LmRpc3BhdGNoRXZlbnQoXG4gICAgbmV3IEN1c3RvbUV2ZW50KCdtYWlhLXNlc3Npb24tZmluaXNoZWQnLCB7XG4gICAgICBkZXRhaWw6IHsgc2Vzc2lvbklkLCBraW5kIH0gc2F0aXNmaWVzIE1haWFTZXNzaW9uRmluaXNoZWREZXRhaWwsXG4gICAgfSlcbiAgKVxufVxuIl0sIm1hcHBpbmdzIjoiQUFBQSxPQUFPQSxJQUFJLE1BQU0sWUFBWTtBQUM3QixTQUFTQyxRQUFRLFFBQVEsd0JBQXdCO0FBQ2pELFNBQVNDLDJCQUEyQixRQUFRLG1DQUFtQztBQUMvRSxTQUFTQyxlQUFlLFFBQVEsa0JBQWtCO0FBQ2xELFNBQVNDLGFBQWEsUUFBUSxrQkFBa0I7QUFDaEQsU0FBU0MsZ0JBQWdCLFFBQVEsb0JBQW9CO0FBQ3JELFNBQVNDLFVBQVUsUUFBUSxjQUFjO0FBQ3pDLFNBQVNDLHdCQUF3QixRQUFRLDRCQUE0QjtBQUdyRSxJQUFJQyxXQUFXLEdBQUcs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
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6W10sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3N0b3JlL3Nlc3Npb25zL3Nlc3Npb25Ob3RpZmljYXRpb25zLnR5cGVzLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCB0eXBlIFNlc3Npb25GaW5pc2hlZEtpbmQgPSAnY29tcGxldGUnIHwgJ2FwcHJvdmFsX3JlcXVpcmVkJyB8ICdlcnJvcidcblxuZXhwb3J0IHR5cGUgTWFpYVNlc3Npb25GaW5pc2hlZERldGFpbCA9IHtcbiAgc2Vzc2lvbklkOiBzdHJpbmdcbiAga2luZDogU2Vzc2lvbkZpbmlzaGVkS2luZFxufVxuIl0sIm1hcHBpbmdzIjoiIiwiaWdub3JlTGlzdCI6W119