diff --git a/app/react/Charts/components/LibraryChart.js b/app/react/Charts/components/LibraryChart.js
deleted file mode 100644
index 0e2d840b38..0000000000
--- a/app/react/Charts/components/LibraryChart.js
+++ /dev/null
@@ -1,88 +0,0 @@
-import PropTypes from 'prop-types';
-import React, { Component } from 'react';
-import { connect } from 'react-redux';
-import { t } from 'app/I18N';
-
-import { Pie, Bar } from 'app/Charts';
-
-export class LibraryChartComponent extends Component {
- constructor(props) {
- super(props);
- this.state = { type: 'pie' };
- this.maxPieItems = 14;
- this.assignType = this.assignType.bind(this);
- this.typeButton = this.typeButton.bind(this);
- }
-
- assignType(type) {
- return () => {
- this.setState({ type });
- };
- }
-
- clusterResults(options) {
- return options.reduce((_clusteredResults, option, optionIndex) => {
- const clusteredResults = _clusteredResults;
- if (optionIndex < this.maxPieItems) {
- clusteredResults.push(option);
- }
-
- if (optionIndex === this.maxPieItems) {
- clusteredResults.push({ label: t('System', 'Other'), results: option.results });
- }
-
- if (optionIndex > this.maxPieItems) {
- clusteredResults[clusteredResults.length - 1].results += option.results;
- }
-
- return clusteredResults;
- }, []);
- }
-
- typeButton(type) {
- const className = `btn btn-sm ${this.state.type === type ? 'btn-success' : 'btn-default'}`;
- return (
-
- );
- }
-
- render() {
- if (!this.props.options) {
- return null;
- }
-
- const chart =
- this.state.type === 'pie' ? (
-
- ) : (
-
- );
-
- return (
-
-
-
- {this.typeButton('pie')}
- {this.typeButton('bar')}
-
-
{this.props.label}
- {chart}
-
-
- );
- }
-}
-
-LibraryChartComponent.defaultProps = {
- options: [],
- label: null,
-};
-
-LibraryChartComponent.propTypes = {
- options: PropTypes.arrayOf(PropTypes.object),
- label: PropTypes.string,
-};
-
-export default connect()(LibraryChartComponent);
diff --git a/app/react/Charts/components/LibraryCharts.js b/app/react/Charts/components/LibraryCharts.js
deleted file mode 100644
index aed6b37e57..0000000000
--- a/app/react/Charts/components/LibraryCharts.js
+++ /dev/null
@@ -1,131 +0,0 @@
-import React, { Component } from 'react';
-import PropTypes from 'prop-types';
-import { connect } from 'react-redux';
-import { t } from 'app/I18N';
-
-import { parseWithAggregations } from 'app/Library/helpers/libraryFilters';
-
-import { LibraryChart } from 'app/Charts';
-import arrayUtils from '../utils/arrayUtils';
-
-function translateOptions(_property) {
- const property = _property;
- property.options = property.options.map(_option => {
- const option = _option;
- option.label = t(property.content, option.label, null, false);
- return option;
- });
- return property;
-}
-
-function sortFields(_field) {
- const field = _field;
- field.options = arrayUtils.sortValues(field.options);
- return field;
-}
-
-export class LibraryCharts extends Component {
- itemResults(item) {
- const { aggregations } = this;
- const buckets =
- aggregations.all && aggregations.all.types ? aggregations.all.types.buckets : [];
- const found = buckets.find(agg => agg.key === item.id);
-
- if (found) {
- return found.filtered.doc_count;
- }
-
- if (item.items) {
- return item.items.reduce((result, _item) => result + this.itemResults(_item), 0);
- }
-
- return 0;
- }
-
- conformDocumentTypesToFields() {
- let items = this.props.collection.toJS().filters || [];
-
- if (!items.length || this.props.storeKey === 'uploads') {
- items = this.props.templates.toJS().map(tpl => ({ id: tpl._id, name: tpl.name }));
- }
-
- if (this.props.storeKey === 'uploads') {
- items.unshift({ id: 'missing', name: t('System', 'No type') });
- }
-
- const fields = [
- {
- options: items.map(item => ({
- label: t(item.id, item.name),
- results: this.itemResults(item),
- })),
- label: t('System', 'Document and entity types'),
- },
- ];
-
- return fields;
- }
-
- render() {
- let fields = [];
-
- if (this.props.aggregations) {
- this.aggregations = this.props.aggregations.toJS();
-
- if (this.props.fields.size) {
- fields = parseWithAggregations(this.props.fields.toJS(), this.aggregations)
- .filter(
- field =>
- (field.type === 'select' || field.type === 'multiselect') &&
- field.options &&
- field.options.length
- )
- .map(translateOptions)
- .map(sortFields);
- }
-
- fields = fields.length ? fields : this.conformDocumentTypesToFields();
- }
-
- return (
-
-
-
- {fields.map((field, index) => (
-
- ))}
-
-
-
- );
- }
-}
-
-LibraryCharts.propTypes = {
- aggregations: PropTypes.object,
- fields: PropTypes.object,
- collection: PropTypes.object,
- templates: PropTypes.object,
- storeKey: PropTypes.string,
- translationContext: PropTypes.string,
-};
-
-export function mapStateToProps(state, props) {
- const documentTypesExist = props.storeKey && state[props.storeKey].filters.get('documentTypes');
-
- return {
- aggregations: props.storeKey ? state[props.storeKey].aggregations : null,
- fields: props.storeKey ? state[props.storeKey].filters.get('properties') : null,
- collection: state.settings.collection,
- templates: state.templates,
- translationContext: documentTypesExist
- ? state[props.storeKey].filters.getIn(['documentTypes', 0])
- : null,
- };
-}
-
-export default connect(mapStateToProps)(LibraryCharts);
diff --git a/app/react/Charts/components/specs/LibraryChart.spec.js b/app/react/Charts/components/specs/LibraryChart.spec.js
deleted file mode 100644
index 4ea84f1a43..0000000000
--- a/app/react/Charts/components/specs/LibraryChart.spec.js
+++ /dev/null
@@ -1,114 +0,0 @@
-import React from 'react';
-import { shallow } from 'enzyme';
-import { Pie, Bar } from 'app/Charts';
-import { LibraryChartComponent } from '../LibraryChart';
-
-describe('LibraryChart', () => {
- let component;
- let instance;
- let props;
-
- const render = () => {
- component = shallow();
- instance = component.instance();
- };
-
- describe('render()', () => {
- beforeEach(() => {
- props = {
- options: [],
- label: 'chartLabel',
- };
- });
-
- it('should include label', () => {
- render();
- expect(component.find('p').text()).toBe('chartLabel');
- });
-
- describe('type toggle buttons', () => {
- it('should switch between Pie and Bar', () => {
- render();
- const toPieButton = component.find('button').at(0);
- const toBarButton = component.find('button').at(1);
-
- expect(instance.state.type).toBe('pie');
-
- toBarButton.simulate('click');
- expect(instance.state.type).toBe('bar');
-
- toPieButton.simulate('click');
- expect(instance.state.type).toBe('pie');
- });
- });
-
- it('should render a Pie by default', () => {
- render();
- expect(component.find(Pie).length).toBe(1);
- expect(component.find(Bar).length).toBe(0);
-
- expect(component.find(Pie).props().data).toEqual(props.options);
- });
-
- it('should render a Bar if set in type', () => {
- render();
- component.setState({ type: 'chart' });
-
- expect(component.find(Pie).length).toBe(0);
- expect(component.find(Bar).length).toBe(1);
-
- expect(component.find(Bar).props().data).toEqual(props.options);
- expect(component.find(Bar).props().chartLabel).toEqual('chartLabel');
- });
-
- describe('result clustering', () => {
- beforeEach(() => {
- props.options = [
- { label: 'a', results: 1 },
- { label: 'b', results: 1 },
- { label: 'c', results: 3 },
- { label: 'd', results: 1 },
- { label: 'e', results: 1 },
- { label: 'f', results: 7 },
- { label: 'g', results: 1 },
- { label: 'h', results: 1 },
- { label: 'i', results: 1 },
- { label: 'j', results: 1 },
- { label: 'k', results: 1 },
- { label: 'l', results: 1 },
- { label: 'm', results: 1 },
- { label: 'n', results: 1 },
- { label: 'o', results: 1 },
- { label: 'p', results: 1 },
- { label: 'q', results: 1 },
- { label: 'r', results: 2 },
- { label: 's', results: 3 },
- ];
- });
-
- it('should cluster the options for the Pie chart', () => {
- render();
-
- expect(component.find(Pie).props().data).not.toEqual(props.options);
- expect(component.find(Pie).props().data[0]).toEqual(props.options[0]);
- expect(component.find(Pie).props().data[2]).toEqual(props.options[2]);
- expect(component.find(Pie).props().data[5]).toEqual(props.options[5]);
- expect(component.find(Pie).props().data[instance.maxPieItems]).toEqual({
- label: 'Other',
- results: 8,
- });
- });
-
- it('should not cluster the options for the Bar chart', () => {
- render();
- component.setState({ type: 'chart' });
-
- expect(component.find(Bar).props().data).toEqual(props.options);
- expect(component.find(Bar).props().data[instance.maxPieItems]).not.toEqual({
- label: 'Other',
- results: 8,
- });
- });
- });
- });
-});
diff --git a/app/react/Charts/components/specs/LibraryCharts.spec.js b/app/react/Charts/components/specs/LibraryCharts.spec.js
deleted file mode 100644
index 6b469b20f4..0000000000
--- a/app/react/Charts/components/specs/LibraryCharts.spec.js
+++ /dev/null
@@ -1,273 +0,0 @@
-import React from 'react';
-import { shallow } from 'enzyme';
-import { fromJS } from 'immutable';
-import { store } from 'app/store';
-import { t } from 'app/I18N';
-
-import { LibraryCharts, mapStateToProps } from '../LibraryCharts';
-import LibraryChart from '../LibraryChart';
-
-describe('LibraryCharts', () => {
- let component;
- let props;
- let state;
-
- const render = () => {
- component = shallow();
- };
-
- beforeEach(() => {
- t.resetCachedTranslation();
- state = {
- locale: 'es',
- translations: fromJS([
- {
- locale: 'es',
- contexts: [
- {
- id: 'tcontext',
- values: { 'Document and entity types': 'Document and entity types translated' },
- },
- {
- id: 't2',
- values: { t2name: 't2nameTranslated' },
- },
- {
- id: 'cid',
- values: { n: 'nTranslated' },
- },
- ],
- },
- ]),
- };
-
- spyOn(store, 'getState').and.returnValue(state);
- });
-
- describe('When no fields found', () => {
- beforeEach(() => {
- props = {
- aggregations: fromJS({
- all: {
- types: {
- buckets: [
- { key: 't1', label: 't1', filtered: { doc_count: 5 } }, // eslint-disable-line camelcase
- { key: 't2', label: 't2', filtered: { doc_count: 1 } }, // eslint-disable-line camelcase
- { key: 't3', label: 't3', filtered: { doc_count: 10 } }, // eslint-disable-line camelcase
- { key: 'missing', label: 'No value', filtered: { doc_count: 13 } }, // eslint-disable-line camelcase
- ],
- },
- },
- }),
- fields: fromJS([]),
- collection: fromJS({ filters: [] }),
- templates: fromJS([
- { _id: 't1', name: 't1name' },
- { _id: 't2', name: 't2name' },
- { _id: 't3', name: 't3name' },
- ]),
- translationContext: 'tcontext',
- };
- });
-
- it('should render templates types on LibraryChart', () => {
- render();
- expect(component.find(LibraryChart).length).toBe(1);
- const LibraryChartElement = component.find(LibraryChart);
-
- expect(LibraryChartElement.props().label).toBe('Document and entity types translated');
- expect(LibraryChartElement.props().options[0]).toEqual({ label: 't1name', results: 5 });
- expect(LibraryChartElement.props().options[1]).toEqual({
- label: 't2nameTranslated',
- results: 1,
- });
- expect(LibraryChartElement.props().options[2]).toEqual({ label: 't3name', results: 10 });
- });
-
- it('should also include no-type when on uploads', () => {
- props.storeKey = 'uploads';
- render();
- expect(component.find(LibraryChart).length).toBe(1);
- const LibraryChartElement = component.find(LibraryChart);
-
- expect(LibraryChartElement.props().options[0]).toEqual({ label: 'No type', results: 13 });
- expect(LibraryChartElement.props().options[1]).toEqual({ label: 't1name', results: 5 });
- expect(LibraryChartElement.props().options[2]).toEqual({
- label: 't2nameTranslated',
- results: 1,
- });
- expect(LibraryChartElement.props().options[3]).toEqual({ label: 't3name', results: 10 });
- });
-
- it('should add the results of sub-items in filters', () => {
- props.collection = fromJS({
- filters: [
- {
- id: 'g1',
- name: 'group1',
- items: [
- { id: 't1', filtered: { doc_count: 5 } },
- { id: 't2', filtered: { doc_count: 1 } },
- ],
- }, // eslint-disable-line camelcase, max-len
- { id: 't3', name: 't3name', filtered: { doc_count: 10 } }, // eslint-disable-line camelcase
- ],
- });
- render();
- expect(component.find(LibraryChart).length).toBe(1);
- const LibraryChartElement = component.find(LibraryChart);
-
- expect(LibraryChartElement.props().options[0]).toEqual({ label: 'group1', results: 6 });
- expect(LibraryChartElement.props().options[1]).toEqual({ label: 't3name', results: 10 });
- });
- });
-
- describe('When no valid fields found', () => {
- beforeEach(() => {
- props = {
- aggregations: fromJS({
- all: {
- types: {
- buckets: [
- { key: 't1', filtered: { doc_count: 5 } }, // eslint-disable-line camelcase
- { key: 't2', filtered: { doc_count: 1 } }, // eslint-disable-line camelcase
- { key: 't3', filtered: { doc_count: 10 } }, // eslint-disable-line camelcase
- { key: 'missing', filtered: { doc_count: 13 } }, // eslint-disable-line camelcase
- ],
- },
- },
- }),
- fields: fromJS([{ type: 'not-valid' }]),
- collection: fromJS({ filters: [] }),
- templates: fromJS([
- { _id: 't1', name: 't1name' },
- { _id: 't2', name: 't2name' },
- { _id: 't3', name: 't3name' },
- ]),
- translationContext: 'tcontext',
- };
- });
-
- it('should render templates types on LibraryChart', () => {
- render();
- expect(component.find(LibraryChart).length).toBe(1);
- const LibraryChartElement = component.find(LibraryChart);
-
- expect(LibraryChartElement.props().options[0]).toEqual({ label: 't1name', results: 5 });
- expect(LibraryChartElement.props().options[1]).toEqual({
- label: 't2nameTranslated',
- results: 1,
- });
- expect(LibraryChartElement.props().options[2]).toEqual({ label: 't3name', results: 10 });
- });
- });
-
- describe('When fields found', () => {
- beforeEach(() => {
- props = {
- aggregations: fromJS({
- all: {
- types: {
- buckets: [
- { key: 'f1', label: 'f1', filtered: { doc_count: 5 } }, // eslint-disable-line camelcase
- { key: 'f2', label: 'f2', filtered: { doc_count: 1 } }, // eslint-disable-line camelcase
- { key: 'f3', label: 'f3', filtered: { doc_count: 10 } }, // eslint-disable-line camelcase
- ],
- },
- pname: {
- buckets: [
- { key: 'o1', label: 'a', filtered: { doc_count: 10 } }, // eslint-disable-line camelcase
- { key: 'o2', label: 'z', filtered: { doc_count: 8 } }, // eslint-disable-line camelcase
- { key: 'o3', label: 'c', filtered: { doc_count: 8 } }, // eslint-disable-line camelcase
- { key: 'o4', label: 'n', filtered: { doc_count: 8 } }, // eslint-disable-line camelcase
- { key: 'o5', label: 'a', filtered: { doc_count: 2 } }, // eslint-disable-line camelcase
- ],
- },
- },
- }),
- fields: fromJS([
- {
- type: 'select',
- content: 'cid',
- name: 'pname',
- },
- { type: 'not-valid' },
- {
- type: 'multiselect',
- },
- { type: 'multiselect', options: [] },
- ]),
- collection: fromJS({ filters: [] }),
- translationContext: 'tcontext',
- };
- });
-
- it('should render one LibraryChart for each supported field with sorted options', () => {
- render();
- expect(component.find(LibraryChart).length).toBe(1);
-
- const LibraryChartElement1 = component.find(LibraryChart).at(0);
-
- expect(LibraryChartElement1.props().options[0]).toEqual({
- id: 'o1',
- value: 'o1',
- label: 'a',
- results: 10,
- });
- expect(LibraryChartElement1.props().options[1]).toEqual({
- id: 'o3',
- value: 'o3',
- label: 'c',
- results: 8,
- });
- expect(LibraryChartElement1.props().options[2]).toEqual({
- id: 'o4',
- value: 'o4',
- label: 'nTranslated',
- results: 8,
- });
- expect(LibraryChartElement1.props().options[3]).toEqual({
- id: 'o2',
- value: 'o2',
- label: 'z',
- results: 8,
- });
- expect(LibraryChartElement1.props().options[4]).toEqual({
- id: 'o5',
- value: 'o5',
- label: 'a',
- results: 2,
- });
- });
- });
-
- describe('mapStateToProps', () => {
- beforeEach(() => {
- state = {
- a: { aggregations: 'a', filters: fromJS({ properties: 'a', documentTypes: ['dt1'] }) },
- b: { aggregations: 'b', filters: fromJS({ properties: 'b', documentTypes: ['dt2'] }) },
- settings: { collection: 'collection' },
- templates: 'templates',
- };
- });
-
- it('should return aggregations, fields and translation context according to store key', () => {
- expect(mapStateToProps(state, { storeKey: 'a' }).aggregations).toBe('a');
- expect(mapStateToProps(state, { storeKey: 'b' }).aggregations).toBe('b');
- expect(mapStateToProps(state, {}).aggregations).toBe(null);
-
- expect(mapStateToProps(state, { storeKey: 'a' }).fields).toBe('a');
- expect(mapStateToProps(state, { storeKey: 'b' }).fields).toBe('b');
- expect(mapStateToProps(state, {}).fields).toBe(null);
-
- expect(mapStateToProps(state, { storeKey: 'a' }).translationContext).toBe('dt1');
- expect(mapStateToProps(state, { storeKey: 'b' }).translationContext).toBe('dt2');
- expect(mapStateToProps(state, {}).translationContext).toBe(null);
- });
-
- it('should return collection and templates', () => {
- expect(mapStateToProps(state, {}).collection).toBe('collection');
- expect(mapStateToProps(state, {}).templates).toBe('templates');
- });
- });
-});
diff --git a/app/react/Charts/index.js b/app/react/Charts/index.js
index 7a67e2dd22..5a3bd3fb37 100644
--- a/app/react/Charts/index.js
+++ b/app/react/Charts/index.js
@@ -2,8 +2,6 @@ import loadable from '@loadable/component';
import colorScheme from './utils/colorScheme';
import arrayUtils from './utils/arrayUtils';
-import LibraryChart from './components/LibraryChart';
-import LibraryCharts from './components/LibraryCharts';
import ExtendedTooltip from './components/ExtendedTooltip';
const Bar = loadable(
@@ -25,14 +23,4 @@ const StackedDualBarChart = loadable(
)
);
-export {
- Bar,
- ColoredBar,
- ExtendedTooltip,
- LibraryChart,
- LibraryCharts,
- Pie,
- StackedDualBarChart,
- colorScheme,
- arrayUtils,
-};
+export { Bar, ColoredBar, ExtendedTooltip, Pie, StackedDualBarChart, colorScheme, arrayUtils };
diff --git a/app/react/Markdown/utils.js b/app/react/Markdown/utils.js
index 8773c39a13..682ae8182f 100644
--- a/app/react/Markdown/utils.js
+++ b/app/react/Markdown/utils.js
@@ -52,8 +52,6 @@ const customExtendedTags = [
'bar',
'tooltip',
'stackeddualbarchart',
- 'librarychart',
- 'librarycharts',
'coloredbar',
'extendedtooltip',
];
diff --git a/package.json b/package.json
index 0606d747c6..5ea40eb1da 100644
--- a/package.json
+++ b/package.json
@@ -1,6 +1,6 @@
{
"name": "uwazi",
- "version": "1.195.0-rc8",
+ "version": "1.196.0-rc3",
"description": "Uwazi is a free, open-source solution for organising, analysing and publishing your documents.",
"keywords": [
"react"
@@ -86,7 +86,7 @@
"cross-spawn": "^7.0.5"
},
"dependencies": {
- "@aws-sdk/client-s3": "3.726.0",
+ "@aws-sdk/client-s3": "3.726.1",
"@dnd-kit/core": "^6.3.1",
"@dnd-kit/modifiers": "^9.0.0",
"@dnd-kit/sortable": "^10.0.0",
@@ -160,7 +160,7 @@
"isomorphic-fetch": "3.0.0",
"jotai": "2.11.0",
"json-schema": "^0.4.0",
- "json-schema-to-typescript": "^15.0.3",
+ "json-schema-to-typescript": "^15.0.4",
"jvent": "1.0.2",
"leaflet": "^1.9.4",
"leaflet.gridlayer.googlemutant": "^0.14.1",
@@ -250,11 +250,11 @@
"@4tw/cypress-drag-drop": "^2.2.5",
"@babel/cli": "7.26.4",
"@babel/core": "7.26.0",
- "@babel/eslint-parser": "7.25.9",
+ "@babel/eslint-parser": "7.26.5",
"@babel/helper-call-delegate": "^7.12.13",
"@babel/helper-get-function-arity": "^7.16.7",
"@babel/helper-string-parser": "^7.25.9",
- "@babel/parser": "^7.26.3",
+ "@babel/parser": "^7.26.5",
"@babel/plugin-proposal-class-properties": "^7.18.6",
"@babel/plugin-proposal-nullish-coalescing-operator": "^7.18.6",
"@babel/plugin-proposal-object-rest-spread": "^7.20.7",
@@ -267,7 +267,7 @@
"@babel/preset-react": "^7.26.3",
"@babel/preset-typescript": "^7.26.0",
"@babel/register": "^7.25.9",
- "@babel/traverse": "^7.26.4",
+ "@babel/traverse": "^7.26.5",
"@cfaester/enzyme-adapter-react-18": "^0.8.0",
"@chromatic-com/storybook": "^3.2.3",
"@cypress/react18": "^2.0.1",
@@ -351,7 +351,7 @@
"eslint-plugin-jsx-a11y": "6.10.2",
"eslint-plugin-node": "^11.1.0",
"eslint-plugin-prettier": "5.2.1",
- "eslint-plugin-react": "v7.37.3",
+ "eslint-plugin-react": "v7.37.4",
"eslint-plugin-react-hooks": "^5.1.0",
"eslint-plugin-storybook": "^0.11.2",
"fetch-mock": "^9.11.0",
@@ -370,13 +370,13 @@
"node-polyfill-webpack-plugin": "^4.1.0",
"nodemon": "^3.1.9",
"plop": "^4.0.1",
- "postcss": "8.4.49",
+ "postcss": "8.5.0",
"prettier": "3.4.2",
"puppeteer": "^13.5.2",
"react-dnd-test-backend": "16.0.1",
"redux-mock-store": "^1.5.5",
"rtlcss-webpack-plugin": "4.0.7",
- "sass": "1.83.1",
+ "sass": "1.83.4",
"sass-loader": "16.0.4",
"storybook": "^8.1.11",
"stream-mock": "^2.0.5",
diff --git a/yarn.lock b/yarn.lock
index 2b090c5090..aba63c7b8b 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -107,16 +107,16 @@
"@smithy/util-utf8" "^2.0.0"
tslib "^2.6.2"
-"@aws-sdk/client-s3@3.726.0":
- version "3.726.0"
- resolved "https://registry.yarnpkg.com/@aws-sdk/client-s3/-/client-s3-3.726.0.tgz#eb065d900c7c5a04f3bcd36f32b2801a76d6b4ab"
- integrity sha512-cxn2WvOCfGrME2xygWbfj/vIf2sIdv/UbQ9zJbN4aK6rpYQf/e/YtY/HIPkejCuw2Iwqm4jfDGFqaUcwu3nFew==
+"@aws-sdk/client-s3@3.726.1":
+ version "3.726.1"
+ resolved "https://registry.yarnpkg.com/@aws-sdk/client-s3/-/client-s3-3.726.1.tgz#05e9ae74be18758fc9d05a053777a8bb919fb24c"
+ integrity sha512-UpOGcob87DiuS2d3fW6vDZg94g57mNiOSkzvR/6GOdvBSlUgk8LLwVzGASB71FdKMl1EGEr4MeD5uKH9JsG+dw==
dependencies:
"@aws-crypto/sha1-browser" "5.2.0"
"@aws-crypto/sha256-browser" "5.2.0"
"@aws-crypto/sha256-js" "5.2.0"
"@aws-sdk/client-sso-oidc" "3.726.0"
- "@aws-sdk/client-sts" "3.726.0"
+ "@aws-sdk/client-sts" "3.726.1"
"@aws-sdk/core" "3.723.0"
"@aws-sdk/credential-provider-node" "3.726.0"
"@aws-sdk/middleware-bucket-endpoint" "3.726.0"
@@ -260,10 +260,10 @@
"@smithy/util-utf8" "^4.0.0"
tslib "^2.6.2"
-"@aws-sdk/client-sts@3.726.0":
- version "3.726.0"
- resolved "https://registry.yarnpkg.com/@aws-sdk/client-sts/-/client-sts-3.726.0.tgz#d878419a0bac65f5bf975c4d94efad5029e46932"
- integrity sha512-047EqXv2BAn/43eP92zsozPnR3paFFMsj5gjytx9kGNtp+WV0fUZNztCOobtouAxBY0ZQ8Xx5RFnmjpRb6Kjsg==
+"@aws-sdk/client-sts@3.726.1":
+ version "3.726.1"
+ resolved "https://registry.yarnpkg.com/@aws-sdk/client-sts/-/client-sts-3.726.1.tgz#49ab471db7e04792db24e181f8bb8c7787739b34"
+ integrity sha512-qh9Q9Vu1hrM/wMBOBIaskwnE4GTFaZu26Q6WHwyWNfj7J8a40vBxpW16c2vYXHLBtwRKM1be8uRLkmDwghpiNw==
dependencies:
"@aws-crypto/sha256-browser" "5.2.0"
"@aws-crypto/sha256-js" "5.2.0"
@@ -692,22 +692,22 @@
json5 "^2.2.3"
semver "^6.3.1"
-"@babel/eslint-parser@7.25.9":
- version "7.25.9"
- resolved "https://registry.yarnpkg.com/@babel/eslint-parser/-/eslint-parser-7.25.9.tgz#603c68a63078796527bc9d0833f5e52dd5f9224c"
- integrity sha512-5UXfgpK0j0Xr/xIdgdLEhOFxaDZ0bRPWJJchRpqOSur/3rZoPbqqki5mm0p4NE2cs28krBEiSM2MB7//afRSQQ==
+"@babel/eslint-parser@7.26.5":
+ version "7.26.5"
+ resolved "https://registry.yarnpkg.com/@babel/eslint-parser/-/eslint-parser-7.26.5.tgz#aa669f4d873f9cd617050cf3c40c19cd96307efb"
+ integrity sha512-Kkm8C8uxI842AwQADxl0GbcG1rupELYLShazYEZO/2DYjhyWXJIOUVOE3tBYm6JXzUCNJOZEzqc4rCW/jsEQYQ==
dependencies:
"@nicolo-ribaudo/eslint-scope-5-internals" "5.1.1-v1"
eslint-visitor-keys "^2.1.0"
semver "^6.3.1"
-"@babel/generator@^7.26.0", "@babel/generator@^7.26.3", "@babel/generator@^7.7.2":
- version "7.26.3"
- resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.26.3.tgz#ab8d4360544a425c90c248df7059881f4b2ce019"
- integrity sha512-6FF/urZvD0sTeO7k6/B15pMLC4CHUv1426lzr3N01aHJTl046uCAh9LXW/fzeXXjPNCJ6iABW5XaWOsIZB93aQ==
+"@babel/generator@^7.26.0", "@babel/generator@^7.26.5", "@babel/generator@^7.7.2":
+ version "7.26.5"
+ resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.26.5.tgz#e44d4ab3176bbcaf78a5725da5f1dc28802a9458"
+ integrity sha512-2caSP6fN9I7HOe6nqhtft7V4g7/V/gfDsC3Ag4W7kEzzvRGKqiv0pu0HogPiZ3KaVSoNDhUws6IJjDjpfmYIXw==
dependencies:
- "@babel/parser" "^7.26.3"
- "@babel/types" "^7.26.3"
+ "@babel/parser" "^7.26.5"
+ "@babel/types" "^7.26.5"
"@jridgewell/gen-mapping" "^0.3.5"
"@jridgewell/trace-mapping" "^0.3.25"
jsesc "^3.0.2"
@@ -896,12 +896,12 @@
"@babel/template" "^7.25.9"
"@babel/types" "^7.26.0"
-"@babel/parser@^7.1.0", "@babel/parser@^7.14.7", "@babel/parser@^7.20.7", "@babel/parser@^7.23.9", "@babel/parser@^7.25.9", "@babel/parser@^7.26.0", "@babel/parser@^7.26.3":
- version "7.26.3"
- resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.26.3.tgz#8c51c5db6ddf08134af1ddbacf16aaab48bac234"
- integrity sha512-WJ/CvmY8Mea8iDXo6a7RK2wbmJITT5fN3BEkRuFlxVyNx8jOKIIhmC4fSkTcPcf8JyavbBwIe6OpiCOBXt/IcA==
+"@babel/parser@^7.1.0", "@babel/parser@^7.14.7", "@babel/parser@^7.20.7", "@babel/parser@^7.23.9", "@babel/parser@^7.25.9", "@babel/parser@^7.26.0", "@babel/parser@^7.26.5":
+ version "7.26.5"
+ resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.26.5.tgz#6fec9aebddef25ca57a935c86dbb915ae2da3e1f"
+ integrity sha512-SRJ4jYmXRqV1/Xc+TIVG84WjHBXKlxO9sHQnA2Pf12QQEAp1LOh6kDzNHXcUnbH1QI0FDoPPVOt+vyUDucxpaw==
dependencies:
- "@babel/types" "^7.26.3"
+ "@babel/types" "^7.26.5"
"@babel/plugin-bugfix-firefox-class-in-computed-class-key@^7.25.9":
version "7.25.9"
@@ -1691,23 +1691,23 @@
"@babel/parser" "^7.25.9"
"@babel/types" "^7.25.9"
-"@babel/traverse@^7.18.9", "@babel/traverse@^7.25.9", "@babel/traverse@^7.26.4":
- version "7.26.4"
- resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.26.4.tgz#ac3a2a84b908dde6d463c3bfa2c5fdc1653574bd"
- integrity sha512-fH+b7Y4p3yqvApJALCPJcwb0/XaOSgtK4pzV6WVjPR5GLFQBRI7pfoX2V2iM48NXvX07NUxxm1Vw98YjqTcU5w==
+"@babel/traverse@^7.18.9", "@babel/traverse@^7.25.9", "@babel/traverse@^7.26.5":
+ version "7.26.5"
+ resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.26.5.tgz#6d0be3e772ff786456c1a37538208286f6e79021"
+ integrity sha512-rkOSPOw+AXbgtwUga3U4u8RpoK9FEFWBNAlTpcnkLFjL5CT+oyHNuUUC/xx6XefEJ16r38r8Bc/lfp6rYuHeJQ==
dependencies:
"@babel/code-frame" "^7.26.2"
- "@babel/generator" "^7.26.3"
- "@babel/parser" "^7.26.3"
+ "@babel/generator" "^7.26.5"
+ "@babel/parser" "^7.26.5"
"@babel/template" "^7.25.9"
- "@babel/types" "^7.26.3"
+ "@babel/types" "^7.26.5"
debug "^4.3.1"
globals "^11.1.0"
-"@babel/types@^7.0.0", "@babel/types@^7.12.13", "@babel/types@^7.16.7", "@babel/types@^7.18.9", "@babel/types@^7.20.7", "@babel/types@^7.24.7", "@babel/types@^7.25.9", "@babel/types@^7.26.0", "@babel/types@^7.26.3", "@babel/types@^7.3.3", "@babel/types@^7.4.4":
- version "7.26.3"
- resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.26.3.tgz#37e79830f04c2b5687acc77db97fbc75fb81f3c0"
- integrity sha512-vN5p+1kl59GVKMvTHt55NzzmYVxprfJD+ql7U9NFIfKCBkYE55LYtS+WtPlaYOyzydrKI8Nezd+aZextrd+FMA==
+"@babel/types@^7.0.0", "@babel/types@^7.12.13", "@babel/types@^7.16.7", "@babel/types@^7.18.9", "@babel/types@^7.20.7", "@babel/types@^7.24.7", "@babel/types@^7.25.9", "@babel/types@^7.26.0", "@babel/types@^7.26.5", "@babel/types@^7.3.3", "@babel/types@^7.4.4":
+ version "7.26.5"
+ resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.26.5.tgz#7a1e1c01d28e26d1fe7f8ec9567b3b92b9d07747"
+ integrity sha512-L6mZmwFDK6Cjh1nRCLXpa6no13ZIioJDz7mdkzHv399pThrTa/k0nUlNaenOeh2kWu/iaOQYElEpKPUswUa9Vg==
dependencies:
"@babel/helper-string-parser" "^7.25.9"
"@babel/helper-validator-identifier" "^7.25.9"
@@ -2800,9 +2800,9 @@
"@types/mdx" "^2.0.0"
"@mongodb-js/saslprep@^1.1.0":
- version "1.1.0"
- resolved "https://registry.yarnpkg.com/@mongodb-js/saslprep/-/saslprep-1.1.0.tgz#022fa36620a7287d17acd05c4aae1e5f390d250d"
- integrity sha512-Xfijy7HvfzzqiOAhAepF4SGN5e9leLkMvg/OPOF97XemjfVCYN/oWa75wnkc6mltMSTwY+XlbhWgUOJmkFspSw==
+ version "1.1.9"
+ resolved "https://registry.yarnpkg.com/@mongodb-js/saslprep/-/saslprep-1.1.9.tgz#e974bab8eca9faa88677d4ea4da8d09a52069004"
+ integrity sha512-tVkljjeEaAhCqTzajSdgbQ6gE6f3oneVwa3iXR6csiEwXXOFsiC6Uh9iAjAhXPtqa/XMDHWjjeNH/77m/Yq2dw==
dependencies:
sparse-bitfield "^3.0.3"
@@ -6215,9 +6215,9 @@ bser@^2.0.0:
node-int64 "^0.4.0"
bson@^6.2.0:
- version "6.5.0"
- resolved "https://registry.yarnpkg.com/bson/-/bson-6.5.0.tgz#fc4828d065e64e48ea442b1a23099b2e52f7ff0b"
- integrity sha512-DXf1BTAS8vKyR90BO4x5v3rKVarmkdkzwOrnYDFdjAY694ILNDkmA3uRh1xXJEl+C1DAh8XCvAQ+Gh3kzubtpg==
+ version "6.10.1"
+ resolved "https://registry.yarnpkg.com/bson/-/bson-6.10.1.tgz#dcd04703178f5ecf5b25de04edd2a95ec79385d3"
+ integrity sha512-P92xmHDQjSKPLHqFxefqMxASNq/aWJMEZugpCjf+AF/pgcUpMMQCg7t7+ewko0/u8AapvF3luf/FoehddEK+sA==
buffer-crc32@^1.0.0:
version "1.0.0"
@@ -8677,10 +8677,10 @@ eslint-plugin-react-hooks@^5.1.0:
resolved "https://registry.yarnpkg.com/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-5.1.0.tgz#3d34e37d5770866c34b87d5b499f5f0b53bf0854"
integrity sha512-mpJRtPgHN2tNAvZ35AMfqeB3Xqeo273QxrHJsbBEPWODRM4r0yB6jfoROqKEYrOn27UtRPpcpHc2UqyBSuUNTw==
-eslint-plugin-react@v7.37.3:
- version "7.37.3"
- resolved "https://registry.yarnpkg.com/eslint-plugin-react/-/eslint-plugin-react-7.37.3.tgz#567549e9251533975c4ea9706f986c3a64832031"
- integrity sha512-DomWuTQPFYZwF/7c9W2fkKkStqZmBd3uugfqBYLdkZ3Hii23WzZuOLUskGxB8qkSKqftxEeGL1TB2kMhrce0jA==
+eslint-plugin-react@v7.37.4:
+ version "7.37.4"
+ resolved "https://registry.yarnpkg.com/eslint-plugin-react/-/eslint-plugin-react-7.37.4.tgz#1b6c80b6175b6ae4b26055ae4d55d04c414c7181"
+ integrity sha512-BGP0jRmfYyvOyvMoRX/uoUeW+GqNj9y16bPQzqAHf3AYII/tDs+jMN0dBVkl88/OZwNGwrVFxE7riHsXVfy/LQ==
dependencies:
array-includes "^3.1.8"
array.prototype.findlast "^1.2.5"
@@ -11697,10 +11697,10 @@ json-parse-even-better-errors@^2.3.0, json-parse-even-better-errors@^2.3.1:
resolved "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz"
integrity sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==
-json-schema-to-typescript@^15.0.3:
- version "15.0.3"
- resolved "https://registry.yarnpkg.com/json-schema-to-typescript/-/json-schema-to-typescript-15.0.3.tgz#a58bc3e00e4480e76a8ee79471c01233494913be"
- integrity sha512-iOKdzTUWEVM4nlxpFudFsWyUiu/Jakkga4OZPEt7CGoSEsAsUgdOZqR6pcgx2STBek9Gm4hcarJpXSzIvZ/hKA==
+json-schema-to-typescript@^15.0.4:
+ version "15.0.4"
+ resolved "https://registry.yarnpkg.com/json-schema-to-typescript/-/json-schema-to-typescript-15.0.4.tgz#a530c7f17312503b262ae12233749732171840f3"
+ integrity sha512-Su9oK8DR4xCmDsLlyvadkXzX6+GGXJpbhwoLtOGArAG61dvbW4YQmSEno2y66ahpIdmLMg6YUf/QHLgiwvkrHQ==
dependencies:
"@apidevtools/json-schema-ref-parser" "^11.5.5"
"@types/json-schema" "^7.0.15"
@@ -12627,10 +12627,10 @@ n-gram@^1.0.0:
version "1.0.1"
resolved "https://registry.npmjs.org/n-gram/-/n-gram-1.0.1.tgz"
-nanoid@^3.3.7:
- version "3.3.7"
- resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.7.tgz#d0c301a691bc8d54efa0a2226ccf3fe2fd656bd8"
- integrity sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==
+nanoid@^3.3.8:
+ version "3.3.8"
+ resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.8.tgz#b1be3030bee36aaff18bacb375e5cce521684baf"
+ integrity sha512-WNLf5Sd8oZxOm+TzppcYk8gVOgP+l58xNy58D0nbUnOxOWRWvlcCV4kUF7ltmI6PsrLl/BgKEyS4mqsGChFN0w==
natural-compare-lite@^1.4.0:
version "1.4.0"
@@ -13895,12 +13895,12 @@ postcss-value-parser@^4.0.0, postcss-value-parser@^4.1.0, postcss-value-parser@^
resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz#723c09920836ba6d3e5af019f92bc0971c02e514"
integrity sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==
-postcss@8.4.49, postcss@^8.3.11, postcss@^8.4.21, postcss@^8.4.33, postcss@^8.4.38, postcss@^8.4.47:
- version "8.4.49"
- resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.49.tgz#4ea479048ab059ab3ae61d082190fabfd994fe19"
- integrity sha512-OCVPnIObs4N29kxTjzLfUryOkvZEq+pf8jTF0lg8E7uETuWHA+v7j3c/xJmiqpX450191LlmZfUKkXxkTry7nA==
+postcss@8.5.0, postcss@^8.3.11, postcss@^8.4.21, postcss@^8.4.33, postcss@^8.4.38, postcss@^8.4.47:
+ version "8.5.0"
+ resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.5.0.tgz#15244b9fd65f809b2819682456f0e7e1e30c145b"
+ integrity sha512-27VKOqrYfPncKA2NrFOVhP5MGAfHKLYn/Q0mz9cNQyRAKYi3VNHwYU2qKKqPCqgBmeeJ0uAFB56NumXZ5ZReXg==
dependencies:
- nanoid "^3.3.7"
+ nanoid "^3.3.8"
picocolors "^1.1.1"
source-map-js "^1.2.1"
@@ -15127,10 +15127,10 @@ sass-loader@16.0.4:
dependencies:
neo-async "^2.6.2"
-sass@1.83.1:
- version "1.83.1"
- resolved "https://registry.yarnpkg.com/sass/-/sass-1.83.1.tgz#dee1ab94b47a6f9993d3195d36f556bcbda64846"
- integrity sha512-EVJbDaEs4Rr3F0glJzFSOvtg2/oy2V/YrGFPqPY24UqcLDWcI9ZY5sN+qyO3c/QCZwzgfirvhXvINiJCE/OLcA==
+sass@1.83.4:
+ version "1.83.4"
+ resolved "https://registry.yarnpkg.com/sass/-/sass-1.83.4.tgz#5ccf60f43eb61eeec300b780b8dcb85f16eec6d1"
+ integrity sha512-B1bozCeNQiOgDcLd33e2Cs2U60wZwjUUXzh900ZyQF5qUasvMdDZYbQ566LJu7cqR+sAHlAfO6RMkaID5s6qpA==
dependencies:
chokidar "^4.0.0"
immutable "^5.0.2"
@@ -15692,16 +15692,7 @@ string-length@^4.0.1:
char-regex "^1.0.2"
strip-ansi "^6.0.0"
-"string-width-cjs@npm:string-width@^4.2.0":
- version "4.2.3"
- resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010"
- integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==
- dependencies:
- emoji-regex "^8.0.0"
- is-fullwidth-code-point "^3.0.0"
- strip-ansi "^6.0.1"
-
-string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.3:
+"string-width-cjs@npm:string-width@^4.2.0", string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.3:
version "4.2.3"
resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010"
integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==
@@ -15829,14 +15820,7 @@ string_decoder@~1.1.1:
dependencies:
safe-buffer "~5.1.0"
-"strip-ansi-cjs@npm: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-ansi@^6.0.0, strip-ansi@^6.0.1:
+"strip-ansi-cjs@npm:strip-ansi@^6.0.1", strip-ansi@^6.0.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==
@@ -17272,7 +17256,7 @@ world-countries@5.0.0:
resolved "https://registry.yarnpkg.com/world-countries/-/world-countries-5.0.0.tgz#6f75ebcce3d5224d84e9117eaf0d75a7726b6501"
integrity sha512-wAfOT9Y5i/xnxNOdKJKXdOCw9Q3yQLahBUeuRol+s+o20F6h2a4tLEbJ1lBCYwEQ30Sf9Meqeipk1gib3YwF5w==
-"wrap-ansi-cjs@npm:wrap-ansi@^7.0.0":
+"wrap-ansi-cjs@npm:wrap-ansi@^7.0.0", wrap-ansi@^7.0.0:
version "7.0.0"
resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43"
integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==
@@ -17290,15 +17274,6 @@ wrap-ansi@^6.2.0:
string-width "^4.1.0"
strip-ansi "^6.0.0"
-wrap-ansi@^7.0.0:
- version "7.0.0"
- resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43"
- integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==
- dependencies:
- ansi-styles "^4.0.0"
- string-width "^4.1.0"
- strip-ansi "^6.0.0"
-
wrap-ansi@^8.1.0:
version "8.1.0"
resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-8.1.0.tgz#56dc22368ee570face1b49819975d9b9a5ead214"