@projectcor/maia-components 2.35.9 → 2.37.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/README.md +2 -0
- package/lib/components/atoms/ActionableButton.js +1 -6
- package/lib/components/atoms/ApprovalBox/ApprovalBox.js +63 -4
- package/lib/components/atoms/ApprovalBox/ApprovalBox.styles.js +16 -4
- package/lib/components/atoms/ContextMentionChip/buildChipElement.js +12 -1
- package/lib/components/atoms/ContextMentionEditor/ContextMentionEditor.js +127 -5
- package/lib/components/atoms/ContextMentionItem/ContextMentionItem.js +2 -29
- package/lib/components/atoms/ContextMentionItem/ContextMentionItem.styles.js +24 -33
- package/lib/components/atoms/ContextMentionPopover/ContextMentionPopover.js +2 -19
- package/lib/components/atoms/FrequentlyAskedQuestions/FrequentlyAskedQuestions.js +4 -14
- package/lib/components/atoms/FrequentlyAskedQuestions/FrequentlyAskedQuestions.styles.js +3 -12
- package/lib/components/atoms/FrequentlyUsedActions/FrequentlyUsedActions.js +4 -20
- package/lib/components/atoms/FrequentlyUsedActions/FrequentlyUsedActions.styles.js +7 -18
- package/lib/components/atoms/MAIAInput/MAIAInput.js +243 -42
- package/lib/components/atoms/MAIAInput/styles.js +41 -44
- package/lib/components/atoms/SkillsDropdown/SkillsDropdown.js +208 -0
- package/lib/components/atoms/SkillsDropdown/SkillsDropdown.styles.js +77 -0
- package/lib/components/atoms/SkillsDropdown/index.js +2 -0
- package/lib/components/atoms/icons/PlusIcon.js +29 -0
- package/lib/components/atoms/icons/SkillCreatedByIcon.js +20 -0
- package/lib/components/atoms/icons/SkillVisibilityEveryoneIcon.js +23 -0
- package/lib/components/atoms/icons/SkillVisibilityOnlyMeIcon.js +23 -0
- package/lib/components/atoms/icons/SkillsNavIcon.js +4 -7
- package/lib/components/atoms/icons/index.js +5 -1
- package/lib/components/molecules/AbmSection/AbmAccessibilitySection/AbmAccessibilitySection.js +34 -11
- package/lib/components/molecules/ChatAIContent/ChatAIContent.js +5 -3
- package/lib/components/molecules/ChatAIHome/ChatAIHome.js +5 -16
- package/lib/components/molecules/ChatAIHome/ChatAIHomeMaiaker.js +2 -23
- package/lib/components/molecules/ChatAIHome/ChatAIHomeMaiaker.styles.js +5 -33
- package/lib/components/molecules/ChatAIHome/styles.js +2 -11
- package/lib/components/molecules/ChatAIMessages/ChatAICreateAgentActions.js +20 -31
- package/lib/components/molecules/ChatAIMessages/ChatAIMessages.js +4 -9
- package/lib/components/molecules/ChatAIModal/ChatAIModal.js +61 -21
- package/lib/components/molecules/ChatAIModal/ChatAIModal.styles.js +2 -2
- package/lib/components/molecules/ChatAIModal/components/ChatAiAgentOptions/ChatAiAgentOptions.js +1 -8
- package/lib/components/molecules/ChatAIModal/components/ChatAiAgentOptions/ChatAiAgentOptions.styles.js +9 -15
- package/lib/components/molecules/ChatAIModal/components/ChatAiModalFooter/ChatAiModalFooter.js +3 -14
- package/lib/components/molecules/ChatAIModal/components/ChatAiModalFooter/ChatAiModalFooter.styles.js +2 -2
- package/lib/components/molecules/ChatAIModal/components/ChatAiModalHeader/ChatAiModalHeader.js +11 -17
- package/lib/components/molecules/ChatAIModal/components/ChatAiModalHeader/ChatAiModalHeader.styles.js +5 -14
- package/lib/components/molecules/ChatAIModal/layout.js +2 -2
- package/lib/components/molecules/ChatAIMyAgents/ChatAIMyAgents.js +2 -12
- package/lib/components/molecules/ChatAIMyAgents/ChatAIMyAgents.styles.js +3 -3
- package/lib/components/molecules/ChatAIMySkills/ChatAIMySkills.js +334 -272
- package/lib/components/molecules/ChatAIMySkills/ChatAIMySkills.styles.js +132 -109
- package/lib/components/molecules/ChatFooter/ChatFooter.js +57 -63
- package/lib/components/molecules/ChatFooter/styles.js +6 -12
- package/lib/components/molecules/ContextMentionInput/ContextMentionInput.js +1 -3
- package/lib/components/molecules/MessageFeedback/MessageFeedback.js +5 -15
- package/lib/components/molecules/Sidebar/Sidebar.js +15 -7
- package/lib/components/molecules/Sidebar/Sidebar.layout.styles.js +3 -3
- package/lib/components/organisms/AbmAgentModal/AbmAgentModal.js +30 -40
- package/lib/components/organisms/AbmSkillGenerateModal/AbmSkillGenerateModal.js +25 -31
- package/lib/components/organisms/AbmSkillModal/AbmSkillModal.js +430 -203
- package/lib/components/organisms/AbmSkillModal/AbmSkillModal.styles.js +131 -74
- package/lib/components/organisms/ChatAI/ChatAI.js +1 -6
- package/lib/constants/config.js +1 -4
- package/lib/constants/permissions/utils.js +3 -3
- package/lib/hooks/useAgentModel/useCreateAgent.js +6 -6
- package/lib/hooks/useAgentModel/useUpdateAgent.js +6 -6
- package/lib/hooks/useChatManager/useChatManager.js +38 -58
- package/lib/hooks/useContextMentions.js +96 -56
- package/lib/hooks/useEntitySearch.js +92 -278
- package/lib/hooks/useEvent.js +15 -2
- package/lib/hooks/useMentionAllowedTypes.js +9 -25
- package/lib/hooks/useMentionPopover.js +9 -33
- package/lib/hooks/useSkillsCatalog.js +66 -0
- package/lib/lang/br/index.js +39 -12
- package/lib/lang/en/index.js +39 -12
- package/lib/lang/es/index.js +40 -13
- package/lib/lang/fr/index.js +40 -13
- package/lib/services/maia/Agents/setAgentToolGroups.js +2 -2
- package/lib/services/maia/Chats/getChatsByUserId.js +1 -1
- package/lib/services/maia/Orchestrator/orchestrator.js +16 -7
- package/lib/services/maia/Skills/createSkill.js +1 -1
- package/lib/services/maia/Skills/getSkills.js +70 -40
- package/lib/services/maia/Skills/updateSkill.js +1 -1
- package/lib/services/maia/index.js +2 -4
- package/lib/services/utils/fetchCOR.js +57 -106
- package/lib/services/utils/index.js +1 -2
- package/lib/store/faqsStore.types.js +1 -1
- package/lib/store/index.js +1 -2
- package/lib/store/sessions/sessionStreamManager.js +35 -61
- package/lib/store/sessions/sessions.types.js +1 -1
- package/lib/store/useChatsStore.js +3 -3
- package/lib/test/buttonMock.js +22 -0
- package/lib/test/fetchPolyfill.js +160 -0
- package/lib/test/fileMock.js +2 -0
- package/lib/test/global-context.js +49 -0
- package/lib/test/iconMock.js +19 -0
- package/lib/test/mockFetch.js +49 -0
- package/lib/test/portalRoot.js +13 -0
- package/lib/test/styleMock.js +2 -0
- package/lib/test/test-utils.js +26 -0
- package/lib/test/tooltipMock.js +11 -0
- package/lib/types/Chat.js +1 -1
- package/lib/types/FrequentlyAskedQuestion.js +1 -1
- package/lib/types/agentModal.js +1 -1
- package/lib/types/skill.js +1 -1
- package/lib/utils/contextMentionTriggers.js +2 -5
- package/lib/utils/normalizeAgentConnectors.js +44 -16
- package/lib/utils/renderContextMentions.js +39 -18
- package/package.json +9 -6
- package/lib/components/molecules/UsageBlockedBanner/UsageBlockedBanner.js +0 -28
- package/lib/components/molecules/UsageBlockedBanner/UsageBlockedBanner.styles.js +0 -47
- package/lib/components/molecules/UsageBlockedBanner/index.js +0 -2
- package/lib/services/maia/Usage/getUsage.js +0 -45
- package/lib/services/maia/Usage/index.js +0 -6
- package/lib/services/utils/MaiaApiError.js +0 -34
- package/lib/store/useUsageStore.js +0 -111
- package/lib/types/usage.js +0 -9
- package/lib/utils/usageBlockedMessage.js +0 -11
|
@@ -1,47 +0,0 @@
|
|
|
1
|
-
import styled from 'styled-components';
|
|
2
|
-
|
|
3
|
-
/**
|
|
4
|
-
* Figma Bloqueo (Home AI — collapsed): franja sobre el composer.
|
|
5
|
-
*
|
|
6
|
-
* Fluye en `SCComposerBlockedStack` en vez de posicionarse absoluto, y el solape con el
|
|
7
|
-
* input lo da el margen negativo. Con `position: absolute` el banner no empujaba nada y
|
|
8
|
-
* el stack le reservaba 36px fijos: alcanzaba para el mensaje en una línea, pero en el
|
|
9
|
-
* chat lateral el texto ocupa dos y el input se dibujaba encima, cortándolo. El alto lo
|
|
10
|
-
* decide el contenido, que es lo único que sobrevive a un ancho variable.
|
|
11
|
-
*
|
|
12
|
-
* `min-height` en vez de alto fijo, para que la franja de una línea siga midiendo lo que
|
|
13
|
-
* dice el Figma.
|
|
14
|
-
*/
|
|
15
|
-
export var SCUsageBlockedBanner = styled.div.withConfig({
|
|
16
|
-
displayName: "UsageBlockedBannerstyles__SCUsageBlockedBanner",
|
|
17
|
-
componentId: "sc-mji2o9-0"
|
|
18
|
-
})(["position:relative;z-index:0;width:100%;box-sizing:border-box;display:flex;flex-direction:row;justify-content:space-between;align-items:center;gap:10px;min-height:47px;margin-bottom:", ";padding:", ";border:1px solid #d9d9d9;border-bottom:", ";border-radius:", ";background-color:#f9f9f9;"], function (_ref) {
|
|
19
|
-
var _ref$$attachedToCompo = _ref.$attachedToComposer,
|
|
20
|
-
$attachedToComposer = _ref$$attachedToCompo === void 0 ? true : _ref$$attachedToCompo;
|
|
21
|
-
return $attachedToComposer ? '-8px' : '0';
|
|
22
|
-
}, function (_ref2) {
|
|
23
|
-
var _ref2$$attachedToComp = _ref2.$attachedToComposer,
|
|
24
|
-
$attachedToComposer = _ref2$$attachedToComp === void 0 ? true : _ref2$$attachedToComp;
|
|
25
|
-
return $attachedToComposer ? '10px 12px 18px' : '10px 12px';
|
|
26
|
-
}, function (_ref3) {
|
|
27
|
-
var _ref3$$attachedToComp = _ref3.$attachedToComposer,
|
|
28
|
-
$attachedToComposer = _ref3$$attachedToComp === void 0 ? true : _ref3$$attachedToComp;
|
|
29
|
-
return $attachedToComposer ? 'none' : '1px solid #d9d9d9';
|
|
30
|
-
}, function (_ref4) {
|
|
31
|
-
var _ref4$$attachedToComp = _ref4.$attachedToComposer,
|
|
32
|
-
$attachedToComposer = _ref4$$attachedToComp === void 0 ? true : _ref4$$attachedToComp;
|
|
33
|
-
return $attachedToComposer ? '8px 8px 0 0' : '8px';
|
|
34
|
-
});
|
|
35
|
-
export var SCUsageBlockedContent = styled.div.withConfig({
|
|
36
|
-
displayName: "UsageBlockedBannerstyles__SCUsageBlockedContent",
|
|
37
|
-
componentId: "sc-mji2o9-1"
|
|
38
|
-
})(["display:flex;flex-direction:row;align-items:center;gap:10px;min-width:0;flex:1;"]);
|
|
39
|
-
export var SCUsageBlockedIcon = styled.div.withConfig({
|
|
40
|
-
displayName: "UsageBlockedBannerstyles__SCUsageBlockedIcon",
|
|
41
|
-
componentId: "sc-mji2o9-2"
|
|
42
|
-
})(["flex-shrink:0;display:flex;align-items:center;justify-content:center;width:14px;height:14px;"]);
|
|
43
|
-
export var SCUsageBlockedText = styled.p.withConfig({
|
|
44
|
-
displayName: "UsageBlockedBannerstyles__SCUsageBlockedText",
|
|
45
|
-
componentId: "sc-mji2o9-3"
|
|
46
|
-
})(["margin:0;padding:0;color:#000000;font-family:'Work Sans',system-ui,-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;font-size:12px;font-weight:400;line-height:140%;letter-spacing:-0.015em;"]);
|
|
47
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJzdHlsZWQiLCJTQ1VzYWdlQmxvY2tlZEJhbm5lciIsImRpdiIsIndpdGhDb25maWciLCJkaXNwbGF5TmFtZSIsImNvbXBvbmVudElkIiwiX3JlZiIsIl9yZWYkJGF0dGFjaGVkVG9Db21wbyIsIiRhdHRhY2hlZFRvQ29tcG9zZXIiLCJfcmVmMiIsIl9yZWYyJCRhdHRhY2hlZFRvQ29tcCIsIl9yZWYzIiwiX3JlZjMkJGF0dGFjaGVkVG9Db21wIiwiX3JlZjQiLCJfcmVmNCQkYXR0YWNoZWRUb0NvbXAiLCJTQ1VzYWdlQmxvY2tlZENvbnRlbnQiLCJTQ1VzYWdlQmxvY2tlZEljb24iLCJTQ1VzYWdlQmxvY2tlZFRleHQiLCJwIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvbW9sZWN1bGVzL1VzYWdlQmxvY2tlZEJhbm5lci9Vc2FnZUJsb2NrZWRCYW5uZXIuc3R5bGVzLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBzdHlsZWQgZnJvbSAnc3R5bGVkLWNvbXBvbmVudHMnXG5cbi8qKlxuICogRmlnbWEgQmxvcXVlbyAoSG9tZSBBSSDigJQgY29sbGFwc2VkKTogZnJhbmphIHNvYnJlIGVsIGNvbXBvc2VyLlxuICpcbiAqIEZsdXllIGVuIGBTQ0NvbXBvc2VyQmxvY2tlZFN0YWNrYCBlbiB2ZXogZGUgcG9zaWNpb25hcnNlIGFic29sdXRvLCB5IGVsIHNvbGFwZSBjb24gZWxcbiAqIGlucHV0IGxvIGRhIGVsIG1hcmdlbiBuZWdhdGl2by4gQ29uIGBwb3NpdGlvbjogYWJzb2x1dGVgIGVsIGJhbm5lciBubyBlbXB1amFiYSBuYWRhIHlcbiAqIGVsIHN0YWNrIGxlIHJlc2VydmFiYSAzNnB4IGZpam9zOiBhbGNhbnphYmEgcGFyYSBlbCBtZW5zYWplIGVuIHVuYSBsw61uZWEsIHBlcm8gZW4gZWxcbiAqIGNoYXQgbGF0ZXJhbCBlbCB0ZXh0byBvY3VwYSBkb3MgeSBlbCBpbnB1dCBzZSBkaWJ1amFiYSBlbmNpbWEsIGNvcnTDoW5kb2xvLiBFbCBhbHRvIGxvXG4gKiBkZWNpZGUgZWwgY29udGVuaWRvLCBxdWUgZXMgbG8gw7puaWNvIHF1ZSBzb2JyZXZpdmUgYSB1biBhbmNobyB2YXJpYWJsZS5cbiAqXG4gKiBgbWluLWhlaWdodGAgZW4gdmV6IGRlIGFsdG8gZmlqbywgcGFyYSBxdWUgbGEgZnJhbmphIGRlIHVuYSBsw61uZWEgc2lnYSBtaWRpZW5kbyBsbyBxdWVcbiAqIGRpY2UgZWwgRmlnbWEuXG4gKi9cbmV4cG9ydCBjb25zdCBTQ1VzYWdlQmxvY2tlZEJhbm5lciA9IHN0eWxlZC5kaXY8eyAkYXR0YWNoZWRUb0NvbXBvc2VyPzogYm9vbGVhbiB9PmBcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB6LWluZGV4OiAwO1xuICB3aWR0aDogMTAwJTtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBnYXA6IDEwcHg7XG4gIG1pbi1oZWlnaHQ6IDQ3cHg7XG4gIC8qIDE4cHggYWJham8gKyBtYXJnZW4gbmVnYXRpdm8gPSBlbCBzb2xhcGUgY29uIGVsIGlucHV0LCBzaW4gb2N1bHRhciB0ZXh0by4gKi9cbiAgbWFyZ2luLWJvdHRvbTogJHsoeyAkYXR0YWNoZWRUb0NvbXBvc2VyID0gdHJ1ZSB9KSA9PiAoJGF0dGFjaGVkVG9Db21wb3NlciA/ICctOHB4JyA6ICcwJyl9O1xuICBwYWRkaW5nOiAkeyh7ICRhdHRhY2hlZFRvQ29tcG9zZXIgPSB0cnVlIH0pID0+ICgkYXR0YWNoZWRUb0NvbXBvc2VyID8gJzEwcHggMTJweCAxOHB4JyA6ICcxMHB4IDEycHgnKX07XG4gIGJvcmRlcjogMXB4IHNvbGlkICNkOWQ5ZDk7XG4gIGJvcmRlci1ib3R0b206ICR7KHsgJGF0dGFjaGVkVG9Db21wb3NlciA9IHRydWUgfSkgPT4gKCRhdHRhY2hlZFRvQ29tcG9zZXIgPyAnbm9uZScgOiAnMXB4IHNvbGlkICNkOWQ5ZDknKX07XG4gIGJvcmRlci1yYWRpdXM6ICR7KHsgJGF0dGFjaGVkVG9Db21wb3NlciA9IHRydWUgfSkgPT4gKCRhdHRhY2hlZFRvQ29tcG9zZXIgPyAnOHB4IDhweCAwIDAnIDogJzhweCcpfTtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2Y5ZjlmOTtcbmBcblxuZXhwb3J0IGNvbnN0IFNDVXNhZ2VCbG9ja2VkQ29udGVudCA9IHN0eWxlZC5kaXZgXG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGdhcDogMTBweDtcbiAgbWluLXdpZHRoOiAwO1xuICBmbGV4OiAxO1xuYFxuXG5leHBvcnQgY29uc3QgU0NVc2FnZUJsb2NrZWRJY29uID0gc3R5bGVkLmRpdmBcbiAgZmxleC1zaHJpbms6IDA7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICB3aWR0aDogMTRweDtcbiAgaGVpZ2h0OiAxNHB4O1xuYFxuXG5leHBvcnQgY29uc3QgU0NVc2FnZUJsb2NrZWRUZXh0ID0gc3R5bGVkLnBgXG4gIG1hcmdpbjogMDtcbiAgcGFkZGluZzogMDtcbiAgY29sb3I6ICMwMDAwMDA7XG4gIGZvbnQtZmFtaWx5OlxuICAgICdXb3JrIFNhbnMnLFxuICAgIHN5c3RlbS11aSxcbiAgICAtYXBwbGUtc3lzdGVtLFxuICAgIEJsaW5rTWFjU3lzdGVtRm9udCxcbiAgICAnU2Vnb2UgVUknLFxuICAgIHNhbnMtc2VyaWY7XG4gIGZvbnQtc2l6ZTogMTJweDtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgbGluZS1oZWlnaHQ6IDE0MCU7XG4gIGxldHRlci1zcGFjaW5nOiAtMC4wMTVlbTtcbmBcbiJdLCJtYXBwaW5ncyI6IkFBQUEsT0FBT0EsTUFBTSxNQUFNLG1CQUFtQjs7QUFFdEM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTyxJQUFNQyxvQkFBb0IsR0FBR0QsTUFBTSxDQUFDRSxHQUFHLENBQUFDLFVBQUE7RUFBQUMsV0FBQTtFQUFBQyxXQUFBO0FBQUEsd1NBWTNCLFVBQUFDLElBQUE7RUFBQSxJQUFBQyxxQkFBQSxHQUFBRCxJQUFBLENBQUdFLG1CQUFtQjtJQUFuQkEsbUJBQW1CLEdBQUFELHFCQUFBLGNBQUcsSUFBSSxHQUFBQSxxQkFBQTtFQUFBLE9BQVFDLG1CQUFtQixHQUFHLE1BQU0sR0FBRyxHQUFHO0FBQUEsQ0FBQyxFQUM5RSxVQUFBQyxLQUFBO0VBQUEsSUFBQUMscUJBQUEsR0FBQUQsS0FBQSxDQUFHRCxtQkFBbUI7SUFBbkJBLG1CQUFtQixHQUFBRSxxQkFBQSxjQUFHLElBQUksR0FBQUEscUJBQUE7RUFBQSxPQUFRRixtQkFBbUIsR0FBRyxnQkFBZ0IsR0FBRyxXQUFXO0FBQUEsQ0FBQyxFQUVwRixVQUFBRyxLQUFBO0VBQUEsSUFBQUMscUJBQUEsR0FBQUQsS0FBQSxDQUFHSCxtQkFBbUI7SUFBbkJBLG1CQUFtQixHQUFBSSxxQkFBQSxjQUFHLElBQUksR0FBQUEscUJBQUE7RUFBQSxPQUFRSixtQkFBbUIsR0FBRyxNQUFNLEdBQUcsbUJBQW1CO0FBQUEsQ0FBQyxFQUN4RixVQUFBSyxLQUFBO0VBQUEsSUFBQUMscUJBQUEsR0FBQUQsS0FBQSxDQUFHTCxtQkFBbUI7SUFBbkJBLG1CQUFtQixHQUFBTSxxQkFBQSxjQUFHLElBQUksR0FBQUEscUJBQUE7RUFBQSxPQUFRTixtQkFBbUIsR0FBRyxhQUFhLEdBQUcsS0FBSztBQUFBLENBQUMsQ0FFbkc7QUFFRCxPQUFPLElBQU1PLHFCQUFxQixHQUFHZixNQUFNLENBQUNFLEdBQUcsQ0FBQUMsVUFBQTtFQUFBQyxXQUFBO0VBQUFDLFdBQUE7QUFBQSx1RkFPOUM7QUFFRCxPQUFPLElBQU1XLGtCQUFrQixHQUFHaEIsTUFBTSxDQUFDRSxHQUFHLENBQUFDLFVBQUE7RUFBQUMsV0FBQTtFQUFBQyxXQUFBO0FBQUEsb0dBTzNDO0FBRUQsT0FBTyxJQUFNWSxrQkFBa0IsR0FBR2pCLE1BQU0sQ0FBQ2tCLENBQUMsQ0FBQWYsVUFBQTtFQUFBQyxXQUFBO0VBQUFDLFdBQUE7QUFBQSwwTUFlekMiLCJpZ25vcmVMaXN0IjpbXX0=
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
export { UsageBlockedBanner } from './UsageBlockedBanner';
|
|
2
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJVc2FnZUJsb2NrZWRCYW5uZXIiXSwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvY29tcG9uZW50cy9tb2xlY3VsZXMvVXNhZ2VCbG9ja2VkQmFubmVyL2luZGV4LnRzIl0sInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCB7IFVzYWdlQmxvY2tlZEJhbm5lciB9IGZyb20gJy4vVXNhZ2VCbG9ja2VkQmFubmVyJ1xuIl0sIm1hcHBpbmdzIjoiQUFBQSxTQUFTQSxrQkFBa0IsUUFBUSxzQkFBc0IiLCJpZ25vcmVMaXN0IjpbXX0=
|
|
@@ -1,45 +0,0 @@
|
|
|
1
|
-
import _asyncToGenerator from "@babel/runtime/helpers/asyncToGenerator";
|
|
2
|
-
import _regeneratorRuntime from "@babel/runtime/regenerator";
|
|
3
|
-
import { fetchMaia } from '../client';
|
|
4
|
-
import { mapCORLang } from '../../../lang/utils';
|
|
5
|
-
/**
|
|
6
|
-
* GET usage — pool de créditos/usos de IA de la company.
|
|
7
|
-
* Path relativo a MAIA_URL (que ya incluye /v1 cuando aplica).
|
|
8
|
-
*/
|
|
9
|
-
export var getUsage = /*#__PURE__*/function () {
|
|
10
|
-
var _ref = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee(lang) {
|
|
11
|
-
var response;
|
|
12
|
-
return _regeneratorRuntime.wrap(function (_context) {
|
|
13
|
-
while (1) switch (_context.prev = _context.next) {
|
|
14
|
-
case 0:
|
|
15
|
-
_context.next = 1;
|
|
16
|
-
return fetchMaia({
|
|
17
|
-
path: 'usage',
|
|
18
|
-
method: 'GET',
|
|
19
|
-
headers: {
|
|
20
|
-
'Accept-Language': mapCORLang(lang)
|
|
21
|
-
}
|
|
22
|
-
});
|
|
23
|
-
case 1:
|
|
24
|
-
response = _context.sent;
|
|
25
|
-
if (response.ok) {
|
|
26
|
-
_context.next = 2;
|
|
27
|
-
break;
|
|
28
|
-
}
|
|
29
|
-
throw new Error("HTTP error! status: ".concat(response.status));
|
|
30
|
-
case 2:
|
|
31
|
-
_context.next = 3;
|
|
32
|
-
return response.json();
|
|
33
|
-
case 3:
|
|
34
|
-
return _context.abrupt("return", _context.sent);
|
|
35
|
-
case 4:
|
|
36
|
-
case "end":
|
|
37
|
-
return _context.stop();
|
|
38
|
-
}
|
|
39
|
-
}, _callee);
|
|
40
|
-
}));
|
|
41
|
-
return function getUsage(_x) {
|
|
42
|
-
return _ref.apply(this, arguments);
|
|
43
|
-
};
|
|
44
|
-
}();
|
|
45
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJmZXRjaE1haWEiLCJtYXBDT1JMYW5nIiwiZ2V0VXNhZ2UiLCJfcmVmIiwiX2FzeW5jVG9HZW5lcmF0b3IiLCJfcmVnZW5lcmF0b3JSdW50aW1lIiwibWFyayIsIl9jYWxsZWUiLCJsYW5nIiwicmVzcG9uc2UiLCJ3cmFwIiwiX2NvbnRleHQiLCJwcmV2IiwibmV4dCIsInBhdGgiLCJtZXRob2QiLCJoZWFkZXJzIiwic2VudCIsIm9rIiwiRXJyb3IiLCJjb25jYXQiLCJzdGF0dXMiLCJqc29uIiwiYWJydXB0Iiwic3RvcCIsIl94IiwiYXBwbHkiLCJhcmd1bWVudHMiXSwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvc2VydmljZXMvbWFpYS9Vc2FnZS9nZXRVc2FnZS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBmZXRjaE1haWEgfSBmcm9tICcuLi9jbGllbnQnXG5pbXBvcnQgeyBtYXBDT1JMYW5nIH0gZnJvbSAnLi4vLi4vLi4vbGFuZy91dGlscydcbmltcG9ydCB0eXBlIHsgTWFpYVVzYWdlIH0gZnJvbSAnLi4vLi4vLi4vdHlwZXMvdXNhZ2UnXG5cbi8qKlxuICogR0VUIHVzYWdlIOKAlCBwb29sIGRlIGNyw6lkaXRvcy91c29zIGRlIElBIGRlIGxhIGNvbXBhbnkuXG4gKiBQYXRoIHJlbGF0aXZvIGEgTUFJQV9VUkwgKHF1ZSB5YSBpbmNsdXllIC92MSBjdWFuZG8gYXBsaWNhKS5cbiAqL1xuZXhwb3J0IGNvbnN0IGdldFVzYWdlID0gYXN5bmMgKGxhbmc6IHN0cmluZyk6IFByb21pc2U8TWFpYVVzYWdlPiA9PiB7XG4gIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgZmV0Y2hNYWlhKHtcbiAgICBwYXRoOiAndXNhZ2UnLFxuICAgIG1ldGhvZDogJ0dFVCcsXG4gICAgaGVhZGVyczoge1xuICAgICAgJ0FjY2VwdC1MYW5ndWFnZSc6IG1hcENPUkxhbmcobGFuZyksXG4gICAgfSxcbiAgfSlcblxuICBpZiAoIXJlc3BvbnNlLm9rKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGBIVFRQIGVycm9yISBzdGF0dXM6ICR7cmVzcG9uc2Uuc3RhdHVzfWApXG4gIH1cblxuICByZXR1cm4gKGF3YWl0IHJlc3BvbnNlLmpzb24oKSkgYXMgTWFpYVVzYWdlXG59XG4iXSwibWFwcGluZ3MiOiI7O0FBQUEsU0FBU0EsU0FBUyxRQUFRLFdBQVc7QUFDckMsU0FBU0MsVUFBVSxRQUFRLHFCQUFxQjtBQUdoRDtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU8sSUFBTUMsUUFBUTtFQUFBLElBQUFDLElBQUEsR0FBQUMsaUJBQUEsY0FBQUMsbUJBQUEsQ0FBQUMsSUFBQSxDQUFHLFNBQUFDLFFBQU9DLElBQVk7SUFBQSxJQUFBQyxRQUFBO0lBQUEsT0FBQUosbUJBQUEsQ0FBQUssSUFBQSxXQUFBQyxRQUFBO01BQUEsa0JBQUFBLFFBQUEsQ0FBQUMsSUFBQSxHQUFBRCxRQUFBLENBQUFFLElBQUE7UUFBQTtVQUFBRixRQUFBLENBQUFFLElBQUE7VUFBQSxPQUNsQmIsU0FBUyxDQUFDO1lBQy9CYyxJQUFJLEVBQUUsT0FBTztZQUNiQyxNQUFNLEVBQUUsS0FBSztZQUNiQyxPQUFPLEVBQUU7Y0FDUCxpQkFBaUIsRUFBRWYsVUFBVSxDQUFDTyxJQUFJO1lBQ3BDO1VBQ0YsQ0FBQyxDQUFDO1FBQUE7VUFOSUMsUUFBUSxHQUFBRSxRQUFBLENBQUFNLElBQUE7VUFBQSxJQVFUUixRQUFRLENBQUNTLEVBQUU7WUFBQVAsUUFBQSxDQUFBRSxJQUFBO1lBQUE7VUFBQTtVQUFBLE1BQ1IsSUFBSU0sS0FBSyx3QkFBQUMsTUFBQSxDQUF3QlgsUUFBUSxDQUFDWSxNQUFNLENBQUUsQ0FBQztRQUFBO1VBQUFWLFFBQUEsQ0FBQUUsSUFBQTtVQUFBLE9BRzdDSixRQUFRLENBQUNhLElBQUksQ0FBQyxDQUFDO1FBQUE7VUFBQSxPQUFBWCxRQUFBLENBQUFZLE1BQUEsV0FBQVosUUFBQSxDQUFBTSxJQUFBO1FBQUE7UUFBQTtVQUFBLE9BQUFOLFFBQUEsQ0FBQWEsSUFBQTtNQUFBO0lBQUEsR0FBQWpCLE9BQUE7RUFBQSxDQUM5QjtFQUFBLGdCQWRZTCxRQUFRQSxDQUFBdUIsRUFBQTtJQUFBLE9BQUF0QixJQUFBLENBQUF1QixLQUFBLE9BQUFDLFNBQUE7RUFBQTtBQUFBLEdBY3BCIiwiaWdub3JlTGlzdCI6W119
|
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
import { getUsage } from './getUsage';
|
|
2
|
-
export default {
|
|
3
|
-
getUsage: getUsage
|
|
4
|
-
};
|
|
5
|
-
export { getUsage };
|
|
6
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJnZXRVc2FnZSJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9zZXJ2aWNlcy9tYWlhL1VzYWdlL2luZGV4LnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGdldFVzYWdlIH0gZnJvbSAnLi9nZXRVc2FnZSdcblxuZXhwb3J0IGRlZmF1bHQge1xuICBnZXRVc2FnZSxcbn1cblxuZXhwb3J0IHsgZ2V0VXNhZ2UgfVxuIl0sIm1hcHBpbmdzIjoiQUFBQSxTQUFTQSxRQUFRLFFBQVEsWUFBWTtBQUVyQyxlQUFlO0VBQ2JBLFFBQVEsRUFBUkE7QUFDRixDQUFDO0FBRUQsU0FBU0EsUUFBUSIsImlnbm9yZUxpc3QiOltdfQ==
|
|
@@ -1,34 +0,0 @@
|
|
|
1
|
-
import _createClass from "@babel/runtime/helpers/createClass";
|
|
2
|
-
import _classCallCheck from "@babel/runtime/helpers/classCallCheck";
|
|
3
|
-
import _possibleConstructorReturn from "@babel/runtime/helpers/possibleConstructorReturn";
|
|
4
|
-
import _getPrototypeOf from "@babel/runtime/helpers/getPrototypeOf";
|
|
5
|
-
import _inherits from "@babel/runtime/helpers/inherits";
|
|
6
|
-
import _wrapNativeSuper from "@babel/runtime/helpers/wrapNativeSuper";
|
|
7
|
-
import _defineProperty from "@babel/runtime/helpers/defineProperty";
|
|
8
|
-
function _callSuper(t, o, e) { return o = _getPrototypeOf(o), _possibleConstructorReturn(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], _getPrototypeOf(t).constructor) : o.apply(t, e)); }
|
|
9
|
-
function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }
|
|
10
|
-
/**
|
|
11
|
-
* Error HTTP tipado de ms-maia (p. ej. 402 usage_quota_exceeded).
|
|
12
|
-
* Permite preservar status + code + message cuando fetchCOR falla.
|
|
13
|
-
*/
|
|
14
|
-
export var MaiaApiError = /*#__PURE__*/function (_Error) {
|
|
15
|
-
function MaiaApiError(message, status, options) {
|
|
16
|
-
var _this;
|
|
17
|
-
_classCallCheck(this, MaiaApiError);
|
|
18
|
-
_this = _callSuper(this, MaiaApiError, [message]);
|
|
19
|
-
_defineProperty(_this, "status", void 0);
|
|
20
|
-
_defineProperty(_this, "code", void 0);
|
|
21
|
-
_defineProperty(_this, "detail", void 0);
|
|
22
|
-
_this.name = 'MaiaApiError';
|
|
23
|
-
_this.status = status;
|
|
24
|
-
_this.code = options === null || options === void 0 ? void 0 : options.code;
|
|
25
|
-
_this.detail = options === null || options === void 0 ? void 0 : options.detail;
|
|
26
|
-
return _this;
|
|
27
|
-
}
|
|
28
|
-
_inherits(MaiaApiError, _Error);
|
|
29
|
-
return _createClass(MaiaApiError);
|
|
30
|
-
}(/*#__PURE__*/_wrapNativeSuper(Error));
|
|
31
|
-
export var isMaiaApiError = function isMaiaApiError(error) {
|
|
32
|
-
return error instanceof MaiaApiError;
|
|
33
|
-
};
|
|
34
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJNYWlhQXBpRXJyb3IiLCJfRXJyb3IiLCJtZXNzYWdlIiwic3RhdHVzIiwib3B0aW9ucyIsIl90aGlzIiwiX2NsYXNzQ2FsbENoZWNrIiwiX2NhbGxTdXBlciIsIl9kZWZpbmVQcm9wZXJ0eSIsIm5hbWUiLCJjb2RlIiwiZGV0YWlsIiwiX2luaGVyaXRzIiwiX2NyZWF0ZUNsYXNzIiwiX3dyYXBOYXRpdmVTdXBlciIsIkVycm9yIiwiaXNNYWlhQXBpRXJyb3IiLCJlcnJvciJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9zZXJ2aWNlcy91dGlscy9NYWlhQXBpRXJyb3IudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBFcnJvciBIVFRQIHRpcGFkbyBkZSBtcy1tYWlhIChwLiBlai4gNDAyIHVzYWdlX3F1b3RhX2V4Y2VlZGVkKS5cbiAqIFBlcm1pdGUgcHJlc2VydmFyIHN0YXR1cyArIGNvZGUgKyBtZXNzYWdlIGN1YW5kbyBmZXRjaENPUiBmYWxsYS5cbiAqL1xuZXhwb3J0IGNsYXNzIE1haWFBcGlFcnJvciBleHRlbmRzIEVycm9yIHtcbiAgcmVhZG9ubHkgc3RhdHVzOiBudW1iZXJcblxuICByZWFkb25seSBjb2RlPzogc3RyaW5nXG5cbiAgcmVhZG9ubHkgZGV0YWlsPzogdW5rbm93blxuXG4gIGNvbnN0cnVjdG9yKFxuICAgIG1lc3NhZ2U6IHN0cmluZyxcbiAgICBzdGF0dXM6IG51bWJlcixcbiAgICBvcHRpb25zPzoge1xuICAgICAgY29kZT86IHN0cmluZ1xuICAgICAgZGV0YWlsPzogdW5rbm93blxuICAgIH1cbiAgKSB7XG4gICAgc3VwZXIobWVzc2FnZSlcbiAgICB0aGlzLm5hbWUgPSAnTWFpYUFwaUVycm9yJ1xuICAgIHRoaXMuc3RhdHVzID0gc3RhdHVzXG4gICAgdGhpcy5jb2RlID0gb3B0aW9ucz8uY29kZVxuICAgIHRoaXMuZGV0YWlsID0gb3B0aW9ucz8uZGV0YWlsXG4gIH1cbn1cblxuZXhwb3J0IGNvbnN0IGlzTWFpYUFwaUVycm9yID0gKGVycm9yOiB1bmtub3duKTogZXJyb3IgaXMgTWFpYUFwaUVycm9yID0+IGVycm9yIGluc3RhbmNlb2YgTWFpYUFwaUVycm9yXG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7OztBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsV0FBYUEsWUFBWSwwQkFBQUMsTUFBQTtFQU92QixTQUFBRCxhQUNFRSxPQUFlLEVBQ2ZDLE1BQWMsRUFDZEMsT0FHQyxFQUNEO0lBQUEsSUFBQUMsS0FBQTtJQUFBQyxlQUFBLE9BQUFOLFlBQUE7SUFDQUssS0FBQSxHQUFBRSxVQUFBLE9BQUFQLFlBQUEsR0FBTUUsT0FBTztJQUFDTSxlQUFBLENBQUFILEtBQUE7SUFBQUcsZUFBQSxDQUFBSCxLQUFBO0lBQUFHLGVBQUEsQ0FBQUgsS0FBQTtJQUNkQSxLQUFBLENBQUtJLElBQUksR0FBRyxjQUFjO0lBQzFCSixLQUFBLENBQUtGLE1BQU0sR0FBR0EsTUFBTTtJQUNwQkUsS0FBQSxDQUFLSyxJQUFJLEdBQUdOLE9BQU8sYUFBUEEsT0FBTyx1QkFBUEEsT0FBTyxDQUFFTSxJQUFJO0lBQ3pCTCxLQUFBLENBQUtNLE1BQU0sR0FBR1AsT0FBTyxhQUFQQSxPQUFPLHVCQUFQQSxPQUFPLENBQUVPLE1BQU07SUFBQSxPQUFBTixLQUFBO0VBQy9CO0VBQUNPLFNBQUEsQ0FBQVosWUFBQSxFQUFBQyxNQUFBO0VBQUEsT0FBQVksWUFBQSxDQUFBYixZQUFBO0FBQUEsZUFBQWMsZ0JBQUEsQ0FwQitCQyxLQUFLO0FBdUJ2QyxPQUFPLElBQU1DLGNBQWMsR0FBRyxTQUFqQkEsY0FBY0EsQ0FBSUMsS0FBYztFQUFBLE9BQTRCQSxLQUFLLFlBQVlqQixZQUFZO0FBQUEiLCJpZ25vcmVMaXN0IjpbXX0=
|
|
@@ -1,111 +0,0 @@
|
|
|
1
|
-
import _asyncToGenerator from "@babel/runtime/helpers/asyncToGenerator";
|
|
2
|
-
import _defineProperty from "@babel/runtime/helpers/defineProperty";
|
|
3
|
-
import _regeneratorRuntime from "@babel/runtime/regenerator";
|
|
4
|
-
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
5
|
-
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
6
|
-
import { create } from 'zustand';
|
|
7
|
-
import i18n from '../lang';
|
|
8
|
-
import { getUsage } from '../services/maia/Usage';
|
|
9
|
-
import { USAGE_QUOTA_EXCEEDED_CODE } from '../types/usage';
|
|
10
|
-
import { getUsageBlockedBannerText } from '../utils/usageBlockedMessage';
|
|
11
|
-
var initialState = {
|
|
12
|
-
usage: null,
|
|
13
|
-
blocked: false,
|
|
14
|
-
quotaExceededMessage: null,
|
|
15
|
-
loading: false,
|
|
16
|
-
fetched: false
|
|
17
|
-
};
|
|
18
|
-
|
|
19
|
-
/** Evita que un GET usage en vuelo pise un 402 más reciente. */
|
|
20
|
-
var fetchSeq = 0;
|
|
21
|
-
export var useUsageStore = create(function (set, get) {
|
|
22
|
-
return _objectSpread(_objectSpread({}, initialState), {}, {
|
|
23
|
-
fetchUsage: function () {
|
|
24
|
-
var _fetchUsage = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee() {
|
|
25
|
-
var seq, usage, _t;
|
|
26
|
-
return _regeneratorRuntime.wrap(function (_context) {
|
|
27
|
-
while (1) switch (_context.prev = _context.next) {
|
|
28
|
-
case 0:
|
|
29
|
-
fetchSeq += 1;
|
|
30
|
-
seq = fetchSeq;
|
|
31
|
-
set({
|
|
32
|
-
loading: true
|
|
33
|
-
});
|
|
34
|
-
_context.prev = 1;
|
|
35
|
-
_context.next = 2;
|
|
36
|
-
return getUsage(i18n.language);
|
|
37
|
-
case 2:
|
|
38
|
-
usage = _context.sent;
|
|
39
|
-
if (!(seq !== fetchSeq)) {
|
|
40
|
-
_context.next = 3;
|
|
41
|
-
break;
|
|
42
|
-
}
|
|
43
|
-
return _context.abrupt("return");
|
|
44
|
-
case 3:
|
|
45
|
-
set(_objectSpread({
|
|
46
|
-
usage: usage,
|
|
47
|
-
// Solo bloquear cuando el backend lo dice explícitamente (fail-open si falta).
|
|
48
|
-
blocked: usage.blocked === true,
|
|
49
|
-
loading: false,
|
|
50
|
-
fetched: true
|
|
51
|
-
}, usage.blocked === true ? {
|
|
52
|
-
quotaExceededMessage: getUsageBlockedBannerText()
|
|
53
|
-
} : {
|
|
54
|
-
quotaExceededMessage: null
|
|
55
|
-
}));
|
|
56
|
-
_context.next = 6;
|
|
57
|
-
break;
|
|
58
|
-
case 4:
|
|
59
|
-
_context.prev = 4;
|
|
60
|
-
_t = _context["catch"](1);
|
|
61
|
-
if (!(seq !== fetchSeq)) {
|
|
62
|
-
_context.next = 5;
|
|
63
|
-
break;
|
|
64
|
-
}
|
|
65
|
-
return _context.abrupt("return");
|
|
66
|
-
case 5:
|
|
67
|
-
// Fail-open: si usage no responde, no desbloquear un 402 ya aplicado.
|
|
68
|
-
console.error('Failed to fetch MAIA usage', _t);
|
|
69
|
-
set(function (state) {
|
|
70
|
-
return {
|
|
71
|
-
loading: false,
|
|
72
|
-
fetched: true,
|
|
73
|
-
blocked: state.blocked
|
|
74
|
-
};
|
|
75
|
-
});
|
|
76
|
-
case 6:
|
|
77
|
-
case "end":
|
|
78
|
-
return _context.stop();
|
|
79
|
-
}
|
|
80
|
-
}, _callee, null, [[1, 4]]);
|
|
81
|
-
}));
|
|
82
|
-
function fetchUsage() {
|
|
83
|
-
return _fetchUsage.apply(this, arguments);
|
|
84
|
-
}
|
|
85
|
-
return fetchUsage;
|
|
86
|
-
}(),
|
|
87
|
-
applyQuotaExceeded: function applyQuotaExceeded() {
|
|
88
|
-
// Invalida fetches en vuelo para que no limpien el bloqueo del 402.
|
|
89
|
-
fetchSeq += 1;
|
|
90
|
-
set({
|
|
91
|
-
blocked: true,
|
|
92
|
-
quotaExceededMessage: getUsageBlockedBannerText()
|
|
93
|
-
});
|
|
94
|
-
// Alinear el resto de la UI con el backend (race del pool compartido).
|
|
95
|
-
get().fetchUsage()["catch"](function () {
|
|
96
|
-
return undefined;
|
|
97
|
-
});
|
|
98
|
-
},
|
|
99
|
-
reset: function reset() {
|
|
100
|
-
fetchSeq += 1;
|
|
101
|
-
set(_objectSpread({}, initialState));
|
|
102
|
-
}
|
|
103
|
-
});
|
|
104
|
-
});
|
|
105
|
-
export var getUsageStoreState = function getUsageStoreState() {
|
|
106
|
-
return useUsageStore.getState();
|
|
107
|
-
};
|
|
108
|
-
export var isUsageQuotaExceededError = function isUsageQuotaExceededError(code) {
|
|
109
|
-
return code === USAGE_QUOTA_EXCEEDED_CODE;
|
|
110
|
-
};
|
|
111
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJjcmVhdGUiLCJpMThuIiwiZ2V0VXNhZ2UiLCJVU0FHRV9RVU9UQV9FWENFRURFRF9DT0RFIiwiZ2V0VXNhZ2VCbG9ja2VkQmFubmVyVGV4dCIsImluaXRpYWxTdGF0ZSIsInVzYWdlIiwiYmxvY2tlZCIsInF1b3RhRXhjZWVkZWRNZXNzYWdlIiwibG9hZGluZyIsImZldGNoZWQiLCJmZXRjaFNlcSIsInVzZVVzYWdlU3RvcmUiLCJzZXQiLCJnZXQiLCJfb2JqZWN0U3ByZWFkIiwiZmV0Y2hVc2FnZSIsIl9mZXRjaFVzYWdlIiwiX2FzeW5jVG9HZW5lcmF0b3IiLCJfcmVnZW5lcmF0b3JSdW50aW1lIiwibWFyayIsIl9jYWxsZWUiLCJzZXEiLCJfdCIsIndyYXAiLCJfY29udGV4dCIsInByZXYiLCJuZXh0IiwibGFuZ3VhZ2UiLCJzZW50IiwiYWJydXB0IiwiY29uc29sZSIsImVycm9yIiwic3RhdGUiLCJzdG9wIiwiYXBwbHkiLCJhcmd1bWVudHMiLCJhcHBseVF1b3RhRXhjZWVkZWQiLCJ1bmRlZmluZWQiLCJyZXNldCIsImdldFVzYWdlU3RvcmVTdGF0ZSIsImdldFN0YXRlIiwiaXNVc2FnZVF1b3RhRXhjZWVkZWRFcnJvciIsImNvZGUiXSwic291cmNlcyI6WyIuLi8uLi9zcmMvc3RvcmUvdXNlVXNhZ2VTdG9yZS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjcmVhdGUgfSBmcm9tICd6dXN0YW5kJ1xuaW1wb3J0IGkxOG4gZnJvbSAnLi4vbGFuZydcbmltcG9ydCB7IGdldFVzYWdlIH0gZnJvbSAnLi4vc2VydmljZXMvbWFpYS9Vc2FnZSdcbmltcG9ydCB0eXBlIHsgTWFpYVVzYWdlIH0gZnJvbSAnLi4vdHlwZXMvdXNhZ2UnXG5pbXBvcnQgeyBVU0FHRV9RVU9UQV9FWENFRURFRF9DT0RFIH0gZnJvbSAnLi4vdHlwZXMvdXNhZ2UnXG5pbXBvcnQgeyBnZXRVc2FnZUJsb2NrZWRCYW5uZXJUZXh0IH0gZnJvbSAnLi4vdXRpbHMvdXNhZ2VCbG9ja2VkTWVzc2FnZSdcblxudHlwZSBVc2FnZVN0YXRlID0ge1xuICB1c2FnZTogTWFpYVVzYWdlIHwgbnVsbFxuICAvKiogRnVlbnRlIGRlIHZlcmRhZCBVSTogdHJ1ZSBzaSBHRVQgdXNhZ2UuYmxvY2tlZCBvIHRyYXMgNDAyIHVzYWdlX3F1b3RhX2V4Y2VlZGVkLiAqL1xuICBibG9ja2VkOiBib29sZWFuXG4gIC8qKiBUZXh0byBkZWwgY2FydGVsLCBzaWVtcHJlIGVuIGVsIGlkaW9tYSBkZSBsYSBhcHAgKG5vIGVsIG1lbnNhamUgY3J1ZG8gZGVsIDQwMikuICovXG4gIHF1b3RhRXhjZWVkZWRNZXNzYWdlOiBzdHJpbmcgfCBudWxsXG4gIGxvYWRpbmc6IGJvb2xlYW5cbiAgZmV0Y2hlZDogYm9vbGVhblxufVxuXG50eXBlIFVzYWdlQWN0aW9ucyA9IHtcbiAgZmV0Y2hVc2FnZTogKCkgPT4gUHJvbWlzZTx2b2lkPlxuICAvKiogTWFyY2EgYmxvcXVlbyBpbm1lZGlhdG8gcG9yIDQwMjsgcmVmcmVzY2EgdXNhZ2UgZW4gcGFyYWxlbG8uICovXG4gIGFwcGx5UXVvdGFFeGNlZWRlZDogKCkgPT4gdm9pZFxuICByZXNldDogKCkgPT4gdm9pZFxufVxuXG5jb25zdCBpbml0aWFsU3RhdGU6IFVzYWdlU3RhdGUgPSB7XG4gIHVzYWdlOiBudWxsLFxuICBibG9ja2VkOiBmYWxzZSxcbiAgcXVvdGFFeGNlZWRlZE1lc3NhZ2U6IG51bGwsXG4gIGxvYWRpbmc6IGZhbHNlLFxuICBmZXRjaGVkOiBmYWxzZSxcbn1cblxuLyoqIEV2aXRhIHF1ZSB1biBHRVQgdXNhZ2UgZW4gdnVlbG8gcGlzZSB1biA0MDIgbcOhcyByZWNpZW50ZS4gKi9cbmxldCBmZXRjaFNlcSA9IDBcblxuZXhwb3J0IGNvbnN0IHVzZVVzYWdlU3RvcmUgPSBjcmVhdGU8VXNhZ2VTdGF0ZSAmIFVzYWdlQWN0aW9ucz4oKHNldCwgZ2V0KSA9PiAoe1xuICAuLi5pbml0aWFsU3RhdGUsXG5cbiAgZmV0Y2hVc2FnZTogYXN5bmMgKCkgPT4ge1xuICAgIGZldGNoU2VxICs9IDFcbiAgICBjb25zdCBzZXEgPSBmZXRjaFNlcVxuICAgIHNldCh7IGxvYWRpbmc6IHRydWUgfSlcbiAgICB0cnkge1xuICAgICAgY29uc3QgdXNhZ2UgPSBhd2FpdCBnZXRVc2FnZShpMThuLmxhbmd1YWdlKVxuICAgICAgaWYgKHNlcSAhPT0gZmV0Y2hTZXEpIHJldHVyblxuXG4gICAgICBzZXQoe1xuICAgICAgICB1c2FnZSxcbiAgICAgICAgLy8gU29sbyBibG9xdWVhciBjdWFuZG8gZWwgYmFja2VuZCBsbyBkaWNlIGV4cGzDrWNpdGFtZW50ZSAoZmFpbC1vcGVuIHNpIGZhbHRhKS5cbiAgICAgICAgYmxvY2tlZDogdXNhZ2UuYmxvY2tlZCA9PT0gdHJ1ZSxcbiAgICAgICAgbG9hZGluZzogZmFsc2UsXG4gICAgICAgIGZldGNoZWQ6IHRydWUsXG4gICAgICAgIC4uLih1c2FnZS5ibG9ja2VkID09PSB0cnVlXG4gICAgICAgICAgPyB7IHF1b3RhRXhjZWVkZWRNZXNzYWdlOiBnZXRVc2FnZUJsb2NrZWRCYW5uZXJUZXh0KCkgfVxuICAgICAgICAgIDogeyBxdW90YUV4Y2VlZGVkTWVzc2FnZTogbnVsbCB9KSxcbiAgICAgIH0pXG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIGlmIChzZXEgIT09IGZldGNoU2VxKSByZXR1cm5cbiAgICAgIC8vIEZhaWwtb3Blbjogc2kgdXNhZ2Ugbm8gcmVzcG9uZGUsIG5vIGRlc2Jsb3F1ZWFyIHVuIDQwMiB5YSBhcGxpY2Fkby5cbiAgICAgIGNvbnNvbGUuZXJyb3IoJ0ZhaWxlZCB0byBmZXRjaCBNQUlBIHVzYWdlJywgZXJyb3IpXG4gICAgICBzZXQoc3RhdGUgPT4gKHtcbiAgICAgICAgbG9hZGluZzogZmFsc2UsXG4gICAgICAgIGZldGNoZWQ6IHRydWUsXG4gICAgICAgIGJsb2NrZWQ6IHN0YXRlLmJsb2NrZWQsXG4gICAgICB9KSlcbiAgICB9XG4gIH0sXG5cbiAgYXBwbHlRdW90YUV4Y2VlZGVkOiAoKSA9PiB7XG4gICAgLy8gSW52YWxpZGEgZmV0Y2hlcyBlbiB2dWVsbyBwYXJhIHF1ZSBubyBsaW1waWVuIGVsIGJsb3F1ZW8gZGVsIDQwMi5cbiAgICBmZXRjaFNlcSArPSAxXG4gICAgc2V0KHtcbiAgICAgIGJsb2NrZWQ6IHRydWUsXG4gICAgICBxdW90YUV4Y2VlZGVkTWVzc2FnZTogZ2V0VXNhZ2VCbG9ja2VkQmFubmVyVGV4dCgpLFxuICAgIH0pXG4gICAgLy8gQWxpbmVhciBlbCByZXN0byBkZSBsYSBVSSBjb24gZWwgYmFja2VuZCAocmFjZSBkZWwgcG9vbCBjb21wYXJ0aWRvKS5cbiAgICBnZXQoKVxuICAgICAgLmZldGNoVXNhZ2UoKVxuICAgICAgLmNhdGNoKCgpID0+IHVuZGVmaW5lZClcbiAgfSxcblxuICByZXNldDogKCkgPT4ge1xuICAgIGZldGNoU2VxICs9IDFcbiAgICBzZXQoeyAuLi5pbml0aWFsU3RhdGUgfSlcbiAgfSxcbn0pKVxuXG5leHBvcnQgY29uc3QgZ2V0VXNhZ2VTdG9yZVN0YXRlID0gKCkgPT4gdXNlVXNhZ2VTdG9yZS5nZXRTdGF0ZSgpXG5cbmV4cG9ydCBjb25zdCBpc1VzYWdlUXVvdGFFeGNlZWRlZEVycm9yID0gKGNvZGU/OiBzdHJpbmcpOiBib29sZWFuID0+IGNvZGUgPT09IFVTQUdFX1FVT1RBX0VYQ0VFREVEX0NPREVcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxTQUFTQSxNQUFNLFFBQVEsU0FBUztBQUNoQyxPQUFPQyxJQUFJLE1BQU0sU0FBUztBQUMxQixTQUFTQyxRQUFRLFFBQVEsd0JBQXdCO0FBRWpELFNBQVNDLHlCQUF5QixRQUFRLGdCQUFnQjtBQUMxRCxTQUFTQyx5QkFBeUIsUUFBUSw4QkFBOEI7QUFtQnhFLElBQU1DLFlBQXdCLEdBQUc7RUFDL0JDLEtBQUssRUFBRSxJQUFJO0VBQ1hDLE9BQU8sRUFBRSxLQUFLO0VBQ2RDLG9CQUFvQixFQUFFLElBQUk7RUFDMUJDLE9BQU8sRUFBRSxLQUFLO0VBQ2RDLE9BQU8sRUFBRTtBQUNYLENBQUM7O0FBRUQ7QUFDQSxJQUFJQyxRQUFRLEdBQUcsQ0FBQztBQUVoQixPQUFPLElBQU1DLGFBQWEsR0FBR1osTUFBTSxDQUE0QixVQUFDYSxHQUFHLEVBQUVDLEdBQUc7RUFBQSxPQUFBQyxhQUFBLENBQUFBLGFBQUEsS0FDbkVWLFlBQVk7SUFFZlcsVUFBVTtNQUFBLElBQUFDLFdBQUEsR0FBQUMsaUJBQUEsY0FBQUMsbUJBQUEsQ0FBQUMsSUFBQSxDQUFFLFNBQUFDLFFBQUE7UUFBQSxJQUFBQyxHQUFBLEVBQUFoQixLQUFBLEVBQUFpQixFQUFBO1FBQUEsT0FBQUosbUJBQUEsQ0FBQUssSUFBQSxXQUFBQyxRQUFBO1VBQUEsa0JBQUFBLFFBQUEsQ0FBQUMsSUFBQSxHQUFBRCxRQUFBLENBQUFFLElBQUE7WUFBQTtjQUNWaEIsUUFBUSxJQUFJLENBQUM7Y0FDUFcsR0FBRyxHQUFHWCxRQUFRO2NBQ3BCRSxHQUFHLENBQUM7Z0JBQUVKLE9BQU8sRUFBRTtjQUFLLENBQUMsQ0FBQztjQUFBZ0IsUUFBQSxDQUFBQyxJQUFBO2NBQUFELFFBQUEsQ0FBQUUsSUFBQTtjQUFBLE9BRUF6QixRQUFRLENBQUNELElBQUksQ0FBQzJCLFFBQVEsQ0FBQztZQUFBO2NBQXJDdEIsS0FBSyxHQUFBbUIsUUFBQSxDQUFBSSxJQUFBO2NBQUEsTUFDUFAsR0FBRyxLQUFLWCxRQUFRO2dCQUFBYyxRQUFBLENBQUFFLElBQUE7Z0JBQUE7Y0FBQTtjQUFBLE9BQUFGLFFBQUEsQ0FBQUssTUFBQTtZQUFBO2NBRXBCakIsR0FBRyxDQUFBRSxhQUFBO2dCQUNEVCxLQUFLLEVBQUxBLEtBQUs7Z0JBQ0w7Z0JBQ0FDLE9BQU8sRUFBRUQsS0FBSyxDQUFDQyxPQUFPLEtBQUssSUFBSTtnQkFDL0JFLE9BQU8sRUFBRSxLQUFLO2dCQUNkQyxPQUFPLEVBQUU7Y0FBSSxHQUNUSixLQUFLLENBQUNDLE9BQU8sS0FBSyxJQUFJLEdBQ3RCO2dCQUFFQyxvQkFBb0IsRUFBRUoseUJBQXlCLENBQUM7Y0FBRSxDQUFDLEdBQ3JEO2dCQUFFSSxvQkFBb0IsRUFBRTtjQUFLLENBQUMsQ0FDbkMsQ0FBQztjQUFBaUIsUUFBQSxDQUFBRSxJQUFBO2NBQUE7WUFBQTtjQUFBRixRQUFBLENBQUFDLElBQUE7Y0FBQUgsRUFBQSxHQUFBRSxRQUFBO2NBQUEsTUFFRUgsR0FBRyxLQUFLWCxRQUFRO2dCQUFBYyxRQUFBLENBQUFFLElBQUE7Z0JBQUE7Y0FBQTtjQUFBLE9BQUFGLFFBQUEsQ0FBQUssTUFBQTtZQUFBO2NBQ3BCO2NBQ0FDLE9BQU8sQ0FBQ0MsS0FBSyxDQUFDLDRCQUE0QixFQUFBVCxFQUFPLENBQUM7Y0FDbERWLEdBQUcsQ0FBQyxVQUFBb0IsS0FBSztnQkFBQSxPQUFLO2tCQUNaeEIsT0FBTyxFQUFFLEtBQUs7a0JBQ2RDLE9BQU8sRUFBRSxJQUFJO2tCQUNiSCxPQUFPLEVBQUUwQixLQUFLLENBQUMxQjtnQkFDakIsQ0FBQztjQUFBLENBQUMsQ0FBQztZQUFBO1lBQUE7Y0FBQSxPQUFBa0IsUUFBQSxDQUFBUyxJQUFBO1VBQUE7UUFBQSxHQUFBYixPQUFBO01BQUEsQ0FFTjtNQUFBLFNBNUJETCxVQUFVQSxDQUFBO1FBQUEsT0FBQUMsV0FBQSxDQUFBa0IsS0FBQSxPQUFBQyxTQUFBO01BQUE7TUFBQSxPQUFWcEIsVUFBVTtJQUFBLEdBNEJUO0lBRURxQixrQkFBa0IsRUFBRSxTQUFwQkEsa0JBQWtCQSxDQUFBLEVBQVE7TUFDeEI7TUFDQTFCLFFBQVEsSUFBSSxDQUFDO01BQ2JFLEdBQUcsQ0FBQztRQUNGTixPQUFPLEVBQUUsSUFBSTtRQUNiQyxvQkFBb0IsRUFBRUoseUJBQXlCLENBQUM7TUFDbEQsQ0FBQyxDQUFDO01BQ0Y7TUFDQVUsR0FBRyxDQUFDLENBQUMsQ0FDRkUsVUFBVSxDQUFDLENBQUMsU0FDUCxDQUFDO1FBQUEsT0FBTXNCLFNBQVM7TUFBQSxFQUFDO0lBQzNCLENBQUM7SUFFREMsS0FBSyxFQUFFLFNBQVBBLEtBQUtBLENBQUEsRUFBUTtNQUNYNUIsUUFBUSxJQUFJLENBQUM7TUFDYkUsR0FBRyxDQUFBRSxhQUFBLEtBQU1WLFlBQVksQ0FBRSxDQUFDO0lBQzFCO0VBQUM7QUFBQSxDQUNELENBQUM7QUFFSCxPQUFPLElBQU1tQyxrQkFBa0IsR0FBRyxTQUFyQkEsa0JBQWtCQSxDQUFBO0VBQUEsT0FBUzVCLGFBQWEsQ0FBQzZCLFFBQVEsQ0FBQyxDQUFDO0FBQUE7QUFFaEUsT0FBTyxJQUFNQyx5QkFBeUIsR0FBRyxTQUE1QkEseUJBQXlCQSxDQUFJQyxJQUFhO0VBQUEsT0FBY0EsSUFBSSxLQUFLeEMseUJBQXlCO0FBQUEiLCJpZ25vcmVMaXN0IjpbXX0=
|
package/lib/types/usage.js
DELETED
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Respuesta de GET /v1/usage (pool de tokens por company).
|
|
3
|
-
* `blocked` es la fuente de verdad del FE — no recomputar por consumed vs granted.
|
|
4
|
-
*/
|
|
5
|
-
|
|
6
|
-
/** Detail body de POST orchestrator cuando HTTP 402 + code usage_quota_exceeded. */
|
|
7
|
-
|
|
8
|
-
export var USAGE_QUOTA_EXCEEDED_CODE = 'usage_quota_exceeded';
|
|
9
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJVU0FHRV9RVU9UQV9FWENFRURFRF9DT0RFIl0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL3R5cGVzL3VzYWdlLnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogUmVzcHVlc3RhIGRlIEdFVCAvdjEvdXNhZ2UgKHBvb2wgZGUgdG9rZW5zIHBvciBjb21wYW55KS5cbiAqIGBibG9ja2VkYCBlcyBsYSBmdWVudGUgZGUgdmVyZGFkIGRlbCBGRSDigJQgbm8gcmVjb21wdXRhciBwb3IgY29uc3VtZWQgdnMgZ3JhbnRlZC5cbiAqL1xuZXhwb3J0IHR5cGUgTWFpYVVzYWdlID0ge1xuICBjb21wYW55X2lkOiBzdHJpbmdcbiAgcGVyaW9kX3N0YXJ0OiBzdHJpbmdcbiAgcGVyaW9kX2VuZDogc3RyaW5nXG4gIHNlYXRzOiBudW1iZXJcbiAgdXNkX3Blcl9zZWF0OiBudW1iZXJcbiAgZ3JhbnRlZF91c2Q6IG51bWJlclxuICBjb25zdW1lZF91c2Q6IG51bWJlclxuICByZW1haW5pbmdfdXNkOiBudW1iZXJcbiAgcGN0OiBudW1iZXJcbiAgYmxvY2tlZDogYm9vbGVhblxuICBjb25zdW1lZF90b2tlbnM6IG51bWJlclxuICBvbl9kZW1hbmRfZ3JhbnRlZF91c2Q6IG51bWJlclxuICBvbl9kZW1hbmRfY29uc3VtZWRfdXNkOiBudW1iZXJcbiAgc2VhdHNfa25vd246IGJvb2xlYW5cbiAgZW5mb3JjZW1lbnRfZW5hYmxlZDogYm9vbGVhblxufVxuXG4vKiogRGV0YWlsIGJvZHkgZGUgUE9TVCBvcmNoZXN0cmF0b3IgY3VhbmRvIEhUVFAgNDAyICsgY29kZSB1c2FnZV9xdW90YV9leGNlZWRlZC4gKi9cbmV4cG9ydCB0eXBlIFVzYWdlUXVvdGFFeGNlZWRlZERldGFpbCA9IHtcbiAgbWVzc2FnZTogc3RyaW5nXG4gIGNvZGU6ICd1c2FnZV9xdW90YV9leGNlZWRlZCdcbiAgZ3JhbnRlZF91c2Q/OiBudW1iZXJcbiAgY29uc3VtZWRfdXNkPzogbnVtYmVyXG4gIHBlcmlvZF9lbmQ/OiBzdHJpbmdcbn1cblxuZXhwb3J0IGNvbnN0IFVTQUdFX1FVT1RBX0VYQ0VFREVEX0NPREUgPSAndXNhZ2VfcXVvdGFfZXhjZWVkZWQnIGFzIGNvbnN0XG4iXSwibWFwcGluZ3MiOiJBQUFBO0FBQ0E7QUFDQTtBQUNBOztBQW1CQTs7QUFTQSxPQUFPLElBQU1BLHlCQUF5QixHQUFHLHNCQUErQiIsImlnbm9yZUxpc3QiOltdfQ==
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
import i18n from '../lang';
|
|
2
|
-
import { SECTIONS } from '../constants/config';
|
|
3
|
-
|
|
4
|
-
/** Texto del cartel de pool agotado según el idioma activo de la app (no el del 402). */
|
|
5
|
-
export var getUsageBlockedBannerText = function getUsageBlockedBannerText() {
|
|
6
|
-
return i18n.t('chat.usage.blockedBanner', {
|
|
7
|
-
ns: SECTIONS.chatAI,
|
|
8
|
-
defaultValue: 'Te quedaste sin usos de IA. Contacta con tu administrador.'
|
|
9
|
-
});
|
|
10
|
-
};
|
|
11
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJpMThuIiwiU0VDVElPTlMiLCJnZXRVc2FnZUJsb2NrZWRCYW5uZXJUZXh0IiwidCIsIm5zIiwiY2hhdEFJIiwiZGVmYXVsdFZhbHVlIl0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL3V0aWxzL3VzYWdlQmxvY2tlZE1lc3NhZ2UudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGkxOG4gZnJvbSAnLi4vbGFuZydcbmltcG9ydCB7IFNFQ1RJT05TIH0gZnJvbSAnLi4vY29uc3RhbnRzL2NvbmZpZydcblxuLyoqIFRleHRvIGRlbCBjYXJ0ZWwgZGUgcG9vbCBhZ290YWRvIHNlZ8O6biBlbCBpZGlvbWEgYWN0aXZvIGRlIGxhIGFwcCAobm8gZWwgZGVsIDQwMikuICovXG5leHBvcnQgY29uc3QgZ2V0VXNhZ2VCbG9ja2VkQmFubmVyVGV4dCA9ICgpOiBzdHJpbmcgPT5cbiAgaTE4bi50KCdjaGF0LnVzYWdlLmJsb2NrZWRCYW5uZXInLCB7XG4gICAgbnM6IFNFQ1RJT05TLmNoYXRBSSxcbiAgICBkZWZhdWx0VmFsdWU6ICdUZSBxdWVkYXN0ZSBzaW4gdXNvcyBkZSBJQS4gQ29udGFjdGEgY29uIHR1IGFkbWluaXN0cmFkb3IuJyxcbiAgfSlcbiJdLCJtYXBwaW5ncyI6IkFBQUEsT0FBT0EsSUFBSSxNQUFNLFNBQVM7QUFDMUIsU0FBU0MsUUFBUSxRQUFRLHFCQUFxQjs7QUFFOUM7QUFDQSxPQUFPLElBQU1DLHlCQUF5QixHQUFHLFNBQTVCQSx5QkFBeUJBLENBQUE7RUFBQSxPQUNwQ0YsSUFBSSxDQUFDRyxDQUFDLENBQUMsMEJBQTBCLEVBQUU7SUFDakNDLEVBQUUsRUFBRUgsUUFBUSxDQUFDSSxNQUFNO0lBQ25CQyxZQUFZLEVBQUU7RUFDaEIsQ0FBQyxDQUFDO0FBQUEiLCJpZ25vcmVMaXN0IjpbXX0=
|