From 2bc89843ce5c0bd5ce61ffcd18f0f8c29b9fa34e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Julio=20C=C3=A9sar=20Biset?= <43619595+jbiset@users.noreply.github.com> Date: Wed, 14 Jun 2023 07:10:54 -0300 Subject: [PATCH 01/12] Change windows agent service name (#5538) * Change windows agent service name to Wazuh Change windows agent service name to Wazuh * Add CHANGELOG --- CHANGELOG.md | 6 ++++++ public/controllers/agent/components/register-agent.js | 2 +- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 6a1ac3a0b3..39eaaaa92c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,12 @@ All notable changes to the Wazuh app project will be documented in this file. +## Wazuh v4.4.5 - OpenSearch Dashboards 2.6.0 - Revision 00 + +### Changed + +- Changed windows agent service name in the deploy agent wizard [#5538](https://github.com/wazuh/wazuh-kibana-app/pull/5538) + ## Wazuh v4.4.4 - OpenSearch Dashboards 2.6.0 - Revision 01 ### Added diff --git a/public/controllers/agent/components/register-agent.js b/public/controllers/agent/components/register-agent.js index 99b0a5b105..870199e180 100644 --- a/public/controllers/agent/components/register-agent.js +++ b/public/controllers/agent/components/register-agent.js @@ -271,7 +271,7 @@ export const RegisterAgent = withErrorBoundary( this.state.selectedVersion === 'windowsserver2008' || this.state.selectedVersion === 'windows7' ) { - return 'NET START WazuhSvc'; + return 'NET START Wazuh'; } else { return ''; } From 858205f706394a236a11ac73ed43abef45ef4146 Mon Sep 17 00:00:00 2001 From: Antonio <34042064+Desvelao@users.noreply.github.com> Date: Wed, 14 Jun 2023 12:22:42 +0200 Subject: [PATCH 02/12] Remove agent name in agent info ribbon (#5497) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * remove: agent name in agent info ribbon * changelog: add pull request entry --------- Co-authored-by: Álex Ruiz --- CHANGELOG.md | 4 + .../common/welcome/agents-welcome.js | 1038 +++++++++-------- 2 files changed, 562 insertions(+), 480 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 39eaaaa92c..f2067c8b76 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,6 +4,10 @@ All notable changes to the Wazuh app project will be documented in this file. ## Wazuh v4.4.5 - OpenSearch Dashboards 2.6.0 - Revision 00 +### Removed + +- Removed the agent name in the agent info ribbon [#5497](https://github.com/wazuh/wazuh-kibana-app/pull/5497) + ### Changed - Changed windows agent service name in the deploy agent wizard [#5538](https://github.com/wazuh/wazuh-kibana-app/pull/5538) diff --git a/public/components/common/welcome/agents-welcome.js b/public/components/common/welcome/agents-welcome.js index 0349028a50..02cb1fcd8c 100644 --- a/public/components/common/welcome/agents-welcome.js +++ b/public/components/common/welcome/agents-welcome.js @@ -30,9 +30,14 @@ import { EuiToolTip, EuiButtonIcon, EuiEmptyPrompt, - EuiPageBody + EuiPageBody, } from '@elastic/eui'; -import { FimEventsTable, ScaScan, MitreTopTactics, RequirementVis } from './components'; +import { + FimEventsTable, + ScaScan, + MitreTopTactics, + RequirementVis, +} from './components'; import { AgentInfo } from './agents-info'; import { WAZUH_MODULES } from '../../../../common/wazuh-modules'; import store from '../../../redux/store'; @@ -58,568 +63,641 @@ import { webDocumentationLink } from '../../../../common/services/web_documentat export const AgentsWelcome = compose( withReduxProvider, - withErrorBoundary)( -class AgentsWelcome extends Component { - _isMount = false; - constructor(props) { - super(props); - - this.offset = 275; - - this.state = { - extensions: this.props.extensions, - lastScans: [], - isLoading: true, - sortField: 'start_scan', - sortDirection: 'desc', - actionAgents: true, // Hide actions agents - selectedRequirement: 'pci', - menuAgent: {}, - maxModules: 6, - widthWindow: window.innerWidth - }; - } - - updateWidth = () => { + withErrorBoundary, +)( + class AgentsWelcome extends Component { + _isMount = false; + constructor(props) { + super(props); + + this.offset = 275; + + this.state = { + extensions: this.props.extensions, + lastScans: [], + isLoading: true, + sortField: 'start_scan', + sortDirection: 'desc', + actionAgents: true, // Hide actions agents + selectedRequirement: 'pci', + menuAgent: {}, + maxModules: 6, + widthWindow: window.innerWidth, + }; + } - let menuSize = (window.innerWidth - this.offset); - let maxModules = 6; - if (menuSize > 1250) { - maxModules = 6; - } else { - if (menuSize > 1100) { - maxModules = 5; + updateWidth = () => { + let menuSize = window.innerWidth - this.offset; + let maxModules = 6; + if (menuSize > 1250) { + maxModules = 6; } else { - if (menuSize > 900) { - maxModules = 4; + if (menuSize > 1100) { + maxModules = 5; } else { - maxModules = 3; - if (menuSize < 750) { - maxModules = null; + if (menuSize > 900) { + maxModules = 4; + } else { + maxModules = 3; + if (menuSize < 750) { + maxModules = null; + } } } } - } - this.setState({ maxModules: maxModules, widthWindow: window.innerWidth }); - }; - - setGlobalBreadcrumb() { - const breadcrumb = [ - { text: '' }, - { - text: 'Agents', - href: "#/agents-preview" - }, - { - text: `${this.props.agent.name}`, - className: 'wz-global-breadcrumb-btn euiBreadcrumb--truncate', - truncate: false, - } - ]; - store.dispatch(updateGlobalBreadcrumb(breadcrumb)); - } - - - async componentDidMount() { - this._isMount = true; - store.dispatch(updateCurrentAgentData(this.props.agent)); - this.updateMenuAgents(); - this.updateWidth(); - this.setGlobalBreadcrumb(); - const tabVisualizations = new TabVisualizations(); - tabVisualizations.removeAll(); - tabVisualizations.setTab('welcome'); - tabVisualizations.assign({ - welcome: 8 - }); - const filterHandler = new FilterHandler(AppState.getCurrentPattern()); - const $injector = getAngularModule().$injector; - this.router = $injector.get('$route'); - window.addEventListener('resize', this.updateWidth); //eslint-disable-line - await VisFactoryHandler.buildAgentsVisualizations( - filterHandler, - 'welcome', - null, - this.props.agent.id - ); - } + this.setState({ maxModules: maxModules, widthWindow: window.innerWidth }); + }; - updateMenuAgents() { - const defaultMenuAgents = { - general: { - id: 'general', - text: 'Security events', - isPin: true, - }, - fim: { - id: 'fim', - text: 'Integrity monitoring', - isPin: true, - }, - sca: { - id: 'sca', - text: 'SCA', - isPin: true, - }, - audit: { - id: 'audit', - text: 'System Auditing', - isPin: true, - }, - vuls: { - id: 'vuls', - text: 'Vulnerabilities', - isPin: true, - }, - mitre: { - id: 'mitre', - text: 'MITRE ATT&CK', - isPin: true, - }, + setGlobalBreadcrumb() { + const breadcrumb = [ + { text: '' }, + { + text: 'Agents', + href: '#/agents-preview', + }, + { + text: `${this.props.agent.name}`, + className: 'wz-global-breadcrumb-btn euiBreadcrumb--truncate', + truncate: false, + }, + ]; + store.dispatch(updateGlobalBreadcrumb(breadcrumb)); } - let menuAgent = JSON.parse(window.localStorage.getItem('menuAgent')); + async componentDidMount() { + this._isMount = true; + store.dispatch(updateCurrentAgentData(this.props.agent)); + this.updateMenuAgents(); + this.updateWidth(); + this.setGlobalBreadcrumb(); + const tabVisualizations = new TabVisualizations(); + tabVisualizations.removeAll(); + tabVisualizations.setTab('welcome'); + tabVisualizations.assign({ + welcome: 8, + }); + const filterHandler = new FilterHandler(AppState.getCurrentPattern()); + const $injector = getAngularModule().$injector; + this.router = $injector.get('$route'); + window.addEventListener('resize', this.updateWidth); //eslint-disable-line + await VisFactoryHandler.buildAgentsVisualizations( + filterHandler, + 'welcome', + null, + this.props.agent.id, + ); + } - // Check if pinned modules to agent menu are enabled in Settings/Modules, if not then modify localstorage removing the disabled modules - if (menuAgent) { - const needUpdateMenuAgent = Object.keys(menuAgent).map(moduleName => menuAgent[moduleName]).reduce((accum, item) => { - if (typeof this.props.extensions[item.id] !== 'undefined' && this.props.extensions[item.id] === false) { - delete menuAgent[item.id]; - accum = true; + updateMenuAgents() { + const defaultMenuAgents = { + general: { + id: 'general', + text: 'Security events', + isPin: true, + }, + fim: { + id: 'fim', + text: 'Integrity monitoring', + isPin: true, + }, + sca: { + id: 'sca', + text: 'SCA', + isPin: true, + }, + audit: { + id: 'audit', + text: 'System Auditing', + isPin: true, + }, + vuls: { + id: 'vuls', + text: 'Vulnerabilities', + isPin: true, + }, + mitre: { + id: 'mitre', + text: 'MITRE ATT&CK', + isPin: true, + }, + }; + + let menuAgent = JSON.parse(window.localStorage.getItem('menuAgent')); + + // Check if pinned modules to agent menu are enabled in Settings/Modules, if not then modify localstorage removing the disabled modules + if (menuAgent) { + const needUpdateMenuAgent = Object.keys(menuAgent) + .map(moduleName => menuAgent[moduleName]) + .reduce((accum, item) => { + if ( + typeof this.props.extensions[item.id] !== 'undefined' && + this.props.extensions[item.id] === false + ) { + delete menuAgent[item.id]; + accum = true; + } + return accum; + }, false); + if (needUpdateMenuAgent) { + // Update the pinned modules matching to enabled modules in Setings/Modules + window.localStorage.setItem('menuAgent', JSON.stringify(menuAgent)); } - return accum; - }, false); - if (needUpdateMenuAgent) { - // Update the pinned modules matching to enabled modules in Setings/Modules - window.localStorage.setItem('menuAgent', JSON.stringify(menuAgent)) + } else { + menuAgent = defaultMenuAgents; + window.localStorage.setItem( + 'menuAgent', + JSON.stringify(defaultMenuAgents), + ); } - } else { - menuAgent = defaultMenuAgents; - window.localStorage.setItem('menuAgent', JSON.stringify(defaultMenuAgents)); + this.setState({ menuAgent: menuAgent }); } - this.setState({ menuAgent: menuAgent }); - } - renderModules() { - const menuAgent = [...Object.keys(this.state.menuAgent).map((item) => { return this.state.menuAgent[item] })]; + renderModules() { + const menuAgent = [ + ...Object.keys(this.state.menuAgent).map(item => { + return this.state.menuAgent[item]; + }), + ]; - return ( - - { - menuAgent.map((menuAgent, i) => { - if (i < this.state.maxModules && hasAgentSupportModule(this.props.agent, menuAgent.id)) { + return ( + + {menuAgent.map((menuAgent, i) => { + if ( + i < this.state.maxModules && + hasAgentSupportModule(this.props.agent, menuAgent.id) + ) { return ( - + { - window.location.href = `#/overview/?tab=${menuAgent.id}&tabView=${menuAgent.text === 'Security configuration assessment' ? 'inventory' : 'panels'}`; + window.location.href = `#/overview/?tab=${ + menuAgent.id + }&tabView=${ + menuAgent.text === 'Security configuration assessment' + ? 'inventory' + : 'panels' + }`; this.router.reload(); - }} style={{ cursor: 'pointer' }}> - {menuAgent.text !== 'Security configuration assessment' ? menuAgent.text : 'SCA'}  + }} + style={{ cursor: 'pointer' }} + > + + {menuAgent.text !== 'Security configuration assessment' + ? menuAgent.text + : 'SCA'} +   + - ) - } - } - )} - - this.setState({ switchModule: !this.state.switchModule })}> - More... - + ); } - isOpen={this.state.switchModule} - closePopover={() => this.setState({ switchModule: false })} - repositionOnScroll={false} - anchorPosition="downCenter"> -
- -
- this.updateMenuAgents()} - closePopover={() => { - this.setState({ switchModule: false }) - } - } - switchTab={(module) => this.props.switchTab(module)}> -
-
-
-
-
-
- ) - } - - renderTitle() { - - return ( - - - - - - -

- {this.state.widthWindow >= 768?( - - {this.props.agent.name} - - ): - ( - - {this.props.agent.name} - - ) - } -

-
-
-
- { - (this.state.maxModules !== null && - this.renderModules()) || - - this.setState({ switchModule: !this.state.switchModule })}> - Modules - + })} + + + this.setState({ switchModule: !this.state.switchModule }) } - isOpen={this.state.switchModule} - closePopover={() => this.setState({ switchModule: false })} - repositionOnScroll={false} - anchorPosition="downCenter"> -
- -
- this.updateMenuAgents()} - closePopover={() => { - this.setState({ switchModule: false }) - } - } - switchTab={(module) => this.props.switchTab(module)}> -
-
-
-
-
+ > + More... + } - + isOpen={this.state.switchModule} + closePopover={() => this.setState({ switchModule: false })} + repositionOnScroll={false} + anchorPosition='downCenter' + > +
+ +
+ this.updateMenuAgents()} + closePopover={() => { + this.setState({ switchModule: false }); + }} + switchTab={module => this.props.switchTab(module)} + > +
+
+
+
+
+
+ ); + } + + renderTitle() { + return ( + + + + {(this.state.maxModules !== null && this.renderModules()) || ( + + + this.setState({ + switchModule: !this.state.switchModule, + }) + } + > + Modules + + } + isOpen={this.state.switchModule} + closePopover={() => this.setState({ switchModule: false })} + repositionOnScroll={false} + anchorPosition='downCenter' + > +
+ +
+ this.updateMenuAgents()} + closePopover={() => { + this.setState({ switchModule: false }); + }} + switchTab={module => this.props.switchTab(module)} + > +
+
+
+
+
+ )} + this.props.switchTab('syscollector')}> + iconType='inspect' + onClick={() => this.props.switchTab('syscollector')} + > Inventory data this.props.switchTab('stats')}> + iconType='stats' + onClick={() => this.props.switchTab('stats')} + > Stats this.props.switchTab('configuration')}> + iconType='gear' + onClick={() => this.props.switchTab('configuration')} + > Configuration
- ); - } + ); + } - buildTabCard(tab, icon) { - return ( - - } - className="homSynopsis__card" - title={WAZUH_MODULES[tab].title} - onClick={() => this.props.switchTab(tab)} - description={WAZUH_MODULES[tab].description} - /> - - ); - } - onClickRestartAgent = () => { - const { agent } = this.props; - ActionAgents.restartAgent(agent.id); - }; + buildTabCard(tab, icon) { + return ( + + } + className='homSynopsis__card' + title={WAZUH_MODULES[tab].title} + onClick={() => this.props.switchTab(tab)} + description={WAZUH_MODULES[tab].description} + /> + + ); + } + onClickRestartAgent = () => { + const { agent } = this.props; + ActionAgents.restartAgent(agent.id); + }; - onClickUpgradeAgent = () => { - const { agent } = this.props; - ActionAgents.upgradeAgent(agent.id); - }; + onClickUpgradeAgent = () => { + const { agent } = this.props; + ActionAgents.upgradeAgent(agent.id); + }; - renderUpgradeButton() { - const { managerVersion } = this.state; - const { agent } = this.props; - let outDated = ActionAgents.compareVersions(managerVersion, agent.version); + renderUpgradeButton() { + const { managerVersion } = this.state; + const { agent } = this.props; + let outDated = ActionAgents.compareVersions( + managerVersion, + agent.version, + ); - if (outDated === true) return; - return ( - - - Upgrade - - - ); - } + if (outDated === true) return; + return ( + + + Upgrade + + + ); + } - onTimeChange = (datePicker) => { - const { start: from, end: to } = datePicker; - this.setState({ datePicker: { from, to } }); - } + onTimeChange = datePicker => { + const { start: from, end: to } = datePicker; + this.setState({ datePicker: { from, to } }); + }; - getOptions() { - return [ - { value: 'pci', text: 'PCI DSS' }, - { value: 'gdpr', text: 'GDPR' }, - { value: 'nist', text: 'NIST 800-53' }, - { value: 'hipaa', text: 'HIPAA' }, - { value: 'gpg13', text: 'GPG13' }, - { value: 'tsc', text: 'TSC' }, - ]; - } + getOptions() { + return [ + { value: 'pci', text: 'PCI DSS' }, + { value: 'gdpr', text: 'GDPR' }, + { value: 'nist', text: 'NIST 800-53' }, + { value: 'hipaa', text: 'HIPAA' }, + { value: 'gpg13', text: 'GPG13' }, + { value: 'tsc', text: 'TSC' }, + ]; + } - setSelectValue(e) { - this.setState({ selectedRequirement: e.target.value }); - } + setSelectValue(e) { + this.setState({ selectedRequirement: e.target.value }); + } - getRequirementVis() { - if (this.state.selectedRequirement === 'pci') { + getRequirementVis() { + if (this.state.selectedRequirement === 'pci') { + return 'Wazuh-App-Agents-Welcome-Top-PCI'; + } + if (this.state.selectedRequirement === 'gdpr') { + return 'Wazuh-App-Agents-Welcome-Top-GDPR'; + } + if (this.state.selectedRequirement === 'hipaa') { + return 'Wazuh-App-Agents-Welcome-Top-HIPAA'; + } + if (this.state.selectedRequirement === 'nist') { + return 'Wazuh-App-Agents-Welcome-Top-NIST-800-53'; + } + if (this.state.selectedRequirement === 'gpg13') { + return 'Wazuh-App-Agents-Welcome-Top-GPG-13'; + } + if (this.state.selectedRequirement === 'tsc') { + return 'Wazuh-App-Agents-Welcome-Top-TSC'; + } return 'Wazuh-App-Agents-Welcome-Top-PCI'; } - if (this.state.selectedRequirement === 'gdpr') { - return 'Wazuh-App-Agents-Welcome-Top-GDPR'; - } - if (this.state.selectedRequirement === 'hipaa') { - return 'Wazuh-App-Agents-Welcome-Top-HIPAA'; - } - if (this.state.selectedRequirement === 'nist') { - return 'Wazuh-App-Agents-Welcome-Top-NIST-800-53'; - } - if (this.state.selectedRequirement === 'gpg13') { - return 'Wazuh-App-Agents-Welcome-Top-GPG-13'; + + renderMitrePanel() { + return ( + + + + + +

+ +

MITRE

+
+

+
+ + + { + window.location.href = `#/overview?tab=mitre`; + this.router.reload(); + }} + aria-label='Open MITRE' + /> + + +
+
+ + + + + + +
+
+ ); } - if (this.state.selectedRequirement === 'tsc') { - return 'Wazuh-App-Agents-Welcome-Top-TSC'; + + renderCompliancePanel() { + return ( + + ); } - return 'Wazuh-App-Agents-Welcome-Top-PCI' - } - renderMitrePanel() { - return ( - - + renderEventCountVisualization() { + return ( + -

-

MITRE

+

+ +

Events count evolution

+

- - - { - window.location.href = `#/overview?tab=mitre`; - this.router.reload(); - } - } - aria-label="Open MITRE" /> - -
+ +
+ + + +
+
+ +
- - - - - -
-
- - ) - } - - renderCompliancePanel() { - return ( - - ) - } - - renderEventCountVisualization() { - return ( - - - - -

-

Events count evolution

-

-
-
- -
- - - -
-
- -
-
-
- ) - } - - renderSCALastScan() { - return ( - - - - ) - } - - render() { - const title = this.renderTitle(); + ); + } - if (this.props.agent.status === API_NAME_AGENT_STATUS.NEVER_CONNECTED) { + renderSCALastScan() { return ( - Agent has never connected.} - body={ - -

- The agent has been registered but has not yet connected to the manager. -

- - Checking connection with the Wazuh server - -
- } - actions={ - - Back - - } - />) + + + + ); } - return ( -
-
-
- {title} -
-
-
- - + render() { + const title = this.renderTitle(); + + if (this.props.agent.status === API_NAME_AGENT_STATUS.NEVER_CONNECTED) { + return ( + Agent has never connected.} + body={ + +

+ The agent has been registered but has not yet connected to the + manager. +

+ + Checking connection with the Wazuh server + +
+ } + actions={ + + Back + + } + /> + ); + } -
-
- - - + return ( +
+
+
{title}
+
+
+ + +
+
+ + + +
-
- - - {/* DatePicker */} - { }} /> - - - {this.state.widthWindow < 1150 && ( - - - - {this.renderMitrePanel()} - - {this.renderCompliancePanel()} - - - - - - - - {/* Events count evolution */} - {this.renderEventCountVisualization()} - - - - - - {this.renderSCALastScan()} - - - - ) || ( + + + + {' '} + {/* DatePicker */} + {}} /> + + + {(this.state.widthWindow < 1150 && ( + + + + {this.renderMitrePanel()} + + {this.renderCompliancePanel()} + + + + + + + + + {' '} + {/* Events count evolution */} + {this.renderEventCountVisualization()} + + + + + {this.renderSCALastScan()} + + + )) || ( - + {this.renderMitrePanel()} {this.renderCompliancePanel()} - + - + - {/* Events count evolution */} + + {' '} + {/* Events count evolution */} {this.renderEventCountVisualization()} - - {this.renderSCALastScan()} - + {this.renderSCALastScan()} )} - - - + + +
-
- ); - } -}) + ); + } + }, +); From 1153509927073082167fb61f3aecc87536d8a3f3 Mon Sep 17 00:00:00 2001 From: Nicolas Agustin Guevara Pihen <42900763+Tostti@users.noreply.github.com> Date: Wed, 14 Jun 2023 07:39:28 -0300 Subject: [PATCH 03/12] Fix IPV6 visualizations (#5471) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * add ipv6 service * add test for service * Fix issue in agents-table * fix issue in agents-info * fix groups agents issue * Fix width in groups agents * use mapResponseItem * Add copy button to groups * Add copy button to info * fix for node list * Optimize code * Fix styles * Edit changelog * Edit changelog * Add imposter changes to test ipv6 * Replace onMouseDown with onClick * Move copy buttons to the left * fix: removed compressipv6 property of TableWzAPI * feat: add tableLayout property to some tables and remove IPv6 address compression add tableLayout=auto property to some tables: - Agents/{agent_id}/Inventory data - Management/Cluster/Nodes - Agents - Management/Configuration/Client - Management/Global configuration/Remote remove IPv6 address compression * remove: remove unused service to IPv6 compression * revert: revert changes in TableWzAPI component * add: add mocked responses to some syscollector endpoints * remove: unwanted table columns properties * changelog: add pull request entry * Fix imposter --------- Co-authored-by: Antonio David Gutiérrez Co-authored-by: Álex Ruiz Co-authored-by: yenienserrano Co-authored-by: Antonio <34042064+Desvelao@users.noreply.github.com> --- CHANGELOG.md | 4 + docker/imposter/agents/agent.json | 74 ++--- docker/imposter/agents/agents.json | 229 ++++++++-------- docker/imposter/agents/group.json | 95 +++++++ .../imposter/cluster/cluster_node_info.json | 199 +++++++------- docker/imposter/syscollector/netaddr.js | 29 ++ docker/imposter/syscollector/ports.js | 192 +++++++++++++ docker/imposter/wazuh-config.yml | 9 + .../components/syscollector-table.tsx | 103 ++++--- .../components/common/welcome/agents-info.js | 147 ++++++---- .../management/cluster/node-list.tsx | 215 ++++++++------- .../agent/components/agents-table.js | 256 +++++++++++------- .../management/configuration/client/client.js | 39 ++- .../global-configuration-remote.js | 31 ++- .../management/groups/group-agents-table.js | 116 ++++---- 15 files changed, 1137 insertions(+), 601 deletions(-) create mode 100644 docker/imposter/agents/group.json create mode 100644 docker/imposter/syscollector/netaddr.js create mode 100644 docker/imposter/syscollector/ports.js diff --git a/CHANGELOG.md b/CHANGELOG.md index f2067c8b76..c43113b78d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,6 +4,10 @@ All notable changes to the Wazuh app project will be documented in this file. ## Wazuh v4.4.5 - OpenSearch Dashboards 2.6.0 - Revision 00 +### Fixed + +- Fixed the rendering of tables that contains IPs and agent overview [#5471](https://github.com/wazuh/wazuh-kibana-app/pull/5471) + ### Removed - Removed the agent name in the agent info ribbon [#5497](https://github.com/wazuh/wazuh-kibana-app/pull/5497) diff --git a/docker/imposter/agents/agent.json b/docker/imposter/agents/agent.json index d11371299b..00a33f70e4 100644 --- a/docker/imposter/agents/agent.json +++ b/docker/imposter/agents/agent.json @@ -1,39 +1,39 @@ { - "data": { - "affected_items": [ - { - "os": { - "arch": "x86_64", - "codename": "stretch", - "major": "9", - "name": "Debian GNU/Linux", - "platform": "debian", - "uname": "Linux |ip-10-0-1-106 |4.9.0-9-amd64 |#1 SMP Debian 4.9.168-1+deb9u2 (2019-05-13) |x86_64", - "version": "9" - }, - "ip": "10.0.1.106", - "configSum": "6f4293818ef64291ca53727fb9ab8958", - "mergedSum": "7976a83d1aebcca09bc14459b5518ed5", - "id": "001", - "registerIP": "any", - "dateAdd": "2022-08-25T16:25:53Z", - "disconnection_time": "2022-08-25T16:36:35Z", - "name": "Debian", - "status": "active", - "manager": "wazuh-manager-master-0", - "node_name": "master", - "group": [ - "default", - "debian" - ], - "lastKeepAlive": "2022-09-12T08:48:40Z", - "version": "Wazuh v4.3.7" - } + "data": { + "affected_items": [ + { + "os": { + "arch": "x86_64", + "codename": "stretch", + "major": "9", + "name": "Debian GNU/Linux", + "platform": "debian", + "uname": "Linux |ip-10-0-1-106 |4.9.0-9-amd64 |#1 SMP Debian 4.9.168-1+deb9u2 (2019-05-13) |x86_64", + "version": "9" + }, + "ip": "FE80:0034:0223:A000:0002:B3FF:0000:8329", + "configSum": "6f4293818ef64291ca53727fb9ab8958", + "mergedSum": "7976a83d1aebcca09bc14459b5518ed5", + "id": "001", + "registerIP": "any", + "dateAdd": "2022-08-25T16:25:53Z", + "disconnection_time": "2022-08-25T16:36:35Z", + "name": "Debian", + "status": "active", + "manager": "wazuh-manager-master-0", + "node_name": "master", + "group": [ + "default", + "debian" ], - "total_affected_items": 1, - "total_failed_items": 0, - "failed_items": [] - }, - "message": "All selected agents information was returned", - "error": 0 -} \ No newline at end of file + "lastKeepAlive": "2022-09-12T08:48:40Z", + "version": "Wazuh v4.3.7" + } + ], + "total_affected_items": 1, + "total_failed_items": 0, + "failed_items": [] + }, + "message": "All selected agents information was returned", + "error": 0 +} diff --git a/docker/imposter/agents/agents.json b/docker/imposter/agents/agents.json index 07a6f136f2..531599f862 100644 --- a/docker/imposter/agents/agents.json +++ b/docker/imposter/agents/agents.json @@ -1,114 +1,121 @@ { - "data": { - "affected_items": [ - { - "os": { - "arch": "x86_64", - "major": "2", - "name": "Amazon Linux", - "platform": "amzn", - "uname": "Linux |wazuh-manager-master-0 |4.14.114-105.126.amzn2.x86_64 |#1 SMP Tue May 7 02:26:40 UTC 2019 |x86_64", - "version": "2" - }, - "group": [ - "default", - "test", - "test2", - "test3", - "test4", - "test5", - "test6", - "test7", - "test8", - "test9", - "test10" - ], - "ip": "127.0.0.1", - "id": "000", - "registerIP": "127.0.0.1", - "dateAdd": "2022-08-25T16:17:46Z", - "name": "wazuh-manager-master-0", - "status": "active", - "manager": "wazuh-manager-master-0", - "node_name": "master", - "lastKeepAlive": "9999-12-31T23:59:59Z", - "version": "Wazuh v4.4.0", - "group_config_status": "synced" - },{ - "os": { - "arch": "x86_64", - "major": "2", - "name": "Amazon Linux", - "platform": "amzn", - "uname": "Linux |wazuh-manager-master-0 |4.14.114-105.126.amzn2.x86_64 |#1 SMP Tue May 7 02:26:40 UTC 2019 |x86_64", - "version": "2" - }, - "group": [ - "default", - "test", - "test2", - "test3", - "test4", - "test5" - ], - "ip": "127.0.0.1", - "id": "001", - "registerIP": "127.0.0.1", - "dateAdd": "2022-08-25T16:17:46Z", - "name": "wazuh-manager-master-0", - "status": "active", - "manager": "wazuh-manager-master-0", - "node_name": "master", - "lastKeepAlive": "9999-12-31T23:59:59Z", - "version": "Wazuh v4.4.0", - "group_config_status": "not synced" - },{ - "os": { - "arch": "x86_64", - "major": "2", - "name": "Amazon Linux", - "platform": "amzn", - "uname": "Linux |wazuh-manager-master-0 |4.14.114-105.126.amzn2.x86_64 |#1 SMP Tue May 7 02:26:40 UTC 2019 |x86_64", - "version": "2" - }, - "group": ["default", "test", "test2"], - "ip": "127.0.0.1", - "id": "002", - "registerIP": "127.0.0.1", - "dateAdd": "2022-08-25T16:17:46Z", - "name": "wazuh-manager-master-0", - "status": "active", - "manager": "wazuh-manager-master-0", - "node_name": "master", - "lastKeepAlive": "9999-12-31T23:59:59Z", - "version": "Wazuh v4.4.0", - "group_config_status": "synced" - },{ - "os": { - "arch": "x86_64", - "major": "2", - "name": "Amazon Linux", - "platform": "amzn", - "uname": "Linux |wazuh-manager-master-0 |4.14.114-105.126.amzn2.x86_64 |#1 SMP Tue May 7 02:26:40 UTC 2019 |x86_64", - "version": "2" - }, - "ip": "127.0.0.1", - "id": "003", - "registerIP": "127.0.0.1", - "dateAdd": "2022-08-25T16:17:46Z", - "name": "wazuh-manager-master-0", - "status": "active", - "manager": "wazuh-manager-master-0", - "node_name": "master", - "lastKeepAlive": "9999-12-31T23:59:59Z", - "version": "Wazuh v4.4.0", - "group_config_status": "not synced" - } + "data": { + "affected_items": [ + { + "os": { + "arch": "x86_64", + "major": "2", + "name": "Amazon Linux", + "platform": "amzn", + "uname": "Linux |wazuh-manager-master-0 |4.14.114-105.126.amzn2.x86_64 |#1 SMP Tue May 7 02:26:40 UTC 2019 |x86_64", + "version": "2" + }, + "group": [ + "default", + "test", + "test2", + "test3", + "test4", + "test5", + "test6", + "test7", + "test8", + "test9", + "test10" ], - "total_affected_items": 4, - "total_failed_items": 0, - "failed_items": [] - }, - "message": "All selected agents information was returned", - "error": 0 + "ip": "FE80:0034:0223:A000:0002:B3FF:0000:8329", + "id": "000", + "registerIP": "FE80:0034:0223:A000:0002:B3FF:0000:8329", + "dateAdd": "2022-08-25T16:17:46Z", + "name": "wazuh-manager-master-0", + "status": "active", + "manager": "wazuh-manager-master-0", + "node_name": "master", + "lastKeepAlive": "9999-12-31T23:59:59Z", + "version": "Wazuh v4.4.0", + "group_config_status": "synced" + }, + { + "os": { + "arch": "x86_64", + "major": "2", + "name": "Amazon Linux", + "platform": "amzn", + "uname": "Linux |wazuh-manager-master-0 |4.14.114-105.126.amzn2.x86_64 |#1 SMP Tue May 7 02:26:40 UTC 2019 |x86_64", + "version": "2" + }, + "group": [ + "default", + "test", + "test2", + "test3", + "test4", + "test5" + ], + "ip": "FE80:1234:2223:A000:2202:B3FF:FE1E:8329", + "id": "001", + "registerIP": "FE80:1234:2223:A000:2202:B3FF:FE1E:8329", + "dateAdd": "2022-08-25T16:17:46Z", + "name": "wazuh-manager-master-0", + "status": "active", + "manager": "wazuh-manager-master-0", + "node_name": "master", + "lastKeepAlive": "9999-12-31T23:59:59Z", + "version": "Wazuh v4.4.0", + "group_config_status": "not synced" + }, + { + "os": { + "arch": "x86_64", + "major": "2", + "name": "Amazon Linux", + "platform": "amzn", + "uname": "Linux |wazuh-manager-master-0 |4.14.114-105.126.amzn2.x86_64 |#1 SMP Tue May 7 02:26:40 UTC 2019 |x86_64", + "version": "2" + }, + "group": [ + "default", + "test", + "test2" + ], + "ip": "127.0.0.1", + "id": "002", + "registerIP": "127.0.0.1", + "dateAdd": "2022-08-25T16:17:46Z", + "name": "wazuh-manager-master-0", + "status": "active", + "manager": "wazuh-manager-master-0", + "node_name": "master", + "lastKeepAlive": "9999-12-31T23:59:59Z", + "version": "Wazuh v4.4.0", + "group_config_status": "synced" + }, + { + "os": { + "arch": "x86_64", + "major": "2", + "name": "Amazon Linux", + "platform": "amzn", + "uname": "Linux |wazuh-manager-master-0 |4.14.114-105.126.amzn2.x86_64 |#1 SMP Tue May 7 02:26:40 UTC 2019 |x86_64", + "version": "2" + }, + "ip": "FE80:0034:0223:A000:0002:B3FF:0000:8329", + "id": "003", + "registerIP": "FE80:0034:0223:A000:0002:B3FF:0000:8329", + "dateAdd": "2022-08-25T16:17:46Z", + "name": "wazuh-manager-master-0", + "status": "active", + "manager": "wazuh-manager-master-0", + "node_name": "master", + "lastKeepAlive": "9999-12-31T23:59:59Z", + "version": "Wazuh v4.4.0", + "group_config_status": "not synced" + } + ], + "total_affected_items": 4, + "total_failed_items": 0, + "failed_items": [] + }, + "message": "All selected agents information was returned", + "error": 0 } diff --git a/docker/imposter/agents/group.json b/docker/imposter/agents/group.json new file mode 100644 index 0000000000..a05fb465ba --- /dev/null +++ b/docker/imposter/agents/group.json @@ -0,0 +1,95 @@ +{ + "data": { + "affected_items": [ + { + "os": { + "arch": "x86_64", + "codename": "Focal Fossa", + "major": 20, + "minor": 4, + "name": "Ubuntu", + "platform": "ubuntu", + "uname": "Linux |b2497efbf876 |5.8.0-45-generic |#51~20.04.1-Ubuntu SMP Tue Feb 23 13:46:31 UTC 2021 |x86_64", + "version": "20.04.2 LTS" + }, + "mergedSum": "2c769b2ea138d472ee8f1ba23412b5d4", + "node_name": "worker1", + "ip": "FE80:0034:0223:A000:0002:B3FF:0000:8329", + "id": 4, + "manager": "wazuh-worker1", + "group": [ + "default", + "group1" + ], + "name": "b2497efbf876", + "configSum": "052374472f3a0d5c8508241dcc455ea7", + "status": "active", + "dateAdd": "2021-05-27T09:14:19Z", + "registerIP": "any", + "lastKeepAlive": "2021-05-27T09:23:59Z", + "version": "Wazuh v4.3.0" + }, + { + "os": { + "arch": "x86_64", + "codename": "Focal Fossa", + "major": 20, + "minor": 4, + "name": "Ubuntu", + "platform": "ubuntu", + "uname": "Linux |600e27371700 |5.8.0-45-generic |#51~20.04.1-Ubuntu SMP Tue Feb 23 13:46:31 UTC 2021 |x86_64", + "version": "20.04.2 LTS" + }, + "mergedSum": "9a016508cea1e997ab8569f5cfab30f5", + "node_name": "worker1", + "ip": "FE80:1234:2223:A000:2202:B3FF:FE1E:8329", + "id": 5, + "manager": "wazuh-worker1", + "group": [ + "default", + "group2" + ], + "name": "Infinity", + "configSum": "ab73af41699f13fdd81903b5f23d8d00", + "status": "active", + "dateAdd": "2021-05-27T09:14:19Z", + "registerIP": "any", + "lastKeepAlive": "2021-05-27T09:23:52Z", + "version": "Wazuh v4.3.0" + }, + { + "os": { + "arch": "x86_64", + "codename": "Focal Fossa", + "major": 20, + "minor": 4, + "name": "Ubuntu", + "platform": "ubuntu", + "uname": "Linux |4bdac19ce5e3 |5.8.0-45-generic |#51~20.04.1-Ubuntu SMP Tue Feb 23 13:46:31 UTC 2021 |x86_64", + "version": "20.04.2 LTS" + }, + "mergedSum": "9a016508cea1e997ab8569f5cfab30f5", + "node_name": "worker2", + "ip": "172.20.0.10", + "id": 6, + "manager": "wazuh-worker2", + "group": [ + "default", + "group3" + ], + "name": "4bdac19ce5e3", + "configSum": "ab73af41699f13fdd81903b5f23d8d00", + "status": "active", + "dateAdd": "2021-05-27T09:14:19Z", + "registerIP": "any", + "lastKeepAlive": "2021-05-27T09:23:52Z", + "version": "Wazuh v4.3.0" + } + ], + "total_affected_items": 3, + "total_failed_items": 0, + "failed_items": [] + }, + "message": "All selected agents information was returned", + "error": 0 +} diff --git a/docker/imposter/cluster/cluster_node_info.json b/docker/imposter/cluster/cluster_node_info.json index a12f21a54a..8456a62b26 100644 --- a/docker/imposter/cluster/cluster_node_info.json +++ b/docker/imposter/cluster/cluster_node_info.json @@ -1,99 +1,102 @@ { - "data": { - "affected_items": [ - { - "name": "master-node", - "type": "master", - "version": "4.3.0", - "ip": "wazuh-master", - "connection_date": "2020-05-27T10:50:49.175Z" - }, - { - "name": "worker1", - "type": "worker", - "version": "4.3.0", - "ip": "172.26.0.7", - "connection_date": "2021-05-27T10:50:51.342Z" - }, - { - "name": "worker2", - "type": "worker", - "version": "4.3.0", - "ip": "172.26.0.6", - "connection_date": "2021-05-27T10:48:54.093Z" - },{ - "name": "worker3", - "type": "worker", - "version": "4.3.0", - "ip": "wazuh-worker", - "connection_date": "2021-05-27T10:50:51.342Z" - }, - { - "name": "worker4", - "type": "worker", - "version": "4.3.0", - "ip": "172.26.0.7", - "connection_date": "2021-05-27T10:50:51.342Z" - }, - { - "name": "worker5", - "type": "worker", - "version": "4.3.0", - "ip": "172.26.0.6", - "connection_date": "2021-05-27T10:48:54.093Z" - },{ - "name": "worker6", - "type": "worker", - "version": "4.3.0", - "ip": "wazuh-worker", - "connection_date": "2021-05-27T10:50:51.342Z" - }, - { - "name": "worker7", - "type": "worker", - "version": "4.3.0", - "ip": "172.26.0.7", - "connection_date": "2021-05-27T10:48:54.093Z" - }, - { - "name": "worker8", - "type": "worker", - "version": "4.3.0", - "ip": "172.26.0.6", - "connection_date": "2021-05-27T10:50:51.342Z" - }, - { - "name": "worker9", - "type": "worker", - "version": "4.3.0", - "ip": "wazuh-worker", - "connection_date": "2019-05-27T10:48:54.093Z" - }, - { - "name": "worker10", - "type": "worker", - "version": "4.3.0", - "ip": "wazuh-worker", - "connection_date": "2022-05-27T10:48:54.093Z" - }, - { - "name": "worker11", - "type": "worker", - "version": "4.3.0", - "ip": "172.26.0.6", - "connection_date": "2019-05-27T10:48:54.093Z" - },{ - "name": "worker12", - "type": "worker", - "version": "4.3.0", - "ip": "wazuh-worker", - "connection_date": "2021-05-27T10:50:51.342Z" - } - ], - "total_affected_items": 3, - "total_failed_items": 0, - "failed_items": [] - }, - "message": "All selected nodes information was returned", - "error": 0 -} \ No newline at end of file + "data": { + "affected_items": [ + { + "name": "master-node", + "type": "master", + "version": "4.3.0", + "ip": "FE80:0034:0223:A000:0002:B3FF:0000:8329", + "connection_date": "2021-05-27T10:50:49.175Z" + }, + { + "name": "worker1", + "type": "worker", + "version": "4.3.0", + "ip": "FE80:1234:2223:A000:2202:B3FF:FE1E:8329", + "connection_date": "2021-05-27T10:50:51.342Z" + }, + { + "name": "worker2", + "type": "worker", + "version": "4.3.0", + "ip": "127.0.0.2", + "connection_date": "2021-05-27T10:48:54.093Z" + }, + { + "name": "worker3", + "type": "worker", + "version": "4.3.0", + "ip": "FE80:0034:0223:A000:0002:B3FF:0000:8329", + "connection_date": "2021-05-27T10:50:51.342Z" + }, + { + "name": "worker4", + "type": "worker", + "version": "4.3.0", + "ip": "FE80:0034:0223:A000:0002:B3FF:0000:8329", + "connection_date": "2021-05-27T10:50:51.342Z" + }, + { + "name": "worker5", + "type": "worker", + "version": "4.3.0", + "ip": "FE80:0034:0223:A000:0002:B3FF:0000:8329", + "connection_date": "2021-05-27T10:48:54.093Z" + }, + { + "name": "worker6", + "type": "worker", + "version": "4.3.0", + "ip": "FE80:0034:0223:A000:0002:B3FF:0000:8329", + "connection_date": "2021-05-27T10:50:51.342Z" + }, + { + "name": "worker7", + "type": "worker", + "version": "4.3.0", + "ip": "FE80:0034:0223:A000:0002:B3FF:0000:8329", + "connection_date": "2021-05-27T10:48:54.093Z" + }, + { + "name": "worker8", + "type": "worker", + "version": "4.3.0", + "ip": "FE80:0034:0223:A000:0002:B3FF:0000:8329", + "connection_date": "2021-05-27T10:50:51.342Z" + }, + { + "name": "worker9", + "type": "worker", + "version": "4.3.0", + "ip": "FE80:0034:0223:A000:0002:B3FF:0000:8329", + "connection_date": "2019-05-27T10:48:54.093Z" + }, + { + "name": "worker10", + "type": "worker", + "version": "4.3.0", + "ip": "FE80:0034:0223:A000:0002:B3FF:0000:8329", + "connection_date": "2022-05-27T10:48:54.093Z" + }, + { + "name": "worker11", + "type": "worker", + "version": "4.3.0", + "ip": "FE80:0034:0223:A000:0002:B3FF:0000:8329", + "connection_date": "2019-05-27T10:48:54.093Z" + }, + { + "name": "worker12", + "type": "worker", + "version": "4.3.0", + "ip": "FE80:0034:0223:A000:0002:B3FF:0000:8329", + "connection_date": "2021-05-27T10:50:51.342Z" + } + ], + "total_affected_items": 3, + "total_failed_items": 0, + "failed_items": [] + }, + "message": "All selected nodes information was returned", + "error": 0 +} diff --git a/docker/imposter/syscollector/netaddr.js b/docker/imposter/syscollector/netaddr.js new file mode 100644 index 0000000000..6cccddf671 --- /dev/null +++ b/docker/imposter/syscollector/netaddr.js @@ -0,0 +1,29 @@ +var data = { + data: { + affected_items: [ + { + address: '172.26.0.7', + iface: 'eth0', + netmask: '255.255.0.0', + broadcast: '172.26.255.255', + proto: 'ipv4', + agent_id: 1, + }, + { + address: 'FE80:0034:0223:A000:0002:B3FF:0000:8329', + iface: 'eth0', + netmask: 'FE80:0034:0223:A000:0002:B3FF:0000:8329', + broadcast: 'FE80:0034:0223:A000:0002:B3FF:0000:8329', + proto: 'ipv6', + agent_id: 1, + }, + ], + total_affected_items: 1, + total_failed_items: 0, + failed_items: [], + }, + message: 'All specified syscollector information was returned', + error: 0, +}; + +respond().withStatusCode(200).withData(JSON.stringify(data)); diff --git a/docker/imposter/syscollector/ports.js b/docker/imposter/syscollector/ports.js new file mode 100644 index 0000000000..f81206de5e --- /dev/null +++ b/docker/imposter/syscollector/ports.js @@ -0,0 +1,192 @@ +var agentID = context.request.pathParams.agent_id; + +var ipv4_01 = { + local: { + ip: '0.0.0.0', + port: 46841, + }, + remote: { + ip: '0.0.0.0', + port: 0, + }, + scan: { + id: 0, + time: '2021-05-28T11:16:14Z', + }, + inode: 12387152, + rx_queue: 0, + protocol: 'tcp', + pid: 0, + tx_queue: 0, + agent_id: agentID, +}; + +var ipv4_02 = { + local: { + ip: '0.0.0.0', + port: 80, + }, + remote: { + ip: '0.0.0.0', + port: 0, + }, + scan: { + id: 0, + time: '2021-05-28T11:16:14Z', + }, + inode: 12387152, + rx_queue: 0, + protocol: 'tcp', + pid: 0, + tx_queue: 0, + agent_id: agentID, +}; + +var ipv4_03 = { + local: { + ip: '0.0.0.0', + port: 443, + }, + remote: { + ip: '0.0.0.0', + port: 0, + }, + scan: { + id: 0, + time: '2021-05-28T11:16:14Z', + }, + state: 'listening', + inode: 12387152, + rx_queue: 0, + protocol: 'tcp', + pid: 0, + tx_queue: 0, + agent_id: agentID, +}; + +var ipv6_01 = { + local: { + ip: 'FE80:0034:0223:A000:0002:B3FF:0000:8329', + port: 1515, + }, + remote: { + ip: '0.0.0.0', + port: 0, + }, + scan: { + id: 315935312, + time: '2020-04-15T11:02:07Z', + }, + state: 'listening', + inode: 12397153, + rx_queue: 0, + protocol: 'tcp', + tx_queue: 0, + agent_id: agentID, +}; + +var ipv6_02 = { + local: { + ip: 'FE80:0034:0223:A000:0002:B3FF:0000:8329', + port: 80, + }, + remote: { + ip: '0.0.0.0', + port: 0, + }, + scan: { + id: 315935312, + time: '2020-04-15T11:02:07Z', + }, + state: 'listening', + inode: 12397153, + rx_queue: 0, + protocol: 'tcp', + tx_queue: 0, + agent_id: agentID, +}; + +var ipv6_03 = { + local: { + ip: 'FE80:0034:0223:A000:0002:B3FF:0000:8329', + port: 443, + }, + remote: { + ip: '0.0.0.0', + port: 0, + }, + scan: { + id: 315935312, + time: '2020-04-15T11:02:07Z', + }, + state: 'listening', + inode: 12397153, + rx_queue: 0, + protocol: 'tcp', + tx_queue: 0, + agent_id: agentID, +}; + +var affected_items_agents = { + '001': [ + ipv4_01, + ipv6_01, + ipv4_03, + ipv4_01, + ipv6_01, + ipv4_03, + ipv4_01, + ipv6_01, + ipv4_03, + ipv4_01, + ipv6_01, + ipv4_03, + ipv4_01, + ipv6_01, + ipv4_03, + ipv4_01, + ipv6_01, + ipv4_03, + ipv4_01, + ipv6_01, + ipv4_03, + ipv4_01, + ipv6_01, + ipv4_03, + ipv4_01, + ipv6_01, + ipv4_03, + ipv4_01, + ipv6_01, + ipv4_03, + ipv4_01, + ipv4_02, + ipv4_03, + ], + '002': [ipv4_01, ipv4_02, ipv4_03], + '003': [ipv6_01, ipv6_02, ipv6_03], +}; + +var affected_items = + affected_items_agents[agentID] || affected_items_agents['001']; +var total_affected_items = affected_items.length; + +var limit = context.request.queryParams.limit; +var offset = context.request.queryParams.offset; + +if (offset || limit) { + affected_items = affected_items.slice(offset, offset + limit); +} + +var response = { + data: { + affected_items: affected_items, + total_affected_items: total_affected_items, + total_failed_items: 0, + failed_items: [], + }, + message: 'All specified syscollector information was returned', + error: 0, +}; + +respond().withStatusCode(200).withData(JSON.stringify(response)); diff --git a/docker/imposter/wazuh-config.yml b/docker/imposter/wazuh-config.yml index 4c9c2d65ed..1cc5ca24b3 100755 --- a/docker/imposter/wazuh-config.yml +++ b/docker/imposter/wazuh-config.yml @@ -370,6 +370,9 @@ resources: # Get agents in a group - method: GET path: /groups/{group_id}/agents + response: + statusCode: 200 + staticFile: agents/group.json # Get group configuration - method: GET @@ -805,6 +808,9 @@ resources: # Get agent netaddr - method: GET path: /syscollector/{agent_id}/netaddr + response: + statusCode: 200 + scriptFile: syscollector/netaddr.js # Get agent netiface - method: GET @@ -825,6 +831,9 @@ resources: # Get agent ports - method: GET path: /syscollector/{agent_id}/ports + response: + statusCode: 200 + scriptFile: syscollector/ports.js # Get agent processes - method: GET diff --git a/public/components/agents/syscollector/components/syscollector-table.tsx b/public/components/agents/syscollector/components/syscollector-table.tsx index 4df55316fd..e5e5b0056f 100644 --- a/public/components/agents/syscollector/components/syscollector-table.tsx +++ b/public/components/agents/syscollector/components/syscollector-table.tsx @@ -1,18 +1,33 @@ -import React, { useState } from "react"; -import { EuiPanel, EuiFlexGroup, EuiButtonEmpty, EuiFlexItem, EuiText, EuiLoadingSpinner, EuiFieldSearch, EuiHorizontalRule, EuiIcon, EuiBasicTable } from "@elastic/eui"; +import React, { useState } from 'react'; +import { + EuiPanel, + EuiFlexGroup, + EuiButtonEmpty, + EuiFlexItem, + EuiText, + EuiLoadingSpinner, + EuiFieldSearch, + EuiHorizontalRule, + EuiIcon, + EuiBasicTable, +} from '@elastic/eui'; import { useApiRequest } from '../../../common/hooks/useApiRequest'; import { KeyEquivalence } from '../../../../../common/csv-key-equivalence'; import { AppState } from '../../../../react-services/app-state'; - export function SyscollectorTable({ tableParams }) { - const [params, setParams] = useState<{ limit: number, offset: number, select:string, q?: string}>({ + const [params, setParams] = useState<{ + limit: number; + offset: number; + select: string; + q?: string; + }>({ limit: 10, offset: 0, - select: tableParams.columns.map(({id}) => id).join(",") + select: tableParams.columns.map(({ id }) => id).join(','), }); const [pageIndex, setPageIndex] = useState(0); - const [searchBarValue, setSearchBarValue] = useState(""); + const [searchBarValue, setSearchBarValue] = useState(''); const [pageSize, setPageSize] = useState(10); const [sortField, setSortField] = useState(''); const [timerDelaySearch, setTimerDelaySearch] = useState(); @@ -26,17 +41,16 @@ export function SyscollectorTable({ tableParams }) { setPageSize(pageSize); setSortField(sortField); setSortDirection(sortDirection); - const field = (sortField === 'os_name') ? '' : sortField; - const direction = (sortDirection === 'asc') ? '+' : '-'; + const field = sortField === 'os_name' ? '' : sortField; + const direction = sortDirection === 'asc' ? '+' : '-'; const newParams = { ...params, limit: pageSize, offset: Math.floor((pageIndex * pageSize) / params.limit) * params.limit, - ...(!!field ? { sort: `${direction}${field}` } : {}) - } + ...(!!field ? { sort: `${direction}${field}` } : {}), + }; setParams(newParams); - }; const buildColumns = () => { @@ -63,51 +77,70 @@ export function SyscollectorTable({ tableParams }) { sort: { field: sortField, direction: sortDirection, - } + }, }; - const onChange = (e) => { + const onChange = e => { const value = e.target.value; setSearchBarValue(value); timerDelaySearch && clearTimeout(timerDelaySearch); const timeoutId = setTimeout(() => { - const { q, ...rest} = params; + const { q, ...rest } = params; const newParams = { ...rest, - ...(value ? { - q: tableParams.columns.map(({id}) => `${id}~${value}`).join(",") - }: {}) - }; + ...(value + ? { + q: tableParams.columns + .map(({ id }) => `${id}~${value}`) + .join(','), + } + : {}), + }; setParams(newParams); setPageIndex(0); - }, 400) + }, 400); setTimerDelaySearch(timeoutId); - } + }; const getTotal = () => { if (loading) - return <>{'( '}{' )'}; - else - return `(${data.total_affected_items})`; - } + return ( + <> + {'( '} + + {' )'} + + ); + else return `(${data.total_affected_items})`; + }; const downloadCsv = async () => { await AppState.downloadCsv( tableParams.path, tableParams.exportFormatted, - !!params.q ? [{ name: 'q', value: params.q }] : [] - ) - } + !!params.q ? [{ name: 'q', value: params.q }] : [], + ); + }; return ( - + -   {tableParams.title} {tableParams.hasTotal ? getTotal() : ''} + + {' '} + {' '} +  {' '} + + {tableParams.title} {tableParams.hasTotal ? getTotal() : ''} + {' '} + - - {tableParams.searchBar && + + {tableParams.searchBar && ( - } + )} - + Download CSV diff --git a/public/components/common/welcome/agents-info.js b/public/components/common/welcome/agents-info.js index f570fc89e5..17a57793fd 100644 --- a/public/components/common/welcome/agents-info.js +++ b/public/components/common/welcome/agents-info.js @@ -12,18 +12,12 @@ * Find more information about this on the LICENSE file. */ import React, { Component, Fragment } from 'react'; -import { - EuiStat, - EuiFlexItem, - EuiFlexGroup, - EuiBadge -} from '@elastic/eui'; +import { EuiFlexItem, EuiFlexGroup, EuiBadge } from '@elastic/eui'; import { WzRequest } from '../../../react-services/wz-request'; import { formatUIDate } from '../../../react-services/time-service'; - import WzTextWithTooltipIfTruncated from '../wz-text-with-tooltip-if-truncated'; import { WzStat } from '../../wz-stat'; -import { GroupTruncate } from '../util/agent-group-truncate' +import { GroupTruncate } from '../util/agent-group-truncate'; import { AgentStatus } from '../../agents/agent_status'; export class AgentInfo extends Component { @@ -33,11 +27,11 @@ export class AgentInfo extends Component { this.state = {}; } - async componentDidMount() { const managerVersion = await WzRequest.apiReq('GET', '/', {}); this.setState({ - managerVersion: (((managerVersion || {}).data || {}).data || {}).api_version || {} + managerVersion: + (((managerVersion || {}).data || {}).data || {}).api_version || {}, }); } @@ -53,13 +47,14 @@ export class AgentInfo extends Component { icon = 'apple'; } - return + return ( + + ); } - addTextPlatformRender(agent, style) { const checkField = field => { return field !== undefined ? field : '-'; @@ -73,30 +68,32 @@ export class AgentInfo extends Component { const osName = os_name === '- -' ? '-' : os_name; return ( - - {this.getPlatformIcon(this.props.agent)} - {' '}{osName} + + {this.getPlatformIcon(this.props.agent)} {osName} - ) + ); } addGroupsRender(agent) { // this was rendered with a EuiHealth, but EuiHealth has a div wrapper, and this section is rendered within a

tag.

tags aren't allowed within

tags. return ( - { - agent.group.map((group, key) => ( - this.props.goGroups(this.props.agent, key)}> - {group} - - )) - } + {agent.group.map((group, key) => ( + this.props.goGroups(this.props.agent, key)} + > + {group} + + ))} - ) + ); } buildStats(items) { @@ -105,7 +102,10 @@ export class AgentInfo extends Component { }; const stats = items.map(item => { // We add tooltipProps, so that the ClusterNode and Operating System fields occupy their space and do not exceed this, overlapping with the one on the right - const tooltipProps = item.description === 'Cluster node' ? { anchorClassName: 'wz-width-100'} : {}; + const tooltipProps = + item.description === 'Cluster node' + ? { anchorClassName: 'wz-width-100' } + : {}; return ( + {...this.props} + /> ) : item.description === 'Operating system' ? ( this.addTextPlatformRender(this.props.agent, item.style) ) : item.description === 'Status' ? ( - + ) : ( - + {checkField(item.title)} ) } description={item.description} - titleSize="xs" + titleSize='xs' /> ); @@ -145,25 +153,64 @@ export class AgentInfo extends Component { if (this.props.isCondensed) { arrayStats = [ { title: agent.id, description: 'ID', style: { maxWidth: 100 } }, - { title: agent.status, description: 'Status', style: { maxWidth: 150 } }, - { title: agent.version, description: 'Version', style: { maxWidth: 150 } }, + { + title: agent.status, + description: 'Status', + style: { maxWidth: 150 }, + }, + { + title: agent.version, + description: 'Version', + style: { maxWidth: 150 }, + }, { title: agent.name, description: 'Operating system', - style: { minWidth: 200, maxWidth: 200 } - } + style: { minWidth: 200, maxWidth: 200 }, + }, ]; } else { arrayStats = [ { title: agent.id, description: 'ID', style: { minWidth: 30 } }, - { title: agent.status, description: 'Status', style: { minWidth: 130 } }, - { title: agent.ip, description: 'IP address', style: { minWidth: 80 } }, - { title: agent.version, description: 'Version', style: { minWidth: 100 } }, + { + title: agent.status, + description: 'Status', + style: { minWidth: 100 }, + }, + { + title: agent.ip, + description: 'IP address', + style: { minwidth: 150 }, + }, + { + title: agent.version, + description: 'Version', + style: { minWidth: 100 }, + }, { title: agent.group, description: 'Groups', style: { minWidth: 150 } }, - { title: agent.name, description: 'Operating system', style: { minWidth: 150 } }, - { title: agent.node_name && agent.node_name !== 'unknown' ? agent.node_name : '-', description: 'Cluster node', style: { minWidth: 120 } }, - { title: formatUIDate(agent.dateAdd), description: 'Registration date', style: { minWidth: 180 } }, - { title: formatUIDate(agent.lastKeepAlive), description: 'Last keep alive', style: { minWidth: 180 } }, + { + title: agent.name, + description: 'Operating system', + style: { minWidth: 150 }, + }, + { + title: + agent.node_name && agent.node_name !== 'unknown' + ? agent.node_name + : '-', + description: 'Cluster node', + style: { minWidth: 120 }, + }, + { + title: formatUIDate(agent.dateAdd), + description: 'Registration date', + style: { minWidth: 180 }, + }, + { + title: formatUIDate(agent.lastKeepAlive), + description: 'Last keep alive', + style: { minWidth: 180 }, + }, ]; } @@ -173,7 +220,11 @@ export class AgentInfo extends Component { return ( - + {stats} diff --git a/public/components/management/cluster/node-list.tsx b/public/components/management/cluster/node-list.tsx index 4a5288db33..580c747d14 100644 --- a/public/components/management/cluster/node-list.tsx +++ b/public/components/management/cluster/node-list.tsx @@ -1,113 +1,128 @@ -import React, { Component } from 'react'; -import { EuiPanel, EuiFlexGroup, EuiFlexItem, EuiToolTip, EuiButtonIcon, EuiTitle, EuiInMemoryTable, EuiFieldSearch } from '@elastic/eui'; +import React, { Component, Fragment } from 'react'; +import { + EuiPanel, + EuiFlexGroup, + EuiFlexItem, + EuiToolTip, + EuiButtonIcon, + EuiTitle, + EuiInMemoryTable, + EuiFieldSearch, +} from '@elastic/eui'; import { WzRequest } from '../../../react-services/wz-request'; import { withErrorBoundary } from '../../common/hocs'; -export const NodeList = withErrorBoundary (class NodeList extends Component { +export const NodeList = withErrorBoundary( + class NodeList extends Component { constructor(props) { - super(props); - this.state = { - nodes: [], - loading: false - }; + super(props); + this.state = { + nodes: [], + loading: false, + }; } async componentDidMount() { - this.search(); + this.search(); } async search(searchTerm = false) { - let params = {}; - if (searchTerm) { - params.search = searchTerm; - } - this.setState({ loading: true }); - try{ - const request = await WzRequest.apiReq('GET', '/cluster/nodes', {params}); - this.setState({ nodes: (((request || {}).data || {}).data || {}).affected_items || [], loading: false }); - }catch(error){ - this.setState({ loading: false }); - } + let params = {}; + if (searchTerm) { + params.search = searchTerm; + } + this.setState({ loading: true }); + try { + const request = await WzRequest.apiReq('GET', '/cluster/nodes', { + params, + }); + this.setState({ + nodes: (((request || {}).data || {}).data || {}).affected_items || [], + loading: false, + }); + } catch (error) { + this.setState({ loading: false }); + } } - render() { - const columns = [ - { - field: 'name', - name: 'Name', - sortable: true, - truncateText: true, - }, - { - field: 'version', - name: 'Version', - sortable: true, - }, - { - field: 'ip', - name: 'IP address', - sortable: true, - }, - { - field: 'type', - name: 'Type', - sortable: true, - } - ]; + const columns = [ + { + field: 'name', + name: 'Name', + sortable: true, + }, + { + field: 'version', + name: 'Version', + sortable: true, + }, + { + field: 'ip', + name: 'IP address', + sortable: true, + }, + { + field: 'type', + name: 'Type', + sortable: true, + }, + ]; - const sorting = { - sort: { - field: 'name', - direction: 'asc', - }, - }; - return ( - - - - - - - this.props.goBack()} - /> - - - - -

Nodes

- - - - - - - - this.search(e)} - isClearable={true} - fullWidth={true} - aria-label="Filter" - /> - - - - - - - - - ); + const sorting = { + sort: { + field: 'name', + direction: 'asc', + }, + }; + return ( + + + + + + + this.props.goBack()} + /> + + + + +

Nodes

+
+
+
+
+
+ + + this.search(e)} + isClearable={true} + fullWidth={true} + aria-label='Filter' + /> + + + + + + + +
+ ); } -}); + }, +); diff --git a/public/controllers/agent/components/agents-table.js b/public/controllers/agent/components/agents-table.js index 55ce4d48d9..828db0afd6 100644 --- a/public/controllers/agent/components/agents-table.js +++ b/public/controllers/agent/components/agents-table.js @@ -11,7 +11,7 @@ * Find more information about this on the LICENSE file. */ -import React, { Component, Fragment } from 'react'; +import React, { Component } from 'react'; import PropTypes from 'prop-types'; import { EuiBasicTable, @@ -31,12 +31,20 @@ import { import { getToasts } from '../../../kibana-services'; import { AppNavigate } from '../../../react-services/app-navigate'; import { GroupTruncate } from '../../../components/common/util'; -import { WzSearchBar, filtersToObject } from '../../../components/wz-search-bar'; +import { + WzSearchBar, + filtersToObject, +} from '../../../components/wz-search-bar'; import { getAgentFilterValues } from '../../../controllers/management/components/management/groups/get-agents-filters-values'; import { WzButtonPermissions } from '../../../components/common/permissions/button'; import { formatUIDate } from '../../../react-services/time-service'; import { withErrorBoundary } from '../../../components/common/hocs'; -import { API_NAME_AGENT_STATUS, UI_LOGGER_LEVELS, UI_ORDER_AGENT_STATUS, AGENT_SYNCED_STATUS } from '../../../../common/constants'; +import { + API_NAME_AGENT_STATUS, + UI_LOGGER_LEVELS, + UI_ORDER_AGENT_STATUS, + AGENT_SYNCED_STATUS, +} from '../../../../common/constants'; import { UI_ERROR_SEVERITIES } from '../../../react-services/error-orchestrator/types'; import { getErrorOrchestrator } from '../../../react-services/common-services'; import { AgentStatus } from '../../../components/agents/agent_status'; @@ -60,7 +68,9 @@ export const AgentsTable = withErrorBoundary( purgeModal: false, isFilterColumnOpen: false, filters: sessionStorage.getItem('agents_preview_selected_options') - ? JSON.parse(sessionStorage.getItem('agents_preview_selected_options')) + ? JSON.parse( + sessionStorage.getItem('agents_preview_selected_options'), + ) : [], }; this.suggestions = [ @@ -83,84 +93,96 @@ export const AgentsTable = withErrorBoundary( label: 'os.platform', description: 'Filter by operating system platform', operators: ['=', '!='], - values: async (value) => getAgentFilterValues('os.platform', value, { q: 'id!=000' }), + values: async value => + getAgentFilterValues('os.platform', value, { q: 'id!=000' }), }, { type: 'q', label: 'ip', description: 'Filter by agent IP address', operators: ['=', '!='], - values: async (value) => getAgentFilterValues('ip', value, { q: 'id!=000' }), + values: async value => + getAgentFilterValues('ip', value, { q: 'id!=000' }), }, { type: 'q', label: 'name', description: 'Filter by agent name', operators: ['=', '!='], - values: async (value) => getAgentFilterValues('name', value, { q: 'id!=000' }), + values: async value => + getAgentFilterValues('name', value, { q: 'id!=000' }), }, { type: 'q', label: 'id', description: 'Filter by agent id', operators: ['=', '!='], - values: async (value) => getAgentFilterValues('id', value, { q: 'id!=000' }), + values: async value => + getAgentFilterValues('id', value, { q: 'id!=000' }), }, { type: 'q', label: 'group', description: 'Filter by agent group', operators: ['=', '!='], - values: async (value) => getAgentFilterValues('group', value, { q: 'id!=000' }), + values: async value => + getAgentFilterValues('group', value, { q: 'id!=000' }), }, { type: 'q', label: 'node_name', description: 'Filter by node name', operators: ['=', '!='], - values: async (value) => getAgentFilterValues('node_name', value, { q: 'id!=000' }), + values: async value => + getAgentFilterValues('node_name', value, { q: 'id!=000' }), }, { type: 'q', label: 'manager', description: 'Filter by manager', operators: ['=', '!='], - values: async (value) => getAgentFilterValues('manager', value, { q: 'id!=000' }), + values: async value => + getAgentFilterValues('manager', value, { q: 'id!=000' }), }, { type: 'q', label: 'version', description: 'Filter by agent version', operators: ['=', '!='], - values: async (value) => getAgentFilterValues('version', value, { q: 'id!=000' }), + values: async value => + getAgentFilterValues('version', value, { q: 'id!=000' }), }, { type: 'q', label: 'configSum', description: 'Filter by agent config sum', operators: ['=', '!='], - values: async (value) => getAgentFilterValues('configSum', value, { q: 'id!=000' }), + values: async value => + getAgentFilterValues('configSum', value, { q: 'id!=000' }), }, { type: 'q', label: 'mergedSum', description: 'Filter by agent merged sum', operators: ['=', '!='], - values: async (value) => getAgentFilterValues('mergedSum', value, { q: 'id!=000' }), + values: async value => + getAgentFilterValues('mergedSum', value, { q: 'id!=000' }), }, { type: 'q', label: 'dateAdd', description: 'Filter by add date', operators: ['=', '!='], - values: async (value) => getAgentFilterValues('dateAdd', value, { q: 'id!=000' }), + values: async value => + getAgentFilterValues('dateAdd', value, { q: 'id!=000' }), }, { type: 'q', label: 'lastKeepAlive', description: 'Filter by last keep alive', operators: ['=', '!='], - values: async (value) => getAgentFilterValues('lastKeepAlive', value, { q: 'id!=000' }), + values: async value => + getAgentFilterValues('lastKeepAlive', value, { q: 'id!=000' }), }, ]; this.downloadCsv.bind(this); @@ -220,17 +242,25 @@ export const AgentsTable = withErrorBoundary( const selectFieldsList = this.defaultColumns .filter(field => field.field != 'actions') .map(field => field.field.replace('os_', 'os.')); // "os_name" subfield should be specified as 'os.name' - const selectFields = [...selectFieldsList, 'os.platform', 'os.uname', 'os.version'].join(','); // Add version and uname fields to render the OS icon and version in the table - - const rawAgents = await this.props.wzReq('GET', '/agents', { params: { ...this.buildFilter(), select: selectFields } }); - const formatedAgents = (((rawAgents || {}).data || {}).data || {}).affected_items.map( - this.formatAgent.bind(this) - ); + const selectFields = [ + ...selectFieldsList, + 'os.platform', + 'os.uname', + 'os.version', + ].join(','); // Add version and uname fields to render the OS icon and version in the table + + const rawAgents = await this.props.wzReq('GET', '/agents', { + params: { ...this.buildFilter(), select: selectFields }, + }); + const formatedAgents = ( + ((rawAgents || {}).data || {}).data || {} + ).affected_items.map(this.formatAgent.bind(this)); this._isMount && this.setState({ agents: formatedAgents, - totalItems: (((rawAgents || {}).data || {}).data || {}).total_affected_items, + totalItems: (((rawAgents || {}).data || {}).data || {}) + .total_affected_items, isLoading: false, }); } catch (error) { @@ -250,7 +280,6 @@ export const AgentsTable = withErrorBoundary( } } - buildFilter() { const { pageIndex, pageSize, filters } = this.state; @@ -280,11 +309,15 @@ export const AgentsTable = withErrorBoundary( } formatAgent(agent) { - const checkField = (field) => { + const checkField = field => { return field !== undefined ? field : '-'; }; - const agentVersion = agent.version !== undefined ? agent.version.split(' ')[1] : '-'; - const node_name = agent.node_name && agent.node_name !== 'unknown' ? agent.node_name : '-'; + const agentVersion = + agent.version !== undefined ? agent.version.split(' ')[1] : '-'; + const node_name = + agent.node_name && agent.node_name !== 'unknown' + ? agent.node_name + : '-'; return { id: agent.id, @@ -297,7 +330,9 @@ export const AgentsTable = withErrorBoundary( version: agentVersion, node_name: node_name, dateAdd: agent.dateAdd ? formatUIDate(agent.dateAdd) : '-', - lastKeepAlive: agent.lastKeepAlive ? formatUIDate(agent.lastKeepAlive) : '-', + lastKeepAlive: agent.lastKeepAlive + ? formatUIDate(agent.lastKeepAlive) + : '-', actions: agent, upgrading: false, }; @@ -306,28 +341,34 @@ export const AgentsTable = withErrorBoundary( actionButtonsRender(agent) { return (
- + { + onClick={ev => { ev.stopPropagation(); this.props.clickAction(agent, 'default'); }} - iconType="eye" + iconType='eye' color={'primary'} - aria-label="Open summary panel for this agent" + aria-label='Open summary panel for this agent' />   {agent.status !== API_NAME_AGENT_STATUS.NEVER_CONNECTED && ( - + { + onClick={ev => { ev.stopPropagation(); this.props.clickAction(agent, 'configuration'); }} color={'primary'} - iconType="wrench" - aria-label="Open configuration for this agent" + iconType='wrench' + aria-label='Open configuration for this agent' /> )} @@ -337,7 +378,7 @@ export const AgentsTable = withErrorBoundary( addIconPlatformRender(agent) { let icon = false; - const checkField = (field) => { + const checkField = field => { return field !== undefined ? field : '-'; }; const os = (agent || {}).os; @@ -350,16 +391,16 @@ export const AgentsTable = withErrorBoundary( icon = 'apple'; } const os_name = - checkField(agent?.os?.name) + - ' ' + - checkField(agent?.os?.version); + checkField(agent?.os?.name) + ' ' + checkField(agent?.os?.version); return ( - - {' '} + + + + {' '} {os_name === '- -' ? '-' : os_name} ); @@ -376,8 +417,8 @@ export const AgentsTable = withErrorBoundary( downloadCsv = () => { const filters = this.buildFilter(); const formatedFilters = Object.keys(filters) - .filter((field) => !['limit', 'offset', 'sort'].includes(field)) - .map((field) => ({ name: field, value: filters[field] })); + .filter(field => !['limit', 'offset', 'sort'].includes(field)) + .map(field => ({ name: field, value: filters[field] })); this.props.downloadCsv(formatedFilters); }; @@ -391,14 +432,14 @@ export const AgentsTable = withErrorBoundary( return ( <> - + Export formatted - + - + @@ -423,11 +464,13 @@ export const AgentsTable = withErrorBoundary( } else if (selectedItems.length === pageSize) { return (
- + @@ -435,7 +478,7 @@ export const AgentsTable = withErrorBoundary( { this._isMount && - this.setState((prevState) => ({ + this.setState(prevState => ({ allSelected: !prevState.allSelected, })); }} @@ -447,18 +490,24 @@ export const AgentsTable = withErrorBoundary( - +
); } } getTableColumnsSelected() { - return JSON.parse(window.localStorage.getItem('columnsSelectedTableAgent')) || []; + return ( + JSON.parse(window.localStorage.getItem('columnsSelectedTableAgent')) || + [] + ); } setTableColumnsSelected(data) { - window.localStorage.setItem('columnsSelectedTableAgent', JSON.stringify(data)); + window.localStorage.setItem( + 'columnsSelectedTableAgent', + JSON.stringify(data), + ); } // Columns with the property truncateText: true won't wrap the text @@ -487,7 +536,7 @@ export const AgentsTable = withErrorBoundary( name: 'Group(s)', sortable: true, show: true, - render: (groups) => (groups !== '-' ? this.renderGroups(groups) : '-'), + render: groups => (groups !== '-' ? this.renderGroups(groups) : '-'), }, { field: 'os_name', @@ -526,14 +575,19 @@ export const AgentsTable = withErrorBoundary( truncateText: true, sortable: true, show: true, - render: (status) => , + render: status => ( + + ), }, { field: 'group_config_status', name: 'Synced', sortable: true, show: false, - render: (synced) => , + render: synced => , }, { align: 'right', @@ -541,7 +595,7 @@ export const AgentsTable = withErrorBoundary( field: 'actions', name: 'Actions', show: true, - render: (agent) => this.actionButtonsRender(agent), + render: agent => this.actionButtonsRender(agent), }, ]; @@ -550,15 +604,17 @@ export const AgentsTable = withErrorBoundary( if (selectedColumns.length != 0) { const newSelectedColumns = []; - selectedColumns.forEach((item) => { + selectedColumns.forEach(item => { if (item.show) { - const column = this.defaultColumns.find((column) => column.field === item.field); + const column = this.defaultColumns.find( + column => column.field === item.field, + ); newSelectedColumns.push(column); } }); return newSelectedColumns; } else { - const fieldColumns = this.defaultColumns.map((item) => { + const fieldColumns = this.defaultColumns.map(item => { return { field: item.field, name: item.name, @@ -588,9 +644,9 @@ export const AgentsTable = withErrorBoundary( this.props.addingNewAgent()} > Deploy new agent @@ -598,7 +654,7 @@ export const AgentsTable = withErrorBoundary( {formattedButton}
- +
); } @@ -611,12 +667,18 @@ export const AgentsTable = withErrorBoundary( noDeleteFiltersOnUpdateSuggests filters={this.state.filters} suggestions={this.suggestions} - onFiltersChange={(filters) => this.setState({ filters, pageIndex: 0 })} - placeholder="Filter or search agent" + onFiltersChange={filters => + this.setState({ filters, pageIndex: 0 }) + } + placeholder='Filter or search agent' /> - this.reloadAgents()}> + this.reloadAgents()} + > Refresh @@ -627,15 +689,15 @@ export const AgentsTable = withErrorBoundary( selectColumnsRender() { const columnsSelected = this.getTableColumnsSelected(); - const onChange = (optionId) => { - let item = columnsSelected.find((item) => item.field === optionId); + const onChange = optionId => { + let item = columnsSelected.find(item => item.field === optionId); item.show = !item.show; this.setTableColumnsSelected(columnsSelected); this.forceUpdate(); }; const options = () => { - return columnsSelected.map((item) => { + return columnsSelected.map(item => { return { id: item.field, label: item.name, @@ -650,7 +712,7 @@ export const AgentsTable = withErrorBoundary( @@ -661,12 +723,12 @@ export const AgentsTable = withErrorBoundary( } tableRender() { - const getRowProps = (item) => { + const getRowProps = item => { const { id } = item; return { 'data-test-subj': `row-${id}`, className: 'customRowClass', - onClick: () => { }, + onClick: () => {}, }; }; @@ -675,8 +737,11 @@ export const AgentsTable = withErrorBoundary( return; } return { - onMouseDown: (ev) => { - AppNavigate.navigateToModule(ev, 'agents', { tab: 'welcome', agent: item.id }); + onClick: ev => { + AppNavigate.navigateToModule(ev, 'agents', { + tab: 'welcome', + agent: item.id, + }); ev.stopPropagation(); }, }; @@ -695,11 +760,11 @@ export const AgentsTable = withErrorBoundary( const pagination = totalItems > 15 ? { - pageIndex: pageIndex, - pageSize: pageSize, - totalItemCount: totalItems, - pageSizeOptions: [15, 25, 50, 100], - } + pageIndex: pageIndex, + pageSize: pageSize, + totalItemCount: totalItems, + pageSizeOptions: [15, 25, 50, 100], + } : false; const sorting = { sort: { @@ -712,19 +777,19 @@ export const AgentsTable = withErrorBoundary( // Previously the tableLayout is set to "fixed" with percentage width for each column, but the use of space was not optimal. // Important: If all the columns have the truncateText property set to true, the table cannot adjust properly when the viewport size is small. return ( - + @@ -732,14 +797,16 @@ export const AgentsTable = withErrorBoundary( ); } - filterGroupBadge = (group) => { + filterGroupBadge = group => { const { filters } = this.state; - let auxFilters = filters.map((filter) => filter.value.match(/group=(.*S?)/)[1]); + let auxFilters = filters.map( + filter => filter.value.match(/group=(.*S?)/)[1], + ); if (filters.length > 0) { !auxFilters.includes(group) ? this.setState({ - filters: [...filters, { field: 'q', value: `group=${group}` }], - }) + filters: [...filters, { field: 'q', value: `group=${group}` }], + }) : false; } else { this.setState({ @@ -760,7 +827,6 @@ export const AgentsTable = withErrorBoundary( /> ); } - render() { const title = this.headRender(); const filter = this.filterBarRender(); @@ -772,8 +838,8 @@ export const AgentsTable = withErrorBoundary( return (
{filter} - - + + {title} {loadItems} {callOut} @@ -784,7 +850,7 @@ export const AgentsTable = withErrorBoundary(
); } - } + }, ); AgentsTable.propTypes = { diff --git a/public/controllers/management/components/management/configuration/client/client.js b/public/controllers/management/components/management/configuration/client/client.js index 7c569fd5e6..d5e2ada8c6 100644 --- a/public/controllers/management/components/management/configuration/client/client.js +++ b/public/controllers/management/components/management/configuration/client/client.js @@ -22,7 +22,7 @@ import WzConfigurationSettingsGroup from '../util-components/configuration-setti import { isString, renderValueOrDefault, - renderValueOrNoValue + renderValueOrNoValue, } from '../utils/utils'; import withWzConfig from '../util-hocs/wz-config'; import { webDocumentationLink } from '../../../../../../../common/services/web_documentation'; @@ -30,12 +30,12 @@ import { webDocumentationLink } from '../../../../../../../common/services/web_d const helpLinks = [ { text: 'Checking connection with manager', - href: webDocumentationLink('user-manual/agents/agent-connection.html') + href: webDocumentationLink('user-manual/agents/agent-connection.html'), }, { text: 'Client reference', - href: webDocumentationLink('user-manual/reference/ossec-conf/client.html') - } + href: webDocumentationLink('user-manual/reference/ossec-conf/client.html'), + }, ]; const mainSettings = [ @@ -44,29 +44,37 @@ const mainSettings = [ { field: 'auto_restart', label: - 'Auto-restart the agent when receiving valid configuration from manager' + 'Auto-restart the agent when receiving valid configuration from manager', }, { field: 'notify_time', - label: 'Time (in seconds) between agent checkings to the manager' + label: 'Time (in seconds) between agent checkings to the manager', }, { field: 'time-reconnect', - label: 'Time (in seconds) before attempting to reconnect' + label: 'Time (in seconds) before attempting to reconnect', }, { field: 'config-profile', label: 'Configuration profiles' }, { field: 'local_ip', - label: 'IP address used when the agent has multiple network interfaces' - } + label: 'IP address used when the agent has multiple network interfaces', + }, ]; const columns = [ { field: 'address', name: 'Address', render: renderValueOrNoValue }, { field: 'port', name: 'Port', render: renderValueOrDefault('1514') }, { field: 'protocol', name: 'Protocol', render: renderValueOrDefault('udp') }, - { field: 'max_retries', name: 'Maximum retries to connect', render: renderValueOrNoValue }, - { field: 'retry_interval', name: 'Retry interval to connect', render: renderValueOrNoValue }, + { + field: 'max_retries', + name: 'Maximum retries to connect', + render: renderValueOrNoValue, + }, + { + field: 'retry_interval', + name: 'Retry interval to connect', + render: renderValueOrNoValue, + }, ]; class WzConfigurationClient extends Component { @@ -87,8 +95,8 @@ class WzConfigurationClient extends Component { {currentConfig['agent-client'] && !isString(currentConfig['agent-client']) && ( )} diff --git a/public/controllers/management/components/management/configuration/global-configuration/global-configuration-remote.js b/public/controllers/management/components/management/configuration/global-configuration/global-configuration-remote.js index 2c0a2bddae..f72cd44fea 100644 --- a/public/controllers/management/components/management/configuration/global-configuration/global-configuration-remote.js +++ b/public/controllers/management/components/management/configuration/global-configuration/global-configuration-remote.js @@ -19,7 +19,7 @@ import WzNoConfig from '../util-components/no-config'; import { isString, renderValueOrNoValue, - renderValueOrDefault + renderValueOrDefault, } from '../utils/utils'; import { webDocumentationLink } from '../../../../../../../common/services/web_documentation'; @@ -40,12 +40,14 @@ const renderAllowedDeniedIPs = (items, label) => { const helpLinks = [ { text: 'Remote daemon reference', - href: webDocumentationLink('user-manual/reference/daemons/wazuh-remoted.html') + href: webDocumentationLink( + 'user-manual/reference/daemons/wazuh-remoted.html', + ), }, { text: 'Remote configuration reference', - href: webDocumentationLink('user-manual/reference/ossec-conf/remote.html') - } + href: webDocumentationLink('user-manual/reference/ossec-conf/remote.html'), + }, ]; class WzConfigurationGlobalConfigurationRemote extends Component { @@ -57,29 +59,29 @@ class WzConfigurationGlobalConfigurationRemote extends Component { { field: 'protocol', name: 'Protocol', - render: renderValueOrDefault('udp') + render: renderValueOrDefault('udp'), }, { field: 'ipv6', name: 'IPv6', render: renderValueOrNoValue }, { field: 'allowed-ips', name: 'Allowed IP addresses', - render: item => renderAllowedDeniedIPs(item, 'allowed') + render: item => renderAllowedDeniedIPs(item, 'allowed'), }, { field: 'denied-ips', name: 'Denied IP addresses', - render: item => renderAllowedDeniedIPs(item, 'denied') + render: item => renderAllowedDeniedIPs(item, 'denied'), }, { field: 'local_ip', name: 'Local IP address', - render: renderValueOrDefault('All interfaces') + render: renderValueOrDefault('All interfaces'), }, { field: 'queue_size', name: 'Queue size', - render: renderValueOrDefault('16384') - } + render: renderValueOrDefault('16384'), + }, ]; } render() { @@ -96,21 +98,22 @@ class WzConfigurationGlobalConfigurationRemote extends Component { {currentConfig['request-remote'] && !isString(currentConfig['request-remote']) && !currentConfig['request-remote'].remote && ( - + )} {currentConfig['request-remote'] && currentConfig['request-remote'].remote && ( - + )} diff --git a/public/controllers/management/components/management/groups/group-agents-table.js b/public/controllers/management/components/management/groups/group-agents-table.js index 534726d6aa..e7c4a11aba 100644 --- a/public/controllers/management/components/management/groups/group-agents-table.js +++ b/public/controllers/management/components/management/groups/group-agents-table.js @@ -9,13 +9,11 @@ * * Find more information about this on the LICENSE file. */ -import React, { Component } from 'react'; -import { EuiCallOut } from '@elastic/eui'; +import React, { Component, Fragment } from 'react'; import { connect } from 'react-redux'; import GroupsHandler from './utils/groups-handler'; import { getToasts } from '../../../../../kibana-services'; - import { updateLoadingStatus, updateFileContent, @@ -27,16 +25,18 @@ import { updateSortFieldAgents, updateReload, } from '../../../../../redux/actions/groupsActions'; - +import { EuiCallOut } from '@elastic/eui'; import { getAgentFilterValues } from './get-agents-filters-values'; import { TableWzAPI } from '../../../../../components/common/tables'; import { WzButtonPermissions } from '../../../../../components/common/permissions/button'; import { WzButtonPermissionsModalConfirm } from '../../../../../components/common/buttons'; -import { UI_LOGGER_LEVELS, UI_ORDER_AGENT_STATUS } from '../../../../../../common/constants'; +import { + UI_LOGGER_LEVELS, + UI_ORDER_AGENT_STATUS, +} from '../../../../../../common/constants'; import { UI_ERROR_SEVERITIES } from '../../../../../react-services/error-orchestrator/types'; import { getErrorOrchestrator } from '../../../../../react-services/common-services'; - class WzGroupAgentsTable extends Component { _isMounted = false; constructor(props) { @@ -54,7 +54,7 @@ class WzGroupAgentsTable extends Component { label: 'os.platform', description: 'Filter by operating system platform', operators: ['=', '!='], - values: async (value) => + values: async value => getAgentFilterValues('os.platform', value, { q: `group=${this.props.state.itemDetail.name}`, }), @@ -64,31 +64,37 @@ class WzGroupAgentsTable extends Component { label: 'ip', description: 'Filter by agent IP address', operators: ['=', '!='], - values: async (value) => - getAgentFilterValues('ip', value, { q: `group=${this.props.state.itemDetail.name}` }), + values: async value => + getAgentFilterValues('ip', value, { + q: `group=${this.props.state.itemDetail.name}`, + }), }, { type: 'q', label: 'name', description: 'Filter by agent name', operators: ['=', '!='], - values: async (value) => - getAgentFilterValues('name', value, { q: `group=${this.props.state.itemDetail.name}` }), + values: async value => + getAgentFilterValues('name', value, { + q: `group=${this.props.state.itemDetail.name}`, + }), }, { type: 'q', label: 'id', description: 'Filter by agent id', operators: ['=', '!='], - values: async (value) => - getAgentFilterValues('id', value, { q: `group=${this.props.state.itemDetail.name}` }), + values: async value => + getAgentFilterValues('id', value, { + q: `group=${this.props.state.itemDetail.name}`, + }), }, { type: 'q', label: 'node_name', description: 'Filter by node name', operators: ['=', '!='], - values: async (value) => + values: async value => getAgentFilterValues('node_name', value, { q: `group=${this.props.state.itemDetail.name}`, }), @@ -98,7 +104,7 @@ class WzGroupAgentsTable extends Component { label: 'manager', description: 'Filter by manager', operators: ['=', '!='], - values: async (value) => + values: async value => getAgentFilterValues('manager', value, { q: `group=${this.props.state.itemDetail.name}`, }), @@ -108,7 +114,7 @@ class WzGroupAgentsTable extends Component { label: 'version', description: 'Filter by agent version', operators: ['=', '!='], - values: async (value) => + values: async value => getAgentFilterValues('version', value, { q: `group=${this.props.state.itemDetail.name}`, }), @@ -118,7 +124,7 @@ class WzGroupAgentsTable extends Component { label: 'configSum', description: 'Filter by agent config sum', operators: ['=', '!='], - values: async (value) => + values: async value => getAgentFilterValues('configSum', value, { q: `group=${this.props.state.itemDetail.name}`, }), @@ -128,7 +134,7 @@ class WzGroupAgentsTable extends Component { label: 'mergedSum', description: 'Filter by agent merged sum', operators: ['=', '!='], - values: async (value) => + values: async value => getAgentFilterValues('mergedSum', value, { q: `group=${this.props.state.itemDetail.name}`, }), @@ -154,8 +160,8 @@ class WzGroupAgentsTable extends Component { { field: 'ip', name: 'IP address', - align: 'left', sortable: true, + show: true, }, { field: 'status', @@ -184,49 +190,57 @@ class WzGroupAgentsTable extends Component { { name: 'Actions', align: 'left', - render: (item) => { + render: item => { return (
({ + ...(item.group || []).map(group => ({ action: 'agent:read', resource: `agent:group:${group}`, })), ], ]} tooltip={{ position: 'top', content: 'Go to the agent' }} - aria-label="Go to the agent" - iconType="eye" + aria-label='Go to the agent' + iconType='eye' onClick={async () => { this.props.groupsProps.showAgent(item); }} - color="primary" + color='primary' /> {this.props?.state?.itemDetail?.name !== 'default' && ( ({ + { + action: 'agent:modify_group', + resource: `agent:id:${item.id}`, + }, + ...(item.group || []).map(group => ({ action: 'agent:modify_group', resource: `agent:group:${group}`, })), ], ]} - tooltip={{ position: 'top', content: 'Remove agent from this group' }} - aria-label="Remove agent from this group" - iconType="trash" + tooltip={{ + position: 'top', + content: 'Remove agent from this group', + }} + aria-label='Remove agent from this group' + iconType='trash' onConfirm={async () => { this.removeItems([item]); }} - color="danger" + color='danger' isDisabled={item.name === 'default'} - modalTitle={`Remove ${item.file || item.name} agent from this group?`} + modalTitle={`Remove ${ + item.file || item.name + } agent from this group?`} modalProps={{ buttonColor: 'danger', }} @@ -242,22 +256,22 @@ class WzGroupAgentsTable extends Component { componentWillUnmount() { this._isMounted = false; } - render() { const { error } = this.props.state; if (!error) { return ( ); } else { - return ; + return ; } } @@ -274,7 +288,11 @@ class WzGroupAgentsTable extends Component { const { itemDetail } = this.props.state; this.props.updateLoadingStatus(true); try { - await Promise.all(items.map(item => this.groupsHandler.deleteAgent(item.id, itemDetail.name))); + await Promise.all( + items.map(item => + this.groupsHandler.deleteAgent(item.id, itemDetail.name), + ), + ); this.props.updateIsProcessing(true); this.props.updateLoadingStatus(false); this.props.updateReload(); @@ -299,23 +317,27 @@ class WzGroupAgentsTable extends Component { } } -const mapStateToProps = (state) => { +const mapStateToProps = state => { return { state: state.groupsReducers, }; }; -const mapDispatchToProps = (dispatch) => { +const mapDispatchToProps = dispatch => { return { - updateLoadingStatus: (status) => dispatch(updateLoadingStatus(status)), - updateFileContent: (content) => dispatch(updateFileContent(content)), - updateIsProcessing: (isProcessing) => dispatch(updateIsProcessing(isProcessing)), - updatePageIndexAgents: (pageIndexAgents) => dispatch(updatePageIndexAgents(pageIndexAgents)), - updateShowModal: (showModal) => dispatch(updateShowModal(showModal)), - updateListItemsForRemove: (itemList) => dispatch(updateListItemsForRemove(itemList)), - updateSortDirectionAgents: (sortDirectionAgents) => + updateLoadingStatus: status => dispatch(updateLoadingStatus(status)), + updateFileContent: content => dispatch(updateFileContent(content)), + updateIsProcessing: isProcessing => + dispatch(updateIsProcessing(isProcessing)), + updatePageIndexAgents: pageIndexAgents => + dispatch(updatePageIndexAgents(pageIndexAgents)), + updateShowModal: showModal => dispatch(updateShowModal(showModal)), + updateListItemsForRemove: itemList => + dispatch(updateListItemsForRemove(itemList)), + updateSortDirectionAgents: sortDirectionAgents => dispatch(updateSortDirectionAgents(sortDirectionAgents)), - updateSortFieldAgents: (sortFieldAgents) => dispatch(updateSortFieldAgents(sortFieldAgents)), + updateSortFieldAgents: sortFieldAgents => + dispatch(updateSortFieldAgents(sortFieldAgents)), updateReload: () => dispatch(updateReload()), }; }; From 2ce73750c3f566c2ecc92e91c602662fa389990c Mon Sep 17 00:00:00 2001 From: yenienserrano Date: Thu, 8 Jun 2023 13:09:10 +0200 Subject: [PATCH 04/12] Bump v4.4.4-2.6.0-rc2 --- opensearch_dashboards.json | 4 ++-- package.json | 6 +++--- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/opensearch_dashboards.json b/opensearch_dashboards.json index a8ee57d53f..7044bfcaa5 100644 --- a/opensearch_dashboards.json +++ b/opensearch_dashboards.json @@ -1,6 +1,6 @@ { "id": "wazuh", - "version": "4.4.4-00", + "version": "4.4.4-01", "opensearchDashboardsVersion": "opensearchDashboards", "configPath": [ "wazuh" @@ -26,4 +26,4 @@ ], "server": true, "ui": true -} +} \ No newline at end of file diff --git a/package.json b/package.json index f83f207be6..7bfdc2a9b3 100644 --- a/package.json +++ b/package.json @@ -1,9 +1,9 @@ { "name": "wazuh", "version": "4.4.4", - "revision": "00", + "revision": "01", "stage": "stable", - "commit": "1ec339caf", + "commit": "0e7201ff8", "pluginPlatform": { "version": "2.6.0" }, @@ -84,4 +84,4 @@ "tslint": "^5.11.0", "typescript-eslint-parser": "^18.0.0" } -} +} \ No newline at end of file From 0135df9c12b271ad41d19f4500b880f1ae3004a5 Mon Sep 17 00:00:00 2001 From: Federico Rodriguez Date: Mon, 19 Jun 2023 13:39:32 +0200 Subject: [PATCH 05/12] Add Apple Silicon architecture to the register Agent wizard (#5478) * Add Apple Silicon architecture * Add changelog * Change macOS environment variables * Revert "Change macOS environment variables" This reverts commit 108e86626045de6b5cd7b7053a8c6333d8bf8b89. * Change macOS architecture ids --- CHANGELOG.md | 8 ++++++-- public/controllers/agent/components/register-agent.js | 2 +- public/controllers/agent/wazuh-config/index.ts | 8 ++++++-- 3 files changed, 13 insertions(+), 5 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index c43113b78d..064ca4d757 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,6 +4,10 @@ All notable changes to the Wazuh app project will be documented in this file. ## Wazuh v4.4.5 - OpenSearch Dashboards 2.6.0 - Revision 00 +### Added + +- Add Apple Silicon architecture button to the register Agent wizard [#5478](https://github.com/wazuh/wazuh-kibana-app/pull/5478) + ### Fixed - Fixed the rendering of tables that contains IPs and agent overview [#5471](https://github.com/wazuh/wazuh-kibana-app/pull/5471) @@ -64,8 +68,8 @@ All notable changes to the Wazuh app project will be documented in this file. - Added the option to sort by the agent's count in the group table. [#4323](https://github.com/wazuh/wazuh-kibana-app/pull/4323) - Added agent synchronization status in the agent module. [#3874](https://github.com/wazuh/wazuh-kibana-app/pull/3874) [#5143](https://github.com/wazuh/wazuh-kibana-app/pull/5143) [#5177](https://github.com/wazuh/wazuh-kibana-app/pull/5177) - Added the ability to set the agent name in the installation command. [#4739](https://github.com/wazuh/wazuh-kibana-app/pull/4739) -- Added validation to the plugin's settings [#4503](https://github.com/wazuh/wazuh-kibana-app/pull/4503)[#4785](https://github.com/wazuh/wazuh-kibana-app/pull/4785) -- Added new settings to customize the header and footer on the PDF reports [#4505](https://github.com/wazuh/wazuh-kibana-app/pull/4505)[#4798](https://github.com/wazuh/wazuh-kibana-app/pull/4798)[#4805](https://github.com/wazuh/wazuh-kibana-app/pull/4805) +- Added validation to the plugin's settings [#4503](https://github.com/wazuh/wazuh-kibana-app/pull/4503) [#4785](https://github.com/wazuh/wazuh-kibana-app/pull/4785) +- Added new settings to customize the header and footer on the PDF reports [#4505](https://github.com/wazuh/wazuh-kibana-app/pull/4505) [#4798](https://github.com/wazuh/wazuh-kibana-app/pull/4798) [#4805](https://github.com/wazuh/wazuh-kibana-app/pull/4805) - Added a new setting to enable or disable the customization [#4507](https://github.com/wazuh/wazuh-kibana-app/pull/4507) - Added the ability to upload an image for the `customization.logo.*` settings in `Settings/Configuration` [#4504](https://github.com/wazuh/wazuh-kibana-app/pull/4504) - Added macOS support to the 'Deploy new agent' section [#4867](https://github.com/wazuh/wazuh-kibana-app/pull/4867) diff --git a/public/controllers/agent/components/register-agent.js b/public/controllers/agent/components/register-agent.js index 870199e180..94a1b3db23 100644 --- a/public/controllers/agent/components/register-agent.js +++ b/public/controllers/agent/components/register-agent.js @@ -1005,7 +1005,7 @@ export const RegisterAgent = withErrorBoundary( : ``; // Merge environment variables with installation script - const macOSInstallationScript = `curl -so wazuh-agent.pkg https://packages.wazuh.com/4.x/macos/wazuh-agent-${this.state.wazuhVersion}-1.pkg && ${macOSInstallationSetEnvVariablesScript}sudo installer -pkg ./wazuh-agent.pkg -target /`; + const macOSInstallationScript = `curl -so wazuh-agent.pkg https://packages.wazuh.com/4.x/macos/wazuh-agent-${this.state.wazuhVersion}-1.${this.state.selectedArchitecture}.pkg && ${macOSInstallationSetEnvVariablesScript}sudo installer -pkg ./wazuh-agent.pkg -target /`; /*** end macOS installation script customization ***/ diff --git a/public/controllers/agent/wazuh-config/index.ts b/public/controllers/agent/wazuh-config/index.ts index e555fb5517..f10c7994c1 100644 --- a/public/controllers/agent/wazuh-config/index.ts +++ b/public/controllers/agent/wazuh-config/index.ts @@ -103,8 +103,12 @@ const architectureButtonsSolaris = [ const architectureButtonsMacos = [ { - id: 'intel/applesilicon', - label: 'Intel/Apple Silicon', + id: 'intel64', + label: 'Intel', + }, + { + id: 'arm64', + label: 'Apple Silicon', }, ]; From b6813de16c4e3ba7e67c56c1006b54e60278aef6 Mon Sep 17 00:00:00 2001 From: Antonio <34042064+Desvelao@users.noreply.github.com> Date: Tue, 20 Jun 2023 11:48:48 +0200 Subject: [PATCH 06/12] Add missing supported versions to the Docker environments (#5584) feat(environments): add latest versions to Docker environments - Add Kibana versions: 7.17.7, 7.17.8, 7.17.9 and 7.17.10 - Add OpenSearch: 2.6.0 - Add OpenSearch Dashboards: 2.6.0 - Add Wazuh 4.4.1, 4.4.2, 4.4.3 and 4.4.4 --- docker/kbn-dev/dev.sh | 4 ++++ docker/osd-dev/dev.sh | 2 ++ docker/wazuh-4.4-wz/pre.sh | 4 ++++ docker/wazuh-4.4-wz/rel.sh | 4 ++++ docker/wazuh-4.x-es/pre.sh | 7 +++++++ docker/wazuh-4.x-es/rel.sh | 8 ++++++++ 6 files changed, 29 insertions(+) diff --git a/docker/kbn-dev/dev.sh b/docker/kbn-dev/dev.sh index 082a79c26f..70d27c34b2 100755 --- a/docker/kbn-dev/dev.sh +++ b/docker/kbn-dev/dev.sh @@ -11,6 +11,10 @@ elastic_versions=( '7.17.4' '7.17.5' '7.17.6' + '7.17.7' + '7.17.8' + '7.17.9' + '7.17.10' '8.0.0' '8.1.0' '8.2.1' diff --git a/docker/osd-dev/dev.sh b/docker/osd-dev/dev.sh index 7d08ae665c..b961c47e48 100755 --- a/docker/osd-dev/dev.sh +++ b/docker/osd-dev/dev.sh @@ -8,6 +8,7 @@ os_versions=( '2.3.0' '2.4.0' '2.4.1' + '2.6.0' ) osd_versions=( @@ -18,6 +19,7 @@ osd_versions=( '2.3.0' '2.4.0' '2.4.1' + '2.6.0' ) usage() { diff --git a/docker/wazuh-4.4-wz/pre.sh b/docker/wazuh-4.4-wz/pre.sh index 47458d004b..981f2bbd30 100755 --- a/docker/wazuh-4.4-wz/pre.sh +++ b/docker/wazuh-4.4-wz/pre.sh @@ -2,6 +2,10 @@ versions=( "4.4.0" + "4.4.1" + "4.4.2" + "4.4.3" + "4.4.4" ) wazuh_api_version=( diff --git a/docker/wazuh-4.4-wz/rel.sh b/docker/wazuh-4.4-wz/rel.sh index aca0eae3e1..9723041319 100755 --- a/docker/wazuh-4.4-wz/rel.sh +++ b/docker/wazuh-4.4-wz/rel.sh @@ -2,6 +2,10 @@ versions=( "4.4.0" + "4.4.1" + "4.4.2" + "4.4.3" + "4.4.4" ) usage() { diff --git a/docker/wazuh-4.x-es/pre.sh b/docker/wazuh-4.x-es/pre.sh index b96ca6740a..e76d4c924c 100755 --- a/docker/wazuh-4.x-es/pre.sh +++ b/docker/wazuh-4.x-es/pre.sh @@ -12,6 +12,10 @@ elastic_versions=( "7.17.4" "7.17.5" "7.17.6" + "7.17.7" + "7.17.8" + "7.17.9" + "7.17.10" ) wazuh_api_version=( @@ -28,6 +32,9 @@ wazuh_api_version=( "4.3.10" "4.4.0" "4.4.1" + "4.4.2" + "4.4.3" + "4.4.4" ) usage() { diff --git a/docker/wazuh-4.x-es/rel.sh b/docker/wazuh-4.x-es/rel.sh index e74afce8b4..d58ecf4e6d 100755 --- a/docker/wazuh-4.x-es/rel.sh +++ b/docker/wazuh-4.x-es/rel.sh @@ -12,6 +12,10 @@ elastic_versions=( "7.17.4" "7.17.5" "7.17.6" + "7.17.7" + "7.17.8" + "7.17.9" + "7.17.10" ) wazuh_versions=( @@ -27,6 +31,10 @@ wazuh_versions=( "4.3.9" "4.3.10" "4.4.0" + "4.4.1" + "4.4.2" + "4.4.3" + "4.4.4" ) usage() { From 48606310133d458377c706a257e89201fe1a8ea4 Mon Sep 17 00:00:00 2001 From: Federico Rodriguez Date: Mon, 26 Jun 2023 18:18:24 +0200 Subject: [PATCH 07/12] Bump 4.5.1 --- README.md | 56 +++++++++++++++++++------------------- docker/wazuh-4.4-wz/pre.sh | 2 ++ docker/wazuh-4.4-wz/rel.sh | 2 ++ docker/wazuh-4.x-es/pre.sh | 2 ++ docker/wazuh-4.x-es/rel.sh | 2 ++ scripts/tag.py | 2 +- 6 files changed, 37 insertions(+), 29 deletions(-) diff --git a/README.md b/README.md index 750366620e..d9e29ef106 100644 --- a/README.md +++ b/README.md @@ -16,31 +16,31 @@ You can learn more about it here [wazuh.com](https://wazuh.com/) This plugin for OpenSearch Dashboards allows you to visualize and analyze Wazuh alerts stored in OpenSearch and provides the following capabilities: - Search alerts classified by modules and filter them using the different views. You will be able to explore the alerts both at Wazuh cluster level, and in a particular agent. The modules, divided into the following use cases, are: - - Security Information Management - - Security events: Browse through your security alerts, identifying issues and threats in your environment. - - Integrity monitoring: Alerts related to file changes, including permissions, content, ownership and attributes. - - Amazon AWS: Security events related to your Amazon AWS services, collected directly via AWS API. - - Office 365: Security events related to your Office 365 services. - - GitHub: Security events related to your GitHub organizations, collected via GitHub audit logs API. - - Google Cloud Platform: Security events related to your Google Cloud Platform services, collected directly via GCP API. - - Auditing and Policy Monitoring - - Policy monitoring: Verify that your systems are configured according to your security policies baseline. - - Security configuration assessment: Scan your assets as part of a configuration assessment audit. - - System auditing: Audit users behavior, monitoring command execution and alerting on access to critical files. - - OpenSCAP: Configuration assessment and automation of compliance monitoring using SCAP checks. - - CIS-CAT: Configuration assessment using Center of Internet Security scanner and SCAP checks. - - Threat Detection and Response - - Vulnerabilities: Discover what applications in your environment are affected by well-known vulnerabilities. - - MITRE ATT&CK: Security events from the knowledge base of adversary tactics and techniques based on real-world observations. - - VirusTotal: Alerts resulting from VirusTotal analysis of suspicious files via an integration with their API. - - Osquery: Osquery can be used to expose an operating system as a high-performance relational database. - - Docker listener: Monitor and collect the activity from Docker containers such as creation, running, starting, stopping or pausing events. - - Regulatory Compliance - - PCI DSS: Global security standard for entities that process, store or transmit payment cardholder data. - - NIST 800-53: National Institute of Standards and Technology Special Publication 800-53 (NIST 800-53) sets guidelines for federal information systems. - - GDPR: General Data Protection Regulation (GDPR) sets guidelines for processing of personal data. - - HIPAA: Health Insurance Portability and Accountability Act of 1996 (HIPAA) provides data privacy and security provisions for safeguarding medical information. - - TSC: Trust Services Criteria for Security, Availability, Processing Integrity, Confidentiality, and Privacy. + - Security Information Management + - Security events: Browse through your security alerts, identifying issues and threats in your environment. + - Integrity monitoring: Alerts related to file changes, including permissions, content, ownership and attributes. + - Amazon AWS: Security events related to your Amazon AWS services, collected directly via AWS API. + - Office 365: Security events related to your Office 365 services. + - GitHub: Security events related to your GitHub organizations, collected via GitHub audit logs API. + - Google Cloud Platform: Security events related to your Google Cloud Platform services, collected directly via GCP API. + - Auditing and Policy Monitoring + - Policy monitoring: Verify that your systems are configured according to your security policies baseline. + - Security configuration assessment: Scan your assets as part of a configuration assessment audit. + - System auditing: Audit users behavior, monitoring command execution and alerting on access to critical files. + - OpenSCAP: Configuration assessment and automation of compliance monitoring using SCAP checks. + - CIS-CAT: Configuration assessment using Center of Internet Security scanner and SCAP checks. + - Threat Detection and Response + - Vulnerabilities: Discover what applications in your environment are affected by well-known vulnerabilities. + - MITRE ATT&CK: Security events from the knowledge base of adversary tactics and techniques based on real-world observations. + - VirusTotal: Alerts resulting from VirusTotal analysis of suspicious files via an integration with their API. + - Osquery: Osquery can be used to expose an operating system as a high-performance relational database. + - Docker listener: Monitor and collect the activity from Docker containers such as creation, running, starting, stopping or pausing events. + - Regulatory Compliance + - PCI DSS: Global security standard for entities that process, store or transmit payment cardholder data. + - NIST 800-53: National Institute of Standards and Technology Special Publication 800-53 (NIST 800-53) sets guidelines for federal information systems. + - GDPR: General Data Protection Regulation (GDPR) sets guidelines for processing of personal data. + - HIPAA: Health Insurance Portability and Accountability Act of 1996 (HIPAA) provides data privacy and security provisions for safeguarding medical information. + - TSC: Trust Services Criteria for Security, Availability, Processing Integrity, Confidentiality, and Privacy. - View and edit the Wazuh manager configuration. - Manage your ruleset (rules, decoders and CDB lists). - Manage your groups of agents. @@ -89,9 +89,9 @@ This plugin for OpenSearch Dashboards allows you to visualize and analyze Wazuh ## Requisites -- Wazuh HIDS 4.5.0 -- Wazuh dashboard 4.5.0 -- Wazuh indexer 4.5.0 +- Wazuh HIDS 4.5.1 +- Wazuh dashboard 4.5.1 +- Wazuh indexer 4.5.1 ## Contribute diff --git a/docker/wazuh-4.4-wz/pre.sh b/docker/wazuh-4.4-wz/pre.sh index 981f2bbd30..04af023574 100755 --- a/docker/wazuh-4.4-wz/pre.sh +++ b/docker/wazuh-4.4-wz/pre.sh @@ -6,6 +6,8 @@ versions=( "4.4.2" "4.4.3" "4.4.4" + "4.5.0" + "4.5.1" ) wazuh_api_version=( diff --git a/docker/wazuh-4.4-wz/rel.sh b/docker/wazuh-4.4-wz/rel.sh index 9723041319..198de5e706 100755 --- a/docker/wazuh-4.4-wz/rel.sh +++ b/docker/wazuh-4.4-wz/rel.sh @@ -6,6 +6,8 @@ versions=( "4.4.2" "4.4.3" "4.4.4" + "4.5.0" + "4.5.1" ) usage() { diff --git a/docker/wazuh-4.x-es/pre.sh b/docker/wazuh-4.x-es/pre.sh index e76d4c924c..73ca7c49a4 100755 --- a/docker/wazuh-4.x-es/pre.sh +++ b/docker/wazuh-4.x-es/pre.sh @@ -35,6 +35,8 @@ wazuh_api_version=( "4.4.2" "4.4.3" "4.4.4" + "4.5.0" + "4.5.1" ) usage() { diff --git a/docker/wazuh-4.x-es/rel.sh b/docker/wazuh-4.x-es/rel.sh index d58ecf4e6d..71724cf4ea 100755 --- a/docker/wazuh-4.x-es/rel.sh +++ b/docker/wazuh-4.x-es/rel.sh @@ -35,6 +35,8 @@ wazuh_versions=( "4.4.2" "4.4.3" "4.4.4" + "4.5.0" + "4.5.1" ) usage() { diff --git a/scripts/tag.py b/scripts/tag.py index 63e671526d..c991ea5f27 100644 --- a/scripts/tag.py +++ b/scripts/tag.py @@ -15,7 +15,7 @@ # ======================================================= # # Wazuh version: major.minor.patch -version = '4.5.0' +version = '4.5.1' # App's revision number (previous rev + 1) revision = '01' # One of 'pre-alpha', 'alpha', 'beta', 'release-candidate', 'stable' From 74927fb7726886dac5fae34f590183497d28d74e Mon Sep 17 00:00:00 2001 From: Ian Yenien Serrano <63758389+yenienserrano@users.noreply.github.com> Date: Tue, 27 Jun 2023 09:31:49 +0200 Subject: [PATCH 08/12] Change the method to make the redirect (#5539) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Change the metod to make the redirect * Remove unused code * Add changelog --------- Co-authored-by: Álex Ruiz --- CHANGELOG.md | 1 + public/controllers/agent/components/agents-preview.js | 1 - public/controllers/agent/components/agents-table.js | 11 ++++++++--- 3 files changed, 9 insertions(+), 4 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 994704cd91..05f3c71f0b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -18,6 +18,7 @@ All notable changes to the Wazuh app project will be documented in this file. ### Changed +- Changed method to perform redirection on agent table buttons [#5539](https://github.com/wazuh/wazuh-kibana-app/pull/5539) - Changed windows agent service name in the deploy agent wizard [#5538](https://github.com/wazuh/wazuh-kibana-app/pull/5538) ## Wazuh v4.5.0 - OpenSearch Dashboards 2.6.0 - Revision 01 diff --git a/public/controllers/agent/components/agents-preview.js b/public/controllers/agent/components/agents-preview.js index 1d27b4b359..fcb54702f3 100644 --- a/public/controllers/agent/components/agents-preview.js +++ b/public/controllers/agent/components/agents-preview.js @@ -319,7 +319,6 @@ export const AgentsPreview = compose( wzReq={this.props.tableProps.wzReq} addingNewAgent={this.props.tableProps.addingNewAgent} downloadCsv={this.props.tableProps.downloadCsv} - clickAction={this.props.tableProps.clickAction} formatUIDate={(date) => formatUIDate(date)} reload={() => this.fetchAgentStatusDetailsData()} /> diff --git a/public/controllers/agent/components/agents-table.js b/public/controllers/agent/components/agents-table.js index 828db0afd6..e517f99a7b 100644 --- a/public/controllers/agent/components/agents-table.js +++ b/public/controllers/agent/components/agents-table.js @@ -348,7 +348,10 @@ export const AgentsTable = withErrorBoundary( { ev.stopPropagation(); - this.props.clickAction(agent, 'default'); + AppNavigate.navigateToModule(ev, 'agents', { + tab: 'welcome', + agent: agent.id, + }); }} iconType='eye' color={'primary'} @@ -364,7 +367,10 @@ export const AgentsTable = withErrorBoundary( { ev.stopPropagation(); - this.props.clickAction(agent, 'configuration'); + AppNavigate.navigateToModule(ev, 'agents', { + tab: 'configuration', + agent: agent.id, + }); }} color={'primary'} iconType='wrench' @@ -857,7 +863,6 @@ AgentsTable.propTypes = { wzReq: PropTypes.func, addingNewAgent: PropTypes.func, downloadCsv: PropTypes.func, - clickAction: PropTypes.func, timeService: PropTypes.func, reload: PropTypes.func, }; From 53bf022cefa20db57aa854edad240ce1a98d51e9 Mon Sep 17 00:00:00 2001 From: Antonio <34042064+Desvelao@users.noreply.github.com> Date: Tue, 27 Jun 2023 09:44:25 +0200 Subject: [PATCH 09/12] Fix agents active coverage stat as NaN (#5490) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * fix: agents active coverate stat as NaN Ensure the values used to calculate have the expected types and the total count is greater than 0. * remove: unused openRegistrationDocs method * changelog: add entry * fix: check if agents active coverage is a NaN * changelog: fix entry --------- Co-authored-by: Álex Ruiz --- CHANGELOG.md | 2 + public/controllers/agent/agents-preview.js | 64 +++-- .../agent/components/agents-preview.js | 271 +++++++++++------- 3 files changed, 218 insertions(+), 119 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 05f3c71f0b..53e649ccea 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -11,6 +11,7 @@ All notable changes to the Wazuh app project will be documented in this file. ### Fixed - Fixed the rendering of tables that contains IPs and agent overview [#5471](https://github.com/wazuh/wazuh-kibana-app/pull/5471) +- Fixed the agents active coverage stat as NaN in Details panel of Agents section [#5490](https://github.com/wazuh/wazuh-kibana-app/pull/5490) ### Removed @@ -29,6 +30,7 @@ All notable changes to the Wazuh app project will be documented in this file. ## Wazuh v4.4.4 - OpenSearch Dashboards 2.6.0 - Revision 01 + ### Added - Support for Wazuh 4.4.4 diff --git a/public/controllers/agent/agents-preview.js b/public/controllers/agent/agents-preview.js index 5cc1669c65..6765e20679 100644 --- a/public/controllers/agent/agents-preview.js +++ b/public/controllers/agent/agents-preview.js @@ -35,7 +35,15 @@ export class AgentsPreviewController { * @param {Object} errorHandler * @param {Object} csvReq */ - constructor($scope, $location, $route, errorHandler, csvReq, commonData, $window) { + constructor( + $scope, + $location, + $route, + errorHandler, + csvReq, + commonData, + $window, + ) { this.$scope = $scope; this.genericReq = GenericRequest; this.$location = $location; @@ -57,11 +65,15 @@ export class AgentsPreviewController { this.api = JSON.parse(AppState.getCurrentAPI()).id; const loc = this.$location.search(); if ((loc || {}).agent && (loc || {}).agent !== '000') { - this.commonData.setTimefilter(getDataPlugin().timefilter.timefilter.getTime()); + this.commonData.setTimefilter( + getDataPlugin().timefilter.timefilter.getTime(), + ); return this.showAgent({ id: loc.agent }); } - this.isClusterEnabled = AppState.getClusterInfo() && AppState.getClusterInfo().status === 'enabled'; + this.isClusterEnabled = + AppState.getClusterInfo() && + AppState.getClusterInfo().status === 'enabled'; this.loading = true; this.osPlatforms = []; this.versions = []; @@ -82,7 +94,7 @@ export class AgentsPreviewController { this.$location.search('tab', this.submenuNavItem); }); - this.$scope.$on('wazuhFetched', (evt) => { + this.$scope.$on('wazuhFetched', evt => { evt.stopPropagation(); }); this.registerAgentsProps = { @@ -90,14 +102,14 @@ export class AgentsPreviewController { hasAgents: () => this.hasAgents, reload: () => this.$route.reload(), getWazuhVersion: () => this.getWazuhVersion(), - getCurrentApiAddress: () => this.getCurrentApiAddress() + getCurrentApiAddress: () => this.getCurrentApiAddress(), }; this.hasAgents = true; this.init = false; const instance = new DataFactory(WzRequest.apiReq, '/agents', false, false); //Props this.tableAgentsProps = { - updateSummary: (summary) => { + updateSummary: summary => { this.summary = summary; if (this.summary.total === 0) { if (this.addingNewAgent === undefined) { @@ -117,7 +129,7 @@ export class AgentsPreviewController { this.downloadCsv(filters); this.$scope.$applyAsync(); }, - showAgent: (agent) => { + showAgent: agent => { this.showAgent(agent); this.$scope.$applyAsync(); }, @@ -125,10 +137,17 @@ export class AgentsPreviewController { return await this.getMostActive(); }, clickAction: (item, openAction = false) => { - clickAction(item, openAction, instance, this.shareAgent, this.$location, this.$scope); + clickAction( + item, + openAction, + instance, + this.shareAgent, + this.$location, + this.$scope, + ); this.$scope.$applyAsync(); }, - formatUIDate: (date) => formatUIDate(date), + formatUIDate: date => formatUIDate(date), summary: this.summary, }; //Load @@ -187,14 +206,18 @@ export class AgentsPreviewController { 'GET', `/elastic/top/${this.firstUrlParam}/${this.secondUrlParam}/agent.name/${ this.pattern - }?agentsList=${store.getState().appStateReducers.allowedAgents.toString()}` + }?agentsList=${store + .getState() + .appStateReducers.allowedAgents.toString()}`, ); this.mostActiveAgent.name = data.data.data; const info = await this.genericReq.request( 'GET', `/elastic/top/${this.firstUrlParam}/${this.secondUrlParam}/agent.id/${ this.pattern - }?agentsList=${store.getState().appStateReducers.allowedAgents.toString()}` + }?agentsList=${store + .getState() + .appStateReducers.allowedAgents.toString()}`, ); if (info.data.data === '' && this.mostActiveAgent.name !== '') { this.mostActiveAgent.id = '000'; @@ -227,9 +250,12 @@ export class AgentsPreviewController { try { this.errorInit = false; const clusterInfo = AppState.getClusterInfo(); - this.firstUrlParam = clusterInfo.status === 'enabled' ? 'cluster' : 'manager'; + this.firstUrlParam = + clusterInfo.status === 'enabled' ? 'cluster' : 'manager'; this.secondUrlParam = clusterInfo[this.firstUrlParam]; - this.pattern = (await getDataPlugin().indexPatterns.get(AppState.getCurrentPattern())).title; + this.pattern = ( + await getDataPlugin().indexPatterns.get(AppState.getCurrentPattern()) + ).title; } catch (error) { const options = { context: `${AgentsPreviewController.name}.load`, @@ -252,12 +278,6 @@ export class AgentsPreviewController { this.addingNewAgent = flag; } - openRegistrationDocs() { - this.$window.open(webDocumentationLink(user-manual/registering/index.html), - '_blank' - ); - } - /** * Returns the current API address */ @@ -265,7 +285,7 @@ export class AgentsPreviewController { try { const result = await this.genericReq.request('GET', '/hosts/apis'); const entries = result.data || []; - const host = entries.filter((e) => { + const host = entries.filter(e => { return e.id == this.api; }); const url = host[0].url; @@ -279,7 +299,9 @@ export class AgentsPreviewController { error: { error: error, message: error.message || error, - title: `Could not get the Wazuh API address: ${error.message || error}`, + title: `Could not get the Wazuh API address: ${ + error.message || error + }`, }, }; getErrorOrchestrator().handleError(options); diff --git a/public/controllers/agent/components/agents-preview.js b/public/controllers/agent/components/agents-preview.js index fcb54702f3..f372bf5202 100644 --- a/public/controllers/agent/components/agents-preview.js +++ b/public/controllers/agent/components/agents-preview.js @@ -41,11 +41,17 @@ import { formatUIDate } from '../../../../public/react-services/time-service'; import { compose } from 'redux'; import { withErrorBoundary } from '../../../components/common/hocs'; import './agents-preview.scss'; -import { UI_LOGGER_LEVELS, UI_ORDER_AGENT_STATUS } from '../../../../common/constants'; +import { + UI_LOGGER_LEVELS, + UI_ORDER_AGENT_STATUS, +} from '../../../../common/constants'; import { UI_ERROR_SEVERITIES } from '../../../react-services/error-orchestrator/types'; import { getErrorOrchestrator } from '../../../react-services/common-services'; import { VisualizationBasic } from '../../../components/common/charts/visualizations/basic'; -import { agentStatusColorByAgentStatus, agentStatusLabelByAgentStatus } from '../../../../common/services/wz_agent_status'; +import { + agentStatusColorByAgentStatus, + agentStatusLabelByAgentStatus, +} from '../../../../common/services/wz_agent_status'; export const AgentsPreview = compose( withErrorBoundary, @@ -56,7 +62,7 @@ export const AgentsPreview = compose( { action: 'agent:read', resource: 'agent:id:*' }, { action: 'agent:read', resource: 'agent:group:*' }, ], - ]) + ]), )( class AgentsPreview extends Component { _isMount = false; @@ -67,7 +73,13 @@ export const AgentsPreview = compose( loadingSummary: false, showAgentsEvolutionVisualization: true, agentTableFilters: [], - agentStatusSummary: { active: '-', disconnected: '-', total: '-', pending: '-', never_connected: '-' }, + agentStatusSummary: { + active: '-', + disconnected: '-', + total: '-', + pending: '-', + never_connected: '-', + }, agentConfiguration: {}, agentsActiveCoverage: 0, }; @@ -75,7 +87,7 @@ export const AgentsPreview = compose( this.agentStatus = UI_ORDER_AGENT_STATUS.map(agentStatus => ({ status: agentStatus, label: agentStatusLabelByAgentStatus(agentStatus), - color: agentStatusColorByAgentStatus(agentStatus) + color: agentStatusColorByAgentStatus(agentStatus), })); } @@ -83,9 +95,10 @@ export const AgentsPreview = compose( this._isMount = true; this.fetchAgentStatusDetailsData(); if (this.wazuhConfig.getConfig()['wazuh.monitoring.enabled']) { - this._isMount && this.setState({ - showAgentsEvolutionVisualization: true - }); + this._isMount && + this.setState({ + showAgentsEvolutionVisualization: true, + }); const tabVisualizations = new TabVisualizations(); tabVisualizations.removeAll(); tabVisualizations.setTab('general'); @@ -93,7 +106,11 @@ export const AgentsPreview = compose( general: 1, }); const filterHandler = new FilterHandler(AppState.getCurrentPattern()); - await VisFactoryHandler.buildOverviewVisualizations(filterHandler, 'general', null); + await VisFactoryHandler.buildOverviewVisualizations( + filterHandler, + 'general', + null, + ); } } @@ -101,7 +118,6 @@ export const AgentsPreview = compose( this._isMount = false; } - groupBy = function (arr) { return arr.reduce(function (prev, item) { if (item in prev) prev[item]++; @@ -111,30 +127,54 @@ export const AgentsPreview = compose( }; async fetchSummaryStatus() { this.setState({ loadingSummary: true }); - const {data: {data: { connection: agentStatusSummary, configuration: agentConfiguration }}} = await WzRequest.apiReq('GET', '/agents/summary/status', {}); + const { + data: { + data: { + connection: agentStatusSummary, + configuration: agentConfiguration, + }, + }, + } = await WzRequest.apiReq('GET', '/agents/summary/status', {}); this.props.tableProps.updateSummary(agentStatusSummary); + + const agentsActiveCoverage = ( + (agentStatusSummary.active / agentStatusSummary.total) * + 100 + ).toFixed(2); + this.setState({ loadingSummary: false, agentStatusSummary, agentConfiguration, - agentsActiveCoverage: ((agentStatusSummary.active / agentStatusSummary.total) * 100).toFixed(2), + /* Calculate the agents active coverage. + Ensure the calculated value is not a NaN, otherwise set a 0. + */ + agentsActiveCoverage: isNaN(agentsActiveCoverage) + ? 0 + : agentsActiveCoverage, }); } async fetchAgents() { this.setState({ loadingAgents: true }); - const { data: { data: { affected_items: [lastRegisteredAgent] } } } = await WzRequest.apiReq('GET', '/agents', { + const { + data: { + data: { + affected_items: [lastRegisteredAgent], + }, + }, + } = await WzRequest.apiReq('GET', '/agents', { params: { limit: 1, sort: '-dateAdd', q: 'id!=000' }, }); const agentMostActive = await this.props.tableProps.getMostActive(); this.setState({ loadingAgents: false, lastRegisteredAgent, - agentMostActive + agentMostActive, }); } - async fetchAgentStatusDetailsData(){ + async fetchAgentStatusDetailsData() { try { this.fetchSummaryStatus(); this.fetchAgents(); @@ -169,37 +209,44 @@ export const AgentsPreview = compose( agentTableFilters: [{ field: 'q', value: `status=${status}` }], }); } - onRenderComplete(){ + onRenderComplete() { this.setState({ - evolutionRenderComplete: true - }) + evolutionRenderComplete: true, + }); } render() { const evolutionIsReady = this.props.resultState !== 'loading'; return ( - + - - { - ( + + { <> - - + + - + ({ - label, - value: this.state.agentStatusSummary[status] || 0, - color, - onClick: () => this.filterAgentByStatus(status) - }))} + data={this.agentStatus.map( + ({ status, label, color }) => ({ + label, + value: + this.state.agentStatusSummary[status] || 0, + color, + onClick: () => this.filterAgentByStatus(status), + }), + )} noDataTitle='No results' noDataMessage='No results were found.' /> @@ -207,24 +254,32 @@ export const AgentsPreview = compose( - - - - {this.agentStatus.map(({status, label, color}) => ( + + + + {this.agentStatus.map(({ status, label, color }) => ( - this.filterAgentByStatus(status)} style={{cursor: 'pointer'}}> + + + this.filterAgentByStatus(status) + } + style={{ cursor: 'pointer' }} + > {this.state.agentStatusSummary[status]} } - titleSize="s" + titleSize='s' description={label} titleColor={color} - className="white-space-nowrap" + className='white-space-nowrap' /> ))} @@ -233,43 +288,63 @@ export const AgentsPreview = compose( isLoading={this.state.loadingSummary} title={`${this.state.agentsActiveCoverage}%`} titleSize='s' - description="Agents coverage" - className="white-space-nowrap" - /> + description='Agents coverage' + className='white-space-nowrap' + /> - - - - this.showAgent(this.state.lastRegisteredAgent)}> - {this.state.lastRegisteredAgent?.name || '-'} - - - } - titleSize="s" - description="Last registered agent" - titleColor="primary" - /> - + + + + + this.showAgent( + this.state.lastRegisteredAgent, + ) + } + > + {this.state.lastRegisteredAgent?.name || '-'} + + + } + titleSize='s' + description='Last registered agent' + titleColor='primary' + /> + { - + - this.showAgent(this.state.agentMostActive)}> + + + this.showAgent(this.state.agentMostActive) + } + > {this.state.agentMostActive?.name || '-'} } - titleSize="s" - description="Most active agent" - titleColor="primary" + titleSize='s' + description='Most active agent' + titleColor='primary' /> } @@ -277,41 +352,41 @@ export const AgentsPreview = compose( - )} - + - - - + +
- - - + + + +
+ {!evolutionIsReady && ( +
+
- {!evolutionIsReady && ( -
- -
- )} -
-
-
-
+ )} +
+
+ +
- + ); } - } + }, ); AgentsTable.propTypes = { From 5b5859c26d3610104b133c80008e4f244914e692 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=81lex=20Ruiz?= Date: Tue, 27 Jun 2023 14:59:51 +0200 Subject: [PATCH 10/12] [Backport 4.5.1] Update test snapshots for 4.5 (#5607) * Update test snapshots for 4.5 (#5601) * Add missing supported versions to the Docker environments (#5584) feat(environments): add latest versions to Docker environments - Add Kibana versions: 7.17.7, 7.17.8, 7.17.9 and 7.17.10 - Add OpenSearch: 2.6.0 - Add OpenSearch Dashboards: 2.6.0 - Add Wazuh 4.4.1, 4.4.2, 4.4.3 and 4.4.4 * Update test snapshost * Update API data to 4.5 * Update branch patterns for GH Actions --------- Co-authored-by: Antonio <34042064+Desvelao@users.noreply.github.com> (cherry picked from commit 1ae5f19a9edc967187b2d946aad6e8d8f0afff14) * Fix API reference links in endpoints.json --- .github/workflows/eslint.yml | 9 +- .github/workflows/unit-test.yml | 6 +- common/api-info/endpoints.json | 531 +++++++++--------- common/services/web_documentation.test.ts | 2 +- docker/wazuh-4.4-wz/pre.sh | 110 ++-- docker/wazuh-4.4-wz/rel.sh | 77 ++- docker/wazuh-4.x-es/pre.sh | 102 ++-- docker/wazuh-4.x-es/rel.sh | 129 +++-- .../SubscriptionTab.test.tsx.snap | 12 +- .../__snapshots__/api-auth-tab.test.tsx.snap | 12 +- .../__snapshots__/general-tab.test.tsx.snap | 12 +- 11 files changed, 507 insertions(+), 495 deletions(-) diff --git a/.github/workflows/eslint.yml b/.github/workflows/eslint.yml index 7fcf51857b..95c619969c 100644 --- a/.github/workflows/eslint.yml +++ b/.github/workflows/eslint.yml @@ -10,11 +10,12 @@ name: ESLint on: - push: - branches: [ "master", "*.*-*.*", "*.*-*.*-wzd", "[0-9].[0-9]+" ] pull_request: - # The branches below must be a subset of the branches above - branches: [ "*.*-*.*", "*.*-*.*-wzd", "[0-9].[0-9]+" ] + branches: + - 'master' + - '[345].[0-9]+' # Minor branches + - '[345].[0-9]+.[0-9]+' # Patch branches + - '[345].[0-9]+.[0-9]+-7.[0-9]+' # Minor branches - Kibana jobs: eslint: diff --git a/.github/workflows/unit-test.yml b/.github/workflows/unit-test.yml index 7b5827a682..aa4b3195f2 100644 --- a/.github/workflows/unit-test.yml +++ b/.github/workflows/unit-test.yml @@ -26,9 +26,9 @@ on: pull_request: branches: - 'master' - - '*.*-*.*' - - '*.*-*.*-wzd' - - '[0-9].[0-9]+' + - '[345].[0-9]+' # Minor branches + - '[345].[0-9]+.[0-9]+' # Patch branches + - '[345].[0-9]+.[0-9]+-7.[0-9]+' # Minor branches - Kibana jobs: # Run unit tests with Jest diff --git a/common/api-info/endpoints.json b/common/api-info/endpoints.json index c75ae31920..e676b55387 100644 --- a/common/api-info/endpoints.json +++ b/common/api-info/endpoints.json @@ -4,7 +4,7 @@ "endpoints": [ { "name": "/", - "documentation": "https://documentation.wazuh.com/4.4/user-manual/api/reference.html#operation/api.controllers.default_controller.default_info", + "documentation": "https://documentation.wazuh.com/4.5/user-manual/api/reference.html#operation/api.controllers.default_controller.default_info", "description": "Return basic information about the API", "summary": "Get API info", "tags": [ @@ -23,7 +23,7 @@ }, { "name": "/agents", - "documentation": "https://documentation.wazuh.com/4.4/user-manual/api/reference.html#operation/api.controllers.agent_controller.get_agents", + "documentation": "https://documentation.wazuh.com/4.5/user-manual/api/reference.html#operation/api.controllers.agent_controller.get_agents", "description": "Return information about all available agents or a list of them", "summary": "List agents", "tags": [ @@ -235,7 +235,7 @@ }, { "name": "/agents/:agent_id/config/:component/:configuration", - "documentation": "https://documentation.wazuh.com/4.4/user-manual/api/reference.html#operation/api.controllers.agent_controller.get_agent_config", + "documentation": "https://documentation.wazuh.com/4.5/user-manual/api/reference.html#operation/api.controllers.agent_controller.get_agent_config", "description": "Return the active configuration the agent is currently using. This can be different from the configuration present in the configuration file, if it has been modified and the agent has not been restarted yet", "summary": "Get active configuration", "tags": [ @@ -335,7 +335,7 @@ }, { "name": "/agents/:agent_id/daemons/stats", - "documentation": "https://documentation.wazuh.com/4.4/user-manual/api/reference.html#operation/api.controllers.agent_controller.get_daemon_stats", + "documentation": "https://documentation.wazuh.com/4.5/user-manual/api/reference.html#operation/api.controllers.agent_controller.get_daemon_stats", "description": "Return Wazuh statistical information from specified daemons in a specified agent", "summary": "Get Wazuh daemon stats from an agent", "tags": [ @@ -389,7 +389,7 @@ }, { "name": "/agents/:agent_id/group/is_sync", - "documentation": "https://documentation.wazuh.com/4.4/user-manual/api/reference.html#operation/api.controllers.agent_controller.get_sync_agent", + "documentation": "https://documentation.wazuh.com/4.5/user-manual/api/reference.html#operation/api.controllers.agent_controller.get_sync_agent", "description": "Return whether the agent configuration has been synchronized with the agent or not. This can be useful to check after updating a group configuration", "summary": "Get configuration sync status", "tags": [ @@ -429,7 +429,7 @@ }, { "name": "/agents/:agent_id/key", - "documentation": "https://documentation.wazuh.com/4.4/user-manual/api/reference.html#operation/api.controllers.agent_controller.get_agent_key", + "documentation": "https://documentation.wazuh.com/4.5/user-manual/api/reference.html#operation/api.controllers.agent_controller.get_agent_key", "description": "Return the key of an agent", "summary": "Get key", "tags": [ @@ -469,7 +469,7 @@ }, { "name": "/agents/:agent_id/stats/:component", - "documentation": "https://documentation.wazuh.com/4.4/user-manual/api/reference.html#operation/api.controllers.agent_controller.get_component_stats", + "documentation": "https://documentation.wazuh.com/4.5/user-manual/api/reference.html#operation/api.controllers.agent_controller.get_component_stats", "description": "Return Wazuh's {component} statistical information from agent {agent_id}", "summary": "Get agent's component stats", "tags": [ @@ -521,7 +521,7 @@ }, { "name": "/agents/no_group", - "documentation": "https://documentation.wazuh.com/4.4/user-manual/api/reference.html#operation/api.controllers.agent_controller.get_agent_no_group", + "documentation": "https://documentation.wazuh.com/4.5/user-manual/api/reference.html#operation/api.controllers.agent_controller.get_agent_no_group", "description": "Return a list with all the available agents without an assigned group", "summary": "List agents without group", "tags": [ @@ -603,7 +603,7 @@ }, { "name": "/agents/outdated", - "documentation": "https://documentation.wazuh.com/4.4/user-manual/api/reference.html#operation/api.controllers.agent_controller.get_agent_outdated", + "documentation": "https://documentation.wazuh.com/4.5/user-manual/api/reference.html#operation/api.controllers.agent_controller.get_agent_outdated", "description": "Return the list of outdated agents", "summary": "List outdated agents", "tags": [ @@ -674,7 +674,7 @@ }, { "name": "/agents/stats/distinct", - "documentation": "https://documentation.wazuh.com/4.4/user-manual/api/reference.html#operation/api.controllers.agent_controller.get_agent_fields", + "documentation": "https://documentation.wazuh.com/4.5/user-manual/api/reference.html#operation/api.controllers.agent_controller.get_agent_fields", "description": "Return all the different combinations that agents have for the selected fields. It also indicates the total number of agents that have each combination", "summary": "List agents distinct", "tags": [ @@ -756,7 +756,7 @@ }, { "name": "/agents/summary/os", - "documentation": "https://documentation.wazuh.com/4.4/user-manual/api/reference.html#operation/api.controllers.agent_controller.get_agent_summary_os", + "documentation": "https://documentation.wazuh.com/4.5/user-manual/api/reference.html#operation/api.controllers.agent_controller.get_agent_summary_os", "description": "Return a summary of the OS of available agents", "summary": "Summarize agents OS", "tags": [ @@ -783,7 +783,7 @@ }, { "name": "/agents/summary/status", - "documentation": "https://documentation.wazuh.com/4.4/user-manual/api/reference.html#operation/api.controllers.agent_controller.get_agent_summary_status", + "documentation": "https://documentation.wazuh.com/4.5/user-manual/api/reference.html#operation/api.controllers.agent_controller.get_agent_summary_status", "description": "Return a summary of the connection and groups configuration synchronization statuses of available agents", "summary": "Summarize agents status", "tags": [ @@ -810,7 +810,7 @@ }, { "name": "/agents/upgrade_result", - "documentation": "https://documentation.wazuh.com/4.4/user-manual/api/reference.html#operation/api.controllers.agent_controller.get_agent_upgrade", + "documentation": "https://documentation.wazuh.com/4.5/user-manual/api/reference.html#operation/api.controllers.agent_controller.get_agent_upgrade", "description": "Return the agents upgrade results", "summary": "Get upgrade results", "tags": [ @@ -938,7 +938,7 @@ }, { "name": "/ciscat/:agent_id/results", - "documentation": "https://documentation.wazuh.com/4.4/user-manual/api/reference.html#operation/api.controllers.ciscat_controller.get_agents_ciscat_results", + "documentation": "https://documentation.wazuh.com/4.5/user-manual/api/reference.html#operation/api.controllers.ciscat_controller.get_agents_ciscat_results", "description": "Return the agent's ciscat results info", "summary": "Get results", "tags": [ @@ -1102,7 +1102,7 @@ }, { "name": "/cluster/:node_id/configuration", - "documentation": "https://documentation.wazuh.com/4.4/user-manual/api/reference.html#operation/api.controllers.cluster_controller.get_configuration_node", + "documentation": "https://documentation.wazuh.com/4.5/user-manual/api/reference.html#operation/api.controllers.cluster_controller.get_configuration_node", "description": "Return wazuh configuration used in node {node_id}. The 'section' and 'field' parameters will be ignored if 'raw' parameter is provided.", "summary": "Get node config", "tags": [ @@ -1196,7 +1196,7 @@ }, { "name": "/cluster/:node_id/configuration/:component/:configuration", - "documentation": "https://documentation.wazuh.com/4.4/user-manual/api/reference.html#operation/api.controllers.cluster_controller.get_node_config", + "documentation": "https://documentation.wazuh.com/4.5/user-manual/api/reference.html#operation/api.controllers.cluster_controller.get_node_config", "description": "Return the requested configuration in JSON format for the specified node", "summary": "Get node active configuration", "tags": [ @@ -1294,7 +1294,7 @@ }, { "name": "/cluster/:node_id/daemons/stats", - "documentation": "https://documentation.wazuh.com/4.4/user-manual/api/reference.html#operation/api.controllers.cluster_controller.get_daemon_stats_node", + "documentation": "https://documentation.wazuh.com/4.5/user-manual/api/reference.html#operation/api.controllers.cluster_controller.get_daemon_stats_node", "description": "Return Wazuh statistical information from specified daemons in a specified cluster node", "summary": "Get Wazuh daemon stats from a cluster node", "tags": [ @@ -1347,7 +1347,7 @@ }, { "name": "/cluster/:node_id/info", - "documentation": "https://documentation.wazuh.com/4.4/user-manual/api/reference.html#operation/api.controllers.cluster_controller.get_info_node", + "documentation": "https://documentation.wazuh.com/4.5/user-manual/api/reference.html#operation/api.controllers.cluster_controller.get_info_node", "description": "Return basic information about a specified node such as version, compilation date, installation path", "summary": "Get node info", "tags": [ @@ -1385,7 +1385,7 @@ }, { "name": "/cluster/:node_id/logs", - "documentation": "https://documentation.wazuh.com/4.4/user-manual/api/reference.html#operation/api.controllers.cluster_controller.get_log_node", + "documentation": "https://documentation.wazuh.com/4.5/user-manual/api/reference.html#operation/api.controllers.cluster_controller.get_log_node", "description": "Return the last 2000 wazuh log entries in the specified node", "summary": "Get node logs", "tags": [ @@ -1490,7 +1490,7 @@ }, { "name": "/cluster/:node_id/logs/summary", - "documentation": "https://documentation.wazuh.com/4.4/user-manual/api/reference.html#operation/api.controllers.cluster_controller.get_log_summary_node", + "documentation": "https://documentation.wazuh.com/4.5/user-manual/api/reference.html#operation/api.controllers.cluster_controller.get_log_summary_node", "description": "Return a summary of the last 2000 wazuh log entries in the specified node", "summary": "Get node logs summary", "tags": [ @@ -1528,7 +1528,7 @@ }, { "name": "/cluster/:node_id/stats", - "documentation": "https://documentation.wazuh.com/4.4/user-manual/api/reference.html#operation/api.controllers.cluster_controller.get_stats_node", + "documentation": "https://documentation.wazuh.com/4.5/user-manual/api/reference.html#operation/api.controllers.cluster_controller.get_stats_node", "description": "Return Wazuh statistical information in node {node_id} for the current or specified date", "summary": "Get node stats", "tags": [ @@ -1574,7 +1574,7 @@ }, { "name": "/cluster/:node_id/stats/analysisd", - "documentation": "https://documentation.wazuh.com/4.4/user-manual/api/reference.html#operation/api.controllers.cluster_controller.get_stats_analysisd_node", + "documentation": "https://documentation.wazuh.com/4.5/user-manual/api/reference.html#operation/api.controllers.cluster_controller.get_stats_analysisd_node", "description": "Return Wazuh analysisd statistical information in node {node_id}", "summary": "Get node stats analysisd", "tags": [ @@ -1612,7 +1612,7 @@ }, { "name": "/cluster/:node_id/stats/hourly", - "documentation": "https://documentation.wazuh.com/4.4/user-manual/api/reference.html#operation/api.controllers.cluster_controller.get_stats_hourly_node", + "documentation": "https://documentation.wazuh.com/4.5/user-manual/api/reference.html#operation/api.controllers.cluster_controller.get_stats_hourly_node", "description": "Return Wazuh statistical information in node {node_id} per hour. Each number in the averages field represents the average of alerts per hour", "summary": "Get node stats hour", "tags": [ @@ -1650,7 +1650,7 @@ }, { "name": "/cluster/:node_id/stats/remoted", - "documentation": "https://documentation.wazuh.com/4.4/user-manual/api/reference.html#operation/api.controllers.cluster_controller.get_stats_remoted_node", + "documentation": "https://documentation.wazuh.com/4.5/user-manual/api/reference.html#operation/api.controllers.cluster_controller.get_stats_remoted_node", "description": "Return Wazuh remoted statistical information in node {node_id}", "summary": "Get node stats remoted", "tags": [ @@ -1688,7 +1688,7 @@ }, { "name": "/cluster/:node_id/stats/weekly", - "documentation": "https://documentation.wazuh.com/4.4/user-manual/api/reference.html#operation/api.controllers.cluster_controller.get_stats_weekly_node", + "documentation": "https://documentation.wazuh.com/4.5/user-manual/api/reference.html#operation/api.controllers.cluster_controller.get_stats_weekly_node", "description": "Return Wazuh statistical information in node {node_id} per week. Each number in the averages field represents the average of alerts per hour for that specific day", "summary": "Get node stats week", "tags": [ @@ -1726,7 +1726,7 @@ }, { "name": "/cluster/:node_id/status", - "documentation": "https://documentation.wazuh.com/4.4/user-manual/api/reference.html#operation/api.controllers.cluster_controller.get_status_node", + "documentation": "https://documentation.wazuh.com/4.5/user-manual/api/reference.html#operation/api.controllers.cluster_controller.get_status_node", "description": "Return the status of all Wazuh daemons in node node_id", "summary": "Get node status", "tags": [ @@ -1764,7 +1764,7 @@ }, { "name": "/cluster/api/config", - "documentation": "https://documentation.wazuh.com/4.4/user-manual/api/reference.html#operation/api.controllers.cluster_controller.get_api_config", + "documentation": "https://documentation.wazuh.com/4.5/user-manual/api/reference.html#operation/api.controllers.cluster_controller.get_api_config", "description": "Return the API configuration of all nodes (or a list of them) in JSON format", "summary": "Get nodes API config", "tags": [ @@ -1801,7 +1801,7 @@ }, { "name": "/cluster/configuration/validation", - "documentation": "https://documentation.wazuh.com/4.4/user-manual/api/reference.html#operation/api.controllers.cluster_controller.get_conf_validation", + "documentation": "https://documentation.wazuh.com/4.5/user-manual/api/reference.html#operation/api.controllers.cluster_controller.get_conf_validation", "description": "Return whether the Wazuh configuration is correct or not in all cluster nodes or a list of them", "summary": "Check nodes config", "tags": [ @@ -1838,7 +1838,7 @@ }, { "name": "/cluster/healthcheck", - "documentation": "https://documentation.wazuh.com/4.4/user-manual/api/reference.html#operation/api.controllers.cluster_controller.get_healthcheck", + "documentation": "https://documentation.wazuh.com/4.5/user-manual/api/reference.html#operation/api.controllers.cluster_controller.get_healthcheck", "description": "Return cluster healthcheck information for all nodes or a list of them. Such information includes last keep alive, last synchronization time and number of agents reporting on each node", "summary": "Get nodes healthcheck", "tags": [ @@ -1875,7 +1875,7 @@ }, { "name": "/cluster/local/config", - "documentation": "https://documentation.wazuh.com/4.4/user-manual/api/reference.html#operation/api.controllers.cluster_controller.get_config", + "documentation": "https://documentation.wazuh.com/4.5/user-manual/api/reference.html#operation/api.controllers.cluster_controller.get_config", "description": "Return the current node cluster configuration", "summary": "Get local node config", "tags": [ @@ -1902,7 +1902,7 @@ }, { "name": "/cluster/local/info", - "documentation": "https://documentation.wazuh.com/4.4/user-manual/api/reference.html#operation/api.controllers.cluster_controller.get_cluster_node", + "documentation": "https://documentation.wazuh.com/4.5/user-manual/api/reference.html#operation/api.controllers.cluster_controller.get_cluster_node", "description": "Return basic information about the cluster node receiving the request", "summary": "Get local node info", "tags": [ @@ -1929,7 +1929,7 @@ }, { "name": "/cluster/nodes", - "documentation": "https://documentation.wazuh.com/4.4/user-manual/api/reference.html#operation/api.controllers.cluster_controller.get_cluster_nodes", + "documentation": "https://documentation.wazuh.com/4.5/user-manual/api/reference.html#operation/api.controllers.cluster_controller.get_cluster_nodes", "description": "Get information about all nodes in the cluster or a list of them", "summary": "Get nodes info", "tags": [ @@ -2032,7 +2032,7 @@ }, { "name": "/cluster/ruleset/synchronization", - "documentation": "https://documentation.wazuh.com/4.4/user-manual/api/reference.html#operation/api.controllers.cluster_controller.get_nodes_ruleset_sync_status", + "documentation": "https://documentation.wazuh.com/4.5/user-manual/api/reference.html#operation/api.controllers.cluster_controller.get_nodes_ruleset_sync_status", "description": "Return ruleset synchronization status for all nodes or a list of them. This synchronization only covers the user custom ruleset", "summary": "Get cluster nodes ruleset synchronization status", "tags": [ @@ -2069,7 +2069,7 @@ }, { "name": "/cluster/status", - "documentation": "https://documentation.wazuh.com/4.4/user-manual/api/reference.html#operation/api.controllers.cluster_controller.get_status", + "documentation": "https://documentation.wazuh.com/4.5/user-manual/api/reference.html#operation/api.controllers.cluster_controller.get_status", "description": "Return information about the cluster status", "summary": "Get cluster status", "tags": [ @@ -2096,7 +2096,7 @@ }, { "name": "/decoders", - "documentation": "https://documentation.wazuh.com/4.4/user-manual/api/reference.html#operation/api.controllers.decoder_controller.get_decoders", + "documentation": "https://documentation.wazuh.com/4.5/user-manual/api/reference.html#operation/api.controllers.decoder_controller.get_decoders", "description": "Return information about all decoders included in ossec.conf. This information include decoder's route, decoder's name, decoder's file among others", "summary": "List decoders", "tags": [ @@ -2221,7 +2221,7 @@ }, { "name": "/decoders/files", - "documentation": "https://documentation.wazuh.com/4.4/user-manual/api/reference.html#operation/api.controllers.decoder_controller.get_decoders_files", + "documentation": "https://documentation.wazuh.com/4.5/user-manual/api/reference.html#operation/api.controllers.decoder_controller.get_decoders_files", "description": "Return information about all decoders files used in Wazuh. This information include decoder's file, decoder's route and decoder's status among others", "summary": "Get files", "tags": [ @@ -2317,7 +2317,7 @@ }, { "name": "/decoders/files/:filename", - "documentation": "https://documentation.wazuh.com/4.4/user-manual/api/reference.html#operation/api.controllers.decoder_controller.get_file", + "documentation": "https://documentation.wazuh.com/4.5/user-manual/api/reference.html#operation/api.controllers.decoder_controller.get_file", "description": "Get the content of a specified decoder file", "summary": "Get decoders file content", "tags": [ @@ -2363,7 +2363,7 @@ }, { "name": "/decoders/parents", - "documentation": "https://documentation.wazuh.com/4.4/user-manual/api/reference.html#operation/api.controllers.decoder_controller.get_decoders_parents", + "documentation": "https://documentation.wazuh.com/4.5/user-manual/api/reference.html#operation/api.controllers.decoder_controller.get_decoders_parents", "description": "Return information about all parent decoders. A parent decoder is a decoder used as base of other decoders", "summary": "Get parent decoders", "tags": [ @@ -2438,7 +2438,7 @@ }, { "name": "/experimental/ciscat/results", - "documentation": "https://documentation.wazuh.com/4.4/user-manual/api/reference.html#operation/api.controllers.experimental_controller.get_cis_cat_results", + "documentation": "https://documentation.wazuh.com/4.5/user-manual/api/reference.html#operation/api.controllers.experimental_controller.get_cis_cat_results", "description": "Return CIS-CAT results for all agents or a list of them", "summary": "Get agents CIS-CAT results", "tags": [ @@ -2595,7 +2595,7 @@ }, { "name": "/experimental/syscollector/hardware", - "documentation": "https://documentation.wazuh.com/4.4/user-manual/api/reference.html#operation/api.controllers.experimental_controller.get_hardware_info", + "documentation": "https://documentation.wazuh.com/4.5/user-manual/api/reference.html#operation/api.controllers.experimental_controller.get_hardware_info", "description": "Return all agents (or a list of them) hardware info. This information include cpu, ram, scan info among others of all agents", "summary": "Get agents hardware", "tags": [ @@ -2734,7 +2734,7 @@ }, { "name": "/experimental/syscollector/hotfixes", - "documentation": "https://documentation.wazuh.com/4.4/user-manual/api/reference.html#operation/api.controllers.experimental_controller.get_hotfixes_info", + "documentation": "https://documentation.wazuh.com/4.5/user-manual/api/reference.html#operation/api.controllers.experimental_controller.get_hotfixes_info", "description": "Return all agents (or a list of them) hotfixes info", "summary": "Get agents hotfixes", "tags": [ @@ -2829,7 +2829,7 @@ }, { "name": "/experimental/syscollector/netaddr", - "documentation": "https://documentation.wazuh.com/4.4/user-manual/api/reference.html#operation/api.controllers.experimental_controller.get_network_address_info", + "documentation": "https://documentation.wazuh.com/4.5/user-manual/api/reference.html#operation/api.controllers.experimental_controller.get_network_address_info", "description": "Return all agents (or a list of them) IPv4 and IPv6 addresses associated to their network interfaces. This information include used IP protocol, interface, and IP address among others", "summary": "Get agents netaddr", "tags": [ @@ -2949,7 +2949,7 @@ }, { "name": "/experimental/syscollector/netiface", - "documentation": "https://documentation.wazuh.com/4.4/user-manual/api/reference.html#operation/api.controllers.experimental_controller.get_network_interface_info", + "documentation": "https://documentation.wazuh.com/4.5/user-manual/api/reference.html#operation/api.controllers.experimental_controller.get_network_interface_info", "description": "Return all agents (or a list of them) network interfaces. This information includes rx, scan, tx info and some network information among other", "summary": "Get agents netiface", "tags": [ @@ -3150,7 +3150,7 @@ }, { "name": "/experimental/syscollector/netproto", - "documentation": "https://documentation.wazuh.com/4.4/user-manual/api/reference.html#operation/api.controllers.experimental_controller.get_network_protocol_info", + "documentation": "https://documentation.wazuh.com/4.5/user-manual/api/reference.html#operation/api.controllers.experimental_controller.get_network_protocol_info", "description": "Return all agents (or a list of them) routing configuration for each network interface. This information includes interface, type protocol information among other", "summary": "Get agents netproto", "tags": [ @@ -3276,7 +3276,7 @@ }, { "name": "/experimental/syscollector/os", - "documentation": "https://documentation.wazuh.com/4.4/user-manual/api/reference.html#operation/api.controllers.experimental_controller.get_os_info", + "documentation": "https://documentation.wazuh.com/4.5/user-manual/api/reference.html#operation/api.controllers.experimental_controller.get_os_info", "description": "Return all agents (or a list of them) OS info. This information includes os information, architecture information among other", "summary": "Get agents OS", "tags": [ @@ -3404,7 +3404,7 @@ }, { "name": "/experimental/syscollector/packages", - "documentation": "https://documentation.wazuh.com/4.4/user-manual/api/reference.html#operation/api.controllers.experimental_controller.get_packages_info", + "documentation": "https://documentation.wazuh.com/4.5/user-manual/api/reference.html#operation/api.controllers.experimental_controller.get_packages_info", "description": "Return all agents (or a list of them) packages info. This information includes name, section, size, and priority information of all packages among other", "summary": "Get agents packages", "tags": [ @@ -3530,7 +3530,7 @@ }, { "name": "/experimental/syscollector/ports", - "documentation": "https://documentation.wazuh.com/4.4/user-manual/api/reference.html#operation/api.controllers.experimental_controller.get_ports_info", + "documentation": "https://documentation.wazuh.com/4.5/user-manual/api/reference.html#operation/api.controllers.experimental_controller.get_ports_info", "description": "Return all agents (or a list of them) ports info. This information includes local IP, Remote IP, protocol information among other", "summary": "Get agents ports", "tags": [ @@ -3682,7 +3682,7 @@ }, { "name": "/experimental/syscollector/processes", - "documentation": "https://documentation.wazuh.com/4.4/user-manual/api/reference.html#operation/api.controllers.experimental_controller.get_processes_info", + "documentation": "https://documentation.wazuh.com/4.5/user-manual/api/reference.html#operation/api.controllers.experimental_controller.get_processes_info", "description": "Return all agents (or a list of them) processes info", "summary": "Get agents processes", "tags": [ @@ -3882,7 +3882,7 @@ }, { "name": "/groups", - "documentation": "https://documentation.wazuh.com/4.4/user-manual/api/reference.html#operation/api.controllers.agent_controller.get_list_group", + "documentation": "https://documentation.wazuh.com/4.5/user-manual/api/reference.html#operation/api.controllers.agent_controller.get_list_group", "description": "Get information about all groups or a list of them. Returns a list containing basic information about each group such as number of agents belonging to the group and the checksums of the configuration and shared files", "summary": "Get groups", "tags": [ @@ -3979,7 +3979,7 @@ }, { "name": "/groups/:group_id/agents", - "documentation": "https://documentation.wazuh.com/4.4/user-manual/api/reference.html#operation/api.controllers.agent_controller.get_agents_in_group", + "documentation": "https://documentation.wazuh.com/4.5/user-manual/api/reference.html#operation/api.controllers.agent_controller.get_agents_in_group", "description": "Return the list of agents that belong to the specified group", "summary": "Get agents in a group", "tags": [ @@ -4090,7 +4090,7 @@ }, { "name": "/groups/:group_id/configuration", - "documentation": "https://documentation.wazuh.com/4.4/user-manual/api/reference.html#operation/api.controllers.agent_controller.get_group_config", + "documentation": "https://documentation.wazuh.com/4.5/user-manual/api/reference.html#operation/api.controllers.agent_controller.get_group_config", "description": "Return the group configuration defined in the `agent.conf` file", "summary": "Get group configuration", "tags": [ @@ -4150,7 +4150,7 @@ }, { "name": "/groups/:group_id/files", - "documentation": "https://documentation.wazuh.com/4.4/user-manual/api/reference.html#operation/api.controllers.agent_controller.get_group_files", + "documentation": "https://documentation.wazuh.com/4.5/user-manual/api/reference.html#operation/api.controllers.agent_controller.get_group_files", "description": "Return the files placed under the group directory", "summary": "Get group files", "tags": [ @@ -4247,7 +4247,7 @@ }, { "name": "/groups/:group_id/files/:file_name/json", - "documentation": "https://documentation.wazuh.com/4.4/user-manual/api/reference.html#operation/api.controllers.agent_controller.get_group_file_json", + "documentation": "https://documentation.wazuh.com/4.5/user-manual/api/reference.html#operation/api.controllers.agent_controller.get_group_file_json", "description": "Return the content of the specified group file parsed to JSON", "summary": "Get a file in group", "tags": [ @@ -4311,7 +4311,7 @@ }, { "name": "/groups/:group_id/files/:file_name/xml", - "documentation": "https://documentation.wazuh.com/4.4/user-manual/api/reference.html#operation/api.controllers.agent_controller.get_group_file_xml", + "documentation": "https://documentation.wazuh.com/4.5/user-manual/api/reference.html#operation/api.controllers.agent_controller.get_group_file_xml", "description": "Return the contents of the specified group file parsed to XML", "summary": "Get a file in group", "tags": [ @@ -4375,7 +4375,7 @@ }, { "name": "/lists", - "documentation": "https://documentation.wazuh.com/4.4/user-manual/api/reference.html#operation/api.controllers.cdb_list_controller.get_lists", + "documentation": "https://documentation.wazuh.com/4.5/user-manual/api/reference.html#operation/api.controllers.cdb_list_controller.get_lists", "description": "Return the contents of all CDB lists. Optionally, the result can be filtered by several criteria. See available parameters for more details", "summary": "Get CDB lists info", "tags": [ @@ -4469,7 +4469,7 @@ }, { "name": "/lists/files", - "documentation": "https://documentation.wazuh.com/4.4/user-manual/api/reference.html#operation/api.controllers.cdb_list_controller.get_lists_files", + "documentation": "https://documentation.wazuh.com/4.5/user-manual/api/reference.html#operation/api.controllers.cdb_list_controller.get_lists_files", "description": "Return the path from all CDB lists. Use this method to know all the CDB lists and their location in the filesystem relative to Wazuh installation folder", "summary": "Get CDB lists files", "tags": [ @@ -4552,7 +4552,7 @@ }, { "name": "/lists/files/:filename", - "documentation": "https://documentation.wazuh.com/4.4/user-manual/api/reference.html#operation/api.controllers.cdb_list_controller.get_file", + "documentation": "https://documentation.wazuh.com/4.5/user-manual/api/reference.html#operation/api.controllers.cdb_list_controller.get_file", "description": "Return the content of a CDB list file. Only the filename can be specified. It will be searched recursively if not found", "summary": "Get CDB list file content", "tags": [ @@ -4598,7 +4598,7 @@ }, { "name": "/manager/api/config", - "documentation": "https://documentation.wazuh.com/4.4/user-manual/api/reference.html#operation/api.controllers.manager_controller.get_api_config", + "documentation": "https://documentation.wazuh.com/4.5/user-manual/api/reference.html#operation/api.controllers.manager_controller.get_api_config", "description": "Return the local API configuration in JSON format", "summary": "Get API config", "tags": [ @@ -4625,7 +4625,7 @@ }, { "name": "/manager/configuration", - "documentation": "https://documentation.wazuh.com/4.4/user-manual/api/reference.html#operation/api.controllers.manager_controller.get_configuration", + "documentation": "https://documentation.wazuh.com/4.5/user-manual/api/reference.html#operation/api.controllers.manager_controller.get_configuration", "description": "Return wazuh configuration used. The 'section' and 'field' parameters will be ignored if 'raw' parameter is provided.", "summary": "Get configuration", "tags": [ @@ -4708,7 +4708,7 @@ }, { "name": "/manager/configuration/:component/:configuration", - "documentation": "https://documentation.wazuh.com/4.4/user-manual/api/reference.html#operation/api.controllers.manager_controller.get_manager_config_ondemand", + "documentation": "https://documentation.wazuh.com/4.5/user-manual/api/reference.html#operation/api.controllers.manager_controller.get_manager_config_ondemand", "description": "Return the requested active configuration in JSON format", "summary": "Get active configuration", "tags": [ @@ -4797,7 +4797,7 @@ }, { "name": "/manager/configuration/validation", - "documentation": "https://documentation.wazuh.com/4.4/user-manual/api/reference.html#operation/api.controllers.manager_controller.get_conf_validation", + "documentation": "https://documentation.wazuh.com/4.5/user-manual/api/reference.html#operation/api.controllers.manager_controller.get_conf_validation", "description": "Return whether the Wazuh configuration is correct", "summary": "Check config", "tags": [ @@ -4824,7 +4824,7 @@ }, { "name": "/manager/daemons/stats", - "documentation": "https://documentation.wazuh.com/4.4/user-manual/api/reference.html#operation/api.controllers.manager_controller.get_daemon_stats", + "documentation": "https://documentation.wazuh.com/4.5/user-manual/api/reference.html#operation/api.controllers.manager_controller.get_daemon_stats", "description": "Return Wazuh statistical information from specified daemons", "summary": "Get Wazuh daemon stats", "tags": [ @@ -4866,7 +4866,7 @@ }, { "name": "/manager/info", - "documentation": "https://documentation.wazuh.com/4.4/user-manual/api/reference.html#operation/api.controllers.manager_controller.get_info", + "documentation": "https://documentation.wazuh.com/4.5/user-manual/api/reference.html#operation/api.controllers.manager_controller.get_info", "description": "Return basic information such as version, compilation date, installation path", "summary": "Get information", "tags": [ @@ -4893,7 +4893,7 @@ }, { "name": "/manager/logs", - "documentation": "https://documentation.wazuh.com/4.4/user-manual/api/reference.html#operation/api.controllers.manager_controller.get_log", + "documentation": "https://documentation.wazuh.com/4.5/user-manual/api/reference.html#operation/api.controllers.manager_controller.get_log", "description": "Return the last 2000 wazuh log entries", "summary": "Get logs", "tags": [ @@ -4987,7 +4987,7 @@ }, { "name": "/manager/logs/summary", - "documentation": "https://documentation.wazuh.com/4.4/user-manual/api/reference.html#operation/api.controllers.manager_controller.get_log_summary", + "documentation": "https://documentation.wazuh.com/4.5/user-manual/api/reference.html#operation/api.controllers.manager_controller.get_log_summary", "description": "Return a summary of the last 2000 wazuh log entries", "summary": "Get logs summary", "tags": [ @@ -5014,7 +5014,7 @@ }, { "name": "/manager/stats", - "documentation": "https://documentation.wazuh.com/4.4/user-manual/api/reference.html#operation/api.controllers.manager_controller.get_stats", + "documentation": "https://documentation.wazuh.com/4.5/user-manual/api/reference.html#operation/api.controllers.manager_controller.get_stats", "description": "Return Wazuh statistical information for the current or specified date", "summary": "Get stats", "tags": [ @@ -5049,7 +5049,7 @@ }, { "name": "/manager/stats/analysisd", - "documentation": "https://documentation.wazuh.com/4.4/user-manual/api/reference.html#operation/api.controllers.manager_controller.get_stats_analysisd", + "documentation": "https://documentation.wazuh.com/4.5/user-manual/api/reference.html#operation/api.controllers.manager_controller.get_stats_analysisd", "description": "Return Wazuh analysisd statistical information", "summary": "Get stats analysisd", "tags": [ @@ -5076,7 +5076,7 @@ }, { "name": "/manager/stats/hourly", - "documentation": "https://documentation.wazuh.com/4.4/user-manual/api/reference.html#operation/api.controllers.manager_controller.get_stats_hourly", + "documentation": "https://documentation.wazuh.com/4.5/user-manual/api/reference.html#operation/api.controllers.manager_controller.get_stats_hourly", "description": "Return Wazuh statistical information per hour. Each number in the averages field represents the average of alerts per hour", "summary": "Get stats hour", "tags": [ @@ -5103,7 +5103,7 @@ }, { "name": "/manager/stats/remoted", - "documentation": "https://documentation.wazuh.com/4.4/user-manual/api/reference.html#operation/api.controllers.manager_controller.get_stats_remoted", + "documentation": "https://documentation.wazuh.com/4.5/user-manual/api/reference.html#operation/api.controllers.manager_controller.get_stats_remoted", "description": "Return Wazuh remoted statistical information", "summary": "Get stats remoted", "tags": [ @@ -5130,7 +5130,7 @@ }, { "name": "/manager/stats/weekly", - "documentation": "https://documentation.wazuh.com/4.4/user-manual/api/reference.html#operation/api.controllers.manager_controller.get_stats_weekly", + "documentation": "https://documentation.wazuh.com/4.5/user-manual/api/reference.html#operation/api.controllers.manager_controller.get_stats_weekly", "description": "Return Wazuh statistical information per week. Each number in the averages field represents the average of alerts per hour for that specific day", "summary": "Get stats week", "tags": [ @@ -5157,7 +5157,7 @@ }, { "name": "/manager/status", - "documentation": "https://documentation.wazuh.com/4.4/user-manual/api/reference.html#operation/api.controllers.manager_controller.get_status", + "documentation": "https://documentation.wazuh.com/4.5/user-manual/api/reference.html#operation/api.controllers.manager_controller.get_status", "description": "Return the status of all Wazuh daemons", "summary": "Get status", "tags": [ @@ -5184,7 +5184,7 @@ }, { "name": "/mitre/groups", - "documentation": "https://documentation.wazuh.com/4.4/user-manual/api/reference.html#operation/api.controllers.mitre_controller.get_groups", + "documentation": "https://documentation.wazuh.com/4.5/user-manual/api/reference.html#operation/api.controllers.mitre_controller.get_groups", "description": "Return the groups from MITRE database", "summary": "Get MITRE groups", "tags": [ @@ -5277,7 +5277,7 @@ }, { "name": "/mitre/metadata", - "documentation": "https://documentation.wazuh.com/4.4/user-manual/api/reference.html#operation/api.controllers.mitre_controller.get_metadata", + "documentation": "https://documentation.wazuh.com/4.5/user-manual/api/reference.html#operation/api.controllers.mitre_controller.get_metadata", "description": "Return the metadata from MITRE database", "summary": "Get MITRE metadata", "tags": [ @@ -5304,7 +5304,7 @@ }, { "name": "/mitre/mitigations", - "documentation": "https://documentation.wazuh.com/4.4/user-manual/api/reference.html#operation/api.controllers.mitre_controller.get_mitigations", + "documentation": "https://documentation.wazuh.com/4.5/user-manual/api/reference.html#operation/api.controllers.mitre_controller.get_mitigations", "description": "Return the mitigations from MITRE database", "summary": "Get MITRE mitigations", "tags": [ @@ -5397,7 +5397,7 @@ }, { "name": "/mitre/references", - "documentation": "https://documentation.wazuh.com/4.4/user-manual/api/reference.html#operation/api.controllers.mitre_controller.get_references", + "documentation": "https://documentation.wazuh.com/4.5/user-manual/api/reference.html#operation/api.controllers.mitre_controller.get_references", "description": "Return the references from MITRE database", "summary": "Get MITRE references", "tags": [ @@ -5490,7 +5490,7 @@ }, { "name": "/mitre/software", - "documentation": "https://documentation.wazuh.com/4.4/user-manual/api/reference.html#operation/api.controllers.mitre_controller.get_software", + "documentation": "https://documentation.wazuh.com/4.5/user-manual/api/reference.html#operation/api.controllers.mitre_controller.get_software", "description": "Return the software from MITRE database", "summary": "Get MITRE software", "tags": [ @@ -5583,7 +5583,7 @@ }, { "name": "/mitre/tactics", - "documentation": "https://documentation.wazuh.com/4.4/user-manual/api/reference.html#operation/api.controllers.mitre_controller.get_tactics", + "documentation": "https://documentation.wazuh.com/4.5/user-manual/api/reference.html#operation/api.controllers.mitre_controller.get_tactics", "description": "Return the tactics from MITRE database", "summary": "Get MITRE tactics", "tags": [ @@ -5676,7 +5676,7 @@ }, { "name": "/mitre/techniques", - "documentation": "https://documentation.wazuh.com/4.4/user-manual/api/reference.html#operation/api.controllers.mitre_controller.get_techniques", + "documentation": "https://documentation.wazuh.com/4.5/user-manual/api/reference.html#operation/api.controllers.mitre_controller.get_techniques", "description": "Return the techniques from MITRE database", "summary": "Get MITRE techniques", "tags": [ @@ -5769,7 +5769,7 @@ }, { "name": "/overview/agents", - "documentation": "https://documentation.wazuh.com/4.4/user-manual/api/reference.html#operation/api.controllers.overview_controller.get_overview_agents", + "documentation": "https://documentation.wazuh.com/4.5/user-manual/api/reference.html#operation/api.controllers.overview_controller.get_overview_agents", "description": "Return a dictionary with a full agents overview", "summary": "Get agents overview", "tags": [ @@ -5796,7 +5796,7 @@ }, { "name": "/rootcheck/:agent_id", - "documentation": "https://documentation.wazuh.com/4.4/user-manual/api/reference.html#operation/api.controllers.rootcheck_controller.get_rootcheck_agent", + "documentation": "https://documentation.wazuh.com/4.5/user-manual/api/reference.html#operation/api.controllers.rootcheck_controller.get_rootcheck_agent", "description": "Return the rootcheck database of an agent", "summary": "Get results", "tags": [ @@ -5923,7 +5923,7 @@ }, { "name": "/rootcheck/:agent_id/last_scan", - "documentation": "https://documentation.wazuh.com/4.4/user-manual/api/reference.html#operation/api.controllers.rootcheck_controller.get_last_scan_agent", + "documentation": "https://documentation.wazuh.com/4.5/user-manual/api/reference.html#operation/api.controllers.rootcheck_controller.get_last_scan_agent", "description": "Return the timestamp of the last rootcheck scan of an agent", "summary": "Get last scan datetime", "tags": [ @@ -5963,7 +5963,7 @@ }, { "name": "/rules", - "documentation": "https://documentation.wazuh.com/4.4/user-manual/api/reference.html#operation/api.controllers.rule_controller.get_rules", + "documentation": "https://documentation.wazuh.com/4.5/user-manual/api/reference.html#operation/api.controllers.rule_controller.get_rules", "description": "Return a list containing information about each rule such as file where it's defined, description, rule group, status, etc", "summary": "List rules", "tags": [ @@ -6161,7 +6161,7 @@ }, { "name": "/rules/files", - "documentation": "https://documentation.wazuh.com/4.4/user-manual/api/reference.html#operation/api.controllers.rule_controller.get_rules_files", + "documentation": "https://documentation.wazuh.com/4.5/user-manual/api/reference.html#operation/api.controllers.rule_controller.get_rules_files", "description": "Return a list containing all files used to define rules and their status", "summary": "Get files", "tags": [ @@ -6257,7 +6257,7 @@ }, { "name": "/rules/files/:filename", - "documentation": "https://documentation.wazuh.com/4.4/user-manual/api/reference.html#operation/api.controllers.rule_controller.get_file", + "documentation": "https://documentation.wazuh.com/4.5/user-manual/api/reference.html#operation/api.controllers.rule_controller.get_file", "description": "Get the content of a specified rule in the ruleset", "summary": "Get rules file content", "tags": [ @@ -6303,7 +6303,7 @@ }, { "name": "/rules/groups", - "documentation": "https://documentation.wazuh.com/4.4/user-manual/api/reference.html#operation/api.controllers.rule_controller.get_rules_groups", + "documentation": "https://documentation.wazuh.com/4.5/user-manual/api/reference.html#operation/api.controllers.rule_controller.get_rules_groups", "description": "Return a list containing all rule groups names", "summary": "Get groups", "tags": [ @@ -6367,7 +6367,7 @@ }, { "name": "/rules/requirement/:requirement", - "documentation": "https://documentation.wazuh.com/4.4/user-manual/api/reference.html#operation/api.controllers.rule_controller.get_rules_requirement", + "documentation": "https://documentation.wazuh.com/4.5/user-manual/api/reference.html#operation/api.controllers.rule_controller.get_rules_requirement", "description": "Return all specified requirement names defined in the Wazuh ruleset", "summary": "Get requirements", "tags": [ @@ -6449,7 +6449,7 @@ }, { "name": "/sca/:agent_id", - "documentation": "https://documentation.wazuh.com/4.4/user-manual/api/reference.html#operation/api.controllers.sca_controller.get_sca_agent", + "documentation": "https://documentation.wazuh.com/4.5/user-manual/api/reference.html#operation/api.controllers.sca_controller.get_sca_agent", "description": "Return the security SCA database of an agent", "summary": "Get results", "tags": [ @@ -6574,7 +6574,7 @@ }, { "name": "/sca/:agent_id/checks/:policy_id", - "documentation": "https://documentation.wazuh.com/4.4/user-manual/api/reference.html#operation/api.controllers.sca_controller.get_sca_checks", + "documentation": "https://documentation.wazuh.com/4.5/user-manual/api/reference.html#operation/api.controllers.sca_controller.get_sca_checks", "description": "Return the policy monitoring alerts for a given policy", "summary": "Get policy checks", "tags": [ @@ -6787,7 +6787,7 @@ }, { "name": "/security/actions", - "documentation": "https://documentation.wazuh.com/4.4/user-manual/api/reference.html#operation/api.controllers.security_controller.get_rbac_actions", + "documentation": "https://documentation.wazuh.com/4.5/user-manual/api/reference.html#operation/api.controllers.security_controller.get_rbac_actions", "description": "Get all RBAC actions, including the potential related resources and endpoints.", "summary": "List RBAC actions", "tags": [ @@ -6813,7 +6813,7 @@ }, { "name": "/security/config", - "documentation": "https://documentation.wazuh.com/4.4/user-manual/api/reference.html#operation/api.controllers.security_controller.get_security_config", + "documentation": "https://documentation.wazuh.com/4.5/user-manual/api/reference.html#operation/api.controllers.security_controller.get_security_config", "description": "Return the security configuration in JSON format", "summary": "Get security config", "tags": [ @@ -6840,7 +6840,7 @@ }, { "name": "/security/policies", - "documentation": "https://documentation.wazuh.com/4.4/user-manual/api/reference.html#operation/api.controllers.security_controller.get_policies", + "documentation": "https://documentation.wazuh.com/4.5/user-manual/api/reference.html#operation/api.controllers.security_controller.get_policies", "description": "Get all policies in the system, including the administrator policy", "summary": "List policies", "tags": [ @@ -6927,7 +6927,7 @@ }, { "name": "/security/resources", - "documentation": "https://documentation.wazuh.com/4.4/user-manual/api/reference.html#operation/api.controllers.security_controller.get_rbac_resources", + "documentation": "https://documentation.wazuh.com/4.5/user-manual/api/reference.html#operation/api.controllers.security_controller.get_rbac_resources", "description": "This method should be called to get all current defined RBAC resources.", "summary": "List RBAC resources", "tags": [ @@ -6966,7 +6966,7 @@ }, { "name": "/security/roles", - "documentation": "https://documentation.wazuh.com/4.4/user-manual/api/reference.html#operation/api.controllers.security_controller.get_roles", + "documentation": "https://documentation.wazuh.com/4.5/user-manual/api/reference.html#operation/api.controllers.security_controller.get_roles", "description": "For a specific list, indicate the ids separated by commas. Example: ?role_ids=1,2,3", "summary": "List roles", "tags": [ @@ -7053,7 +7053,7 @@ }, { "name": "/security/rules", - "documentation": "https://documentation.wazuh.com/4.4/user-manual/api/reference.html#operation/api.controllers.security_controller.get_rules", + "documentation": "https://documentation.wazuh.com/4.5/user-manual/api/reference.html#operation/api.controllers.security_controller.get_rules", "description": "Get a list of security rules from the system or all of them. These rules must be mapped with roles to obtain certain access privileges. For a specific list, indicate the ids separated by commas. Example: ?rule_ids=1,2,3", "summary": "List security rules", "tags": [ @@ -7140,7 +7140,7 @@ }, { "name": "/security/user/authenticate", - "documentation": "https://documentation.wazuh.com/4.4/user-manual/api/reference.html#operation/api.controllers.security_controller.deprecated_login_user", + "documentation": "https://documentation.wazuh.com/4.5/user-manual/api/reference.html#operation/api.controllers.security_controller.deprecated_login_user", "description": "This method should be called to get an API token. This token will expire after auth_token_exp_timeout seconds (default: 900). This value can be changed using PUT /security/config", "summary": "Login", "tags": [ @@ -7159,7 +7159,7 @@ }, { "name": "/security/users", - "documentation": "https://documentation.wazuh.com/4.4/user-manual/api/reference.html#operation/api.controllers.security_controller.get_users", + "documentation": "https://documentation.wazuh.com/4.5/user-manual/api/reference.html#operation/api.controllers.security_controller.get_users", "description": "Get the information of a specified user", "summary": "List users", "tags": [ @@ -7246,7 +7246,7 @@ }, { "name": "/security/users/me", - "documentation": "https://documentation.wazuh.com/4.4/user-manual/api/reference.html#operation/api.controllers.security_controller.get_user_me", + "documentation": "https://documentation.wazuh.com/4.5/user-manual/api/reference.html#operation/api.controllers.security_controller.get_user_me", "description": "Get the information of the current user", "summary": "Get current user info", "tags": [ @@ -7273,7 +7273,7 @@ }, { "name": "/security/users/me/policies", - "documentation": "https://documentation.wazuh.com/4.4/user-manual/api/reference.html#operation/api.controllers.security_controller.get_user_me_policies", + "documentation": "https://documentation.wazuh.com/4.5/user-manual/api/reference.html#operation/api.controllers.security_controller.get_user_me_policies", "description": "Get the processed policies information for the current user", "summary": "Get current user processed policies", "tags": [ @@ -7292,7 +7292,7 @@ }, { "name": "/syscheck/:agent_id", - "documentation": "https://documentation.wazuh.com/4.4/user-manual/api/reference.html#operation/api.controllers.syscheck_controller.get_syscheck_agent", + "documentation": "https://documentation.wazuh.com/4.5/user-manual/api/reference.html#operation/api.controllers.syscheck_controller.get_syscheck_agent", "description": "Return FIM findings in the specified agent", "summary": "Get results", "tags": [ @@ -7482,7 +7482,7 @@ }, { "name": "/syscheck/:agent_id/last_scan", - "documentation": "https://documentation.wazuh.com/4.4/user-manual/api/reference.html#operation/api.controllers.syscheck_controller.get_last_scan_agent", + "documentation": "https://documentation.wazuh.com/4.5/user-manual/api/reference.html#operation/api.controllers.syscheck_controller.get_last_scan_agent", "description": "Return when the last syscheck scan started and ended. If the scan is still in progress the end date will be unknown", "summary": "Get last scan datetime", "tags": [ @@ -7522,7 +7522,7 @@ }, { "name": "/syscollector/:agent_id/hardware", - "documentation": "https://documentation.wazuh.com/4.4/user-manual/api/reference.html#operation/api.controllers.syscollector_controller.get_hardware_info", + "documentation": "https://documentation.wazuh.com/4.5/user-manual/api/reference.html#operation/api.controllers.syscollector_controller.get_hardware_info", "description": "Return the agent's hardware info. This information include cpu, ram, scan info among others", "summary": "Get agent hardware", "tags": [ @@ -7573,7 +7573,7 @@ }, { "name": "/syscollector/:agent_id/hotfixes", - "documentation": "https://documentation.wazuh.com/4.4/user-manual/api/reference.html#operation/api.controllers.syscollector_controller.get_hotfix_info", + "documentation": "https://documentation.wazuh.com/4.5/user-manual/api/reference.html#operation/api.controllers.syscollector_controller.get_hotfix_info", "description": "Return all hotfixes installed by Microsoft(R) in Windows(R) systems (KB... fixes)", "summary": "Get agent hotfixes", "tags": [ @@ -7675,7 +7675,7 @@ }, { "name": "/syscollector/:agent_id/netaddr", - "documentation": "https://documentation.wazuh.com/4.4/user-manual/api/reference.html#operation/api.controllers.syscollector_controller.get_network_address_info", + "documentation": "https://documentation.wazuh.com/4.5/user-manual/api/reference.html#operation/api.controllers.syscollector_controller.get_network_address_info", "description": "Return the agent's network address info. This information include used IP protocol, interface, IP address among others", "summary": "Get agent netaddr", "tags": [ @@ -7810,7 +7810,7 @@ }, { "name": "/syscollector/:agent_id/netiface", - "documentation": "https://documentation.wazuh.com/4.4/user-manual/api/reference.html#operation/api.controllers.syscollector_controller.get_network_interface_info", + "documentation": "https://documentation.wazuh.com/4.5/user-manual/api/reference.html#operation/api.controllers.syscollector_controller.get_network_interface_info", "description": "Return the agent's network interface info. This information include rx, scan, tx info and some network information among others", "summary": "Get agent netiface", "tags": [ @@ -8017,7 +8017,7 @@ }, { "name": "/syscollector/:agent_id/netproto", - "documentation": "https://documentation.wazuh.com/4.4/user-manual/api/reference.html#operation/api.controllers.syscollector_controller.get_network_protocol_info", + "documentation": "https://documentation.wazuh.com/4.5/user-manual/api/reference.html#operation/api.controllers.syscollector_controller.get_network_protocol_info", "description": "Return the agent's routing configuration for each network interface", "summary": "Get agent netproto", "tags": [ @@ -8150,7 +8150,7 @@ }, { "name": "/syscollector/:agent_id/os", - "documentation": "https://documentation.wazuh.com/4.4/user-manual/api/reference.html#operation/api.controllers.syscollector_controller.get_os_info", + "documentation": "https://documentation.wazuh.com/4.5/user-manual/api/reference.html#operation/api.controllers.syscollector_controller.get_os_info", "description": "Return the agent's OS info. This information include os information, architecture information among others of all agents", "summary": "Get agent OS", "tags": [ @@ -8201,7 +8201,7 @@ }, { "name": "/syscollector/:agent_id/packages", - "documentation": "https://documentation.wazuh.com/4.4/user-manual/api/reference.html#operation/api.controllers.syscollector_controller.get_packages_info", + "documentation": "https://documentation.wazuh.com/4.5/user-manual/api/reference.html#operation/api.controllers.syscollector_controller.get_packages_info", "description": "Return the agent's packages info. This information include name, section, size, priority information of all packages among others", "summary": "Get agent packages", "tags": [ @@ -8334,7 +8334,7 @@ }, { "name": "/syscollector/:agent_id/ports", - "documentation": "https://documentation.wazuh.com/4.4/user-manual/api/reference.html#operation/api.controllers.syscollector_controller.get_ports_info", + "documentation": "https://documentation.wazuh.com/4.5/user-manual/api/reference.html#operation/api.controllers.syscollector_controller.get_ports_info", "description": "Return the agent's ports info. This information include local IP, Remote IP, protocol information among others", "summary": "Get agent ports", "tags": [ @@ -8493,7 +8493,7 @@ }, { "name": "/syscollector/:agent_id/processes", - "documentation": "https://documentation.wazuh.com/4.4/user-manual/api/reference.html#operation/api.controllers.syscollector_controller.get_processes_info", + "documentation": "https://documentation.wazuh.com/4.5/user-manual/api/reference.html#operation/api.controllers.syscollector_controller.get_processes_info", "description": "Return the agent's processes info", "summary": "Get agent processes", "tags": [ @@ -8700,7 +8700,7 @@ }, { "name": "/tasks/status", - "documentation": "https://documentation.wazuh.com/4.4/user-manual/api/reference.html#operation/api.controllers.task_controller.get_tasks_status", + "documentation": "https://documentation.wazuh.com/4.5/user-manual/api/reference.html#operation/api.controllers.task_controller.get_tasks_status", "description": "Returns all available information about the specified tasks", "summary": "List tasks", "tags": [ @@ -8839,7 +8839,7 @@ }, { "name": "/vulnerability/:agent_id", - "documentation": "https://documentation.wazuh.com/4.4/user-manual/api/reference.html#operation/api.controllers.vulnerability_controller.get_vulnerability_agent", + "documentation": "https://documentation.wazuh.com/4.5/user-manual/api/reference.html#operation/api.controllers.vulnerability_controller.get_vulnerability_agent", "description": "Return the vulnerabilities of an agent", "summary": "Get vulnerabilities", "tags": [ @@ -9005,7 +9005,7 @@ }, { "name": "/vulnerability/:agent_id/last_scan", - "documentation": "https://documentation.wazuh.com/4.4/user-manual/api/reference.html#operation/api.controllers.vulnerability_controller.get_last_scan_agent", + "documentation": "https://documentation.wazuh.com/4.5/user-manual/api/reference.html#operation/api.controllers.vulnerability_controller.get_last_scan_agent", "description": "Return when the last full and partial vulnerability scan of a specified agent ended.", "summary": "Get last scan datetime", "tags": [ @@ -9045,7 +9045,7 @@ }, { "name": "/vulnerability/:agent_id/summary/:field", - "documentation": "https://documentation.wazuh.com/4.4/user-manual/api/reference.html#operation/api.controllers.vulnerability_controller.get_vulnerabilities_field_summary", + "documentation": "https://documentation.wazuh.com/4.5/user-manual/api/reference.html#operation/api.controllers.vulnerability_controller.get_vulnerabilities_field_summary", "description": "Return a summary of the vulnerabilities' field of an agent", "summary": "Get agent vulnerabilities' field summary", "tags": [ @@ -9126,7 +9126,7 @@ "endpoints": [ { "name": "/active-response", - "documentation": "https://documentation.wazuh.com/4.4/user-manual/api/reference.html#operation/api.controllers.active_response_controller.run_command", + "documentation": "https://documentation.wazuh.com/4.5/user-manual/api/reference.html#operation/api.controllers.active_response_controller.run_command", "description": "Run an Active Response command on all agents or a list of them", "summary": "Run command", "tags": [ @@ -9202,7 +9202,7 @@ }, { "name": "/agents/:agent_id/group/:group_id", - "documentation": "https://documentation.wazuh.com/4.4/user-manual/api/reference.html#operation/api.controllers.agent_controller.put_agent_single_group", + "documentation": "https://documentation.wazuh.com/4.5/user-manual/api/reference.html#operation/api.controllers.agent_controller.put_agent_single_group", "description": "Assign an agent to a specified group", "summary": "Assign agent to group", "tags": [ @@ -9259,7 +9259,7 @@ }, { "name": "/agents/:agent_id/restart", - "documentation": "https://documentation.wazuh.com/4.4/user-manual/api/reference.html#operation/api.controllers.agent_controller.restart_agent", + "documentation": "https://documentation.wazuh.com/4.5/user-manual/api/reference.html#operation/api.controllers.agent_controller.restart_agent", "description": "Restart the specified agent", "summary": "Restart agent", "tags": [ @@ -9299,7 +9299,7 @@ }, { "name": "/agents/group", - "documentation": "https://documentation.wazuh.com/4.4/user-manual/api/reference.html#operation/api.controllers.agent_controller.put_multiple_agent_single_group", + "documentation": "https://documentation.wazuh.com/4.5/user-manual/api/reference.html#operation/api.controllers.agent_controller.put_multiple_agent_single_group", "description": "Assign all agents or a list of them to the specified group", "summary": "Assign agents to group", "tags": [ @@ -9356,7 +9356,7 @@ }, { "name": "/agents/group/:group_id/restart", - "documentation": "https://documentation.wazuh.com/4.4/user-manual/api/reference.html#operation/api.controllers.agent_controller.restart_agents_by_group", + "documentation": "https://documentation.wazuh.com/4.5/user-manual/api/reference.html#operation/api.controllers.agent_controller.restart_agents_by_group", "description": "Restart all agents which belong to a given group", "summary": "Restart agents in group", "tags": [ @@ -9395,7 +9395,7 @@ }, { "name": "/agents/node/:node_id/restart", - "documentation": "https://documentation.wazuh.com/4.4/user-manual/api/reference.html#operation/api.controllers.agent_controller.restart_agents_by_node", + "documentation": "https://documentation.wazuh.com/4.5/user-manual/api/reference.html#operation/api.controllers.agent_controller.restart_agents_by_node", "description": "Restart all agents which belong to a specific given node", "summary": "Restart agents in node", "tags": [ @@ -9433,7 +9433,7 @@ }, { "name": "/agents/reconnect", - "documentation": "https://documentation.wazuh.com/4.4/user-manual/api/reference.html#operation/api.controllers.agent_controller.reconnect_agents", + "documentation": "https://documentation.wazuh.com/4.5/user-manual/api/reference.html#operation/api.controllers.agent_controller.reconnect_agents", "description": "Force reconnect all agents or a list of them", "summary": "Force reconnect agents", "tags": [ @@ -9473,7 +9473,7 @@ }, { "name": "/agents/restart", - "documentation": "https://documentation.wazuh.com/4.4/user-manual/api/reference.html#operation/api.controllers.agent_controller.restart_agents", + "documentation": "https://documentation.wazuh.com/4.5/user-manual/api/reference.html#operation/api.controllers.agent_controller.restart_agents", "description": "Restart all agents or a list of them", "summary": "Restart agents", "tags": [ @@ -9513,7 +9513,7 @@ }, { "name": "/agents/upgrade", - "documentation": "https://documentation.wazuh.com/4.4/user-manual/api/reference.html#operation/api.controllers.agent_controller.put_upgrade_agents", + "documentation": "https://documentation.wazuh.com/4.5/user-manual/api/reference.html#operation/api.controllers.agent_controller.put_upgrade_agents", "description": "Upgrade agents using a WPK file from online repository. When upgrading more than 3000 agents at the same time, it's highly recommended to use the parameter `wait_for_complete` set to `true` to avoid a possible API timeout", "summary": "Upgrade agents", "tags": [ @@ -9674,7 +9674,7 @@ }, { "name": "/agents/upgrade_custom", - "documentation": "https://documentation.wazuh.com/4.4/user-manual/api/reference.html#operation/api.controllers.agent_controller.put_upgrade_custom_agents", + "documentation": "https://documentation.wazuh.com/4.5/user-manual/api/reference.html#operation/api.controllers.agent_controller.put_upgrade_custom_agents", "description": "Upgrade the agents using a local WPK file. When upgrading more than 3000 agents at the same time, it's highly recommended to use the parameter `wait_for_complete` set to `true` to avoid a possible API timeout", "summary": "Upgrade agents custom", "tags": [ @@ -9820,7 +9820,7 @@ }, { "name": "/cluster/:node_id/configuration", - "documentation": "https://documentation.wazuh.com/4.4/user-manual/api/reference.html#operation/api.controllers.cluster_controller.update_configuration", + "documentation": "https://documentation.wazuh.com/4.5/user-manual/api/reference.html#operation/api.controllers.cluster_controller.update_configuration", "description": "Replace wazuh configuration for the given node with the data contained in the API request", "summary": "Update node configuration", "tags": [ @@ -9858,7 +9858,7 @@ }, { "name": "/cluster/restart", - "documentation": "https://documentation.wazuh.com/4.4/user-manual/api/reference.html#operation/api.controllers.cluster_controller.put_restart", + "documentation": "https://documentation.wazuh.com/4.5/user-manual/api/reference.html#operation/api.controllers.cluster_controller.put_restart", "description": "Restart all nodes in the cluster or a list of them", "summary": "Restart nodes", "tags": [ @@ -9895,7 +9895,7 @@ }, { "name": "/decoders/files/:filename", - "documentation": "https://documentation.wazuh.com/4.4/user-manual/api/reference.html#operation/api.controllers.decoder_controller.put_file", + "documentation": "https://documentation.wazuh.com/4.5/user-manual/api/reference.html#operation/api.controllers.decoder_controller.put_file", "description": "Upload or replace a user decoder file content", "summary": "Update decoders file", "tags": [ @@ -9941,7 +9941,7 @@ }, { "name": "/groups/:group_id/configuration", - "documentation": "https://documentation.wazuh.com/4.4/user-manual/api/reference.html#operation/api.controllers.agent_controller.put_group_config", + "documentation": "https://documentation.wazuh.com/4.5/user-manual/api/reference.html#operation/api.controllers.agent_controller.put_group_config", "description": "Update an specified group's configuration. This API call expects a full valid XML file with the shared configuration tags/syntax", "summary": "Update group configuration", "tags": [ @@ -9980,7 +9980,7 @@ }, { "name": "/lists/files/:filename", - "documentation": "https://documentation.wazuh.com/4.4/user-manual/api/reference.html#operation/api.controllers.cdb_list_controller.put_file", + "documentation": "https://documentation.wazuh.com/4.5/user-manual/api/reference.html#operation/api.controllers.cdb_list_controller.put_file", "description": "Replace or upload a CDB list file with the data contained in the API request", "summary": "Update CDB list file", "tags": [ @@ -10026,7 +10026,7 @@ }, { "name": "/logtest", - "documentation": "https://documentation.wazuh.com/4.4/user-manual/api/reference.html#operation/api.controllers.logtest_controller.run_logtest_tool", + "documentation": "https://documentation.wazuh.com/4.5/user-manual/api/reference.html#operation/api.controllers.logtest_controller.run_logtest_tool", "description": "Run logtest tool to check if a specified log raises any alert among other information", "summary": "Run logtest", "tags": [ @@ -10081,7 +10081,7 @@ }, { "name": "/manager/configuration", - "documentation": "https://documentation.wazuh.com/4.4/user-manual/api/reference.html#operation/api.controllers.manager_controller.update_configuration", + "documentation": "https://documentation.wazuh.com/4.5/user-manual/api/reference.html#operation/api.controllers.manager_controller.update_configuration", "description": "Replace Wazuh configuration with the data contained in the API request", "summary": "Update Wazuh configuration", "tags": [ @@ -10108,7 +10108,7 @@ }, { "name": "/manager/restart", - "documentation": "https://documentation.wazuh.com/4.4/user-manual/api/reference.html#operation/api.controllers.manager_controller.put_restart", + "documentation": "https://documentation.wazuh.com/4.5/user-manual/api/reference.html#operation/api.controllers.manager_controller.put_restart", "description": "Restart the wazuh manager", "summary": "Restart manager", "tags": [ @@ -10135,7 +10135,7 @@ }, { "name": "/rootcheck", - "documentation": "https://documentation.wazuh.com/4.4/user-manual/api/reference.html#operation/api.controllers.rootcheck_controller.put_rootcheck", + "documentation": "https://documentation.wazuh.com/4.5/user-manual/api/reference.html#operation/api.controllers.rootcheck_controller.put_rootcheck", "description": "Run rootcheck scan in all agents or a list of them", "summary": "Run scan", "tags": [ @@ -10175,7 +10175,7 @@ }, { "name": "/rules/files/:filename", - "documentation": "https://documentation.wazuh.com/4.4/user-manual/api/reference.html#operation/api.controllers.rule_controller.put_file", + "documentation": "https://documentation.wazuh.com/4.5/user-manual/api/reference.html#operation/api.controllers.rule_controller.put_file", "description": "Upload or replace a user ruleset file content", "summary": "Update rules file", "tags": [ @@ -10221,7 +10221,7 @@ }, { "name": "/security/config", - "documentation": "https://documentation.wazuh.com/4.4/user-manual/api/reference.html#operation/api.controllers.security_controller.put_security_config", + "documentation": "https://documentation.wazuh.com/4.5/user-manual/api/reference.html#operation/api.controllers.security_controller.put_security_config", "description": "Update the security configuration with the data contained in the API request", "summary": "Update security config", "tags": [ @@ -10272,7 +10272,7 @@ }, { "name": "/security/policies/:policy_id", - "documentation": "https://documentation.wazuh.com/4.4/user-manual/api/reference.html#operation/api.controllers.security_controller.update_policy", + "documentation": "https://documentation.wazuh.com/4.5/user-manual/api/reference.html#operation/api.controllers.security_controller.update_policy", "description": "Modify a policy, at least one property must be indicated", "summary": "Update policy", "tags": [ @@ -10353,7 +10353,7 @@ }, { "name": "/security/roles/:role_id", - "documentation": "https://documentation.wazuh.com/4.4/user-manual/api/reference.html#operation/api.controllers.security_controller.update_role", + "documentation": "https://documentation.wazuh.com/4.5/user-manual/api/reference.html#operation/api.controllers.security_controller.update_role", "description": "Modify a role, cannot modify associated policies in this endpoint, at least one property must be indicated", "summary": "Update role", "tags": [ @@ -10405,7 +10405,7 @@ }, { "name": "/security/rules/:rule_id", - "documentation": "https://documentation.wazuh.com/4.4/user-manual/api/reference.html#operation/api.controllers.security_controller.update_rule", + "documentation": "https://documentation.wazuh.com/4.5/user-manual/api/reference.html#operation/api.controllers.security_controller.update_rule", "description": "Modify a security rule by specifying its ID", "summary": "Update security rule", "tags": [ @@ -10461,7 +10461,7 @@ }, { "name": "/security/user/revoke", - "documentation": "https://documentation.wazuh.com/4.4/user-manual/api/reference.html#operation/api.controllers.security_controller.revoke_all_tokens", + "documentation": "https://documentation.wazuh.com/4.5/user-manual/api/reference.html#operation/api.controllers.security_controller.revoke_all_tokens", "description": "This method should be called to revoke all active JWT tokens", "summary": "Revoke JWT tokens", "tags": [ @@ -10470,7 +10470,7 @@ }, { "name": "/security/users/:user_id", - "documentation": "https://documentation.wazuh.com/4.4/user-manual/api/reference.html#operation/api.controllers.security_controller.update_user", + "documentation": "https://documentation.wazuh.com/4.5/user-manual/api/reference.html#operation/api.controllers.security_controller.update_user", "description": "Modify a user's password by specifying their ID", "summary": "Update users", "tags": [ @@ -10508,15 +10508,19 @@ ], "body": [ { - "name": "password", - "type": "string", - "format": "password" + "type": "object", + "properties": { + "password": { + "type": "string", + "format": "password" + } + } } ] }, { "name": "/security/users/:user_id/run_as", - "documentation": "https://documentation.wazuh.com/4.4/user-manual/api/reference.html#operation/api.controllers.security_controller.edit_run_as", + "documentation": "https://documentation.wazuh.com/4.5/user-manual/api/reference.html#operation/api.controllers.security_controller.edit_run_as", "description": "Modify a user's allow_run_as flag by specifying their ID", "summary": "Enable/Disable run_as", "tags": [ @@ -10563,7 +10567,7 @@ }, { "name": "/syscheck", - "documentation": "https://documentation.wazuh.com/4.4/user-manual/api/reference.html#operation/api.controllers.syscheck_controller.put_syscheck", + "documentation": "https://documentation.wazuh.com/4.5/user-manual/api/reference.html#operation/api.controllers.syscheck_controller.put_syscheck", "description": "Run FIM scan in all agents", "summary": "Run scan", "tags": [ @@ -10603,7 +10607,7 @@ }, { "name": "/vulnerability", - "documentation": "https://documentation.wazuh.com/4.4/user-manual/api/reference.html#operation/api.controllers.vulnerability_controller.run_vulnerability_scan", + "documentation": "https://documentation.wazuh.com/4.5/user-manual/api/reference.html#operation/api.controllers.vulnerability_controller.run_vulnerability_scan", "description": "Run a vulnerability detector scan in all nodes", "summary": "Run vulnerability detector scan", "tags": [ @@ -10635,7 +10639,7 @@ "endpoints": [ { "name": "/agents", - "documentation": "https://documentation.wazuh.com/4.4/user-manual/api/reference.html#operation/api.controllers.agent_controller.add_agent", + "documentation": "https://documentation.wazuh.com/4.5/user-manual/api/reference.html#operation/api.controllers.agent_controller.add_agent", "description": "Add a new agent", "summary": "Add agent", "tags": [ @@ -10661,22 +10665,28 @@ ], "body": [ { - "name": "ip", - "description": "If this is not included, the API will get the IP automatically. Allowed values: IP, IP/NET, ANY", - "type": "string", - "format": "alphanumeric" - }, - { - "name": "name", - "description": "Agent name", - "type": "string", - "format": "names" + "type": "object", + "properties": { + "name": { + "description": "Agent name", + "type": "string", + "format": "names" + }, + "ip": { + "description": "If this is not included, the API will get the IP automatically. Allowed values: IP, IP/NET, ANY", + "type": "string", + "format": "alphanumeric" + } + }, + "required": [ + "name" + ] } ] }, { "name": "/agents/insert", - "documentation": "https://documentation.wazuh.com/4.4/user-manual/api/reference.html#operation/api.controllers.agent_controller.insert_agent", + "documentation": "https://documentation.wazuh.com/4.5/user-manual/api/reference.html#operation/api.controllers.agent_controller.insert_agent", "description": "Add an agent specifying its name, ID and IP. If an agent with the same name, the same ID or the same IP already exists, replace it using the `force` parameter", "summary": "Add agent full", "tags": [ @@ -10702,71 +10712,74 @@ ], "body": [ { - "name": "force", "type": "object", - "description": "Remove the old agent with the same name, ID or IP if the configuration is matched", "properties": { - "enabled": { - "type": "boolean", - "default": true, - "description": "Enable force option" + "id": { + "type": "string", + "minLength": 3, + "description": "Agent ID", + "format": "numbers" }, - "disconnected_time": { + "key": { + "type": "string", + "maxLength": 64, + "minLength": 64, + "format": "wazuh_key", + "description": "Key to use when communicating with the manager. The agent must have the same key on its `client.keys` file" + }, + "name": { + "description": "Agent name", + "type": "string", + "format": "names" + }, + "ip": { + "description": "If this is not included, the API will get the IP automatically. Allowed values: IP, IP/NET, ANY", + "type": "string", + "format": "alphanumeric" + }, + "force": { "type": "object", + "description": "Remove the old agent with the same name, ID or IP if the configuration is matched", "properties": { "enabled": { "type": "boolean", "default": true, - "description": "Enable force disconnected_time option" + "description": "Enable force option" + }, + "disconnected_time": { + "type": "object", + "properties": { + "enabled": { + "type": "boolean", + "default": true, + "description": "Enable force disconnected_time option" + }, + "value": { + "type": "string", + "default": "1h", + "description": "Time the agent must has been disconnected to force the insertion. Time in seconds, ‘[n_days]d’, ‘[n_hours]h’, ‘[n_minutes]m’ or ‘[n_seconds]s’. For example, `7d`, `10s` and `10` are valid values. If no time unit is specified, seconds are used", + "format": "timeframe" + } + } }, - "value": { + "after_registration_time": { "type": "string", "default": "1h", - "description": "Time the agent must has been disconnected to force the insertion. Time in seconds, ‘[n_days]d’, ‘[n_hours]h’, ‘[n_minutes]m’ or ‘[n_seconds]s’. For example, `7d`, `10s` and `10` are valid values. If no time unit is specified, seconds are used", + "description": "Time the agent must has been registered to force the insertion. Time in seconds, ‘[n_days]d’, ‘[n_hours]h’, ‘[n_minutes]m’ or ‘[n_seconds]s’. For example, `7d`, `10s` and `10` are valid values. If no time unit is specified, seconds are used", "format": "timeframe" } } - }, - "after_registration_time": { - "type": "string", - "default": "1h", - "description": "Time the agent must has been registered to force the insertion. Time in seconds, ‘[n_days]d’, ‘[n_hours]h’, ‘[n_minutes]m’ or ‘[n_seconds]s’. For example, `7d`, `10s` and `10` are valid values. If no time unit is specified, seconds are used", - "format": "timeframe" } - } - }, - { - "name": "id", - "type": "string", - "minLength": 3, - "description": "Agent ID", - "format": "numbers" - }, - { - "name": "ip", - "description": "If this is not included, the API will get the IP automatically. Allowed values: IP, IP/NET, ANY", - "type": "string", - "format": "alphanumeric" - }, - { - "name": "key", - "type": "string", - "maxLength": 64, - "minLength": 64, - "format": "wazuh_key", - "description": "Key to use when communicating with the manager. The agent must have the same key on its `client.keys` file" - }, - { - "name": "name", - "description": "Agent name", - "type": "string", - "format": "names" + }, + "required": [ + "name" + ] } ] }, { "name": "/agents/insert/quick", - "documentation": "https://documentation.wazuh.com/4.4/user-manual/api/reference.html#operation/api.controllers.agent_controller.post_new_agent", + "documentation": "https://documentation.wazuh.com/4.5/user-manual/api/reference.html#operation/api.controllers.agent_controller.post_new_agent", "description": "Add a new agent with name `agent_name`. This agent will use `any` as IP", "summary": "Add agent quick", "tags": [ @@ -10803,7 +10816,7 @@ }, { "name": "/groups", - "documentation": "https://documentation.wazuh.com/4.4/user-manual/api/reference.html#operation/api.controllers.agent_controller.post_group", + "documentation": "https://documentation.wazuh.com/4.5/user-manual/api/reference.html#operation/api.controllers.agent_controller.post_group", "description": "Create a new group", "summary": "Create a group", "tags": [ @@ -10829,17 +10842,24 @@ ], "body": [ { - "name": "group_id", - "description": "Group name. It can contain any of the characters between a-z, A-Z, 0-9, '_', '-' and '.'. Names '.' and '..' are restricted.", - "type": "string", - "format": "group_names", - "maxLength": 128 + "type": "object", + "properties": { + "group_id": { + "description": "Group name. It can contain any of the characters between a-z, A-Z, 0-9, '_', '-' and '.'. Names '.' and '..' are restricted.", + "type": "string", + "format": "group_names", + "maxLength": 128 + } + }, + "required": [ + "group_id" + ] } ] }, { "name": "/security/policies", - "documentation": "https://documentation.wazuh.com/4.4/user-manual/api/reference.html#operation/api.controllers.security_controller.add_policy", + "documentation": "https://documentation.wazuh.com/4.5/user-manual/api/reference.html#operation/api.controllers.security_controller.add_policy", "description": "Add a new policy, all fields need to be specified", "summary": "Add policy", "tags": [ @@ -10912,7 +10932,7 @@ }, { "name": "/security/roles", - "documentation": "https://documentation.wazuh.com/4.4/user-manual/api/reference.html#operation/api.controllers.security_controller.add_role", + "documentation": "https://documentation.wazuh.com/4.5/user-manual/api/reference.html#operation/api.controllers.security_controller.add_role", "description": "Add a new role, all fields need to be specified", "summary": "Add role", "tags": [ @@ -10955,7 +10975,7 @@ }, { "name": "/security/roles/:role_id/policies", - "documentation": "https://documentation.wazuh.com/4.4/user-manual/api/reference.html#operation/api.controllers.security_controller.set_role_policy", + "documentation": "https://documentation.wazuh.com/4.5/user-manual/api/reference.html#operation/api.controllers.security_controller.set_role_policy", "description": "Create a specified relation role-policy, one role may have multiples policies", "summary": "Add policies to role", "tags": [ @@ -11016,7 +11036,7 @@ }, { "name": "/security/roles/:role_id/rules", - "documentation": "https://documentation.wazuh.com/4.4/user-manual/api/reference.html#operation/api.controllers.security_controller.set_role_rule", + "documentation": "https://documentation.wazuh.com/4.5/user-manual/api/reference.html#operation/api.controllers.security_controller.set_role_rule", "description": "Create a specific role-rule relation. One role may have multiple security rules", "summary": "Add security rules to role", "tags": [ @@ -11068,7 +11088,7 @@ }, { "name": "/security/rules", - "documentation": "https://documentation.wazuh.com/4.4/user-manual/api/reference.html#operation/api.controllers.security_controller.add_rule", + "documentation": "https://documentation.wazuh.com/4.5/user-manual/api/reference.html#operation/api.controllers.security_controller.add_rule", "description": "Add a new security rule", "summary": "Add security rule", "tags": [ @@ -11116,7 +11136,7 @@ }, { "name": "/security/user/authenticate", - "documentation": "https://documentation.wazuh.com/4.4/user-manual/api/reference.html#operation/api.controllers.security_controller.login_user", + "documentation": "https://documentation.wazuh.com/4.5/user-manual/api/reference.html#operation/api.controllers.security_controller.login_user", "description": "This method should be called to get an API token. This token will expire after auth_token_exp_timeout seconds (default: 900). This value can be changed using PUT /security/config", "summary": "Login", "tags": [ @@ -11135,7 +11155,7 @@ }, { "name": "/security/user/authenticate/run_as", - "documentation": "https://documentation.wazuh.com/4.4/user-manual/api/reference.html#operation/api.controllers.security_controller.run_as_login", + "documentation": "https://documentation.wazuh.com/4.5/user-manual/api/reference.html#operation/api.controllers.security_controller.run_as_login", "description": "This method should be called to get an API token using an authorization context body. This token will expire after auth_token_exp_timeout seconds (default: 900). This value can be changed using PUT /security/config", "summary": "Login auth_context", "tags": [ @@ -11150,17 +11170,11 @@ "type": "boolean" } } - ], - "body": [ - { - "name": "type", - "type": "object" - } ] }, { "name": "/security/users", - "documentation": "https://documentation.wazuh.com/4.4/user-manual/api/reference.html#operation/api.controllers.security_controller.create_user", + "documentation": "https://documentation.wazuh.com/4.5/user-manual/api/reference.html#operation/api.controllers.security_controller.create_user", "description": "Add a new API user to the system", "summary": "Add user", "tags": [ @@ -11186,22 +11200,29 @@ ], "body": [ { - "name": "password", - "type": "string", - "format": "password" - }, - { - "name": "username", - "type": "string", - "minLength": 4, - "maxLength": 64, - "format": "names" + "type": "object", + "properties": { + "username": { + "type": "string", + "minLength": 4, + "maxLength": 64, + "format": "names" + }, + "password": { + "type": "string", + "format": "password" + } + }, + "required": [ + "username", + "password" + ] } ] }, { "name": "/security/users/:user_id/roles", - "documentation": "https://documentation.wazuh.com/4.4/user-manual/api/reference.html#operation/api.controllers.security_controller.set_user_role", + "documentation": "https://documentation.wazuh.com/4.5/user-manual/api/reference.html#operation/api.controllers.security_controller.set_user_role", "description": "Create a specified relation role-policy, one user may have multiples roles", "summary": "Add roles to user", "tags": [ @@ -11267,7 +11288,7 @@ "endpoints": [ { "name": "/agents", - "documentation": "https://documentation.wazuh.com/4.4/user-manual/api/reference.html#operation/api.controllers.agent_controller.delete_agents", + "documentation": "https://documentation.wazuh.com/4.5/user-manual/api/reference.html#operation/api.controllers.agent_controller.delete_agents", "description": "Delete all agents or a list of them based on optional criteria", "summary": "Delete agents", "tags": [ @@ -11432,7 +11453,7 @@ }, { "name": "/agents/:agent_id/group", - "documentation": "https://documentation.wazuh.com/4.4/user-manual/api/reference.html#operation/api.controllers.agent_controller.delete_single_agent_multiple_groups", + "documentation": "https://documentation.wazuh.com/4.5/user-manual/api/reference.html#operation/api.controllers.agent_controller.delete_single_agent_multiple_groups", "description": "Remove the agent from all groups or a list of them. The agent will automatically revert to the default group if it is removed from all its assigned groups", "summary": "Remove agent from groups", "tags": [ @@ -11484,7 +11505,7 @@ }, { "name": "/agents/:agent_id/group/:group_id", - "documentation": "https://documentation.wazuh.com/4.4/user-manual/api/reference.html#operation/api.controllers.agent_controller.delete_single_agent_single_group", + "documentation": "https://documentation.wazuh.com/4.5/user-manual/api/reference.html#operation/api.controllers.agent_controller.delete_single_agent_single_group", "description": "Remove an agent from a specified group. If the agent belongs to several groups, only the specified group will be deleted.", "summary": "Remove agent from group", "tags": [ @@ -11534,7 +11555,7 @@ }, { "name": "/agents/group", - "documentation": "https://documentation.wazuh.com/4.4/user-manual/api/reference.html#operation/api.controllers.agent_controller.delete_multiple_agent_single_group", + "documentation": "https://documentation.wazuh.com/4.5/user-manual/api/reference.html#operation/api.controllers.agent_controller.delete_multiple_agent_single_group", "description": "Remove all agents assignment or a list of them from the specified group", "summary": "Remove agents from group", "tags": [ @@ -11585,7 +11606,7 @@ }, { "name": "/decoders/files/:filename", - "documentation": "https://documentation.wazuh.com/4.4/user-manual/api/reference.html#operation/api.controllers.decoder_controller.delete_file", + "documentation": "https://documentation.wazuh.com/4.5/user-manual/api/reference.html#operation/api.controllers.decoder_controller.delete_file", "description": "Delete a specified decoder file", "summary": "Delete decoders file", "tags": [ @@ -11623,7 +11644,7 @@ }, { "name": "/experimental/rootcheck", - "documentation": "https://documentation.wazuh.com/4.4/user-manual/api/reference.html#operation/api.controllers.experimental_controller.clear_rootcheck_database", + "documentation": "https://documentation.wazuh.com/4.5/user-manual/api/reference.html#operation/api.controllers.experimental_controller.clear_rootcheck_database", "description": "Clear rootcheck database for all agents or a list of them", "summary": "Clear rootcheck results", "tags": [ @@ -11664,7 +11685,7 @@ }, { "name": "/experimental/syscheck", - "documentation": "https://documentation.wazuh.com/4.4/user-manual/api/reference.html#operation/api.controllers.experimental_controller.clear_syscheck_database", + "documentation": "https://documentation.wazuh.com/4.5/user-manual/api/reference.html#operation/api.controllers.experimental_controller.clear_syscheck_database", "description": "Clear the syscheck database for all agents or a list of them", "summary": "Clear agents FIM results", "tags": [ @@ -11705,7 +11726,7 @@ }, { "name": "/groups", - "documentation": "https://documentation.wazuh.com/4.4/user-manual/api/reference.html#operation/api.controllers.agent_controller.delete_groups", + "documentation": "https://documentation.wazuh.com/4.5/user-manual/api/reference.html#operation/api.controllers.agent_controller.delete_groups", "description": "Delete all groups or a list of them", "summary": "Delete groups", "tags": [ @@ -11746,7 +11767,7 @@ }, { "name": "/lists/files/:filename", - "documentation": "https://documentation.wazuh.com/4.4/user-manual/api/reference.html#operation/api.controllers.cdb_list_controller.delete_file", + "documentation": "https://documentation.wazuh.com/4.5/user-manual/api/reference.html#operation/api.controllers.cdb_list_controller.delete_file", "description": "Delete a specified CDB list file. Only the filename can be specified. It will be searched recursively if not found", "summary": "Delete CDB list file", "tags": [ @@ -11784,7 +11805,7 @@ }, { "name": "/logtest/sessions/:token", - "documentation": "https://documentation.wazuh.com/4.4/user-manual/api/reference.html#operation/api.controllers.logtest_controller.end_logtest_session", + "documentation": "https://documentation.wazuh.com/4.5/user-manual/api/reference.html#operation/api.controllers.logtest_controller.end_logtest_session", "description": "Delete the saved logtest session corresponding to {token}", "summary": "End session", "tags": [ @@ -11822,7 +11843,7 @@ }, { "name": "/rootcheck/:agent_id", - "documentation": "https://documentation.wazuh.com/4.4/user-manual/api/reference.html#operation/api.controllers.rootcheck_controller.delete_rootcheck", + "documentation": "https://documentation.wazuh.com/4.5/user-manual/api/reference.html#operation/api.controllers.rootcheck_controller.delete_rootcheck", "description": "Clear an agent's rootcheck database", "summary": "Clear results", "tags": [ @@ -11862,7 +11883,7 @@ }, { "name": "/rules/files/:filename", - "documentation": "https://documentation.wazuh.com/4.4/user-manual/api/reference.html#operation/api.controllers.rule_controller.delete_file", + "documentation": "https://documentation.wazuh.com/4.5/user-manual/api/reference.html#operation/api.controllers.rule_controller.delete_file", "description": "Delete a specified rule file", "summary": "Delete rules file", "tags": [ @@ -11900,7 +11921,7 @@ }, { "name": "/security/config", - "documentation": "https://documentation.wazuh.com/4.4/user-manual/api/reference.html#operation/api.controllers.security_controller.delete_security_config", + "documentation": "https://documentation.wazuh.com/4.5/user-manual/api/reference.html#operation/api.controllers.security_controller.delete_security_config", "description": "Replaces the security configuration with the original one", "summary": "Restore default security config", "tags": [ @@ -11927,7 +11948,7 @@ }, { "name": "/security/policies", - "documentation": "https://documentation.wazuh.com/4.4/user-manual/api/reference.html#operation/api.controllers.security_controller.remove_policies", + "documentation": "https://documentation.wazuh.com/4.5/user-manual/api/reference.html#operation/api.controllers.security_controller.remove_policies", "description": "Delete a list of policies or all policies in the system, roles linked to policies are not going to be removed", "summary": "Delete policies", "tags": [ @@ -11967,7 +11988,7 @@ }, { "name": "/security/roles", - "documentation": "https://documentation.wazuh.com/4.4/user-manual/api/reference.html#operation/api.controllers.security_controller.remove_roles", + "documentation": "https://documentation.wazuh.com/4.5/user-manual/api/reference.html#operation/api.controllers.security_controller.remove_roles", "description": "Policies linked to roles are not going to be removed", "summary": "Delete roles", "tags": [ @@ -12007,7 +12028,7 @@ }, { "name": "/security/roles/:role_id/policies", - "documentation": "https://documentation.wazuh.com/4.4/user-manual/api/reference.html#operation/api.controllers.security_controller.remove_role_policy", + "documentation": "https://documentation.wazuh.com/4.5/user-manual/api/reference.html#operation/api.controllers.security_controller.remove_role_policy", "description": "Delete a specified relation role-policy", "summary": "Remove policies from role", "tags": [ @@ -12059,7 +12080,7 @@ }, { "name": "/security/roles/:role_id/rules", - "documentation": "https://documentation.wazuh.com/4.4/user-manual/api/reference.html#operation/api.controllers.security_controller.remove_role_rule", + "documentation": "https://documentation.wazuh.com/4.5/user-manual/api/reference.html#operation/api.controllers.security_controller.remove_role_rule", "description": "Delete a specific role-rule relation", "summary": "Remove security rules from role", "tags": [ @@ -12111,7 +12132,7 @@ }, { "name": "/security/rules", - "documentation": "https://documentation.wazuh.com/4.4/user-manual/api/reference.html#operation/api.controllers.security_controller.remove_rules", + "documentation": "https://documentation.wazuh.com/4.5/user-manual/api/reference.html#operation/api.controllers.security_controller.remove_rules", "description": "Delete a list of security rules or all security rules in the system, roles linked to rules are not going to be deleted", "summary": "Delete security rules", "tags": [ @@ -12151,7 +12172,7 @@ }, { "name": "/security/user/authenticate", - "documentation": "https://documentation.wazuh.com/4.4/user-manual/api/reference.html#operation/api.controllers.security_controller.logout_user", + "documentation": "https://documentation.wazuh.com/4.5/user-manual/api/reference.html#operation/api.controllers.security_controller.logout_user", "description": "This method should be called to invalidate all the current user's tokens", "summary": "Logout current user", "tags": [ @@ -12160,7 +12181,7 @@ }, { "name": "/security/users", - "documentation": "https://documentation.wazuh.com/4.4/user-manual/api/reference.html#operation/api.controllers.security_controller.delete_users", + "documentation": "https://documentation.wazuh.com/4.5/user-manual/api/reference.html#operation/api.controllers.security_controller.delete_users", "description": "Delete a list of users by specifying their IDs", "summary": "Delete users", "tags": [ @@ -12200,7 +12221,7 @@ }, { "name": "/security/users/:user_id/roles", - "documentation": "https://documentation.wazuh.com/4.4/user-manual/api/reference.html#operation/api.controllers.security_controller.remove_user_role", + "documentation": "https://documentation.wazuh.com/4.5/user-manual/api/reference.html#operation/api.controllers.security_controller.remove_user_role", "description": "Delete a specified relation user-roles", "summary": "Remove roles from user", "tags": [ @@ -12252,7 +12273,7 @@ }, { "name": "/syscheck/:agent_id", - "documentation": "https://documentation.wazuh.com/4.4/user-manual/api/reference.html#operation/api.controllers.syscheck_controller.delete_syscheck_agent", + "documentation": "https://documentation.wazuh.com/4.5/user-manual/api/reference.html#operation/api.controllers.syscheck_controller.delete_syscheck_agent", "description": "Clear file integrity monitoring scan results for a specified agent. Only available for agents < 3.12.0, it doesn't apply for more recent ones", "summary": "Clear results", "tags": [ diff --git a/common/services/web_documentation.test.ts b/common/services/web_documentation.test.ts index 269a0ebfd8..1015396c70 100644 --- a/common/services/web_documentation.test.ts +++ b/common/services/web_documentation.test.ts @@ -10,5 +10,5 @@ test(`Generate a web documentation URL to the base URL using to the plugin short }); test(`Generate a web documentation URL using a specific version`, () => { - expect(webDocumentationLink('user-manual/agent-enrollment/index.html', '4.4')).toBe(`${DOCUMENTATION_WEB_BASE_URL}/4.4/user-manual/agent-enrollment/index.html`); + expect(webDocumentationLink('user-manual/agent-enrollment/index.html', '4.5')).toBe(`${DOCUMENTATION_WEB_BASE_URL}/4.5/user-manual/agent-enrollment/index.html`); }); diff --git a/docker/wazuh-4.4-wz/pre.sh b/docker/wazuh-4.4-wz/pre.sh index 04af023574..8d34e35a92 100755 --- a/docker/wazuh-4.4-wz/pre.sh +++ b/docker/wazuh-4.4-wz/pre.sh @@ -2,10 +2,10 @@ versions=( "4.4.0" - "4.4.1" - "4.4.2" - "4.4.3" - "4.4.4" + "4.4.1" + "4.4.2" + "4.4.3" + "4.4.4" "4.5.0" "4.5.1" ) @@ -34,26 +34,24 @@ usage() { exit -1 } -if [ $# -ne 3 ] - then - echo "Incorrect number of arguments " $# - usage +if [ $# -ne 3 ]; then + echo "Incorrect number of arguments " $# + usage fi -if [[ ! " ${versions[*]} " =~ " ${1} " ]] - then - echo "Version ${1} not found in ${versions[*]}" - exit -1 +if [[ ! " ${versions[*]} " =~ " ${1} " ]]; then + echo "Version ${1} not found in ${versions[*]}" + exit -1 fi [ -n "$2" ] && [ "$2" -eq "$2" ] 2>/dev/null if [ $? -ne 0 ]; then - echo "$2 is not number" - exit -1 + echo "$2 is not number" + exit -1 fi patch_version=$2 -cat << EOF > config/imposter/api_info.json +cat <config/imposter/api_info.json { "data": { "title": "Wazuh API REST", @@ -74,46 +72,46 @@ export KIBANA_PASSWORD=${PASSWORD:-SecretPassword} export COMPOSE_PROJECT_NAME=wz-pre-${WAZUH_STACK//./} case "$3" in - up) - # recreate volumes - docker compose -f pre.yml up -Vd +up) + # recreate volumes + docker compose -f pre.yml up -Vd - # This installs Wazuh and integrates with a default Wazuh stack - # v=$( echo -n $WAZUH_STACK | sed 's/\.//g' ) - echo - echo "Install the pre-release package manually with:" - echo - echo "1. Uninstall current version of the Wazuh app:" - echo "docker exec -ti ${COMPOSE_PROJECT_NAME}-wazuh.dashboard-1 /usr/share/wazuh-dashboard/bin/opensearch-dashboards-plugin remove wazuh" - echo - echo "2. Restart Wazuh Dashboard:" - echo "docker restart ${COMPOSE_PROJECT_NAME}-wazuh.dashboard-1" - echo - echo "3. Copy the pre-release package to the running Wazuh Dashboard container:" - echo docker cp wazuh-4.4.${patch_version}-1.zip ${COMPOSE_PROJECT_NAME}-wazuh.dashboard-1:/tmp - echo - echo "4. Install the package we have just uploaded:" - echo "docker exec -ti ${COMPOSE_PROJECT_NAME}-wazuh.dashboard-1 /usr/share/wazuh-dashboard/bin/opensearch-dashboards-plugin install file:///tmp/wazuh-4.4.${patch_version}-1.zip" - echo - echo "5. Restart the Wazuh Dashboard container:" - echo "docker restart ${COMPOSE_PROJECT_NAME}-wazuh.dashboard-1" - echo - echo "6. Upload the Wazuh app configuration:" - echo "docker cp ./config/wazuh_dashboard/wazuh.yml ${COMPOSE_PROJECT_NAME}-wazuh.dashboard-1:/usr/share/wazuh-dashboard/data/wazuh/config/" - echo - echo "7. Access the running instance in:" - echo "https://localhost:${KIBANA_PORT}" - echo - ;; - down) - # delete volumes - docker compose -f pre.yml down -v --remove-orphans - ;; - stop) - docker compose -f rel.yml -p ${COMPOSE_PROJECT_NAME} stop - ;; - *) - echo "Action must be either up or down" - usage - ;; + # This installs Wazuh and integrates with a default Wazuh stack + # v=$( echo -n $WAZUH_STACK | sed 's/\.//g' ) + echo + echo "Install the pre-release package manually with:" + echo + echo "1. Uninstall current version of the Wazuh app:" + echo "docker exec -ti ${COMPOSE_PROJECT_NAME}-wazuh.dashboard-1 /usr/share/wazuh-dashboard/bin/opensearch-dashboards-plugin remove wazuh" + echo + echo "2. Restart Wazuh Dashboard:" + echo "docker restart ${COMPOSE_PROJECT_NAME}-wazuh.dashboard-1" + echo + echo "3. Copy the pre-release package to the running Wazuh Dashboard container:" + echo docker cp wazuh-4.4.${patch_version}-1.zip ${COMPOSE_PROJECT_NAME}-wazuh.dashboard-1:/tmp + echo + echo "4. Install the package we have just uploaded:" + echo "docker exec -ti ${COMPOSE_PROJECT_NAME}-wazuh.dashboard-1 /usr/share/wazuh-dashboard/bin/opensearch-dashboards-plugin install file:///tmp/wazuh-4.4.${patch_version}-1.zip" + echo + echo "5. Restart the Wazuh Dashboard container:" + echo "docker restart ${COMPOSE_PROJECT_NAME}-wazuh.dashboard-1" + echo + echo "6. Upload the Wazuh app configuration:" + echo "docker cp ./config/wazuh_dashboard/wazuh.yml ${COMPOSE_PROJECT_NAME}-wazuh.dashboard-1:/usr/share/wazuh-dashboard/data/wazuh/config/" + echo + echo "7. Access the running instance in:" + echo "https://localhost:${KIBANA_PORT}" + echo + ;; +down) + # delete volumes + docker compose -f pre.yml down -v --remove-orphans + ;; +stop) + docker compose -f rel.yml -p ${COMPOSE_PROJECT_NAME} stop + ;; +*) + echo "Action must be either up or down" + usage + ;; esac diff --git a/docker/wazuh-4.4-wz/rel.sh b/docker/wazuh-4.4-wz/rel.sh index 198de5e706..3dee9c3147 100755 --- a/docker/wazuh-4.4-wz/rel.sh +++ b/docker/wazuh-4.4-wz/rel.sh @@ -2,10 +2,10 @@ versions=( "4.4.0" - "4.4.1" - "4.4.2" - "4.4.3" - "4.4.4" + "4.4.1" + "4.4.2" + "4.4.3" + "4.4.4" "4.5.0" "4.5.1" ) @@ -20,16 +20,14 @@ usage() { exit -1 } -if [ $# -lt 2 ] - then - echo "Incorrect number of arguments " $# - usage +if [ $# -lt 2 ]; then + echo "Incorrect number of arguments " $# + usage fi -if [[ ! " ${versions[*]} " =~ " ${1} " ]] - then - echo "Version ${1} not found in ${versions[*]}" - exit -1 +if [[ ! " ${versions[*]} " =~ " ${1} " ]]; then + echo "Version ${1} not found in ${versions[*]}" + exit -1 fi export WAZUH_STACK=${1} @@ -41,38 +39,37 @@ profile="standard" export WAZUH_DASHBOARD_CONF=./config/wazuh_dashboard/wazuh_dashboard.yml export SEC_CONFIG_FILE=./config/wazuh_indexer/config.yml -if [[ "$3" =~ "saml" ]] -then +if [[ "$3" =~ "saml" ]]; then profile="saml" export WAZUH_DASHBOARD_CONF=./config/wazuh_dashboard/wazuh_dashboard_saml.yml export SEC_CONFIG_FILE=./config/wazuh_indexer/config-saml.yml fi case "$2" in - up) - docker compose --profile $profile -f rel.yml -p ${COMPOSE_PROJECT_NAME} up -Vd - echo - echo "1. (Optional) Enroll an agent (Ubuntu 20.04):" - echo "docker run --name ${COMPOSE_PROJECT_NAME}-agent --network ${COMPOSE_PROJECT_NAME} --label com.docker.compose.project=${COMPOSE_PROJECT_NAME} -d ubuntu:20.04 bash -c '" - echo " apt update -y" - echo " apt install -y curl lsb-release" - echo " curl -so \wazuh-agent-${WAZUH_STACK}.deb \\" - echo " https://packages.wazuh.com/4.x/apt/pool/main/w/wazuh-agent/wazuh-agent_${WAZUH_STACK}-1_amd64.deb \\" - echo " && WAZUH_MANAGER='wazuh.manager' WAZUH_AGENT_GROUP='default' dpkg -i ./wazuh-agent-${WAZUH_STACK}.deb" - echo - echo " /etc/init.d/wazuh-agent start" - echo " tail -f /var/ossec/logs/ossec.log" - echo "'" - echo - ;; - down) - docker compose --profile $profile -f rel.yml -p ${COMPOSE_PROJECT_NAME} down -v --remove-orphans - ;; - stop) - docker compose --profile $profile -f rel.yml -p ${COMPOSE_PROJECT_NAME} stop - ;; - *) - echo "Action must be either up or down" - usage - ;; +up) + docker compose --profile $profile -f rel.yml -p ${COMPOSE_PROJECT_NAME} up -Vd + echo + echo "1. (Optional) Enroll an agent (Ubuntu 20.04):" + echo "docker run --name ${COMPOSE_PROJECT_NAME}-agent --network ${COMPOSE_PROJECT_NAME} --label com.docker.compose.project=${COMPOSE_PROJECT_NAME} -d ubuntu:20.04 bash -c '" + echo " apt update -y" + echo " apt install -y curl lsb-release" + echo " curl -so \wazuh-agent-${WAZUH_STACK}.deb \\" + echo " https://packages.wazuh.com/4.x/apt/pool/main/w/wazuh-agent/wazuh-agent_${WAZUH_STACK}-1_amd64.deb \\" + echo " && WAZUH_MANAGER='wazuh.manager' WAZUH_AGENT_GROUP='default' dpkg -i ./wazuh-agent-${WAZUH_STACK}.deb" + echo + echo " /etc/init.d/wazuh-agent start" + echo " tail -f /var/ossec/logs/ossec.log" + echo "'" + echo + ;; +down) + docker compose --profile $profile -f rel.yml -p ${COMPOSE_PROJECT_NAME} down -v --remove-orphans + ;; +stop) + docker compose --profile $profile -f rel.yml -p ${COMPOSE_PROJECT_NAME} stop + ;; +*) + echo "Action must be either up or down" + usage + ;; esac diff --git a/docker/wazuh-4.x-es/pre.sh b/docker/wazuh-4.x-es/pre.sh index 73ca7c49a4..9411ffba67 100755 --- a/docker/wazuh-4.x-es/pre.sh +++ b/docker/wazuh-4.x-es/pre.sh @@ -12,10 +12,10 @@ elastic_versions=( "7.17.4" "7.17.5" "7.17.6" - "7.17.7" - "7.17.8" - "7.17.9" - "7.17.10" + "7.17.7" + "7.17.8" + "7.17.9" + "7.17.10" ) wazuh_api_version=( @@ -32,9 +32,9 @@ wazuh_api_version=( "4.3.10" "4.4.0" "4.4.1" - "4.4.2" - "4.4.3" - "4.4.4" + "4.4.2" + "4.4.3" + "4.4.4" "4.5.0" "4.5.1" ) @@ -57,26 +57,24 @@ usage() { exit -1 } -if [ $# -ne 3 ] - then - echo "Incorrect number of arguments " $# - usage +if [ $# -ne 3 ]; then + echo "Incorrect number of arguments " $# + usage fi -if [[ ! " ${elastic_versions[*]} " =~ " ${1} " ]] - then - echo "Version ${1} not found in ${elastic_versions[*]}" - exit -1 +if [[ ! " ${elastic_versions[*]} " =~ " ${1} " ]]; then + echo "Version ${1} not found in ${elastic_versions[*]}" + exit -1 fi # [ -n "$2" ] && [ "$2" -eq "$2" ] 2>/dev/null if [ $? -ne 0 ]; then - echo "Version ${2} not found in ${wazuh_api_version[*]}" - exit -1 + echo "Version ${2} not found in ${wazuh_api_version[*]}" + exit -1 fi wazuh_version=$2 -cat << EOF > config/imposter/api_info.json +cat <config/imposter/api_info.json { "data": { "title": "Wazuh API REST", @@ -100,39 +98,39 @@ export KIBANA_PORT=${PORT:-5601} export COMPOSE_PROJECT_NAME=es-pre-${ES_VERSION//./} case "$3" in - up) - # recreate volumes - docker compose -f pre.yml up -Vd +up) + # recreate volumes + docker compose -f pre.yml up -Vd - # This installs Wazuh and integrates with a default Elastic stack - # v=$( echo -n $ES_VERSION | sed 's/\.//g' ) - echo - echo "Install the pre-release package manually with:" - echo - echo "1. Copy the pre-release package to the running Kibana container:" - echo "docker cp wazuh_kibana-${wazuh_version}_${ES_VERSION}-1.zip ${COMPOSE_PROJECT_NAME}-kibana-1:/tmp" - echo - echo "2. Install the pre-release package:" - echo "docker exec -ti ${COMPOSE_PROJECT_NAME}-kibana-1 /usr/share/kibana/bin/kibana-plugin install file:///tmp/wazuh_kibana-${wazuh_version}_${ES_VERSION}-1.zip" - echo - echo "3. Restart Kibana:" - echo "docker restart ${COMPOSE_PROJECT_NAME}-kibana-1" - echo - echo "4. Upload the Wazuh app configuration:" - echo "docker cp ./config/kibana/wazuh.yml ${COMPOSE_PROJECT_NAME}-kibana-1:/usr/share/kibana/data/wazuh/config/" - echo - echo "5. Open Kibana in a browser:" - echo "http://localhost:${KIBANA_PORT}" - echo - ;; - down) - # delete volumes - docker compose -f pre.yml down -v --remove-orphans - ;; - stop) - docker compose -f pre.yml -p ${COMPOSE_PROJECT_NAME} stop - ;; - *) - usage - ;; + # This installs Wazuh and integrates with a default Elastic stack + # v=$( echo -n $ES_VERSION | sed 's/\.//g' ) + echo + echo "Install the pre-release package manually with:" + echo + echo "1. Copy the pre-release package to the running Kibana container:" + echo "docker cp wazuh_kibana-${wazuh_version}_${ES_VERSION}-1.zip ${COMPOSE_PROJECT_NAME}-kibana-1:/tmp" + echo + echo "2. Install the pre-release package:" + echo "docker exec -ti ${COMPOSE_PROJECT_NAME}-kibana-1 /usr/share/kibana/bin/kibana-plugin install file:///tmp/wazuh_kibana-${wazuh_version}_${ES_VERSION}-1.zip" + echo + echo "3. Restart Kibana:" + echo "docker restart ${COMPOSE_PROJECT_NAME}-kibana-1" + echo + echo "4. Upload the Wazuh app configuration:" + echo "docker cp ./config/kibana/wazuh.yml ${COMPOSE_PROJECT_NAME}-kibana-1:/usr/share/kibana/data/wazuh/config/" + echo + echo "5. Open Kibana in a browser:" + echo "http://localhost:${KIBANA_PORT}" + echo + ;; +down) + # delete volumes + docker compose -f pre.yml down -v --remove-orphans + ;; +stop) + docker compose -f pre.yml -p ${COMPOSE_PROJECT_NAME} stop + ;; +*) + usage + ;; esac diff --git a/docker/wazuh-4.x-es/rel.sh b/docker/wazuh-4.x-es/rel.sh index 71724cf4ea..b57ce80a56 100755 --- a/docker/wazuh-4.x-es/rel.sh +++ b/docker/wazuh-4.x-es/rel.sh @@ -12,10 +12,10 @@ elastic_versions=( "7.17.4" "7.17.5" "7.17.6" - "7.17.7" - "7.17.8" - "7.17.9" - "7.17.10" + "7.17.7" + "7.17.8" + "7.17.9" + "7.17.10" ) wazuh_versions=( @@ -28,13 +28,13 @@ wazuh_versions=( "4.3.6" "4.3.7" "4.3.8" - "4.3.9" - "4.3.10" - "4.4.0" - "4.4.1" - "4.4.2" - "4.4.3" - "4.4.4" + "4.3.9" + "4.3.10" + "4.4.0" + "4.4.1" + "4.4.2" + "4.4.3" + "4.4.4" "4.5.0" "4.5.1" ) @@ -50,22 +50,19 @@ usage() { exit -1 } -if [ $# -ne 3 ] - then - echo "Incorrect number of arguments " $# - usage +if [ $# -ne 3 ]; then + echo "Incorrect number of arguments " $# + usage fi -if [[ ! " ${elastic_versions[*]} " =~ " ${1} " ]] - then - echo "Version ${1} not found in ${elastic_versions[*]}" - exit -1 +if [[ ! " ${elastic_versions[*]} " =~ " ${1} " ]]; then + echo "Version ${1} not found in ${elastic_versions[*]}" + exit -1 fi -if [[ ! " ${wazuh_versions[*]} " =~ " ${2} " ]] - then - echo "Version ${2} not found in ${wazuh_versions[*]}" - exit -1 +if [[ ! " ${wazuh_versions[*]} " =~ " ${2} " ]]; then + echo "Version ${2} not found in ${wazuh_versions[*]}" + exit -1 fi export ES_VERSION=$1 @@ -78,48 +75,48 @@ export KIBANA_PORT=${PORT:-5601} export COMPOSE_PROJECT_NAME=es-rel-${ES_VERSION//./} case "$3" in - up) - # recreate volumes - docker compose -f rel.yml up -Vd +up) + # recreate volumes + docker compose -f rel.yml up -Vd - # This installs Wazuh and integrates with a default Elastic stack - # v=$( echo -n $ES_VERSION | sed 's/\.//g' ) - echo - echo "Install Wazuh ${WAZUH_VERSION} into Elastic ${ES_VERSION} manually with:" - echo - echo "1. Install the Wazuh app for Kibana" - echo "docker exec -ti ${COMPOSE_PROJECT_NAME}-kibana-1 /usr/share/kibana/bin/kibana-plugin install https://packages.wazuh.com/4.x/ui/kibana/wazuh_kibana-${WAZUH_VERSION}_${ES_VERSION}-1.zip" - echo - echo "2. Restart Kibana" - echo "docker restart ${COMPOSE_PROJECT_NAME}-kibana-1" - echo - echo "3. Configure Kibana" - echo "docker cp ./config/kibana/wazuh.yml ${COMPOSE_PROJECT_NAME}-kibana-1:/usr/share/kibana/data/wazuh/config/" - echo - echo "4. Open Kibana in a browser:" - echo "http://localhost:${KIBANA_PORT}" - echo - echo "5. (Optional) Enroll an agent (Ubuntu 20.04):" - echo "docker run --name ${COMPOSE_PROJECT_NAME}-agent --network ${COMPOSE_PROJECT_NAME} --label com.docker.compose.project=${COMPOSE_PROJECT_NAME} -d ubuntu:20.04 bash -c '" - echo " apt update -y" - echo " apt install -y curl lsb-release" - echo " curl -so \wazuh-agent-${WAZUH_VERSION}.deb \\" - echo " https://packages.wazuh.com/4.x/apt/pool/main/w/wazuh-agent/wazuh-agent_${WAZUH_VERSION}-1_amd64.deb \\" - echo " && WAZUH_MANAGER='wazuh.manager' WAZUH_AGENT_GROUP='default' dpkg -i ./wazuh-agent-${WAZUH_VERSION}.deb" - echo - echo " /etc/init.d/wazuh-agent start" - echo " tail -f /var/ossec/logs/ossec.log" - echo "'" - echo - ;; - down) - # delete volumes - docker compose -f rel.yml down -v --remove-orphans - ;; - stop) - docker compose -f rel.yml -p ${COMPOSE_PROJECT_NAME} stop - ;; - *) - usage - ;; + # This installs Wazuh and integrates with a default Elastic stack + # v=$( echo -n $ES_VERSION | sed 's/\.//g' ) + echo + echo "Install Wazuh ${WAZUH_VERSION} into Elastic ${ES_VERSION} manually with:" + echo + echo "1. Install the Wazuh app for Kibana" + echo "docker exec -ti ${COMPOSE_PROJECT_NAME}-kibana-1 /usr/share/kibana/bin/kibana-plugin install https://packages.wazuh.com/4.x/ui/kibana/wazuh_kibana-${WAZUH_VERSION}_${ES_VERSION}-1.zip" + echo + echo "2. Restart Kibana" + echo "docker restart ${COMPOSE_PROJECT_NAME}-kibana-1" + echo + echo "3. Configure Kibana" + echo "docker cp ./config/kibana/wazuh.yml ${COMPOSE_PROJECT_NAME}-kibana-1:/usr/share/kibana/data/wazuh/config/" + echo + echo "4. Open Kibana in a browser:" + echo "http://localhost:${KIBANA_PORT}" + echo + echo "5. (Optional) Enroll an agent (Ubuntu 20.04):" + echo "docker run --name ${COMPOSE_PROJECT_NAME}-agent --network ${COMPOSE_PROJECT_NAME} --label com.docker.compose.project=${COMPOSE_PROJECT_NAME} -d ubuntu:20.04 bash -c '" + echo " apt update -y" + echo " apt install -y curl lsb-release" + echo " curl -so \wazuh-agent-${WAZUH_VERSION}.deb \\" + echo " https://packages.wazuh.com/4.x/apt/pool/main/w/wazuh-agent/wazuh-agent_${WAZUH_VERSION}-1_amd64.deb \\" + echo " && WAZUH_MANAGER='wazuh.manager' WAZUH_AGENT_GROUP='default' dpkg -i ./wazuh-agent-${WAZUH_VERSION}.deb" + echo + echo " /etc/init.d/wazuh-agent start" + echo " tail -f /var/ossec/logs/ossec.log" + echo "'" + echo + ;; +down) + # delete volumes + docker compose -f rel.yml down -v --remove-orphans + ;; +stop) + docker compose -f rel.yml -p ${COMPOSE_PROJECT_NAME} stop + ;; +*) + usage + ;; esac diff --git a/public/controllers/management/components/management/configuration/office365/components/SubscriptionTab/__snapshots__/SubscriptionTab.test.tsx.snap b/public/controllers/management/components/management/configuration/office365/components/SubscriptionTab/__snapshots__/SubscriptionTab.test.tsx.snap index 1b6ee66f37..f8a679939c 100644 --- a/public/controllers/management/components/management/configuration/office365/components/SubscriptionTab/__snapshots__/SubscriptionTab.test.tsx.snap +++ b/public/controllers/management/components/management/configuration/office365/components/SubscriptionTab/__snapshots__/SubscriptionTab.test.tsx.snap @@ -60,11 +60,11 @@ exports[`SubscriptionTab component renders correctly to match the snapshot 1`] = helpLinks={ Array [ Object { - "href": "https://documentation.wazuh.com/4.4/office365/index.html", + "href": "https://documentation.wazuh.com/4.5/office365/index.html", "text": "Using Wazuh to monitor Office 365", }, Object { - "href": "https://documentation.wazuh.com/4.4/user-manual/reference/ossec-conf/office365-module.html", + "href": "https://documentation.wazuh.com/4.5/user-manual/reference/ossec-conf/office365-module.html", "text": "Configuration options for the module", }, ] @@ -76,11 +76,11 @@ exports[`SubscriptionTab component renders correctly to match the snapshot 1`] = help={ Array [ Object { - "href": "https://documentation.wazuh.com/4.4/office365/index.html", + "href": "https://documentation.wazuh.com/4.5/office365/index.html", "text": "Using Wazuh to monitor Office 365", }, Object { - "href": "https://documentation.wazuh.com/4.4/user-manual/reference/ossec-conf/office365-module.html", + "href": "https://documentation.wazuh.com/4.5/user-manual/reference/ossec-conf/office365-module.html", "text": "Configuration options for the module", }, ] @@ -238,11 +238,11 @@ exports[`SubscriptionTab component renders correctly to match the snapshot 1`] = links={ Array [ Object { - "href": "https://documentation.wazuh.com/4.4/office365/index.html", + "href": "https://documentation.wazuh.com/4.5/office365/index.html", "text": "Using Wazuh to monitor Office 365", }, Object { - "href": "https://documentation.wazuh.com/4.4/user-manual/reference/ossec-conf/office365-module.html", + "href": "https://documentation.wazuh.com/4.5/user-manual/reference/ossec-conf/office365-module.html", "text": "Configuration options for the module", }, ] diff --git a/public/controllers/management/components/management/configuration/office365/components/api-auth-tab/__snapshots__/api-auth-tab.test.tsx.snap b/public/controllers/management/components/management/configuration/office365/components/api-auth-tab/__snapshots__/api-auth-tab.test.tsx.snap index 05d48c5bfe..ff206b16db 100644 --- a/public/controllers/management/components/management/configuration/office365/components/api-auth-tab/__snapshots__/api-auth-tab.test.tsx.snap +++ b/public/controllers/management/components/management/configuration/office365/components/api-auth-tab/__snapshots__/api-auth-tab.test.tsx.snap @@ -70,11 +70,11 @@ exports[`ApiAuthTab component renders correctly to match the snapshot 1`] = ` helpLinks={ Array [ Object { - "href": "https://documentation.wazuh.com/4.4/office365/index.html", + "href": "https://documentation.wazuh.com/4.5/office365/index.html", "text": "Using Wazuh to monitor Office 365", }, Object { - "href": "https://documentation.wazuh.com/4.4/user-manual/reference/ossec-conf/office365-module.html", + "href": "https://documentation.wazuh.com/4.5/user-manual/reference/ossec-conf/office365-module.html", "text": "Configuration options for the module", }, ] @@ -86,11 +86,11 @@ exports[`ApiAuthTab component renders correctly to match the snapshot 1`] = ` help={ Array [ Object { - "href": "https://documentation.wazuh.com/4.4/office365/index.html", + "href": "https://documentation.wazuh.com/4.5/office365/index.html", "text": "Using Wazuh to monitor Office 365", }, Object { - "href": "https://documentation.wazuh.com/4.4/user-manual/reference/ossec-conf/office365-module.html", + "href": "https://documentation.wazuh.com/4.5/user-manual/reference/ossec-conf/office365-module.html", "text": "Configuration options for the module", }, ] @@ -248,11 +248,11 @@ exports[`ApiAuthTab component renders correctly to match the snapshot 1`] = ` links={ Array [ Object { - "href": "https://documentation.wazuh.com/4.4/office365/index.html", + "href": "https://documentation.wazuh.com/4.5/office365/index.html", "text": "Using Wazuh to monitor Office 365", }, Object { - "href": "https://documentation.wazuh.com/4.4/user-manual/reference/ossec-conf/office365-module.html", + "href": "https://documentation.wazuh.com/4.5/user-manual/reference/ossec-conf/office365-module.html", "text": "Configuration options for the module", }, ] diff --git a/public/controllers/management/components/management/configuration/office365/components/general-tab/__snapshots__/general-tab.test.tsx.snap b/public/controllers/management/components/management/configuration/office365/components/general-tab/__snapshots__/general-tab.test.tsx.snap index 9bb45cc8ec..95982582db 100644 --- a/public/controllers/management/components/management/configuration/office365/components/general-tab/__snapshots__/general-tab.test.tsx.snap +++ b/public/controllers/management/components/management/configuration/office365/components/general-tab/__snapshots__/general-tab.test.tsx.snap @@ -61,11 +61,11 @@ exports[`GeneralTab component renders correctly to match the snapshot 1`] = ` helpLinks={ Array [ Object { - "href": "https://documentation.wazuh.com/4.4/office365/index.html", + "href": "https://documentation.wazuh.com/4.5/office365/index.html", "text": "Using Wazuh to monitor Office 365", }, Object { - "href": "https://documentation.wazuh.com/4.4/user-manual/reference/ossec-conf/office365-module.html", + "href": "https://documentation.wazuh.com/4.5/user-manual/reference/ossec-conf/office365-module.html", "text": "Configuration options for the module", }, ] @@ -78,11 +78,11 @@ exports[`GeneralTab component renders correctly to match the snapshot 1`] = ` help={ Array [ Object { - "href": "https://documentation.wazuh.com/4.4/office365/index.html", + "href": "https://documentation.wazuh.com/4.5/office365/index.html", "text": "Using Wazuh to monitor Office 365", }, Object { - "href": "https://documentation.wazuh.com/4.4/user-manual/reference/ossec-conf/office365-module.html", + "href": "https://documentation.wazuh.com/4.5/user-manual/reference/ossec-conf/office365-module.html", "text": "Configuration options for the module", }, ] @@ -258,11 +258,11 @@ exports[`GeneralTab component renders correctly to match the snapshot 1`] = ` links={ Array [ Object { - "href": "https://documentation.wazuh.com/4.4/office365/index.html", + "href": "https://documentation.wazuh.com/4.5/office365/index.html", "text": "Using Wazuh to monitor Office 365", }, Object { - "href": "https://documentation.wazuh.com/4.4/user-manual/reference/ossec-conf/office365-module.html", + "href": "https://documentation.wazuh.com/4.5/user-manual/reference/ossec-conf/office365-module.html", "text": "Configuration options for the module", }, ] From ef70b9a0c06a0efec7ab70ab8c62eb69da8aa656 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=81lex=20Ruiz?= Date: Wed, 5 Jul 2023 16:37:17 +0200 Subject: [PATCH 11/12] Add kbn-dev 7.17.11 (#5628) --- docker/images/kbn-7.17.11-dev.Dockerfile | 17 ++++++ docker/kbn-dev/dev.sh | 66 +++++++++++------------- 2 files changed, 48 insertions(+), 35 deletions(-) create mode 100644 docker/images/kbn-7.17.11-dev.Dockerfile diff --git a/docker/images/kbn-7.17.11-dev.Dockerfile b/docker/images/kbn-7.17.11-dev.Dockerfile new file mode 100644 index 0000000000..793b08ecb5 --- /dev/null +++ b/docker/images/kbn-7.17.11-dev.Dockerfile @@ -0,0 +1,17 @@ +FROM node:16.20.1 AS builder-kbn-7.17.11 +RUN npm install --global @bazel/bazelisk@1.10.1 +USER node +RUN git clone --depth 1 --branch v7.17.11 https://github.com/elastic/kibana /home/node/kbn +RUN chown node.node /home/node/kbn + +WORKDIR /home/node/kbn +RUN yarn kbn bootstrap +RUN yarn config set registry http://host.docker.internal:4873 && \ + sed -i 's/https:\/\/registry.yarnpkg.com/http:\/\/host.docker.internal:4873/g' yarn.lock +RUN rm -rf /home/node/.cache/yarn && rm -rf /home/node/.cache/Cypress && rm -rf /home/node/.cache/ms-playwright +RUN mkdir -p /home/node/kbn/data/wazuh/config + +FROM node:16.20.1 +USER node +COPY --from=builder-kbn-7.17.11 /home/node/ /home/node/ +WORKDIR /home/node/kbn diff --git a/docker/kbn-dev/dev.sh b/docker/kbn-dev/dev.sh index 70d27c34b2..d0ee3d5bf3 100755 --- a/docker/kbn-dev/dev.sh +++ b/docker/kbn-dev/dev.sh @@ -1,6 +1,5 @@ #!/bin/bash - elastic_versions=( '7.10.2' '7.16.0' @@ -11,23 +10,23 @@ elastic_versions=( '7.17.4' '7.17.5' '7.17.6' - '7.17.7' - '7.17.8' - '7.17.9' - '7.17.10' + '7.17.7' + '7.17.8' + '7.17.9' + '7.17.10' + '7.17.11' '8.0.0' '8.1.0' '8.2.1' '8.2.3' '8.3.0' '8.3.1' - '8.3.3' - '8.4.2' - '8.4.3' - '8.5.0' + '8.3.3' + '8.4.2' + '8.4.3' + '8.5.0' ) - usage() { echo echo "./dev.sh elastic_version /wazuh_app_src action " @@ -39,19 +38,16 @@ usage() { exit -1 } - -if [ $# -ne 3 ] - then - echo "Incorrect number of arguments " $# ", got " $@ - echo - usage +if [ $# -ne 3 ]; then + echo "Incorrect number of arguments " $# ", got " $@ + echo + usage fi -if [[ ! " ${elastic_versions[*]} " =~ " ${1} " ]] - then - echo "Version ${1} not found in ${elastic_versions[*]}" - echo - exit -1 +if [[ ! " ${elastic_versions[*]} " =~ " ${1} " ]]; then + echo "Version ${1} not found in ${elastic_versions[*]}" + echo + exit -1 fi if [[ $2 != /* ]]; then @@ -71,18 +67,18 @@ export SRC=$2 export COMPOSE_PROJECT_NAME=es-dev-${ES_VERSION//./} # /./ removes dots: 7.10.2 => 7102 case "$3" in - up) - docker compose -f dev.yml -p ${COMPOSE_PROJECT_NAME} up -Vd - ;; - down) - docker compose -f dev.yml -p ${COMPOSE_PROJECT_NAME} down -v --remove-orphans - ;; - stop) - docker compose -f dev.yml -p ${COMPOSE_PROJECT_NAME} stop - ;; - *) - echo "Action must be up | down | stop: " - echo - usage - ;; +up) + docker compose -f dev.yml -p ${COMPOSE_PROJECT_NAME} up -Vd + ;; +down) + docker compose -f dev.yml -p ${COMPOSE_PROJECT_NAME} down -v --remove-orphans + ;; +stop) + docker compose -f dev.yml -p ${COMPOSE_PROJECT_NAME} stop + ;; +*) + echo "Action must be up | down | stop: " + echo + usage + ;; esac From 4e396c5f64c197cd25d965fcc33ac66fa7b237de Mon Sep 17 00:00:00 2001 From: Ian Yenien Serrano <63758389+yenienserrano@users.noreply.github.com> Date: Tue, 11 Jul 2023 16:54:52 +0200 Subject: [PATCH 12/12] Merge 4.5.0 into 4.5.1 (#5670) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Update test snapshots for 4.5 (#5601) * Add missing supported versions to the Docker environments (#5584) feat(environments): add latest versions to Docker environments - Add Kibana versions: 7.17.7, 7.17.8, 7.17.9 and 7.17.10 - Add OpenSearch: 2.6.0 - Add OpenSearch Dashboards: 2.6.0 - Add Wazuh 4.4.1, 4.4.2, 4.4.3 and 4.4.4 * Update test snapshost * Update API data to 4.5 * Update branch patterns for GH Actions --------- Co-authored-by: Antonio <34042064+Desvelao@users.noreply.github.com> * Fix API reference links in endpoints.json * Merge 4.4 into 4.5.0 (#5669) Merge v4.4.5-2.6.0 into 4.4 (#5665) * Bump Wazuh and platform versions for v4.4.5 (#5639) * Update changelog * Update opensearch_dashboards.json * Update package.json * Update readme * Update tag script * Change tag.py version value * Empty tag suffix * Prepare tag.py for v4.4.5-rc1 (#5645) Add -rc1 tag suffix * Fix incompatible version of triple-beam subdependency (#5652) fix: add yarn.lock file and set version of triple-beam in yarn.lock * Update unit-test.yml (#5655) * Add support for Wazuh 4.4.5-rc2 (#5659) * Update revision of v4.4.5 in the Changelog * Bump v4.4.5-2.6.0-rc2 --------- Co-authored-by: Nicolas Agustin Guevara Pihen <42900763+Tostti@users.noreply.github.com> Co-authored-by: Federico Rodriguez Co-authored-by: Álex Ruiz Co-authored-by: Antonio <34042064+Desvelao@users.noreply.github.com> --------- Co-authored-by: Álex Ruiz Co-authored-by: Antonio <34042064+Desvelao@users.noreply.github.com> Co-authored-by: Nicolas Agustin Guevara Pihen <42900763+Tostti@users.noreply.github.com> Co-authored-by: Federico Rodriguez --- .github/workflows/unit-test.yml | 5 - .gitignore | 4 +- CHANGELOG.md | 6 + README.md | 1 + docker/wazuh-4.4-wz/pre.sh | 1 + docker/wazuh-4.4-wz/rel.sh | 1 + docker/wazuh-4.x-es/pre.sh | 2 + docker/wazuh-4.x-es/rel.sh | 4 +- package.json | 2 +- scripts/tag.py | 6 +- yarn.lock | 2888 +++++++++++++++++++++++++++++++ 11 files changed, 2907 insertions(+), 13 deletions(-) create mode 100644 yarn.lock diff --git a/.github/workflows/unit-test.yml b/.github/workflows/unit-test.yml index aa4b3195f2..edad90fd6d 100644 --- a/.github/workflows/unit-test.yml +++ b/.github/workflows/unit-test.yml @@ -24,11 +24,6 @@ on: options: - 'yarn test:jest' pull_request: - branches: - - 'master' - - '[345].[0-9]+' # Minor branches - - '[345].[0-9]+.[0-9]+' # Patch branches - - '[345].[0-9]+.[0-9]+-7.[0-9]+' # Minor branches - Kibana jobs: # Run unit tests with Jest diff --git a/.gitignore b/.gitignore index 2cc137cef8..f86051e821 100644 --- a/.gitignore +++ b/.gitignore @@ -72,8 +72,6 @@ typings/ target/ build/ -yarn.lock - cypress/node_modules/ cypress/.idea/ cypress/cypress.env.json @@ -84,4 +82,4 @@ cypress/cookies.json public/assets/custom/* # Mac files -.DS_Store \ No newline at end of file +.DS_Store diff --git a/CHANGELOG.md b/CHANGELOG.md index 53e649ccea..9a7b79a55f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -28,6 +28,12 @@ All notable changes to the Wazuh app project will be documented in this file. - Support for Wazuh 4.5.0 +## Wazuh v4.4.5 - OpenSearch Dashboards 2.6.0 - Revision 02 + +### Added + +- Support for Wazuh 4.4.5 + ## Wazuh v4.4.4 - OpenSearch Dashboards 2.6.0 - Revision 01 diff --git a/README.md b/README.md index d9e29ef106..8ad721aade 100644 --- a/README.md +++ b/README.md @@ -93,6 +93,7 @@ This plugin for OpenSearch Dashboards allows you to visualize and analyze Wazuh - Wazuh dashboard 4.5.1 - Wazuh indexer 4.5.1 + ## Contribute If you want to contribute to our project please don't hesitate to send a pull request. You can also join our users [mailing list](https://groups.google.com/d/forum/wazuh), by sending an email to [wazuh+subscribe@googlegroups.com](mailto:wazuh+subscribe@googlegroups.com), to ask questions and participate in discussions. diff --git a/docker/wazuh-4.4-wz/pre.sh b/docker/wazuh-4.4-wz/pre.sh index 8d34e35a92..9487376cfa 100755 --- a/docker/wazuh-4.4-wz/pre.sh +++ b/docker/wazuh-4.4-wz/pre.sh @@ -6,6 +6,7 @@ versions=( "4.4.2" "4.4.3" "4.4.4" + "4.4.5" "4.5.0" "4.5.1" ) diff --git a/docker/wazuh-4.4-wz/rel.sh b/docker/wazuh-4.4-wz/rel.sh index 3dee9c3147..cd74d62c4b 100755 --- a/docker/wazuh-4.4-wz/rel.sh +++ b/docker/wazuh-4.4-wz/rel.sh @@ -6,6 +6,7 @@ versions=( "4.4.2" "4.4.3" "4.4.4" + "4.4.5" "4.5.0" "4.5.1" ) diff --git a/docker/wazuh-4.x-es/pre.sh b/docker/wazuh-4.x-es/pre.sh index 9411ffba67..a16354c02f 100755 --- a/docker/wazuh-4.x-es/pre.sh +++ b/docker/wazuh-4.x-es/pre.sh @@ -16,6 +16,7 @@ elastic_versions=( "7.17.8" "7.17.9" "7.17.10" + "7.17.11" ) wazuh_api_version=( @@ -35,6 +36,7 @@ wazuh_api_version=( "4.4.2" "4.4.3" "4.4.4" + "4.4.5" "4.5.0" "4.5.1" ) diff --git a/docker/wazuh-4.x-es/rel.sh b/docker/wazuh-4.x-es/rel.sh index b57ce80a56..2ef6b36281 100755 --- a/docker/wazuh-4.x-es/rel.sh +++ b/docker/wazuh-4.x-es/rel.sh @@ -16,6 +16,7 @@ elastic_versions=( "7.17.8" "7.17.9" "7.17.10" + "7.17.11" ) wazuh_versions=( @@ -35,7 +36,8 @@ wazuh_versions=( "4.4.2" "4.4.3" "4.4.4" - "4.5.0" + "4.4.5" + "4.5.0" "4.5.1" ) diff --git a/package.json b/package.json index 9cb63791d4..1dc4042fcc 100644 --- a/package.json +++ b/package.json @@ -3,7 +3,7 @@ "version": "4.5.1", "revision": "01", "stage": "stable", - "commit": "0e7201ff8", + "commit": "c805cbcd0", "pluginPlatform": { "version": "2.6.0" }, diff --git a/scripts/tag.py b/scripts/tag.py index c991ea5f27..80d93f0928 100644 --- a/scripts/tag.py +++ b/scripts/tag.py @@ -17,9 +17,9 @@ # Wazuh version: major.minor.patch version = '4.5.1' # App's revision number (previous rev + 1) -revision = '01' +revision = '02' # One of 'pre-alpha', 'alpha', 'beta', 'release-candidate', 'stable' -stage = 'alpha' +stage = 'stable' # Tag suffix. Usually set to stage + stage iteration. tag_suffix = '-alpha1' @@ -30,7 +30,7 @@ TAGS_FILE = 'tags.log' # Global variable. Will be set later branch = None -minor = ".".join(version.split('.')[:2]) +minor = version # Supported versions of Kibana kbn_versions = [ diff --git a/yarn.lock b/yarn.lock new file mode 100644 index 0000000000..d4d5bca1f3 --- /dev/null +++ b/yarn.lock @@ -0,0 +1,2888 @@ +# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. +# yarn lockfile v1 + + +"@aashutoshrathi/word-wrap@^1.2.3": + version "1.2.6" + resolved "https://registry.yarnpkg.com/@aashutoshrathi/word-wrap/-/word-wrap-1.2.6.tgz#bd9154aec9983f77b3a034ecaa015c2e4201f6cf" + integrity sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA== + +"@babel/code-frame@^7.0.0": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.22.5.tgz#234d98e1551960604f1246e6475891a570ad5658" + integrity sha512-Xmwn266vad+6DAqEB2A6V/CcZVp62BbwVmcOJc2RPuwih1kw02TjQvWVWlcKGbBPd+8/0V5DEkOcizRGYsspYQ== + dependencies: + "@babel/highlight" "^7.22.5" + +"@babel/helper-validator-identifier@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.5.tgz#9544ef6a33999343c8740fa51350f30eeaaaf193" + integrity sha512-aJXu+6lErq8ltp+JhkJUfk1MTGyuA4v7f3pA+BJ5HLfNC6nAQ0Cpi9uOquUj8Hehg0aUiHzWQbOVJGao6ztBAQ== + +"@babel/highlight@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.22.5.tgz#aa6c05c5407a67ebce408162b7ede789b4d22031" + integrity sha512-BSKlD1hgnedS5XRnGOljZawtag7H1yPfQp0tdNJCHoH6AZ+Pcm9VvkrK59/Yy593Ypg0zMxH2BxD1VPYUQ7UIw== + dependencies: + "@babel/helper-validator-identifier" "^7.22.5" + chalk "^2.0.0" + js-tokens "^4.0.0" + +"@colors/colors@1.5.0": + version "1.5.0" + resolved "https://registry.yarnpkg.com/@colors/colors/-/colors-1.5.0.tgz#bb504579c1cae923e6576a4f5da43d25f97bdbd9" + integrity sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ== + +"@dabh/diagnostics@^2.0.2": + version "2.0.3" + resolved "https://registry.yarnpkg.com/@dabh/diagnostics/-/diagnostics-2.0.3.tgz#7f7e97ee9a725dffc7808d93668cc984e1dc477a" + integrity sha512-hrlQOIi7hAfzsMqlGSFyVucrx38O+j6wiGOf//H2ecvIEqYN4ADBSS2iLMh5UFyDunCNniUIPk/q3riFv45xRA== + dependencies: + colorspace "1.1.x" + enabled "2.0.x" + kuler "^2.0.0" + +"@eslint-community/eslint-utils@^4.2.0": + version "4.4.0" + resolved "https://registry.yarnpkg.com/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz#a23514e8fb9af1269d5f7788aa556798d61c6b59" + integrity sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA== + dependencies: + eslint-visitor-keys "^3.3.0" + +"@eslint-community/regexpp@^4.4.0": + version "4.5.1" + resolved "https://registry.yarnpkg.com/@eslint-community/regexpp/-/regexpp-4.5.1.tgz#cdd35dce4fa1a89a4fd42b1599eb35b3af408884" + integrity sha512-Z5ba73P98O1KUYCCJTUeVpja9RcGoMdncZ6T49FCUl2lN38JtCJ+3WgIDBv0AuY4WChU5PmtJmOCTlN6FZTFKQ== + +"@eslint/eslintrc@^2.1.0": + version "2.1.0" + resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-2.1.0.tgz#82256f164cc9e0b59669efc19d57f8092706841d" + integrity sha512-Lj7DECXqIVCqnqjjHMPna4vn6GJcMgul/wuS0je9OZ9gsL0zzDpKPVtcG1HaDVc+9y+qgXneTeUMbCqXJNpH1A== + dependencies: + ajv "^6.12.4" + debug "^4.3.2" + espree "^9.6.0" + globals "^13.19.0" + ignore "^5.2.0" + import-fresh "^3.2.1" + js-yaml "^4.1.0" + minimatch "^3.1.2" + strip-json-comments "^3.1.1" + +"@eslint/js@8.44.0": + version "8.44.0" + resolved "https://registry.yarnpkg.com/@eslint/js/-/js-8.44.0.tgz#961a5903c74139390478bdc808bcde3fc45ab7af" + integrity sha512-Ag+9YM4ocKQx9AarydN0KY2j0ErMHNIocPDrVo8zAE44xLTjEtz81OdR68/cydGtk6m6jDb5Za3r2useMzYmSw== + +"@foliojs-fork/fontkit@^1.9.1": + version "1.9.1" + resolved "https://registry.yarnpkg.com/@foliojs-fork/fontkit/-/fontkit-1.9.1.tgz#8124649168eb5273f580f66697a139fb5041296b" + integrity sha512-U589voc2/ROnvx1CyH9aNzOQWJp127JGU1QAylXGQ7LoEAF6hMmahZLQ4eqAcgHUw+uyW4PjtCItq9qudPkK3A== + dependencies: + "@foliojs-fork/restructure" "^2.0.2" + brfs "^2.0.0" + brotli "^1.2.0" + browserify-optional "^1.0.1" + clone "^1.0.4" + deep-equal "^1.0.0" + dfa "^1.2.0" + tiny-inflate "^1.0.2" + unicode-properties "^1.2.2" + unicode-trie "^2.0.0" + +"@foliojs-fork/linebreak@^1.1.1": + version "1.1.1" + resolved "https://registry.yarnpkg.com/@foliojs-fork/linebreak/-/linebreak-1.1.1.tgz#93ecd695b7d2bb0334b9481058c3e610e019a4eb" + integrity sha512-pgY/+53GqGQI+mvDiyprvPWgkTlVBS8cxqee03ejm6gKAQNsR1tCYCIvN9FHy7otZajzMqCgPOgC4cHdt4JPig== + dependencies: + base64-js "1.3.1" + brfs "^2.0.2" + unicode-trie "^2.0.0" + +"@foliojs-fork/pdfkit@^0.13.0": + version "0.13.0" + resolved "https://registry.yarnpkg.com/@foliojs-fork/pdfkit/-/pdfkit-0.13.0.tgz#54f5368d8cf74d8edc81a175ccda1fd9655f2db9" + integrity sha512-YXeG1fml9k97YNC9K8e292Pj2JzGt9uOIiBFuQFxHsdQ45BlxW+JU3RQK6JAvXU7kjhjP8rCcYvpk36JLD33sQ== + dependencies: + "@foliojs-fork/fontkit" "^1.9.1" + "@foliojs-fork/linebreak" "^1.1.1" + crypto-js "^4.0.0" + png-js "^1.0.0" + +"@foliojs-fork/restructure@^2.0.2": + version "2.0.2" + resolved "https://registry.yarnpkg.com/@foliojs-fork/restructure/-/restructure-2.0.2.tgz#73759aba2aff1da87b7c4554e6839c70d43c92b4" + integrity sha512-59SgoZ3EXbkfSX7b63tsou/SDGzwUEK6MuB5sKqgVK1/XE0fxmpsOb9DQI8LXW3KfGnAjImCGhhEb7uPPAUVNA== + +"@humanwhocodes/config-array@^0.11.10": + version "0.11.10" + resolved "https://registry.yarnpkg.com/@humanwhocodes/config-array/-/config-array-0.11.10.tgz#5a3ffe32cc9306365fb3fd572596cd602d5e12d2" + integrity sha512-KVVjQmNUepDVGXNuoRRdmmEjruj0KfiGSbS8LVc12LMsWDQzRXJ0qdhN8L8uUigKpfEHRhlaQFY0ib1tnUbNeQ== + dependencies: + "@humanwhocodes/object-schema" "^1.2.1" + debug "^4.1.1" + minimatch "^3.0.5" + +"@humanwhocodes/module-importer@^1.0.1": + version "1.0.1" + resolved "https://registry.yarnpkg.com/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz#af5b2691a22b44be847b0ca81641c5fb6ad0172c" + integrity sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA== + +"@humanwhocodes/object-schema@^1.2.1": + version "1.2.1" + resolved "https://registry.yarnpkg.com/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz#b520529ec21d8e5945a1851dfd1c32e94e39ff45" + integrity sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA== + +"@nodelib/fs.scandir@2.1.5": + version "2.1.5" + resolved "https://registry.yarnpkg.com/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz#7619c2eb21b25483f6d167548b4cfd5a7488c3d5" + integrity sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g== + dependencies: + "@nodelib/fs.stat" "2.0.5" + run-parallel "^1.1.9" + +"@nodelib/fs.stat@2.0.5", "@nodelib/fs.stat@^2.0.2": + version "2.0.5" + resolved "https://registry.yarnpkg.com/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz#5bd262af94e9d25bd1e71b05deed44876a222e8b" + integrity sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A== + +"@nodelib/fs.walk@^1.2.3", "@nodelib/fs.walk@^1.2.8": + version "1.2.8" + resolved "https://registry.yarnpkg.com/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz#e95737e8bb6746ddedf69c556953494f196fe69a" + integrity sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg== + dependencies: + "@nodelib/fs.scandir" "2.1.5" + fastq "^1.6.0" + +"@types/cookie@^0.3.3": + version "0.3.3" + resolved "https://registry.yarnpkg.com/@types/cookie/-/cookie-0.3.3.tgz#85bc74ba782fb7aa3a514d11767832b0e3bc6803" + integrity sha512-LKVP3cgXBT9RYj+t+9FDKwS5tdI+rPBXaNSkma7hvqy35lc7mAokC2zsqWJH0LaqIt3B962nuYI77hsJoT1gow== + +"@types/hoist-non-react-statics@^3.0.1": + version "3.3.1" + resolved "https://registry.yarnpkg.com/@types/hoist-non-react-statics/-/hoist-non-react-statics-3.3.1.tgz#1124aafe5118cb591977aeb1ceaaed1070eb039f" + integrity sha512-iMIqiko6ooLrTh1joXodJK5X9xeEALT1kM5G3ZLhD3hszxBdIEd5C75U834D9mLcINgD4OyZf5uQXjkuYydWvA== + dependencies: + "@types/react" "*" + hoist-non-react-statics "^3.3.0" + +"@types/json-schema@^7.0.9": + version "7.0.12" + resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.12.tgz#d70faba7039d5fca54c83c7dbab41051d2b6f6cb" + integrity sha512-Hr5Jfhc9eYOQNPYO5WLDq/n4jqijdHNlDXjuAQkkt+mWdQR+XJToOHrsD4cPaMXpn6KO7y2+wM8AZEs8VpBLVA== + +"@types/json5@^0.0.29": + version "0.0.29" + resolved "https://registry.yarnpkg.com/@types/json5/-/json5-0.0.29.tgz#ee28707ae94e11d2b827bcbe5270bcea7f3e71ee" + integrity sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ== + +"@types/node-cron@^2.0.3": + version "2.0.5" + resolved "https://registry.yarnpkg.com/@types/node-cron/-/node-cron-2.0.5.tgz#e244709a86d32453c5a702ced35b53db683fbc8e" + integrity sha512-rQ4kduTmgW11tbtx0/RsoybYHHPu4Vxw5v5ZS5qUKNerlEAI8r8P1F5UUZ2o2HTvzG759sbFxuRuqWxU8zc+EQ== + dependencies: + "@types/tz-offset" "*" + +"@types/prop-types@*": + version "15.7.5" + resolved "https://registry.yarnpkg.com/@types/prop-types/-/prop-types-15.7.5.tgz#5f19d2b85a98e9558036f6a3cacc8819420f05cf" + integrity sha512-JCB8C6SnDoQf0cNycqd/35A7MjcnK+ZTqE7judS6o7utxUCg6imJg3QK2qzHKszlTjcj2cn+NwMB2i96ubpj7w== + +"@types/react@*": + version "18.2.14" + resolved "https://registry.yarnpkg.com/@types/react/-/react-18.2.14.tgz#fa7a6fecf1ce35ca94e74874f70c56ce88f7a127" + integrity sha512-A0zjq+QN/O0Kpe30hA1GidzyFjatVvrpIvWLxD+xv67Vt91TWWgco9IvrJBkeyHm1trGaFS/FSGqPlhyeZRm0g== + dependencies: + "@types/prop-types" "*" + "@types/scheduler" "*" + csstype "^3.0.2" + +"@types/scheduler@*": + version "0.16.3" + resolved "https://registry.yarnpkg.com/@types/scheduler/-/scheduler-0.16.3.tgz#cef09e3ec9af1d63d2a6cc5b383a737e24e6dcf5" + integrity sha512-5cJ8CB4yAx7BH1oMvdU0Jh9lrEXyPkar6F9G/ERswkCuvP4KQZfZkSjcMbAICCpQTN4OuZn8tz0HiKv9TGZgrQ== + +"@types/semver@^7.3.12": + version "7.5.0" + resolved "https://registry.yarnpkg.com/@types/semver/-/semver-7.5.0.tgz#591c1ce3a702c45ee15f47a42ade72c2fd78978a" + integrity sha512-G8hZ6XJiHnuhQKR7ZmysCeJWE08o8T0AXtk5darsCaTVsYZhhgUrq53jizaR2FvsoeCwJhlmwTjkXBY5Pn/ZHw== + +"@types/triple-beam@^1.3.2": + version "1.3.2" + resolved "https://registry.yarnpkg.com/@types/triple-beam/-/triple-beam-1.3.2.tgz#38ecb64f01aa0d02b7c8f4222d7c38af6316fef8" + integrity sha512-txGIh+0eDFzKGC25zORnswy+br1Ha7hj5cMVwKIU7+s0U2AxxJru/jZSMU6OC9MJWP6+pc/hc6ZjyZShpsyY2g== + +"@types/tz-offset@*": + version "0.0.0" + resolved "https://registry.yarnpkg.com/@types/tz-offset/-/tz-offset-0.0.0.tgz#d58f1cebd794148d245420f8f0660305d320e565" + integrity sha512-XLD/llTSB6EBe3thkN+/I0L+yCTB6sjrcVovQdx2Cnl6N6bTzHmwe/J8mWnsXFgxLrj/emzdv8IR4evKYG2qxQ== + +"@typescript-eslint/eslint-plugin@^5.38.1": + version "5.61.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.61.0.tgz#a1a5290cf33863b4db3fb79350b3c5275a7b1223" + integrity sha512-A5l/eUAug103qtkwccSCxn8ZRwT+7RXWkFECdA4Cvl1dOlDUgTpAOfSEElZn2uSUxhdDpnCdetrf0jvU4qrL+g== + dependencies: + "@eslint-community/regexpp" "^4.4.0" + "@typescript-eslint/scope-manager" "5.61.0" + "@typescript-eslint/type-utils" "5.61.0" + "@typescript-eslint/utils" "5.61.0" + debug "^4.3.4" + graphemer "^1.4.0" + ignore "^5.2.0" + natural-compare-lite "^1.4.0" + semver "^7.3.7" + tsutils "^3.21.0" + +"@typescript-eslint/parser@^5.38.1": + version "5.61.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-5.61.0.tgz#7fbe3e2951904bb843f8932ebedd6e0635bffb70" + integrity sha512-yGr4Sgyh8uO6fSi9hw3jAFXNBHbCtKKFMdX2IkT3ZqpKmtAq3lHS4ixB/COFuAIJpwl9/AqF7j72ZDWYKmIfvg== + dependencies: + "@typescript-eslint/scope-manager" "5.61.0" + "@typescript-eslint/types" "5.61.0" + "@typescript-eslint/typescript-estree" "5.61.0" + debug "^4.3.4" + +"@typescript-eslint/scope-manager@5.61.0": + version "5.61.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-5.61.0.tgz#b670006d069c9abe6415c41f754b1b5d949ef2b2" + integrity sha512-W8VoMjoSg7f7nqAROEmTt6LoBpn81AegP7uKhhW5KzYlehs8VV0ZW0fIDVbcZRcaP3aPSW+JZFua+ysQN+m/Nw== + dependencies: + "@typescript-eslint/types" "5.61.0" + "@typescript-eslint/visitor-keys" "5.61.0" + +"@typescript-eslint/type-utils@5.61.0": + version "5.61.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/type-utils/-/type-utils-5.61.0.tgz#e90799eb2045c4435ea8378cb31cd8a9fddca47a" + integrity sha512-kk8u//r+oVK2Aj3ph/26XdH0pbAkC2RiSjUYhKD+PExemG4XSjpGFeyZ/QM8lBOa7O8aGOU+/yEbMJgQv/DnCg== + dependencies: + "@typescript-eslint/typescript-estree" "5.61.0" + "@typescript-eslint/utils" "5.61.0" + debug "^4.3.4" + tsutils "^3.21.0" + +"@typescript-eslint/types@5.61.0": + version "5.61.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-5.61.0.tgz#e99ff11b5792d791554abab0f0370936d8ca50c0" + integrity sha512-ldyueo58KjngXpzloHUog/h9REmHl59G1b3a5Sng1GfBo14BkS3ZbMEb3693gnP1k//97lh7bKsp6/V/0v1veQ== + +"@typescript-eslint/typescript-estree@5.61.0": + version "5.61.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-5.61.0.tgz#4c7caca84ce95bb41aa585d46a764bcc050b92f3" + integrity sha512-Fud90PxONnnLZ36oR5ClJBLTLfU4pIWBmnvGwTbEa2cXIqj70AEDEmOmpkFComjBZ/037ueKrOdHuYmSFVD7Rw== + dependencies: + "@typescript-eslint/types" "5.61.0" + "@typescript-eslint/visitor-keys" "5.61.0" + debug "^4.3.4" + globby "^11.1.0" + is-glob "^4.0.3" + semver "^7.3.7" + tsutils "^3.21.0" + +"@typescript-eslint/utils@5.61.0": + version "5.61.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-5.61.0.tgz#5064838a53e91c754fffbddd306adcca3fe0af36" + integrity sha512-mV6O+6VgQmVE6+xzlA91xifndPW9ElFW8vbSF0xCT/czPXVhwDewKila1jOyRwa9AE19zKnrr7Cg5S3pJVrTWQ== + dependencies: + "@eslint-community/eslint-utils" "^4.2.0" + "@types/json-schema" "^7.0.9" + "@types/semver" "^7.3.12" + "@typescript-eslint/scope-manager" "5.61.0" + "@typescript-eslint/types" "5.61.0" + "@typescript-eslint/typescript-estree" "5.61.0" + eslint-scope "^5.1.1" + semver "^7.3.7" + +"@typescript-eslint/visitor-keys@5.61.0": + version "5.61.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-5.61.0.tgz#c79414fa42158fd23bd2bb70952dc5cdbb298140" + integrity sha512-50XQ5VdbWrX06mQXhy93WywSFZZGsv3EOjq+lqp6WC2t+j3mb6A9xYVdrRxafvK88vg9k9u+CT4l6D8PEatjKg== + dependencies: + "@typescript-eslint/types" "5.61.0" + eslint-visitor-keys "^3.3.0" + +acorn-jsx@^5.3.2: + version "5.3.2" + resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.3.2.tgz#7ed5bb55908b3b2f1bc55c6af1653bada7f07937" + integrity sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ== + +acorn-node@^1.3.0: + version "1.8.2" + resolved "https://registry.yarnpkg.com/acorn-node/-/acorn-node-1.8.2.tgz#114c95d64539e53dede23de8b9d96df7c7ae2af8" + integrity sha512-8mt+fslDufLYntIoPAaIMUe/lrbrehIiwmR3t2k9LljIzoigEPF27eLk2hy8zSGzmR/ogr7zbRKINMo1u0yh5A== + dependencies: + acorn "^7.0.0" + acorn-walk "^7.0.0" + xtend "^4.0.2" + +acorn-walk@^7.0.0: + version "7.2.0" + resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-7.2.0.tgz#0de889a601203909b0fbe07b8938dc21d2e967bc" + integrity sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA== + +acorn@^7.0.0: + version "7.4.1" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-7.4.1.tgz#feaed255973d2e77555b83dbc08851a6c63520fa" + integrity sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A== + +acorn@^8.9.0: + version "8.10.0" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.10.0.tgz#8be5b3907a67221a81ab23c7889c4c5526b62ec5" + integrity sha512-F0SAmZ8iUtS//m8DmCTA0jlh6TDKkHQyK6xc6V4KDTyZKA9dnvX9/3sRTVQrWm79glUAZbnmmNcdYwUIHWVybw== + +ajv@^6.10.0, ajv@^6.12.4: + version "6.12.6" + resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.6.tgz#baf5a62e802b07d977034586f8c3baf5adf26df4" + integrity sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g== + dependencies: + fast-deep-equal "^3.1.1" + fast-json-stable-stringify "^2.0.0" + json-schema-traverse "^0.4.1" + uri-js "^4.2.2" + +amdefine@>=0.0.4: + version "1.0.1" + resolved "https://registry.yarnpkg.com/amdefine/-/amdefine-1.0.1.tgz#4a5282ac164729e93619bcfd3ad151f817ce91f5" + integrity sha512-S2Hw0TtNkMJhIabBwIojKL9YHO5T0n5eNqWJ7Lrlel/zDbftQpxpapi8tZs3X1HWa+u+QeydGmzzNU0m09+Rcg== + +angular-animate@1.7.8: + version "1.7.8" + resolved "https://registry.yarnpkg.com/angular-animate/-/angular-animate-1.7.8.tgz#c95f237efe7ecfe0e6003adb5e2c7ef0e5a2b9d4" + integrity sha512-bINtzizq7TbJzfVrDpwLfTxVl0Qd7fRNWFb5jKYI1vaFZobQNX/QONXlLow6ySsDbZ6eLECycB7mvWtfh1YYaw== + +angular-material@1.1.18: + version "1.1.18" + resolved "https://registry.yarnpkg.com/angular-material/-/angular-material-1.1.18.tgz#91976b9df06a66e6627c6bf4ce074c10daa3d998" + integrity sha512-a+9Jzg4WF10G3vMbLCp5LSbmroeEbEYvzQoYVpWcXIgOUmnuOjxsNDPL73uNWOE97wOtEcFWxKF2wcP8zgixbA== + +ansi-regex@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.1.tgz#082cb2c89c9fe8659a311a53bd6a4dc5301db304" + integrity sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ== + +ansi-styles@^3.2.1: + version "3.2.1" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d" + integrity sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA== + dependencies: + color-convert "^1.9.0" + +ansi-styles@^4.1.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.3.0.tgz#edd803628ae71c04c85ae7a0906edad34b648937" + integrity sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg== + dependencies: + color-convert "^2.0.1" + +any-promise@^1.0.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/any-promise/-/any-promise-1.3.0.tgz#abc6afeedcea52e809cdc0376aed3ce39635d17f" + integrity sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A== + +argparse@^1.0.7: + version "1.0.10" + resolved "https://registry.yarnpkg.com/argparse/-/argparse-1.0.10.tgz#bcd6791ea5ae09725e17e5ad988134cd40b3d911" + integrity sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg== + dependencies: + sprintf-js "~1.0.2" + +argparse@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/argparse/-/argparse-2.0.1.tgz#246f50f3ca78a3240f6c997e8a9bd1eac49e4b38" + integrity sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q== + +array-buffer-byte-length@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/array-buffer-byte-length/-/array-buffer-byte-length-1.0.0.tgz#fabe8bc193fea865f317fe7807085ee0dee5aead" + integrity sha512-LPuwb2P+NrQw3XhxGc36+XSvuBPopovXYTR9Ew++Du9Yb/bx5AzBfrIsBoj0EZUifjQU+sHL21sseZ3jerWO/A== + dependencies: + call-bind "^1.0.2" + is-array-buffer "^3.0.1" + +array-from@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/array-from/-/array-from-2.1.1.tgz#cfe9d8c26628b9dc5aecc62a9f5d8f1f352c1195" + integrity sha512-GQTc6Uupx1FCavi5mPzBvVT7nEOeWMmUA9P95wpfpW1XwMSKs+KaymD5C2Up7KAUKg/mYwbsUYzdZWcoajlNZg== + +array-includes@^3.1.6: + version "3.1.6" + resolved "https://registry.yarnpkg.com/array-includes/-/array-includes-3.1.6.tgz#9e9e720e194f198266ba9e18c29e6a9b0e4b225f" + integrity sha512-sgTbLvL6cNnw24FnbaDyjmvddQ2ML8arZsgaJhoABMoplz/4QRhtrYS+alr1BUM1Bwp6dhx8vVCBSLG+StwOFw== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.4" + es-abstract "^1.20.4" + get-intrinsic "^1.1.3" + is-string "^1.0.7" + +array-union@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/array-union/-/array-union-2.1.0.tgz#b798420adbeb1de828d84acd8a2e23d3efe85e8d" + integrity sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw== + +array.prototype.flat@^1.3.1: + version "1.3.1" + resolved "https://registry.yarnpkg.com/array.prototype.flat/-/array.prototype.flat-1.3.1.tgz#ffc6576a7ca3efc2f46a143b9d1dda9b4b3cf5e2" + integrity sha512-roTU0KWIOmJ4DRLmwKd19Otg0/mT3qPNt0Qb3GWW8iObuZXxrjB/pzn0R3hqpRSWg4HCwqx+0vwOnWnvlOyeIA== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.4" + es-abstract "^1.20.4" + es-shim-unscopables "^1.0.0" + +array.prototype.flatmap@^1.3.1: + version "1.3.1" + resolved "https://registry.yarnpkg.com/array.prototype.flatmap/-/array.prototype.flatmap-1.3.1.tgz#1aae7903c2100433cb8261cd4ed310aab5c4a183" + integrity sha512-8UGn9O1FDVvMNB0UlLv4voxRMze7+FpHyF5mSMRjWHUMlpoDViniy05870VlxhfgTnLbpuwTzvD76MTtWxB/mQ== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.4" + es-abstract "^1.20.4" + es-shim-unscopables "^1.0.0" + +array.prototype.tosorted@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/array.prototype.tosorted/-/array.prototype.tosorted-1.1.1.tgz#ccf44738aa2b5ac56578ffda97c03fd3e23dd532" + integrity sha512-pZYPXPRl2PqWcsUs6LOMn+1f1532nEoPTYowBtqLwAW+W8vSVhkIGnmOX1t/UQjD6YGI0vcD2B1U7ZFGQH9jnQ== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.4" + es-abstract "^1.20.4" + es-shim-unscopables "^1.0.0" + get-intrinsic "^1.1.3" + +ast-transform@0.0.0: + version "0.0.0" + resolved "https://registry.yarnpkg.com/ast-transform/-/ast-transform-0.0.0.tgz#74944058887d8283e189d954600947bc98fe0062" + integrity sha512-e/JfLiSoakfmL4wmTGPjv0HpTICVmxwXgYOB8x+mzozHL8v+dSfCbrJ8J8hJ0YBP0XcYu1aLZ6b/3TnxNK3P2A== + dependencies: + escodegen "~1.2.0" + esprima "~1.0.4" + through "~2.3.4" + +ast-types@^0.7.0: + version "0.7.8" + resolved "https://registry.yarnpkg.com/ast-types/-/ast-types-0.7.8.tgz#902d2e0d60d071bdcd46dc115e1809ed11c138a9" + integrity sha512-RIOpVnVlltB6PcBJ5BMLx+H+6JJ/zjDGU0t7f0L6c2M1dqcK92VQopLBlPQ9R80AVXelfqYgjcPLtHtDbNFg0Q== + +async@^3.2.3: + version "3.2.4" + resolved "https://registry.yarnpkg.com/async/-/async-3.2.4.tgz#2d22e00f8cddeb5fde5dd33522b56d1cf569a81c" + integrity sha512-iAB+JbDEGXhyIUavoDl9WP/Jj106Kz9DEn1DPgYw5ruDn0e3Wgi3sKFm55sASdGBNOQB8F59d9qQ7deqrHA8wQ== + +available-typed-arrays@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz#92f95616501069d07d10edb2fc37d3e1c65123b7" + integrity sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw== + +axios@^0.21.1: + version "0.21.4" + resolved "https://registry.yarnpkg.com/axios/-/axios-0.21.4.tgz#c67b90dc0568e5c1cf2b0b858c43ba28e2eda575" + integrity sha512-ut5vewkiu8jjGBdqpM44XxjuCjq9LAKeHVmoVfHVzy8eHgxxq8SbAVQNovDA8mVi05kP0Ea/n/UzcSHcTJQfNg== + dependencies: + follow-redirects "^1.14.0" + +balanced-match@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee" + integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw== + +base64-js@1.3.1: + version "1.3.1" + resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.3.1.tgz#58ece8cb75dd07e71ed08c736abc5fac4dbf8df1" + integrity sha512-mLQ4i2QO1ytvGWFWmcngKO//JXAQueZvwEKtjgQFM4jIK0kU+ytMfplL8j+n5mspOfjHwoAg+9yhb7BwAHm36g== + +base64-js@^1.1.2, base64-js@^1.3.0: + version "1.5.1" + resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.5.1.tgz#1b1b440160a5bf7ad40b650f095963481903930a" + integrity sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA== + +brace-expansion@^1.1.7: + version "1.1.11" + resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" + integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA== + dependencies: + balanced-match "^1.0.0" + concat-map "0.0.1" + +braces@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.2.tgz#3454e1a462ee8d599e236df336cd9ea4f8afe107" + integrity sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A== + dependencies: + fill-range "^7.0.1" + +brfs@^2.0.0, brfs@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/brfs/-/brfs-2.0.2.tgz#44237878fa82aa479ce4f5fe2c1796ec69f07845" + integrity sha512-IrFjVtwu4eTJZyu8w/V2gxU7iLTtcHih67sgEdzrhjLBMHp2uYefUBfdM4k2UvcuWMgV7PQDZHSLeNWnLFKWVQ== + dependencies: + quote-stream "^1.0.1" + resolve "^1.1.5" + static-module "^3.0.2" + through2 "^2.0.0" + +brotli@^1.2.0: + version "1.3.3" + resolved "https://registry.yarnpkg.com/brotli/-/brotli-1.3.3.tgz#7365d8cc00f12cf765d2b2c898716bcf4b604d48" + integrity sha512-oTKjJdShmDuGW94SyyaoQvAjf30dZaHnjJ8uAF+u2/vGJkJbJPJAT1gDiOJP5v1Zb6f9KEyW/1HpuaWIXtGHPg== + dependencies: + base64-js "^1.1.2" + +browser-resolve@^1.8.1: + version "1.11.3" + resolved "https://registry.yarnpkg.com/browser-resolve/-/browser-resolve-1.11.3.tgz#9b7cbb3d0f510e4cb86bdbd796124d28b5890af6" + integrity sha512-exDi1BYWB/6raKHmDTCicQfTkqwN5fioMFV4j8BsfMU4R2DK/QfZfK7kOVkmWCNANf0snkBzqGqAJBao9gZMdQ== + dependencies: + resolve "1.1.7" + +browserify-optional@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/browserify-optional/-/browserify-optional-1.0.1.tgz#1e13722cfde0d85f121676c2a72ced533a018869" + integrity sha512-VrhjbZ+Ba5mDiSYEuPelekQMfTbhcA2DhLk2VQWqdcCROWeFqlTcXZ7yfRkXCIl8E+g4gINJYJiRB7WEtfomAQ== + dependencies: + ast-transform "0.0.0" + ast-types "^0.7.0" + browser-resolve "^1.8.1" + +buffer-equal@0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/buffer-equal/-/buffer-equal-0.0.1.tgz#91bc74b11ea405bc916bc6aa908faafa5b4aac4b" + integrity sha512-RgSV6InVQ9ODPdLWJ5UAqBqJBOg370Nz6ZQtRzpt6nUjc8v0St97uJ4PYC6NztqIScrAXafKM3mZPMygSe1ggA== + +buffer-from@^1.0.0: + version "1.1.2" + resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.2.tgz#2b146a6fd72e80b4f55d255f35ed59a3a9a41bd5" + integrity sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ== + +builtin-modules@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/builtin-modules/-/builtin-modules-1.1.1.tgz#270f076c5a72c02f5b65a47df94c5fe3a278892f" + integrity sha512-wxXCdllwGhI2kCC0MnvTGYTMvnVZTvqgypkiTI8Pa5tcz2i6VqsqwYGgqwXji+4RgCzms6EajE4IxiUH6HH8nQ== + +call-bind@^1.0.0, call-bind@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/call-bind/-/call-bind-1.0.2.tgz#b1d4e89e688119c3c9a903ad30abb2f6a919be3c" + integrity sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA== + dependencies: + function-bind "^1.1.1" + get-intrinsic "^1.0.2" + +callsites@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/callsites/-/callsites-3.1.0.tgz#b3630abd8943432f54b3f0519238e33cd7df2f73" + integrity sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ== + +chalk@^2.0.0, chalk@^2.3.0: + version "2.4.2" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424" + integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ== + dependencies: + ansi-styles "^3.2.1" + escape-string-regexp "^1.0.5" + supports-color "^5.3.0" + +chalk@^4.0.0: + version "4.1.2" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.2.tgz#aac4e2b7734a740867aeb16bf02aad556a1e7a01" + integrity sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA== + dependencies: + ansi-styles "^4.1.0" + supports-color "^7.1.0" + +charenc@0.0.2: + version "0.0.2" + resolved "https://registry.yarnpkg.com/charenc/-/charenc-0.0.2.tgz#c0a1d2f3a7092e03774bfa83f14c0fc5790a8667" + integrity sha512-yrLQ/yVUFXkzg7EDQsPieE/53+0RlaWTs+wBrvW36cyilJ2SaDWfl4Yj7MtLTXleV9uEKefbAGUPv2/iWSooRA== + +classnames@^2.2.5: + version "2.3.2" + resolved "https://registry.yarnpkg.com/classnames/-/classnames-2.3.2.tgz#351d813bf0137fcc6a76a16b88208d2560a0d924" + integrity sha512-CSbhY4cFEJRe6/GQzIk5qXZ4Jeg5pcsP7b5peFSDpffpe1cqjASH/n9UTjBwOp6XpMSTwQ8Za2K5V02ueA7Tmw== + +clone@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/clone/-/clone-1.0.4.tgz#da309cc263df15994c688ca902179ca3c7cd7c7e" + integrity sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg== + +codemirror@^5.18.2: + version "5.65.13" + resolved "https://registry.yarnpkg.com/codemirror/-/codemirror-5.65.13.tgz#c098a6f409db8b5a7c5722788bd9fa3bb2367f2e" + integrity sha512-SVWEzKXmbHmTQQWaz03Shrh4nybG0wXx2MEu3FO4ezbPW8IbnZEd5iGHGEffSUaitKYa3i+pHpBsSvw8sPHtzg== + +color-convert@^1.9.0, color-convert@^1.9.3: + version "1.9.3" + resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8" + integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg== + dependencies: + color-name "1.1.3" + +color-convert@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-2.0.1.tgz#72d3a68d598c9bdb3af2ad1e84f21d896abd4de3" + integrity sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ== + dependencies: + color-name "~1.1.4" + +color-name@1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25" + integrity sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw== + +color-name@^1.0.0, color-name@~1.1.4: + version "1.1.4" + resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" + integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== + +color-string@^1.6.0: + version "1.9.1" + resolved "https://registry.yarnpkg.com/color-string/-/color-string-1.9.1.tgz#4467f9146f036f855b764dfb5bf8582bf342c7a4" + integrity sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg== + dependencies: + color-name "^1.0.0" + simple-swizzle "^0.2.2" + +color@^3.1.3: + version "3.2.1" + resolved "https://registry.yarnpkg.com/color/-/color-3.2.1.tgz#3544dc198caf4490c3ecc9a790b54fe9ff45e164" + integrity sha512-aBl7dZI9ENN6fUGC7mWpMTPNHmWUSNan9tuWN6ahh5ZLNk9baLJOnSMlrQkHcrfFgz2/RigjUVAjdx36VcemKA== + dependencies: + color-convert "^1.9.3" + color-string "^1.6.0" + +colorspace@1.1.x: + version "1.1.4" + resolved "https://registry.yarnpkg.com/colorspace/-/colorspace-1.1.4.tgz#8d442d1186152f60453bf8070cd66eb364e59243" + integrity sha512-BgvKJiuVu1igBUF2kEjRCZXol6wiiGbY5ipL/oVPwm0BL9sIpMIzM8IK7vwuxIIzOXMV3Ey5w+vxhm0rR/TN8w== + dependencies: + color "^3.1.3" + text-hex "1.0.x" + +commander@^2.12.1, commander@^2.15.1: + version "2.20.3" + resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33" + integrity sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ== + +concat-map@0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" + integrity sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg== + +concat-stream@~1.6.0: + version "1.6.2" + resolved "https://registry.yarnpkg.com/concat-stream/-/concat-stream-1.6.2.tgz#904bdf194cd3122fc675c77fc4ac3d4ff0fd1a34" + integrity sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw== + dependencies: + buffer-from "^1.0.0" + inherits "^2.0.3" + readable-stream "^2.2.2" + typedarray "^0.0.6" + +convert-source-map@^1.5.1: + version "1.9.0" + resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.9.0.tgz#7faae62353fb4213366d0ca98358d22e8368b05f" + integrity sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A== + +cookie@^0.4.0: + version "0.4.2" + resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.4.2.tgz#0e41f24de5ecf317947c82fc789e06a884824432" + integrity sha512-aSWTXFzaKWkvHO1Ny/s+ePFpvKsPnjc551iI41v3ny/ow6tBG5Vd+FuqGNhh1LxOmVzOlGUriIlOaokOvhaStA== + +core-util-is@~1.0.0: + version "1.0.3" + resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.3.tgz#a6042d3634c2b27e9328f837b965fac83808db85" + integrity sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ== + +create-react-class@^15.5.1: + version "15.7.0" + resolved "https://registry.yarnpkg.com/create-react-class/-/create-react-class-15.7.0.tgz#7499d7ca2e69bb51d13faf59bd04f0c65a1d6c1e" + integrity sha512-QZv4sFWG9S5RUvkTYWbflxeZX+JG7Cz0Tn33rQBJ+WFQTqTfUTjMjiv9tnfXazjsO5r0KhPs+AqCjyrQX6h2ng== + dependencies: + loose-envify "^1.3.1" + object-assign "^4.1.1" + +cross-spawn@^7.0.2: + version "7.0.3" + resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.3.tgz#f73a85b9d5d41d045551c177e2882d4ac85728a6" + integrity sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w== + dependencies: + path-key "^3.1.0" + shebang-command "^2.0.0" + which "^2.0.1" + +crypt@0.0.2: + version "0.0.2" + resolved "https://registry.yarnpkg.com/crypt/-/crypt-0.0.2.tgz#88d7ff7ec0dfb86f713dc87bbb42d044d3e6c41b" + integrity sha512-mCxBlsHFYh9C+HVpiEacem8FEBnMXgU9gy4zmNC+SXAZNB/1idgp/aulFJ4FgCi7GPEVbfyng092GqL2k2rmow== + +crypto-js@^4.0.0: + version "4.1.1" + resolved "https://registry.yarnpkg.com/crypto-js/-/crypto-js-4.1.1.tgz#9e485bcf03521041bd85844786b83fb7619736cf" + integrity sha512-o2JlM7ydqd3Qk9CA0L4NL6mTzU2sdx96a+oOfPu8Mkl/PK51vSyoi8/rQ8NknZtk44vq15lmhAj9CIAGwgeWKw== + +csstype@^3.0.2: + version "3.1.2" + resolved "https://registry.yarnpkg.com/csstype/-/csstype-3.1.2.tgz#1d4bf9d572f11c14031f0436e1c10bc1f571f50b" + integrity sha512-I7K1Uu0MBPzaFKg4nI5Q7Vs2t+3gWWW648spaF+Rg7pI9ds18Ugn+lvg4SHczUdKlHI5LWBXyqfS8+DufyBsgQ== + +d@1, d@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/d/-/d-1.0.1.tgz#8698095372d58dbee346ffd0c7093f99f8f9eb5a" + integrity sha512-m62ShEObQ39CfralilEQRjH6oAMtNCV1xJyEx5LpRYUVN+EviphDgUc/F3hnYbADmkiNs67Y+3ylmlG7Lnu+FA== + dependencies: + es5-ext "^0.10.50" + type "^1.0.1" + +dash-ast@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/dash-ast/-/dash-ast-2.0.1.tgz#8d0fd2e601c59bf874cc22877ee7dd889f54dee8" + integrity sha512-5TXltWJGc+RdnabUGzhRae1TRq6m4gr+3K2wQX0is5/F2yS6MJXJvLyI3ErAnsAXuJoGqvfVD5icRgim07DrxQ== + +debug@^3.2.6, debug@^3.2.7: + version "3.2.7" + resolved "https://registry.yarnpkg.com/debug/-/debug-3.2.7.tgz#72580b7e9145fb39b6676f9c5e5fb100b934179a" + integrity sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ== + dependencies: + ms "^2.1.1" + +debug@^4.1.1, debug@^4.3.2, debug@^4.3.4: + version "4.3.4" + resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.4.tgz#1319f6579357f2338d3337d2cdd4914bb5dcc865" + integrity sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ== + dependencies: + ms "2.1.2" + +deep-equal@^1.0.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/deep-equal/-/deep-equal-1.1.1.tgz#b5c98c942ceffaf7cb051e24e1434a25a2e6076a" + integrity sha512-yd9c5AdiqVcR+JjcwUQb9DkhJc8ngNr0MahEBGvDiJw8puWab2yZlh+nkasOnZP+EGTAP6rRp2JzJhJZzvNF8g== + dependencies: + is-arguments "^1.0.4" + is-date-object "^1.0.1" + is-regex "^1.0.4" + object-is "^1.0.1" + object-keys "^1.1.1" + regexp.prototype.flags "^1.2.0" + +deep-is@^0.1.3, deep-is@~0.1.3: + version "0.1.4" + resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.4.tgz#a6f2dce612fadd2ef1f519b73551f17e85199831" + integrity sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ== + +define-properties@^1.1.3, define-properties@^1.1.4, define-properties@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.2.0.tgz#52988570670c9eacedd8064f4a990f2405849bd5" + integrity sha512-xvqAVKGfT1+UAvPwKTVw/njhdQ8ZhXK4lI0bCIuCMrp2up9nPnaDftrLtmpTazqd1o+UY4zgzU+avtMbDP+ldA== + dependencies: + has-property-descriptors "^1.0.0" + object-keys "^1.1.1" + +dfa@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/dfa/-/dfa-1.2.0.tgz#96ac3204e2d29c49ea5b57af8d92c2ae12790657" + integrity sha512-ED3jP8saaweFTjeGX8HQPjeC1YYyZs98jGNZx6IiBvxW7JG5v492kamAQB3m2wop07CvU/RQmzcKr6bgcC5D/Q== + +diff@^4.0.1: + version "4.0.2" + resolved "https://registry.yarnpkg.com/diff/-/diff-4.0.2.tgz#60f3aecb89d5fae520c11aa19efc2bb982aade7d" + integrity sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A== + +dir-glob@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/dir-glob/-/dir-glob-3.0.1.tgz#56dbf73d992a4a93ba1584f4534063fd2e41717f" + integrity sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA== + dependencies: + path-type "^4.0.0" + +doctrine@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-2.1.0.tgz#5cd01fc101621b42c4cd7f5d1a66243716d3f39d" + integrity sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw== + dependencies: + esutils "^2.0.2" + +doctrine@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-3.0.0.tgz#addebead72a6574db783639dc87a121773973961" + integrity sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w== + dependencies: + esutils "^2.0.2" + +duplexer2@~0.1.4: + version "0.1.4" + resolved "https://registry.yarnpkg.com/duplexer2/-/duplexer2-0.1.4.tgz#8b12dab878c0d69e3e7891051662a32fc6bddcc1" + integrity sha512-asLFVfWWtJ90ZyOUHMqk7/S2w2guQKxUI2itj3d92ADHhxUSbCMGi1f1cBcJ7xM1To+pE/Khbwo1yuNbMEPKeA== + dependencies: + readable-stream "^2.0.2" + +enabled@2.0.x: + version "2.0.0" + resolved "https://registry.yarnpkg.com/enabled/-/enabled-2.0.0.tgz#f9dd92ec2d6f4bbc0d5d1e64e21d61cd4665e7c2" + integrity sha512-AKrN98kuwOzMIdAizXGI86UFBoo26CL21UM763y1h/GMSJ4/OHU9k2YlsmBpyScFo/wbLzWQJBMCW4+IO3/+OQ== + +es-abstract@^1.19.0, es-abstract@^1.20.4: + version "1.21.2" + resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.21.2.tgz#a56b9695322c8a185dc25975aa3b8ec31d0e7eff" + integrity sha512-y/B5POM2iBnIxCiernH1G7rC9qQoM77lLIMQLuob0zhp8C56Po81+2Nj0WFKnd0pNReDTnkYryc+zhOzpEIROg== + dependencies: + array-buffer-byte-length "^1.0.0" + available-typed-arrays "^1.0.5" + call-bind "^1.0.2" + es-set-tostringtag "^2.0.1" + es-to-primitive "^1.2.1" + function.prototype.name "^1.1.5" + get-intrinsic "^1.2.0" + get-symbol-description "^1.0.0" + globalthis "^1.0.3" + gopd "^1.0.1" + has "^1.0.3" + has-property-descriptors "^1.0.0" + has-proto "^1.0.1" + has-symbols "^1.0.3" + internal-slot "^1.0.5" + is-array-buffer "^3.0.2" + is-callable "^1.2.7" + is-negative-zero "^2.0.2" + is-regex "^1.1.4" + is-shared-array-buffer "^1.0.2" + is-string "^1.0.7" + is-typed-array "^1.1.10" + is-weakref "^1.0.2" + object-inspect "^1.12.3" + object-keys "^1.1.1" + object.assign "^4.1.4" + regexp.prototype.flags "^1.4.3" + safe-regex-test "^1.0.0" + string.prototype.trim "^1.2.7" + string.prototype.trimend "^1.0.6" + string.prototype.trimstart "^1.0.6" + typed-array-length "^1.0.4" + unbox-primitive "^1.0.2" + which-typed-array "^1.1.9" + +es-set-tostringtag@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/es-set-tostringtag/-/es-set-tostringtag-2.0.1.tgz#338d502f6f674301d710b80c8592de8a15f09cd8" + integrity sha512-g3OMbtlwY3QewlqAiMLI47KywjWZoEytKr8pf6iTC8uJq5bIAH52Z9pnQ8pVL6whrCto53JZDuUIsifGeLorTg== + dependencies: + get-intrinsic "^1.1.3" + has "^1.0.3" + has-tostringtag "^1.0.0" + +es-shim-unscopables@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/es-shim-unscopables/-/es-shim-unscopables-1.0.0.tgz#702e632193201e3edf8713635d083d378e510241" + integrity sha512-Jm6GPcCdC30eMLbZ2x8z2WuRwAws3zTBBKuusffYVUrNj/GVSUAZ+xKMaUpfNDR5IbyNA5LJbaecoUVbmUcB1w== + dependencies: + has "^1.0.3" + +es-to-primitive@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/es-to-primitive/-/es-to-primitive-1.2.1.tgz#e55cd4c9cdc188bcefb03b366c736323fc5c898a" + integrity sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA== + dependencies: + is-callable "^1.1.4" + is-date-object "^1.0.1" + is-symbol "^1.0.2" + +es5-ext@^0.10.35, es5-ext@^0.10.50, es5-ext@^0.10.62, es5-ext@~0.10.14: + version "0.10.62" + resolved "https://registry.yarnpkg.com/es5-ext/-/es5-ext-0.10.62.tgz#5e6adc19a6da524bf3d1e02bbc8960e5eb49a9a5" + integrity sha512-BHLqn0klhEpnOKSrzn/Xsz2UIW8j+cGmo9JLzr8BiUapV8hPL9+FliFqjwr9ngW7jWdnxv6eO+/LqyhJVqgrjA== + dependencies: + es6-iterator "^2.0.3" + es6-symbol "^3.1.3" + next-tick "^1.1.0" + +es6-iterator@^2.0.3, es6-iterator@~2.0.1, es6-iterator@~2.0.3: + version "2.0.3" + resolved "https://registry.yarnpkg.com/es6-iterator/-/es6-iterator-2.0.3.tgz#a7de889141a05a94b0854403b2d0a0fbfa98f3b7" + integrity sha512-zw4SRzoUkd+cl+ZoE15A9o1oQd920Bb0iOJMQkQhl3jNc03YqVjAhG7scf9C5KWRU/R13Orf588uCC6525o02g== + dependencies: + d "1" + es5-ext "^0.10.35" + es6-symbol "^3.1.1" + +es6-map@^0.1.5: + version "0.1.5" + resolved "https://registry.yarnpkg.com/es6-map/-/es6-map-0.1.5.tgz#9136e0503dcc06a301690f0bb14ff4e364e949f0" + integrity sha512-mz3UqCh0uPCIqsw1SSAkB/p0rOzF/M0V++vyN7JqlPtSW/VsYgQBvVvqMLmfBuyMzTpLnNqi6JmcSizs4jy19A== + dependencies: + d "1" + es5-ext "~0.10.14" + es6-iterator "~2.0.1" + es6-set "~0.1.5" + es6-symbol "~3.1.1" + event-emitter "~0.3.5" + +es6-set@^0.1.5, es6-set@~0.1.5: + version "0.1.6" + resolved "https://registry.yarnpkg.com/es6-set/-/es6-set-0.1.6.tgz#5669e3b2aa01d61a50ba79964f733673574983b8" + integrity sha512-TE3LgGLDIBX332jq3ypv6bcOpkLO0AslAQo7p2VqX/1N46YNsvIWgvjojjSEnWEGWMhr1qUbYeTSir5J6mFHOw== + dependencies: + d "^1.0.1" + es5-ext "^0.10.62" + es6-iterator "~2.0.3" + es6-symbol "^3.1.3" + event-emitter "^0.3.5" + type "^2.7.2" + +es6-symbol@^3.1.1, es6-symbol@^3.1.3, es6-symbol@~3.1.1: + version "3.1.3" + resolved "https://registry.yarnpkg.com/es6-symbol/-/es6-symbol-3.1.3.tgz#bad5d3c1bcdac28269f4cb331e431c78ac705d18" + integrity sha512-NJ6Yn3FuDinBaBRWl/q5X/s4koRHBrgKAu+yGI6JCBeiu3qrcbJhwT2GeR/EXVfylRk8dpQVJoLEFhK+Mu31NA== + dependencies: + d "^1.0.1" + ext "^1.1.2" + +escape-string-regexp@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" + integrity sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg== + +escape-string-regexp@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz#14ba83a5d373e3d311e5afca29cf5bfad965bf34" + integrity sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA== + +escodegen@^1.11.1: + version "1.14.3" + resolved "https://registry.yarnpkg.com/escodegen/-/escodegen-1.14.3.tgz#4e7b81fba61581dc97582ed78cab7f0e8d63f503" + integrity sha512-qFcX0XJkdg+PB3xjZZG/wKSuT1PnQWx57+TVSjIMmILd2yC/6ByYElPwJnslDsuWuSAp4AwJGumarAAmJch5Kw== + dependencies: + esprima "^4.0.1" + estraverse "^4.2.0" + esutils "^2.0.2" + optionator "^0.8.1" + optionalDependencies: + source-map "~0.6.1" + +escodegen@~1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/escodegen/-/escodegen-1.2.0.tgz#09de7967791cc958b7f89a2ddb6d23451af327e1" + integrity sha512-yLy3Cc+zAC0WSmoT2fig3J87TpQ8UaZGx8ahCAs9FL8qNbyV7CVyPKS74DG4bsHiL5ew9sxdYx131OkBQMFnvA== + dependencies: + esprima "~1.0.4" + estraverse "~1.5.0" + esutils "~1.0.0" + optionalDependencies: + source-map "~0.1.30" + +eslint-config-prettier@^8.5.0: + version "8.8.0" + resolved "https://registry.yarnpkg.com/eslint-config-prettier/-/eslint-config-prettier-8.8.0.tgz#bfda738d412adc917fd7b038857110efe98c9348" + integrity sha512-wLbQiFre3tdGgpDv67NQKnJuTlcUVYHas3k+DZCc2U2BadthoEY4B7hLPvAxaqdyOGCzuLfii2fqGph10va7oA== + +eslint-import-resolver-node@^0.3.7: + version "0.3.7" + resolved "https://registry.yarnpkg.com/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.7.tgz#83b375187d412324a1963d84fa664377a23eb4d7" + integrity sha512-gozW2blMLJCeFpBwugLTGyvVjNoeo1knonXAcatC6bjPBZitotxdWf7Gimr25N4c0AAOo4eOUfaG82IJPDpqCA== + dependencies: + debug "^3.2.7" + is-core-module "^2.11.0" + resolve "^1.22.1" + +eslint-import-resolver-typescript@2.7.1: + version "2.7.1" + resolved "https://registry.yarnpkg.com/eslint-import-resolver-typescript/-/eslint-import-resolver-typescript-2.7.1.tgz#a90a4a1c80da8d632df25994c4c5fdcdd02b8751" + integrity sha512-00UbgGwV8bSgUv34igBDbTOtKhqoRMy9bFjNehT40bXg6585PNIct8HhXZ0SybqB9rWtXj9crcku8ndDn/gIqQ== + dependencies: + debug "^4.3.4" + glob "^7.2.0" + is-glob "^4.0.3" + resolve "^1.22.0" + tsconfig-paths "^3.14.1" + +eslint-module-utils@^2.7.4: + version "2.8.0" + resolved "https://registry.yarnpkg.com/eslint-module-utils/-/eslint-module-utils-2.8.0.tgz#e439fee65fc33f6bba630ff621efc38ec0375c49" + integrity sha512-aWajIYfsqCKRDgUfjEXNN/JlrzauMuSEy5sbd7WXbtW3EH6A6MpwEh42c7qD+MqQo9QMJ6fWLAeIJynx0g6OAw== + dependencies: + debug "^3.2.7" + +eslint-plugin-async-await@^0.0.0: + version "0.0.0" + resolved "https://registry.yarnpkg.com/eslint-plugin-async-await/-/eslint-plugin-async-await-0.0.0.tgz#0f2ae17a3814780635d48f2409df9e37898ca09f" + integrity sha512-CNizhDO2f1dLaoA6wah3Yj8bSmsDC7wRTt4bsFBOUEYvzcd6XNhxBmz3EgqxD6a+V4Zjl8qTiDMZo3ug+qjojg== + +eslint-plugin-cypress@^2.12.1: + version "2.13.3" + resolved "https://registry.yarnpkg.com/eslint-plugin-cypress/-/eslint-plugin-cypress-2.13.3.tgz#5fc1afdc939aaa7daa9181f651f2f35429733ff2" + integrity sha512-nAPjZE5WopCsgJwl3vHm5iafpV+ZRO76Z9hMyRygWhmg5ODXDPd+9MaPl7kdJ2azj+sO87H3P1PRnggIrz848g== + dependencies: + globals "^11.12.0" + +eslint-plugin-filenames-simple@^0.7.0: + version "0.7.0" + resolved "https://registry.yarnpkg.com/eslint-plugin-filenames-simple/-/eslint-plugin-filenames-simple-0.7.0.tgz#cff3c48de89ff543ef8f724dde135daac7ae5714" + integrity sha512-CbiYl+XJtVI+JwIf573c9tENDYwngX7iYgPVJn6LExlXkdPhLKgBa4Rcht/lNBdgT1C5k3c+6eK7NePxs6Kakg== + dependencies: + pluralize "^8.0.0" + +eslint-plugin-import@^2.26.0: + version "2.27.5" + resolved "https://registry.yarnpkg.com/eslint-plugin-import/-/eslint-plugin-import-2.27.5.tgz#876a6d03f52608a3e5bb439c2550588e51dd6c65" + integrity sha512-LmEt3GVofgiGuiE+ORpnvP+kAm3h6MLZJ4Q5HCyHADofsb4VzXFsRiWj3c0OFiV+3DWFh0qg3v9gcPlfc3zRow== + dependencies: + array-includes "^3.1.6" + array.prototype.flat "^1.3.1" + array.prototype.flatmap "^1.3.1" + debug "^3.2.7" + doctrine "^2.1.0" + eslint-import-resolver-node "^0.3.7" + eslint-module-utils "^2.7.4" + has "^1.0.3" + is-core-module "^2.11.0" + is-glob "^4.0.3" + minimatch "^3.1.2" + object.values "^1.1.6" + resolve "^1.22.1" + semver "^6.3.0" + tsconfig-paths "^3.14.1" + +eslint-plugin-prettier@^4.2.1: + version "4.2.1" + resolved "https://registry.yarnpkg.com/eslint-plugin-prettier/-/eslint-plugin-prettier-4.2.1.tgz#651cbb88b1dab98bfd42f017a12fa6b2d993f94b" + integrity sha512-f/0rXLXUt0oFYs8ra4w49wYZBG5GKZpAYsJSm6rnYL5uVDjd+zowwMwVZHnAjf4edNrKpCDYfXDgmRE/Ak7QyQ== + dependencies: + prettier-linter-helpers "^1.0.0" + +eslint-plugin-react-hooks@^4.6.0: + version "4.6.0" + resolved "https://registry.yarnpkg.com/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-4.6.0.tgz#4c3e697ad95b77e93f8646aaa1630c1ba607edd3" + integrity sha512-oFc7Itz9Qxh2x4gNHStv3BqJq54ExXmfC+a1NjAta66IAN87Wu0R/QArgIS9qKzX3dXKPI9H5crl9QchNMY9+g== + +eslint-plugin-react@^7.31.8: + version "7.32.2" + resolved "https://registry.yarnpkg.com/eslint-plugin-react/-/eslint-plugin-react-7.32.2.tgz#e71f21c7c265ebce01bcbc9d0955170c55571f10" + integrity sha512-t2fBMa+XzonrrNkyVirzKlvn5RXzzPwRHtMvLAtVZrt8oxgnTQaYbU6SXTOO1mwQgp1y5+toMSKInnzGr0Knqg== + dependencies: + array-includes "^3.1.6" + array.prototype.flatmap "^1.3.1" + array.prototype.tosorted "^1.1.1" + doctrine "^2.1.0" + estraverse "^5.3.0" + jsx-ast-utils "^2.4.1 || ^3.0.0" + minimatch "^3.1.2" + object.entries "^1.1.6" + object.fromentries "^2.0.6" + object.hasown "^1.1.2" + object.values "^1.1.6" + prop-types "^15.8.1" + resolve "^2.0.0-next.4" + semver "^6.3.0" + string.prototype.matchall "^4.0.8" + +eslint-scope@^5.1.1: + version "5.1.1" + resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-5.1.1.tgz#e786e59a66cb92b3f6c1fb0d508aab174848f48c" + integrity sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw== + dependencies: + esrecurse "^4.3.0" + estraverse "^4.1.1" + +eslint-scope@^7.2.0: + version "7.2.0" + resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-7.2.0.tgz#f21ebdafda02352f103634b96dd47d9f81ca117b" + integrity sha512-DYj5deGlHBfMt15J7rdtyKNq/Nqlv5KfU4iodrQ019XESsRnwXH9KAE0y3cwtUHDo2ob7CypAnCqefh6vioWRw== + dependencies: + esrecurse "^4.3.0" + estraverse "^5.2.0" + +eslint-visitor-keys@^3.3.0, eslint-visitor-keys@^3.4.1: + version "3.4.1" + resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-3.4.1.tgz#c22c48f48942d08ca824cc526211ae400478a994" + integrity sha512-pZnmmLwYzf+kWaM/Qgrvpen51upAktaaiI01nsJD/Yr3lMOdNtq0cxkrrg16w64VtisN6okbs7Q8AfGqj4c9fA== + +eslint@^8.24.0: + version "8.44.0" + resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.44.0.tgz#51246e3889b259bbcd1d7d736a0c10add4f0e500" + integrity sha512-0wpHoUbDUHgNCyvFB5aXLiQVfK9B0at6gUvzy83k4kAsQ/u769TQDX6iKC+aO4upIHO9WSaA3QoXYQDHbNwf1A== + dependencies: + "@eslint-community/eslint-utils" "^4.2.0" + "@eslint-community/regexpp" "^4.4.0" + "@eslint/eslintrc" "^2.1.0" + "@eslint/js" "8.44.0" + "@humanwhocodes/config-array" "^0.11.10" + "@humanwhocodes/module-importer" "^1.0.1" + "@nodelib/fs.walk" "^1.2.8" + ajv "^6.10.0" + chalk "^4.0.0" + cross-spawn "^7.0.2" + debug "^4.3.2" + doctrine "^3.0.0" + escape-string-regexp "^4.0.0" + eslint-scope "^7.2.0" + eslint-visitor-keys "^3.4.1" + espree "^9.6.0" + esquery "^1.4.2" + esutils "^2.0.2" + fast-deep-equal "^3.1.3" + file-entry-cache "^6.0.1" + find-up "^5.0.0" + glob-parent "^6.0.2" + globals "^13.19.0" + graphemer "^1.4.0" + ignore "^5.2.0" + import-fresh "^3.0.0" + imurmurhash "^0.1.4" + is-glob "^4.0.0" + is-path-inside "^3.0.3" + js-yaml "^4.1.0" + json-stable-stringify-without-jsonify "^1.0.1" + levn "^0.4.1" + lodash.merge "^4.6.2" + minimatch "^3.1.2" + natural-compare "^1.4.0" + optionator "^0.9.3" + strip-ansi "^6.0.1" + strip-json-comments "^3.1.0" + text-table "^0.2.0" + +espree@^9.6.0: + version "9.6.0" + resolved "https://registry.yarnpkg.com/espree/-/espree-9.6.0.tgz#80869754b1c6560f32e3b6929194a3fe07c5b82f" + integrity sha512-1FH/IiruXZ84tpUlm0aCUEwMl2Ho5ilqVh0VvQXw+byAz/4SAciyHLlfmL5WYqsvD38oymdUwBss0LtK8m4s/A== + dependencies: + acorn "^8.9.0" + acorn-jsx "^5.3.2" + eslint-visitor-keys "^3.4.1" + +esprima@^4.0.0, esprima@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71" + integrity sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A== + +esprima@~1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/esprima/-/esprima-1.0.4.tgz#9f557e08fc3b4d26ece9dd34f8fbf476b62585ad" + integrity sha512-rp5dMKN8zEs9dfi9g0X1ClLmV//WRyk/R15mppFNICIFRG5P92VP7Z04p8pk++gABo9W2tY+kHyu6P1mEHgmTA== + +esquery@^1.4.2: + version "1.5.0" + resolved "https://registry.yarnpkg.com/esquery/-/esquery-1.5.0.tgz#6ce17738de8577694edd7361c57182ac8cb0db0b" + integrity sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg== + dependencies: + estraverse "^5.1.0" + +esrecurse@^4.3.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/esrecurse/-/esrecurse-4.3.0.tgz#7ad7964d679abb28bee72cec63758b1c5d2c9921" + integrity sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag== + dependencies: + estraverse "^5.2.0" + +estraverse@^4.1.1, estraverse@^4.2.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.3.0.tgz#398ad3f3c5a24948be7725e83d11a7de28cdbd1d" + integrity sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw== + +estraverse@^5.1.0, estraverse@^5.2.0, estraverse@^5.3.0: + version "5.3.0" + resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-5.3.0.tgz#2eea5290702f26ab8fe5370370ff86c965d21123" + integrity sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA== + +estraverse@~1.5.0: + version "1.5.1" + resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-1.5.1.tgz#867a3e8e58a9f84618afb6c2ddbcd916b7cbaf71" + integrity sha512-FpCjJDfmo3vsc/1zKSeqR5k42tcIhxFIlvq+h9j0fO2q/h2uLKyweq7rYJ+0CoVvrGQOxIS5wyBrW/+vF58BUQ== + +estree-is-function@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/estree-is-function/-/estree-is-function-1.0.0.tgz#c0adc29806d7f18a74db7df0f3b2666702e37ad2" + integrity sha512-nSCWn1jkSq2QAtkaVLJZY2ezwcFO161HVc174zL1KPW3RJ+O6C3eJb8Nx7OXzvhoEv+nLgSR1g71oWUHUDTrJA== + +esutils@^2.0.2: + version "2.0.3" + resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.3.tgz#74d2eb4de0b8da1293711910d50775b9b710ef64" + integrity sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g== + +esutils@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/esutils/-/esutils-1.0.0.tgz#8151d358e20c8acc7fb745e7472c0025fe496570" + integrity sha512-x/iYH53X3quDwfHRz4y8rn4XcEwwCJeWsul9pF1zldMbGtgOtMNBEOuYWwB1EQlK2LRa1fev3YAgym/RElp5Cg== + +event-emitter@^0.3.5, event-emitter@~0.3.5: + version "0.3.5" + resolved "https://registry.yarnpkg.com/event-emitter/-/event-emitter-0.3.5.tgz#df8c69eef1647923c7157b9ce83840610b02cc39" + integrity sha512-D9rRn9y7kLPnJ+hMq7S/nhvoKwwvVJahBi2BPmx3bvbsEdK3W9ii8cBSGjP+72/LnM4n6fo3+dkCX5FeTQruXA== + dependencies: + d "1" + es5-ext "~0.10.14" + +ext@^1.1.2: + version "1.7.0" + resolved "https://registry.yarnpkg.com/ext/-/ext-1.7.0.tgz#0ea4383c0103d60e70be99e9a7f11027a33c4f5f" + integrity sha512-6hxeJYaL110a9b5TEJSj0gojyHQAmA2ch5Os+ySCiA1QGdS697XWY1pzsrSjqA9LDEEgdB/KypIlR59RcLuHYw== + dependencies: + type "^2.7.2" + +fast-deep-equal@^3.1.1, fast-deep-equal@^3.1.3: + version "3.1.3" + resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525" + integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q== + +fast-diff@^1.1.2: + version "1.3.0" + resolved "https://registry.yarnpkg.com/fast-diff/-/fast-diff-1.3.0.tgz#ece407fa550a64d638536cd727e129c61616e0f0" + integrity sha512-VxPP4NqbUjj6MaAOafWeUn2cXWLcCtljklUtZf0Ind4XQ+QPtmA0b18zZy0jIQx+ExRVCR/ZQpBmik5lXshNsw== + +fast-glob@^3.2.9: + version "3.3.0" + resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.3.0.tgz#7c40cb491e1e2ed5664749e87bfb516dbe8727c0" + integrity sha512-ChDuvbOypPuNjO8yIDf36x7BlZX1smcUMTTcyoIjycexOxd6DFsKsg21qVBzEmr3G7fUKIRy2/psii+CIUt7FA== + dependencies: + "@nodelib/fs.stat" "^2.0.2" + "@nodelib/fs.walk" "^1.2.3" + glob-parent "^5.1.2" + merge2 "^1.3.0" + micromatch "^4.0.4" + +fast-json-stable-stringify@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz#874bf69c6f404c2b5d99c481341399fd55892633" + integrity sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw== + +fast-levenshtein@^2.0.6, fast-levenshtein@~2.0.6: + version "2.0.6" + resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917" + integrity sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw== + +fastq@^1.6.0: + version "1.15.0" + resolved "https://registry.yarnpkg.com/fastq/-/fastq-1.15.0.tgz#d04d07c6a2a68fe4599fea8d2e103a937fae6b3a" + integrity sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw== + dependencies: + reusify "^1.0.4" + +fecha@^4.2.0: + version "4.2.3" + resolved "https://registry.yarnpkg.com/fecha/-/fecha-4.2.3.tgz#4d9ccdbc61e8629b259fdca67e65891448d569fd" + integrity sha512-OP2IUU6HeYKJi3i0z4A19kHMQoLVs4Hc+DPqqxI2h/DPZHTm/vjsfC6P0b4jCMy14XizLBqvndQ+UilD7707Jw== + +file-entry-cache@^6.0.1: + version "6.0.1" + resolved "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-6.0.1.tgz#211b2dd9659cb0394b073e7323ac3c933d522027" + integrity sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg== + dependencies: + flat-cache "^3.0.4" + +fill-range@^7.0.1: + version "7.0.1" + resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-7.0.1.tgz#1919a6a7c75fe38b2c7c77e5198535da9acdda40" + integrity sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ== + dependencies: + to-regex-range "^5.0.1" + +find-up@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/find-up/-/find-up-5.0.0.tgz#4c92819ecb7083561e4f4a240a86be5198f536fc" + integrity sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng== + dependencies: + locate-path "^6.0.0" + path-exists "^4.0.0" + +flat-cache@^3.0.4: + version "3.0.4" + resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-3.0.4.tgz#61b0338302b2fe9f957dcc32fc2a87f1c3048b11" + integrity sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg== + dependencies: + flatted "^3.1.0" + rimraf "^3.0.2" + +flatted@^3.1.0: + version "3.2.7" + resolved "https://registry.yarnpkg.com/flatted/-/flatted-3.2.7.tgz#609f39207cb614b89d0765b477cb2d437fbf9787" + integrity sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ== + +fn.name@1.x.x: + version "1.1.0" + resolved "https://registry.yarnpkg.com/fn.name/-/fn.name-1.1.0.tgz#26cad8017967aea8731bc42961d04a3d5988accc" + integrity sha512-GRnmB5gPyJpAhTQdSZTSp9uaPSvl09KoYcMQtsB9rQoOmzs9dH6ffeccH+Z+cv6P68Hu5bC6JjRh4Ah/mHSNRw== + +follow-redirects@^1.14.0: + version "1.15.2" + resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.15.2.tgz#b460864144ba63f2681096f274c4e57026da2c13" + integrity sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA== + +for-each@^0.3.3: + version "0.3.3" + resolved "https://registry.yarnpkg.com/for-each/-/for-each-0.3.3.tgz#69b447e88a0a5d32c3e7084f3f1710034b21376e" + integrity sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw== + dependencies: + is-callable "^1.1.3" + +fs.realpath@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" + integrity sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw== + +function-bind@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d" + integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A== + +function.prototype.name@^1.1.5: + version "1.1.5" + resolved "https://registry.yarnpkg.com/function.prototype.name/-/function.prototype.name-1.1.5.tgz#cce0505fe1ffb80503e6f9e46cc64e46a12a9621" + integrity sha512-uN7m/BzVKQnCUF/iW8jYea67v++2u7m5UgENbHRtdDVclOUP+FMPlCNdmk0h/ysGyo2tavMJEDqJAkJdRa1vMA== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.3" + es-abstract "^1.19.0" + functions-have-names "^1.2.2" + +functions-have-names@^1.2.2, functions-have-names@^1.2.3: + version "1.2.3" + resolved "https://registry.yarnpkg.com/functions-have-names/-/functions-have-names-1.2.3.tgz#0404fe4ee2ba2f607f0e0ec3c80bae994133b834" + integrity sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ== + +get-assigned-identifiers@^1.1.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/get-assigned-identifiers/-/get-assigned-identifiers-1.2.0.tgz#6dbf411de648cbaf8d9169ebb0d2d576191e2ff1" + integrity sha512-mBBwmeGTrxEMO4pMaaf/uUEFHnYtwr8FTe8Y/mer4rcV/bye0qGm6pw1bGZFGStxC5O76c5ZAVBGnqHmOaJpdQ== + +get-intrinsic@^1.0.2, get-intrinsic@^1.1.1, get-intrinsic@^1.1.3, get-intrinsic@^1.2.0: + version "1.2.1" + resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.2.1.tgz#d295644fed4505fc9cde952c37ee12b477a83d82" + integrity sha512-2DcsyfABl+gVHEfCOaTrWgyt+tb6MSEGmKq+kI5HwLbIYgjgmMcV8KQ41uaKz1xxUcn9tJtgFbQUEVcEbd0FYw== + dependencies: + function-bind "^1.1.1" + has "^1.0.3" + has-proto "^1.0.1" + has-symbols "^1.0.3" + +get-symbol-description@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/get-symbol-description/-/get-symbol-description-1.0.0.tgz#7fdb81c900101fbd564dd5f1a30af5aadc1e58d6" + integrity sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw== + dependencies: + call-bind "^1.0.2" + get-intrinsic "^1.1.1" + +glob-parent@^5.1.2: + version "5.1.2" + resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.2.tgz#869832c58034fe68a4093c17dc15e8340d8401c4" + integrity sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow== + dependencies: + is-glob "^4.0.1" + +glob-parent@^6.0.2: + version "6.0.2" + resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-6.0.2.tgz#6d237d99083950c79290f24c7642a3de9a28f9e3" + integrity sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A== + dependencies: + is-glob "^4.0.3" + +glob@^7.1.1, glob@^7.1.3, glob@^7.2.0: + version "7.2.3" + resolved "https://registry.yarnpkg.com/glob/-/glob-7.2.3.tgz#b8df0fb802bbfa8e89bd1d938b4e16578ed44f2b" + integrity sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q== + dependencies: + fs.realpath "^1.0.0" + inflight "^1.0.4" + inherits "2" + minimatch "^3.1.1" + once "^1.3.0" + path-is-absolute "^1.0.0" + +globals@^11.12.0: + version "11.12.0" + resolved "https://registry.yarnpkg.com/globals/-/globals-11.12.0.tgz#ab8795338868a0babd8525758018c2a7eb95c42e" + integrity sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA== + +globals@^13.19.0: + version "13.20.0" + resolved "https://registry.yarnpkg.com/globals/-/globals-13.20.0.tgz#ea276a1e508ffd4f1612888f9d1bad1e2717bf82" + integrity sha512-Qg5QtVkCy/kv3FUSlu4ukeZDVf9ee0iXLAUYX13gbR17bnejFTzr4iS9bY7kwCf1NztRNm1t91fjOiyx4CSwPQ== + dependencies: + type-fest "^0.20.2" + +globalthis@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/globalthis/-/globalthis-1.0.3.tgz#5852882a52b80dc301b0660273e1ed082f0b6ccf" + integrity sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA== + dependencies: + define-properties "^1.1.3" + +globby@^11.1.0: + version "11.1.0" + resolved "https://registry.yarnpkg.com/globby/-/globby-11.1.0.tgz#bd4be98bb042f83d796f7e3811991fbe82a0d34b" + integrity sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g== + dependencies: + array-union "^2.1.0" + dir-glob "^3.0.1" + fast-glob "^3.2.9" + ignore "^5.2.0" + merge2 "^1.4.1" + slash "^3.0.0" + +gopd@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/gopd/-/gopd-1.0.1.tgz#29ff76de69dac7489b7c0918a5788e56477c332c" + integrity sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA== + dependencies: + get-intrinsic "^1.1.3" + +graphemer@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/graphemer/-/graphemer-1.4.0.tgz#fb2f1d55e0e3a1849aeffc90c4fa0dd53a0e66c6" + integrity sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag== + +has-bigints@^1.0.1, has-bigints@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/has-bigints/-/has-bigints-1.0.2.tgz#0871bd3e3d51626f6ca0966668ba35d5602d6eaa" + integrity sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ== + +has-flag@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd" + integrity sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw== + +has-flag@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b" + integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== + +has-property-descriptors@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/has-property-descriptors/-/has-property-descriptors-1.0.0.tgz#610708600606d36961ed04c196193b6a607fa861" + integrity sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ== + dependencies: + get-intrinsic "^1.1.1" + +has-proto@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/has-proto/-/has-proto-1.0.1.tgz#1885c1305538958aff469fef37937c22795408e0" + integrity sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg== + +has-symbols@^1.0.2, has-symbols@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.3.tgz#bb7b2c4349251dce87b125f7bdf874aa7c8b39f8" + integrity sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A== + +has-tostringtag@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/has-tostringtag/-/has-tostringtag-1.0.0.tgz#7e133818a7d394734f941e73c3d3f9291e658b25" + integrity sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ== + dependencies: + has-symbols "^1.0.2" + +has@^1.0.1, has@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/has/-/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796" + integrity sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw== + dependencies: + function-bind "^1.1.1" + +hoist-non-react-statics@^3.0.0, hoist-non-react-statics@^3.3.0: + version "3.3.2" + resolved "https://registry.yarnpkg.com/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz#ece0acaf71d62c2969c2ec59feff42a4b1a85b45" + integrity sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw== + dependencies: + react-is "^16.7.0" + +iconv-lite@^0.4.4: + version "0.4.24" + resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b" + integrity sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA== + dependencies: + safer-buffer ">= 2.1.2 < 3" + +iconv-lite@^0.6.3: + version "0.6.3" + resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.6.3.tgz#a52f80bf38da1952eb5c681790719871a1a72501" + integrity sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw== + dependencies: + safer-buffer ">= 2.1.2 < 3.0.0" + +ignore@^5.2.0: + version "5.2.4" + resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.2.4.tgz#a291c0c6178ff1b960befe47fcdec301674a6324" + integrity sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ== + +import-fresh@^3.0.0, import-fresh@^3.2.1: + version "3.3.0" + resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.3.0.tgz#37162c25fcb9ebaa2e6e53d5b4d88ce17d9e0c2b" + integrity sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw== + dependencies: + parent-module "^1.0.0" + resolve-from "^4.0.0" + +imurmurhash@^0.1.4: + version "0.1.4" + resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" + integrity sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA== + +inflight@^1.0.4: + version "1.0.6" + resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" + integrity sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA== + dependencies: + once "^1.3.0" + wrappy "1" + +inherits@2, inherits@^2.0.3, inherits@~2.0.3: + version "2.0.4" + resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" + integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== + +install@^0.10.1: + version "0.10.4" + resolved "https://registry.yarnpkg.com/install/-/install-0.10.4.tgz#9cb09115768b93a582d1450a6ba3f275975b49aa" + integrity sha512-+IRyOastuPmLVx9zlVXJoKErSqz1Ma5at9A7S8yfsj3W+Kg95faPoh3bPDtMrZ/grz4PRmXzrswmlzfLlYyLOw== + +internal-slot@^1.0.3, internal-slot@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/internal-slot/-/internal-slot-1.0.5.tgz#f2a2ee21f668f8627a4667f309dc0f4fb6674986" + integrity sha512-Y+R5hJrzs52QCG2laLn4udYVnxsfny9CpOhNhUvk/SSSVyF6T27FzRbF0sroPidSu3X8oEAkOn2K804mjpt6UQ== + dependencies: + get-intrinsic "^1.2.0" + has "^1.0.3" + side-channel "^1.0.4" + +is-arguments@^1.0.4: + version "1.1.1" + resolved "https://registry.yarnpkg.com/is-arguments/-/is-arguments-1.1.1.tgz#15b3f88fda01f2a97fec84ca761a560f123efa9b" + integrity sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA== + dependencies: + call-bind "^1.0.2" + has-tostringtag "^1.0.0" + +is-array-buffer@^3.0.1, is-array-buffer@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/is-array-buffer/-/is-array-buffer-3.0.2.tgz#f2653ced8412081638ecb0ebbd0c41c6e0aecbbe" + integrity sha512-y+FyyR/w8vfIRq4eQcM1EYgSTnmHXPqaF+IgzgraytCFq5Xh8lllDVmAZolPJiZttZLeFSINPYMaEJ7/vWUa1w== + dependencies: + call-bind "^1.0.2" + get-intrinsic "^1.2.0" + is-typed-array "^1.1.10" + +is-arrayish@^0.3.1: + version "0.3.2" + resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.3.2.tgz#4574a2ae56f7ab206896fb431eaeed066fdf8f03" + integrity sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ== + +is-bigint@^1.0.1: + version "1.0.4" + resolved "https://registry.yarnpkg.com/is-bigint/-/is-bigint-1.0.4.tgz#08147a1875bc2b32005d41ccd8291dffc6691df3" + integrity sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg== + dependencies: + has-bigints "^1.0.1" + +is-boolean-object@^1.1.0: + version "1.1.2" + resolved "https://registry.yarnpkg.com/is-boolean-object/-/is-boolean-object-1.1.2.tgz#5c6dc200246dd9321ae4b885a114bb1f75f63719" + integrity sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA== + dependencies: + call-bind "^1.0.2" + has-tostringtag "^1.0.0" + +is-buffer@~1.1.6: + version "1.1.6" + resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-1.1.6.tgz#efaa2ea9daa0d7ab2ea13a97b2b8ad51fefbe8be" + integrity sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w== + +is-callable@^1.1.3, is-callable@^1.1.4, is-callable@^1.2.7: + version "1.2.7" + resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.2.7.tgz#3bc2a85ea742d9e36205dcacdd72ca1fdc51b055" + integrity sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA== + +is-core-module@^2.11.0, is-core-module@^2.9.0: + version "2.12.1" + resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.12.1.tgz#0c0b6885b6f80011c71541ce15c8d66cf5a4f9fd" + integrity sha512-Q4ZuBAe2FUsKtyQJoQHlvP8OvBERxO3jEmy1I7hcRXcJBGGHFh/aJBswbXuS9sgrDH2QUO8ilkwNPHvHMd8clg== + dependencies: + has "^1.0.3" + +is-date-object@^1.0.1: + version "1.0.5" + resolved "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.0.5.tgz#0841d5536e724c25597bf6ea62e1bd38298df31f" + integrity sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ== + dependencies: + has-tostringtag "^1.0.0" + +is-extglob@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" + integrity sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ== + +is-glob@^4.0.0, is-glob@^4.0.1, is-glob@^4.0.3: + version "4.0.3" + resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.3.tgz#64f61e42cbbb2eec2071a9dac0b28ba1e65d5084" + integrity sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg== + dependencies: + is-extglob "^2.1.1" + +is-negative-zero@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/is-negative-zero/-/is-negative-zero-2.0.2.tgz#7bf6f03a28003b8b3965de3ac26f664d765f3150" + integrity sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA== + +is-number-object@^1.0.4: + version "1.0.7" + resolved "https://registry.yarnpkg.com/is-number-object/-/is-number-object-1.0.7.tgz#59d50ada4c45251784e9904f5246c742f07a42fc" + integrity sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ== + dependencies: + has-tostringtag "^1.0.0" + +is-number@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b" + integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng== + +is-path-inside@^3.0.3: + version "3.0.3" + resolved "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-3.0.3.tgz#d231362e53a07ff2b0e0ea7fed049161ffd16283" + integrity sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ== + +is-regex@^1.0.4, is-regex@^1.1.4: + version "1.1.4" + resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.1.4.tgz#eef5663cd59fa4c0ae339505323df6854bb15958" + integrity sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg== + dependencies: + call-bind "^1.0.2" + has-tostringtag "^1.0.0" + +is-shared-array-buffer@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz#8f259c573b60b6a32d4058a1a07430c0a7344c79" + integrity sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA== + dependencies: + call-bind "^1.0.2" + +is-stream@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-2.0.1.tgz#fac1e3d53b97ad5a9d0ae9cef2389f5810a5c077" + integrity sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg== + +is-string@^1.0.5, is-string@^1.0.7: + version "1.0.7" + resolved "https://registry.yarnpkg.com/is-string/-/is-string-1.0.7.tgz#0dd12bf2006f255bb58f695110eff7491eebc0fd" + integrity sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg== + dependencies: + has-tostringtag "^1.0.0" + +is-symbol@^1.0.2, is-symbol@^1.0.3: + version "1.0.4" + resolved "https://registry.yarnpkg.com/is-symbol/-/is-symbol-1.0.4.tgz#a6dac93b635b063ca6872236de88910a57af139c" + integrity sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg== + dependencies: + has-symbols "^1.0.2" + +is-typed-array@^1.1.10, is-typed-array@^1.1.9: + version "1.1.10" + resolved "https://registry.yarnpkg.com/is-typed-array/-/is-typed-array-1.1.10.tgz#36a5b5cb4189b575d1a3e4b08536bfb485801e3f" + integrity sha512-PJqgEHiWZvMpaFZ3uTc8kHPM4+4ADTlDniuQL7cU/UDA0Ql7F70yGfHph3cLNe+c9toaigv+DFzTJKhc2CtO6A== + dependencies: + available-typed-arrays "^1.0.5" + call-bind "^1.0.2" + for-each "^0.3.3" + gopd "^1.0.1" + has-tostringtag "^1.0.0" + +is-weakref@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/is-weakref/-/is-weakref-1.0.2.tgz#9529f383a9338205e89765e0392efc2f100f06f2" + integrity sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ== + dependencies: + call-bind "^1.0.2" + +isarray@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" + integrity sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ== + +isexe@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" + integrity sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw== + +"js-tokens@^3.0.0 || ^4.0.0", js-tokens@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" + integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== + +js-yaml@^3.13.1: + version "3.14.1" + resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.14.1.tgz#dae812fdb3825fa306609a8717383c50c36a0537" + integrity sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g== + dependencies: + argparse "^1.0.7" + esprima "^4.0.0" + +js-yaml@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-4.1.0.tgz#c1fb65f8f5017901cdd2c951864ba18458a10602" + integrity sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA== + dependencies: + argparse "^2.0.1" + +js2xmlparser@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/js2xmlparser/-/js2xmlparser-3.0.0.tgz#3fb60eaa089c5440f9319f51760ccd07e2499733" + integrity sha512-CSOkdn0/GhRFwxnipmhXfqJ+FG6+wkWBi46kKSsPx6+j65176ZiQcrCYpg6K8x3iLbO4k3zScBnZ7I/L80dAtw== + dependencies: + xmlcreate "^1.0.1" + +json-schema-traverse@^0.4.1: + version "0.4.1" + resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660" + integrity sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg== + +json-stable-stringify-without-jsonify@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz#9db7b59496ad3f3cfef30a75142d2d930ad72651" + integrity sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw== + +json2csv@^4.1.2: + version "4.5.4" + resolved "https://registry.yarnpkg.com/json2csv/-/json2csv-4.5.4.tgz#2b59c2869a137ec48cd2e243e0180466155f773f" + integrity sha512-YxBhY4Lmn8IvVZ36nqg5omxneLy9JlorkqW1j/EDCeqvmi+CQ4uM+wsvXlcIqvGDewIPXMC/O/oF8DX9EH5aoA== + dependencies: + commander "^2.15.1" + jsonparse "^1.3.1" + lodash.get "^4.4.2" + +json5@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/json5/-/json5-1.0.2.tgz#63d98d60f21b313b77c4d6da18bfa69d80e1d593" + integrity sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA== + dependencies: + minimist "^1.2.0" + +jsonparse@^1.3.1: + version "1.3.1" + resolved "https://registry.yarnpkg.com/jsonparse/-/jsonparse-1.3.1.tgz#3f4dae4a91fac315f71062f8521cc239f1366280" + integrity sha512-POQXvpdL69+CluYsillJ7SUhKvytYjW9vG/GKpnf+xP8UWgYEM/RaMzHHofbALDiKbbP1W8UEYmgGl39WkPZsg== + +"jsx-ast-utils@^2.4.1 || ^3.0.0": + version "3.3.4" + resolved "https://registry.yarnpkg.com/jsx-ast-utils/-/jsx-ast-utils-3.3.4.tgz#b896535fed5b867650acce5a9bd4135ffc7b3bf9" + integrity sha512-fX2TVdCViod6HwKEtSWGHs57oFhVfCMwieb9PuRDgjDPh5XeqJiHFFFJCHxU5cnTc3Bu/GRL+kPiFmw8XWOfKw== + dependencies: + array-includes "^3.1.6" + array.prototype.flat "^1.3.1" + object.assign "^4.1.4" + object.values "^1.1.6" + +jwt-decode@^2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/jwt-decode/-/jwt-decode-2.2.0.tgz#7d86bd56679f58ce6a84704a657dd392bba81a79" + integrity sha512-86GgN2vzfUu7m9Wcj63iUkuDzFNYFVmjeDm2GzWpUk+opB0pEpMsw6ePCMrhYkumz2C1ihqtZzOMAg7FiXcNoQ== + +kuler@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/kuler/-/kuler-2.0.0.tgz#e2c570a3800388fb44407e851531c1d670b061b3" + integrity sha512-Xq9nH7KlWZmXAtodXDDRE7vs6DU1gTU8zYDHDiWLSip45Egwq3plLHzPn27NgvzL2r1LMPC1vdqh98sQxtqj4A== + +levn@^0.4.1: + version "0.4.1" + resolved "https://registry.yarnpkg.com/levn/-/levn-0.4.1.tgz#ae4562c007473b932a6200d403268dd2fffc6ade" + integrity sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ== + dependencies: + prelude-ls "^1.2.1" + type-check "~0.4.0" + +levn@~0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/levn/-/levn-0.3.0.tgz#3b09924edf9f083c0490fdd4c0bc4421e04764ee" + integrity sha512-0OO4y2iOHix2W6ujICbKIaEQXvFQHue65vUG3pb5EUomzPI90z9hsA1VsO/dbIIpC53J8gxM9Q4Oho0jrCM/yA== + dependencies: + prelude-ls "~1.1.2" + type-check "~0.3.2" + +locate-path@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-6.0.0.tgz#55321eb309febbc59c4801d931a72452a681d286" + integrity sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw== + dependencies: + p-locate "^5.0.0" + +lodash.debounce@^4.0.8: + version "4.0.8" + resolved "https://registry.yarnpkg.com/lodash.debounce/-/lodash.debounce-4.0.8.tgz#82d79bff30a67c4005ffd5e2515300ad9ca4d7af" + integrity sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow== + +lodash.get@^4.4.2: + version "4.4.2" + resolved "https://registry.yarnpkg.com/lodash.get/-/lodash.get-4.4.2.tgz#2d177f652fa31e939b4438d5341499dfa3825e99" + integrity sha512-z+Uw/vLuy6gQe8cfaFWD7p0wVv8fJl3mbzXh33RS+0oW2wvUqiRXiQ69gLWSLpgB5/6sU+r6BlQR0MBILadqTQ== + +lodash.isequal@^4.5.0: + version "4.5.0" + resolved "https://registry.yarnpkg.com/lodash.isequal/-/lodash.isequal-4.5.0.tgz#415c4478f2bcc30120c22ce10ed3226f7d3e18e0" + integrity sha512-pDo3lu8Jhfjqls6GkMgpahsF9kCyayhgykjyLMNFTKWrpVdAQtYyB4muAMWozBB4ig/dtWAmsMxLEI8wuz+DYQ== + +lodash.isplainobject@^4.0.6: + version "4.0.6" + resolved "https://registry.yarnpkg.com/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz#7c526a52d89b45c45cc690b88163be0497f550cb" + integrity sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA== + +lodash.merge@^4.6.2: + version "4.6.2" + resolved "https://registry.yarnpkg.com/lodash.merge/-/lodash.merge-4.6.2.tgz#558aa53b43b661e1925a0afdfa36a9a1085fe57a" + integrity sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ== + +lodash.unescape@4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/lodash.unescape/-/lodash.unescape-4.0.1.tgz#bf2249886ce514cda112fae9218cdc065211fc9c" + integrity sha512-DhhGRshNS1aX6s5YdBE3njCCouPgnG29ebyHvImlZzXZf2SHgt+J08DHgytTPnpywNbO1Y8mNUFyQuIDBq2JZg== + +logform@^2.3.2: + version "2.5.1" + resolved "https://registry.yarnpkg.com/logform/-/logform-2.5.1.tgz#44c77c34becd71b3a42a3970c77929e52c6ed48b" + integrity sha512-9FyqAm9o9NKKfiAKfZoYo9bGXXuwMkxQiQttkT4YjjVtQVIQtK6LmVtlxmCaFswo6N4AfEkHqZTV0taDtPotNg== + dependencies: + "@colors/colors" "1.5.0" + "@types/triple-beam" "^1.3.2" + fecha "^4.2.0" + ms "^2.1.1" + safe-stable-stringify "^2.3.1" + triple-beam "^1.3.0" + +loglevel@^1.7.1: + version "1.8.1" + resolved "https://registry.yarnpkg.com/loglevel/-/loglevel-1.8.1.tgz#5c621f83d5b48c54ae93b6156353f555963377b4" + integrity sha512-tCRIJM51SHjAayKwC+QAg8hT8vg6z7GSgLJKGvzuPb1Wc+hLzqtuVLxp6/HzSPOozuK+8ErAhy7U/sVzw8Dgfg== + +loose-envify@^1.3.1, loose-envify@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.4.0.tgz#71ee51fa7be4caec1a63839f7e682d8132d30caf" + integrity sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q== + dependencies: + js-tokens "^3.0.0 || ^4.0.0" + +lru-cache@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-6.0.0.tgz#6d6fe6570ebd96aaf90fcad1dafa3b2566db3a94" + integrity sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA== + dependencies: + yallist "^4.0.0" + +magic-string@0.25.1: + version "0.25.1" + resolved "https://registry.yarnpkg.com/magic-string/-/magic-string-0.25.1.tgz#b1c248b399cd7485da0fe7385c2fc7011843266e" + integrity sha512-sCuTz6pYom8Rlt4ISPFn6wuFodbKMIHUMv4Qko9P17dpxb7s52KJTmRuZZqHdGmLCK9AOcDare039nRIcfdkEg== + dependencies: + sourcemap-codec "^1.4.1" + +markdown-it-link-attributes@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/markdown-it-link-attributes/-/markdown-it-link-attributes-3.0.0.tgz#12d6f403102ac22695ee2617bec109ee79426e45" + integrity sha512-B34ySxVeo6MuEGSPCWyIYryuXINOvngNZL87Mp7YYfKIf6DcD837+lXA8mo6EBbauKsnGz22ZH0zsbOiQRWTNg== + +md5@^2.3.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/md5/-/md5-2.3.0.tgz#c3da9a6aae3a30b46b7b0c349b87b110dc3bda4f" + integrity sha512-T1GITYmFaKuO91vxyoQMFETst+O71VUPEU3ze5GNzDm0OWdP8v1ziTaAEPUr/3kLsY3Sftgz242A1SetQiDL7g== + dependencies: + charenc "0.0.2" + crypt "0.0.2" + is-buffer "~1.1.6" + +merge-source-map@1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/merge-source-map/-/merge-source-map-1.0.4.tgz#a5de46538dae84d4114cc5ea02b4772a6346701f" + integrity sha512-PGSmS0kfnTnMJCzJ16BLLCEe6oeYCamKFFdQKshi4BmM6FUwipjVOcBFGxqtQtirtAG4iZvHlqST9CpZKqlRjA== + dependencies: + source-map "^0.5.6" + +merge2@^1.3.0, merge2@^1.4.1: + version "1.4.1" + resolved "https://registry.yarnpkg.com/merge2/-/merge2-1.4.1.tgz#4368892f885e907455a6fd7dc55c0c9d404990ae" + integrity sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg== + +micromatch@^4.0.4: + version "4.0.5" + resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.5.tgz#bc8999a7cbbf77cdc89f132f6e467051b49090c6" + integrity sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA== + dependencies: + braces "^3.0.2" + picomatch "^2.3.1" + +minimatch@^3.0.4, minimatch@^3.0.5, minimatch@^3.1.1, minimatch@^3.1.2: + version "3.1.2" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.1.2.tgz#19cd194bfd3e428f049a70817c038d89ab4be35b" + integrity sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw== + dependencies: + brace-expansion "^1.1.7" + +minimist@^1.1.3, minimist@^1.2.0, minimist@^1.2.6: + version "1.2.8" + resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.8.tgz#c1a464e7693302e082a075cee0c057741ac4772c" + integrity sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA== + +mkdirp@^0.5.1: + version "0.5.6" + resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.6.tgz#7def03d2432dcae4ba1d611445c48396062255f6" + integrity sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw== + dependencies: + minimist "^1.2.6" + +ms@2.1.2: + version "2.1.2" + resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" + integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== + +ms@^2.1.1: + version "2.1.3" + resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2" + integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== + +mz@^2.7.0: + version "2.7.0" + resolved "https://registry.yarnpkg.com/mz/-/mz-2.7.0.tgz#95008057a56cafadc2bc63dde7f9ff6955948e32" + integrity sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q== + dependencies: + any-promise "^1.0.0" + object-assign "^4.0.1" + thenify-all "^1.0.0" + +natural-compare-lite@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/natural-compare-lite/-/natural-compare-lite-1.4.0.tgz#17b09581988979fddafe0201e931ba933c96cbb4" + integrity sha512-Tj+HTDSJJKaZnfiuw+iaF9skdPpTo2GtEly5JHnWV/hfv2Qj/9RKsGISQtLh2ox3l5EAGw487hnBee0sIJ6v2g== + +natural-compare@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7" + integrity sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw== + +needle@^2.0.1: + version "2.9.1" + resolved "https://registry.yarnpkg.com/needle/-/needle-2.9.1.tgz#22d1dffbe3490c2b83e301f7709b6736cd8f2684" + integrity sha512-6R9fqJ5Zcmf+uYaFgdIHmLwNldn5HbK8L5ybn7Uz+ylX/rnOsSp1AHcvQSrCaFN+qNM1wpymHqD7mVasEOlHGQ== + dependencies: + debug "^3.2.6" + iconv-lite "^0.4.4" + sax "^1.2.4" + +next-tick@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/next-tick/-/next-tick-1.1.0.tgz#1836ee30ad56d67ef281b22bd199f709449b35eb" + integrity sha512-CXdUiJembsNjuToQvxayPZF9Vqht7hewsvy2sOWafLvi2awflj9mOC6bHIg50orX8IJvWKY9wYQ/zB2kogPslQ== + +node-cron@^1.1.2: + version "1.2.1" + resolved "https://registry.yarnpkg.com/node-cron/-/node-cron-1.2.1.tgz#8c90bc5dc723a56289b0786655ab4a1c4cb60368" + integrity sha512-lgci/ub6KWL6SUnKOIiMkhfjmUk3jvEuO/Ypa2/CGSXiC8z4x9EkwMx7Dcu7Dt4LktcfOl8/WcLT2x7gInBa7g== + +object-assign@^4.0.1, object-assign@^4.1.1: + version "4.1.1" + resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" + integrity sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg== + +object-inspect@^1.12.3, object-inspect@^1.6.0, object-inspect@^1.9.0: + version "1.12.3" + resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.12.3.tgz#ba62dffd67ee256c8c086dfae69e016cd1f198b9" + integrity sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g== + +object-is@^1.0.1: + version "1.1.5" + resolved "https://registry.yarnpkg.com/object-is/-/object-is-1.1.5.tgz#b9deeaa5fc7f1846a0faecdceec138e5778f53ac" + integrity sha512-3cyDsyHgtmi7I7DfSSI2LDp6SK2lwvtbg0p0R1e0RvTqF5ceGx+K2dfSjm1bKDMVCFEDAQvy+o8c6a7VujOddw== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.3" + +object-keys@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.1.1.tgz#1c47f272df277f3b1daf061677d9c82e2322c60e" + integrity sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA== + +object.assign@^4.1.4: + version "4.1.4" + resolved "https://registry.yarnpkg.com/object.assign/-/object.assign-4.1.4.tgz#9673c7c7c351ab8c4d0b516f4343ebf4dfb7799f" + integrity sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.4" + has-symbols "^1.0.3" + object-keys "^1.1.1" + +object.entries@^1.1.6: + version "1.1.6" + resolved "https://registry.yarnpkg.com/object.entries/-/object.entries-1.1.6.tgz#9737d0e5b8291edd340a3e3264bb8a3b00d5fa23" + integrity sha512-leTPzo4Zvg3pmbQ3rDK69Rl8GQvIqMWubrkxONG9/ojtFE2rD9fjMKfSI5BxW3osRH1m6VdzmqK8oAY9aT4x5w== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.4" + es-abstract "^1.20.4" + +object.fromentries@^2.0.6: + version "2.0.6" + resolved "https://registry.yarnpkg.com/object.fromentries/-/object.fromentries-2.0.6.tgz#cdb04da08c539cffa912dcd368b886e0904bfa73" + integrity sha512-VciD13dswC4j1Xt5394WR4MzmAQmlgN72phd/riNp9vtD7tp4QQWJ0R4wvclXcafgcYK8veHRed2W6XeGBvcfg== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.4" + es-abstract "^1.20.4" + +object.hasown@^1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/object.hasown/-/object.hasown-1.1.2.tgz#f919e21fad4eb38a57bc6345b3afd496515c3f92" + integrity sha512-B5UIT3J1W+WuWIU55h0mjlwaqxiE5vYENJXIXZ4VFe05pNYrkKuK0U/6aFcb0pKywYJh7IhfoqUfKVmrJJHZHw== + dependencies: + define-properties "^1.1.4" + es-abstract "^1.20.4" + +object.values@^1.1.6: + version "1.1.6" + resolved "https://registry.yarnpkg.com/object.values/-/object.values-1.1.6.tgz#4abbaa71eba47d63589d402856f908243eea9b1d" + integrity sha512-FVVTkD1vENCsAcwNs9k6jea2uHC/X0+JcjG8YA60FN5CMaJmG95wT9jek/xX9nornqGRrBkKtzuAu2wuHpKqvw== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.4" + es-abstract "^1.20.4" + +once@^1.3.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" + integrity sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w== + dependencies: + wrappy "1" + +one-time@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/one-time/-/one-time-1.0.0.tgz#e06bc174aed214ed58edede573b433bbf827cb45" + integrity sha512-5DXOiRKwuSEcQ/l0kGCF6Q3jcADFv5tSmRaJck/OqkVFcOzutB134KRSfF0xDrL39MNnqxbHBbUUcjZIhTgb2g== + dependencies: + fn.name "1.x.x" + +optionator@^0.8.1: + version "0.8.3" + resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.8.3.tgz#84fa1d036fe9d3c7e21d99884b601167ec8fb495" + integrity sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA== + dependencies: + deep-is "~0.1.3" + fast-levenshtein "~2.0.6" + levn "~0.3.0" + prelude-ls "~1.1.2" + type-check "~0.3.2" + word-wrap "~1.2.3" + +optionator@^0.9.3: + version "0.9.3" + resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.9.3.tgz#007397d44ed1872fdc6ed31360190f81814e2c64" + integrity sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg== + dependencies: + "@aashutoshrathi/word-wrap" "^1.2.3" + deep-is "^0.1.3" + fast-levenshtein "^2.0.6" + levn "^0.4.1" + prelude-ls "^1.2.1" + type-check "^0.4.0" + +p-limit@^3.0.2: + version "3.1.0" + resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-3.1.0.tgz#e1daccbe78d0d1388ca18c64fea38e3e57e3706b" + integrity sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ== + dependencies: + yocto-queue "^0.1.0" + +p-locate@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-5.0.0.tgz#83c8315c6785005e3bd021839411c9e110e6d834" + integrity sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw== + dependencies: + p-limit "^3.0.2" + +pako@^0.2.5: + version "0.2.9" + resolved "https://registry.yarnpkg.com/pako/-/pako-0.2.9.tgz#f3f7522f4ef782348da8161bad9ecfd51bf83a75" + integrity sha512-NUcwaKxUxWrZLpDG+z/xZaCgQITkA/Dv4V/T6bw7VON6l1Xz/VnrBqrYjZQ12TamKHzITTfOEIYUj48y2KXImA== + +parent-module@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/parent-module/-/parent-module-1.0.1.tgz#691d2709e78c79fae3a156622452d00762caaaa2" + integrity sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g== + dependencies: + callsites "^3.0.0" + +path-exists@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-4.0.0.tgz#513bdbe2d3b95d7762e8c1137efa195c6c61b5b3" + integrity sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w== + +path-is-absolute@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" + integrity sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg== + +path-key@^3.1.0: + version "3.1.1" + resolved "https://registry.yarnpkg.com/path-key/-/path-key-3.1.1.tgz#581f6ade658cbba65a0d3380de7753295054f375" + integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q== + +path-parse@^1.0.7: + version "1.0.7" + resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.7.tgz#fbc114b60ca42b30d9daf5858e4bd68bbedb6735" + integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw== + +path-type@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/path-type/-/path-type-4.0.0.tgz#84ed01c0a7ba380afe09d90a8c180dcd9d03043b" + integrity sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw== + +pdfmake@0.2.7: + version "0.2.7" + resolved "https://registry.yarnpkg.com/pdfmake/-/pdfmake-0.2.7.tgz#a7a46532ffde032674929988393c20b075cf65e3" + integrity sha512-ClLpgx30H5G3EDvRW1MrA1Xih6YxEaSgIVFrOyBMgAAt62V+hxsyWAi6JNP7u1Fc5JKYAbpb4RRVw8Rhvmz5cQ== + dependencies: + "@foliojs-fork/linebreak" "^1.1.1" + "@foliojs-fork/pdfkit" "^0.13.0" + iconv-lite "^0.6.3" + xmldoc "^1.1.2" + +picomatch@^2.3.1: + version "2.3.1" + resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.1.tgz#3ba3833733646d9d3e4995946c1365a67fb07a42" + integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA== + +pluralize@^8.0.0: + version "8.0.0" + resolved "https://registry.yarnpkg.com/pluralize/-/pluralize-8.0.0.tgz#1a6fa16a38d12a1901e0320fa017051c539ce3b1" + integrity sha512-Nc3IT5yHzflTfbjgqWcCPpo7DaKy4FnpB0l/zCAW0Tc7jxAiuqSxHasntB3D7887LSrA93kDJ9IXovxJYxyLCA== + +png-js@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/png-js/-/png-js-1.0.0.tgz#e5484f1e8156996e383aceebb3789fd75df1874d" + integrity sha512-k+YsbhpA9e+EFfKjTCH3VW6aoKlyNYI6NYdTfDL4CIvFnvsuO84ttonmZE7rc+v23SLTH8XX+5w/Ak9v0xGY4g== + +prelude-ls@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.2.1.tgz#debc6489d7a6e6b0e7611888cec880337d316396" + integrity sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g== + +prelude-ls@~1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.1.2.tgz#21932a549f5e52ffd9a827f570e04be62a97da54" + integrity sha512-ESF23V4SKG6lVSGZgYNpbsiaAkdab6ZgOxe52p7+Kid3W3u3bxR4Vfd/o21dmN7jSt0IwgZ4v5MUd26FEtXE9w== + +prettier-linter-helpers@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/prettier-linter-helpers/-/prettier-linter-helpers-1.0.0.tgz#d23d41fe1375646de2d0104d3454a3008802cf7b" + integrity sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w== + dependencies: + fast-diff "^1.1.2" + +prettier@^2.7.1: + version "2.8.8" + resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.8.8.tgz#e8c5d7e98a4305ffe3de2e1fc4aca1a71c28b1da" + integrity sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q== + +process-nextick-args@~2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz#7820d9b16120cc55ca9ae7792680ae7dba6d7fe2" + integrity sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag== + +prop-types@^15.5.4, prop-types@^15.8.1: + version "15.8.1" + resolved "https://registry.yarnpkg.com/prop-types/-/prop-types-15.8.1.tgz#67d87bf1a694f48435cf332c24af10214a3140b5" + integrity sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg== + dependencies: + loose-envify "^1.4.0" + object-assign "^4.1.1" + react-is "^16.13.1" + +punycode@^2.1.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.3.0.tgz#f67fa67c94da8f4d0cfff981aee4118064199b8f" + integrity sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA== + +querystring-browser@1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/querystring-browser/-/querystring-browser-1.0.4.tgz#f2e35881840a819bc7b1bf597faf0979e6622dc6" + integrity sha512-oqPm3iZO4r4lEFM2YAJyMwCqAMIL0r3jO36ZohmHLUs9NpAfEGee7G5+PllGec/TkAnfI85FMmkPaW8UbZI0Uw== + +queue-microtask@^1.2.2: + version "1.2.3" + resolved "https://registry.yarnpkg.com/queue-microtask/-/queue-microtask-1.2.3.tgz#4929228bbc724dfac43e0efb058caf7b6cfb6243" + integrity sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A== + +quote-stream@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/quote-stream/-/quote-stream-1.0.2.tgz#84963f8c9c26b942e153feeb53aae74652b7e0b2" + integrity sha512-kKr2uQ2AokadPjvTyKJQad9xELbZwYzWlNfI3Uz2j/ib5u6H9lDP7fUUR//rMycd0gv4Z5P1qXMfXR8YpIxrjQ== + dependencies: + buffer-equal "0.0.1" + minimist "^1.1.3" + through2 "^2.0.0" + +react-codemirror@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/react-codemirror/-/react-codemirror-1.0.0.tgz#91467b53b1f5d80d916a2fd0b4c7adb85a9001ba" + integrity sha512-pPvL8b1vwLyfX5f3EMLyqZVXYY/qAKdqURYxi3izYfjWbnUdqVaFBA7z78o9eEM+UzgxuKjI864BJkPIRVS2JA== + dependencies: + classnames "^2.2.5" + codemirror "^5.18.2" + create-react-class "^15.5.1" + lodash.debounce "^4.0.8" + lodash.isequal "^4.5.0" + prop-types "^15.5.4" + +react-cookie@^4.0.3: + version "4.1.1" + resolved "https://registry.yarnpkg.com/react-cookie/-/react-cookie-4.1.1.tgz#832e134ad720e0de3e03deaceaab179c4061a19d" + integrity sha512-ffn7Y7G4bXiFbnE+dKhHhbP+b8I34mH9jqnm8Llhj89zF4nPxPutxHT1suUqMeCEhLDBI7InYwf1tpaSoK5w8A== + dependencies: + "@types/hoist-non-react-statics" "^3.0.1" + hoist-non-react-statics "^3.0.0" + universal-cookie "^4.0.0" + +react-is@^16.13.1, react-is@^16.7.0: + version "16.13.1" + resolved "https://registry.yarnpkg.com/react-is/-/react-is-16.13.1.tgz#789729a4dc36de2999dc156dd6c1d9c18cea56a4" + integrity sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ== + +read-last-lines@^1.7.2: + version "1.8.0" + resolved "https://registry.yarnpkg.com/read-last-lines/-/read-last-lines-1.8.0.tgz#4f94d4345ece7b8083ebb71c5fcdf60bd7afb9cc" + integrity sha512-oPL0cnZkhsO2xF7DBrdzVhXSNajPP5TzzCim/2IAjeGb17ArLLTRriI/ceV6Rook3L27mvbrOvLlf9xYYnaftQ== + dependencies: + mz "^2.7.0" + +readable-stream@^2.0.2, readable-stream@^2.2.2, readable-stream@~2.3.3, readable-stream@~2.3.6: + version "2.3.8" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.8.tgz#91125e8042bba1b9887f49345f6277027ce8be9b" + integrity sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA== + dependencies: + core-util-is "~1.0.0" + inherits "~2.0.3" + isarray "~1.0.0" + process-nextick-args "~2.0.0" + safe-buffer "~5.1.1" + string_decoder "~1.1.1" + util-deprecate "~1.0.1" + +readable-stream@^3.4.0, readable-stream@^3.6.0: + version "3.6.2" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.2.tgz#56a9b36ea965c00c5a93ef31eb111a0f11056967" + integrity sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA== + dependencies: + inherits "^2.0.3" + string_decoder "^1.1.1" + util-deprecate "^1.0.1" + +redux-mock-store@^1.5.4: + version "1.5.4" + resolved "https://registry.yarnpkg.com/redux-mock-store/-/redux-mock-store-1.5.4.tgz#90d02495fd918ddbaa96b83aef626287c9ab5872" + integrity sha512-xmcA0O/tjCLXhh9Fuiq6pMrJCwFRaouA8436zcikdIpYWWCjU76CRk+i2bHx8EeiSiMGnB85/lZdU3wIJVXHTA== + dependencies: + lodash.isplainobject "^4.0.6" + +regexp.prototype.flags@^1.2.0, regexp.prototype.flags@^1.4.3: + version "1.5.0" + resolved "https://registry.yarnpkg.com/regexp.prototype.flags/-/regexp.prototype.flags-1.5.0.tgz#fe7ce25e7e4cca8db37b6634c8a2c7009199b9cb" + integrity sha512-0SutC3pNudRKgquxGoRGIz946MZVHqbNfPjBdxeOhBrdgDKlRoXmYLQN9xRbrR09ZXWeGAdPuif7egofn6v5LA== + dependencies: + call-bind "^1.0.2" + define-properties "^1.2.0" + functions-have-names "^1.2.3" + +resolve-from@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-4.0.0.tgz#4abcd852ad32dd7baabfe9b40e00a36db5f392e6" + integrity sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g== + +resolve@1.1.7: + version "1.1.7" + resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.1.7.tgz#203114d82ad2c5ed9e8e0411b3932875e889e97b" + integrity sha512-9znBF0vBcaSN3W2j7wKvdERPwqTxSpCq+if5C0WoTCyV9n24rua28jeuQ2pL/HOf+yUe/Mef+H/5p60K0Id3bg== + +resolve@^1.1.5, resolve@^1.22.0, resolve@^1.22.1, resolve@^1.3.2: + version "1.22.2" + resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.2.tgz#0ed0943d4e301867955766c9f3e1ae6d01c6845f" + integrity sha512-Sb+mjNHOULsBv818T40qSPeRiuWLyaGMa5ewydRLFimneixmVy2zdivRl+AF6jaYPC8ERxGDmFSiqui6SfPd+g== + dependencies: + is-core-module "^2.11.0" + path-parse "^1.0.7" + supports-preserve-symlinks-flag "^1.0.0" + +resolve@^2.0.0-next.4: + version "2.0.0-next.4" + resolved "https://registry.yarnpkg.com/resolve/-/resolve-2.0.0-next.4.tgz#3d37a113d6429f496ec4752d2a2e58efb1fd4660" + integrity sha512-iMDbmAWtfU+MHpxt/I5iWI7cY6YVEZUQ3MBgPQ++XD1PELuJHIl82xBmObyP2KyQmkNB2dsqF7seoQQiAn5yDQ== + dependencies: + is-core-module "^2.9.0" + path-parse "^1.0.7" + supports-preserve-symlinks-flag "^1.0.0" + +reusify@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/reusify/-/reusify-1.0.4.tgz#90da382b1e126efc02146e90845a88db12925d76" + integrity sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw== + +rimraf@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-3.0.2.tgz#f1a5402ba6220ad52cc1282bac1ae3aa49fd061a" + integrity sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA== + dependencies: + glob "^7.1.3" + +run-parallel@^1.1.9: + version "1.2.0" + resolved "https://registry.yarnpkg.com/run-parallel/-/run-parallel-1.2.0.tgz#66d1368da7bdf921eb9d95bd1a9229e7f21a43ee" + integrity sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA== + dependencies: + queue-microtask "^1.2.2" + +safe-buffer@~5.1.0, safe-buffer@~5.1.1: + version "5.1.2" + resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" + integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g== + +safe-buffer@~5.2.0: + version "5.2.1" + resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6" + integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== + +safe-regex-test@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/safe-regex-test/-/safe-regex-test-1.0.0.tgz#793b874d524eb3640d1873aad03596db2d4f2295" + integrity sha512-JBUUzyOgEwXQY1NuPtvcj/qcBDbDmEvWufhlnXZIm75DEHp+afM1r1ujJpJsV/gSM4t59tpDyPi1sd6ZaPFfsA== + dependencies: + call-bind "^1.0.2" + get-intrinsic "^1.1.3" + is-regex "^1.1.4" + +safe-stable-stringify@^2.3.1: + version "2.4.3" + resolved "https://registry.yarnpkg.com/safe-stable-stringify/-/safe-stable-stringify-2.4.3.tgz#138c84b6f6edb3db5f8ef3ef7115b8f55ccbf886" + integrity sha512-e2bDA2WJT0wxseVd4lsDP4+3ONX6HpMXQa1ZhFQ7SU+GjvORCmShbCMltrtIDfkYhVHrOcPtj+KhmDBdPdZD1g== + +"safer-buffer@>= 2.1.2 < 3", "safer-buffer@>= 2.1.2 < 3.0.0": + version "2.1.2" + resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" + integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== + +sax@^1.2.4: + version "1.2.4" + resolved "https://registry.yarnpkg.com/sax/-/sax-1.2.4.tgz#2816234e2378bddc4e5354fab5caa895df7100d9" + integrity sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw== + +scope-analyzer@^2.0.1: + version "2.1.2" + resolved "https://registry.yarnpkg.com/scope-analyzer/-/scope-analyzer-2.1.2.tgz#b958162feb59823c2835c7b0229187a97c77e9cd" + integrity sha512-5cfCmsTYV/wPaRIItNxatw02ua/MThdIUNnUOCYp+3LSEJvnG804ANw2VLaavNILIfWXF1D1G2KNANkBBvInwQ== + dependencies: + array-from "^2.1.1" + dash-ast "^2.0.1" + es6-map "^0.1.5" + es6-set "^0.1.5" + es6-symbol "^3.1.1" + estree-is-function "^1.0.0" + get-assigned-identifiers "^1.1.0" + +semver@5.5.0: + version "5.5.0" + resolved "https://registry.yarnpkg.com/semver/-/semver-5.5.0.tgz#dc4bbc7a6ca9d916dee5d43516f0092b58f7b8ab" + integrity sha512-4SJ3dm0WAwWy/NVeioZh5AntkdJoWKxHxcmyP622fOkgHa4z3R0TdBJICINyaSDE6uNwVc8gZr+ZinwZAH4xIA== + +semver@^5.3.0: + version "5.7.1" + resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7" + integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ== + +semver@^6.3.0: + version "6.3.0" + resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d" + integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw== + +semver@^7.3.7: + version "7.5.4" + resolved "https://registry.yarnpkg.com/semver/-/semver-7.5.4.tgz#483986ec4ed38e1c6c48c34894a9182dbff68a6e" + integrity sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA== + dependencies: + lru-cache "^6.0.0" + +shallow-copy@~0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/shallow-copy/-/shallow-copy-0.0.1.tgz#415f42702d73d810330292cc5ee86eae1a11a170" + integrity sha512-b6i4ZpVuUxB9h5gfCxPiusKYkqTMOjEbBs4wMaFbkfia4yFv92UKZ6Df8WXcKbn08JNL/abvg3FnMAOfakDvUw== + +shebang-command@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-2.0.0.tgz#ccd0af4f8835fbdc265b82461aaf0c36663f34ea" + integrity sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA== + dependencies: + shebang-regex "^3.0.0" + +shebang-regex@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-3.0.0.tgz#ae16f1644d873ecad843b0307b143362d4c42172" + integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A== + +side-channel@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/side-channel/-/side-channel-1.0.4.tgz#efce5c8fdc104ee751b25c58d4290011fa5ea2cf" + integrity sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw== + dependencies: + call-bind "^1.0.0" + get-intrinsic "^1.0.2" + object-inspect "^1.9.0" + +simple-swizzle@^0.2.2: + version "0.2.2" + resolved "https://registry.yarnpkg.com/simple-swizzle/-/simple-swizzle-0.2.2.tgz#a4da6b635ffcccca33f70d17cb92592de95e557a" + integrity sha512-JA//kQgZtbuY83m+xT+tXJkmJncGMTFT+C+g2h2R9uxkYIrE2yy9sgmcLhCnw57/WSD+Eh3J97FPEDFnbXnDUg== + dependencies: + is-arrayish "^0.3.1" + +slash@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/slash/-/slash-3.0.0.tgz#6539be870c165adbd5240220dbe361f1bc4d4634" + integrity sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q== + +source-map@^0.5.6: + version "0.5.7" + resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc" + integrity sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ== + +source-map@~0.1.30: + version "0.1.43" + resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.1.43.tgz#c24bc146ca517c1471f5dacbe2571b2b7f9e3346" + integrity sha512-VtCvB9SIQhk3aF6h+N85EaqIaBFIAfZ9Cu+NJHHVvc8BbEcnvDcFw6sqQ2dQrT6SlOrZq3tIvyD9+EGq/lJryQ== + dependencies: + amdefine ">=0.0.4" + +source-map@~0.6.1: + version "0.6.1" + resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" + integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== + +sourcemap-codec@^1.4.1: + version "1.4.8" + resolved "https://registry.yarnpkg.com/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz#ea804bd94857402e6992d05a38ef1ae35a9ab4c4" + integrity sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA== + +sprintf-js@~1.0.2: + version "1.0.3" + resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c" + integrity sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g== + +stack-trace@0.0.x: + version "0.0.10" + resolved "https://registry.yarnpkg.com/stack-trace/-/stack-trace-0.0.10.tgz#547c70b347e8d32b4e108ea1a2a159e5fdde19c0" + integrity sha512-KGzahc7puUKkzyMt+IqAep+TVNbKP+k2Lmwhub39m1AsTSkaDutx56aDCo+HLDzf/D26BIHTJWNiTG1KAJiQCg== + +static-eval@^2.0.5: + version "2.1.0" + resolved "https://registry.yarnpkg.com/static-eval/-/static-eval-2.1.0.tgz#a16dbe54522d7fa5ef1389129d813fd47b148014" + integrity sha512-agtxZ/kWSsCkI5E4QifRwsaPs0P0JmZV6dkLz6ILYfFYQGn+5plctanRN+IC8dJRiFkyXHrwEE3W9Wmx67uDbw== + dependencies: + escodegen "^1.11.1" + +static-module@^3.0.2: + version "3.0.4" + resolved "https://registry.yarnpkg.com/static-module/-/static-module-3.0.4.tgz#bfbd1d1c38dd1fbbf0bb4af0c1b3ae18a93a2b68" + integrity sha512-gb0v0rrgpBkifXCa3yZXxqVmXDVE+ETXj6YlC/jt5VzOnGXR2C15+++eXuMDUYsePnbhf+lwW0pE1UXyOLtGCw== + dependencies: + acorn-node "^1.3.0" + concat-stream "~1.6.0" + convert-source-map "^1.5.1" + duplexer2 "~0.1.4" + escodegen "^1.11.1" + has "^1.0.1" + magic-string "0.25.1" + merge-source-map "1.0.4" + object-inspect "^1.6.0" + readable-stream "~2.3.3" + scope-analyzer "^2.0.1" + shallow-copy "~0.0.1" + static-eval "^2.0.5" + through2 "~2.0.3" + +string.prototype.matchall@^4.0.8: + version "4.0.8" + resolved "https://registry.yarnpkg.com/string.prototype.matchall/-/string.prototype.matchall-4.0.8.tgz#3bf85722021816dcd1bf38bb714915887ca79fd3" + integrity sha512-6zOCOcJ+RJAQshcTvXPHoxoQGONa3e/Lqx90wUA+wEzX78sg5Bo+1tQo4N0pohS0erG9qtCqJDjNCQBjeWVxyg== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.4" + es-abstract "^1.20.4" + get-intrinsic "^1.1.3" + has-symbols "^1.0.3" + internal-slot "^1.0.3" + regexp.prototype.flags "^1.4.3" + side-channel "^1.0.4" + +string.prototype.trim@^1.2.7: + version "1.2.7" + resolved "https://registry.yarnpkg.com/string.prototype.trim/-/string.prototype.trim-1.2.7.tgz#a68352740859f6893f14ce3ef1bb3037f7a90533" + integrity sha512-p6TmeT1T3411M8Cgg9wBTMRtY2q9+PNy9EV1i2lIXUN/btt763oIfxwN3RR8VU6wHX8j/1CFy0L+YuThm6bgOg== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.4" + es-abstract "^1.20.4" + +string.prototype.trimend@^1.0.6: + version "1.0.6" + resolved "https://registry.yarnpkg.com/string.prototype.trimend/-/string.prototype.trimend-1.0.6.tgz#c4a27fa026d979d79c04f17397f250a462944533" + integrity sha512-JySq+4mrPf9EsDBEDYMOb/lM7XQLulwg5R/m1r0PXEFqrV0qHvl58sdTilSXtKOflCsK2E8jxf+GKC0T07RWwQ== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.4" + es-abstract "^1.20.4" + +string.prototype.trimstart@^1.0.6: + version "1.0.6" + resolved "https://registry.yarnpkg.com/string.prototype.trimstart/-/string.prototype.trimstart-1.0.6.tgz#e90ab66aa8e4007d92ef591bbf3cd422c56bdcf4" + integrity sha512-omqjMDaY92pbn5HOX7f9IccLA+U1tA9GvtU4JrodiXFfYB7jPzzHpRzpglLAjtUV6bB557zwClJezTqnAiYnQA== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.4" + es-abstract "^1.20.4" + +string_decoder@^1.1.1: + version "1.3.0" + resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.3.0.tgz#42f114594a46cf1a8e30b0a84f56c78c3edac21e" + integrity sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA== + dependencies: + safe-buffer "~5.2.0" + +string_decoder@~1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.1.1.tgz#9cf1611ba62685d7030ae9e4ba34149c3af03fc8" + integrity sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg== + dependencies: + safe-buffer "~5.1.0" + +strip-ansi@^6.0.1: + version "6.0.1" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9" + integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== + dependencies: + ansi-regex "^5.0.1" + +strip-bom@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-3.0.0.tgz#2334c18e9c759f7bdd56fdef7e9ae3d588e68ed3" + integrity sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA== + +strip-json-comments@^3.1.0, strip-json-comments@^3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.1.1.tgz#31f1281b3832630434831c310c01cccda8cbe006" + integrity sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig== + +supports-color@^5.3.0: + version "5.5.0" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f" + integrity sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow== + dependencies: + has-flag "^3.0.0" + +supports-color@^7.1.0: + version "7.2.0" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-7.2.0.tgz#1b7dcdcb32b8138801b3e478ba6a51caa89648da" + integrity sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw== + dependencies: + has-flag "^4.0.0" + +supports-preserve-symlinks-flag@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz#6eda4bd344a3c94aea376d4cc31bc77311039e09" + integrity sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w== + +text-hex@1.0.x: + version "1.0.0" + resolved "https://registry.yarnpkg.com/text-hex/-/text-hex-1.0.0.tgz#69dc9c1b17446ee79a92bf5b884bb4b9127506f5" + integrity sha512-uuVGNWzgJ4yhRaNSiubPY7OjISw4sw4E5Uv0wbjp+OzcbmVU/rsT8ujgcXJhn9ypzsgr5vlzpPqP+MBBKcGvbg== + +text-table@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4" + integrity sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw== + +thenify-all@^1.0.0: + version "1.6.0" + resolved "https://registry.yarnpkg.com/thenify-all/-/thenify-all-1.6.0.tgz#1a1918d402d8fc3f98fbf234db0bcc8cc10e9726" + integrity sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA== + dependencies: + thenify ">= 3.1.0 < 4" + +"thenify@>= 3.1.0 < 4": + version "3.3.1" + resolved "https://registry.yarnpkg.com/thenify/-/thenify-3.3.1.tgz#8932e686a4066038a016dd9e2ca46add9838a95f" + integrity sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw== + dependencies: + any-promise "^1.0.0" + +through2@^2.0.0, through2@~2.0.3: + version "2.0.5" + resolved "https://registry.yarnpkg.com/through2/-/through2-2.0.5.tgz#01c1e39eb31d07cb7d03a96a70823260b23132cd" + integrity sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ== + dependencies: + readable-stream "~2.3.6" + xtend "~4.0.1" + +through@~2.3.4: + version "2.3.8" + resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5" + integrity sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg== + +timsort@^0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/timsort/-/timsort-0.3.0.tgz#405411a8e7e6339fe64db9a234de11dc31e02bd4" + integrity sha512-qsdtZH+vMoCARQtyod4imc2nIJwg9Cc7lPRrw9CzF8ZKR0khdr8+2nX80PBhET3tcyTtJDxAffGh2rXH4tyU8A== + +tiny-inflate@^1.0.0, tiny-inflate@^1.0.2: + version "1.0.3" + resolved "https://registry.yarnpkg.com/tiny-inflate/-/tiny-inflate-1.0.3.tgz#122715494913a1805166aaf7c93467933eea26c4" + integrity sha512-pkY1fj1cKHb2seWDy0B16HeWyczlJA9/WW3u3c4z/NiWDsO3DOU5D7nhTLE9CF0yXv/QZFY7sEJmj24dK+Rrqw== + +to-regex-range@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-5.0.1.tgz#1648c44aae7c8d988a326018ed72f5b4dd0392e4" + integrity sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ== + dependencies: + is-number "^7.0.0" + +triple-beam@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/triple-beam/-/triple-beam-1.3.0.tgz#a595214c7298db8339eeeee083e4d10bd8cb8dd9" + integrity sha512-XrHUvV5HpdLmIj4uVMxHggLbFSZYIn7HEWsqePZcI50pco+MPqJ50wMGY794X7AOOhxOBAjbkqfAbEe/QMp2Lw== + +tsconfig-paths@^3.14.1: + version "3.14.2" + resolved "https://registry.yarnpkg.com/tsconfig-paths/-/tsconfig-paths-3.14.2.tgz#6e32f1f79412decd261f92d633a9dc1cfa99f088" + integrity sha512-o/9iXgCYc5L/JxCHPe3Hvh8Q/2xm5Z+p18PESBU6Ff33695QnCHBEjcytY2q19ua7Mbl/DavtBOLq+oG0RCL+g== + dependencies: + "@types/json5" "^0.0.29" + json5 "^1.0.2" + minimist "^1.2.6" + strip-bom "^3.0.0" + +tslib@^1.8.0, tslib@^1.8.1: + version "1.14.1" + resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.14.1.tgz#cf2d38bdc34a134bcaf1091c41f6619e2f672d00" + integrity sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg== + +tslint@^5.11.0: + version "5.20.1" + resolved "https://registry.yarnpkg.com/tslint/-/tslint-5.20.1.tgz#e401e8aeda0152bc44dd07e614034f3f80c67b7d" + integrity sha512-EcMxhzCFt8k+/UP5r8waCf/lzmeSyVlqxqMEDQE7rWYiQky8KpIBz1JAoYXfROHrPZ1XXd43q8yQnULOLiBRQg== + dependencies: + "@babel/code-frame" "^7.0.0" + builtin-modules "^1.1.1" + chalk "^2.3.0" + commander "^2.12.1" + diff "^4.0.1" + glob "^7.1.1" + js-yaml "^3.13.1" + minimatch "^3.0.4" + mkdirp "^0.5.1" + resolve "^1.3.2" + semver "^5.3.0" + tslib "^1.8.0" + tsutils "^2.29.0" + +tsutils@^2.29.0: + version "2.29.0" + resolved "https://registry.yarnpkg.com/tsutils/-/tsutils-2.29.0.tgz#32b488501467acbedd4b85498673a0812aca0b99" + integrity sha512-g5JVHCIJwzfISaXpXE1qvNalca5Jwob6FjI4AoPlqMusJ6ftFE7IkkFoMhVLRgK+4Kx3gkzb8UZK5t5yTTvEmA== + dependencies: + tslib "^1.8.1" + +tsutils@^3.21.0: + version "3.21.0" + resolved "https://registry.yarnpkg.com/tsutils/-/tsutils-3.21.0.tgz#b48717d394cea6c1e096983eed58e9d61715b623" + integrity sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA== + dependencies: + tslib "^1.8.1" + +type-check@^0.4.0, type-check@~0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.4.0.tgz#07b8203bfa7056c0657050e3ccd2c37730bab8f1" + integrity sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew== + dependencies: + prelude-ls "^1.2.1" + +type-check@~0.3.2: + version "0.3.2" + resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.3.2.tgz#5884cab512cf1d355e3fb784f30804b2b520db72" + integrity sha512-ZCmOJdvOWDBYJlzAoFkC+Q0+bUyEOS1ltgp1MGU03fqHG+dbi9tBFU2Rd9QKiDZFAYrhPh2JUf7rZRIuHRKtOg== + dependencies: + prelude-ls "~1.1.2" + +type-fest@^0.20.2: + version "0.20.2" + resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.20.2.tgz#1bf207f4b28f91583666cb5fbd327887301cd5f4" + integrity sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ== + +type@^1.0.1: + version "1.2.0" + resolved "https://registry.yarnpkg.com/type/-/type-1.2.0.tgz#848dd7698dafa3e54a6c479e759c4bc3f18847a0" + integrity sha512-+5nt5AAniqsCnu2cEQQdpzCAh33kVx8n0VoFidKpB1dVVLAN/F+bgVOqOJqOnEnrhp222clB5p3vUlD+1QAnfg== + +type@^2.7.2: + version "2.7.2" + resolved "https://registry.yarnpkg.com/type/-/type-2.7.2.tgz#2376a15a3a28b1efa0f5350dcf72d24df6ef98d0" + integrity sha512-dzlvlNlt6AXU7EBSfpAscydQ7gXB+pPGsPnfJnZpiNJBDj7IaJzQlBZYGdEi4R9HmPdBv2XmWJ6YUtoTa7lmCw== + +typed-array-length@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/typed-array-length/-/typed-array-length-1.0.4.tgz#89d83785e5c4098bec72e08b319651f0eac9c1bb" + integrity sha512-KjZypGq+I/H7HI5HlOoGHkWUUGq+Q0TPhQurLbyrVrvnKTBgzLhIJ7j6J/XTQOi0d1RjyZ0wdas8bKs2p0x3Ng== + dependencies: + call-bind "^1.0.2" + for-each "^0.3.3" + is-typed-array "^1.1.9" + +typedarray@^0.0.6: + version "0.0.6" + resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777" + integrity sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA== + +typescript-eslint-parser@^18.0.0: + version "18.0.0" + resolved "https://registry.yarnpkg.com/typescript-eslint-parser/-/typescript-eslint-parser-18.0.0.tgz#3e5055a44980d69e4154350fc5d8b1ab4e2332a8" + integrity sha512-Pn/A/Cw9ysiXSX5U1xjBmPQlxtWGV2o7jDNiH/u7KgBO2yC/y37wNFl2ogSrGZBQFuglLzGq0Xl0Bt31Jv44oA== + dependencies: + lodash.unescape "4.0.1" + semver "5.5.0" + +typescript@^4.4.2: + version "4.9.5" + resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.9.5.tgz#095979f9bcc0d09da324d58d03ce8f8374cbe65a" + integrity sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g== + +unbox-primitive@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/unbox-primitive/-/unbox-primitive-1.0.2.tgz#29032021057d5e6cdbd08c5129c226dff8ed6f9e" + integrity sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw== + dependencies: + call-bind "^1.0.2" + has-bigints "^1.0.2" + has-symbols "^1.0.3" + which-boxed-primitive "^1.0.2" + +unicode-properties@^1.2.2: + version "1.4.1" + resolved "https://registry.yarnpkg.com/unicode-properties/-/unicode-properties-1.4.1.tgz#96a9cffb7e619a0dc7368c28da27e05fc8f9be5f" + integrity sha512-CLjCCLQ6UuMxWnbIylkisbRj31qxHPAurvena/0iwSVbQ2G1VY5/HjV0IRabOEbDHlzZlRdCrD4NhB0JtU40Pg== + dependencies: + base64-js "^1.3.0" + unicode-trie "^2.0.0" + +unicode-trie@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/unicode-trie/-/unicode-trie-2.0.0.tgz#8fd8845696e2e14a8b67d78fa9e0dd2cad62fec8" + integrity sha512-x7bc76x0bm4prf1VLg79uhAzKw8DVboClSN5VxJuQ+LKDOVEW9CdH+VY7SP+vX7xCYQqzzgQpFqz15zeLvAtZQ== + dependencies: + pako "^0.2.5" + tiny-inflate "^1.0.0" + +universal-cookie@^4.0.0: + version "4.0.4" + resolved "https://registry.yarnpkg.com/universal-cookie/-/universal-cookie-4.0.4.tgz#06e8b3625bf9af049569ef97109b4bb226ad798d" + integrity sha512-lbRVHoOMtItjWbM7TwDLdl8wug7izB0tq3/YVKhT/ahB4VDvWMyvnADfnJI8y6fSvsjh51Ix7lTGC6Tn4rMPhw== + dependencies: + "@types/cookie" "^0.3.3" + cookie "^0.4.0" + +uri-js@^4.2.2: + version "4.4.1" + resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.4.1.tgz#9b1a52595225859e55f669d928f88c6c57f2a77e" + integrity sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg== + dependencies: + punycode "^2.1.0" + +util-deprecate@^1.0.1, util-deprecate@~1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" + integrity sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw== + +which-boxed-primitive@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz#13757bc89b209b049fe5d86430e21cf40a89a8e6" + integrity sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg== + dependencies: + is-bigint "^1.0.1" + is-boolean-object "^1.1.0" + is-number-object "^1.0.4" + is-string "^1.0.5" + is-symbol "^1.0.3" + +which-typed-array@^1.1.9: + version "1.1.9" + resolved "https://registry.yarnpkg.com/which-typed-array/-/which-typed-array-1.1.9.tgz#307cf898025848cf995e795e8423c7f337efbde6" + integrity sha512-w9c4xkx6mPidwp7180ckYWfMmvxpjlZuIudNtDf4N/tTAUB8VJbX25qZoAsrtGuYNnGw3pa0AXgbGKRB8/EceA== + dependencies: + available-typed-arrays "^1.0.5" + call-bind "^1.0.2" + for-each "^0.3.3" + gopd "^1.0.1" + has-tostringtag "^1.0.0" + is-typed-array "^1.1.10" + +which@^2.0.1: + version "2.0.2" + resolved "https://registry.yarnpkg.com/which/-/which-2.0.2.tgz#7c6a8dd0a636a0327e10b59c9286eee93f3f51b1" + integrity sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA== + dependencies: + isexe "^2.0.0" + +winston-transport@^4.4.2: + version "4.5.0" + resolved "https://registry.yarnpkg.com/winston-transport/-/winston-transport-4.5.0.tgz#6e7b0dd04d393171ed5e4e4905db265f7ab384fa" + integrity sha512-YpZzcUzBedhlTAfJg6vJDlyEai/IFMIVcaEZZyl3UXIl4gmqRpU7AE89AHLkbzLUsv0NVmw7ts+iztqKxxPW1Q== + dependencies: + logform "^2.3.2" + readable-stream "^3.6.0" + triple-beam "^1.3.0" + +winston@3.5.1: + version "3.5.1" + resolved "https://registry.yarnpkg.com/winston/-/winston-3.5.1.tgz#b25cc899d015836dbf8c583dec8c4c4483a0da2e" + integrity sha512-tbRtVy+vsSSCLcZq/8nXZaOie/S2tPXPFt4be/Q3vI/WtYwm7rrwidxVw2GRa38FIXcJ1kUM6MOZ9Jmnk3F3UA== + dependencies: + "@dabh/diagnostics" "^2.0.2" + async "^3.2.3" + is-stream "^2.0.0" + logform "^2.3.2" + one-time "^1.0.0" + readable-stream "^3.4.0" + safe-stable-stringify "^2.3.1" + stack-trace "0.0.x" + triple-beam "^1.3.0" + winston-transport "^4.4.2" + +word-wrap@~1.2.3: + version "1.2.3" + resolved "https://registry.yarnpkg.com/word-wrap/-/word-wrap-1.2.3.tgz#610636f6b1f703891bd34771ccb17fb93b47079c" + integrity sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ== + +wrappy@1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" + integrity sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ== + +xmlcreate@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/xmlcreate/-/xmlcreate-1.0.2.tgz#fa6bf762a60a413fb3dd8f4b03c5b269238d308f" + integrity sha512-Mbe56Dvj00onbnSo9J0qj/XlY5bfN9KidsOnpd5tRCsR3ekB3hyyNU9fGrTdqNT5ZNvv4BsA2TcQlignsZyVcw== + +xmldoc@^1.1.2: + version "1.3.0" + resolved "https://registry.yarnpkg.com/xmldoc/-/xmldoc-1.3.0.tgz#7823225b096c74036347c9ec5924d06b6a3cebab" + integrity sha512-y7IRWW6PvEnYQZNZFMRLNJw+p3pezM4nKYPfr15g4OOW9i8VpeydycFuipE2297OvZnh3jSb2pxOt9QpkZUVng== + dependencies: + sax "^1.2.4" + +xtend@^4.0.2, xtend@~4.0.1: + version "4.0.2" + resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.2.tgz#bb72779f5fa465186b1f438f674fa347fdb5db54" + integrity sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ== + +yallist@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/yallist/-/yallist-4.0.0.tgz#9bb92790d9c0effec63be73519e11a35019a3a72" + integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A== + +yocto-queue@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/yocto-queue/-/yocto-queue-0.1.0.tgz#0294eb3dee05028d31ee1a5fa2c556a6aaf10a1b" + integrity sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==