supporting pasting image into topic message

This commit is contained in:
root 2023-06-25 01:04:45 -07:00
parent 0cd14d8bba
commit 11fdcf621f
5 changed files with 1208 additions and 671 deletions

View File

@ -120,7 +120,7 @@ func sendRemoteNotification(notification *store.Notification) {
if err != nil { if err != nil {
ErrMsg(err) ErrMsg(err)
} }
if resp.StatusCode != 200 { if resp == nil || resp.StatusCode != 200 {
LogMsg("failed to notify contact") LogMsg("failed to notify contact")
} }
} else { } else {

1637
net/web/package-lock.json generated

File diff suppressed because it is too large Load Diff

View File

@ -16,6 +16,7 @@
} }
}, },
"dependencies": { "dependencies": {
"@charliewilco/gluejar": "^1.0.0",
"@testing-library/jest-dom": "^5.14.1", "@testing-library/jest-dom": "^5.14.1",
"@testing-library/user-event": "^13.2.1", "@testing-library/user-event": "^13.2.1",
"antd": "^5.0.4", "antd": "^5.0.4",

View File

@ -7,6 +7,7 @@ import { SketchPicker } from "react-color";
import { AudioFile } from './audioFile/AudioFile'; import { AudioFile } from './audioFile/AudioFile';
import { VideoFile } from './videoFile/VideoFile'; import { VideoFile } from './videoFile/VideoFile';
import { Carousel } from 'carousel/Carousel'; import { Carousel } from 'carousel/Carousel';
import { Gluejar } from '@charliewilco/gluejar'
export function AddTopic({ contentKey }) { export function AddTopic({ contentKey }) {
@ -41,6 +42,15 @@ export function AddTopic({ contentKey }) {
} }
}; };
const pasteImage = async (e) => {
if (e.images.length > 0) {
var data = await fetch(e.images[0]);
var blob = await data.blob();
actions.addImage(blob);
e.images.length = 0;
}
}
const onSelectImage = (e) => { const onSelectImage = (e) => {
actions.addImage(e.target.files[0]); actions.addImage(e.target.files[0]);
attachImage.current.value = ''; attachImage.current.value = '';
@ -94,6 +104,9 @@ export function AddTopic({ contentKey }) {
return ( return (
<AddTopicWrapper> <AddTopicWrapper>
{ modalContext } { modalContext }
<Gluejar onPaste={files => pasteImage(files)} onError={err => console.error(err)} acceptedFiles={['image/png', 'image/jpeg', 'image/bmp']} />
<input type='file' name="asset" accept="image/*" ref={attachImage} onChange={e => onSelectImage(e)} style={{display: 'none'}}/> <input type='file' name="asset" accept="image/*" ref={attachImage} onChange={e => onSelectImage(e)} style={{display: 'none'}}/>
<input type='file' name="asset" accept="audio/*" ref={attachAudio} onChange={e => onSelectAudio(e)} style={{display: 'none'}}/> <input type='file' name="asset" accept="audio/*" ref={attachAudio} onChange={e => onSelectAudio(e)} style={{display: 'none'}}/>
<input type='file' name="asset" accept="video/*" ref={attachVideo} onChange={e => onSelectVideo(e)} style={{display: 'none'}}/> <input type='file' name="asset" accept="video/*" ref={attachVideo} onChange={e => onSelectVideo(e)} style={{display: 'none'}}/>

View File

@ -1126,6 +1126,11 @@
resolved "https://registry.npmjs.org/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz" resolved "https://registry.npmjs.org/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz"
integrity sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw== integrity sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==
"@charliewilco/gluejar@^1.0.0":
version "1.0.0"
resolved "https://registry.yarnpkg.com/@charliewilco/gluejar/-/gluejar-1.0.0.tgz#f228e8130d4e23401c119f32e27e5353c544c58e"
integrity sha512-tVvd/7VPK/3bzqYRxyrbZpG25Nf5jnJs5fUTEp00FKDa4Tk3nucju4pbmdX+h4TsZ9bJZc00iPCdoOiv6pOPOg==
"@csstools/normalize.css@*": "@csstools/normalize.css@*":
version "12.0.0" version "12.0.0"
resolved "https://registry.npmjs.org/@csstools/normalize.css/-/normalize.css-12.0.0.tgz" resolved "https://registry.npmjs.org/@csstools/normalize.css/-/normalize.css-12.0.0.tgz"
@ -1438,15 +1443,15 @@
"@types/node" "*" "@types/node" "*"
jest-mock "^27.5.1" jest-mock "^27.5.1"
"@jest/environment@^29.3.1": "@jest/environment@^29.3.1", "@jest/environment@^29.5.0":
version "29.3.1" version "29.5.0"
resolved "https://registry.npmjs.org/@jest/environment/-/environment-29.3.1.tgz" resolved "https://registry.npmjs.org/@jest/environment/-/environment-29.5.0.tgz"
integrity sha512-pMmvfOPmoa1c1QpfFW0nXYtNLpofqo4BrCIk6f2kW4JFeNlHV2t3vd+3iDLf31e2ot2Mec0uqZfmI+U0K2CFag== integrity sha512-5FXw2+wD29YU1d4I2htpRX7jYnAyTRjP2CsXQdo9SAM8g3ifxWPSV0HnClSn71xwctr0U3oZIIH+dtbfmnbXVQ==
dependencies: dependencies:
"@jest/fake-timers" "^29.3.1" "@jest/fake-timers" "^29.5.0"
"@jest/types" "^29.3.1" "@jest/types" "^29.5.0"
"@types/node" "*" "@types/node" "*"
jest-mock "^29.3.1" jest-mock "^29.5.0"
"@jest/expect-utils@^29.3.1": "@jest/expect-utils@^29.3.1":
version "29.3.1" version "29.3.1"
@ -1475,17 +1480,17 @@
jest-mock "^27.5.1" jest-mock "^27.5.1"
jest-util "^27.5.1" jest-util "^27.5.1"
"@jest/fake-timers@^29.3.1": "@jest/fake-timers@^29.3.1", "@jest/fake-timers@^29.5.0":
version "29.3.1" version "29.5.0"
resolved "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-29.3.1.tgz" resolved "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-29.5.0.tgz"
integrity sha512-iHTL/XpnDlFki9Tq0Q1GGuVeQ8BHZGIYsvCO5eN/O/oJaRzofG9Xndd9HuSDBI/0ZS79pg0iwn07OMTQ7ngF2A== integrity sha512-9ARvuAAQcBwDAqOnglWq2zwNIRUDtk/SCkp/ToGEhFv5r86K21l+VEs0qNTaXtyiY0lEePl3kylijSYJQqdbDg==
dependencies: dependencies:
"@jest/types" "^29.3.1" "@jest/types" "^29.5.0"
"@sinonjs/fake-timers" "^9.1.2" "@sinonjs/fake-timers" "^10.0.2"
"@types/node" "*" "@types/node" "*"
jest-message-util "^29.3.1" jest-message-util "^29.5.0"
jest-mock "^29.3.1" jest-mock "^29.5.0"
jest-util "^29.3.1" jest-util "^29.5.0"
"@jest/globals@^27.5.1": "@jest/globals@^27.5.1":
version "27.5.1" version "27.5.1"
@ -1574,12 +1579,12 @@
dependencies: dependencies:
"@sinclair/typebox" "^0.24.1" "@sinclair/typebox" "^0.24.1"
"@jest/schemas@^29.0.0": "@jest/schemas@^29.0.0", "@jest/schemas@^29.4.3":
version "29.0.0" version "29.4.3"
resolved "https://registry.npmjs.org/@jest/schemas/-/schemas-29.0.0.tgz" resolved "https://registry.npmjs.org/@jest/schemas/-/schemas-29.4.3.tgz"
integrity sha512-3Ab5HgYIIAnS0HjqJHQYZS+zXc4tUmTmBH3z83ajI6afXp8X3ZtdLX+nXx+I7LNkJD7uN9LAVhgnjDgZa2z0kA== integrity sha512-VLYKXQmtmuEz6IxJsrZwzG9NvtkQsWNnWMsKxqWNu3+CnfzJQhp0WDDKWLVV9hLKr0l3SLLFRqcYHjhtyuDVxg==
dependencies: dependencies:
"@sinclair/typebox" "^0.24.1" "@sinclair/typebox" "^0.25.16"
"@jest/source-map@^27.5.1": "@jest/source-map@^27.5.1":
version "27.5.1" version "27.5.1"
@ -1726,6 +1731,18 @@
"@types/yargs" "^17.0.8" "@types/yargs" "^17.0.8"
chalk "^4.0.0" chalk "^4.0.0"
"@jest/types@^29.5.0":
version "29.5.0"
resolved "https://registry.npmjs.org/@jest/types/-/types-29.5.0.tgz"
integrity sha512-qbu7kN6czmVRc3xWFQcAN03RAUamgppVUdXrvl1Wr3jlNF93o9mJbGcDWrwGB6ht44u7efB1qCFgVQmca24Uog==
dependencies:
"@jest/schemas" "^29.4.3"
"@types/istanbul-lib-coverage" "^2.0.0"
"@types/istanbul-reports" "^3.0.0"
"@types/node" "*"
"@types/yargs" "^17.0.8"
chalk "^4.0.0"
"@jridgewell/gen-mapping@^0.1.0": "@jridgewell/gen-mapping@^0.1.0":
version "0.1.1" version "0.1.1"
resolved "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.1.1.tgz" resolved "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.1.1.tgz"
@ -1901,6 +1918,11 @@
resolved "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.24.51.tgz" resolved "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.24.51.tgz"
integrity sha512-1P1OROm/rdubP5aFDSZQILU0vrLCJ4fvHt6EoqHEM+2D/G5MK3bIaymUKLit8Js9gbns5UyJnkP/TZROLw4tUA== integrity sha512-1P1OROm/rdubP5aFDSZQILU0vrLCJ4fvHt6EoqHEM+2D/G5MK3bIaymUKLit8Js9gbns5UyJnkP/TZROLw4tUA==
"@sinclair/typebox@^0.25.16":
version "0.25.24"
resolved "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.25.24.tgz"
integrity sha512-XJfwUVUKDHF5ugKwIcxEgc9k8b7HbznCp6eUfWgu710hMPNIO4aw4/zB5RogDQz8nd6gyCDpU9O/m6qYEWY6yQ==
"@sinonjs/commons@^1.7.0": "@sinonjs/commons@^1.7.0":
version "1.8.6" version "1.8.6"
resolved "https://registry.npmjs.org/@sinonjs/commons/-/commons-1.8.6.tgz" resolved "https://registry.npmjs.org/@sinonjs/commons/-/commons-1.8.6.tgz"
@ -1908,6 +1930,20 @@
dependencies: dependencies:
type-detect "4.0.8" type-detect "4.0.8"
"@sinonjs/commons@^3.0.0":
version "3.0.0"
resolved "https://registry.npmjs.org/@sinonjs/commons/-/commons-3.0.0.tgz"
integrity sha512-jXBtWAF4vmdNmZgD5FoKsVLv3rPgDnLgPbU84LIJ3otV44vJlDRokVng5v8NFJdCf/da9legHcKaRuZs4L7faA==
dependencies:
type-detect "4.0.8"
"@sinonjs/fake-timers@^10.0.2":
version "10.3.0"
resolved "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-10.3.0.tgz"
integrity sha512-V4BG07kuYSUkTCSBHG8G8TNhM+F19jXFWnQtzj+we8DrkpSBCee9Z3Ms8yiGer/dlmhe35/Xdgyo3/0rQKg7YA==
dependencies:
"@sinonjs/commons" "^3.0.0"
"@sinonjs/fake-timers@^8.0.1": "@sinonjs/fake-timers@^8.0.1":
version "8.1.0" version "8.1.0"
resolved "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-8.1.0.tgz" resolved "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-8.1.0.tgz"
@ -1915,13 +1951,6 @@
dependencies: dependencies:
"@sinonjs/commons" "^1.7.0" "@sinonjs/commons" "^1.7.0"
"@sinonjs/fake-timers@^9.1.2":
version "9.1.2"
resolved "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-9.1.2.tgz"
integrity sha512-BPS4ynJW/o92PUR4wgriz2Ud5gpST5vz6GQfMixEDK0Z8ZCUv2M7SkBLykH56T++Xs+8ln9zTGbOvNGIe02/jw==
dependencies:
"@sinonjs/commons" "^1.7.0"
"@surma/rollup-plugin-off-main-thread@^2.2.3": "@surma/rollup-plugin-off-main-thread@^2.2.3":
version "2.2.3" version "2.2.3"
resolved "https://registry.npmjs.org/@surma/rollup-plugin-off-main-thread/-/rollup-plugin-off-main-thread-2.2.3.tgz" resolved "https://registry.npmjs.org/@surma/rollup-plugin-off-main-thread/-/rollup-plugin-off-main-thread-2.2.3.tgz"
@ -2087,7 +2116,7 @@
"@tootallnate/once@2": "@tootallnate/once@2":
version "2.0.0" version "2.0.0"
resolved "https://registry.yarnpkg.com/@tootallnate/once/-/once-2.0.0.tgz#f544a148d3ab35801c1f633a7441fd87c2e484bf" resolved "https://registry.npmjs.org/@tootallnate/once/-/once-2.0.0.tgz"
integrity sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A== integrity sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A==
"@trysound/sax@0.2.0": "@trysound/sax@0.2.0":
@ -2261,7 +2290,7 @@
"@types/jsdom@^20.0.0": "@types/jsdom@^20.0.0":
version "20.0.1" version "20.0.1"
resolved "https://registry.yarnpkg.com/@types/jsdom/-/jsdom-20.0.1.tgz#07c14bc19bd2f918c1929541cdaacae894744808" resolved "https://registry.npmjs.org/@types/jsdom/-/jsdom-20.0.1.tgz"
integrity sha512-d0r18sZPmMQr1eG35u12FZfhIXNrnsPU/g5wvRKCUf/tOGilKKwYMYGqh33BNR6ba+2gkHw1EUiHoN3mn7E5IQ== integrity sha512-d0r18sZPmMQr1eG35u12FZfhIXNrnsPU/g5wvRKCUf/tOGilKKwYMYGqh33BNR6ba+2gkHw1EUiHoN3mn7E5IQ==
dependencies: dependencies:
"@types/node" "*" "@types/node" "*"
@ -2392,7 +2421,7 @@
"@types/tough-cookie@*": "@types/tough-cookie@*":
version "4.0.2" version "4.0.2"
resolved "https://registry.yarnpkg.com/@types/tough-cookie/-/tough-cookie-4.0.2.tgz#6286b4c7228d58ab7866d19716f3696e03a09397" resolved "https://registry.npmjs.org/@types/tough-cookie/-/tough-cookie-4.0.2.tgz"
integrity sha512-Q5vtl1W5ue16D+nIaW8JWebSSraJVlK+EthKn7e7UcD4KWsaSJ8BqGPXNaPghgtcn/fhvrN17Tv8ksUsQpiplw== integrity sha512-Q5vtl1W5ue16D+nIaW8JWebSSraJVlK+EthKn7e7UcD4KWsaSJ8BqGPXNaPghgtcn/fhvrN17Tv8ksUsQpiplw==
"@types/trusted-types@^2.0.2": "@types/trusted-types@^2.0.2":
@ -2670,7 +2699,7 @@ acorn-globals@^6.0.0:
acorn-globals@^7.0.0: acorn-globals@^7.0.0:
version "7.0.1" version "7.0.1"
resolved "https://registry.yarnpkg.com/acorn-globals/-/acorn-globals-7.0.1.tgz#0dbf05c44fa7c94332914c02066d5beff62c40c3" resolved "https://registry.npmjs.org/acorn-globals/-/acorn-globals-7.0.1.tgz"
integrity sha512-umOSDSDrfHbTNPuNpC2NSnnA3LUrqpevPb4T9jRx4MagXNS0rs+gwiTcAvqCRmsD6utzsrzNt+ebm00SNWiC3Q== integrity sha512-umOSDSDrfHbTNPuNpC2NSnnA3LUrqpevPb4T9jRx4MagXNS0rs+gwiTcAvqCRmsD6utzsrzNt+ebm00SNWiC3Q==
dependencies: dependencies:
acorn "^8.1.0" acorn "^8.1.0"
@ -2702,7 +2731,7 @@ acorn-walk@^7.0.0, acorn-walk@^7.1.1:
acorn-walk@^8.0.2: acorn-walk@^8.0.2:
version "8.2.0" version "8.2.0"
resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-8.2.0.tgz#741210f2e2426454508853a2f44d0ab83b7f69c1" resolved "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.2.0.tgz"
integrity sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA== integrity sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==
acorn@^7.0.0, acorn@^7.1.1: acorn@^7.0.0, acorn@^7.1.1:
@ -3473,9 +3502,9 @@ caniuse-api@^3.0.0:
lodash.uniq "^4.5.0" lodash.uniq "^4.5.0"
caniuse-lite@^1.0.0, caniuse-lite@^1.0.30001400, caniuse-lite@^1.0.30001426: caniuse-lite@^1.0.0, caniuse-lite@^1.0.30001400, caniuse-lite@^1.0.30001426:
version "1.0.30001436" version "1.0.30001507"
resolved "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001436.tgz" resolved "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001507.tgz"
integrity sha512-ZmWkKsnC2ifEPoWUvSAIGyOYwT+keAaaWPHiQ9DfMqS1t6tfuyFYoWR78TeZtznkEQ64+vGXH9cZrElwR2Mrxg== integrity sha512-SFpUDoSLCaE5XYL2jfqe9ova/pbQHEmbheDf5r4diNwbAgR3qxM9NQtfsiSscjqoya5K7kFcHPUQ+VsUkIJR4A==
case-sensitive-paths-webpack-plugin@^2.4.0: case-sensitive-paths-webpack-plugin@^2.4.0:
version "2.4.0" version "2.4.0"
@ -4051,7 +4080,7 @@ cssom@^0.4.4:
cssom@^0.5.0: cssom@^0.5.0:
version "0.5.0" version "0.5.0"
resolved "https://registry.yarnpkg.com/cssom/-/cssom-0.5.0.tgz#d254fa92cd8b6fbd83811b9fbaed34663cc17c36" resolved "https://registry.npmjs.org/cssom/-/cssom-0.5.0.tgz"
integrity sha512-iKuQcq+NdHqlAcwUY0o/HL69XQrUaQdMjmStJ8JFmUaiiQErlhrmuigkg/CU4E2J0IyUKUrMAgl36TvN67MqTw== integrity sha512-iKuQcq+NdHqlAcwUY0o/HL69XQrUaQdMjmStJ8JFmUaiiQErlhrmuigkg/CU4E2J0IyUKUrMAgl36TvN67MqTw==
cssom@~0.3.6: cssom@~0.3.6:
@ -4087,7 +4116,7 @@ data-urls@^2.0.0:
data-urls@^3.0.2: data-urls@^3.0.2:
version "3.0.2" version "3.0.2"
resolved "https://registry.yarnpkg.com/data-urls/-/data-urls-3.0.2.tgz#9cf24a477ae22bcef5cd5f6f0bfbc1d2d3be9143" resolved "https://registry.npmjs.org/data-urls/-/data-urls-3.0.2.tgz"
integrity sha512-Jy/tj3ldjZJo63sVAvg6LHt2mHvl4V6AgRAmNDtLdm7faqtsx+aJG42rsyCo9JCoRVKwPFzKlIPx3DIibwSIaQ== integrity sha512-Jy/tj3ldjZJo63sVAvg6LHt2mHvl4V6AgRAmNDtLdm7faqtsx+aJG42rsyCo9JCoRVKwPFzKlIPx3DIibwSIaQ==
dependencies: dependencies:
abab "^2.0.6" abab "^2.0.6"
@ -4354,7 +4383,7 @@ domexception@^2.0.1:
domexception@^4.0.0: domexception@^4.0.0:
version "4.0.0" version "4.0.0"
resolved "https://registry.yarnpkg.com/domexception/-/domexception-4.0.0.tgz#4ad1be56ccadc86fc76d033353999a8037d03673" resolved "https://registry.npmjs.org/domexception/-/domexception-4.0.0.tgz"
integrity sha512-A2is4PLG+eeSfoTMA95/s4pvAoSo2mKtiM5jlHkAVewmiO8ISFTFKZjH7UAM1Atli/OT/7JHOrJRJiMKUZKYBw== integrity sha512-A2is4PLG+eeSfoTMA95/s4pvAoSo2mKtiM5jlHkAVewmiO8ISFTFKZjH7UAM1Atli/OT/7JHOrJRJiMKUZKYBw==
dependencies: dependencies:
webidl-conversions "^7.0.0" webidl-conversions "^7.0.0"
@ -4367,9 +4396,9 @@ domhandler@^4.0.0, domhandler@^4.2.0, domhandler@^4.3.1:
domelementtype "^2.2.0" domelementtype "^2.2.0"
dompurify@^3.0.1: dompurify@^3.0.1:
version "3.0.1" version "3.0.3"
resolved "https://registry.yarnpkg.com/dompurify/-/dompurify-3.0.1.tgz#a0933f38931b3238934dd632043b727e53004289" resolved "https://registry.npmjs.org/dompurify/-/dompurify-3.0.3.tgz"
integrity sha512-60tsgvPKwItxZZdfLmamp0MTcecCta3avOhsLgPZ0qcWt96OasFfhkeIRbJ6br5i0fQawT1/RBGB5L58/Jpwuw== integrity sha512-axQ9zieHLnAnHh0sfAamKYiqXMJAVwu+LM/alQ7WDagoWessyWvMSFyW65CqF3owufNu8HBcE4cM2Vflu7YWcQ==
domutils@^1.7.0: domutils@^1.7.0:
version "1.7.0" version "1.7.0"
@ -4484,9 +4513,9 @@ entities@^2.0.0:
integrity sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A== integrity sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==
entities@^4.4.0: entities@^4.4.0:
version "4.4.0" version "4.5.0"
resolved "https://registry.yarnpkg.com/entities/-/entities-4.4.0.tgz#97bdaba170339446495e653cfd2db78962900174" resolved "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz"
integrity sha512-oYp7156SP8LkeGD0GF85ad1X9Ai79WtRsZ2gxJqtBuzH+98YUV6jkHEKlZkMbcrjJjIVJNIDP/3WL9wQkoPbWA== integrity sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==
error-ex@^1.3.1: error-ex@^1.3.1:
version "1.3.2" version "1.3.2"
@ -5204,7 +5233,7 @@ fs.realpath@^1.0.0:
fsevents@^2.3.2, fsevents@~2.3.2: fsevents@^2.3.2, fsevents@~2.3.2:
version "2.3.2" version "2.3.2"
resolved "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz" resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.2.tgz#8a526f78b8fdf4623b709e0b975c52c24c02fd1a"
integrity sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA== integrity sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==
function-bind@^1.1.1: function-bind@^1.1.1:
@ -5522,7 +5551,7 @@ html-encoding-sniffer@^2.0.1:
html-encoding-sniffer@^3.0.0: html-encoding-sniffer@^3.0.0:
version "3.0.0" version "3.0.0"
resolved "https://registry.yarnpkg.com/html-encoding-sniffer/-/html-encoding-sniffer-3.0.0.tgz#2cb1a8cf0db52414776e5b2a7a04d5dd98158de9" resolved "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-3.0.0.tgz"
integrity sha512-oWv4T4yJ52iKrufjnyZPkrN0CH3QnrUqdB6In1g5Fe1mia8GmF36gnfNySxoZtxD5+NmYw1EElVXiBk93UeskA== integrity sha512-oWv4T4yJ52iKrufjnyZPkrN0CH3QnrUqdB6In1g5Fe1mia8GmF36gnfNySxoZtxD5+NmYw1EElVXiBk93UeskA==
dependencies: dependencies:
whatwg-encoding "^2.0.0" whatwg-encoding "^2.0.0"
@ -5613,7 +5642,7 @@ http-proxy-agent@^4.0.1:
http-proxy-agent@^5.0.0: http-proxy-agent@^5.0.0:
version "5.0.0" version "5.0.0"
resolved "https://registry.yarnpkg.com/http-proxy-agent/-/http-proxy-agent-5.0.0.tgz#5129800203520d434f142bc78ff3c170800f2b43" resolved "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-5.0.0.tgz"
integrity sha512-n2hY8YdoRE1i7r6M0w9DIw5GgZN0G25P8zLCRQ8rjXtTU3vsNFBI/vWK/UIeE6g5MUUz6avwAPXmL6Fy9D/90w== integrity sha512-n2hY8YdoRE1i7r6M0w9DIw5GgZN0G25P8zLCRQ8rjXtTU3vsNFBI/vWK/UIeE6g5MUUz6avwAPXmL6Fy9D/90w==
dependencies: dependencies:
"@tootallnate/once" "2" "@tootallnate/once" "2"
@ -6297,17 +6326,17 @@ jest-environment-jsdom@^27.5.1:
jsdom "^16.6.0" jsdom "^16.6.0"
jest-environment-jsdom@^29.3.1: jest-environment-jsdom@^29.3.1:
version "29.3.1" version "29.5.0"
resolved "https://registry.yarnpkg.com/jest-environment-jsdom/-/jest-environment-jsdom-29.3.1.tgz#14ca63c3e0ef5c63c5bcb46033e50bc649e3b639" resolved "https://registry.npmjs.org/jest-environment-jsdom/-/jest-environment-jsdom-29.5.0.tgz"
integrity sha512-G46nKgiez2Gy4zvYNhayfMEAFlVHhWfncqvqS6yCd0i+a4NsSUD2WtrKSaYQrYiLQaupHXxCRi8xxVL2M9PbhA== integrity sha512-/KG8yEK4aN8ak56yFVdqFDzKNHgF4BAymCx2LbPNPsUshUlfAl0eX402Xm1pt+eoG9SLZEUVifqXtX8SK74KCw==
dependencies: dependencies:
"@jest/environment" "^29.3.1" "@jest/environment" "^29.5.0"
"@jest/fake-timers" "^29.3.1" "@jest/fake-timers" "^29.5.0"
"@jest/types" "^29.3.1" "@jest/types" "^29.5.0"
"@types/jsdom" "^20.0.0" "@types/jsdom" "^20.0.0"
"@types/node" "*" "@types/node" "*"
jest-mock "^29.3.1" jest-mock "^29.5.0"
jest-util "^29.3.1" jest-util "^29.5.0"
jsdom "^20.0.0" jsdom "^20.0.0"
jest-environment-node@^27.5.1: jest-environment-node@^27.5.1:
@ -6472,18 +6501,18 @@ jest-message-util@^28.1.3:
slash "^3.0.0" slash "^3.0.0"
stack-utils "^2.0.3" stack-utils "^2.0.3"
jest-message-util@^29.3.1: jest-message-util@^29.3.1, jest-message-util@^29.5.0:
version "29.3.1" version "29.5.0"
resolved "https://registry.npmjs.org/jest-message-util/-/jest-message-util-29.3.1.tgz" resolved "https://registry.npmjs.org/jest-message-util/-/jest-message-util-29.5.0.tgz"
integrity sha512-lMJTbgNcDm5z+6KDxWtqOFWlGQxD6XaYwBqHR8kmpkP+WWWG90I35kdtQHY67Ay5CSuydkTBbJG+tH9JShFCyA== integrity sha512-Kijeg9Dag6CKtIDA7O21zNTACqD5MD/8HfIV8pdD94vFyFuer52SigdC3IQMhab3vACxXMiFk+yMHNdbqtyTGA==
dependencies: dependencies:
"@babel/code-frame" "^7.12.13" "@babel/code-frame" "^7.12.13"
"@jest/types" "^29.3.1" "@jest/types" "^29.5.0"
"@types/stack-utils" "^2.0.0" "@types/stack-utils" "^2.0.0"
chalk "^4.0.0" chalk "^4.0.0"
graceful-fs "^4.2.9" graceful-fs "^4.2.9"
micromatch "^4.0.4" micromatch "^4.0.4"
pretty-format "^29.3.1" pretty-format "^29.5.0"
slash "^3.0.0" slash "^3.0.0"
stack-utils "^2.0.3" stack-utils "^2.0.3"
@ -6495,14 +6524,14 @@ jest-mock@^27.5.1:
"@jest/types" "^27.5.1" "@jest/types" "^27.5.1"
"@types/node" "*" "@types/node" "*"
jest-mock@^29.3.1: jest-mock@^29.3.1, jest-mock@^29.5.0:
version "29.3.1" version "29.5.0"
resolved "https://registry.npmjs.org/jest-mock/-/jest-mock-29.3.1.tgz" resolved "https://registry.npmjs.org/jest-mock/-/jest-mock-29.5.0.tgz"
integrity sha512-H8/qFDtDVMFvFP4X8NuOT3XRDzOUTz+FeACjufHzsOIBAxivLqkB1PoLCaJx9iPPQ8dZThHPp/G3WRWyMgA3JA== integrity sha512-GqOzvdWDE4fAV2bWQLQCkujxYWL7RxjCnj71b5VhDAGOevB3qj3Ovg26A5NI84ZpODxyzaozXLOh2NCgkbvyaw==
dependencies: dependencies:
"@jest/types" "^29.3.1" "@jest/types" "^29.5.0"
"@types/node" "*" "@types/node" "*"
jest-util "^29.3.1" jest-util "^29.5.0"
jest-pnp-resolver@^1.2.2: jest-pnp-resolver@^1.2.2:
version "1.2.3" version "1.2.3"
@ -6784,6 +6813,18 @@ jest-util@^29.3.1:
graceful-fs "^4.2.9" graceful-fs "^4.2.9"
picomatch "^2.2.3" picomatch "^2.2.3"
jest-util@^29.5.0:
version "29.5.0"
resolved "https://registry.npmjs.org/jest-util/-/jest-util-29.5.0.tgz"
integrity sha512-RYMgG/MTadOr5t8KdhejfvUU82MxsCu5MF6KuDUHl+NuwzUt+Sm6jJWxTJVrDR1j5M/gJVCPKQEpWXY+yIQ6lQ==
dependencies:
"@jest/types" "^29.5.0"
"@types/node" "*"
chalk "^4.0.0"
ci-info "^3.2.0"
graceful-fs "^4.2.9"
picomatch "^2.2.3"
jest-validate@^27.5.1: jest-validate@^27.5.1:
version "27.5.1" version "27.5.1"
resolved "https://registry.npmjs.org/jest-validate/-/jest-validate-27.5.1.tgz" resolved "https://registry.npmjs.org/jest-validate/-/jest-validate-27.5.1.tgz"
@ -6978,7 +7019,7 @@ jsdom@^16.6.0:
jsdom@^20.0.0: jsdom@^20.0.0:
version "20.0.3" version "20.0.3"
resolved "https://registry.yarnpkg.com/jsdom/-/jsdom-20.0.3.tgz#886a41ba1d4726f67a8858028c99489fed6ad4db" resolved "https://registry.npmjs.org/jsdom/-/jsdom-20.0.3.tgz"
integrity sha512-SYhBvTh89tTfCD/CRdSOm13mOBa42iTaTyfyEWBdKcGdPxPtLFBXuHR8XHb33YNYaP+lLbmSvBTsnoesCNJEsQ== integrity sha512-SYhBvTh89tTfCD/CRdSOm13mOBa42iTaTyfyEWBdKcGdPxPtLFBXuHR8XHb33YNYaP+lLbmSvBTsnoesCNJEsQ==
dependencies: dependencies:
abab "^2.0.6" abab "^2.0.6"
@ -7629,9 +7670,9 @@ nth-check@^2.0.1:
boolbase "^1.0.0" boolbase "^1.0.0"
nwsapi@^2.2.0, nwsapi@^2.2.2: nwsapi@^2.2.0, nwsapi@^2.2.2:
version "2.2.2" version "2.2.5"
resolved "https://registry.npmjs.org/nwsapi/-/nwsapi-2.2.2.tgz" resolved "https://registry.npmjs.org/nwsapi/-/nwsapi-2.2.5.tgz"
integrity sha512-90yv+6538zuvUMnN+zCr8LuV6bPFdq50304114vJYJ8RDyK8D5O9Phpbd6SZWgI7PwzmmfN1upeOJlvybDSgCw== integrity sha512-6xpotnECFy/og7tKSBVmUNft7J3jyXAka4XvG6AUhFWRz+Q/Ljus7znJAA3bxColfQLdS+XsjoodtJfCgeTEFQ==
object-assign@^3.0.0: object-assign@^3.0.0:
version "3.0.0" version "3.0.0"
@ -7870,7 +7911,7 @@ parse5@6.0.1:
parse5@^7.0.0, parse5@^7.1.1: parse5@^7.0.0, parse5@^7.1.1:
version "7.1.2" version "7.1.2"
resolved "https://registry.yarnpkg.com/parse5/-/parse5-7.1.2.tgz#0736bebbfd77793823240a23b7fc5e010b7f8e32" resolved "https://registry.npmjs.org/parse5/-/parse5-7.1.2.tgz"
integrity sha512-Czj1WaSVpaoj0wbhMzLmWD69anp2WH7FXMB9n1Sy8/ZFF9jolSQVMu1Ij5WIyGmcBmhk7EOndpO4mIpihVqAXw== integrity sha512-Czj1WaSVpaoj0wbhMzLmWD69anp2WH7FXMB9n1Sy8/ZFF9jolSQVMu1Ij5WIyGmcBmhk7EOndpO4mIpihVqAXw==
dependencies: dependencies:
entities "^4.4.0" entities "^4.4.0"
@ -8570,6 +8611,15 @@ pretty-format@^29.0.0, pretty-format@^29.3.1:
ansi-styles "^5.0.0" ansi-styles "^5.0.0"
react-is "^18.0.0" react-is "^18.0.0"
pretty-format@^29.5.0:
version "29.5.0"
resolved "https://registry.npmjs.org/pretty-format/-/pretty-format-29.5.0.tgz"
integrity sha512-V2mGkI31qdttvTFX7Mt4efOqHXqJWMu4/r66Xh3Z3BwZaPfPJgp6/gbwoujRpPUtfEF6AUUWx3Jim3GCw5g/Qw==
dependencies:
"@jest/schemas" "^29.4.3"
ansi-styles "^5.0.0"
react-is "^18.0.0"
process-nextick-args@~2.0.0: process-nextick-args@~2.0.0:
version "2.0.1" version "2.0.1"
resolved "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz" resolved "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz"
@ -9120,13 +9170,13 @@ react-error-overlay@^6.0.11:
integrity sha512-/6UZ2qgEyH2aqzYZgQPxEnz33NJ2gNsnHA2o5+o4wW9bLM/JYQitNP9xPhsXwC08hMMovfGe/8retsdDsczPRg== integrity sha512-/6UZ2qgEyH2aqzYZgQPxEnz33NJ2gNsnHA2o5+o4wW9bLM/JYQitNP9xPhsXwC08hMMovfGe/8retsdDsczPRg==
react-icons@^4.8.0: react-icons@^4.8.0:
version "4.8.0" version "4.10.1"
resolved "https://registry.yarnpkg.com/react-icons/-/react-icons-4.8.0.tgz#621e900caa23b912f737e41be57f27f6b2bff445" resolved "https://registry.npmjs.org/react-icons/-/react-icons-4.10.1.tgz"
integrity sha512-N6+kOLcihDiAnj5Czu637waJqSnwlMNROzVZMhfX68V/9bu9qHaMIJC4UdozWoOk57gahFCNHwVvWzm0MTzRjg== integrity sha512-/ngzDP/77tlCfqthiiGNZeYFACw85fUjZtLbedmJ5DTlNDIwETxhwBzdOJ21zj4iJdvc0J3y7yOsX3PpxAJzrw==
react-image-file-resizer@^0.4.8: react-image-file-resizer@^0.4.8:
version "0.4.8" version "0.4.8"
resolved "https://registry.yarnpkg.com/react-image-file-resizer/-/react-image-file-resizer-0.4.8.tgz#85f4ae4469fd2867d961568af660ef403d7a79af" resolved "https://registry.npmjs.org/react-image-file-resizer/-/react-image-file-resizer-0.4.8.tgz"
integrity sha512-Ue7CfKnSlsfJ//SKzxNMz8avDgDSpWQDOnTKOp/GNRFJv4dO9L5YGHNEnj40peWkXXAK2OK0eRIoXhOYpUzUTQ== integrity sha512-Ue7CfKnSlsfJ//SKzxNMz8avDgDSpWQDOnTKOp/GNRFJv4dO9L5YGHNEnj40peWkXXAK2OK0eRIoXhOYpUzUTQ==
react-is@^16.12.0, "react-is@^16.12.0 || ^17.0.0 || ^18.0.0", react-is@^16.13.1, react-is@^16.7.0: react-is@^16.12.0, "react-is@^16.12.0 || ^17.0.0 || ^18.0.0", react-is@^16.13.1, react-is@^16.7.0:
@ -9581,7 +9631,7 @@ saxes@^5.0.1:
saxes@^6.0.0: saxes@^6.0.0:
version "6.0.0" version "6.0.0"
resolved "https://registry.yarnpkg.com/saxes/-/saxes-6.0.0.tgz#fe5b4a4768df4f14a201b1ba6a65c1f3d9988cc5" resolved "https://registry.npmjs.org/saxes/-/saxes-6.0.0.tgz"
integrity sha512-xAg7SOnEhrm5zI3puOOKyy1OMcMlIJZYNJY7xLBwSze0UjhPLnWfj2GF2EpT0jmzaJKIWKHLsaSSajf35bcYnA== integrity sha512-xAg7SOnEhrm5zI3puOOKyy1OMcMlIJZYNJY7xLBwSze0UjhPLnWfj2GF2EpT0jmzaJKIWKHLsaSSajf35bcYnA==
dependencies: dependencies:
xmlchars "^2.2.0" xmlchars "^2.2.0"
@ -10325,9 +10375,9 @@ toidentifier@1.0.1:
integrity sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA== integrity sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==
tough-cookie@^4.0.0, tough-cookie@^4.1.2: tough-cookie@^4.0.0, tough-cookie@^4.1.2:
version "4.1.2" version "4.1.3"
resolved "https://registry.npmjs.org/tough-cookie/-/tough-cookie-4.1.2.tgz" resolved "https://registry.npmjs.org/tough-cookie/-/tough-cookie-4.1.3.tgz"
integrity sha512-G9fqXWoYFZgTc2z8Q5zaHy/vJMjm+WV0AkAeHxVCQiEB1b+dGvWzFW6QV07cY5jQ5gRkeid2qIkzkxUnmoQZUQ== integrity sha512-aX/y5pVRkfRnfmuX+OdbSdXvPe6ieKX/G2s7e98f4poJHnqH3281gDPm/metm6E/WRamfx7WC4HUqkWHfQHprw==
dependencies: dependencies:
psl "^1.1.33" psl "^1.1.33"
punycode "^2.1.1" punycode "^2.1.1"
@ -10350,7 +10400,7 @@ tr46@^2.1.0:
tr46@^3.0.0: tr46@^3.0.0:
version "3.0.0" version "3.0.0"
resolved "https://registry.yarnpkg.com/tr46/-/tr46-3.0.0.tgz#555c4e297a950617e8eeddef633c87d4d9d6cbf9" resolved "https://registry.npmjs.org/tr46/-/tr46-3.0.0.tgz"
integrity sha512-l7FvfAHlcmulp8kr+flpQZmVwtu7nfRV7NZujtN0OqES8EL4O4e0qqzL0DC5gAvx/ZC/9lk6rhcUwYvkBnBnYA== integrity sha512-l7FvfAHlcmulp8kr+flpQZmVwtu7nfRV7NZujtN0OqES8EL4O4e0qqzL0DC5gAvx/ZC/9lk6rhcUwYvkBnBnYA==
dependencies: dependencies:
punycode "^2.1.1" punycode "^2.1.1"
@ -10634,7 +10684,7 @@ w3c-xmlserializer@^2.0.0:
w3c-xmlserializer@^4.0.0: w3c-xmlserializer@^4.0.0:
version "4.0.0" version "4.0.0"
resolved "https://registry.yarnpkg.com/w3c-xmlserializer/-/w3c-xmlserializer-4.0.0.tgz#aebdc84920d806222936e3cdce408e32488a3073" resolved "https://registry.npmjs.org/w3c-xmlserializer/-/w3c-xmlserializer-4.0.0.tgz"
integrity sha512-d+BFHzbiCx6zGfz0HyQ6Rg69w9k19nviJspaj4yNscGjrHu94sVP+aRm75yEbCh+r2/yR+7q6hux9LVtbuTGBw== integrity sha512-d+BFHzbiCx6zGfz0HyQ6Rg69w9k19nviJspaj4yNscGjrHu94sVP+aRm75yEbCh+r2/yR+7q6hux9LVtbuTGBw==
dependencies: dependencies:
xml-name-validator "^4.0.0" xml-name-validator "^4.0.0"
@ -10683,7 +10733,7 @@ webidl-conversions@^6.1.0:
webidl-conversions@^7.0.0: webidl-conversions@^7.0.0:
version "7.0.0" version "7.0.0"
resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-7.0.0.tgz#256b4e1882be7debbf01d05f0aa2039778ea080a" resolved "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-7.0.0.tgz"
integrity sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g== integrity sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g==
webpack-dev-middleware@^5.3.1: webpack-dev-middleware@^5.3.1:
@ -10814,7 +10864,7 @@ whatwg-encoding@^1.0.5:
whatwg-encoding@^2.0.0: whatwg-encoding@^2.0.0:
version "2.0.0" version "2.0.0"
resolved "https://registry.yarnpkg.com/whatwg-encoding/-/whatwg-encoding-2.0.0.tgz#e7635f597fd87020858626805a2729fa7698ac53" resolved "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-2.0.0.tgz"
integrity sha512-p41ogyeMUrw3jWclHWTQg1k05DSVXPLcVxRTYsXUk+ZooOCZLcoYgPZ/HL/D/N+uQPOtcp1me1WhBEaX02mhWg== integrity sha512-p41ogyeMUrw3jWclHWTQg1k05DSVXPLcVxRTYsXUk+ZooOCZLcoYgPZ/HL/D/N+uQPOtcp1me1WhBEaX02mhWg==
dependencies: dependencies:
iconv-lite "0.6.3" iconv-lite "0.6.3"
@ -10831,12 +10881,12 @@ whatwg-mimetype@^2.3.0:
whatwg-mimetype@^3.0.0: whatwg-mimetype@^3.0.0:
version "3.0.0" version "3.0.0"
resolved "https://registry.yarnpkg.com/whatwg-mimetype/-/whatwg-mimetype-3.0.0.tgz#5fa1a7623867ff1af6ca3dc72ad6b8a4208beba7" resolved "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-3.0.0.tgz"
integrity sha512-nt+N2dzIutVRxARx1nghPKGv1xHikU7HKdfafKkLNLindmPU/ch3U31NOCGGA/dmPcmb1VlofO0vnKAcsm0o/Q== integrity sha512-nt+N2dzIutVRxARx1nghPKGv1xHikU7HKdfafKkLNLindmPU/ch3U31NOCGGA/dmPcmb1VlofO0vnKAcsm0o/Q==
whatwg-url@^11.0.0: whatwg-url@^11.0.0:
version "11.0.0" version "11.0.0"
resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-11.0.0.tgz#0a849eebb5faf2119b901bb76fd795c2848d4018" resolved "https://registry.npmjs.org/whatwg-url/-/whatwg-url-11.0.0.tgz"
integrity sha512-RKT8HExMpoYx4igMiVMY83lN6UeITKJlBQ+vR/8ZJ8OCdSiN3RwCq+9gH0+Xzj0+5IrM6i4j/6LuvzbZIQgEcQ== integrity sha512-RKT8HExMpoYx4igMiVMY83lN6UeITKJlBQ+vR/8ZJ8OCdSiN3RwCq+9gH0+Xzj0+5IrM6i4j/6LuvzbZIQgEcQ==
dependencies: dependencies:
tr46 "^3.0.0" tr46 "^3.0.0"
@ -11140,7 +11190,7 @@ xml-name-validator@^3.0.0:
xml-name-validator@^4.0.0: xml-name-validator@^4.0.0:
version "4.0.0" version "4.0.0"
resolved "https://registry.yarnpkg.com/xml-name-validator/-/xml-name-validator-4.0.0.tgz#79a006e2e63149a8600f15430f0a4725d1524835" resolved "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-4.0.0.tgz"
integrity sha512-ICP2e+jsHvAj2E2lIHxa5tjXRlKDJo4IdvPvCXbXQGdzSfmSpNVyIKMvoZHjDY9DP0zV17iI85o90vRFXNccRw== integrity sha512-ICP2e+jsHvAj2E2lIHxa5tjXRlKDJo4IdvPvCXbXQGdzSfmSpNVyIKMvoZHjDY9DP0zV17iI85o90vRFXNccRw==
xmlchars@^2.2.0: xmlchars@^2.2.0: