From 2520d8f739abfde608f3ef66a9fbe6b7b5c6647a Mon Sep 17 00:00:00 2001
From: Brandon Cohen
Date: Mon, 27 Feb 2023 23:36:28 -0500
Subject: [PATCH 01/39] feat: adds streaming services custom slider (#3361)
* feat: adding streaming services as a slider is now an option
* fix: truncated slider titles on mobile
---
server/constants/discover.ts | 2 +
.../Discover/CreateSlider/index.tsx | 74 +++++++++++++++++--
.../Discover/DiscoverSliderEdit/index.tsx | 8 +-
src/components/Discover/constants.ts | 2 +
src/components/Discover/index.tsx | 30 ++++++++
src/components/Selector/index.tsx | 12 +--
src/i18n/locale/en.json | 2 +
src/styles/globals.css | 4 +
8 files changed, 123 insertions(+), 11 deletions(-)
diff --git a/server/constants/discover.ts b/server/constants/discover.ts
index a19f07422..fda068224 100644
--- a/server/constants/discover.ts
+++ b/server/constants/discover.ts
@@ -20,6 +20,8 @@ export enum DiscoverSliderType {
TMDB_SEARCH,
TMDB_STUDIO,
TMDB_NETWORK,
+ TMDB_MOVIE_STREAMING_SERVICES,
+ TMDB_TV_STREAMING_SERVICES,
}
export const defaultSliders: Partial[] = [
diff --git a/src/components/Discover/CreateSlider/index.tsx b/src/components/Discover/CreateSlider/index.tsx
index 24b9d3fdc..40d26fff3 100644
--- a/src/components/Discover/CreateSlider/index.tsx
+++ b/src/components/Discover/CreateSlider/index.tsx
@@ -2,6 +2,7 @@ import Button from '@app/components/Common/Button';
import Tooltip from '@app/components/Common/Tooltip';
import { sliderTitles } from '@app/components/Discover/constants';
import MediaSlider from '@app/components/MediaSlider';
+import { WatchProviderSelector } from '@app/components/Selector';
import { encodeURIExtraParams } from '@app/hooks/useDiscover';
import type {
TmdbCompanySearchResponse,
@@ -55,7 +56,7 @@ type CreateOption = {
dataUrl: string;
params?: string;
titlePlaceholderText: string;
- dataPlaceholderText: string;
+ dataPlaceholderText?: string;
};
const CreateSlider = ({ onCreate, slider }: CreateSliderProps) => {
@@ -276,6 +277,20 @@ const CreateSlider = ({ onCreate, slider }: CreateSliderProps) => {
titlePlaceholderText: intl.formatMessage(messages.slidernameplaceholder),
dataPlaceholderText: intl.formatMessage(messages.providetmdbsearch),
},
+ {
+ type: DiscoverSliderType.TMDB_MOVIE_STREAMING_SERVICES,
+ title: intl.formatMessage(sliderTitles.tmdbmoviestreamingservices),
+ dataUrl: '/api/v1/discover/movies',
+ params: 'watchRegion=$regionValue&watchProviders=$providersValue',
+ titlePlaceholderText: intl.formatMessage(messages.slidernameplaceholder),
+ },
+ {
+ type: DiscoverSliderType.TMDB_TV_STREAMING_SERVICES,
+ title: intl.formatMessage(sliderTitles.tmdbtvstreamingservices),
+ dataUrl: '/api/v1/discover/tv',
+ params: 'watchRegion=$regionValue&watchProviders=$providersValue',
+ titlePlaceholderText: intl.formatMessage(messages.slidernameplaceholder),
+ },
];
return (
@@ -417,6 +432,40 @@ const CreateSlider = ({ onCreate, slider }: CreateSliderProps) => {
/>
);
break;
+ case DiscoverSliderType.TMDB_MOVIE_STREAMING_SERVICES:
+ dataInput = (
+ Number(v)) ?? []
+ }
+ onChange={(region, providers) => {
+ setFieldValue('data', `${region},${providers.join('|')}`);
+ }}
+ />
+ );
+ break;
+ case DiscoverSliderType.TMDB_TV_STREAMING_SERVICES:
+ dataInput = (
+ Number(v)) ?? []
+ }
+ onChange={(region, providers) => {
+ setFieldValue('data', `${region},${providers.join('|')}`);
+ }}
+ />
+ );
+ break;
default:
dataInput = (
{
'$value',
encodeURIExtraParams(values.data)
)}
- extraParams={activeOption.params?.replace(
- '$value',
- encodeURIExtraParams(values.data)
- )}
+ extraParams={
+ activeOption.type ===
+ DiscoverSliderType.TMDB_MOVIE_STREAMING_SERVICES ||
+ activeOption.type ===
+ DiscoverSliderType.TMDB_TV_STREAMING_SERVICES
+ ? activeOption.params
+ ?.replace(
+ '$regionValue',
+ encodeURIExtraParams(values?.data.split(',')[0])
+ )
+ .replace(
+ '$providersValue',
+ encodeURIExtraParams(values?.data.split(',')[1])
+ )
+ : activeOption.params?.replace(
+ '$value',
+ encodeURIExtraParams(values.data)
+ )
+ }
onNewTitles={updateResultCount}
/>
diff --git a/src/components/Discover/DiscoverSliderEdit/index.tsx b/src/components/Discover/DiscoverSliderEdit/index.tsx
index 970a9887a..9a0f3aa76 100644
--- a/src/components/Discover/DiscoverSliderEdit/index.tsx
+++ b/src/components/Discover/DiscoverSliderEdit/index.tsx
@@ -164,6 +164,10 @@ const DiscoverSliderEdit = ({
return intl.formatMessage(sliderTitles.tmdbnetwork);
case DiscoverSliderType.TMDB_SEARCH:
return intl.formatMessage(sliderTitles.tmdbsearch);
+ case DiscoverSliderType.TMDB_MOVIE_STREAMING_SERVICES:
+ return intl.formatMessage(sliderTitles.tmdbmoviestreamingservices);
+ case DiscoverSliderType.TMDB_TV_STREAMING_SERVICES:
+ return intl.formatMessage(sliderTitles.tmdbtvstreamingservices);
default:
return 'Unknown Slider';
}
@@ -195,7 +199,9 @@ const DiscoverSliderEdit = ({
className={`${slider.data ? 'mb-4' : 'mb-0'} flex space-x-2 md:mb-0`}
>
- {getSliderTitle(slider)}
+
+ {getSliderTitle(slider)}
+
{
/>
);
break;
+ case DiscoverSliderType.TMDB_MOVIE_STREAMING_SERVICES:
+ sliderComponent = (
+
+ );
+ break;
+ case DiscoverSliderType.TMDB_TV_STREAMING_SERVICES:
+ sliderComponent = (
+
+ );
+ break;
}
if (isEditing) {
diff --git a/src/components/Selector/index.tsx b/src/components/Selector/index.tsx
index 3b863fd72..8a21d3fbe 100644
--- a/src/components/Selector/index.tsx
+++ b/src/components/Selector/index.tsx
@@ -305,7 +305,9 @@ export const WatchProviderSelector = ({
useEffect(() => {
onChange(watchRegion, activeProvider);
- }, [activeProvider, watchRegion, onChange]);
+ // removed onChange as a dependency as we only need to call it when the value(s) change
+ // eslint-disable-next-line react-hooks/exhaustive-deps
+ }, [activeProvider, watchRegion]);
const orderedData = useMemo(() => {
if (!data) {
@@ -344,7 +346,7 @@ export const WatchProviderSelector = ({
) : (
-
+
{initialProviders.map((provider) => {
const isActive = activeProvider.includes(provider.id);
return (
@@ -353,7 +355,7 @@ export const WatchProviderSelector = ({
key={`prodiver-${provider.id}`}
>
{showMore && otherProviders.length > 0 && (
-
+
{otherProviders.map((provider) => {
const isActive = activeProvider.includes(provider.id);
return (
@@ -395,7 +397,7 @@ export const WatchProviderSelector = ({
key={`prodiver-${provider.id}`}
>
Date: Wed, 1 Mar 2023 11:59:06 -0500
Subject: [PATCH 02/39] fix(deps): update all non-major dependencies (#3223)
* chore(deps): update all non-major dependencies
* fix: resolve same express-session types for connect-typeorm
---------
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: sct
---
package.json | 93 +-
yarn.lock | 3295 +++++++++++++++++++++++++++++---------------------
2 files changed, 1932 insertions(+), 1456 deletions(-)
diff --git a/package.json b/package.json
index f210da459..5dff068ee 100644
--- a/package.json
+++ b/package.json
@@ -29,17 +29,17 @@
},
"license": "MIT",
"dependencies": {
- "@formatjs/intl-displaynames": "6.2.3",
- "@formatjs/intl-locale": "3.0.11",
- "@formatjs/intl-pluralrules": "5.1.8",
+ "@formatjs/intl-displaynames": "6.2.6",
+ "@formatjs/intl-locale": "3.1.1",
+ "@formatjs/intl-pluralrules": "5.1.10",
"@formatjs/intl-utils": "3.8.4",
- "@headlessui/react": "1.7.7",
- "@heroicons/react": "2.0.13",
+ "@headlessui/react": "1.7.12",
+ "@heroicons/react": "2.0.16",
"@supercharge/request-ip": "1.2.0",
"@svgr/webpack": "6.5.1",
- "@tanem/react-nprogress": "5.0.22",
- "ace-builds": "1.14.0",
- "axios": "1.2.2",
+ "@tanem/react-nprogress": "5.0.30",
+ "ace-builds": "1.15.2",
+ "axios": "1.3.4",
"axios-rate-limit": "1.3.0",
"bcrypt": "5.1.0",
"bowser": "2.11.0",
@@ -47,7 +47,7 @@
"cookie-parser": "1.4.6",
"copy-to-clipboard": "3.3.3",
"country-flag-icons": "1.5.5",
- "cronstrue": "2.21.0",
+ "cronstrue": "2.23.0",
"csurf": "1.11.0",
"date-fns": "2.29.3",
"dayjs": "1.11.7",
@@ -63,23 +63,23 @@
"next": "12.3.4",
"node-cache": "5.1.2",
"node-gyp": "9.3.1",
- "node-schedule": "2.1.0",
- "nodemailer": "6.8.0",
- "openpgp": "5.5.0",
+ "node-schedule": "2.1.1",
+ "nodemailer": "6.9.1",
+ "openpgp": "5.7.0",
"plex-api": "5.3.2",
"pug": "3.0.2",
"pulltorefreshjs": "0.1.22",
"react": "18.2.0",
"react-ace": "10.1.0",
"react-animate-height": "2.1.2",
- "react-aria": "3.22.0",
+ "react-aria": "3.23.0",
"react-dom": "18.2.0",
- "react-intersection-observer": "9.4.1",
- "react-intl": "6.2.5",
- "react-markdown": "8.0.4",
+ "react-intersection-observer": "9.4.3",
+ "react-intl": "6.2.10",
+ "react-markdown": "8.0.5",
"react-popper-tooltip": "4.4.2",
"react-select": "5.7.0",
- "react-spring": "9.6.1",
+ "react-spring": "9.7.1",
"react-tailwindcss-datepicker-sct": "1.3.4",
"react-toast-notifications": "2.5.1",
"react-truncate-markup": "5.1.2",
@@ -88,42 +88,42 @@
"secure-random-password": "0.2.3",
"semver": "7.3.8",
"sqlite3": "5.1.4",
- "swagger-ui-express": "4.6.0",
- "swr": "2.0.0",
- "typeorm": "0.3.11",
+ "swagger-ui-express": "4.6.2",
+ "swr": "2.0.4",
+ "typeorm": "0.3.12",
"web-push": "3.5.0",
"winston": "3.8.2",
"winston-daily-rotate-file": "4.7.1",
"xml2js": "0.4.23",
"yamljs": "0.3.0",
"yup": "0.32.11",
- "zod": "3.20.2"
+ "zod": "3.20.6"
},
"devDependencies": {
- "@babel/cli": "7.20.7",
- "@commitlint/cli": "17.4.0",
- "@commitlint/config-conventional": "17.4.0",
+ "@babel/cli": "7.21.0",
+ "@commitlint/cli": "17.4.4",
+ "@commitlint/config-conventional": "17.4.4",
"@semantic-release/changelog": "6.0.2",
"@semantic-release/commit-analyzer": "9.0.2",
"@semantic-release/exec": "6.0.3",
"@semantic-release/git": "10.0.1",
"@tailwindcss/aspect-ratio": "0.4.2",
"@tailwindcss/forms": "0.5.3",
- "@tailwindcss/typography": "0.5.8",
+ "@tailwindcss/typography": "0.5.9",
"@types/bcrypt": "5.0.0",
"@types/cookie-parser": "1.4.3",
"@types/country-flag-icons": "1.2.0",
"@types/csurf": "1.11.2",
"@types/email-templates": "8.0.4",
- "@types/express": "4.17.15",
- "@types/express-session": "1.17.5",
+ "@types/express": "4.17.17",
+ "@types/express-session": "1.17.6",
"@types/lodash": "4.14.191",
"@types/node": "17.0.36",
"@types/node-schedule": "2.1.0",
"@types/nodemailer": "6.4.7",
"@types/pulltorefreshjs": "0.1.5",
- "@types/react": "18.0.26",
- "@types/react-dom": "18.0.10",
+ "@types/react": "18.0.28",
+ "@types/react-dom": "18.0.11",
"@types/react-transition-group": "4.4.5",
"@types/secure-random-password": "0.2.1",
"@types/semver": "7.3.13",
@@ -132,45 +132,46 @@
"@types/xml2js": "0.4.11",
"@types/yamljs": "0.2.31",
"@types/yup": "0.29.14",
- "@typescript-eslint/eslint-plugin": "5.48.0",
- "@typescript-eslint/parser": "5.48.0",
+ "@typescript-eslint/eslint-plugin": "5.54.0",
+ "@typescript-eslint/parser": "5.54.0",
"autoprefixer": "10.4.13",
"babel-plugin-react-intl": "8.2.25",
"babel-plugin-react-intl-auto": "3.3.0",
- "commitizen": "4.2.6",
+ "commitizen": "4.3.0",
"copyfiles": "2.4.1",
"cy-mobile-commands": "0.3.0",
- "cypress": "12.3.0",
+ "cypress": "12.7.0",
"cz-conventional-changelog": "3.3.0",
- "eslint": "8.31.0",
+ "eslint": "8.35.0",
"eslint-config-next": "12.3.4",
"eslint-config-prettier": "8.6.0",
- "eslint-plugin-formatjs": "4.3.9",
- "eslint-plugin-jsx-a11y": "6.6.1",
+ "eslint-plugin-formatjs": "4.9.0",
+ "eslint-plugin-jsx-a11y": "6.7.1",
"eslint-plugin-no-relative-import-paths": "1.5.2",
"eslint-plugin-prettier": "4.2.1",
- "eslint-plugin-react": "7.31.11",
+ "eslint-plugin-react": "7.32.2",
"eslint-plugin-react-hooks": "4.6.0",
"extract-react-intl-messages": "4.1.1",
"husky": "8.0.3",
- "lint-staged": "13.1.0",
+ "lint-staged": "13.1.2",
"nodemon": "2.0.20",
- "postcss": "8.4.20",
- "prettier": "2.8.1",
- "prettier-plugin-organize-imports": "3.2.1",
- "prettier-plugin-tailwindcss": "0.2.1",
+ "postcss": "8.4.21",
+ "prettier": "2.8.4",
+ "prettier-plugin-organize-imports": "3.2.2",
+ "prettier-plugin-tailwindcss": "0.2.3",
"semantic-release": "19.0.5",
"semantic-release-docker-buildx": "1.0.1",
- "tailwindcss": "3.2.4",
+ "tailwindcss": "3.2.7",
"ts-node": "10.9.1",
"tsc-alias": "1.8.2",
"tsconfig-paths": "4.1.2",
- "typescript": "4.9.4"
+ "typescript": "4.9.5"
},
"resolutions": {
"sqlite3/node-gyp": "8.4.1",
- "@types/react": "18.0.26",
- "@types/react-dom": "18.0.10"
+ "@types/react": "18.0.28",
+ "@types/react-dom": "18.0.11",
+ "@types/express-session": "1.17.6"
},
"config": {
"commitizen": {
diff --git a/yarn.lock b/yarn.lock
index 1da72e83b..c95f591d7 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -20,12 +20,12 @@
call-me-maybe "^1.0.1"
js-yaml "^4.1.0"
-"@babel/cli@7.20.7":
- version "7.20.7"
- resolved "https://registry.yarnpkg.com/@babel/cli/-/cli-7.20.7.tgz#8fc12e85c744a1a617680eacb488fab1fcd35b7c"
- integrity sha512-WylgcELHB66WwQqItxNILsMlaTd8/SO6SgTTjMp4uCI7P4QyH1r3nqgFmO3BfM4AtfniHgFMH3EpYFj/zynBkQ==
+"@babel/cli@7.21.0":
+ version "7.21.0"
+ resolved "https://registry.yarnpkg.com/@babel/cli/-/cli-7.21.0.tgz#1868eb70e9824b427fc607610cce8e9e7889e7e1"
+ integrity sha512-xi7CxyS8XjSyiwUGCfwf+brtJxjW1/ZTcBUkP10xawIEXLX5HzLn+3aXkgxozcP2UhRhtKTmQurw9Uaes7jZrA==
dependencies:
- "@jridgewell/trace-mapping" "^0.3.8"
+ "@jridgewell/trace-mapping" "^0.3.17"
commander "^4.0.1"
convert-source-map "^1.1.0"
fs-readdir-recursive "^1.1.0"
@@ -980,13 +980,20 @@
core-js-pure "^3.25.1"
regenerator-runtime "^0.13.11"
-"@babel/runtime@^7.10.2", "@babel/runtime@^7.12.0", "@babel/runtime@^7.12.5", "@babel/runtime@^7.15.4", "@babel/runtime@^7.18.3", "@babel/runtime@^7.18.9", "@babel/runtime@^7.20.6", "@babel/runtime@^7.5.5", "@babel/runtime@^7.7.2", "@babel/runtime@^7.8.4", "@babel/runtime@^7.8.7":
+"@babel/runtime@^7.10.2", "@babel/runtime@^7.12.0", "@babel/runtime@^7.12.5", "@babel/runtime@^7.15.4", "@babel/runtime@^7.18.3", "@babel/runtime@^7.18.9", "@babel/runtime@^7.5.5", "@babel/runtime@^7.7.2", "@babel/runtime@^7.8.4", "@babel/runtime@^7.8.7":
version "7.20.7"
resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.20.7.tgz#fcb41a5a70550e04a7b708037c7c32f7f356d8fd"
integrity sha512-UF0tvkUtxwAgZ5W/KrkHf0Rn0fdnLDU9ScxBrEVNUprE/MzirjK4MJUX1/BVDv00Sv8cljtukVK1aky++X1SjQ==
dependencies:
regenerator-runtime "^0.13.11"
+"@babel/runtime@^7.20.13", "@babel/runtime@^7.20.7":
+ version "7.21.0"
+ resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.21.0.tgz#5b55c9d394e5fcf304909a8b00c07dc217b56673"
+ integrity sha512-xwII0//EObnq89Ji5AKYQaRYiW/nZ3llSv29d49IuxPhKbtJoLP+9QUUZ4nVragQVtaVGeZrpB+ZtG/Pdy/POw==
+ dependencies:
+ regenerator-runtime "^0.13.11"
+
"@babel/template@^7.18.10", "@babel/template@^7.20.7":
version "7.20.7"
resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.20.7.tgz#a15090c2839a83b02aa996c0b4994005841fd5a8"
@@ -1026,26 +1033,26 @@
resolved "https://registry.yarnpkg.com/@colors/colors/-/colors-1.5.0.tgz#bb504579c1cae923e6576a4f5da43d25f97bdbd9"
integrity sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ==
-"@commitlint/cli@17.4.0":
- version "17.4.0"
- resolved "https://registry.yarnpkg.com/@commitlint/cli/-/cli-17.4.0.tgz#14a5f9b713a5b60ff1a0cfce66b0bb207954c1ad"
- integrity sha512-SEY4sYe8yVlgxPP7X0wJb96DBAGBPsCsy6QbqJt/UECbIAjDeDV5xXBV4jnS7T/qMC10sk6Ub9kDhEX0VWvblw==
+"@commitlint/cli@17.4.4":
+ version "17.4.4"
+ resolved "https://registry.yarnpkg.com/@commitlint/cli/-/cli-17.4.4.tgz#36df08bfa31dbb9a2b6b1d7187a31e578f001a06"
+ integrity sha512-HwKlD7CPVMVGTAeFZylVNy14Vm5POVY0WxPkZr7EXLC/os0LH/obs6z4HRvJtH/nHCMYBvUBQhGwnufKfTjd5g==
dependencies:
- "@commitlint/format" "^17.4.0"
- "@commitlint/lint" "^17.4.0"
- "@commitlint/load" "^17.4.0"
- "@commitlint/read" "^17.4.0"
- "@commitlint/types" "^17.4.0"
+ "@commitlint/format" "^17.4.4"
+ "@commitlint/lint" "^17.4.4"
+ "@commitlint/load" "^17.4.4"
+ "@commitlint/read" "^17.4.4"
+ "@commitlint/types" "^17.4.4"
execa "^5.0.0"
lodash.isfunction "^3.0.9"
resolve-from "5.0.0"
resolve-global "1.0.0"
yargs "^17.0.0"
-"@commitlint/config-conventional@17.4.0":
- version "17.4.0"
- resolved "https://registry.yarnpkg.com/@commitlint/config-conventional/-/config-conventional-17.4.0.tgz#9188d793886d8a1c633834602f06a642dd16ed64"
- integrity sha512-G4XBf45J4ZMspO4NwBFzY3g/1Kb+B42BcIxeikF8wucQxcyxcmhRdjeQpRpS1XEcBq5pdtEEQFipuB9IuiNFhw==
+"@commitlint/config-conventional@17.4.4":
+ version "17.4.4"
+ resolved "https://registry.yarnpkg.com/@commitlint/config-conventional/-/config-conventional-17.4.4.tgz#f30b1e5b2e48ce5799a483c200c52f218a98efcc"
+ integrity sha512-u6ztvxqzi6NuhrcEDR7a+z0yrh11elY66nRrQIpqsqW6sZmpxYkDLtpRH8jRML+mmxYQ8s4qqF06Q/IQx5aJeQ==
dependencies:
conventional-changelog-conventionalcommits "^5.0.0"
@@ -1057,20 +1064,20 @@
"@commitlint/types" "^17.0.0"
ajv "^8.11.0"
-"@commitlint/config-validator@^17.4.0":
- version "17.4.0"
- resolved "https://registry.yarnpkg.com/@commitlint/config-validator/-/config-validator-17.4.0.tgz#2cb229672a22476cf1f21bedbfcd788e5da5b54f"
- integrity sha512-Sa/+8KNpDXz4zT4bVbz2fpFjvgkPO6u2V2fP4TKgt6FjmOw2z3eEX859vtfeaTav/ukBw0/0jr+5ZTZp9zCBhA==
+"@commitlint/config-validator@^17.4.4":
+ version "17.4.4"
+ resolved "https://registry.yarnpkg.com/@commitlint/config-validator/-/config-validator-17.4.4.tgz#d0742705719559a101d2ee49c0c514044af6d64d"
+ integrity sha512-bi0+TstqMiqoBAQDvdEP4AFh0GaKyLFlPPEObgI29utoKEYoPQTvF0EYqIwYYLEoJYhj5GfMIhPHJkTJhagfeg==
dependencies:
- "@commitlint/types" "^17.4.0"
+ "@commitlint/types" "^17.4.4"
ajv "^8.11.0"
-"@commitlint/ensure@^17.4.0":
- version "17.4.0"
- resolved "https://registry.yarnpkg.com/@commitlint/ensure/-/ensure-17.4.0.tgz#3de65768bfccb9956ec3a0ecd8a415421bf315e5"
- integrity sha512-7oAxt25je0jeQ/E0O/M8L3ADb1Cvweu/5lc/kYF8g/kXatI0wxGE5La52onnAUAWeWlsuvBNar15WcrmDmr5Mw==
+"@commitlint/ensure@^17.4.4":
+ version "17.4.4"
+ resolved "https://registry.yarnpkg.com/@commitlint/ensure/-/ensure-17.4.4.tgz#a36e7719bdb9c2b86c8b8c2e852b463a7bfda5fa"
+ integrity sha512-AHsFCNh8hbhJiuZ2qHv/m59W/GRE9UeOXbkOqxYMNNg9pJ7qELnFcwj5oYpa6vzTSHtPGKf3C2yUFNy1GGHq6g==
dependencies:
- "@commitlint/types" "^17.4.0"
+ "@commitlint/types" "^17.4.4"
lodash.camelcase "^4.3.0"
lodash.kebabcase "^4.1.1"
lodash.snakecase "^4.1.1"
@@ -1087,31 +1094,31 @@
resolved "https://registry.yarnpkg.com/@commitlint/execute-rule/-/execute-rule-17.4.0.tgz#4518e77958893d0a5835babe65bf87e2638f6939"
integrity sha512-LIgYXuCSO5Gvtc0t9bebAMSwd68ewzmqLypqI2Kke1rqOqqDbMpYcYfoPfFlv9eyLIh4jocHWwCK5FS7z9icUA==
-"@commitlint/format@^17.4.0":
- version "17.4.0"
- resolved "https://registry.yarnpkg.com/@commitlint/format/-/format-17.4.0.tgz#1c80cf3a6274ff9b3d3c0dd150a97882d557aa0f"
- integrity sha512-Z2bWAU5+f1YZh9W76c84J8iLIWIvvm+mzqogTz0Nsc1x6EHW0Z2gI38g5HAjB0r0I3ZjR15IDEJKhsxyblcyhA==
+"@commitlint/format@^17.4.4":
+ version "17.4.4"
+ resolved "https://registry.yarnpkg.com/@commitlint/format/-/format-17.4.4.tgz#0f6e1b4d7a301c7b1dfd4b6334edd97fc050b9f5"
+ integrity sha512-+IS7vpC4Gd/x+uyQPTAt3hXs5NxnkqAZ3aqrHd5Bx/R9skyCAWusNlNbw3InDbAK6j166D9asQM8fnmYIa+CXQ==
dependencies:
- "@commitlint/types" "^17.4.0"
+ "@commitlint/types" "^17.4.4"
chalk "^4.1.0"
-"@commitlint/is-ignored@^17.4.0":
- version "17.4.0"
- resolved "https://registry.yarnpkg.com/@commitlint/is-ignored/-/is-ignored-17.4.0.tgz#7c1f35db20c409783935b9305ad695f378287b31"
- integrity sha512-mkRuBlPUaBimvSvJyIHEHEW1/jP1SqEI7NOoaO9/eyJkMbsaiv5b1QgDYL4ZXlHdS64RMV7Y21MVVzuIceImDA==
+"@commitlint/is-ignored@^17.4.4":
+ version "17.4.4"
+ resolved "https://registry.yarnpkg.com/@commitlint/is-ignored/-/is-ignored-17.4.4.tgz#82e03f1abe2de2c0c8c162a250b8d466225e922b"
+ integrity sha512-Y3eo1SFJ2JQDik4rWkBC4tlRIxlXEFrRWxcyrzb1PUT2k3kZ/XGNuCDfk/u0bU2/yS0tOA/mTjFsV+C4qyACHw==
dependencies:
- "@commitlint/types" "^17.4.0"
+ "@commitlint/types" "^17.4.4"
semver "7.3.8"
-"@commitlint/lint@^17.4.0":
- version "17.4.0"
- resolved "https://registry.yarnpkg.com/@commitlint/lint/-/lint-17.4.0.tgz#ba3554692d8e156db04085caa75eab9d46908449"
- integrity sha512-HG2YT4TUbQKs9v8QvpQjJ6OK+fhflsDB8M+D5tLrY79hbQOWA9mDKdRkABsW/AAhpNI9+zeGUWF3jj245jSHKw==
+"@commitlint/lint@^17.4.4":
+ version "17.4.4"
+ resolved "https://registry.yarnpkg.com/@commitlint/lint/-/lint-17.4.4.tgz#0ecd70b44ec5f4823c2e00e0c4b04ebd41d42856"
+ integrity sha512-qgkCRRFjyhbMDWsti/5jRYVJkgYZj4r+ZmweZObnbYqPUl5UKLWMf9a/ZZisOI4JfiPmRktYRZ2JmqlSvg+ccw==
dependencies:
- "@commitlint/is-ignored" "^17.4.0"
- "@commitlint/parse" "^17.4.0"
- "@commitlint/rules" "^17.4.0"
- "@commitlint/types" "^17.4.0"
+ "@commitlint/is-ignored" "^17.4.4"
+ "@commitlint/parse" "^17.4.4"
+ "@commitlint/rules" "^17.4.4"
+ "@commitlint/types" "^17.4.4"
"@commitlint/load@>6.1.1":
version "17.3.0"
@@ -1133,15 +1140,16 @@
ts-node "^10.8.1"
typescript "^4.6.4"
-"@commitlint/load@^17.4.0":
- version "17.4.0"
- resolved "https://registry.yarnpkg.com/@commitlint/load/-/load-17.4.0.tgz#d0136d38f3d533e706340efbccc2fb38ebb97538"
- integrity sha512-wDKNvAJqukqZqKmhRlf3KNo/12QGo1AQcd80EbV01SxtGvyHOsJ/g+/IbrZpopZv8rvzmEVktcpfDYH6ITepFA==
+"@commitlint/load@^17.4.4":
+ version "17.4.4"
+ resolved "https://registry.yarnpkg.com/@commitlint/load/-/load-17.4.4.tgz#13fcb553572f265339801cde6dd10ee5eea07f5e"
+ integrity sha512-z6uFIQ7wfKX5FGBe1AkOF4l/ShOQsaa1ml/nLMkbW7R/xF8galGS7Zh0yHvzVp/srtfS0brC+0bUfQfmpMPFVQ==
dependencies:
- "@commitlint/config-validator" "^17.4.0"
+ "@commitlint/config-validator" "^17.4.4"
"@commitlint/execute-rule" "^17.4.0"
- "@commitlint/resolve-extends" "^17.4.0"
- "@commitlint/types" "^17.4.0"
+ "@commitlint/resolve-extends" "^17.4.4"
+ "@commitlint/types" "^17.4.4"
+ "@types/node" "*"
chalk "^4.1.0"
cosmiconfig "^8.0.0"
cosmiconfig-typescript-loader "^4.0.0"
@@ -1152,27 +1160,27 @@
ts-node "^10.8.1"
typescript "^4.6.4"
-"@commitlint/message@^17.4.0":
- version "17.4.0"
- resolved "https://registry.yarnpkg.com/@commitlint/message/-/message-17.4.0.tgz#40779163d1cd7946b081077e1ef7f831baa577e5"
- integrity sha512-USGJDU9PPxcgQjKXCzvPUal65KAhxWq3hp+MrU1pNCN2itWM654CLIoY2LMIQ7rScTli9B5dTLH3vXhzbItmzA==
+"@commitlint/message@^17.4.2":
+ version "17.4.2"
+ resolved "https://registry.yarnpkg.com/@commitlint/message/-/message-17.4.2.tgz#f4753a79701ad6db6db21f69076e34de6580e22c"
+ integrity sha512-3XMNbzB+3bhKA1hSAWPCQA3lNxR4zaeQAQcHj0Hx5sVdO6ryXtgUBGGv+1ZCLMgAPRixuc6en+iNAzZ4NzAa8Q==
-"@commitlint/parse@^17.4.0":
- version "17.4.0"
- resolved "https://registry.yarnpkg.com/@commitlint/parse/-/parse-17.4.0.tgz#bb2a78dcad9abd12a53a9d50387a45c5b86afcff"
- integrity sha512-x8opKc5p+Hgs+CrMbq3VAnW2L2foPAX6arW8u9c8nTzksldGgFsENT+XVyPmpSMLlVBswZ1tndcz1xyKiY9TJA==
+"@commitlint/parse@^17.4.4":
+ version "17.4.4"
+ resolved "https://registry.yarnpkg.com/@commitlint/parse/-/parse-17.4.4.tgz#8311b12f2b730de6ea0679ae2a37b386bcc5b04b"
+ integrity sha512-EKzz4f49d3/OU0Fplog7nwz/lAfXMaDxtriidyGF9PtR+SRbgv4FhsfF310tKxs6EPj8Y+aWWuX3beN5s+yqGg==
dependencies:
- "@commitlint/types" "^17.4.0"
+ "@commitlint/types" "^17.4.4"
conventional-changelog-angular "^5.0.11"
conventional-commits-parser "^3.2.2"
-"@commitlint/read@^17.4.0":
- version "17.4.0"
- resolved "https://registry.yarnpkg.com/@commitlint/read/-/read-17.4.0.tgz#946def0be19a2af8fd1d09cd7ad7f33b3c30b610"
- integrity sha512-pGDeZpbkyvhxK8ZoCDUacPPRpauKPWF3n2XpDBEnuGreqUF2clq2PVJpwMMaNN5cHW8iFKCbcoOjXhD01sln0A==
+"@commitlint/read@^17.4.4":
+ version "17.4.4"
+ resolved "https://registry.yarnpkg.com/@commitlint/read/-/read-17.4.4.tgz#de6ec00aad827764153009aa54517e3df2154555"
+ integrity sha512-B2TvUMJKK+Svzs6eji23WXsRJ8PAD+orI44lVuVNsm5zmI7O8RSGJMvdEZEikiA4Vohfb+HevaPoWZ7PiFZ3zA==
dependencies:
"@commitlint/top-level" "^17.4.0"
- "@commitlint/types" "^17.4.0"
+ "@commitlint/types" "^17.4.4"
fs-extra "^11.0.0"
git-raw-commits "^2.0.0"
minimist "^1.2.6"
@@ -1189,27 +1197,27 @@
resolve-from "^5.0.0"
resolve-global "^1.0.0"
-"@commitlint/resolve-extends@^17.4.0":
- version "17.4.0"
- resolved "https://registry.yarnpkg.com/@commitlint/resolve-extends/-/resolve-extends-17.4.0.tgz#9023da6c70c4ebd173b4b0995fe29f27051da2d3"
- integrity sha512-3JsmwkrCzoK8sO22AzLBvNEvC1Pmdn/65RKXzEtQMy6oYMl0Snrq97a5bQQEFETF0VsvbtUuKttLqqgn99OXRQ==
+"@commitlint/resolve-extends@^17.4.4":
+ version "17.4.4"
+ resolved "https://registry.yarnpkg.com/@commitlint/resolve-extends/-/resolve-extends-17.4.4.tgz#8f931467dea8c43b9fe38373e303f7c220de6fdc"
+ integrity sha512-znXr1S0Rr8adInptHw0JeLgumS11lWbk5xAWFVno+HUFVN45875kUtqjrI6AppmD3JI+4s0uZlqqlkepjJd99A==
dependencies:
- "@commitlint/config-validator" "^17.4.0"
- "@commitlint/types" "^17.4.0"
+ "@commitlint/config-validator" "^17.4.4"
+ "@commitlint/types" "^17.4.4"
import-fresh "^3.0.0"
lodash.mergewith "^4.6.2"
resolve-from "^5.0.0"
resolve-global "^1.0.0"
-"@commitlint/rules@^17.4.0":
- version "17.4.0"
- resolved "https://registry.yarnpkg.com/@commitlint/rules/-/rules-17.4.0.tgz#7814f9de38c10ba17b33dd16a05be8f181031538"
- integrity sha512-lz3i1jet2NNjTWpAMwjjQjMZCPWBIHK1Kkja9o09UmUtMjRdALTb8uMLe8gCyeq3DiiZ5lLYOhbsoPK56xGQKA==
+"@commitlint/rules@^17.4.4":
+ version "17.4.4"
+ resolved "https://registry.yarnpkg.com/@commitlint/rules/-/rules-17.4.4.tgz#9b33f41e5eb529f916396bac7c62e61f0edd6791"
+ integrity sha512-0tgvXnHi/mVcyR8Y8mjTFZIa/FEQXA4uEutXS/imH2v1UNkYDSEMsK/68wiXRpfW1euSgEdwRkvE1z23+yhNrQ==
dependencies:
- "@commitlint/ensure" "^17.4.0"
- "@commitlint/message" "^17.4.0"
+ "@commitlint/ensure" "^17.4.4"
+ "@commitlint/message" "^17.4.2"
"@commitlint/to-lines" "^17.4.0"
- "@commitlint/types" "^17.4.0"
+ "@commitlint/types" "^17.4.4"
execa "^5.0.0"
"@commitlint/to-lines@^17.4.0":
@@ -1231,10 +1239,10 @@
dependencies:
chalk "^4.1.0"
-"@commitlint/types@^17.4.0":
- version "17.4.0"
- resolved "https://registry.yarnpkg.com/@commitlint/types/-/types-17.4.0.tgz#c7c2b97b959f6175c164632bf26208ce417b3f31"
- integrity sha512-2NjAnq5IcxY9kXtUeO2Ac0aPpvkuOmwbH/BxIm36XXK5LtWFObWJWjXOA+kcaABMrthjWu6la+FUpyYFMHRvbA==
+"@commitlint/types@^17.4.4":
+ version "17.4.4"
+ resolved "https://registry.yarnpkg.com/@commitlint/types/-/types-17.4.4.tgz#1416df936e9aad0d6a7bbc979ecc31e55dade662"
+ integrity sha512-amRN8tRLYOsxRr6mTnGGGvB5EmW/4DDjLMgiwK3CCVEmN6Sr/6xePGEpWaspKkckILuUORCwe6VfDBw6uj4axQ==
dependencies:
chalk "^4.1.0"
@@ -1452,10 +1460,10 @@
resolved "https://registry.yarnpkg.com/@emotion/weak-memoize/-/weak-memoize-0.3.0.tgz#ea89004119dc42db2e1dba0f97d553f7372f6fcb"
integrity sha512-AHPmaAx+RYfZz0eYu6Gviiagpmiyw98ySSlQvCUhVGDRtDFe4DBS0x1bSjdF3gqUDYOczB+yYvBTtEylYSdRhg==
-"@eslint/eslintrc@^1.4.1":
- version "1.4.1"
- resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-1.4.1.tgz#af58772019a2d271b7e2d4c23ff4ddcba3ccfb3e"
- integrity sha512-XXrH9Uarn0stsyldqDYq8r++mROmWRI1xKMXa640Bb//SY1+ECYX6VzT6Lcx5frD0V30XieqJ0oX9I2Xj5aoMA==
+"@eslint/eslintrc@^2.0.0":
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-2.0.0.tgz#943309d8697c52fc82c076e90c1c74fbbe69dbff"
+ integrity sha512-fluIaaV+GyV24CCu/ggiHdV+j4RNh85yQnAYS/G2mZODZgGmmlrgCydjUcV3YvxCm9x8nMAfThsqTni4KiXT4A==
dependencies:
ajv "^6.12.4"
debug "^4.3.2"
@@ -1467,6 +1475,11 @@
minimatch "^3.1.2"
strip-json-comments "^3.1.1"
+"@eslint/js@8.35.0":
+ version "8.35.0"
+ resolved "https://registry.yarnpkg.com/@eslint/js/-/js-8.35.0.tgz#b7569632b0b788a0ca0e438235154e45d42813a7"
+ integrity sha512-JXdzbRiWclLVoD8sNUjR443VVlYqiYmDVT6rGUEIEHU5YJW0gaVZwV2xgM7D4arkvASqD0IlLUVjHiFuxaftRw==
+
"@floating-ui/core@^1.0.5":
version "1.1.0"
resolved "https://registry.yarnpkg.com/@floating-ui/core/-/core-1.1.0.tgz#0a1dee4bbce87ff71602625d33f711cafd8afc08"
@@ -1508,6 +1521,13 @@
dependencies:
tslib "^2.4.0"
+"@formatjs/fast-memoize@1.2.8":
+ version "1.2.8"
+ resolved "https://registry.yarnpkg.com/@formatjs/fast-memoize/-/fast-memoize-1.2.8.tgz#425a69f783005f69e11f9e38a7f87f8822d330c6"
+ integrity sha512-PemNUObyoIZcqdQ1ixTPugzAzhEj7j6AHIyrq/qR6x5BFTvOQeXHYsVZUqBEFduAIscUaDfou+U+xTqOiunJ3Q==
+ dependencies:
+ tslib "^2.4.0"
+
"@formatjs/icu-messageformat-parser@2.1.14":
version "2.1.14"
resolved "https://registry.yarnpkg.com/@formatjs/icu-messageformat-parser/-/icu-messageformat-parser-2.1.14.tgz#d7bc8c82bfce1eb8e3232e6d7e3d6ea92ba390cc"
@@ -1517,6 +1537,15 @@
"@formatjs/icu-skeleton-parser" "1.3.18"
tslib "^2.4.0"
+"@formatjs/icu-messageformat-parser@2.3.0":
+ version "2.3.0"
+ resolved "https://registry.yarnpkg.com/@formatjs/icu-messageformat-parser/-/icu-messageformat-parser-2.3.0.tgz#8e8fd577c3e39454ef14bba4963f2e1d5f2cc46c"
+ integrity sha512-xqtlqYAbfJDF4b6e4O828LBNOWXrFcuYadqAbYORlDRwhyJ2bH+xpUBPldZbzRGUN2mxlZ4Ykhm7jvERtmI8NQ==
+ dependencies:
+ "@formatjs/ecma402-abstract" "1.14.3"
+ "@formatjs/icu-skeleton-parser" "1.3.18"
+ tslib "^2.4.0"
+
"@formatjs/icu-skeleton-parser@1.3.18":
version "1.3.18"
resolved "https://registry.yarnpkg.com/@formatjs/icu-skeleton-parser/-/icu-skeleton-parser-1.3.18.tgz#7aed3d60e718c8ad6b0e64820be44daa1e29eeeb"
@@ -1525,38 +1554,46 @@
"@formatjs/ecma402-abstract" "1.14.3"
tslib "^2.4.0"
-"@formatjs/intl-displaynames@6.2.3":
- version "6.2.3"
- resolved "https://registry.yarnpkg.com/@formatjs/intl-displaynames/-/intl-displaynames-6.2.3.tgz#65bc954fe891fdfe197268602f4d2d3ccd631cce"
- integrity sha512-teB0L68MDGM8jEKQg55w7nvFjzeLHE6e3eK/04s+iuEVYYmvjjiHJKHrthKENzcJ0F6mHf/AwXrbX+1mKxT6AQ==
+"@formatjs/intl-displaynames@6.2.6":
+ version "6.2.6"
+ resolved "https://registry.yarnpkg.com/@formatjs/intl-displaynames/-/intl-displaynames-6.2.6.tgz#6bc02fe0bf6571391aac0e01e74ecbf38542ff32"
+ integrity sha512-scf5AQTk9EjpvPhboo5sizVOvidTdMOnajv9z+0cejvl7JNl9bl/aMrNBgC72UH+bP3l45usPUKAGskV6sNIrA==
dependencies:
"@formatjs/ecma402-abstract" "1.14.3"
"@formatjs/intl-localematcher" "0.2.32"
tslib "^2.4.0"
-"@formatjs/intl-getcanonicallocales@2.0.5":
- version "2.0.5"
- resolved "https://registry.yarnpkg.com/@formatjs/intl-getcanonicallocales/-/intl-getcanonicallocales-2.0.5.tgz#d405cf5221f49531e62ecfde50acdfb62fcc4854"
- integrity sha512-YOk+Fa5gpPq5bdpm8JDAY5bkfCkR+NENZKQbLHeqhm8JchHcclPwZ9FU48gYGg3CW6Wi/cTCOvmOrzsIhlkr0w==
+"@formatjs/intl-enumerator@1.2.1":
+ version "1.2.1"
+ resolved "https://registry.yarnpkg.com/@formatjs/intl-enumerator/-/intl-enumerator-1.2.1.tgz#2bed9e59385105d8a234fe5b71f27cda7c093e61"
+ integrity sha512-hK54SSi3hwwWZd7zz9wjYo7AIOlovhHBoUYjQJ5sZXHSLdwAnxE2ck5VaTwWKr4X6Vryq5stmy+MQXA4nDT9jg==
dependencies:
tslib "^2.4.0"
-"@formatjs/intl-listformat@7.1.7":
- version "7.1.7"
- resolved "https://registry.yarnpkg.com/@formatjs/intl-listformat/-/intl-listformat-7.1.7.tgz#b46fec1038ef9ca062d1e7b9b3412c2a14dca18f"
- integrity sha512-Zzf5ruPpfJnrAA2hGgf/6pMgQ3tx9oJVhpqycFDavHl3eEzrwdHddGqGdSNwhd0bB4NAFttZNQdmKDldc5iDZw==
+"@formatjs/intl-getcanonicallocales@2.1.0":
+ version "2.1.0"
+ resolved "https://registry.yarnpkg.com/@formatjs/intl-getcanonicallocales/-/intl-getcanonicallocales-2.1.0.tgz#57ef487ff2d90c12bbda9fba86f56b7c28cb80ba"
+ integrity sha512-gpPVLNSjNnwG4ctvSs7XiFQ/sIOyxcZrXukg1G226FUE+Cy6KMcAxo22zPZXhCTZt50b1FQZ/Zua5U/k9inb0Q==
+ dependencies:
+ tslib "^2.4.0"
+
+"@formatjs/intl-listformat@7.1.9":
+ version "7.1.9"
+ resolved "https://registry.yarnpkg.com/@formatjs/intl-listformat/-/intl-listformat-7.1.9.tgz#0c2ce67b610054f215dd2635a6da7da308cfbe3d"
+ integrity sha512-5YikxwRqRXTVWVujhswDOTCq6gs+m9IcNbNZLa6FLtyBStAjEsuE2vAU+lPsbz9ZTST57D5fodjIh2JXT6sMWQ==
dependencies:
"@formatjs/ecma402-abstract" "1.14.3"
"@formatjs/intl-localematcher" "0.2.32"
tslib "^2.4.0"
-"@formatjs/intl-locale@3.0.11":
- version "3.0.11"
- resolved "https://registry.yarnpkg.com/@formatjs/intl-locale/-/intl-locale-3.0.11.tgz#6b3bee5692fab3c70a0ce9c642c2a2bec3700aa4"
- integrity sha512-gLEX9kzebBjIVCkXMMN+VFMUV2aj0vhmrP+nke2muxUSJ3fLs/DJjlkv+s59rAL3nNaGdvphqKLhQsul0mmhAw==
+"@formatjs/intl-locale@3.1.1":
+ version "3.1.1"
+ resolved "https://registry.yarnpkg.com/@formatjs/intl-locale/-/intl-locale-3.1.1.tgz#8d2efe6d1cade0cda367b1aeee38909b880ae067"
+ integrity sha512-UshFvThVOloYsHagGe7m2mDifEbZaS9+a+x3Va8YKU3NxFDyNr8s5EQgYkZhZ2kTzWqBxeKB/qZE9VT6LR/lRg==
dependencies:
"@formatjs/ecma402-abstract" "1.14.3"
- "@formatjs/intl-getcanonicallocales" "2.0.5"
+ "@formatjs/intl-enumerator" "1.2.1"
+ "@formatjs/intl-getcanonicallocales" "2.1.0"
tslib "^2.4.0"
"@formatjs/intl-localematcher@0.2.32":
@@ -1574,10 +1611,10 @@
"@formatjs/ecma402-abstract" "1.4.0"
tslib "^2.0.1"
-"@formatjs/intl-pluralrules@5.1.8":
- version "5.1.8"
- resolved "https://registry.yarnpkg.com/@formatjs/intl-pluralrules/-/intl-pluralrules-5.1.8.tgz#11eeca3cde088fd68d258a09b0791b327a8eb019"
- integrity sha512-uevO916EWoeuueqeNzHjnUzpfWZzXFJibC/sEvPR/ZiZH5btWuOLeJLdb1To4nMH8ZJQlmAf8SDpFf+eWvz5lQ==
+"@formatjs/intl-pluralrules@5.1.10":
+ version "5.1.10"
+ resolved "https://registry.yarnpkg.com/@formatjs/intl-pluralrules/-/intl-pluralrules-5.1.10.tgz#46ad0680f013cdbcccab36891c4ccdd9e4069070"
+ integrity sha512-c8VZ0J0LalJ+4PHyYkwn/Vc9XX6TJPcY1HHyOixhEnr1x4zxk3ehvdQE8pB0/zuSE1RQTos/pKMF/8XmEsM/cA==
dependencies:
"@formatjs/ecma402-abstract" "1.14.3"
"@formatjs/intl-localematcher" "0.2.32"
@@ -1590,17 +1627,17 @@
dependencies:
emojis-list "^3.0.0"
-"@formatjs/intl@2.6.3":
- version "2.6.3"
- resolved "https://registry.yarnpkg.com/@formatjs/intl/-/intl-2.6.3.tgz#7cedd184fb62d39174fbf62ee636b1b306524b7c"
- integrity sha512-JaVZk14U/GypVfCZPevQ0KdruFkq16FXx7g398/Dm+YEx/W7sRiftbZeDy4wQ7WGryb45e763XycxD9o/vm9BA==
+"@formatjs/intl@2.6.7":
+ version "2.6.7"
+ resolved "https://registry.yarnpkg.com/@formatjs/intl/-/intl-2.6.7.tgz#a64cf37d01c3d09ce18cf9390982534655cae14b"
+ integrity sha512-9FvEJfUMzlmP5ZBK3EE0928kVsZmD5aeWXg+faP8+mKIvG3c0hkLEXQ2MiUrXQt4rsEzOPbYVtBdthzSM0e2fw==
dependencies:
"@formatjs/ecma402-abstract" "1.14.3"
- "@formatjs/fast-memoize" "1.2.7"
- "@formatjs/icu-messageformat-parser" "2.1.14"
- "@formatjs/intl-displaynames" "6.2.3"
- "@formatjs/intl-listformat" "7.1.7"
- intl-messageformat "10.2.5"
+ "@formatjs/fast-memoize" "1.2.8"
+ "@formatjs/icu-messageformat-parser" "2.3.0"
+ "@formatjs/intl-displaynames" "6.2.6"
+ "@formatjs/intl-listformat" "7.1.9"
+ intl-messageformat "10.3.1"
tslib "^2.4.0"
"@formatjs/ts-transformer@2.13.0", "@formatjs/ts-transformer@^2.6.0":
@@ -1612,12 +1649,12 @@
tslib "^2.0.1"
typescript "^4.0"
-"@formatjs/ts-transformer@3.11.5":
- version "3.11.5"
- resolved "https://registry.yarnpkg.com/@formatjs/ts-transformer/-/ts-transformer-3.11.5.tgz#0502c0c38d4ad628efbef61f1c2e35b7ea37959e"
- integrity sha512-cAmvKzgPqdetAr/RsxoXYhfNhMf5tERlXzJTsQw+j6tddPwIAbihACQx6KaajyJJ4aNssiziWNmcaHtjTqrrVw==
+"@formatjs/ts-transformer@3.12.0":
+ version "3.12.0"
+ resolved "https://registry.yarnpkg.com/@formatjs/ts-transformer/-/ts-transformer-3.12.0.tgz#7d6340c164db38202ece328ca37d1e9a0d5e62ed"
+ integrity sha512-/jEpXcqA6y/vdijgkxSoKGfkGR5VcClJeI8hnpJ2PBCHfrc4ywFMyoZqRAakKW3IJVttaDo7mGvBAIDxV1F4Qg==
dependencies:
- "@formatjs/icu-messageformat-parser" "2.1.14"
+ "@formatjs/icu-messageformat-parser" "2.3.0"
"@types/json-stable-stringify" "^1.0.32"
"@types/node" "14 || 16 || 17"
chalk "^4.0.0"
@@ -1642,17 +1679,17 @@
resolved "https://registry.yarnpkg.com/@hapi/hoek/-/hoek-9.3.0.tgz#8368869dcb735be2e7f5cb7647de78e167a251fb"
integrity sha512-/c6rf4UJlmHlC9b5BaNvzAcFv7HZ2QHaV0D4/HNlBdvFnvQq8RI4kYdhyPCl7Xj+oWvTWQ8ujhqS53LIgAe6KQ==
-"@headlessui/react@1.7.7":
- version "1.7.7"
- resolved "https://registry.yarnpkg.com/@headlessui/react/-/react-1.7.7.tgz#d6f8708d8943ae8ebb1a6929108234e4515ac7e8"
- integrity sha512-BqDOd/tB9u2tA0T3Z0fn18ktw+KbVwMnkxxsGPIH2hzssrQhKB5n/6StZOyvLYP/FsYtvuXfi9I0YowKPv2c1w==
+"@headlessui/react@1.7.12":
+ version "1.7.12"
+ resolved "https://registry.yarnpkg.com/@headlessui/react/-/react-1.7.12.tgz#9ab2baa3c4f632782631e00937f9531a34033619"
+ integrity sha512-FhSx5V+Qp0GvbTpaxyS+ymGDDNntCacClWsk/d8Upbr19g3AsPbjfPk4+m2CgJGcuCB5Dz7LpUIOAbvQTyjL2g==
dependencies:
client-only "^0.0.1"
-"@heroicons/react@2.0.13":
- version "2.0.13"
- resolved "https://registry.yarnpkg.com/@heroicons/react/-/react-2.0.13.tgz#9b1cc54ff77d6625c9565efdce0054a4bcd9074c"
- integrity sha512-iSN5XwmagrnirWlYEWNPdCDj9aRYVD/lnK3JlsC9/+fqGF80k8C7rl+1HCvBX0dBoagKqOFBs6fMhJJ1hOg1EQ==
+"@heroicons/react@2.0.16":
+ version "2.0.16"
+ resolved "https://registry.yarnpkg.com/@heroicons/react/-/react-2.0.16.tgz#562883c19ba2690c83380b42a9a5cce39dcbdb4a"
+ integrity sha512-x89rFxH3SRdYaA+JCXwfe+RkE1SFTo9GcOkZettHer71Y3T7V+ogKmfw5CjTazgS3d0ClJ7p1NA+SP7VQLQcLw==
"@humanwhocodes/config-array@^0.11.8":
version "0.11.8"
@@ -1673,32 +1710,32 @@
resolved "https://registry.yarnpkg.com/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz#b520529ec21d8e5945a1851dfd1c32e94e39ff45"
integrity sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==
-"@internationalized/date@^3.0.2":
- version "3.0.2"
- resolved "https://registry.yarnpkg.com/@internationalized/date/-/date-3.0.2.tgz#1566a0bcbd82dce4dd54a5b26456bb701068cb89"
- integrity sha512-9V1IxesP6ASZj/hYyOXOC4yPJvidbbStyWQKLCQSqhhKACMOXoo+BddXZJy47ju9mqOMpWdrJ2rTx4yTxK9oag==
+"@internationalized/date@^3.1.0":
+ version "3.1.0"
+ resolved "https://registry.yarnpkg.com/@internationalized/date/-/date-3.1.0.tgz#da48aeaa971df6ad410cd32597c174d6cab9a3b4"
+ integrity sha512-wjeur7K4AecT+YwoBmBXQ/+n5lP69tuZc34hw09s44EozZK7FZHSyfPvRp5/xEb2D6abLboskDY4jG+Nt0TNUQ==
dependencies:
"@swc/helpers" "^0.4.14"
-"@internationalized/message@^3.0.10":
- version "3.0.10"
- resolved "https://registry.yarnpkg.com/@internationalized/message/-/message-3.0.10.tgz#340dcfd14ace37234e09419427c991a0c466b96e"
- integrity sha512-vfLqEop/NH68IgqMcXJNSDqZ5Leg3EEgCxhuuSefU7vvdbptD3pwpUWXaK9igYPa+aZfUU0eqv86yqm76obtsw==
+"@internationalized/message@^3.1.0":
+ version "3.1.0"
+ resolved "https://registry.yarnpkg.com/@internationalized/message/-/message-3.1.0.tgz#b284014cd8bbb430a648b76c87c62bdca968b04c"
+ integrity sha512-Oo5m70FcBdADf7G8NkUffVSfuCdeAYVfsvNjZDi9ELpjvkc4YNJVTHt/NyTI9K7FgAVoELxiP9YmN0sJ+HNHYQ==
dependencies:
"@swc/helpers" "^0.4.14"
intl-messageformat "^10.1.0"
-"@internationalized/number@^3.1.2":
- version "3.1.2"
- resolved "https://registry.yarnpkg.com/@internationalized/number/-/number-3.1.2.tgz#4482a6ac573acfb18efd354a42008af20da6c89c"
- integrity sha512-Mbys8SGsn0ApXz3hJLNU+d95B8luoUbwnmCpBwl7d63UmYAlcT6TRDyvaS/vwdbElXLcsQJjQCu0gox2cv/Tig==
+"@internationalized/number@^3.2.0":
+ version "3.2.0"
+ resolved "https://registry.yarnpkg.com/@internationalized/number/-/number-3.2.0.tgz#dffb661cacd61a87b814c47b7d5240a286249066"
+ integrity sha512-GUXkhXSX1Ee2RURnzl+47uvbOxnlMnvP9Er+QePTjDjOPWuunmLKlEkYkEcLiiJp7y4l9QxGDLOlVr8m69LS5w==
dependencies:
"@swc/helpers" "^0.4.14"
-"@internationalized/string@^3.0.1":
- version "3.0.1"
- resolved "https://registry.yarnpkg.com/@internationalized/string/-/string-3.0.1.tgz#2c70a81ae5eb84f156f40330369c2469bad6d504"
- integrity sha512-2+rHfXZ56YgsC6i3fKvBue/xatnSm0Jv+C/x4+n3wg5xAcLh4LPW3GvZ/9ifxNAz9+IWplgZHa1FRIbSuUvNWg==
+"@internationalized/string@^3.1.0":
+ version "3.1.0"
+ resolved "https://registry.yarnpkg.com/@internationalized/string/-/string-3.1.0.tgz#0b365906a8c3f44800b0db52c2e990cff345abce"
+ integrity sha512-TJQKiyUb+wyAfKF59UNeZ/kELMnkxyecnyPCnBI1ma4NaXReJW+7Cc2mObXAqraIBJUVv7rgI46RLKrLgi35ng==
dependencies:
"@swc/helpers" "^0.4.14"
@@ -1734,7 +1771,7 @@
resolved "https://registry.yarnpkg.com/@jridgewell/set-array/-/set-array-1.1.2.tgz#7c6cf998d6d20b914c0a55a91ae928ff25965e72"
integrity sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==
-"@jridgewell/sourcemap-codec@1.4.14", "@jridgewell/sourcemap-codec@^1.4.10":
+"@jridgewell/sourcemap-codec@1.4.14", "@jridgewell/sourcemap-codec@^1.4.10", "@jridgewell/sourcemap-codec@^1.4.13":
version "1.4.14"
resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz#add4c98d341472a289190b424efbdb096991bb24"
integrity sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==
@@ -1747,7 +1784,7 @@
"@jridgewell/resolve-uri" "^3.0.3"
"@jridgewell/sourcemap-codec" "^1.4.10"
-"@jridgewell/trace-mapping@^0.3.8", "@jridgewell/trace-mapping@^0.3.9":
+"@jridgewell/trace-mapping@^0.3.17", "@jridgewell/trace-mapping@^0.3.9":
version "0.3.17"
resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.17.tgz#793041277af9073b0951a7fe0f0d8c4c98c36985"
integrity sha512-MCNzAp77qzKca9+W/+I0+sEpaUnZoeasnghNeVc41VZCEKaCH73Vq3BZZ/SzWIgrqE4H4ceI+p+b6C0mHf9T4g==
@@ -2234,1073 +2271,1073 @@
resolved "https://registry.yarnpkg.com/@popperjs/core/-/core-2.11.6.tgz#cee20bd55e68a1720bdab363ecf0c821ded4cd45"
integrity sha512-50/17A98tWUfQ176raKiOGXuYpLyyVMkxxG6oylzL3BPOlA6ADGdK7EYunSa4I064xerltq9TGXs8HmOk5E+vw==
-"@react-aria/breadcrumbs@^3.4.1":
- version "3.4.1"
- resolved "https://registry.yarnpkg.com/@react-aria/breadcrumbs/-/breadcrumbs-3.4.1.tgz#f0fc1353bf402cac2d2312d7de60f545366e1413"
- integrity sha512-3dotDXcXX5IbES9tS9gK5m/2inlZH1ZESi61aBUoD/kQbUcf4CJ3TniVqzBKjNqQN8yIBH/LjwkAoGmuvtPVRQ==
+"@react-aria/breadcrumbs@^3.5.0":
+ version "3.5.0"
+ resolved "https://registry.yarnpkg.com/@react-aria/breadcrumbs/-/breadcrumbs-3.5.0.tgz#e2ff9b39dd92f355c4059b70b13a639245d1dbb9"
+ integrity sha512-WiNMlk8COR+4zpJ8mFgTgWQqCxoFE6OMJ16anJzR8IgP1xMzUmIQ7l0s0Dv4D5qE+xVlgNF0ccDdw1x6A+WzPw==
dependencies:
- "@react-aria/i18n" "^3.6.3"
- "@react-aria/interactions" "^3.13.1"
- "@react-aria/link" "^3.3.6"
- "@react-aria/utils" "^3.14.2"
- "@react-types/breadcrumbs" "^3.4.6"
- "@react-types/shared" "^3.16.0"
+ "@react-aria/i18n" "^3.7.0"
+ "@react-aria/interactions" "^3.14.0"
+ "@react-aria/link" "^3.4.0"
+ "@react-aria/utils" "^3.15.0"
+ "@react-types/breadcrumbs" "^3.5.0"
+ "@react-types/shared" "^3.17.0"
"@swc/helpers" "^0.4.14"
-"@react-aria/button@^3.6.4":
- version "3.6.4"
- resolved "https://registry.yarnpkg.com/@react-aria/button/-/button-3.6.4.tgz#51927c9d968d0c1f741ee2081ca7f2e244abbc12"
- integrity sha512-OEs5fNGiuZzyC5y0cNl96+6pRf/3ZhI1i2m6LlRYhJLsWXPhHt21UHEnlSchE/XGtgKojJEeTsXottoBFTBi5w==
+"@react-aria/button@^3.7.0":
+ version "3.7.0"
+ resolved "https://registry.yarnpkg.com/@react-aria/button/-/button-3.7.0.tgz#b00635c8be0e47e19733c96f3702b699f65242b7"
+ integrity sha512-4DSGXrAWflzT4cQe/x0KdrPzz7hv9vZgqYJuNXQkpmeIMs1EmUKuby2xC+W9GHuZ+8dMxjTWKy3XdwX2tCM42A==
dependencies:
- "@react-aria/focus" "^3.10.1"
- "@react-aria/interactions" "^3.13.1"
- "@react-aria/utils" "^3.14.2"
- "@react-stately/toggle" "^3.4.4"
- "@react-types/button" "^3.7.0"
- "@react-types/shared" "^3.16.0"
+ "@react-aria/focus" "^3.11.0"
+ "@react-aria/interactions" "^3.14.0"
+ "@react-aria/utils" "^3.15.0"
+ "@react-stately/toggle" "^3.5.0"
+ "@react-types/button" "^3.7.1"
+ "@react-types/shared" "^3.17.0"
"@swc/helpers" "^0.4.14"
-"@react-aria/calendar@^3.0.5":
- version "3.0.5"
- resolved "https://registry.yarnpkg.com/@react-aria/calendar/-/calendar-3.0.5.tgz#78b4138688d325a3c3f8dc0be3e45291b3e8670b"
- integrity sha512-RIOwGYIwMizN/MAF5RkTb2ic9OJ0rJyR2VqqgtV3c7ADHNejzyLYMQmaalEFDUHS+AbvaXM1LCXdFBhSB8nf5w==
+"@react-aria/calendar@^3.1.0":
+ version "3.1.0"
+ resolved "https://registry.yarnpkg.com/@react-aria/calendar/-/calendar-3.1.0.tgz#58565af2bca09ef72dddb246ff4a70157c008add"
+ integrity sha512-XWtoGMBTYpj5De2yfboAv60SMXa/T2BjPd0uSkiaPXAC0vPjdB0VPhGbSi6LKCYIiTAMs98mMP0P4WYhWyW4jA==
dependencies:
- "@internationalized/date" "^3.0.2"
- "@react-aria/i18n" "^3.6.3"
- "@react-aria/interactions" "^3.13.1"
- "@react-aria/live-announcer" "^3.1.2"
- "@react-aria/utils" "^3.14.2"
- "@react-stately/calendar" "^3.0.5"
- "@react-types/button" "^3.7.0"
- "@react-types/calendar" "^3.0.5"
- "@react-types/shared" "^3.16.0"
+ "@internationalized/date" "^3.1.0"
+ "@react-aria/i18n" "^3.7.0"
+ "@react-aria/interactions" "^3.14.0"
+ "@react-aria/live-announcer" "^3.2.0"
+ "@react-aria/utils" "^3.15.0"
+ "@react-stately/calendar" "^3.1.0"
+ "@react-types/button" "^3.7.1"
+ "@react-types/calendar" "^3.1.0"
+ "@react-types/shared" "^3.17.0"
"@swc/helpers" "^0.4.14"
-"@react-aria/checkbox@^3.7.1":
- version "3.7.1"
- resolved "https://registry.yarnpkg.com/@react-aria/checkbox/-/checkbox-3.7.1.tgz#217ea3173ad37ae85cb39bcb9932eb5c1cde2e0b"
- integrity sha512-3KRg/KrTRwQdw5Yg7gpbIKWWVt57PbGSEXAS/diQvRf9pTXbOuChTES8uVlcwF8q+3mKXc4ppzE3gsNQ5jOMqg==
+"@react-aria/checkbox@^3.8.0":
+ version "3.8.0"
+ resolved "https://registry.yarnpkg.com/@react-aria/checkbox/-/checkbox-3.8.0.tgz#bded3e1238901c6cac109c8d1a0b2a66d452f8be"
+ integrity sha512-VjezmSfDx1/A+Yz5naZ9xCxkasmtsO7uK+Ur+Z6bKmHwvoazRK5cATdRG4mj++0JUBYn6bvBGBEXFZHTkkGahw==
dependencies:
- "@react-aria/label" "^3.4.4"
- "@react-aria/toggle" "^3.4.2"
- "@react-aria/utils" "^3.14.2"
- "@react-stately/checkbox" "^3.3.2"
- "@react-stately/toggle" "^3.4.4"
- "@react-types/checkbox" "^3.4.1"
- "@react-types/shared" "^3.16.0"
+ "@react-aria/label" "^3.5.0"
+ "@react-aria/toggle" "^3.5.0"
+ "@react-aria/utils" "^3.15.0"
+ "@react-stately/checkbox" "^3.4.0"
+ "@react-stately/toggle" "^3.5.0"
+ "@react-types/checkbox" "^3.4.2"
+ "@react-types/shared" "^3.17.0"
"@swc/helpers" "^0.4.14"
-"@react-aria/combobox@^3.4.4":
- version "3.4.4"
- resolved "https://registry.yarnpkg.com/@react-aria/combobox/-/combobox-3.4.4.tgz#0a968bfefedc9106e4b098ea84707f6da93dfc83"
- integrity sha512-aviSDt4JkYZC1Ww83gvrNB4cHetXu73n5NuEfMNBC3B6fiL0MP5Av5+lMgf8FzpQks39QkZNxBtQ/h4I3D7SBA==
+"@react-aria/combobox@^3.5.0":
+ version "3.5.0"
+ resolved "https://registry.yarnpkg.com/@react-aria/combobox/-/combobox-3.5.0.tgz#ebb7d412a5b9b066da97cafc1e8da249629c6961"
+ integrity sha512-xbeZMxcWLDhyLqdy/0qltX5b6/YH4RV6JlBLFhRP20x0inPcnBSCdS2aarRghXAAzRagoLUtul2O8t4gfWwWxQ==
dependencies:
- "@react-aria/i18n" "^3.6.3"
- "@react-aria/interactions" "^3.13.1"
- "@react-aria/listbox" "^3.7.2"
- "@react-aria/live-announcer" "^3.1.2"
- "@react-aria/menu" "^3.7.1"
- "@react-aria/overlays" "^3.12.1"
- "@react-aria/selection" "^3.12.1"
- "@react-aria/textfield" "^3.8.1"
- "@react-aria/utils" "^3.14.2"
- "@react-stately/collections" "^3.5.1"
- "@react-stately/combobox" "^3.3.1"
- "@react-stately/layout" "^3.10.0"
- "@react-types/button" "^3.7.0"
- "@react-types/combobox" "^3.5.5"
- "@react-types/shared" "^3.16.0"
+ "@react-aria/i18n" "^3.7.0"
+ "@react-aria/interactions" "^3.14.0"
+ "@react-aria/listbox" "^3.8.0"
+ "@react-aria/live-announcer" "^3.2.0"
+ "@react-aria/menu" "^3.8.0"
+ "@react-aria/overlays" "^3.13.0"
+ "@react-aria/selection" "^3.13.0"
+ "@react-aria/textfield" "^3.9.0"
+ "@react-aria/utils" "^3.15.0"
+ "@react-stately/collections" "^3.6.0"
+ "@react-stately/combobox" "^3.4.0"
+ "@react-stately/layout" "^3.11.0"
+ "@react-types/button" "^3.7.1"
+ "@react-types/combobox" "^3.6.0"
+ "@react-types/shared" "^3.17.0"
"@swc/helpers" "^0.4.14"
-"@react-aria/datepicker@^3.2.1":
- version "3.2.1"
- resolved "https://registry.yarnpkg.com/@react-aria/datepicker/-/datepicker-3.2.1.tgz#56a222c4b1c9c65b9b9371d3066611134f537ab7"
- integrity sha512-NnW9VgX/YjxkgjcIaxmOhzpfiQmTQpCXjpPJ1+3nPhKzPKpcjtPxIYTDMkm/R+6i5FRukEGtjhg3QY9amLK6hQ==
+"@react-aria/datepicker@^3.3.0":
+ version "3.3.0"
+ resolved "https://registry.yarnpkg.com/@react-aria/datepicker/-/datepicker-3.3.0.tgz#15bc746d75f43c2d31c826fcc34c6859433b205a"
+ integrity sha512-76/5a2Dfe/SCcW0j4hqeSTnlh6SSW/AYPKPr5fNaiGnLFJ3oLsc9SAuUgTsOBglR/J3N/hqtH+UO2U8X1QC6Ng==
dependencies:
- "@internationalized/date" "^3.0.2"
- "@internationalized/number" "^3.1.2"
- "@internationalized/string" "^3.0.1"
- "@react-aria/focus" "^3.10.1"
- "@react-aria/i18n" "^3.6.3"
- "@react-aria/interactions" "^3.13.1"
- "@react-aria/label" "^3.4.4"
- "@react-aria/spinbutton" "^3.2.1"
- "@react-aria/utils" "^3.14.2"
- "@react-stately/datepicker" "^3.2.1"
- "@react-types/button" "^3.7.0"
- "@react-types/calendar" "^3.0.5"
- "@react-types/datepicker" "^3.1.4"
- "@react-types/dialog" "^3.4.5"
- "@react-types/shared" "^3.16.0"
+ "@internationalized/date" "^3.1.0"
+ "@internationalized/number" "^3.2.0"
+ "@internationalized/string" "^3.1.0"
+ "@react-aria/focus" "^3.11.0"
+ "@react-aria/i18n" "^3.7.0"
+ "@react-aria/interactions" "^3.14.0"
+ "@react-aria/label" "^3.5.0"
+ "@react-aria/spinbutton" "^3.3.0"
+ "@react-aria/utils" "^3.15.0"
+ "@react-stately/datepicker" "^3.3.0"
+ "@react-types/button" "^3.7.1"
+ "@react-types/calendar" "^3.1.0"
+ "@react-types/datepicker" "^3.2.0"
+ "@react-types/dialog" "^3.5.0"
+ "@react-types/shared" "^3.17.0"
"@swc/helpers" "^0.4.14"
-"@react-aria/dialog@^3.4.2":
- version "3.4.2"
- resolved "https://registry.yarnpkg.com/@react-aria/dialog/-/dialog-3.4.2.tgz#b35f13e47d5d7d5363c7089d5d847069815bb5ea"
- integrity sha512-Z6YZYXtwwmC5ZHjJldF3zuTjHnli7fXe/sM1ts3bw6jvU2L0kzhV/DRbPXYg8h695Oj9t+OIi4qxjEyKVH7SEA==
+"@react-aria/dialog@^3.5.0":
+ version "3.5.0"
+ resolved "https://registry.yarnpkg.com/@react-aria/dialog/-/dialog-3.5.0.tgz#678787127a0fcc66184e1fe7b2e23d9470f8cb7e"
+ integrity sha512-QcGwrNSn7hya6tcs0CTuYEMYBPk6YT1vaO6xMTfsSyRhJNCRvvtx/NJ3Bg26M7WvzbuC2aKaSDBw2c14ZeXr5g==
dependencies:
- "@react-aria/focus" "^3.10.1"
- "@react-aria/overlays" "^3.12.1"
- "@react-aria/utils" "^3.14.2"
- "@react-stately/overlays" "^3.4.4"
- "@react-types/dialog" "^3.4.5"
- "@react-types/shared" "^3.16.0"
+ "@react-aria/focus" "^3.11.0"
+ "@react-aria/overlays" "^3.13.0"
+ "@react-aria/utils" "^3.15.0"
+ "@react-stately/overlays" "^3.5.0"
+ "@react-types/dialog" "^3.5.0"
+ "@react-types/shared" "^3.17.0"
"@swc/helpers" "^0.4.14"
-"@react-aria/dnd@^3.0.1":
- version "3.0.1"
- resolved "https://registry.yarnpkg.com/@react-aria/dnd/-/dnd-3.0.1.tgz#6e601873bde4173578ce63ba6bcfb78abf3bba59"
- integrity sha512-z/T59Jc+6mj3OMcLjfA6MYd0zD6K3DYw+kB2CZ0EPte7BRN8wtU4+q/bx1iX+If97X6bTcHjMGX6nrQJ5vX/fw==
+"@react-aria/dnd@^3.1.0":
+ version "3.1.0"
+ resolved "https://registry.yarnpkg.com/@react-aria/dnd/-/dnd-3.1.0.tgz#42a08e436ad1a62ad802c015113791efb7a07081"
+ integrity sha512-SSkz9i7EcsoTrafDPpzlx+laYNfsUrCM7xX6yu68l9zO96kdoemZuv9OqbDBw2D1peqHT7kMoLreTLWsubb5bg==
dependencies:
- "@internationalized/string" "^3.0.1"
- "@react-aria/i18n" "^3.6.3"
- "@react-aria/interactions" "^3.13.1"
- "@react-aria/live-announcer" "^3.1.2"
- "@react-aria/overlays" "^3.12.1"
- "@react-aria/utils" "^3.14.2"
- "@react-aria/visually-hidden" "^3.6.1"
- "@react-stately/dnd" "^3.0.1"
- "@react-types/button" "^3.7.0"
- "@react-types/shared" "^3.16.0"
+ "@internationalized/string" "^3.1.0"
+ "@react-aria/i18n" "^3.7.0"
+ "@react-aria/interactions" "^3.14.0"
+ "@react-aria/live-announcer" "^3.2.0"
+ "@react-aria/overlays" "^3.13.0"
+ "@react-aria/utils" "^3.15.0"
+ "@react-aria/visually-hidden" "^3.7.0"
+ "@react-stately/dnd" "^3.1.0"
+ "@react-types/button" "^3.7.1"
+ "@react-types/shared" "^3.17.0"
"@swc/helpers" "^0.4.14"
-"@react-aria/focus@^3.10.1":
- version "3.10.1"
- resolved "https://registry.yarnpkg.com/@react-aria/focus/-/focus-3.10.1.tgz#624d02d2565151030a4156aeb17685d87f18ad58"
- integrity sha512-HjgFUC1CznuYC7CxtBIFML6bOBxW3M3cSNtvmXU9QWlrPSwwOLkXCnfY6+UkjCc5huP4v7co4PoRDX8Vbe/cVQ==
+"@react-aria/focus@^3.11.0":
+ version "3.11.0"
+ resolved "https://registry.yarnpkg.com/@react-aria/focus/-/focus-3.11.0.tgz#8124b2341e8d43af72f3da85b08567bda45421b7"
+ integrity sha512-yPuWs9bAR9CMfIwyOPm2oXLPF19gNkUqW+ozSPhWbLMTEa8Ma09eHW1br4xbN+4ONOm/dCJsIkxTNPUkiLdQoA==
dependencies:
- "@react-aria/interactions" "^3.13.1"
- "@react-aria/utils" "^3.14.2"
- "@react-types/shared" "^3.16.0"
+ "@react-aria/interactions" "^3.14.0"
+ "@react-aria/utils" "^3.15.0"
+ "@react-types/shared" "^3.17.0"
"@swc/helpers" "^0.4.14"
clsx "^1.1.1"
-"@react-aria/grid@^3.5.2":
- version "3.5.2"
- resolved "https://registry.yarnpkg.com/@react-aria/grid/-/grid-3.5.2.tgz#17454be19d4f53bde27fc4b676fa02dae4f3a85d"
- integrity sha512-+cDtTvTT0YF4jgy1pv0omcweub6z1N+GdkpHC6L6/jtH2gFRVns3IC6pf5ihLDIpLloylthaMMR8C3lus7035g==
+"@react-aria/grid@^3.6.0":
+ version "3.6.0"
+ resolved "https://registry.yarnpkg.com/@react-aria/grid/-/grid-3.6.0.tgz#0a42f7423eddcb0c77384f71dcf00b3214de5732"
+ integrity sha512-O8MJdCfJ0weDbTOxYWN+nq6e9v00NGa9wXy35BdcmVnOOtk7WR8NHeH+/qPXwAm6/NBzl0ud9PZDjw2VKONALg==
dependencies:
- "@react-aria/focus" "^3.10.1"
- "@react-aria/i18n" "^3.6.3"
- "@react-aria/interactions" "^3.13.1"
- "@react-aria/live-announcer" "^3.1.2"
- "@react-aria/selection" "^3.12.1"
- "@react-aria/utils" "^3.14.2"
- "@react-stately/grid" "^3.4.2"
- "@react-stately/selection" "^3.11.2"
- "@react-stately/virtualizer" "^3.4.1"
- "@react-types/checkbox" "^3.4.1"
- "@react-types/grid" "^3.1.5"
- "@react-types/shared" "^3.16.0"
+ "@react-aria/focus" "^3.11.0"
+ "@react-aria/i18n" "^3.7.0"
+ "@react-aria/interactions" "^3.14.0"
+ "@react-aria/live-announcer" "^3.2.0"
+ "@react-aria/selection" "^3.13.0"
+ "@react-aria/utils" "^3.15.0"
+ "@react-stately/grid" "^3.5.0"
+ "@react-stately/selection" "^3.12.0"
+ "@react-stately/virtualizer" "^3.5.0"
+ "@react-types/checkbox" "^3.4.2"
+ "@react-types/grid" "^3.1.6"
+ "@react-types/shared" "^3.17.0"
"@swc/helpers" "^0.4.14"
-"@react-aria/gridlist@^3.1.2":
- version "3.1.2"
- resolved "https://registry.yarnpkg.com/@react-aria/gridlist/-/gridlist-3.1.2.tgz#ffb7bc5e4e15e3bacdf036e4762f1eea0e6292f7"
- integrity sha512-3HI/e8HzyBRWdEbDH+3Hvj9U5fD/1TYaqA0f4XnBdSEDd7LHPOzZyNzbZMdlMmaq2W0Dmm1YRCMELacFVUehUA==
+"@react-aria/gridlist@^3.2.0":
+ version "3.2.0"
+ resolved "https://registry.yarnpkg.com/@react-aria/gridlist/-/gridlist-3.2.0.tgz#1a1be6fe454bcc37aa5cefa9d79b072acd5291ce"
+ integrity sha512-DUlE2cnzNAyTM8oQ6DIm4FX634HPohtnfzqh+WyQ5rwxagrDLtdeQJBMo/bzWk5pDNKnM/oZCICyR+wPR43gag==
dependencies:
- "@react-aria/focus" "^3.10.1"
- "@react-aria/grid" "^3.5.2"
- "@react-aria/i18n" "^3.6.3"
- "@react-aria/interactions" "^3.13.1"
- "@react-aria/selection" "^3.12.1"
- "@react-aria/utils" "^3.14.2"
- "@react-stately/list" "^3.6.1"
- "@react-types/checkbox" "^3.4.1"
- "@react-types/shared" "^3.16.0"
+ "@react-aria/focus" "^3.11.0"
+ "@react-aria/grid" "^3.6.0"
+ "@react-aria/i18n" "^3.7.0"
+ "@react-aria/interactions" "^3.14.0"
+ "@react-aria/selection" "^3.13.0"
+ "@react-aria/utils" "^3.15.0"
+ "@react-stately/list" "^3.7.0"
+ "@react-types/checkbox" "^3.4.2"
+ "@react-types/shared" "^3.17.0"
"@swc/helpers" "^0.4.14"
-"@react-aria/i18n@^3.6.3":
- version "3.6.3"
- resolved "https://registry.yarnpkg.com/@react-aria/i18n/-/i18n-3.6.3.tgz#2b4d72d0baf07b514d2c35eb6ac356d0247ea84a"
- integrity sha512-cDWl8FXJIXsw/raWcThywBueCJ5ncoogq81wYVS6hfZVmSyncONIB3bwUL12cojmjX1VEP31sN0ujT/83QP95Q==
- dependencies:
- "@internationalized/date" "^3.0.2"
- "@internationalized/message" "^3.0.10"
- "@internationalized/number" "^3.1.2"
- "@internationalized/string" "^3.0.1"
- "@react-aria/ssr" "^3.4.1"
- "@react-aria/utils" "^3.14.2"
- "@react-types/shared" "^3.16.0"
- "@swc/helpers" "^0.4.14"
-
-"@react-aria/interactions@^3.13.1":
- version "3.13.1"
- resolved "https://registry.yarnpkg.com/@react-aria/interactions/-/interactions-3.13.1.tgz#75e102c50a5c1d002cad4ee8d59677aee226186b"
- integrity sha512-WCvfZOi1hhussVTHxVq76OR48ry13Zvp9U5hmuQufyxIUlf4hOvDk4/cbK4o4JiCs8X7C7SRzcwFM34M4NHzmg==
- dependencies:
- "@react-aria/utils" "^3.14.2"
- "@react-types/shared" "^3.16.0"
- "@swc/helpers" "^0.4.14"
-
-"@react-aria/label@^3.4.4":
- version "3.4.4"
- resolved "https://registry.yarnpkg.com/@react-aria/label/-/label-3.4.4.tgz#b891d3cebeeffc7a1413a492d8a694083dc3253e"
- integrity sha512-1fuYf2UctNhBy31uYN7OhdcrwzlB5GS0+C49gDkwWzccB7yr+CoOJ5UQUoVB7WBmzrc+CuzwWxSDd4OupSYIZQ==
- dependencies:
- "@react-aria/utils" "^3.14.2"
- "@react-types/label" "^3.7.1"
- "@react-types/shared" "^3.16.0"
- "@swc/helpers" "^0.4.14"
-
-"@react-aria/link@^3.3.6":
- version "3.3.6"
- resolved "https://registry.yarnpkg.com/@react-aria/link/-/link-3.3.6.tgz#e9e3203c41c4dd5c4113d0a06b7620b476f78345"
- integrity sha512-UjbdBJ8EB+jCC3mPZD6cYykHqZKTy6/VvI5RGJoKtF8cg9639tRy6g102pd4ncFTdD4DfU5PPWtthC24nQRCyQ==
- dependencies:
- "@react-aria/focus" "^3.10.1"
- "@react-aria/interactions" "^3.13.1"
- "@react-aria/utils" "^3.14.2"
- "@react-types/link" "^3.3.6"
- "@react-types/shared" "^3.16.0"
- "@swc/helpers" "^0.4.14"
-
-"@react-aria/listbox@^3.7.2":
- version "3.7.2"
- resolved "https://registry.yarnpkg.com/@react-aria/listbox/-/listbox-3.7.2.tgz#0cbbd4dc39712ac927542259bf4663e087353448"
- integrity sha512-e3O/u2T3TccinmfS/UvHywxLbASmh28U4020WTpZnIrsaoriVCkGZvG1AYNNPDIESz2WO0oRF6vDrmGunglJ2A==
- dependencies:
- "@react-aria/focus" "^3.10.1"
- "@react-aria/interactions" "^3.13.1"
- "@react-aria/label" "^3.4.4"
- "@react-aria/selection" "^3.12.1"
- "@react-aria/utils" "^3.14.2"
- "@react-stately/collections" "^3.5.1"
- "@react-stately/list" "^3.6.1"
- "@react-types/listbox" "^3.3.5"
- "@react-types/shared" "^3.16.0"
- "@swc/helpers" "^0.4.14"
-
-"@react-aria/live-announcer@^3.1.2":
- version "3.1.2"
- resolved "https://registry.yarnpkg.com/@react-aria/live-announcer/-/live-announcer-3.1.2.tgz#a492c7ec1e664c8f41a572368cdbc53e22241a0c"
- integrity sha512-BqtVLPWU10sZssoOJF1lJiRvZe5zqZ5BM39PsFyO7dWhVkR/9O9bZviqvKXnC1oXCnypfa+85gUshbK9unFcWA==
- dependencies:
- "@swc/helpers" "^0.4.14"
-
-"@react-aria/menu@^3.7.1":
- version "3.7.1"
- resolved "https://registry.yarnpkg.com/@react-aria/menu/-/menu-3.7.1.tgz#74c60dcd33bba47faa79deb89523ad21d9855221"
- integrity sha512-5KIUTs3xYSmERB8qzofFghznMVLcG3RWDnJcQjpRtrrYjm6Oc39TJeodDH874fiEr6o3i5WwMrEYVp7NSxz/TQ==
- dependencies:
- "@react-aria/i18n" "^3.6.3"
- "@react-aria/interactions" "^3.13.1"
- "@react-aria/overlays" "^3.12.1"
- "@react-aria/selection" "^3.12.1"
- "@react-aria/utils" "^3.14.2"
- "@react-stately/collections" "^3.5.1"
- "@react-stately/menu" "^3.4.4"
- "@react-stately/tree" "^3.4.1"
- "@react-types/button" "^3.7.0"
- "@react-types/menu" "^3.7.3"
- "@react-types/shared" "^3.16.0"
- "@swc/helpers" "^0.4.14"
-
-"@react-aria/meter@^3.3.4":
- version "3.3.4"
- resolved "https://registry.yarnpkg.com/@react-aria/meter/-/meter-3.3.4.tgz#7361a663ff21bc14df48d9eedec288e21146fabf"
- integrity sha512-RdVd5vlb6//HI8G1hhH4G+E0Y387GYFKjmewSUKK0Lzp9PFLili26s+xLvgigUX9ald7HiPmfPdAlXzotvo54Q==
- dependencies:
- "@react-aria/progress" "^3.3.4"
- "@react-types/meter" "^3.2.5"
- "@react-types/shared" "^3.16.0"
- "@swc/helpers" "^0.4.14"
-
-"@react-aria/numberfield@^3.3.4":
- version "3.3.4"
- resolved "https://registry.yarnpkg.com/@react-aria/numberfield/-/numberfield-3.3.4.tgz#79fc2db5449a09efc20b83530aa2d69ae7140438"
- integrity sha512-yoYeYaEW5v84Ff0x+oSN0h3uzqrSOBEgjtv8ZMaFVsZfm9yMjsVLu+QWGBYCEOPcASMkNZpNR3o91nBPK3XTDw==
- dependencies:
- "@react-aria/i18n" "^3.6.3"
- "@react-aria/interactions" "^3.13.1"
- "@react-aria/live-announcer" "^3.1.2"
- "@react-aria/spinbutton" "^3.2.1"
- "@react-aria/textfield" "^3.8.1"
- "@react-aria/utils" "^3.14.2"
- "@react-stately/numberfield" "^3.3.1"
- "@react-types/button" "^3.7.0"
- "@react-types/numberfield" "^3.3.5"
- "@react-types/shared" "^3.16.0"
- "@react-types/textfield" "^3.6.2"
- "@swc/helpers" "^0.4.14"
-
-"@react-aria/overlays@^3.12.1":
- version "3.12.1"
- resolved "https://registry.yarnpkg.com/@react-aria/overlays/-/overlays-3.12.1.tgz#429fe33b0da7b920334f241c688d73dc9a750a28"
- integrity sha512-OSgSopk2uQI5unvC3+fUyngbRFFe4GnF0iopCmrsI7qSQEusJUd4M2SuPVXUBBwWFt5TsiH7TnxmIPWeh5LSoA==
- dependencies:
- "@react-aria/focus" "^3.10.1"
- "@react-aria/i18n" "^3.6.3"
- "@react-aria/interactions" "^3.13.1"
- "@react-aria/ssr" "^3.4.1"
- "@react-aria/utils" "^3.14.2"
- "@react-aria/visually-hidden" "^3.6.1"
- "@react-stately/overlays" "^3.4.4"
- "@react-types/button" "^3.7.0"
- "@react-types/overlays" "^3.6.5"
- "@react-types/shared" "^3.16.0"
- "@swc/helpers" "^0.4.14"
-
-"@react-aria/progress@^3.3.4":
- version "3.3.4"
- resolved "https://registry.yarnpkg.com/@react-aria/progress/-/progress-3.3.4.tgz#21138195532ae8807fb1dfc2f8162c6032d513dc"
- integrity sha512-MVlWdH7L2e0u1SvkVk+C6/onS8opex9rIKUKHM08s++y80Xe3BIAh8jd5tgdlutDtcZ1kKgfb4bet9dvjymo4A==
- dependencies:
- "@react-aria/i18n" "^3.6.3"
- "@react-aria/label" "^3.4.4"
- "@react-aria/utils" "^3.14.2"
- "@react-types/progress" "^3.2.5"
- "@react-types/shared" "^3.16.0"
- "@swc/helpers" "^0.4.14"
-
-"@react-aria/radio@^3.4.2":
- version "3.4.2"
- resolved "https://registry.yarnpkg.com/@react-aria/radio/-/radio-3.4.2.tgz#bcd2deb8326f934046545fee9b2568f9d3b0655b"
- integrity sha512-PpEsQjwkYOkSfKfnqXpBzf0FM/V2GSC0g/NG2ZAI5atDIACeic+kHCcs8fm2QzXtUDaRltNurvYdDJ+XzZ8g1g==
- dependencies:
- "@react-aria/focus" "^3.10.1"
- "@react-aria/i18n" "^3.6.3"
- "@react-aria/interactions" "^3.13.1"
- "@react-aria/label" "^3.4.4"
- "@react-aria/utils" "^3.14.2"
- "@react-stately/radio" "^3.6.2"
- "@react-types/radio" "^3.3.1"
- "@react-types/shared" "^3.16.0"
- "@swc/helpers" "^0.4.14"
-
-"@react-aria/searchfield@^3.4.4":
- version "3.4.4"
- resolved "https://registry.yarnpkg.com/@react-aria/searchfield/-/searchfield-3.4.4.tgz#f77f057fcd2582534bec60b5d65db5cf84490f27"
- integrity sha512-Z3nZI2FXrWLPNUeJ3QV2ruTKBR9eHhPoHi+Iiuq4n+e02ib5s0Jlbam29FFiOxmf6vUMhScNcEYP9p2BNANmQA==
- dependencies:
- "@react-aria/i18n" "^3.6.3"
- "@react-aria/interactions" "^3.13.1"
- "@react-aria/textfield" "^3.8.1"
- "@react-aria/utils" "^3.14.2"
- "@react-stately/searchfield" "^3.3.4"
- "@react-types/button" "^3.7.0"
- "@react-types/searchfield" "^3.3.6"
- "@react-types/shared" "^3.16.0"
- "@swc/helpers" "^0.4.14"
-
-"@react-aria/select@^3.8.4":
- version "3.8.4"
- resolved "https://registry.yarnpkg.com/@react-aria/select/-/select-3.8.4.tgz#cbb02f0cfca816e1f6b472212f0fb6aad9899fdb"
- integrity sha512-d2JOe11lUoGLvsE32bZRMq32SzXuyLNczyTOLrWM0e9fsOr49A8p6L6bFm3symU/KpwjjnO+pf5IkvgEq+GoJg==
- dependencies:
- "@react-aria/i18n" "^3.6.3"
- "@react-aria/interactions" "^3.13.1"
- "@react-aria/label" "^3.4.4"
- "@react-aria/listbox" "^3.7.2"
- "@react-aria/menu" "^3.7.1"
- "@react-aria/selection" "^3.12.1"
- "@react-aria/utils" "^3.14.2"
- "@react-aria/visually-hidden" "^3.6.1"
- "@react-stately/select" "^3.3.4"
- "@react-types/button" "^3.7.0"
- "@react-types/select" "^3.6.5"
- "@react-types/shared" "^3.16.0"
- "@swc/helpers" "^0.4.14"
-
-"@react-aria/selection@^3.12.1":
- version "3.12.1"
- resolved "https://registry.yarnpkg.com/@react-aria/selection/-/selection-3.12.1.tgz#a21ea85952c55b5a7ce8c846478226fe3d03f1f8"
- integrity sha512-UX1vSY+iUdHe0itFZIOizX1BCI8SAeFnEh5VIQ1bYRt93+kAxeC914fsxFPPgrodJyqWRCX1dblPyRUIWAzQiw==
- dependencies:
- "@react-aria/focus" "^3.10.1"
- "@react-aria/i18n" "^3.6.3"
- "@react-aria/interactions" "^3.13.1"
- "@react-aria/utils" "^3.14.2"
- "@react-stately/collections" "^3.5.1"
- "@react-stately/selection" "^3.11.2"
- "@react-types/shared" "^3.16.0"
- "@swc/helpers" "^0.4.14"
-
-"@react-aria/separator@^3.2.6":
- version "3.2.6"
- resolved "https://registry.yarnpkg.com/@react-aria/separator/-/separator-3.2.6.tgz#516fb27aa02862fc8e555042d9a8edde30214f40"
- integrity sha512-QhYqoLfu+4T3ASCs5Q8ZWfBbRKBUmqquVdREWvHyvVyOBk9kRN9nxsoIxlkss1RJlJJx59AYF9T9CwgL80/bvw==
- dependencies:
- "@react-aria/utils" "^3.14.2"
- "@react-types/shared" "^3.16.0"
- "@swc/helpers" "^0.4.14"
-
-"@react-aria/slider@^3.2.4":
- version "3.2.4"
- resolved "https://registry.yarnpkg.com/@react-aria/slider/-/slider-3.2.4.tgz#b272c13b5651f7e76a5b9d4ef300226ae315a64d"
- integrity sha512-+BDPFaCgm0gtGewO33ZDNZz1b3Fc1p5Y/HSuwCcru+jHetODJXy23IIVpWsDri1vG3fHECRnWcDZAjLZgkVnAw==
- dependencies:
- "@react-aria/focus" "^3.10.1"
- "@react-aria/i18n" "^3.6.3"
- "@react-aria/interactions" "^3.13.1"
- "@react-aria/label" "^3.4.4"
- "@react-aria/utils" "^3.14.2"
- "@react-stately/radio" "^3.6.2"
- "@react-stately/slider" "^3.2.4"
- "@react-types/radio" "^3.3.1"
- "@react-types/shared" "^3.16.0"
- "@react-types/slider" "^3.3.1"
- "@swc/helpers" "^0.4.14"
-
-"@react-aria/spinbutton@^3.2.1":
- version "3.2.1"
- resolved "https://registry.yarnpkg.com/@react-aria/spinbutton/-/spinbutton-3.2.1.tgz#8e9fff341deef3e14109c69f2b52fffa8a878a5b"
- integrity sha512-y9QZ0VzWL7qzbWSPOCsAdvZhVlQrnHLRGc8bkRa2jmWrnCqS0iua/TRuLGgazIf2Rb7GmdbKBJJuPSScytVDUw==
- dependencies:
- "@react-aria/i18n" "^3.6.3"
- "@react-aria/live-announcer" "^3.1.2"
- "@react-aria/utils" "^3.14.2"
- "@react-types/button" "^3.7.0"
- "@react-types/shared" "^3.16.0"
- "@swc/helpers" "^0.4.14"
-
-"@react-aria/ssr@^3.4.1":
- version "3.4.1"
- resolved "https://registry.yarnpkg.com/@react-aria/ssr/-/ssr-3.4.1.tgz#79e8bb621487e8f52890c917d3c734f448ba95e7"
- integrity sha512-NmhoilMDyIfQiOSdQgxpVH2tC2u85Y0mVijtBNbI9kcDYLEiW/r6vKYVKtkyU+C4qobXhGMPfZ70PTc0lysSVA==
- dependencies:
- "@swc/helpers" "^0.4.14"
-
-"@react-aria/switch@^3.3.1":
- version "3.3.1"
- resolved "https://registry.yarnpkg.com/@react-aria/switch/-/switch-3.3.1.tgz#c0f92f417a78972a3a9d10592eb474698b827d5a"
- integrity sha512-o9MvXiSK9c7rUZjA6oQ0PNlVCnHEctue6v6W8Vn4HNbQMfhJiWqiSSff4RFcgRgs8WsPsEqbT+vHi2kXykQzdA==
- dependencies:
- "@react-aria/toggle" "^3.4.2"
- "@react-stately/toggle" "^3.4.4"
- "@react-types/switch" "^3.2.5"
- "@swc/helpers" "^0.4.14"
-
-"@react-aria/table@^3.7.0":
+"@react-aria/i18n@^3.7.0":
version "3.7.0"
- resolved "https://registry.yarnpkg.com/@react-aria/table/-/table-3.7.0.tgz#234c905b6b2e2212bac6cc8ef93fe750bf606425"
- integrity sha512-1YqOeb8r8pxIYyfa5qNdCoM3fNQELM4d+9DanoNJhgnehoq9QDI9A1pGC2pvK2PN2y9IuTJM+U/ITjSpPBoGjQ==
+ resolved "https://registry.yarnpkg.com/@react-aria/i18n/-/i18n-3.7.0.tgz#c1dfcd7a76a5161cbccbd6980ecf201c9b4d1826"
+ integrity sha512-PZCWmhO9mJvelwiYlsXLY6W4L2o+oza3xnDx0cZDVqp/Hf+OwMAPHWtZsFRTKdjk4TaOPB/ISc9HknWn6UpY4w==
dependencies:
- "@react-aria/focus" "^3.10.1"
- "@react-aria/grid" "^3.5.2"
- "@react-aria/i18n" "^3.6.3"
- "@react-aria/interactions" "^3.13.1"
- "@react-aria/live-announcer" "^3.1.2"
- "@react-aria/selection" "^3.12.1"
- "@react-aria/utils" "^3.14.2"
- "@react-stately/table" "^3.7.0"
- "@react-stately/virtualizer" "^3.4.1"
- "@react-types/checkbox" "^3.4.1"
- "@react-types/grid" "^3.1.5"
- "@react-types/shared" "^3.16.0"
- "@react-types/table" "^3.4.0"
+ "@internationalized/date" "^3.1.0"
+ "@internationalized/message" "^3.1.0"
+ "@internationalized/number" "^3.2.0"
+ "@internationalized/string" "^3.1.0"
+ "@react-aria/ssr" "^3.5.0"
+ "@react-aria/utils" "^3.15.0"
+ "@react-types/shared" "^3.17.0"
"@swc/helpers" "^0.4.14"
-"@react-aria/tabs@^3.3.4":
- version "3.3.4"
- resolved "https://registry.yarnpkg.com/@react-aria/tabs/-/tabs-3.3.4.tgz#0cbe65d4c99c9c9e5d8ebd5e1442da68964b9e14"
- integrity sha512-SqlgfPvpRHlWelFk/lF9Ziu/8881NVErhKcpyyi+A9jASv5tvILWiwK8na82oI22UXXzyp0Y1EojLB25HnCB+w==
+"@react-aria/interactions@^3.14.0":
+ version "3.14.0"
+ resolved "https://registry.yarnpkg.com/@react-aria/interactions/-/interactions-3.14.0.tgz#d6480985048c009d58b8572428010dc61093cfcc"
+ integrity sha512-e1Tkr0UTuYFpV21PJrXy7jEY542Vl+C2Fo70oukZ1fN+wtfQkzodsTIzyepXb7kVMGmC34wDisMJUrksVkfY2w==
dependencies:
- "@react-aria/focus" "^3.10.1"
- "@react-aria/i18n" "^3.6.3"
- "@react-aria/interactions" "^3.13.1"
- "@react-aria/selection" "^3.12.1"
- "@react-aria/utils" "^3.14.2"
- "@react-stately/list" "^3.6.1"
- "@react-stately/tabs" "^3.2.4"
- "@react-types/shared" "^3.16.0"
- "@react-types/tabs" "^3.1.5"
+ "@react-aria/utils" "^3.15.0"
+ "@react-types/shared" "^3.17.0"
"@swc/helpers" "^0.4.14"
-"@react-aria/textfield@^3.8.1":
- version "3.8.1"
- resolved "https://registry.yarnpkg.com/@react-aria/textfield/-/textfield-3.8.1.tgz#b6df2decc587824a3757ec33bd9b432fed1bacc5"
- integrity sha512-jgun/B9ecuRCfBSJLX2xDuNwfuj1lL0oibMWoSv6Y++W+CSS8a7LjR1f9Kll5TDVkQiRRUm9qHwI0og9xTJrNw==
+"@react-aria/label@^3.5.0":
+ version "3.5.0"
+ resolved "https://registry.yarnpkg.com/@react-aria/label/-/label-3.5.0.tgz#817710d719bc95105e369f4993a3a60dbad73ba9"
+ integrity sha512-sNiPYiFg06s1zGuifEUeUqRiYje0lfHem+GIUh0Y5ZxfpqIyxEmyV9Aw+C7TTjjo8BAG4NZ4bR7iF9ujf9QvKQ==
dependencies:
- "@react-aria/focus" "^3.10.1"
- "@react-aria/label" "^3.4.4"
- "@react-aria/utils" "^3.14.2"
- "@react-types/shared" "^3.16.0"
- "@react-types/textfield" "^3.6.2"
+ "@react-aria/utils" "^3.15.0"
+ "@react-types/label" "^3.7.2"
+ "@react-types/shared" "^3.17.0"
"@swc/helpers" "^0.4.14"
-"@react-aria/toggle@^3.4.2":
- version "3.4.2"
- resolved "https://registry.yarnpkg.com/@react-aria/toggle/-/toggle-3.4.2.tgz#1c57539a26722219979c80dcebfbd0701c518789"
- integrity sha512-xokCGf0fn96mOMqQku5QW672iQoMsN9RMpFbKvvgg2seceh8ifblyAXElWf/6YmluOZSgUSZljDkFrbMMYlzVA==
- dependencies:
- "@react-aria/focus" "^3.10.1"
- "@react-aria/interactions" "^3.13.1"
- "@react-aria/utils" "^3.14.2"
- "@react-stately/toggle" "^3.4.4"
- "@react-types/checkbox" "^3.4.1"
- "@react-types/shared" "^3.16.0"
- "@react-types/switch" "^3.2.5"
- "@swc/helpers" "^0.4.14"
-
-"@react-aria/tooltip@^3.3.4":
- version "3.3.4"
- resolved "https://registry.yarnpkg.com/@react-aria/tooltip/-/tooltip-3.3.4.tgz#e508a6f4092ee632ca69fd202268c8f4317f04d2"
- integrity sha512-KPDkDu7fquuUOOnNh9S7KfhPMwB1w9K+yLIFrYaj4iYSOLk/HH5TDkyiUQ7j5+B963D1fWlQjYFEGQ9o2KwO/Q==
- dependencies:
- "@react-aria/focus" "^3.10.1"
- "@react-aria/interactions" "^3.13.1"
- "@react-aria/utils" "^3.14.2"
- "@react-stately/tooltip" "^3.2.4"
- "@react-types/shared" "^3.16.0"
- "@react-types/tooltip" "^3.2.5"
- "@swc/helpers" "^0.4.14"
-
-"@react-aria/utils@^3.14.2":
- version "3.14.2"
- resolved "https://registry.yarnpkg.com/@react-aria/utils/-/utils-3.14.2.tgz#3a8d0d14abab4bb1095e101ee44dc5e3e43e6217"
- integrity sha512-3nr5gsAf/J/W+6Tu4NF3Q7m+1mXjfpXESh7TPa6UR6v3tVDTsJVMrITg2BkHN1jM8xELcl2ZxyUffOWqOXzWuA==
- dependencies:
- "@react-aria/ssr" "^3.4.1"
- "@react-stately/utils" "^3.5.2"
- "@react-types/shared" "^3.16.0"
- "@swc/helpers" "^0.4.14"
- clsx "^1.1.1"
-
-"@react-aria/visually-hidden@^3.6.1":
- version "3.6.1"
- resolved "https://registry.yarnpkg.com/@react-aria/visually-hidden/-/visually-hidden-3.6.1.tgz#b0a94b1531b9a8942d0d9a5cc6ed88109b8f5487"
- integrity sha512-7rUbiaIiR1nok9HAHPn/WcyQlvuldUqxnvh81V4dlI3NtXOgMw7/QaNc5Xo5FFWlsSVpbyK3UVJgzIui0Ns0Xg==
- dependencies:
- "@react-aria/interactions" "^3.13.1"
- "@react-aria/utils" "^3.14.2"
- "@react-types/shared" "^3.16.0"
- "@swc/helpers" "^0.4.14"
- clsx "^1.1.1"
-
-"@react-spring/animated@~9.6.1":
- version "9.6.1"
- resolved "https://registry.yarnpkg.com/@react-spring/animated/-/animated-9.6.1.tgz#ccc626d847cbe346f5f8815d0928183c647eb425"
- integrity sha512-ls/rJBrAqiAYozjLo5EPPLLOb1LM0lNVQcXODTC1SMtS6DbuBCPaKco5svFUQFMP2dso3O+qcC4k9FsKc0KxMQ==
- dependencies:
- "@react-spring/shared" "~9.6.1"
- "@react-spring/types" "~9.6.1"
-
-"@react-spring/core@~9.6.1":
- version "9.6.1"
- resolved "https://registry.yarnpkg.com/@react-spring/core/-/core-9.6.1.tgz#ebe07c20682b360b06af116ea24e2b609e778c10"
- integrity sha512-3HAAinAyCPessyQNNXe5W0OHzRfa8Yo5P748paPcmMowZ/4sMfaZ2ZB6e5x5khQI8NusOHj8nquoutd6FRY5WQ==
- dependencies:
- "@react-spring/animated" "~9.6.1"
- "@react-spring/rafz" "~9.6.1"
- "@react-spring/shared" "~9.6.1"
- "@react-spring/types" "~9.6.1"
-
-"@react-spring/konva@~9.6.1":
- version "9.6.1"
- resolved "https://registry.yarnpkg.com/@react-spring/konva/-/konva-9.6.1.tgz#66e63da0e9681e42395e995402a7e73ba6892461"
- integrity sha512-MevnU+tnG1LPsmMRpfJfevfLtI0ObIvrwYc+Xg+kmYJe00vwMRSdulQOztKANKalFXBewwk72XrQCeRLXFaUIg==
- dependencies:
- "@react-spring/animated" "~9.6.1"
- "@react-spring/core" "~9.6.1"
- "@react-spring/shared" "~9.6.1"
- "@react-spring/types" "~9.6.1"
-
-"@react-spring/native@~9.6.1":
- version "9.6.1"
- resolved "https://registry.yarnpkg.com/@react-spring/native/-/native-9.6.1.tgz#b66e237f2faaa4f88569d5a03b6fb0136bcdf2b9"
- integrity sha512-ZIfSytxFGLw4gYOb8gsmwG0+JZYxuM/Y1XPCXCkhuoMn+RmOYrr0kQ4gLczbmf+TRxth7OT1c8vBYz0+SCGcIQ==
- dependencies:
- "@react-spring/animated" "~9.6.1"
- "@react-spring/core" "~9.6.1"
- "@react-spring/shared" "~9.6.1"
- "@react-spring/types" "~9.6.1"
-
-"@react-spring/rafz@~9.6.1":
- version "9.6.1"
- resolved "https://registry.yarnpkg.com/@react-spring/rafz/-/rafz-9.6.1.tgz#d71aafb92b78b24e4ff84639f52745afc285c38d"
- integrity sha512-v6qbgNRpztJFFfSE3e2W1Uz+g8KnIBs6SmzCzcVVF61GdGfGOuBrbjIcp+nUz301awVmREKi4eMQb2Ab2gGgyQ==
-
-"@react-spring/shared@~9.6.1":
- version "9.6.1"
- resolved "https://registry.yarnpkg.com/@react-spring/shared/-/shared-9.6.1.tgz#4e2e4296910656c02bd9fd54c559702bc836ac4e"
- integrity sha512-PBFBXabxFEuF8enNLkVqMC9h5uLRBo6GQhRMQT/nRTnemVENimgRd+0ZT4yFnAQ0AxWNiJfX3qux+bW2LbG6Bw==
- dependencies:
- "@react-spring/rafz" "~9.6.1"
- "@react-spring/types" "~9.6.1"
-
-"@react-spring/three@~9.6.1":
- version "9.6.1"
- resolved "https://registry.yarnpkg.com/@react-spring/three/-/three-9.6.1.tgz#095fcd1dc6509127c33c14486d88289b89baeb9d"
- integrity sha512-Tyw2YhZPKJAX3t2FcqvpLRb71CyTe1GvT3V+i+xJzfALgpk10uPGdGaQQ5Xrzmok1340DAeg2pR/MCfaW7b8AA==
- dependencies:
- "@react-spring/animated" "~9.6.1"
- "@react-spring/core" "~9.6.1"
- "@react-spring/shared" "~9.6.1"
- "@react-spring/types" "~9.6.1"
-
-"@react-spring/types@~9.6.1":
- version "9.6.1"
- resolved "https://registry.yarnpkg.com/@react-spring/types/-/types-9.6.1.tgz#913d3a68c5cbc1124fdb18eff919432f7b6abdde"
- integrity sha512-POu8Mk0hIU3lRXB3bGIGe4VHIwwDsQyoD1F394OK7STTiX9w4dG3cTLljjYswkQN+hDSHRrj4O36kuVa7KPU8Q==
-
-"@react-spring/web@~9.6.1":
- version "9.6.1"
- resolved "https://registry.yarnpkg.com/@react-spring/web/-/web-9.6.1.tgz#3e4c03b724d2b545dc2fa2649eb6109318ab9178"
- integrity sha512-X2zR6q2Z+FjsWfGAmAXlQaoUHbPmfuCaXpuM6TcwXPpLE1ZD4A1eys/wpXboFQmDkjnrlTmKvpVna1MjWpZ5Hw==
- dependencies:
- "@react-spring/animated" "~9.6.1"
- "@react-spring/core" "~9.6.1"
- "@react-spring/shared" "~9.6.1"
- "@react-spring/types" "~9.6.1"
-
-"@react-spring/zdog@~9.6.1":
- version "9.6.1"
- resolved "https://registry.yarnpkg.com/@react-spring/zdog/-/zdog-9.6.1.tgz#5292c374e23e3846db3eb9d7557ed5a7bb40dada"
- integrity sha512-0jSGm2OFW/+/+4dkRp46KzEkcLVfzV2k6DO1om0dLDtQ4q6FpX4dmDTlRc7Apzin6VtfQONMFIGITtbqoS28MQ==
- dependencies:
- "@react-spring/animated" "~9.6.1"
- "@react-spring/core" "~9.6.1"
- "@react-spring/shared" "~9.6.1"
- "@react-spring/types" "~9.6.1"
-
-"@react-stately/calendar@^3.0.5":
- version "3.0.5"
- resolved "https://registry.yarnpkg.com/@react-stately/calendar/-/calendar-3.0.5.tgz#78decc870ddf33ce1f7b7c8da57d2639e9a46c30"
- integrity sha512-vu5hKsiA8edqNtsqBTGi8QR38qZ+uHDjuq3vp2m0f6TZSnp0kg8fkPNHEOuBTQ8ZXFFbGUZKhL/1B+ZWwLHwMQ==
- dependencies:
- "@internationalized/date" "^3.0.2"
- "@react-stately/utils" "^3.5.2"
- "@react-types/calendar" "^3.0.5"
- "@react-types/datepicker" "^3.1.4"
- "@react-types/shared" "^3.16.0"
- "@swc/helpers" "^0.4.14"
-
-"@react-stately/checkbox@^3.3.2":
- version "3.3.2"
- resolved "https://registry.yarnpkg.com/@react-stately/checkbox/-/checkbox-3.3.2.tgz#fd81866a7624c79cab2ec2c32234f164205a85e8"
- integrity sha512-eU3zvWgQrcqS8UK8ZVkb3fMP816PeuN9N0/dOJKuOXXhkoLPuxtuja1oEqKU3sFMa5+bx3czZhhNIRpr60NAdw==
- dependencies:
- "@react-stately/toggle" "^3.4.4"
- "@react-stately/utils" "^3.5.2"
- "@react-types/checkbox" "^3.4.1"
- "@react-types/shared" "^3.16.0"
- "@swc/helpers" "^0.4.14"
-
-"@react-stately/collections@^3.5.1":
- version "3.5.1"
- resolved "https://registry.yarnpkg.com/@react-stately/collections/-/collections-3.5.1.tgz#502a56658e4859aa7d31bd4b9189879b5b5a0255"
- integrity sha512-egzVrZC5eFc5RJBpqUkzxd2aJOHZ2T1o7horEi8tAWZkg4YI+AmKrqela4ijVrrB9l1GO9z06qPT1UoPkFrC1w==
- dependencies:
- "@react-types/shared" "^3.16.0"
- "@swc/helpers" "^0.4.14"
-
-"@react-stately/combobox@^3.3.1":
- version "3.3.1"
- resolved "https://registry.yarnpkg.com/@react-stately/combobox/-/combobox-3.3.1.tgz#5be13467dd64ddd09199b5e00e9f7d4a1aec5688"
- integrity sha512-DgYn0MyfbDySf54o7ofXRd29TWznqtRRRbMG8TWgi/RaB0piDckT/TYWWSYOH3iMgnOEhReJhUUdMiQG4QLpIg==
- dependencies:
- "@react-stately/list" "^3.6.1"
- "@react-stately/menu" "^3.4.4"
- "@react-stately/select" "^3.3.4"
- "@react-stately/utils" "^3.5.2"
- "@react-types/combobox" "^3.5.5"
- "@react-types/shared" "^3.16.0"
- "@swc/helpers" "^0.4.14"
-
-"@react-stately/datepicker@^3.2.1":
- version "3.2.1"
- resolved "https://registry.yarnpkg.com/@react-stately/datepicker/-/datepicker-3.2.1.tgz#4c545981f73771bff76885e50014b4274fa4b554"
- integrity sha512-nd6thX2Z+rOLDHduB3EgMKA0n5U83lrwn3IUfjRGrcE21zFaFmhTPsHyvol5jHy3eSyjWSN9kGpKFzOxES+uoA==
- dependencies:
- "@internationalized/date" "^3.0.2"
- "@internationalized/string" "^3.0.1"
- "@react-stately/overlays" "^3.4.4"
- "@react-stately/utils" "^3.5.2"
- "@react-types/datepicker" "^3.1.4"
- "@react-types/shared" "^3.16.0"
- "@swc/helpers" "^0.4.14"
-
-"@react-stately/dnd@^3.0.1":
- version "3.0.1"
- resolved "https://registry.yarnpkg.com/@react-stately/dnd/-/dnd-3.0.1.tgz#b8e8190c147dcaeac1a90eabce5bd20891f2c620"
- integrity sha512-pwtyY/TR6Rdk33lFdF6dztQTV9gPujFmTqJG31NSSs6ei1FfUW9ZMq+311Zb8OhZ0TFiwZqAutVmmaaUrtl5+A==
- dependencies:
- "@react-stately/selection" "^3.11.2"
- "@react-types/shared" "^3.16.0"
- "@swc/helpers" "^0.4.14"
-
-"@react-stately/grid@^3.4.2":
- version "3.4.2"
- resolved "https://registry.yarnpkg.com/@react-stately/grid/-/grid-3.4.2.tgz#d7d1a4ed4b5bb431b5e5429f8f557cf7d88a7ae8"
- integrity sha512-NeIUykQeA7Hen+dV4771ARW5SRrHYNn5VTOsQwn3KBUd2Z2gZ01OwUl3gETl5u0e3/tzMUdJ1LUoSPhDMwcmKw==
- dependencies:
- "@react-stately/selection" "^3.11.2"
- "@react-types/grid" "^3.1.5"
- "@react-types/shared" "^3.16.0"
- "@swc/helpers" "^0.4.14"
-
-"@react-stately/layout@^3.10.0":
- version "3.10.0"
- resolved "https://registry.yarnpkg.com/@react-stately/layout/-/layout-3.10.0.tgz#86bcb9117a05df56f02d7b55d1d24c5593285c18"
- integrity sha512-ThFgivQSD5ksLMX7tbu0HqIxbxac/E8a/0vA21wB9QF9IQnUKO796QAQqwfA5rwPvTT41LL2Xn00GkrwQ9g/zg==
- dependencies:
- "@react-stately/table" "^3.7.0"
- "@react-stately/virtualizer" "^3.4.1"
- "@react-types/grid" "^3.1.5"
- "@react-types/shared" "^3.16.0"
- "@react-types/table" "^3.4.0"
- "@swc/helpers" "^0.4.14"
-
-"@react-stately/list@^3.6.1":
- version "3.6.1"
- resolved "https://registry.yarnpkg.com/@react-stately/list/-/list-3.6.1.tgz#75d07a4e04111b804fb13c975df5a0c1265f3aa1"
- integrity sha512-+/fVkK3UO+N2NoUGpe57k9gcnfIsyEgWP8SD6CXZUkJho7BTp6mwrH0Wm8tcOclT3uBk+fZaQrk8mR3uWsPZGw==
- dependencies:
- "@react-stately/collections" "^3.5.1"
- "@react-stately/selection" "^3.11.2"
- "@react-stately/utils" "^3.5.2"
- "@react-types/shared" "^3.16.0"
- "@swc/helpers" "^0.4.14"
-
-"@react-stately/menu@^3.4.4":
- version "3.4.4"
- resolved "https://registry.yarnpkg.com/@react-stately/menu/-/menu-3.4.4.tgz#222ffd283691f1c4137a85ff0484b98a4385b099"
- integrity sha512-WKak1NSV9yDY0tDB4mzsbj0FboTtR06gekio0VmKb1+FmnrC07mef8eGKUn974F0WhTNUy5A1iI5eM0W2YNynA==
- dependencies:
- "@react-stately/overlays" "^3.4.4"
- "@react-stately/utils" "^3.5.2"
- "@react-types/menu" "^3.7.3"
- "@react-types/shared" "^3.16.0"
- "@swc/helpers" "^0.4.14"
-
-"@react-stately/numberfield@^3.3.1":
- version "3.3.1"
- resolved "https://registry.yarnpkg.com/@react-stately/numberfield/-/numberfield-3.3.1.tgz#ef411062ffdb3646eae2a320e07443b2bf78a76f"
- integrity sha512-GOu6wE2L2eal4AOL+rJQ4wQnFRgRkwiS9xdAFPu9B4qfP0DVfEIUC3XV4jws9nBhANxEf5LyilUv400nG881wg==
- dependencies:
- "@internationalized/number" "^3.1.2"
- "@react-stately/utils" "^3.5.2"
- "@react-types/numberfield" "^3.3.5"
- "@react-types/shared" "^3.16.0"
- "@swc/helpers" "^0.4.14"
-
-"@react-stately/overlays@^3.4.4":
- version "3.4.4"
- resolved "https://registry.yarnpkg.com/@react-stately/overlays/-/overlays-3.4.4.tgz#a228a230f46f0d593ffb7bc8f836439bbc08e9ed"
- integrity sha512-IIlx+VXtXS4snDXrocUOls8QZ5XBQ4SNonaz1ox8/5W7Nsvq4VtdKsIaXsUP4agOudswaimlpj3pTDO/KuF5tQ==
- dependencies:
- "@react-stately/utils" "^3.5.2"
- "@react-types/overlays" "^3.6.5"
- "@swc/helpers" "^0.4.14"
-
-"@react-stately/radio@^3.6.2":
- version "3.6.2"
- resolved "https://registry.yarnpkg.com/@react-stately/radio/-/radio-3.6.2.tgz#6a13e3f97d130fccc1b404673cbe1414ac018621"
- integrity sha512-qjbebR0YSkdEocLsPSzNnCsUYllWY938/5Z8mETxk4+74PJLxC3z0qjqVRq+aDO8hOgIfqSgrRRp3cJz9vIsBg==
- dependencies:
- "@react-stately/utils" "^3.5.2"
- "@react-types/radio" "^3.3.1"
- "@react-types/shared" "^3.16.0"
- "@swc/helpers" "^0.4.14"
-
-"@react-stately/searchfield@^3.3.4":
- version "3.3.4"
- resolved "https://registry.yarnpkg.com/@react-stately/searchfield/-/searchfield-3.3.4.tgz#a2d885fd68a3e8936d60b9d56e15f785022b448e"
- integrity sha512-H/1evv7lsJl6PlD7/Sv7VgbCe0Yd2E2eKFihD6/tXPWO6L/ngYp5siqqhdwazjWTK2Hgw4TL0eviHGOGXKItzQ==
- dependencies:
- "@react-stately/utils" "^3.5.2"
- "@react-types/searchfield" "^3.3.6"
- "@react-types/shared" "^3.16.0"
- "@swc/helpers" "^0.4.14"
-
-"@react-stately/select@^3.3.4":
- version "3.3.4"
- resolved "https://registry.yarnpkg.com/@react-stately/select/-/select-3.3.4.tgz#61c3e739175e86babf0e585f8c68e30f3bf6363c"
- integrity sha512-gD4JnF9/OIrQNdA4VqPIbifqpBC84BXHR5N7KmG7Ef06K9WGGVNB4FS538wno/znKg7lR6A45CPlaV53qfvWHg==
- dependencies:
- "@react-stately/collections" "^3.5.1"
- "@react-stately/list" "^3.6.1"
- "@react-stately/menu" "^3.4.4"
- "@react-stately/selection" "^3.11.2"
- "@react-stately/utils" "^3.5.2"
- "@react-types/select" "^3.6.5"
- "@react-types/shared" "^3.16.0"
- "@swc/helpers" "^0.4.14"
-
-"@react-stately/selection@^3.11.2":
- version "3.11.2"
- resolved "https://registry.yarnpkg.com/@react-stately/selection/-/selection-3.11.2.tgz#15c35dfb386e5218b8106070137a8b3ecded5a8b"
- integrity sha512-g21Y36xhYkXO3yzz0BYSBqnD38olvEwsJUqBXGZfx//bshMC2FNmI5sRYMAi36stxWbwzBvB01OytxfLLxCXCA==
- dependencies:
- "@react-stately/collections" "^3.5.1"
- "@react-stately/utils" "^3.5.2"
- "@react-types/shared" "^3.16.0"
- "@swc/helpers" "^0.4.14"
-
-"@react-stately/slider@^3.2.4":
- version "3.2.4"
- resolved "https://registry.yarnpkg.com/@react-stately/slider/-/slider-3.2.4.tgz#4e9e22cd8c2c449497e8476f2bc8d1399a5b0f80"
- integrity sha512-J97lTLqQKsrVSovYr4dTz7IJO/+j9OStT78N6bumDklnIKT7bsH3g857zITUFjs8yCcq0Jt3sfOvEU0ts6vyww==
- dependencies:
- "@react-aria/i18n" "^3.6.3"
- "@react-aria/utils" "^3.14.2"
- "@react-stately/utils" "^3.5.2"
- "@react-types/shared" "^3.16.0"
- "@react-types/slider" "^3.3.1"
- "@swc/helpers" "^0.4.14"
-
-"@react-stately/table@^3.7.0":
- version "3.7.0"
- resolved "https://registry.yarnpkg.com/@react-stately/table/-/table-3.7.0.tgz#fbb50081805c391d43de8ca4153bcd89edb82368"
- integrity sha512-oPvMEabRUD4LSJ/NZsal3TT2YjoRmpEK8t2pqG20+Vapxy5tC6QKEZQvrDxJwF4Z8fqQnX/GvnqmfypvqWDUSA==
- dependencies:
- "@react-stately/collections" "^3.5.1"
- "@react-stately/grid" "^3.4.2"
- "@react-stately/selection" "^3.11.2"
- "@react-types/grid" "^3.1.5"
- "@react-types/shared" "^3.16.0"
- "@react-types/table" "^3.4.0"
- "@swc/helpers" "^0.4.14"
-
-"@react-stately/tabs@^3.2.4":
- version "3.2.4"
- resolved "https://registry.yarnpkg.com/@react-stately/tabs/-/tabs-3.2.4.tgz#e596623de62731efc769ee0d58e54f9f1400551c"
- integrity sha512-qSnkoxzbC21KXZYGtg6TEDaex34WSNmPN4sJzXc9Xe39L6+wXNCA2tqZxWCfpIcWQklFm+BmnnNNCO8/PDDrMA==
- dependencies:
- "@react-stately/list" "^3.6.1"
- "@react-stately/utils" "^3.5.2"
- "@react-types/tabs" "^3.1.5"
- "@swc/helpers" "^0.4.14"
-
-"@react-stately/toggle@^3.4.4":
- version "3.4.4"
- resolved "https://registry.yarnpkg.com/@react-stately/toggle/-/toggle-3.4.4.tgz#b7825bf900725dcee0444fe6132b06948be36b44"
- integrity sha512-OwVJpd2M7P7fekTWpl3TUdD3Brq+Z/xElOCJYP5QuVytXCa5seKsk40YPld8JQnA5dRKojpbUxMDOJpb6hOOfw==
- dependencies:
- "@react-stately/utils" "^3.5.2"
- "@react-types/checkbox" "^3.4.1"
- "@react-types/shared" "^3.16.0"
- "@swc/helpers" "^0.4.14"
-
-"@react-stately/tooltip@^3.2.4":
- version "3.2.4"
- resolved "https://registry.yarnpkg.com/@react-stately/tooltip/-/tooltip-3.2.4.tgz#387bb53539c39b0f3a0807537e9d404e03dc5d3f"
- integrity sha512-t7ksDRs9jKcOS25BVLM5cNCyzSCnzrin8OZ3AEmgeNxfiS58HhHbNxYk725hyGrbdpugQ03cRcJG70EZ6VgwDQ==
- dependencies:
- "@react-stately/overlays" "^3.4.4"
- "@react-stately/utils" "^3.5.2"
- "@react-types/tooltip" "^3.2.5"
- "@swc/helpers" "^0.4.14"
-
-"@react-stately/tree@^3.4.1":
- version "3.4.1"
- resolved "https://registry.yarnpkg.com/@react-stately/tree/-/tree-3.4.1.tgz#bb267784000b22c7c1aa6415103ad1b9f3566677"
- integrity sha512-kIXeJOHgGGaUFnAD2wyRIiOwOw/+PN1OXo46n8+dPTFIYwR4+IWFNG8OMjVlIiSLPYWMCzzxZBE9a5grmbmNWQ==
- dependencies:
- "@react-stately/collections" "^3.5.1"
- "@react-stately/selection" "^3.11.2"
- "@react-stately/utils" "^3.5.2"
- "@react-types/shared" "^3.16.0"
- "@swc/helpers" "^0.4.14"
-
-"@react-stately/utils@^3.5.2":
- version "3.5.2"
- resolved "https://registry.yarnpkg.com/@react-stately/utils/-/utils-3.5.2.tgz#9b5f3bb9ad500bf9c5b636a42988dba60a221669"
- integrity sha512-639gSKqamPHIEPaApb9ahVJS0HgAqNdVF3tQRoh+Ky6759Mbk6i3HqG4zk4IGQ1tVlYSYZvCckwehF7b2zndMg==
- dependencies:
- "@swc/helpers" "^0.4.14"
-
-"@react-stately/virtualizer@^3.4.1":
- version "3.4.1"
- resolved "https://registry.yarnpkg.com/@react-stately/virtualizer/-/virtualizer-3.4.1.tgz#00c7b36b989244cf985b9ad5fb13dc1ecbb81a0f"
- integrity sha512-2S7GARkZl41X7fN0Xa94TkN8ELAUbA89zn1xH59d02NOvAKLAFXHkCe69AivvVvbhXo8/nONzO8NXqqgBS/XQw==
- dependencies:
- "@react-aria/utils" "^3.14.2"
- "@react-types/shared" "^3.16.0"
- "@swc/helpers" "^0.4.14"
-
-"@react-types/breadcrumbs@^3.4.6":
- version "3.4.6"
- resolved "https://registry.yarnpkg.com/@react-types/breadcrumbs/-/breadcrumbs-3.4.6.tgz#cbc1132b5bfa87dde5467b037c563ed77a211980"
- integrity sha512-hvGUI4mKHvOl3QyKFHk1qT/UkG+C4iJsRTlk6pbQgwk4lb7rplEm1CEa7fxzRdI8Gh4Id+C9+WyKCxZf9GNWUw==
- dependencies:
- "@react-types/link" "^3.3.6"
- "@react-types/shared" "^3.16.0"
-
-"@react-types/button@^3.7.0":
- version "3.7.0"
- resolved "https://registry.yarnpkg.com/@react-types/button/-/button-3.7.0.tgz#774c043d8090a505e60fdf26f026d5f0cc968f0f"
- integrity sha512-81BQO3QxSgF9PTXsVozNdNCKxBOB1lpbCWocV99dN1ws9s8uaYw8pmJJZ0LJKLiOsIECQ/3QrhQjmWTDW/qTug==
- dependencies:
- "@react-types/shared" "^3.16.0"
-
-"@react-types/calendar@^3.0.5":
- version "3.0.5"
- resolved "https://registry.yarnpkg.com/@react-types/calendar/-/calendar-3.0.5.tgz#a91fca7d5a2bbbd554748471f9920600cb364d18"
- integrity sha512-Kx00132hFEVvqay/Ub7q2oZEA1AzksirAuCsjakamn4LAXvitlo3PZxqBdEsyRc3nP5NR48KJj8yo276mXY8kQ==
- dependencies:
- "@internationalized/date" "^3.0.2"
- "@react-types/shared" "^3.16.0"
-
-"@react-types/checkbox@^3.4.1":
- version "3.4.1"
- resolved "https://registry.yarnpkg.com/@react-types/checkbox/-/checkbox-3.4.1.tgz#75a78b3f21f4cc72d2382761ba4c326aefd699db"
- integrity sha512-kDMpy9SntjGQ7x00m5zmW8GENPouOtyiDgiEDKsPXUr2iYqHsNtricqVyG9S9+6hqpzuu8BzTcvZamc/xYjzlg==
- dependencies:
- "@react-types/shared" "^3.16.0"
-
-"@react-types/combobox@^3.5.5":
- version "3.5.5"
- resolved "https://registry.yarnpkg.com/@react-types/combobox/-/combobox-3.5.5.tgz#13410106fc2df8e3d02d53a33e9d2a6f3f2f6b61"
- integrity sha512-gpDo/NTQFd5IfCZoNnG16N4/JfvwXpZBNc15Kn7bF+NcpSDhDpI26BZN4mvK4lljKCheD4VrEl9/3PtImCg7cA==
- dependencies:
- "@react-types/shared" "^3.16.0"
-
-"@react-types/datepicker@^3.1.4":
- version "3.1.4"
- resolved "https://registry.yarnpkg.com/@react-types/datepicker/-/datepicker-3.1.4.tgz#46fd291d8acd40fdd304c4c0bf1a47e71eaa1801"
- integrity sha512-NBCXBCe3YZqeA/JrVKy0IAvJ2XSnXaVpR9iAlUwKu7V8P81CtnXHsVCrd/0HSH8QZWsGdIV5E23z0TctvW8trA==
- dependencies:
- "@internationalized/date" "^3.0.2"
- "@react-types/overlays" "^3.6.5"
- "@react-types/shared" "^3.16.0"
-
-"@react-types/dialog@^3.4.5":
- version "3.4.5"
- resolved "https://registry.yarnpkg.com/@react-types/dialog/-/dialog-3.4.5.tgz#a12c4e6d69dd7f098eb8b1534107ae6d970f734b"
- integrity sha512-FkxZAYNRWkZVH5rjlw6qyQ/SpoGcYtNI/JQvn1H/xtZy/OJh2b2ERxGWv5x0RItGSeyATdSwFO1Qnf1Kl2K02A==
- dependencies:
- "@react-types/overlays" "^3.6.5"
- "@react-types/shared" "^3.16.0"
-
-"@react-types/grid@^3.1.5":
- version "3.1.5"
- resolved "https://registry.yarnpkg.com/@react-types/grid/-/grid-3.1.5.tgz#b0efef48202b40aa05913f1fe5b05d80e7d26c15"
- integrity sha512-KiEywsOJ+wdzLmJerAKEMADdvdItaLfhdo3bFfn1lgNUaKiNDJctDYWlhOYsRePf7MIrzoZuXEFnJj45jfpiOQ==
- dependencies:
- "@react-types/shared" "^3.16.0"
-
-"@react-types/label@^3.7.1":
- version "3.7.1"
- resolved "https://registry.yarnpkg.com/@react-types/label/-/label-3.7.1.tgz#ad4d3d7a6b5ea6aca70f89661d7c358cf2ab5f94"
- integrity sha512-wFpdtjSDBWO4xQQGF57V3PqvVVyE9TPj9ELWLs1yzL09fpXosycuEl5d79RywVlC9aF9dQYUfES09q/DZhRhMQ==
- dependencies:
- "@react-types/shared" "^3.16.0"
-
-"@react-types/link@^3.3.6":
- version "3.3.6"
- resolved "https://registry.yarnpkg.com/@react-types/link/-/link-3.3.6.tgz#74ff1602c7aba38d3200f0d597a04e1f94989e25"
- integrity sha512-HMFd94CW8WrHbwXeTtCP/WOZmGugrEkN8f16R0i7T9xlTumk5GxubDMjA41ND/ehH72Xq7lP9VX8qezHWCGSoQ==
- dependencies:
- "@react-aria/interactions" "^3.13.1"
- "@react-types/shared" "^3.16.0"
-
-"@react-types/listbox@^3.3.5":
- version "3.3.5"
- resolved "https://registry.yarnpkg.com/@react-types/listbox/-/listbox-3.3.5.tgz#c2222e3f50fbf377ed20b2d16e761b9c09d7adc8"
- integrity sha512-7SMRJWUi7ayzQ7SUPCXXwgI/Ua3vg0PPQOZFsmJ4/E8VG/xK82IV7BYSZiNjUQuGpVZJL0VPndt/RwIrQO4S3w==
- dependencies:
- "@react-types/shared" "^3.16.0"
-
-"@react-types/menu@^3.7.3":
- version "3.7.3"
- resolved "https://registry.yarnpkg.com/@react-types/menu/-/menu-3.7.3.tgz#beb8d0fb7f1e50254e2e7661dfbfa4bb38826dad"
- integrity sha512-3Pax24I/FyNKBjKyNR4ePD8eZs35Th57HzJAVjamQg2fHEDRomg9GQ7fdmfGj72Dv3x3JRCoPYqhJ3L5R3kbzg==
- dependencies:
- "@react-types/overlays" "^3.6.5"
- "@react-types/shared" "^3.16.0"
-
-"@react-types/meter@^3.2.5":
- version "3.2.5"
- resolved "https://registry.yarnpkg.com/@react-types/meter/-/meter-3.2.5.tgz#99a381808e98765e7b645721bcc2bff4b5d5f19e"
- integrity sha512-pBrHoWRSwrfo3JtCCxoniSEd27Pokt20Fj4ZkJxjjDtLdcHOM4Z1JIKvOlcXMCV35iknrVu4veDHpmXolI+vAw==
- dependencies:
- "@react-types/progress" "^3.2.5"
- "@react-types/shared" "^3.16.0"
-
-"@react-types/numberfield@^3.3.5":
- version "3.3.5"
- resolved "https://registry.yarnpkg.com/@react-types/numberfield/-/numberfield-3.3.5.tgz#423aced559f7431e88b7988bf7e2cb3870fcdb1c"
- integrity sha512-qBhUSkahiIeTW5IvKvyfLtVHgzyqwKfuDIOlJQiBwgrOPR96X8KDDsOib4r5SFv0lhibv0gQ5L5ucXbmwLyQ8A==
- dependencies:
- "@react-types/shared" "^3.16.0"
-
-"@react-types/overlays@^3.6.5":
- version "3.6.5"
- resolved "https://registry.yarnpkg.com/@react-types/overlays/-/overlays-3.6.5.tgz#466b325d9be51f67beb98b7bec3fd9295c72efac"
- integrity sha512-IeWcF+YTucCYYHagNh8fZLH6R4YUONO1VHY57WJyIHwMy0qgEaKSQCwq72VO1fQJ0ySZgOgm31FniOyKkg6+eQ==
- dependencies:
- "@react-types/shared" "^3.16.0"
-
-"@react-types/progress@^3.2.5":
- version "3.2.5"
- resolved "https://registry.yarnpkg.com/@react-types/progress/-/progress-3.2.5.tgz#71780e48402cb25813c8edd07ee6075cdd972488"
- integrity sha512-pFSqaj6rlSdPqGHVErJ8G3RkIyYigoJ3EVozvhR9bcKkLlhnzJiFgOZl+k5u/ZKJOA+YHivIHJwg+Kl1sG0J6A==
- dependencies:
- "@react-types/shared" "^3.16.0"
-
-"@react-types/radio@^3.3.1":
- version "3.3.1"
- resolved "https://registry.yarnpkg.com/@react-types/radio/-/radio-3.3.1.tgz#688570ba9901d21850a16c2aaafed5dd83e09966"
- integrity sha512-q/x0kMvBsu6mH4bIkp/Jjrm9ff5y/p3UR0V4CmQFI7604gQd2Dt1dZMU/2HV9x70r1JfWRrDeRrVjUHVfFL5Vg==
- dependencies:
- "@react-types/shared" "^3.16.0"
-
-"@react-types/searchfield@^3.3.6":
- version "3.3.6"
- resolved "https://registry.yarnpkg.com/@react-types/searchfield/-/searchfield-3.3.6.tgz#8f33ef6938e2db9f80b7e4008d81fc4de65f07d3"
- integrity sha512-DIv5eznnJVv0CM4f8SEEiptEZSzXUJWUyxRPkTzYNWt91pPPaCNbCQbmzZtyR9/R9KRJ9hlZN2bMkrtfVLvl1g==
- dependencies:
- "@react-types/shared" "^3.16.0"
- "@react-types/textfield" "^3.6.2"
-
-"@react-types/select@^3.6.5":
- version "3.6.5"
- resolved "https://registry.yarnpkg.com/@react-types/select/-/select-3.6.5.tgz#798abf0073b39eef041952198a9e84eff0ce9edc"
- integrity sha512-FDeSA7TYMNnhsbXREnD4dWRSu21T5M4BLy+J/5VgwDpr3IN9pzbvngK8a3jc8Yg2S3igKYLMLYfmcsx+yk7ohA==
- dependencies:
- "@react-types/shared" "^3.16.0"
-
-"@react-types/shared@^3.16.0":
- version "3.16.0"
- resolved "https://registry.yarnpkg.com/@react-types/shared/-/shared-3.16.0.tgz#cab7bf0376969d1773480ecb2d6da5aa91391db5"
- integrity sha512-IQgU4oAEvMwylEvaTsr2XB1G/mAoMe1JFYLD6G78v++oAR9l8o9MQxZ0YSeANDkqTamb2gKezGoT1RxvSKjVxw==
-
-"@react-types/slider@^3.3.1":
- version "3.3.1"
- resolved "https://registry.yarnpkg.com/@react-types/slider/-/slider-3.3.1.tgz#0e6a8d0767b1ab94f8c32541d50aaa6d93683df4"
- integrity sha512-CbEa1v1IcUJD7VrFhWyOOlT7VyQ5DHEf/pNMkvICOBLMAwnWxS+tnTiRFgA/EbvV/vp24ydeszHYtMvsyRONRw==
- dependencies:
- "@react-types/shared" "^3.16.0"
-
-"@react-types/switch@^3.2.5":
- version "3.2.5"
- resolved "https://registry.yarnpkg.com/@react-types/switch/-/switch-3.2.5.tgz#e1db722e8beeed846cfcf9de94cad81b4e0ead78"
- integrity sha512-DlUL0Bz79SUTRje/i8m6qn4Ipn+q8QnyIkyJhkoHeH1R0YNude8xZrBPWbj3zfdddAGDFSF1NzP69q0xmNAcTQ==
- dependencies:
- "@react-types/checkbox" "^3.4.1"
- "@react-types/shared" "^3.16.0"
-
-"@react-types/table@^3.4.0":
+"@react-aria/link@^3.4.0":
version "3.4.0"
- resolved "https://registry.yarnpkg.com/@react-types/table/-/table-3.4.0.tgz#64715f6c355b880467f67b1e5288e6c28d6092e8"
- integrity sha512-G2L5WtaBMeG3v/5Kj/ZXH4ywz95vyPUBj7qy9UZJOYNaAR7uJWZkbe+Ka4xD4H/AaOk4mqW8dSo8cj7gtD66GQ==
+ resolved "https://registry.yarnpkg.com/@react-aria/link/-/link-3.4.0.tgz#f3f7c5277ab9fc0b8c55c76503e1fbe764e02ca6"
+ integrity sha512-d/h4y7SFO+KweMX5IRU99L1jz9AAwp6mNStkBjYGxCD29QYTVWClpZHjRlO1s6a9e2QTpk/LzsvjiytowzfHyA==
dependencies:
- "@react-types/grid" "^3.1.5"
- "@react-types/shared" "^3.16.0"
+ "@react-aria/focus" "^3.11.0"
+ "@react-aria/interactions" "^3.14.0"
+ "@react-aria/utils" "^3.15.0"
+ "@react-types/link" "^3.4.0"
+ "@react-types/shared" "^3.17.0"
+ "@swc/helpers" "^0.4.14"
-"@react-types/tabs@^3.1.5":
- version "3.1.5"
- resolved "https://registry.yarnpkg.com/@react-types/tabs/-/tabs-3.1.5.tgz#8676dd16e0dc4be2d4d1cc33bb89cc679ef93abe"
- integrity sha512-YgWY8IajCDBZmBzR3eii0aW6+SjcAT/dmqDNmfIuVVnDN7sHQ3PFa0nbmByvb0SfjOkJYumt8TJwFUCugohS8A==
+"@react-aria/listbox@^3.8.0":
+ version "3.8.0"
+ resolved "https://registry.yarnpkg.com/@react-aria/listbox/-/listbox-3.8.0.tgz#2598415cbb6de420e1edfd67391f9548f1abc571"
+ integrity sha512-v9tvyNsB887H5hpqPBoeBxNDr+3EKavImZk68h/+LKgZehMNSD3TGcmhcQ5Q4xqZJqYrQtKIYdtk+BP2huswAg==
dependencies:
- "@react-types/shared" "^3.16.0"
+ "@react-aria/focus" "^3.11.0"
+ "@react-aria/interactions" "^3.14.0"
+ "@react-aria/label" "^3.5.0"
+ "@react-aria/selection" "^3.13.0"
+ "@react-aria/utils" "^3.15.0"
+ "@react-stately/collections" "^3.6.0"
+ "@react-stately/list" "^3.7.0"
+ "@react-types/listbox" "^3.4.0"
+ "@react-types/shared" "^3.17.0"
+ "@swc/helpers" "^0.4.14"
-"@react-types/textfield@^3.6.2":
- version "3.6.2"
- resolved "https://registry.yarnpkg.com/@react-types/textfield/-/textfield-3.6.2.tgz#6cc87c2bac286a06ba04b9465d23fa9078bf280e"
- integrity sha512-QhFcpXvmSEW1/PwkWkvHJkcjsVezLW0OAvA0kMt/FMOChQNxnO36Pha+WjfcVbiFHXMhCBl6akbY2xG9NsHJrQ==
+"@react-aria/live-announcer@^3.2.0":
+ version "3.2.0"
+ resolved "https://registry.yarnpkg.com/@react-aria/live-announcer/-/live-announcer-3.2.0.tgz#ff4bd263789aa246de9f966e188649f6454e8b36"
+ integrity sha512-uSqDDy+9CbmNTZh0Roi4dvWKWcbuMTYKh3RnUw3XBPw0aYxSkcFQeWGfxFoOwXCDcXez02cFJtAxpR2bShkrsw==
dependencies:
- "@react-types/shared" "^3.16.0"
+ "@swc/helpers" "^0.4.14"
-"@react-types/tooltip@^3.2.5":
- version "3.2.5"
- resolved "https://registry.yarnpkg.com/@react-types/tooltip/-/tooltip-3.2.5.tgz#f2940d3edbcf846dc15f9222f0162664641f183c"
- integrity sha512-D4lN32JwQuA3JbCgcI26mgCkLHIj1WE8MTzf1McaasPkx7gVaqW+wfPyFwt99/Oo52TLvA/1oin78qePP67PSw==
+"@react-aria/menu@^3.8.0":
+ version "3.8.0"
+ resolved "https://registry.yarnpkg.com/@react-aria/menu/-/menu-3.8.0.tgz#847396ce69757cc3780c00cbd838deaf4a8cca90"
+ integrity sha512-5V/EXzdxFxJc1Dh7rqYWeGWeHLgIwyyN4fv+u1Y5+q5dikgTVplbjnO34VHMELHHVWDIqvSikJSyYsdKprVnEQ==
dependencies:
- "@react-types/overlays" "^3.6.5"
- "@react-types/shared" "^3.16.0"
+ "@react-aria/i18n" "^3.7.0"
+ "@react-aria/interactions" "^3.14.0"
+ "@react-aria/overlays" "^3.13.0"
+ "@react-aria/selection" "^3.13.0"
+ "@react-aria/utils" "^3.15.0"
+ "@react-stately/collections" "^3.6.0"
+ "@react-stately/menu" "^3.5.0"
+ "@react-stately/tree" "^3.5.0"
+ "@react-types/button" "^3.7.1"
+ "@react-types/menu" "^3.8.0"
+ "@react-types/shared" "^3.17.0"
+ "@swc/helpers" "^0.4.14"
+
+"@react-aria/meter@^3.4.0":
+ version "3.4.0"
+ resolved "https://registry.yarnpkg.com/@react-aria/meter/-/meter-3.4.0.tgz#2d46157668ba3331b505329a961e32e81da06f77"
+ integrity sha512-2CqpTwkZ1Vnblqd+z+mP+3ZhQRg3oNkz7GxN9nRLTDrpxVLY+WtSeIGDK7x8EwmYrVo4q4wHl3DGa2VOLNNgVA==
+ dependencies:
+ "@react-aria/progress" "^3.4.0"
+ "@react-types/meter" "^3.3.0"
+ "@react-types/shared" "^3.17.0"
+ "@swc/helpers" "^0.4.14"
+
+"@react-aria/numberfield@^3.4.0":
+ version "3.4.0"
+ resolved "https://registry.yarnpkg.com/@react-aria/numberfield/-/numberfield-3.4.0.tgz#158f37d8a388f210c947b0b2baf303f3fd58c95d"
+ integrity sha512-gZMZAjE+tcwtdDW5X5rlot7ihir1OCCEyzbIDFztte2h+I57b45ET9P4AmgrmqfOnyscPXI3kJn9eILNYHdZVw==
+ dependencies:
+ "@react-aria/i18n" "^3.7.0"
+ "@react-aria/interactions" "^3.14.0"
+ "@react-aria/live-announcer" "^3.2.0"
+ "@react-aria/spinbutton" "^3.3.0"
+ "@react-aria/textfield" "^3.9.0"
+ "@react-aria/utils" "^3.15.0"
+ "@react-stately/numberfield" "^3.4.0"
+ "@react-types/button" "^3.7.1"
+ "@react-types/numberfield" "^3.4.0"
+ "@react-types/shared" "^3.17.0"
+ "@react-types/textfield" "^3.7.0"
+ "@swc/helpers" "^0.4.14"
+
+"@react-aria/overlays@^3.13.0":
+ version "3.13.0"
+ resolved "https://registry.yarnpkg.com/@react-aria/overlays/-/overlays-3.13.0.tgz#f5a8cdce4754b4fd487baf9f356a5a3cdd731c12"
+ integrity sha512-hRZyhAYzrlCcEWQ2k2jP24b0wc5/355Xl5w5FZHRmPeU1U4XlFwKX/eFlBs/li9Sprm1bTDXrCY480Kl6UsKDA==
+ dependencies:
+ "@react-aria/focus" "^3.11.0"
+ "@react-aria/i18n" "^3.7.0"
+ "@react-aria/interactions" "^3.14.0"
+ "@react-aria/ssr" "^3.5.0"
+ "@react-aria/utils" "^3.15.0"
+ "@react-aria/visually-hidden" "^3.7.0"
+ "@react-stately/overlays" "^3.5.0"
+ "@react-types/button" "^3.7.1"
+ "@react-types/overlays" "^3.7.0"
+ "@react-types/shared" "^3.17.0"
+ "@swc/helpers" "^0.4.14"
+
+"@react-aria/progress@^3.4.0":
+ version "3.4.0"
+ resolved "https://registry.yarnpkg.com/@react-aria/progress/-/progress-3.4.0.tgz#76f7ece245e9f33972ba05836daa530a9656901b"
+ integrity sha512-G8Wew/EjgzoBM6OOAtVinA0hEng/DXWZF7luCoMPuqSKOakFzzazHBMpmjcXku0GGoTGzLsqqOK1M5o3kDn4FA==
+ dependencies:
+ "@react-aria/i18n" "^3.7.0"
+ "@react-aria/label" "^3.5.0"
+ "@react-aria/utils" "^3.15.0"
+ "@react-types/progress" "^3.3.0"
+ "@react-types/shared" "^3.17.0"
+ "@swc/helpers" "^0.4.14"
+
+"@react-aria/radio@^3.5.0":
+ version "3.5.0"
+ resolved "https://registry.yarnpkg.com/@react-aria/radio/-/radio-3.5.0.tgz#3322063e0ff86275762c0d473dfd2a0c3e82e168"
+ integrity sha512-d/Hxdu+jUdi3wmyaWYRLTyN16vZxr2MOdkmw8tojTOIMLQj7zTaCFc0D4LR4KZEn3E0F5buGCUHL6o4CTqBeBA==
+ dependencies:
+ "@react-aria/focus" "^3.11.0"
+ "@react-aria/i18n" "^3.7.0"
+ "@react-aria/interactions" "^3.14.0"
+ "@react-aria/label" "^3.5.0"
+ "@react-aria/utils" "^3.15.0"
+ "@react-stately/radio" "^3.7.0"
+ "@react-types/radio" "^3.4.0"
+ "@react-types/shared" "^3.17.0"
+ "@swc/helpers" "^0.4.14"
+
+"@react-aria/searchfield@^3.5.0":
+ version "3.5.0"
+ resolved "https://registry.yarnpkg.com/@react-aria/searchfield/-/searchfield-3.5.0.tgz#0ff853c13b21bb49cadecd0ed130813816417d33"
+ integrity sha512-eAsOiTBUeD8OiRyXUbU6fWzkEO5ERAODZJtv4yGcMdTjtKJW4jxeRwc6GXMKF3hDvdz7Y9NV6YfMCICSiVSFYg==
+ dependencies:
+ "@react-aria/i18n" "^3.7.0"
+ "@react-aria/interactions" "^3.14.0"
+ "@react-aria/textfield" "^3.9.0"
+ "@react-aria/utils" "^3.15.0"
+ "@react-stately/searchfield" "^3.4.0"
+ "@react-types/button" "^3.7.1"
+ "@react-types/searchfield" "^3.4.0"
+ "@react-types/shared" "^3.17.0"
+ "@swc/helpers" "^0.4.14"
+
+"@react-aria/select@^3.9.0":
+ version "3.9.0"
+ resolved "https://registry.yarnpkg.com/@react-aria/select/-/select-3.9.0.tgz#cada84973b2fd16cdc0215f7a5e30ac1b60e1970"
+ integrity sha512-sS/y32BFzHWMeQeeBTdnRuFERgF/8WM2qj6p7e9+F68Nb4Lz8Qpneb2pwWD6a+Dl4UGS1yQMSdZOOnS6aBW41w==
+ dependencies:
+ "@react-aria/i18n" "^3.7.0"
+ "@react-aria/interactions" "^3.14.0"
+ "@react-aria/label" "^3.5.0"
+ "@react-aria/listbox" "^3.8.0"
+ "@react-aria/menu" "^3.8.0"
+ "@react-aria/selection" "^3.13.0"
+ "@react-aria/utils" "^3.15.0"
+ "@react-aria/visually-hidden" "^3.7.0"
+ "@react-stately/select" "^3.4.0"
+ "@react-types/button" "^3.7.1"
+ "@react-types/select" "^3.7.0"
+ "@react-types/shared" "^3.17.0"
+ "@swc/helpers" "^0.4.14"
+
+"@react-aria/selection@^3.13.0":
+ version "3.13.0"
+ resolved "https://registry.yarnpkg.com/@react-aria/selection/-/selection-3.13.0.tgz#3a2c01fe9bead75bde251ce207c89da594fe2dfb"
+ integrity sha512-KU8xWd2wzL6jacWZeXFx1p6uQ1qAvE4F+K3LqUbj+kWBdmEGYkri9t17A1zQdN7sjaN9cH61eojGpEXYskz01w==
+ dependencies:
+ "@react-aria/focus" "^3.11.0"
+ "@react-aria/i18n" "^3.7.0"
+ "@react-aria/interactions" "^3.14.0"
+ "@react-aria/utils" "^3.15.0"
+ "@react-stately/collections" "^3.6.0"
+ "@react-stately/selection" "^3.12.0"
+ "@react-types/shared" "^3.17.0"
+ "@swc/helpers" "^0.4.14"
+
+"@react-aria/separator@^3.3.0":
+ version "3.3.0"
+ resolved "https://registry.yarnpkg.com/@react-aria/separator/-/separator-3.3.0.tgz#093fc0d62aa851d1bcc443d899768c278b9c825a"
+ integrity sha512-AR3Pbik83dygOvmfBiCTRAHz+B13yyGz8nKyw521toT69RMtJTi8ha8qB6Iw1QP3YZWRv+Fn6WWrfGIvR+f2XQ==
+ dependencies:
+ "@react-aria/utils" "^3.15.0"
+ "@react-types/shared" "^3.17.0"
+ "@swc/helpers" "^0.4.14"
+
+"@react-aria/slider@^3.3.0":
+ version "3.3.0"
+ resolved "https://registry.yarnpkg.com/@react-aria/slider/-/slider-3.3.0.tgz#4bb945a93a90607a549d08d99efd543d358fd8e6"
+ integrity sha512-UgR2XEI3vrJAQU1RVC+1uHVr/vFcVh+Cjt/kaFUO7fdj8usqa4JOnIuX+QKCysiVLJc7IEXw4RCJBJYBSUYK6A==
+ dependencies:
+ "@react-aria/focus" "^3.11.0"
+ "@react-aria/i18n" "^3.7.0"
+ "@react-aria/interactions" "^3.14.0"
+ "@react-aria/label" "^3.5.0"
+ "@react-aria/utils" "^3.15.0"
+ "@react-stately/radio" "^3.7.0"
+ "@react-stately/slider" "^3.3.0"
+ "@react-types/radio" "^3.4.0"
+ "@react-types/shared" "^3.17.0"
+ "@react-types/slider" "^3.4.0"
+ "@swc/helpers" "^0.4.14"
+
+"@react-aria/spinbutton@^3.3.0":
+ version "3.3.0"
+ resolved "https://registry.yarnpkg.com/@react-aria/spinbutton/-/spinbutton-3.3.0.tgz#19ae27476ee7acbfb75d40b568164a26466c39d7"
+ integrity sha512-FXTFNz2RFClqGxQzMIHYdsjkm6fcWRObqelY+lXP5udk7Q8T9aQn+28QhqVpbOFXotLE2PltElbziJeuhkVgNA==
+ dependencies:
+ "@react-aria/i18n" "^3.7.0"
+ "@react-aria/live-announcer" "^3.2.0"
+ "@react-aria/utils" "^3.15.0"
+ "@react-types/button" "^3.7.1"
+ "@react-types/shared" "^3.17.0"
+ "@swc/helpers" "^0.4.14"
+
+"@react-aria/ssr@^3.5.0":
+ version "3.5.0"
+ resolved "https://registry.yarnpkg.com/@react-aria/ssr/-/ssr-3.5.0.tgz#40c1270a75868185f72a88cafe37bd1392f690cb"
+ integrity sha512-h0MJdSWOd1qObLnJ8mprU31wI8tmKFJMuwT22MpWq6psisOOZaga6Ml4u6Ee6M6duWWISjXvqO4Sb/J0PBA+nQ==
+ dependencies:
+ "@swc/helpers" "^0.4.14"
+
+"@react-aria/switch@^3.4.0":
+ version "3.4.0"
+ resolved "https://registry.yarnpkg.com/@react-aria/switch/-/switch-3.4.0.tgz#f3cb0a7b64ddcb93e60b31254e7bb5277a954f30"
+ integrity sha512-FWbjqNcY+fAjRNXVQTvOx93udhaySgXLsMNLRAVUcFm45FqTaxAhHhNGtRnVhDvzHTJY/Y+kpcGzCcW2rXzPxg==
+ dependencies:
+ "@react-aria/toggle" "^3.5.0"
+ "@react-stately/toggle" "^3.5.0"
+ "@react-types/switch" "^3.3.0"
+ "@swc/helpers" "^0.4.14"
+
+"@react-aria/table@^3.8.0":
+ version "3.8.0"
+ resolved "https://registry.yarnpkg.com/@react-aria/table/-/table-3.8.0.tgz#f95aba4d3b0cfbf1e98b7cb89e4da83a6cd85cb3"
+ integrity sha512-uPy7xvZ47sk8r0d66lI7pshXTOnr/A7DlY60BFEKwPNmO2hVGKvp5ptRI8+EoZzti9JXr1Qz5jsMMSKOocWgtQ==
+ dependencies:
+ "@react-aria/focus" "^3.11.0"
+ "@react-aria/grid" "^3.6.0"
+ "@react-aria/i18n" "^3.7.0"
+ "@react-aria/interactions" "^3.14.0"
+ "@react-aria/live-announcer" "^3.2.0"
+ "@react-aria/selection" "^3.13.0"
+ "@react-aria/utils" "^3.15.0"
+ "@react-stately/table" "^3.8.0"
+ "@react-stately/virtualizer" "^3.5.0"
+ "@react-types/checkbox" "^3.4.2"
+ "@react-types/grid" "^3.1.6"
+ "@react-types/shared" "^3.17.0"
+ "@react-types/table" "^3.5.0"
+ "@swc/helpers" "^0.4.14"
+
+"@react-aria/tabs@^3.4.0":
+ version "3.4.0"
+ resolved "https://registry.yarnpkg.com/@react-aria/tabs/-/tabs-3.4.0.tgz#afc6b6d59013f901efa4ec85a2f3cf2844465d48"
+ integrity sha512-Wwda6yag23eqR6L4+Kwng7jq7va5Enk9xv8y0lFib+ohkPXI6/XhA1Ptc83N2wofmcPtuwLQ6SXSGXOd96lN7w==
+ dependencies:
+ "@react-aria/focus" "^3.11.0"
+ "@react-aria/i18n" "^3.7.0"
+ "@react-aria/interactions" "^3.14.0"
+ "@react-aria/selection" "^3.13.0"
+ "@react-aria/utils" "^3.15.0"
+ "@react-stately/list" "^3.7.0"
+ "@react-stately/tabs" "^3.3.0"
+ "@react-types/shared" "^3.17.0"
+ "@react-types/tabs" "^3.2.0"
+ "@swc/helpers" "^0.4.14"
+
+"@react-aria/textfield@^3.9.0":
+ version "3.9.0"
+ resolved "https://registry.yarnpkg.com/@react-aria/textfield/-/textfield-3.9.0.tgz#485904cfe241a4bdffa4345158e4858d8cbb3025"
+ integrity sha512-plX+/RDidTpz4kfQni2mnH10g9iARC5P7oi4XBXqwrVCIqpTUNoyGLUH952wObYOI9k7lG2QG0+b+3GyrV159g==
+ dependencies:
+ "@react-aria/focus" "^3.11.0"
+ "@react-aria/label" "^3.5.0"
+ "@react-aria/utils" "^3.15.0"
+ "@react-types/shared" "^3.17.0"
+ "@react-types/textfield" "^3.7.0"
+ "@swc/helpers" "^0.4.14"
+
+"@react-aria/toggle@^3.5.0":
+ version "3.5.0"
+ resolved "https://registry.yarnpkg.com/@react-aria/toggle/-/toggle-3.5.0.tgz#2193fd0a13a6c11ce865768c5b3e4fe37feab433"
+ integrity sha512-K49OmHBmYW8pk0rXJU1TNRzR+PxLVvfL/ni6ifV5gcxoxV6DmFsNFj+5B/U3AMnCEQeyKQeiY6z9X7EBVX6j9Q==
+ dependencies:
+ "@react-aria/focus" "^3.11.0"
+ "@react-aria/interactions" "^3.14.0"
+ "@react-aria/utils" "^3.15.0"
+ "@react-stately/toggle" "^3.5.0"
+ "@react-types/checkbox" "^3.4.2"
+ "@react-types/shared" "^3.17.0"
+ "@react-types/switch" "^3.3.0"
+ "@swc/helpers" "^0.4.14"
+
+"@react-aria/tooltip@^3.4.0":
+ version "3.4.0"
+ resolved "https://registry.yarnpkg.com/@react-aria/tooltip/-/tooltip-3.4.0.tgz#a4514570f6ba00d474cfe0b94e639ac3df4ffa93"
+ integrity sha512-b1E9m6WIPNV0TNRn9VNBnDn1FFt/pwKGtIGDDablLArEmSkkz0HJjwlUqC4+vL0U2dCaQA4TxWl9GDQE7Wzl8w==
+ dependencies:
+ "@react-aria/focus" "^3.11.0"
+ "@react-aria/interactions" "^3.14.0"
+ "@react-aria/utils" "^3.15.0"
+ "@react-stately/tooltip" "^3.3.0"
+ "@react-types/shared" "^3.17.0"
+ "@react-types/tooltip" "^3.3.0"
+ "@swc/helpers" "^0.4.14"
+
+"@react-aria/utils@^3.15.0":
+ version "3.15.0"
+ resolved "https://registry.yarnpkg.com/@react-aria/utils/-/utils-3.15.0.tgz#a836674dd40ec7f15e9f7a69b1a14f19b1ee42e6"
+ integrity sha512-aJZBG++iz1UwTW5gXFaHicKju4p0MPhAyBTcf2awHYWeTUUslDjJcEnNg7kjBYZBOrOSlA2rAt7/7C5CCURQPg==
+ dependencies:
+ "@react-aria/ssr" "^3.5.0"
+ "@react-stately/utils" "^3.6.0"
+ "@react-types/shared" "^3.17.0"
+ "@swc/helpers" "^0.4.14"
+ clsx "^1.1.1"
+
+"@react-aria/visually-hidden@^3.7.0":
+ version "3.7.0"
+ resolved "https://registry.yarnpkg.com/@react-aria/visually-hidden/-/visually-hidden-3.7.0.tgz#4056b8bb33f30ca8c5192dfcf706ac8bb2beb61a"
+ integrity sha512-v/0ujJ67H6LjwY8J7mIGPVB1K8suBArLV+w8UGdX/wFXRL7H4r2fiqlrwAElWSmNbhDQl5BDm/Zh/ub9jB9yzA==
+ dependencies:
+ "@react-aria/interactions" "^3.14.0"
+ "@react-aria/utils" "^3.15.0"
+ "@react-types/shared" "^3.17.0"
+ "@swc/helpers" "^0.4.14"
+ clsx "^1.1.1"
+
+"@react-spring/animated@~9.7.1":
+ version "9.7.1"
+ resolved "https://registry.yarnpkg.com/@react-spring/animated/-/animated-9.7.1.tgz#0f2d78184ee0cce703acd41abb87ea56765b5713"
+ integrity sha512-EX5KAD9y7sD43TnLeTNG1MgUVpuRO1YaSJRPawHNRgUWYfILge3s85anny4S4eTJGpdp5OoFV2kx9fsfeo0qsw==
+ dependencies:
+ "@react-spring/shared" "~9.7.1"
+ "@react-spring/types" "~9.7.1"
+
+"@react-spring/core@~9.7.1":
+ version "9.7.1"
+ resolved "https://registry.yarnpkg.com/@react-spring/core/-/core-9.7.1.tgz#cfe176a48ee0a05545b1af5f2fbae718b50e9a99"
+ integrity sha512-8K9/FaRn5VvMa24mbwYxwkALnAAyMRdmQXrARZLcBW2vxLJ6uw9Cy3d06Z8M12kEqF2bDlccaCSDsn2bSz+Q4A==
+ dependencies:
+ "@react-spring/animated" "~9.7.1"
+ "@react-spring/rafz" "~9.7.1"
+ "@react-spring/shared" "~9.7.1"
+ "@react-spring/types" "~9.7.1"
+
+"@react-spring/konva@~9.7.1":
+ version "9.7.1"
+ resolved "https://registry.yarnpkg.com/@react-spring/konva/-/konva-9.7.1.tgz#25640892f88bde06c3ab96c875e5f7408abbce43"
+ integrity sha512-74svXHtUJi6Tvk9mNLUV1/1WfU8MdWsTK6JUpvmJr/rUr8r3FdOokk22icbgEg6AjxCkIf5e2WFovCCHUSyS0w==
+ dependencies:
+ "@react-spring/animated" "~9.7.1"
+ "@react-spring/core" "~9.7.1"
+ "@react-spring/shared" "~9.7.1"
+ "@react-spring/types" "~9.7.1"
+
+"@react-spring/native@~9.7.1":
+ version "9.7.1"
+ resolved "https://registry.yarnpkg.com/@react-spring/native/-/native-9.7.1.tgz#3f397f946fc9a7dd4d7d432f8c0a4726d7723751"
+ integrity sha512-dHWeH0UuE+Rxc3YZFLp8Aq0RBP07sdOgI7pLVG46OzkMRs2RtJeWJxB6UXIWAgcYDqWDk2REAPhLD3ItDl0tDQ==
+ dependencies:
+ "@react-spring/animated" "~9.7.1"
+ "@react-spring/core" "~9.7.1"
+ "@react-spring/shared" "~9.7.1"
+ "@react-spring/types" "~9.7.1"
+
+"@react-spring/rafz@~9.7.1":
+ version "9.7.1"
+ resolved "https://registry.yarnpkg.com/@react-spring/rafz/-/rafz-9.7.1.tgz#bdfea463fcb5ddc4e7253a8fa3870dd52ebbc59a"
+ integrity sha512-JSsrRfbEJvuE3w/uvU3mCTuWwpQcBXkwoW14lBgzK9XJhuxmscGo59AgJUpFkGOiGAVXFBGB+nEXtSinFsopgw==
+
+"@react-spring/shared@~9.7.1":
+ version "9.7.1"
+ resolved "https://registry.yarnpkg.com/@react-spring/shared/-/shared-9.7.1.tgz#29611bb63d0c9e1ac18b6ced7aa4db1d48d136f3"
+ integrity sha512-R2kZ+VOO6IBeIAYTIA3C1XZ0ZVg/dDP5FKtWaY8k5akMer9iqf5H9BU0jyt3Qtxn0qQY7whQdf6MTcWtKeaawg==
+ dependencies:
+ "@react-spring/rafz" "~9.7.1"
+ "@react-spring/types" "~9.7.1"
+
+"@react-spring/three@~9.7.1":
+ version "9.7.1"
+ resolved "https://registry.yarnpkg.com/@react-spring/three/-/three-9.7.1.tgz#0dab3b5e96bb6e10db0a1363938e46fc68a861e4"
+ integrity sha512-5leUe0PDwIIw1M3GN3788zwTY4Ykyy+kNvQmg9+Hqs1DN3T8J1ovRTGwqWfGAu4ApTta9p5BH7SWNxxt3NO59Q==
+ dependencies:
+ "@react-spring/animated" "~9.7.1"
+ "@react-spring/core" "~9.7.1"
+ "@react-spring/shared" "~9.7.1"
+ "@react-spring/types" "~9.7.1"
+
+"@react-spring/types@~9.7.1":
+ version "9.7.1"
+ resolved "https://registry.yarnpkg.com/@react-spring/types/-/types-9.7.1.tgz#b540752a479d210c6fb68d2b1d5ff35556df4308"
+ integrity sha512-yBcyfKUeZv9wf/ZFrQszvhSPuDx6Py6yMJzpMnS+zxcZmhXPeOCKZSHwqrUz1WxvuRckUhlgb7eNI/x5e1e8CA==
+
+"@react-spring/web@~9.7.1":
+ version "9.7.1"
+ resolved "https://registry.yarnpkg.com/@react-spring/web/-/web-9.7.1.tgz#a9ee730d06c686b8432cd20f41683b1acb9b6300"
+ integrity sha512-6uUE5MyKqdrJnIJqlDN/AXf3i8PjOQzUuT26nkpsYxUGOk7c+vZVPcfrExLSoKzTb9kF0i66DcqzO5fXz/Z1AA==
+ dependencies:
+ "@react-spring/animated" "~9.7.1"
+ "@react-spring/core" "~9.7.1"
+ "@react-spring/shared" "~9.7.1"
+ "@react-spring/types" "~9.7.1"
+
+"@react-spring/zdog@~9.7.1":
+ version "9.7.1"
+ resolved "https://registry.yarnpkg.com/@react-spring/zdog/-/zdog-9.7.1.tgz#474a1366d7b71d623e0dff0e37a243b505e8c1a6"
+ integrity sha512-FeDws+7ZSoi91TUjxKnq3xmdOW6fthmqky6zSPIZq1NomeyO7+xwbxjtu15IqoWG4DJ9pouVZDijvBQXUNl0Mw==
+ dependencies:
+ "@react-spring/animated" "~9.7.1"
+ "@react-spring/core" "~9.7.1"
+ "@react-spring/shared" "~9.7.1"
+ "@react-spring/types" "~9.7.1"
+
+"@react-stately/calendar@^3.1.0":
+ version "3.1.0"
+ resolved "https://registry.yarnpkg.com/@react-stately/calendar/-/calendar-3.1.0.tgz#3254ab630972f5bfeedf821a3580ad83bc087e2e"
+ integrity sha512-PZXXHyrLoYEUAUL8oFoxHNc7mKrQXLxnYQkY9v3a6SxgST3J4tYoqIXrie0uqpm1LI+1JfKb2lyRGlVPRTBuNQ==
+ dependencies:
+ "@internationalized/date" "^3.1.0"
+ "@react-stately/utils" "^3.6.0"
+ "@react-types/calendar" "^3.1.0"
+ "@react-types/datepicker" "^3.2.0"
+ "@react-types/shared" "^3.17.0"
+ "@swc/helpers" "^0.4.14"
+
+"@react-stately/checkbox@^3.4.0":
+ version "3.4.0"
+ resolved "https://registry.yarnpkg.com/@react-stately/checkbox/-/checkbox-3.4.0.tgz#34712864e6b6dbae033b30a279dc32a26bbc1a9b"
+ integrity sha512-zqwHMmlzza1exS6Bbqj4Mom3ygtG8pLguHweZ9OO7BFQLwBmzJsrFNqDcj7xh8iEWxXKQfZ2YOuhkaGvu4GRjA==
+ dependencies:
+ "@react-stately/toggle" "^3.5.0"
+ "@react-stately/utils" "^3.6.0"
+ "@react-types/checkbox" "^3.4.2"
+ "@react-types/shared" "^3.17.0"
+ "@swc/helpers" "^0.4.14"
+
+"@react-stately/collections@^3.6.0":
+ version "3.6.0"
+ resolved "https://registry.yarnpkg.com/@react-stately/collections/-/collections-3.6.0.tgz#4fbecbbbb354badbc46618262e91743754257673"
+ integrity sha512-znkaqCPo7F1yyzEKDAB5MpX1Vw5UHcUQhDNrys5YOqAkX6/G/AChnBz0B63UxS3fjyqgnuJylRRmUp9nTqO21w==
+ dependencies:
+ "@react-types/shared" "^3.17.0"
+ "@swc/helpers" "^0.4.14"
+
+"@react-stately/combobox@^3.4.0":
+ version "3.4.0"
+ resolved "https://registry.yarnpkg.com/@react-stately/combobox/-/combobox-3.4.0.tgz#d4189bfe7b17a94a6158357de51ebd4166f819c5"
+ integrity sha512-QVKNosNqSS7PnjrNVrGat9KKlCcv7e3nTehQuIu18ZE2JVH7Jdf/73zkSMurrnQfbPVeiHkGK1deWqrzoNzYQQ==
+ dependencies:
+ "@react-stately/list" "^3.7.0"
+ "@react-stately/menu" "^3.5.0"
+ "@react-stately/select" "^3.4.0"
+ "@react-stately/utils" "^3.6.0"
+ "@react-types/combobox" "^3.6.0"
+ "@react-types/shared" "^3.17.0"
+ "@swc/helpers" "^0.4.14"
+
+"@react-stately/datepicker@^3.3.0":
+ version "3.3.0"
+ resolved "https://registry.yarnpkg.com/@react-stately/datepicker/-/datepicker-3.3.0.tgz#4dd777756f5f0abb3617b5d61bf34d428f0c563f"
+ integrity sha512-HH/WPAMXwULyBKHICxTLGDk3cPGf9Yhf8sX2DES935aupd+6YqzQrh97buOedKsF5WKZfzMMtUVqy8uepo6S6g==
+ dependencies:
+ "@internationalized/date" "^3.1.0"
+ "@internationalized/string" "^3.1.0"
+ "@react-stately/overlays" "^3.5.0"
+ "@react-stately/utils" "^3.6.0"
+ "@react-types/datepicker" "^3.2.0"
+ "@react-types/shared" "^3.17.0"
+ "@swc/helpers" "^0.4.14"
+
+"@react-stately/dnd@^3.1.0":
+ version "3.1.0"
+ resolved "https://registry.yarnpkg.com/@react-stately/dnd/-/dnd-3.1.0.tgz#b8d2c9baba72607bf0d9aa73ab1e0ccd2a39cfb8"
+ integrity sha512-PctHJqRm37vdKs91vB18lfdas4CypStbgj6ENApUXSDLd8XrVgthH4sYrX1BX/RbZyCr7u+TG7qVKGcRfsvbTw==
+ dependencies:
+ "@react-stately/selection" "^3.12.0"
+ "@react-types/shared" "^3.17.0"
+ "@swc/helpers" "^0.4.14"
+
+"@react-stately/grid@^3.5.0":
+ version "3.5.0"
+ resolved "https://registry.yarnpkg.com/@react-stately/grid/-/grid-3.5.0.tgz#345a98a2f541d5372ebefe44d42f54e22c08d54e"
+ integrity sha512-kCmO2KyHoIJWiCqUXJTD0I/4q/6h3pXGdyD4tWmqWdysxf+x09K/Mx/JwwFqee5LICZgt8MtBrfV+ijLZ8mQAg==
+ dependencies:
+ "@react-stately/selection" "^3.12.0"
+ "@react-types/grid" "^3.1.6"
+ "@react-types/shared" "^3.17.0"
+ "@swc/helpers" "^0.4.14"
+
+"@react-stately/layout@^3.11.0":
+ version "3.11.0"
+ resolved "https://registry.yarnpkg.com/@react-stately/layout/-/layout-3.11.0.tgz#e1009eed8cc61fb00691eaf2ea38a5dd5fd49318"
+ integrity sha512-QNupEFgIv5hqYEbLxDQfHgBkfk6t1VTTxWftBZMXXJEVCC1GH8vUJ35BJGO7hQNhPoTp3xc3X7yEcBlXy1ZmlA==
+ dependencies:
+ "@react-stately/table" "^3.8.0"
+ "@react-stately/virtualizer" "^3.5.0"
+ "@react-types/grid" "^3.1.6"
+ "@react-types/shared" "^3.17.0"
+ "@react-types/table" "^3.5.0"
+ "@swc/helpers" "^0.4.14"
+
+"@react-stately/list@^3.7.0":
+ version "3.7.0"
+ resolved "https://registry.yarnpkg.com/@react-stately/list/-/list-3.7.0.tgz#7484cc46d995a18b2b43de50449aba7faae76809"
+ integrity sha512-/BxCqXFjX9P+OJWjIYmUWaOGJ2hlZHUdymVwZPkIWdO9K7069LWckdYFXRqLFMwIGLUcXVfw4jR0BIQqWlR4eA==
+ dependencies:
+ "@react-stately/collections" "^3.6.0"
+ "@react-stately/selection" "^3.12.0"
+ "@react-stately/utils" "^3.6.0"
+ "@react-types/shared" "^3.17.0"
+ "@swc/helpers" "^0.4.14"
+
+"@react-stately/menu@^3.5.0":
+ version "3.5.0"
+ resolved "https://registry.yarnpkg.com/@react-stately/menu/-/menu-3.5.0.tgz#04fda461dc3971bc84bf49436625b3e044bca3bc"
+ integrity sha512-JL6TcT+SbYdlxNLOS84SXp6njDNZuXfkt05o4rS51evmjM2+hlYaB9+yUMqrCb/J2nW7vVAg51TDAhLgmGTYKg==
+ dependencies:
+ "@react-stately/overlays" "^3.5.0"
+ "@react-stately/utils" "^3.6.0"
+ "@react-types/menu" "^3.8.0"
+ "@react-types/shared" "^3.17.0"
+ "@swc/helpers" "^0.4.14"
+
+"@react-stately/numberfield@^3.4.0":
+ version "3.4.0"
+ resolved "https://registry.yarnpkg.com/@react-stately/numberfield/-/numberfield-3.4.0.tgz#09745a220d4d955de4e9a34c8118d7791a1770e7"
+ integrity sha512-R+LjwRpspttiO0tZ8KikXu184D3HZJG37jVcp/yM1jyMURmQHWfjjR6PHuD66PSV5PtM2KQlBj6PGvDLg1UwlQ==
+ dependencies:
+ "@internationalized/number" "^3.2.0"
+ "@react-stately/utils" "^3.6.0"
+ "@react-types/numberfield" "^3.4.0"
+ "@react-types/shared" "^3.17.0"
+ "@swc/helpers" "^0.4.14"
+
+"@react-stately/overlays@^3.5.0":
+ version "3.5.0"
+ resolved "https://registry.yarnpkg.com/@react-stately/overlays/-/overlays-3.5.0.tgz#3c33a6f678f728497c94729e8a861ddf1e8704bb"
+ integrity sha512-r+U/G0Y4tCfI5wyBeIu+hmcZVRN8ChoK2zM1srPH9nDKsijQard2goX+9YmKng2LJ01Re/P6F8S8jYbpfEdLfQ==
+ dependencies:
+ "@react-stately/utils" "^3.6.0"
+ "@react-types/overlays" "^3.7.0"
+ "@swc/helpers" "^0.4.14"
+
+"@react-stately/radio@^3.7.0":
+ version "3.7.0"
+ resolved "https://registry.yarnpkg.com/@react-stately/radio/-/radio-3.7.0.tgz#5312503f36677fd3a42f8fb7bc820463cf879b08"
+ integrity sha512-TKyR6RfX1qZRPAxVWIKMTt2s3J+IlxFZHykiEl85gHBmABSWW4JO4RjkgcmbaAGLAhu1pJU8ktJOyi+MyndpHA==
+ dependencies:
+ "@react-stately/utils" "^3.6.0"
+ "@react-types/radio" "^3.4.0"
+ "@react-types/shared" "^3.17.0"
+ "@swc/helpers" "^0.4.14"
+
+"@react-stately/searchfield@^3.4.0":
+ version "3.4.0"
+ resolved "https://registry.yarnpkg.com/@react-stately/searchfield/-/searchfield-3.4.0.tgz#863b9741f17672b39a80eb28cb9860dd715809f8"
+ integrity sha512-aaQLczPUIJwTGlllALT49RSvWY55oqmJWhLL7j3hnL1cNV0WmkmoSdAo7drDaux5vkgkurxuwMEZ8ymFYeZ+Nw==
+ dependencies:
+ "@react-stately/utils" "^3.6.0"
+ "@react-types/searchfield" "^3.4.0"
+ "@react-types/shared" "^3.17.0"
+ "@swc/helpers" "^0.4.14"
+
+"@react-stately/select@^3.4.0":
+ version "3.4.0"
+ resolved "https://registry.yarnpkg.com/@react-stately/select/-/select-3.4.0.tgz#e6df572279b5baed264552032f8060dbf49c9ebb"
+ integrity sha512-thSqD3apMCSgZgKtqHKGVIQRyvG8l0supIuzJicBwq6xg+J8X5muPCZgchCSNmU6im/l81XXE8LGuHGgMilORA==
+ dependencies:
+ "@react-stately/collections" "^3.6.0"
+ "@react-stately/list" "^3.7.0"
+ "@react-stately/menu" "^3.5.0"
+ "@react-stately/selection" "^3.12.0"
+ "@react-stately/utils" "^3.6.0"
+ "@react-types/select" "^3.7.0"
+ "@react-types/shared" "^3.17.0"
+ "@swc/helpers" "^0.4.14"
+
+"@react-stately/selection@^3.12.0":
+ version "3.12.0"
+ resolved "https://registry.yarnpkg.com/@react-stately/selection/-/selection-3.12.0.tgz#feb5ad753ea93870566f2c0b07f0387b690bd860"
+ integrity sha512-qgUaPwqtAl7YaZxxGdb55ZaVuMB1rG+Vr+9fgG8dPtDYCNaPeIlg7ndC4ylzDhCWIx8D5qZotcrqCA4+93TwdA==
+ dependencies:
+ "@react-stately/collections" "^3.6.0"
+ "@react-stately/utils" "^3.6.0"
+ "@react-types/shared" "^3.17.0"
+ "@swc/helpers" "^0.4.14"
+
+"@react-stately/slider@^3.3.0":
+ version "3.3.0"
+ resolved "https://registry.yarnpkg.com/@react-stately/slider/-/slider-3.3.0.tgz#abfd70be9b8fce5f19898d2dcad116a26dd88781"
+ integrity sha512-17aGJYHBRY3g4ZeiIgCNOvYl3HBARvSJhUKoNxZMRa2pqREW+WmBRRAXv5KTymW/KfcGb0RCq1ytYsderEgZAQ==
+ dependencies:
+ "@react-aria/i18n" "^3.7.0"
+ "@react-aria/utils" "^3.15.0"
+ "@react-stately/utils" "^3.6.0"
+ "@react-types/shared" "^3.17.0"
+ "@react-types/slider" "^3.4.0"
+ "@swc/helpers" "^0.4.14"
+
+"@react-stately/table@^3.8.0":
+ version "3.8.0"
+ resolved "https://registry.yarnpkg.com/@react-stately/table/-/table-3.8.0.tgz#2728ee73ab7dd68f009a39252bf075aafbf8d130"
+ integrity sha512-WmOcW9+4zm6MQZxYEC77u5HMxTcvcotkFptohHd0YtHXx+z5iwClCVKKFG2mc5lE+K4iQE41Q56nVKLjAu+TsA==
+ dependencies:
+ "@react-stately/collections" "^3.6.0"
+ "@react-stately/grid" "^3.5.0"
+ "@react-stately/selection" "^3.12.0"
+ "@react-types/grid" "^3.1.6"
+ "@react-types/shared" "^3.17.0"
+ "@react-types/table" "^3.5.0"
+ "@swc/helpers" "^0.4.14"
+
+"@react-stately/tabs@^3.3.0":
+ version "3.3.0"
+ resolved "https://registry.yarnpkg.com/@react-stately/tabs/-/tabs-3.3.0.tgz#9674cb2f7c701bdc7dcc7a0c1bc88f62350da7c1"
+ integrity sha512-Kf47+aXGf4NvnREMDqH+uuTa0QsYCxOp0poywR8lRPmYsL7V8yrTS2wXQnDL7cq8PXbL5v+ew0xmrV+BiUlNRg==
+ dependencies:
+ "@react-stately/list" "^3.7.0"
+ "@react-stately/utils" "^3.6.0"
+ "@react-types/tabs" "^3.2.0"
+ "@swc/helpers" "^0.4.14"
+
+"@react-stately/toggle@^3.5.0":
+ version "3.5.0"
+ resolved "https://registry.yarnpkg.com/@react-stately/toggle/-/toggle-3.5.0.tgz#fee5a29d7699e43867c52981834af5393f47c1c4"
+ integrity sha512-vKwLLkFsiIve4pXIQC/dqLAz7Z+qtzJ8+D00EXXO1Nf8YHcyIMDkTmi3NTM8Qtvmt4xX2hbJFiPDF6WvF6mBIg==
+ dependencies:
+ "@react-stately/utils" "^3.6.0"
+ "@react-types/checkbox" "^3.4.2"
+ "@react-types/shared" "^3.17.0"
+ "@swc/helpers" "^0.4.14"
+
+"@react-stately/tooltip@^3.3.0":
+ version "3.3.0"
+ resolved "https://registry.yarnpkg.com/@react-stately/tooltip/-/tooltip-3.3.0.tgz#7991bc26e21d07368e0f797407652548fa558811"
+ integrity sha512-cYg4zKUc0y71L5OO5DyaCoh248A7wvXAU6VGMhppPGx+iPoWJMLBBdEJjf8Oa12NGxNv9SC5lTcv6js2k4+WwQ==
+ dependencies:
+ "@react-stately/overlays" "^3.5.0"
+ "@react-stately/utils" "^3.6.0"
+ "@react-types/tooltip" "^3.3.0"
+ "@swc/helpers" "^0.4.14"
+
+"@react-stately/tree@^3.5.0":
+ version "3.5.0"
+ resolved "https://registry.yarnpkg.com/@react-stately/tree/-/tree-3.5.0.tgz#1d0dffd93c17b004953c27817be1ae2da9f96e5b"
+ integrity sha512-5+MzMQUFq3+lbGkZC0SlcIDrYmPvxBKuC8xL5W6SuFekbrrxrS6IJexRe4QulaaAliDpX2/9DVZTt38eVfyf0A==
+ dependencies:
+ "@react-stately/collections" "^3.6.0"
+ "@react-stately/selection" "^3.12.0"
+ "@react-stately/utils" "^3.6.0"
+ "@react-types/shared" "^3.17.0"
+ "@swc/helpers" "^0.4.14"
+
+"@react-stately/utils@^3.6.0":
+ version "3.6.0"
+ resolved "https://registry.yarnpkg.com/@react-stately/utils/-/utils-3.6.0.tgz#f273e7fcb348254347d2e88c8f0c45571060c207"
+ integrity sha512-rptF7iUWDrquaYvBAS4QQhOBQyLBncDeHF03WnHXAxnuPJXNcr9cXJtjJPGCs036ZB8Q2hc9BGG5wNyMkF5v+Q==
+ dependencies:
+ "@swc/helpers" "^0.4.14"
+
+"@react-stately/virtualizer@^3.5.0":
+ version "3.5.0"
+ resolved "https://registry.yarnpkg.com/@react-stately/virtualizer/-/virtualizer-3.5.0.tgz#3aa2595757b4120339aadb2c43853137e3742fdc"
+ integrity sha512-Jjk7V2T9uJ2+1EaVY+v1SJYeKb9dvZKayP35bcUq8/y9+I41kNE+qmgnkr5/SVzkExu4YeZTFxtuOm4l8UX5jg==
+ dependencies:
+ "@react-aria/utils" "^3.15.0"
+ "@react-types/shared" "^3.17.0"
+ "@swc/helpers" "^0.4.14"
+
+"@react-types/breadcrumbs@^3.5.0":
+ version "3.5.0"
+ resolved "https://registry.yarnpkg.com/@react-types/breadcrumbs/-/breadcrumbs-3.5.0.tgz#f9b600e5a0e6fbbc17d2a771a2c60d436eb60409"
+ integrity sha512-Nd95NnLhrSw8Eaf2nsgAz23BT/ww6m2d2GS/gT7NxkCcqWK8Dpv8+e+JSbO7CUkHJApm76FtRz16JCdltj4CeQ==
+ dependencies:
+ "@react-types/link" "^3.4.0"
+ "@react-types/shared" "^3.17.0"
+
+"@react-types/button@^3.7.1":
+ version "3.7.1"
+ resolved "https://registry.yarnpkg.com/@react-types/button/-/button-3.7.1.tgz#a51d2617a593d9862c72306b3bf0c4b5bff4793d"
+ integrity sha512-c+8xjmqWSjI5/mEHVLbVSp0eh/z2UU8Ga+wqjbEUZUjm8uopYj1PaCAwZ7YgcAebyQrL/21GyjK6tFHKzuUdJQ==
+ dependencies:
+ "@react-types/shared" "^3.17.0"
+
+"@react-types/calendar@^3.1.0":
+ version "3.1.0"
+ resolved "https://registry.yarnpkg.com/@react-types/calendar/-/calendar-3.1.0.tgz#cee348fbc502884237b86c1b4ed22853d9b6ea3c"
+ integrity sha512-6VKBxG27cLKti8Ik+T2N1y6FqJSgIXuQPMehOA1ASqPQLtnRBEoSgLjuN5qj7RTWgmdTvQmofqVznVFoUe5ozQ==
+ dependencies:
+ "@internationalized/date" "^3.1.0"
+ "@react-types/shared" "^3.17.0"
+
+"@react-types/checkbox@^3.4.2":
+ version "3.4.2"
+ resolved "https://registry.yarnpkg.com/@react-types/checkbox/-/checkbox-3.4.2.tgz#6089e9ef2d023415a5f871e312f30bae54143ba5"
+ integrity sha512-/NWFCEQLvVgo25afPt2jv4syxYvZeY/D/n2Y92IGtoNV4akdz4AuQ65+1X+JOhQc/ZbAblWw5fFWUZoQs3CLZg==
+ dependencies:
+ "@react-types/shared" "^3.17.0"
+
+"@react-types/combobox@^3.6.0":
+ version "3.6.0"
+ resolved "https://registry.yarnpkg.com/@react-types/combobox/-/combobox-3.6.0.tgz#a78e3d0e73723053d49e15b6660883f755734c05"
+ integrity sha512-tfZtZ12Kf2bKt3EcFKWcUxrLNc61Y1CGynsOQ/KvHTFwlLTTtKnt/wWuf4kxdqlTK7dDqJzWRGWKlWx6eKlx3w==
+ dependencies:
+ "@react-types/shared" "^3.17.0"
+
+"@react-types/datepicker@^3.2.0":
+ version "3.2.0"
+ resolved "https://registry.yarnpkg.com/@react-types/datepicker/-/datepicker-3.2.0.tgz#a8b7b5da5160774882e73aa175c0fc76ecd82ac9"
+ integrity sha512-wcxLI6aW+r6nO2bsypxMIaWJHG5YYAD7WtJmhR5n5GK5juUCu/hzKBhdwxE1qtD3kMvIKTDJkMXLVNGmJP0mFw==
+ dependencies:
+ "@internationalized/date" "^3.1.0"
+ "@react-types/overlays" "^3.7.0"
+ "@react-types/shared" "^3.17.0"
+
+"@react-types/dialog@^3.5.0":
+ version "3.5.0"
+ resolved "https://registry.yarnpkg.com/@react-types/dialog/-/dialog-3.5.0.tgz#51d942ba377ac1483c90db69e84bfdc3d5f65129"
+ integrity sha512-QsHqAK8zE4QSCQTJcRm/e6vweSE8S62o4GGvm+e+crMro/doA4it1Y4udE94Yy3WyDQEMFxyfd2P1Q6bI9JuyQ==
+ dependencies:
+ "@react-types/overlays" "^3.7.0"
+ "@react-types/shared" "^3.17.0"
+
+"@react-types/grid@^3.1.6":
+ version "3.1.6"
+ resolved "https://registry.yarnpkg.com/@react-types/grid/-/grid-3.1.6.tgz#751828e3cfc6bde41e03c3217f0371166f206674"
+ integrity sha512-j6dO5KgkuIbIhEZYSxd86ZomohCyv3VNQhY2qBHlRoxZs0976komauEOjOpMOu0PxwsFGUgUFqlKOtc34f1SHQ==
+ dependencies:
+ "@react-types/shared" "^3.17.0"
+
+"@react-types/label@^3.7.2":
+ version "3.7.2"
+ resolved "https://registry.yarnpkg.com/@react-types/label/-/label-3.7.2.tgz#593bf1171098134cd5dbb6c66bf1063e552d67ea"
+ integrity sha512-UlsIvxQjBMl9WwJw1bYoJMwiPvYwRsSLl2yoeeGfGr6IaYn5T/2kzBhDLwe5cpKrmi4Mehn1rbReFLGITOy8+g==
+ dependencies:
+ "@react-types/shared" "^3.17.0"
+
+"@react-types/link@^3.4.0":
+ version "3.4.0"
+ resolved "https://registry.yarnpkg.com/@react-types/link/-/link-3.4.0.tgz#1c549ffbc594e49726a4c4e912bea36718feb4cf"
+ integrity sha512-eImWLzxwzSmjOLa0Ow3HJaguyDCz98191v2pb7nT/zPzGDnhHhDjxB023hrXVUoCbsWrCb5QLp91Ts+VjiCyTA==
+ dependencies:
+ "@react-aria/interactions" "^3.14.0"
+ "@react-types/shared" "^3.17.0"
+
+"@react-types/listbox@^3.4.0":
+ version "3.4.0"
+ resolved "https://registry.yarnpkg.com/@react-types/listbox/-/listbox-3.4.0.tgz#b1fdad5acf8ffd524a9baf31015ff290414f35a0"
+ integrity sha512-OvHaX4EBRHxKrfFItdJXjY7dYomzejqJ87P5fTL1l1TbDX8gvEP014S3cI+VLQq+EsXeTZ8E/sx0tFUo7ilchA==
+ dependencies:
+ "@react-types/shared" "^3.17.0"
+
+"@react-types/menu@^3.8.0":
+ version "3.8.0"
+ resolved "https://registry.yarnpkg.com/@react-types/menu/-/menu-3.8.0.tgz#578d4697caa838e72b2652a81f1241a9cb7815cc"
+ integrity sha512-1nwGUwKNHJf60vOsg7p48NPQIzMsSprxw8VXfStr8eE5uU4vvKfVNQNUgvpkRmHmel8BrYdh1WnERXJJ3yKUgQ==
+ dependencies:
+ "@react-types/overlays" "^3.7.0"
+ "@react-types/shared" "^3.17.0"
+
+"@react-types/meter@^3.3.0":
+ version "3.3.0"
+ resolved "https://registry.yarnpkg.com/@react-types/meter/-/meter-3.3.0.tgz#93545ce8fbaf734724aa32a4443cb78662937ee1"
+ integrity sha512-/IAHquSb+tC/YjcXdcYinFTb7puakkQWzNwS4lkhisIoZ0K0Ym/3fat/nzjgG9s2+sqQrW6f3Ndp9GCfSzvHLg==
+ dependencies:
+ "@react-types/progress" "^3.3.0"
+ "@react-types/shared" "^3.17.0"
+
+"@react-types/numberfield@^3.4.0":
+ version "3.4.0"
+ resolved "https://registry.yarnpkg.com/@react-types/numberfield/-/numberfield-3.4.0.tgz#ecf29f515e0ebafa2145e275018bd04cd2821759"
+ integrity sha512-3kKkCFJ9cqCHuoz2BWy3DZLg6SQzqjzbO3DvNTrORd2k7bsI0Ydlfsz1rkCU53GStqovgopX4jo6EZLeRfv05Q==
+ dependencies:
+ "@react-types/shared" "^3.17.0"
+
+"@react-types/overlays@^3.7.0":
+ version "3.7.0"
+ resolved "https://registry.yarnpkg.com/@react-types/overlays/-/overlays-3.7.0.tgz#22dcd1bbc1f8e17b0d7a757414c50ce580ae0d26"
+ integrity sha512-LstucncZ8dM+xJYEijI1V6jGH20w5XO/T60r7JTrgQElMC86phPeoWkMTN4c2lsRikybolDbvXL6XsF76YO56A==
+ dependencies:
+ "@react-types/shared" "^3.17.0"
+
+"@react-types/progress@^3.3.0":
+ version "3.3.0"
+ resolved "https://registry.yarnpkg.com/@react-types/progress/-/progress-3.3.0.tgz#80e79e00931ae796fdc679ff7deb95cc61af8a19"
+ integrity sha512-k4xivWiEYogsROLyNqVDVjl33rm+X9RKNbKQXg5pqjGikaC8T9hmIwE4tJr26XkMIIvQS6duEBCcuQN/U1+dGQ==
+ dependencies:
+ "@react-types/shared" "^3.17.0"
+
+"@react-types/radio@^3.4.0":
+ version "3.4.0"
+ resolved "https://registry.yarnpkg.com/@react-types/radio/-/radio-3.4.0.tgz#0bfc2bae6b5ac0b57636efdf8d2c90e5826e7c82"
+ integrity sha512-klgEU+987xVUCRqBoxXJiPJvy0upfo76dFnK5eF7U7BzcxhuiFeLDUcqUHtK92Cy5QOiDAF2ML0vUYGIabKMPA==
+ dependencies:
+ "@react-types/shared" "^3.17.0"
+
+"@react-types/searchfield@^3.4.0":
+ version "3.4.0"
+ resolved "https://registry.yarnpkg.com/@react-types/searchfield/-/searchfield-3.4.0.tgz#42bd161af0d75130b7f1417e8b43237a9b1cc5a1"
+ integrity sha512-rYupNbyBAjycx6SXCALjINj/nOx7lIq9f4Dk1xo1dd8X6yYU0EF4WlahNua7UV8JC5oYlxN40G7yi4lAS+CdWQ==
+ dependencies:
+ "@react-types/shared" "^3.17.0"
+ "@react-types/textfield" "^3.7.0"
+
+"@react-types/select@^3.7.0":
+ version "3.7.0"
+ resolved "https://registry.yarnpkg.com/@react-types/select/-/select-3.7.0.tgz#7d1840525d345625ac6ad69005b192930ca5abec"
+ integrity sha512-BaynMuW0dQ9ModFzW291+3n1D9bwKSFh03g3+1PvhRcBg1EXq1vFyfFBj4uuBymI0T7oCbnjGh19xo0vKIYRrA==
+ dependencies:
+ "@react-types/shared" "^3.17.0"
+
+"@react-types/shared@^3.17.0":
+ version "3.17.0"
+ resolved "https://registry.yarnpkg.com/@react-types/shared/-/shared-3.17.0.tgz#b7c5e318664aadb315d305a27dd2a209d1837d95"
+ integrity sha512-1SNZ/RhVrrQ1e6yE0bPV7d5Sfp+Uv0dfUEhwF9MAu2v5msu7AMewnsiojKNA0QA6Ing1gpDLjHCxtayQfuxqcg==
+
+"@react-types/slider@^3.4.0":
+ version "3.4.0"
+ resolved "https://registry.yarnpkg.com/@react-types/slider/-/slider-3.4.0.tgz#3a6e68a0cbe6a9741395eeebb83ca15fbf0893bd"
+ integrity sha512-Kj+B6njpm4ltiu3gCBOPRnbzllV21IVr0bCQdNnWcf5DX8aN4VdI8EFkTz0DSwMm2WPCwZop0MDWDoRwXJK1ng==
+ dependencies:
+ "@react-types/shared" "^3.17.0"
+
+"@react-types/switch@^3.3.0":
+ version "3.3.0"
+ resolved "https://registry.yarnpkg.com/@react-types/switch/-/switch-3.3.0.tgz#80172b8960e36ac1b3c19c69a479af407cffc306"
+ integrity sha512-6h+s//PwWf7/WJQOZKT6k1vdOQCcvPmMZW333AqyxtZX8WV8Q0illgcLMYo5qxT3IWsjYNuPIqMCY+tRbSeA2Q==
+ dependencies:
+ "@react-types/checkbox" "^3.4.2"
+ "@react-types/shared" "^3.17.0"
+
+"@react-types/table@^3.5.0":
+ version "3.5.0"
+ resolved "https://registry.yarnpkg.com/@react-types/table/-/table-3.5.0.tgz#25f5576c56e1678367fe687e3a66f9a74b9ff472"
+ integrity sha512-/Mvn1MQbdnk7i6ivam8kdIh2PKF9GD3A7KC8v1E4JNAgsbOzOkt5JC4PMc1EtAK2eppMEKTN+B84oHKMl1F8Hg==
+ dependencies:
+ "@react-types/grid" "^3.1.6"
+ "@react-types/shared" "^3.17.0"
+
+"@react-types/tabs@^3.2.0":
+ version "3.2.0"
+ resolved "https://registry.yarnpkg.com/@react-types/tabs/-/tabs-3.2.0.tgz#44f9539b003a42ed547ec1625c10247d772c0146"
+ integrity sha512-rOQm+JDYcGV+HE/EQ23vr6J3tqvXjFiDA107rU7n4B4mNjJ46k5gOhPdGTosv6wr1+Tp7XD5XMaFfqk+O0/ZZw==
+ dependencies:
+ "@react-types/shared" "^3.17.0"
+
+"@react-types/textfield@^3.7.0":
+ version "3.7.0"
+ resolved "https://registry.yarnpkg.com/@react-types/textfield/-/textfield-3.7.0.tgz#c8e118be03e82a87d2612937accaae903090cdb1"
+ integrity sha512-4Rqld8VZG324hecw6bqGY2gta1gm5sDhO48nyChfdmjVlFHXLDKazAcrgP76uSmUI6tffUPj3eYxQyTp5uLhyQ==
+ dependencies:
+ "@react-types/shared" "^3.17.0"
+
+"@react-types/tooltip@^3.3.0":
+ version "3.3.0"
+ resolved "https://registry.yarnpkg.com/@react-types/tooltip/-/tooltip-3.3.0.tgz#676f50860a3cd4317b55581533f749d867becf24"
+ integrity sha512-TMaKkjYbysZbMnY8zjI2Djh8QMHvB8LoN9EjOZX++3ZsO74CeCeOoGARh6+4c0Bu5rg4BXhNyi+y1JL3jtUEBg==
+ dependencies:
+ "@react-types/overlays" "^3.7.0"
+ "@react-types/shared" "^3.17.0"
"@rushstack/eslint-patch@^1.1.3":
version "1.2.0"
@@ -3434,7 +3471,7 @@
lodash "^4.17.4"
read-pkg-up "^7.0.0"
-"@sqltools/formatter@^1.2.2":
+"@sqltools/formatter@^1.2.5":
version "1.2.5"
resolved "https://registry.yarnpkg.com/@sqltools/formatter/-/formatter-1.2.5.tgz#3abc203c79b8c3e90fd6c156a0c62d5403520e12"
integrity sha512-Uy0+khmZqUrUGm5dmMqVlnvufZRSK0FbYzVgp0UMstm+F5+W2/jnEEQyc9vo1ZR/E5ZI/B1WjjoTqBqwJL6Krw==
@@ -3576,22 +3613,22 @@
dependencies:
mini-svg-data-uri "^1.2.3"
-"@tailwindcss/typography@0.5.8":
- version "0.5.8"
- resolved "https://registry.yarnpkg.com/@tailwindcss/typography/-/typography-0.5.8.tgz#8fb31db5ab0590be6dfa062b1535ac86ad9d12bf"
- integrity sha512-xGQEp8KXN8Sd8m6R4xYmwxghmswrd0cPnNI2Lc6fmrC3OojysTBJJGSIVwPV56q4t6THFUK3HJ0EaWwpglSxWw==
+"@tailwindcss/typography@0.5.9":
+ version "0.5.9"
+ resolved "https://registry.yarnpkg.com/@tailwindcss/typography/-/typography-0.5.9.tgz#027e4b0674929daaf7c921c900beee80dbad93e8"
+ integrity sha512-t8Sg3DyynFysV9f4JDOVISGsjazNb48AeIYQwcL+Bsq5uf4RYL75C1giZ43KISjeDGBaTN3Kxh7Xj/vRSMJUUg==
dependencies:
lodash.castarray "^4.4.0"
lodash.isplainobject "^4.0.6"
lodash.merge "^4.6.2"
postcss-selector-parser "6.0.10"
-"@tanem/react-nprogress@5.0.22":
- version "5.0.22"
- resolved "https://registry.yarnpkg.com/@tanem/react-nprogress/-/react-nprogress-5.0.22.tgz#31aff13de27ec27401acb8cc4a5976eb034616e6"
- integrity sha512-S73v6z7uD8wkCzKARDXn/AGEAVlL8IXI2/pqACRMnn3dTyfaLg2JLrZYtrfBcVaZXf5bgKSB+lK1ncKVN40pQQ==
+"@tanem/react-nprogress@5.0.30":
+ version "5.0.30"
+ resolved "https://registry.yarnpkg.com/@tanem/react-nprogress/-/react-nprogress-5.0.30.tgz#e3c256834e17925ecc903d05603a836e00743702"
+ integrity sha512-OBvlGfxWMyAGi6C9V6ZCdu5Kn9drxHZSg977TtF9hBpNtl+GY6lxOsbazkMIQua/xqaDe58Bs1kDTNzdwjIFEA==
dependencies:
- "@babel/runtime" "^7.20.6"
+ "@babel/runtime" "^7.20.13"
hoist-non-react-statics "^3.3.2"
"@tootallnate/once@1":
@@ -3746,14 +3783,23 @@
"@types/qs" "*"
"@types/range-parser" "*"
-"@types/express-session@1.17.5", "@types/express-session@^1.15.5":
- version "1.17.5"
- resolved "https://registry.yarnpkg.com/@types/express-session/-/express-session-1.17.5.tgz#13f48852b4aa60ff595835faeb4b4dda0ba0866e"
- integrity sha512-l0DhkvNVfyUPEEis8fcwbd46VptfA/jmMwHfob2TfDMf3HyPLiB9mKD71LXhz5TMUobODXPD27zXSwtFQLHm+w==
+"@types/express-serve-static-core@^4.17.33":
+ version "4.17.33"
+ resolved "https://registry.yarnpkg.com/@types/express-serve-static-core/-/express-serve-static-core-4.17.33.tgz#de35d30a9d637dc1450ad18dd583d75d5733d543"
+ integrity sha512-TPBqmR/HRYI3eC2E5hmiivIzv+bidAfXofM+sbonAGvyDhySGw9/PQZFt2BLOrjUUR++4eJVpx6KnLQK1Fk9tA==
+ dependencies:
+ "@types/node" "*"
+ "@types/qs" "*"
+ "@types/range-parser" "*"
+
+"@types/express-session@1.17.6", "@types/express-session@^1.15.5":
+ version "1.17.6"
+ resolved "https://registry.yarnpkg.com/@types/express-session/-/express-session-1.17.6.tgz#1c8881ba0dc836ffbf1071b2f020d60fcca0f08c"
+ integrity sha512-L6sB04HVA4HEZo1hDL65JXdZdBJtzZnCiw/P7MnO4w6746tJCNtXlHtzEASyI9ccn9zyOw6IbqQuhVa03VpO4w==
dependencies:
"@types/express" "*"
-"@types/express@*", "@types/express@4.17.15":
+"@types/express@*":
version "4.17.15"
resolved "https://registry.yarnpkg.com/@types/express/-/express-4.17.15.tgz#9290e983ec8b054b65a5abccb610411953d417ff"
integrity sha512-Yv0k4bXGOH+8a+7bELd2PqHQsuiANB+A8a4gnQrkRWzrkKlb6KHaVvyXhqs04sVW/OWlbPyYxRgYlIXLfrufMQ==
@@ -3763,6 +3809,16 @@
"@types/qs" "*"
"@types/serve-static" "*"
+"@types/express@4.17.17":
+ version "4.17.17"
+ resolved "https://registry.yarnpkg.com/@types/express/-/express-4.17.17.tgz#01d5437f6ef9cfa8668e616e13c2f2ac9a491ae4"
+ integrity sha512-Q4FmmuLGBG58btUnfS1c1r/NQdlp3DMfGDGig8WhfpA2YRUtEkxAjkZb0yvplJGYdF1fsQ81iMDcH24sSCNC/Q==
+ dependencies:
+ "@types/body-parser" "*"
+ "@types/express-serve-static-core" "^4.17.33"
+ "@types/qs" "*"
+ "@types/serve-static" "*"
+
"@types/fs-extra@^9.0.1":
version "9.0.13"
resolved "https://registry.yarnpkg.com/@types/fs-extra/-/fs-extra-9.0.13.tgz#7594fbae04fe7f1918ce8b3d213f74ff44ac1f45"
@@ -3913,10 +3969,10 @@
resolved "https://registry.yarnpkg.com/@types/range-parser/-/range-parser-1.2.4.tgz#cd667bcfdd025213aafb7ca5915a932590acdcdc"
integrity sha512-EEhsLsD6UsDM1yFhAvy0Cjr6VwmpMWqFBCb9w07wVugF7w9nfajxLuVmngTIpgS6svCnm6Vaw+MZhoDCKnOfsw==
-"@types/react-dom@18.0.10":
- version "18.0.10"
- resolved "https://registry.yarnpkg.com/@types/react-dom/-/react-dom-18.0.10.tgz#3b66dec56aa0f16a6cc26da9e9ca96c35c0b4352"
- integrity sha512-E42GW/JA4Qv15wQdqJq8DL4JhNpB3prJgjgapN3qJT9K2zO5IIAQh4VXvCEDupoqAwnz0cY4RlXeC/ajX5SFHg==
+"@types/react-dom@18.0.11":
+ version "18.0.11"
+ resolved "https://registry.yarnpkg.com/@types/react-dom/-/react-dom-18.0.11.tgz#321351c1459bc9ca3d216aefc8a167beec334e33"
+ integrity sha512-O38bPbI2CWtgw/OoQoY+BRelw7uysmXbWvw3nLWO21H1HSh+GOlqPuXshJfjmpNlKiiSDG9cc1JZAaMmVdcTlw==
dependencies:
"@types/react" "*"
@@ -3927,10 +3983,10 @@
dependencies:
"@types/react" "*"
-"@types/react@*", "@types/react@16 || 17 || 18", "@types/react@18.0.26":
- version "18.0.26"
- resolved "https://registry.yarnpkg.com/@types/react/-/react-18.0.26.tgz#8ad59fc01fef8eaf5c74f4ea392621749f0b7917"
- integrity sha512-hCR3PJQsAIXyxhTNSiDFY//LhnMZWpNNr5etoCqx/iUfGc5gXWtQR2Phl908jVR6uPXacojQWTg4qRpkxTuGug==
+"@types/react@*", "@types/react@16 || 17 || 18", "@types/react@18.0.28":
+ version "18.0.28"
+ resolved "https://registry.yarnpkg.com/@types/react/-/react-18.0.28.tgz#accaeb8b86f4908057ad629a26635fe641480065"
+ integrity sha512-RD0ivG1kEztNBdoAK7lekI9M+azSnitIn85h4iOiaLjaTrMjzslhaqCGaI4IyCJ1RljWiLCEu4jyrLLgqxBTew==
dependencies:
"@types/prop-types" "*"
"@types/scheduler" "*"
@@ -4025,22 +4081,33 @@
resolved "https://registry.yarnpkg.com/@types/yup/-/yup-0.29.14.tgz#754f1dccedcc66fc2bbe290c27f5323b407ceb00"
integrity sha512-Ynb/CjHhE/Xp/4bhHmQC4U1Ox+I2OpfRYF3dnNgQqn1cHa6LK3H1wJMNPT02tSVZA6FYuXE2ITORfbnb6zBCSA==
-"@typescript-eslint/eslint-plugin@5.48.0":
- version "5.48.0"
- resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.48.0.tgz#54f8368d080eb384a455f60c2ee044e948a8ce67"
- integrity sha512-SVLafp0NXpoJY7ut6VFVUU9I+YeFsDzeQwtK0WZ+xbRN3mtxJ08je+6Oi2N89qDn087COdO0u3blKZNv9VetRQ==
+"@typescript-eslint/eslint-plugin@5.54.0":
+ version "5.54.0"
+ resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.54.0.tgz#2c821ad81b2c786d142279a8292090f77d1881f4"
+ integrity sha512-+hSN9BdSr629RF02d7mMtXhAJvDTyCbprNYJKrXETlul/Aml6YZwd90XioVbjejQeHbb3R8Dg0CkRgoJDxo8aw==
dependencies:
- "@typescript-eslint/scope-manager" "5.48.0"
- "@typescript-eslint/type-utils" "5.48.0"
- "@typescript-eslint/utils" "5.48.0"
+ "@typescript-eslint/scope-manager" "5.54.0"
+ "@typescript-eslint/type-utils" "5.54.0"
+ "@typescript-eslint/utils" "5.54.0"
debug "^4.3.4"
+ grapheme-splitter "^1.0.4"
ignore "^5.2.0"
natural-compare-lite "^1.4.0"
regexpp "^3.2.0"
semver "^7.3.7"
tsutils "^3.21.0"
-"@typescript-eslint/parser@5.48.0", "@typescript-eslint/parser@^5.21.0":
+"@typescript-eslint/parser@5.54.0":
+ version "5.54.0"
+ resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-5.54.0.tgz#def186eb1b1dbd0439df0dacc44fb6d8d5c417fe"
+ integrity sha512-aAVL3Mu2qTi+h/r04WI/5PfNWvO6pdhpeMRWk9R7rEV4mwJNzoWf5CCU5vDKBsPIFQFjEq1xg7XBI2rjiMXQbQ==
+ dependencies:
+ "@typescript-eslint/scope-manager" "5.54.0"
+ "@typescript-eslint/types" "5.54.0"
+ "@typescript-eslint/typescript-estree" "5.54.0"
+ debug "^4.3.4"
+
+"@typescript-eslint/parser@^5.21.0":
version "5.48.0"
resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-5.48.0.tgz#02803355b23884a83e543755349809a50b7ed9ba"
integrity sha512-1mxNA8qfgxX8kBvRDIHEzrRGrKHQfQlbW6iHyfHYS0Q4X1af+S6mkLNtgCOsGVl8+/LUPrqdHMssAemkrQ01qg==
@@ -4058,22 +4125,53 @@
"@typescript-eslint/types" "5.48.0"
"@typescript-eslint/visitor-keys" "5.48.0"
-"@typescript-eslint/type-utils@5.48.0":
- version "5.48.0"
- resolved "https://registry.yarnpkg.com/@typescript-eslint/type-utils/-/type-utils-5.48.0.tgz#40496dccfdc2daa14a565f8be80ad1ae3882d6d6"
- integrity sha512-vbtPO5sJyFjtHkGlGK4Sthmta0Bbls4Onv0bEqOGm7hP9h8UpRsHJwsrCiWtCUndTRNQO/qe6Ijz9rnT/DB+7g==
+"@typescript-eslint/scope-manager@5.54.0":
+ version "5.54.0"
+ resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-5.54.0.tgz#74b28ac9a3fc8166f04e806c957adb8c1fd00536"
+ integrity sha512-VTPYNZ7vaWtYna9M4oD42zENOBrb+ZYyCNdFs949GcN8Miwn37b8b7eMj+EZaq7VK9fx0Jd+JhmkhjFhvnovhg==
dependencies:
- "@typescript-eslint/typescript-estree" "5.48.0"
- "@typescript-eslint/utils" "5.48.0"
+ "@typescript-eslint/types" "5.54.0"
+ "@typescript-eslint/visitor-keys" "5.54.0"
+
+"@typescript-eslint/type-utils@5.54.0":
+ version "5.54.0"
+ resolved "https://registry.yarnpkg.com/@typescript-eslint/type-utils/-/type-utils-5.54.0.tgz#390717216eb61393a0cad2995da154b613ba7b26"
+ integrity sha512-WI+WMJ8+oS+LyflqsD4nlXMsVdzTMYTxl16myXPaCXnSgc7LWwMsjxQFZCK/rVmTZ3FN71Ct78ehO9bRC7erYQ==
+ dependencies:
+ "@typescript-eslint/typescript-estree" "5.54.0"
+ "@typescript-eslint/utils" "5.54.0"
debug "^4.3.4"
tsutils "^3.21.0"
+"@typescript-eslint/types@5.45.0":
+ version "5.45.0"
+ resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-5.45.0.tgz#794760b9037ee4154c09549ef5a96599621109c5"
+ integrity sha512-QQij+u/vgskA66azc9dCmx+rev79PzX8uDHpsqSjEFtfF2gBUTRCpvYMh2gw2ghkJabNkPlSUCimsyBEQZd1DA==
+
"@typescript-eslint/types@5.48.0":
version "5.48.0"
resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-5.48.0.tgz#d725da8dfcff320aab2ac6f65c97b0df30058449"
integrity sha512-UTe67B0Ypius0fnEE518NB2N8gGutIlTojeTg4nt0GQvikReVkurqxd2LvYa9q9M5MQ6rtpNyWTBxdscw40Xhw==
-"@typescript-eslint/typescript-estree@5.48.0", "@typescript-eslint/typescript-estree@^5.9.1":
+"@typescript-eslint/types@5.54.0":
+ version "5.54.0"
+ resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-5.54.0.tgz#7d519df01f50739254d89378e0dcac504cab2740"
+ integrity sha512-nExy+fDCBEgqblasfeE3aQ3NuafBUxZxgxXcYfzYRZFHdVvk5q60KhCSkG0noHgHRo/xQ/BOzURLZAafFpTkmQ==
+
+"@typescript-eslint/typescript-estree@5.45.0":
+ version "5.45.0"
+ resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-5.45.0.tgz#f70a0d646d7f38c0dfd6936a5e171a77f1e5291d"
+ integrity sha512-maRhLGSzqUpFcZgXxg1qc/+H0bT36lHK4APhp0AEUVrpSwXiRAomm/JGjSG+kNUio5kAa3uekCYu/47cnGn5EQ==
+ dependencies:
+ "@typescript-eslint/types" "5.45.0"
+ "@typescript-eslint/visitor-keys" "5.45.0"
+ debug "^4.3.4"
+ globby "^11.1.0"
+ is-glob "^4.0.3"
+ semver "^7.3.7"
+ tsutils "^3.21.0"
+
+"@typescript-eslint/typescript-estree@5.48.0":
version "5.48.0"
resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-5.48.0.tgz#a7f04bccb001003405bb5452d43953a382c2fac2"
integrity sha512-7pjd94vvIjI1zTz6aq/5wwE/YrfIyEPLtGJmRfyNR9NYIW+rOvzzUv3Cmq2hRKpvt6e9vpvPUQ7puzX7VSmsEw==
@@ -4086,20 +4184,41 @@
semver "^7.3.7"
tsutils "^3.21.0"
-"@typescript-eslint/utils@5.48.0":
- version "5.48.0"
- resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-5.48.0.tgz#eee926af2733f7156ad8d15e51791e42ce300273"
- integrity sha512-x2jrMcPaMfsHRRIkL+x96++xdzvrdBCnYRd5QiW5Wgo1OB4kDYPbC1XjWP/TNqlfK93K/lUL92erq5zPLgFScQ==
+"@typescript-eslint/typescript-estree@5.54.0":
+ version "5.54.0"
+ resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-5.54.0.tgz#f6f3440cabee8a43a0b25fa498213ebb61fdfe99"
+ integrity sha512-X2rJG97Wj/VRo5YxJ8Qx26Zqf0RRKsVHd4sav8NElhbZzhpBI8jU54i6hfo9eheumj4oO4dcRN1B/zIVEqR/MQ==
+ dependencies:
+ "@typescript-eslint/types" "5.54.0"
+ "@typescript-eslint/visitor-keys" "5.54.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.54.0":
+ version "5.54.0"
+ resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-5.54.0.tgz#3db758aae078be7b54b8ea8ea4537ff6cd3fbc21"
+ integrity sha512-cuwm8D/Z/7AuyAeJ+T0r4WZmlnlxQ8wt7C7fLpFlKMR+dY6QO79Cq1WpJhvZbMA4ZeZGHiRWnht7ZJ8qkdAunw==
dependencies:
"@types/json-schema" "^7.0.9"
"@types/semver" "^7.3.12"
- "@typescript-eslint/scope-manager" "5.48.0"
- "@typescript-eslint/types" "5.48.0"
- "@typescript-eslint/typescript-estree" "5.48.0"
+ "@typescript-eslint/scope-manager" "5.54.0"
+ "@typescript-eslint/types" "5.54.0"
+ "@typescript-eslint/typescript-estree" "5.54.0"
eslint-scope "^5.1.1"
eslint-utils "^3.0.0"
semver "^7.3.7"
+"@typescript-eslint/visitor-keys@5.45.0":
+ version "5.45.0"
+ resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-5.45.0.tgz#e0d160e9e7fdb7f8da697a5b78e7a14a22a70528"
+ integrity sha512-jc6Eccbn2RtQPr1s7th6jJWQHBHI6GBVQkCHoJFQ5UreaKm59Vxw+ynQUPPY2u2Amquc+7tmEoC2G52ApsGNNg==
+ dependencies:
+ "@typescript-eslint/types" "5.45.0"
+ eslint-visitor-keys "^3.3.0"
+
"@typescript-eslint/visitor-keys@5.48.0":
version "5.48.0"
resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-5.48.0.tgz#4446d5e7f6cadde7140390c0e284c8702d944904"
@@ -4108,6 +4227,14 @@
"@typescript-eslint/types" "5.48.0"
eslint-visitor-keys "^3.3.0"
+"@typescript-eslint/visitor-keys@5.54.0":
+ version "5.54.0"
+ resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-5.54.0.tgz#846878afbf0cd67c19cfa8d75947383d4490db8f"
+ integrity sha512-xu4wT7aRCakGINTLGeyGqDn+78BwFlggwBjnHa1ar/KaGagnmwLYmlrXIrgAaQ3AE1Vd6nLfKASm7LrFHNbKGA==
+ dependencies:
+ "@typescript-eslint/types" "5.54.0"
+ eslint-visitor-keys "^3.3.0"
+
JSONStream@^1.0.4:
version "1.3.5"
resolved "https://registry.yarnpkg.com/JSONStream/-/JSONStream-1.3.5.tgz#3208c1f08d3a4d99261ab64f92302bc15e111ca0"
@@ -4129,7 +4256,12 @@ accepts@~1.3.8:
mime-types "~2.1.34"
negotiator "0.6.3"
-ace-builds@1.14.0, ace-builds@^1.4.14:
+ace-builds@1.15.2:
+ version "1.15.2"
+ resolved "https://registry.yarnpkg.com/ace-builds/-/ace-builds-1.15.2.tgz#e9be5c4cbc835894e1202ddc8f7a1f0df049f321"
+ integrity sha512-ANXWnANcB4XgC9tyCtG8EXjeDdDY6iJuPQs+pDiZF/2chQMU7LTOBgw9xJdeRzRyNX5+KGZKwgB80XyY2n5QvA==
+
+ace-builds@^1.4.14:
version "1.14.0"
resolved "https://registry.yarnpkg.com/ace-builds/-/ace-builds-1.14.0.tgz#85a6733b4fa17b0abc3dbfe38cd8d823cad79716"
integrity sha512-3q8LvawomApRCt4cC0OzxVjDsZ609lDbm8l0Xl9uqG06dKEq4RT0YXLUyk7J2SxmqIp5YXzZNw767Dr8GKUruw==
@@ -4297,7 +4429,7 @@ anymatch@~3.1.2:
normalize-path "^3.0.0"
picomatch "^2.0.4"
-app-root-path@^3.0.0:
+app-root-path@^3.1.0:
version "3.1.0"
resolved "https://registry.yarnpkg.com/app-root-path/-/app-root-path-3.1.0.tgz#5971a2fc12ba170369a7a1ef018c71e6e47c2e86"
integrity sha512-biN3PwB2gUtjaYy/isrU3aNWI5w+fAfvHkSvCKeQGxhmYpwKFUxudR3Yya+KqVRHBmEDYh+/lTozYCFbmzX4nA==
@@ -4373,6 +4505,13 @@ aria-query@^4.2.2:
"@babel/runtime" "^7.10.2"
"@babel/runtime-corejs3" "^7.10.2"
+aria-query@^5.1.3:
+ version "5.1.3"
+ resolved "https://registry.yarnpkg.com/aria-query/-/aria-query-5.1.3.tgz#19db27cd101152773631396f7a95a3b58c22c35e"
+ integrity sha512-R5iJ5lkuHybztUfuOAznmboyjWq8O6sqNqtK7CLOqdydi54VNbORp49mb14KbWgG1QD3JFO9hJdZ+y4KutfdOQ==
+ dependencies:
+ deep-equal "^2.0.5"
+
array-differ@^3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/array-differ/-/array-differ-3.0.0.tgz#3cbb3d0f316810eafcc47624734237d6aee4ae6b"
@@ -4514,6 +4653,11 @@ autoprefixer@10.4.13:
picocolors "^1.0.0"
postcss-value-parser "^4.2.0"
+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==
+
aws-sign2@~0.7.0:
version "0.7.0"
resolved "https://registry.yarnpkg.com/aws-sign2/-/aws-sign2-0.7.0.tgz#b46e890934a9591f2d2f6f86d7e6a9f1b3fe76a8"
@@ -4529,15 +4673,20 @@ axe-core@^4.4.3:
resolved "https://registry.yarnpkg.com/axe-core/-/axe-core-4.6.1.tgz#79cccdee3e3ab61a8f42c458d4123a6768e6fbce"
integrity sha512-lCZN5XRuOnpG4bpMq8v0khrWtUOn+i8lZSb6wHZH56ZfbIEv6XwJV84AAueh9/zi7qPVJ/E4yz6fmsiyOmXR4w==
+axe-core@^4.6.2:
+ version "4.6.3"
+ resolved "https://registry.yarnpkg.com/axe-core/-/axe-core-4.6.3.tgz#fc0db6fdb65cc7a80ccf85286d91d64ababa3ece"
+ integrity sha512-/BQzOX780JhsxDnPpH4ZiyrJAzcd8AfzFPkv+89veFSr1rcMjuq2JDCwypKaPeB6ljHp9KjXhPpjgCvQlWYuqg==
+
axios-rate-limit@1.3.0:
version "1.3.0"
resolved "https://registry.yarnpkg.com/axios-rate-limit/-/axios-rate-limit-1.3.0.tgz#03241d24c231c47432dab6e8234cfde819253c2e"
integrity sha512-cKR5wTbU/CeeyF1xVl5hl6FlYsmzDVqxlN4rGtfO5x7J83UxKDckudsW0yW21/ZJRcO0Qrfm3fUFbhEbWTLayw==
-axios@1.2.2:
- version "1.2.2"
- resolved "https://registry.yarnpkg.com/axios/-/axios-1.2.2.tgz#72681724c6e6a43a9fea860fc558127dbe32f9f1"
- integrity sha512-bz/J4gS2S3I7mpN/YZfGFTqhXTYzRho8Ay38w2otuuDR322KzFIWm/4W2K6gIwvWaws5n+mnb7D1lN9uD+QH6Q==
+axios@1.3.4:
+ version "1.3.4"
+ resolved "https://registry.yarnpkg.com/axios/-/axios-1.3.4.tgz#f5760cefd9cfb51fd2481acf88c05f67c4523024"
+ integrity sha512-toYm+Bsyl6VC5wSkfkbbNB6ROv7KY93PEBBL6xyDczaIHasAiv4wPqQ/c4RjoQzipxRD2W5g21cOqQulZ7rHwQ==
dependencies:
follow-redirects "^1.15.0"
form-data "^4.0.0"
@@ -4548,6 +4697,13 @@ axobject-query@^2.2.0:
resolved "https://registry.yarnpkg.com/axobject-query/-/axobject-query-2.2.0.tgz#943d47e10c0b704aa42275e20edf3722648989be"
integrity sha512-Td525n+iPOOyUQIeBfcASuG6uJsDOITl7Mds5gFyerkWiX7qhUTdYUBlSgNMyVqtSJqwpt1kXGLdUt6SykLMRA==
+axobject-query@^3.1.1:
+ version "3.1.1"
+ resolved "https://registry.yarnpkg.com/axobject-query/-/axobject-query-3.1.1.tgz#3b6e5c6d4e43ca7ba51c5babf99d22a9c68485e1"
+ integrity sha512-goKlv8DZrK9hUh975fnHzhNIO4jUnFCfv/dszV5VwUGDFjI6vQ2VwoyjYjYNEbBE8AH87TduWP5uyDR1D+Iteg==
+ dependencies:
+ deep-equal "^2.0.5"
+
babel-plugin-emotion@^10.0.27:
version "10.2.2"
resolved "https://registry.yarnpkg.com/babel-plugin-emotion/-/babel-plugin-emotion-10.2.2.tgz#a1fe3503cff80abfd0bdda14abd2e8e57a79d17d"
@@ -5323,7 +5479,27 @@ commander@^9.0.0, commander@^9.4.1:
resolved "https://registry.yarnpkg.com/commander/-/commander-9.4.1.tgz#d1dd8f2ce6faf93147295c0df13c7c21141cfbdd"
integrity sha512-5EEkTNyHNGFPD2H+c/dXXfQZYa/scCKasxWcXJaWnNJ99pnQN9Vnmqow+p+PlFPE63Q6mThaZws1T+HxfpgtPw==
-commitizen@4.2.6, commitizen@^4.0.3:
+commitizen@4.3.0:
+ version "4.3.0"
+ resolved "https://registry.yarnpkg.com/commitizen/-/commitizen-4.3.0.tgz#0d056c542a2d2b1f9b9aba981aa32575b2849924"
+ integrity sha512-H0iNtClNEhT0fotHvGV3E9tDejDeS04sN1veIebsKYGMuGscFaswRoYJKmT3eW85eIJAs0F28bG2+a/9wCOfPw==
+ dependencies:
+ cachedir "2.3.0"
+ cz-conventional-changelog "3.3.0"
+ dedent "0.7.0"
+ detect-indent "6.1.0"
+ find-node-modules "^2.1.2"
+ find-root "1.1.0"
+ fs-extra "9.1.0"
+ glob "7.2.3"
+ inquirer "8.2.5"
+ is-utf8 "^0.2.1"
+ lodash "4.17.21"
+ minimist "1.2.7"
+ strip-bom "4.0.0"
+ strip-json-comments "3.1.1"
+
+commitizen@^4.0.3:
version "4.2.6"
resolved "https://registry.yarnpkg.com/commitizen/-/commitizen-4.2.6.tgz#c35af39e1cb5fc2de88511df802da4344dc3ca80"
integrity sha512-RyTM+EiD9GO01DJUn9MRRAet3XUHGfoUZoksLfr+1ym1Xt2q5EYJs9Fg2BtKSb5Mo53i0BtMBmWMHQXVlZ/L9w==
@@ -5607,18 +5783,17 @@ create-require@^1.1.0:
resolved "https://registry.yarnpkg.com/create-require/-/create-require-1.1.1.tgz#c1d7e8f1e5f6cfc9ff65f9cd352d37348756c333"
integrity sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==
-cron-parser@^3.5.0:
- version "3.5.0"
- resolved "https://registry.yarnpkg.com/cron-parser/-/cron-parser-3.5.0.tgz#b1a9da9514c0310aa7ef99c2f3f1d0f8c235257c"
- integrity sha512-wyVZtbRs6qDfFd8ap457w3XVntdvqcwBGxBoTvJQH9KGVKL/fB+h2k3C8AqiVxvUQKN1Ps/Ns46CNViOpVDhfQ==
+cron-parser@^4.2.0:
+ version "4.7.1"
+ resolved "https://registry.yarnpkg.com/cron-parser/-/cron-parser-4.7.1.tgz#1e325a6a18e797a634ada1e2599ece0b6b5ed177"
+ integrity sha512-WguFaoQ0hQ61SgsCZLHUcNbAvlK0lypKXu62ARguefYmjzaOXIVRNrAmyXzabTwUn4sQvQLkk6bjH+ipGfw8bA==
dependencies:
- is-nan "^1.3.2"
- luxon "^1.26.0"
+ luxon "^3.2.1"
-cronstrue@2.21.0:
- version "2.21.0"
- resolved "https://registry.yarnpkg.com/cronstrue/-/cronstrue-2.21.0.tgz#278d19aa0b9e7ecc90a0c1dbd4f84ceece724094"
- integrity sha512-YxabE1ZSHA1zJZMPCTSEbc0u4cRRenjqqTgCwJT7OvkspPSvfYFITuPFtsT+VkBuavJtFv2kJXT+mKSnlUJxfg==
+cronstrue@2.23.0:
+ version "2.23.0"
+ resolved "https://registry.yarnpkg.com/cronstrue/-/cronstrue-2.23.0.tgz#8f000f62c0034a0efae820b6b4f86052836c3d38"
+ integrity sha512-iPoWUQbCwUmrBf1w9W+9YQs8FowWp/teC2XGz3zAmt0Aja+HWGjyjUkWASWcsdzxSuL0EIIdvlfGEVBljvTbSQ==
cross-spawn@^6.0.0:
version "6.0.5"
@@ -5733,10 +5908,10 @@ cy-mobile-commands@0.3.0:
resolved "https://registry.yarnpkg.com/cy-mobile-commands/-/cy-mobile-commands-0.3.0.tgz#2bf242093149154d846b755977da197b4730429e"
integrity sha512-Bj5P2ylw88hPqolLu68xWB6euVH5uNt8zyh+Ju8sBukGv39mWZxpjp6LtnUX/LK/YMthwvILYHhvr9SG1TP+4w==
-cypress@12.3.0:
- version "12.3.0"
- resolved "https://registry.yarnpkg.com/cypress/-/cypress-12.3.0.tgz#ae3fb0540aef4b5eab1ef2bcd0760caf2992b8bf"
- integrity sha512-ZQNebibi6NBt51TRxRMYKeFvIiQZ01t50HSy7z/JMgRVqBUey3cdjog5MYEbzG6Ktti5ckDt1tfcC47lmFwXkw==
+cypress@12.7.0:
+ version "12.7.0"
+ resolved "https://registry.yarnpkg.com/cypress/-/cypress-12.7.0.tgz#69900f82af76cf3ba0ddb9b59ec3b0d38222ab22"
+ integrity sha512-7rq+nmhzz0u6yabCFyPtADU2OOrYt6pvUau9qV7xyifJ/hnsaw/vkr0tnLlcuuQKUAOC1v1M1e4Z0zG7S0IAvA==
dependencies:
"@cypress/request" "^2.88.10"
"@cypress/xvfb" "^1.2.4"
@@ -5755,7 +5930,7 @@ cypress@12.3.0:
commander "^5.1.0"
common-tags "^1.8.0"
dayjs "^1.10.4"
- debug "^4.3.2"
+ debug "^4.3.4"
enquirer "^2.3.6"
eventemitter2 "6.4.7"
execa "4.1.0"
@@ -5812,7 +5987,7 @@ dashdash@^1.12.0:
dependencies:
assert-plus "^1.0.0"
-date-fns@2.29.3, date-fns@^2.28.0:
+date-fns@2.29.3, date-fns@^2.29.3:
version "2.29.3"
resolved "https://registry.yarnpkg.com/date-fns/-/date-fns-2.29.3.tgz#27402d2fc67eb442b511b70bbdf98e6411cd68a8"
integrity sha512-dDCnyH2WnnKusqvZZ6+jA1O51Ibt8ZMRNkDZdyAyK4YfbDwa/cEmuztzG5pk6hqlp9aSBPYcjOlktquahGwGeA==
@@ -5878,6 +6053,29 @@ dedent@0.7.0:
resolved "https://registry.yarnpkg.com/dedent/-/dedent-0.7.0.tgz#2495ddbaf6eb874abb0e1be9df22d2e5a544326c"
integrity sha512-Q6fKUPqnAHAyhiUgFU7BUzLiv0kd8saH9al7tnu5Q/okj6dnupxyTgFIBjVzJATdfIAm9NAsvXNzjaKa+bxVyA==
+deep-equal@^2.0.5:
+ version "2.2.0"
+ resolved "https://registry.yarnpkg.com/deep-equal/-/deep-equal-2.2.0.tgz#5caeace9c781028b9ff459f33b779346637c43e6"
+ integrity sha512-RdpzE0Hv4lhowpIUKKMJfeH6C1pXdtT1/it80ubgWqwI3qpuxUBpC1S4hnHg+zjnuOoDkzUtUCEEkG+XG5l3Mw==
+ dependencies:
+ call-bind "^1.0.2"
+ es-get-iterator "^1.1.2"
+ get-intrinsic "^1.1.3"
+ is-arguments "^1.1.1"
+ is-array-buffer "^3.0.1"
+ is-date-object "^1.0.5"
+ is-regex "^1.1.4"
+ is-shared-array-buffer "^1.0.2"
+ isarray "^2.0.5"
+ object-is "^1.1.5"
+ object-keys "^1.1.1"
+ object.assign "^4.1.4"
+ regexp.prototype.flags "^1.4.3"
+ side-channel "^1.0.4"
+ which-boxed-primitive "^1.0.2"
+ which-collection "^1.0.1"
+ which-typed-array "^1.1.9"
+
deep-extend@^0.6.0:
version "0.6.0"
resolved "https://registry.yarnpkg.com/deep-extend/-/deep-extend-0.6.0.tgz#c4fa7c95404a17a9c3e8ca7e1537312b736330ac"
@@ -6140,7 +6338,7 @@ dot-prop@^5.1.0:
dependencies:
is-obj "^2.0.0"
-dotenv@^16.0.0:
+dotenv@^16.0.3:
version "16.0.3"
resolved "https://registry.yarnpkg.com/dotenv/-/dotenv-16.0.3.tgz#115aec42bac5053db3c456db30cc243a5a836a07"
integrity sha512-7GO6HghkA5fYG9TYnNxi14/7K9f5occMlp3zXAuSxn7CKCxt9xbNWG7yF8hTCSUchlfWSe3uLmlPfigevRItzQ==
@@ -6197,7 +6395,7 @@ email-templates@9.0.0:
nodemailer "^6.7.2"
preview-email "^3.0.5"
-emoji-regex@^10.0.0:
+emoji-regex@10.2.1, emoji-regex@^10.2.1:
version "10.2.1"
resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-10.2.1.tgz#a41c330d957191efd3d9dfe6e1e8e1e9ab048b3f"
integrity sha512-97g6QgOk8zlDRdgq1WxwgTMgEWGVAQvB5Fdpgc1MkNy56la5SKP9GsMXKDOdqwn90/41a8yPwIGk1Y6WVbeMQA==
@@ -6320,6 +6518,21 @@ es-abstract@^1.19.0, es-abstract@^1.20.4:
string.prototype.trimstart "^1.0.6"
unbox-primitive "^1.0.2"
+es-get-iterator@^1.1.2:
+ version "1.1.3"
+ resolved "https://registry.yarnpkg.com/es-get-iterator/-/es-get-iterator-1.1.3.tgz#3ef87523c5d464d41084b2c3c9c214f1199763d6"
+ integrity sha512-sPZmqHBe6JIiTfN5q2pEi//TwxmAFHwj/XEuYjTuse78i8KxaqMTTzxPoFKuzRpDpTJ+0NAbpfenkmH2rePtuw==
+ dependencies:
+ call-bind "^1.0.2"
+ get-intrinsic "^1.1.3"
+ has-symbols "^1.0.3"
+ is-arguments "^1.1.1"
+ is-map "^2.0.2"
+ is-set "^2.0.2"
+ is-string "^1.0.7"
+ isarray "^2.0.5"
+ stop-iteration-iterator "^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"
@@ -6412,20 +6625,22 @@ eslint-module-utils@^2.7.3:
dependencies:
debug "^3.2.7"
-eslint-plugin-formatjs@4.3.9:
- version "4.3.9"
- resolved "https://registry.yarnpkg.com/eslint-plugin-formatjs/-/eslint-plugin-formatjs-4.3.9.tgz#cccecfa7bb40b6f150c5e0602ddaca1cd632d116"
- integrity sha512-+8kGoTUaNe0qS55eg5XbPDY+eQmeZxnrC8MugQTGUXlqbCyLyG7y4mDsMhAgactVyUMST6Ln1HEm1Tk0KNuIKQ==
+eslint-plugin-formatjs@4.9.0:
+ version "4.9.0"
+ resolved "https://registry.yarnpkg.com/eslint-plugin-formatjs/-/eslint-plugin-formatjs-4.9.0.tgz#9ba74f731d41c2a18d132092766b30553855c666"
+ integrity sha512-U3u8TI/Mogo3sunTHDh24mc3p1zWAz/VaYjSkGhuYcLmqfkqEr3BmGUNQ8NTDvZviYHNTkhjHWuXQnUkh81grQ==
dependencies:
- "@formatjs/icu-messageformat-parser" "2.1.14"
- "@formatjs/ts-transformer" "3.11.5"
+ "@formatjs/icu-messageformat-parser" "2.3.0"
+ "@formatjs/ts-transformer" "3.12.0"
"@types/eslint" "7 || 8"
"@types/picomatch" "^2.3.0"
- "@typescript-eslint/typescript-estree" "^5.9.1"
- emoji-regex "^10.0.0"
+ "@typescript-eslint/typescript-estree" "5.45.0"
+ emoji-regex "^10.2.1"
+ magic-string "^0.29.0"
picomatch "^2.3.1"
- tslib "^2.4.0"
+ tslib "2.4.0"
typescript "^4.7"
+ unicode-emoji-utils "^1.1.1"
eslint-plugin-import@^2.26.0:
version "2.26.0"
@@ -6446,7 +6661,29 @@ eslint-plugin-import@^2.26.0:
resolve "^1.22.0"
tsconfig-paths "^3.14.1"
-eslint-plugin-jsx-a11y@6.6.1, eslint-plugin-jsx-a11y@^6.5.1:
+eslint-plugin-jsx-a11y@6.7.1:
+ version "6.7.1"
+ resolved "https://registry.yarnpkg.com/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-6.7.1.tgz#fca5e02d115f48c9a597a6894d5bcec2f7a76976"
+ integrity sha512-63Bog4iIethyo8smBklORknVjB0T2dwB8Mr/hIC+fBS0uyHdYYpzM/Ed+YC8VxTjlXHEWFOdmgwcDn1U2L9VCA==
+ dependencies:
+ "@babel/runtime" "^7.20.7"
+ aria-query "^5.1.3"
+ array-includes "^3.1.6"
+ array.prototype.flatmap "^1.3.1"
+ ast-types-flow "^0.0.7"
+ axe-core "^4.6.2"
+ axobject-query "^3.1.1"
+ damerau-levenshtein "^1.0.8"
+ emoji-regex "^9.2.2"
+ has "^1.0.3"
+ jsx-ast-utils "^3.3.3"
+ language-tags "=1.0.5"
+ minimatch "^3.1.2"
+ object.entries "^1.1.6"
+ object.fromentries "^2.0.6"
+ semver "^6.3.0"
+
+eslint-plugin-jsx-a11y@^6.5.1:
version "6.6.1"
resolved "https://registry.yarnpkg.com/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-6.6.1.tgz#93736fc91b83fdc38cc8d115deedfc3091aef1ff"
integrity sha512-sXgFVNHiWffBq23uiS/JaP6eVR622DqwB4yTzKvGZGcPq6/yZ3WmOZfuBks/vHWo9GaFOqC2ZK4i6+C35knx7Q==
@@ -6482,7 +6719,28 @@ eslint-plugin-react-hooks@4.6.0, eslint-plugin-react-hooks@^4.5.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.11, eslint-plugin-react@^7.31.7:
+eslint-plugin-react@7.32.2:
+ 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-plugin-react@^7.31.7:
version "7.31.11"
resolved "https://registry.yarnpkg.com/eslint-plugin-react/-/eslint-plugin-react-7.31.11.tgz#011521d2b16dcf95795df688a4770b4eaab364c8"
integrity sha512-TTvq5JsT5v56wPa9OYHzsrOlHzKZKjV+aLgS+55NJP/cuzdiQPC7PfYoUjMoxlffKtvijpk7vA/jmuqRb9nohw==
@@ -6536,12 +6794,13 @@ eslint-visitor-keys@^3.3.0:
resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz#f6480fa6b1f30efe2d1968aa8ac745b862469826"
integrity sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA==
-eslint@8.31.0:
- version "8.31.0"
- resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.31.0.tgz#75028e77cbcff102a9feae1d718135931532d524"
- integrity sha512-0tQQEVdmPZ1UtUKXjX7EMm9BlgJ08G90IhWh0PKDCb3ZLsgAOHI8fYSIzYVZej92zsgq+ft0FGsxhJ3xo2tbuA==
+eslint@8.35.0:
+ version "8.35.0"
+ resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.35.0.tgz#fffad7c7e326bae606f0e8f436a6158566d42323"
+ integrity sha512-BxAf1fVL7w+JLRQhWl2pzGeSiGqbWumV4WNvc9Rhp6tiCtm4oHnyPBSEtMGZwrQgudFQ+otqzWoPB7x+hxoWsw==
dependencies:
- "@eslint/eslintrc" "^1.4.1"
+ "@eslint/eslintrc" "^2.0.0"
+ "@eslint/js" "8.35.0"
"@humanwhocodes/config-array" "^0.11.8"
"@humanwhocodes/module-importer" "^1.0.1"
"@nodelib/fs.walk" "^1.2.8"
@@ -6555,7 +6814,7 @@ eslint@8.31.0:
eslint-utils "^3.0.0"
eslint-visitor-keys "^3.3.0"
espree "^9.4.0"
- esquery "^1.4.0"
+ esquery "^1.4.2"
esutils "^2.0.2"
fast-deep-equal "^3.1.3"
file-entry-cache "^6.0.1"
@@ -6595,10 +6854,10 @@ esprima@^4.0.0, esprima@~4.0.0:
resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71"
integrity sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==
-esquery@^1.4.0:
- version "1.4.0"
- resolved "https://registry.yarnpkg.com/esquery/-/esquery-1.4.0.tgz#2148ffc38b82e8c7057dfed48425b3e61f0f24a5"
- integrity sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w==
+esquery@^1.4.2:
+ version "1.4.2"
+ resolved "https://registry.yarnpkg.com/esquery/-/esquery-1.4.2.tgz#c6d3fee05dd665808e2ad870631f221f5617b1d1"
+ integrity sha512-JVSoLdTlTDkmjFmab7H/9SL9qGSyjElT3myyKp7krqjVFQCDLmj1QFaCLRFBszBKI0XVZaiiXvuPIX3ZwHe1Ng==
dependencies:
estraverse "^5.1.0"
@@ -7027,6 +7286,13 @@ follow-redirects@^1.15.0:
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"
+
forever-agent@~0.6.1:
version "0.6.1"
resolved "https://registry.yarnpkg.com/forever-agent/-/forever-agent-0.6.1.tgz#fbc71f0c41adeb37f96c577ad1ed42d8fdacca91"
@@ -7209,6 +7475,15 @@ get-intrinsic@^1.0.2, get-intrinsic@^1.1.1, get-intrinsic@^1.1.3:
has "^1.0.3"
has-symbols "^1.0.3"
+get-intrinsic@^1.2.0:
+ version "1.2.0"
+ resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.2.0.tgz#7ad1dc0535f3a2904bba075772763e5051f6d05f"
+ integrity sha512-L049y6nFOuom5wGyRc3/gdTLO94dySVKRACj1RmJZBQXlbTMhtNIgkWkUHq+jYmZvKf14EW1EoJnnjbmoHij0Q==
+ dependencies:
+ function-bind "^1.1.1"
+ has "^1.0.3"
+ has-symbols "^1.0.3"
+
get-paths@^0.0.7:
version "0.0.7"
resolved "https://registry.yarnpkg.com/get-paths/-/get-paths-0.0.7.tgz#15331086752077cf130166ccd233a1cdbeefcf38"
@@ -7332,6 +7607,17 @@ glob@^8.0.1:
minimatch "^5.0.1"
once "^1.3.0"
+glob@^8.1.0:
+ version "8.1.0"
+ resolved "https://registry.yarnpkg.com/glob/-/glob-8.1.0.tgz#d388f656593ef708ee3e34640fdfb99a9fd1c33e"
+ integrity sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==
+ dependencies:
+ fs.realpath "^1.0.0"
+ inflight "^1.0.4"
+ inherits "2"
+ minimatch "^5.0.1"
+ once "^1.3.0"
+
global-dirs@^0.1.1:
version "0.1.1"
resolved "https://registry.yarnpkg.com/global-dirs/-/global-dirs-0.1.1.tgz#b319c0dd4607f353f3be9cca4c72fc148c49f445"
@@ -7862,6 +8148,27 @@ inquirer@8.2.4:
through "^2.3.6"
wrap-ansi "^7.0.0"
+inquirer@8.2.5:
+ version "8.2.5"
+ resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-8.2.5.tgz#d8654a7542c35a9b9e069d27e2df4858784d54f8"
+ integrity sha512-QAgPDQMEgrDssk1XiwwHoOGYF9BAbUcc1+j+FhEvaOt8/cKRqyLn0U5qA6F74fGhTMGxf92pOvPBeh29jQJDTQ==
+ dependencies:
+ ansi-escapes "^4.2.1"
+ chalk "^4.1.1"
+ cli-cursor "^3.1.0"
+ cli-width "^3.0.0"
+ external-editor "^3.0.3"
+ figures "^3.0.0"
+ lodash "^4.17.21"
+ mute-stream "0.0.8"
+ ora "^5.4.1"
+ run-async "^2.4.0"
+ rxjs "^7.5.5"
+ string-width "^4.1.0"
+ strip-ansi "^6.0.0"
+ through "^2.3.6"
+ wrap-ansi "^7.0.0"
+
internal-slot@^1.0.3:
version "1.0.4"
resolved "https://registry.yarnpkg.com/internal-slot/-/internal-slot-1.0.4.tgz#8551e7baf74a7a6ba5f749cfb16aa60722f0d6f3"
@@ -7871,6 +8178,15 @@ internal-slot@^1.0.3:
has "^1.0.3"
side-channel "^1.0.4"
+internal-slot@^1.0.4:
+ 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"
+
intl-messageformat-parser@6.1.2:
version "6.1.2"
resolved "https://registry.yarnpkg.com/intl-messageformat-parser/-/intl-messageformat-parser-6.1.2.tgz#28c65f3689f538e66c7cf628881548d6a82ff3c2"
@@ -7886,7 +8202,17 @@ intl-messageformat-parser@^5.3.7:
dependencies:
"@formatjs/intl-numberformat" "^5.5.2"
-intl-messageformat@10.2.5, intl-messageformat@^10.1.0:
+intl-messageformat@10.3.1:
+ version "10.3.1"
+ resolved "https://registry.yarnpkg.com/intl-messageformat/-/intl-messageformat-10.3.1.tgz#99b280b706e4eeb232458dcb1b5758e80abf919c"
+ integrity sha512-mqHc6arhbogrdImIsEscdjWnJcg2bvg3MiyGXDsTSGmPbbM2KtRUe7oNgDUbkM3HMn4KbyOct2JyJScmwRgGSQ==
+ dependencies:
+ "@formatjs/ecma402-abstract" "1.14.3"
+ "@formatjs/fast-memoize" "1.2.8"
+ "@formatjs/icu-messageformat-parser" "2.3.0"
+ tslib "^2.4.0"
+
+intl-messageformat@^10.1.0:
version "10.2.5"
resolved "https://registry.yarnpkg.com/intl-messageformat/-/intl-messageformat-10.2.5.tgz#a51e6e2700d82b5b7ccd7a9f3bd45d967d95afc0"
integrity sha512-AievYMN6WLLHwBeCTv4aRKG+w3ZNyZtkObwgsKk3Q7GNTq8zDRvDbJSBQkb2OPeVCcAKcIXvak9FF/bRNavoww==
@@ -7924,6 +8250,23 @@ ipaddr.js@1.9.1:
resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-1.9.1.tgz#bff38543eeb8984825079ff3a2a8e6cbd46781b3"
integrity sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==
+is-arguments@^1.1.1:
+ 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:
+ version "3.0.1"
+ resolved "https://registry.yarnpkg.com/is-array-buffer/-/is-array-buffer-3.0.1.tgz#deb1db4fcae48308d54ef2442706c0393997052a"
+ integrity sha512-ASfLknmY8Xa2XtB4wmbz13Wu202baeA18cJBCeCy0wXUHZF0IPyVEXqKEcd+t2fNSLLL1vC6k7lxZEojNbISXQ==
+ dependencies:
+ call-bind "^1.0.2"
+ get-intrinsic "^1.1.3"
+ is-typed-array "^1.1.10"
+
is-arrayish@^0.2.1:
version "0.2.1"
resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d"
@@ -7961,7 +8304,7 @@ is-buffer@^2.0.0:
resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-2.0.5.tgz#ebc252e400d22ff8d77fa09888821a24a658c191"
integrity sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ==
-is-callable@^1.1.4, is-callable@^1.2.7:
+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==
@@ -7987,7 +8330,7 @@ is-core-module@^2.5.0, is-core-module@^2.8.1, is-core-module@^2.9.0:
dependencies:
has "^1.0.3"
-is-date-object@^1.0.1:
+is-date-object@^1.0.1, is-date-object@^1.0.5:
version "1.0.5"
resolved "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.0.5.tgz#0841d5536e724c25597bf6ea62e1bd38298df31f"
integrity sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==
@@ -8047,13 +8390,10 @@ is-lambda@^1.0.1:
resolved "https://registry.yarnpkg.com/is-lambda/-/is-lambda-1.0.1.tgz#3d9877899e6a53efc0160504cde15f82e6f061d5"
integrity sha512-z7CMFGNrENq5iFB9Bqo64Xk6Y9sg+epq1myIcdHaGnbMTYOxvzsEtdYqQUylB7LxfkvgrrjP32T6Ywciio9UIQ==
-is-nan@^1.3.2:
- version "1.3.2"
- resolved "https://registry.yarnpkg.com/is-nan/-/is-nan-1.3.2.tgz#043a54adea31748b55b6cd4e09aadafa69bd9e1d"
- integrity sha512-E+zBKpQ2t6MEo1VsonYmluk9NxGrbzpeeLC2xIViuO2EjU2xsXsBPwTr3Ykv9l08UYEVEdWeRZNouaZqF6RN0w==
- dependencies:
- call-bind "^1.0.0"
- define-properties "^1.1.3"
+is-map@^2.0.1, is-map@^2.0.2:
+ version "2.0.2"
+ resolved "https://registry.yarnpkg.com/is-map/-/is-map-2.0.2.tgz#00922db8c9bf73e81b7a335827bc2a43f2b91127"
+ integrity sha512-cOZFQQozTha1f4MxLFzlgKYPTyj26picdZTx82hbc/Xf4K/tZOOXSCkMvU4pKioRXGDLJRn0GM7Upe7kR721yg==
is-negative-zero@^2.0.2:
version "2.0.2"
@@ -8120,6 +8460,11 @@ is-regex@^1.0.3, is-regex@^1.1.4:
call-bind "^1.0.2"
has-tostringtag "^1.0.0"
+is-set@^2.0.1, is-set@^2.0.2:
+ version "2.0.2"
+ resolved "https://registry.yarnpkg.com/is-set/-/is-set-2.0.2.tgz#90755fa4c2562dc1c5d4024760d6119b94ca18ec"
+ integrity sha512-+2cnTEZeY5z/iXGbLhPrOAaK/Mau5k5eXq9j14CpRTftq0pAJu2MwVRSZhyZWBzx3o6X795Lz6Bpb6R0GKf37g==
+
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"
@@ -8163,6 +8508,17 @@ is-text-path@^1.0.1:
dependencies:
text-extensions "^1.0.0"
+is-typed-array@^1.1.10:
+ 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-typedarray@^1.0.0, is-typedarray@~1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/is-typedarray/-/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a"
@@ -8178,6 +8534,11 @@ is-utf8@^0.2.1:
resolved "https://registry.yarnpkg.com/is-utf8/-/is-utf8-0.2.1.tgz#4b0da1442104d1b336340e80797e865cf39f7d72"
integrity sha512-rMYPYvCzsXywIsldgLaSoPlw5PfoB/ssr7hY4pLfcodrA5M/eArza1a9VmTiNIBNMjOGr1Ow9mTyU2o69U6U9Q==
+is-weakmap@^2.0.1:
+ version "2.0.1"
+ resolved "https://registry.yarnpkg.com/is-weakmap/-/is-weakmap-2.0.1.tgz#5008b59bdc43b698201d18f62b37b2ca243e8cf2"
+ integrity sha512-NSBR4kH5oVj1Uwvv970ruUkCV7O1mzgVFO4/rev2cLRda9Tm9HrL70ZPut4rOHgY0FNrUu9BCbXA2sdQ+x0chA==
+
is-weakref@^1.0.2:
version "1.0.2"
resolved "https://registry.yarnpkg.com/is-weakref/-/is-weakref-1.0.2.tgz#9529f383a9338205e89765e0392efc2f100f06f2"
@@ -8185,6 +8546,14 @@ is-weakref@^1.0.2:
dependencies:
call-bind "^1.0.2"
+is-weakset@^2.0.1:
+ version "2.0.2"
+ resolved "https://registry.yarnpkg.com/is-weakset/-/is-weakset-2.0.2.tgz#4569d67a747a1ce5a994dfd4ef6dcea76e7c0a1d"
+ integrity sha512-t2yVvttHkQktwnNNmBQ98AhENLdPUTDTE21uPqAQ0ARwQfGeQKRVS0NNurH7bTf7RrvcVn1OOge45CnBeHCSmg==
+ dependencies:
+ call-bind "^1.0.2"
+ get-intrinsic "^1.1.1"
+
is-windows@^1.0.1:
version "1.0.2"
resolved "https://registry.yarnpkg.com/is-windows/-/is-windows-1.0.2.tgz#d1850eb9791ecd18e6182ce12a30f396634bb19d"
@@ -8202,6 +8571,11 @@ isarray@0.0.1:
resolved "https://registry.yarnpkg.com/isarray/-/isarray-0.0.1.tgz#8a18acfca9a8f4177e09abfc6038939b05d1eedf"
integrity sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ==
+isarray@^2.0.5:
+ version "2.0.5"
+ resolved "https://registry.yarnpkg.com/isarray/-/isarray-2.0.5.tgz#8af1e4c1221244cc62459faf38940d4e644a5723"
+ integrity sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==
+
isarray@~1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11"
@@ -8391,7 +8765,7 @@ jstransformer@1.0.0:
is-promise "^2.0.0"
promise "^7.0.1"
-"jsx-ast-utils@^2.4.1 || ^3.0.0", jsx-ast-utils@^3.3.2:
+"jsx-ast-utils@^2.4.1 || ^3.0.0", jsx-ast-utils@^3.3.2, jsx-ast-utils@^3.3.3:
version "3.3.3"
resolved "https://registry.yarnpkg.com/jsx-ast-utils/-/jsx-ast-utils-3.3.3.tgz#76b3e6e6cece5c69d49a5792c3d01bd1a0cdc7ea"
integrity sha512-fYQHZTZ8jSfmWZ0iyzfwiU4WDX4HpHbMCZ3gPlWYiCl3BoeOTsqKBqnTVfH2rYT7eP5c3sVbeSPHnnJOaTrWiw==
@@ -8463,11 +8837,18 @@ kuler@^2.0.0:
resolved "https://registry.yarnpkg.com/kuler/-/kuler-2.0.0.tgz#e2c570a3800388fb44407e851531c1d670b061b3"
integrity sha512-Xq9nH7KlWZmXAtodXDDRE7vs6DU1gTU8zYDHDiWLSip45Egwq3plLHzPn27NgvzL2r1LMPC1vdqh98sQxtqj4A==
-language-subtag-registry@^0.3.20:
+language-subtag-registry@^0.3.20, language-subtag-registry@~0.3.2:
version "0.3.22"
resolved "https://registry.yarnpkg.com/language-subtag-registry/-/language-subtag-registry-0.3.22.tgz#2e1500861b2e457eba7e7ae86877cbd08fa1fd1d"
integrity sha512-tN0MCzyWnoz/4nHS6uxdlFWoUZT7ABptwKPQ52Ea7URk6vll88bWBVhodtnlfEuCcKWNGoc+uGbw1cwa9IKh/w==
+language-tags@=1.0.5:
+ version "1.0.5"
+ resolved "https://registry.yarnpkg.com/language-tags/-/language-tags-1.0.5.tgz#d321dbc4da30ba8bf3024e040fa5c14661f9193a"
+ integrity sha512-qJhlO9cGXi6hBGKoxEG/sKZDAHD5Hnu9Hs4WbOY3pCWXDhw0N8x1NenNzm2EnNLkLkk7J2SdxAkDSbb6ftT+UQ==
+ dependencies:
+ language-subtag-registry "~0.3.2"
+
language-tags@^1.0.5:
version "1.0.7"
resolved "https://registry.yarnpkg.com/language-tags/-/language-tags-1.0.7.tgz#41cc248730f3f12a452c2e2efe32bc0bbce67967"
@@ -8650,10 +9031,10 @@ linkify-it@4.0.1:
dependencies:
uc.micro "^1.0.1"
-lint-staged@13.1.0:
- version "13.1.0"
- resolved "https://registry.yarnpkg.com/lint-staged/-/lint-staged-13.1.0.tgz#d4c61aec939e789e489fa51987ec5207b50fd37e"
- integrity sha512-pn/sR8IrcF/T0vpWLilih8jmVouMlxqXxKuAojmbiGX5n/gDnz+abdPptlj0vYnbfE0SQNl3CY/HwtM0+yfOVQ==
+lint-staged@13.1.2:
+ version "13.1.2"
+ resolved "https://registry.yarnpkg.com/lint-staged/-/lint-staged-13.1.2.tgz#443636a0cfd834d5518d57d228130dc04c83d6fb"
+ integrity sha512-K9b4FPbWkpnupvK3WXZLbgu9pchUJ6N7TtVZjbaPsoizkqFUDkUReUL25xdrCljJs7uLUF3tZ7nVPeo/6lp+6w==
dependencies:
cli-truncate "^3.1.0"
colorette "^2.0.19"
@@ -8934,10 +9315,17 @@ lru-cache@^7.4.4, lru-cache@^7.5.1, lru-cache@^7.7.1:
resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-7.14.1.tgz#8da8d2f5f59827edb388e63e459ac23d6d408fea"
integrity sha512-ysxwsnTKdAx96aTRdhDOCQfDgbHnt8SK0KY8SEjO0wHinhWOFTESbjVCMPbU1uGXg/ch4lifqx0wfjOawU2+WA==
-luxon@^1.26.0:
- version "1.28.0"
- resolved "https://registry.yarnpkg.com/luxon/-/luxon-1.28.0.tgz#e7f96daad3938c06a62de0fb027115d251251fbf"
- integrity sha512-TfTiyvZhwBYM/7QdAVDh+7dBTBA29v4ik0Ce9zda3Mnf8on1S5KJI8P2jKFZ8+5C0jhmr0KwJEO/Wdpm0VeWJQ==
+luxon@^3.2.1:
+ version "3.2.1"
+ resolved "https://registry.yarnpkg.com/luxon/-/luxon-3.2.1.tgz#14f1af209188ad61212578ea7e3d518d18cee45f"
+ integrity sha512-QrwPArQCNLAKGO/C+ZIilgIuDnEnKx5QYODdDtbFaxzsbZcc/a7WFq7MhsVYgRlwawLtvOUESTlfJ+hc/USqPg==
+
+magic-string@^0.29.0:
+ version "0.29.0"
+ resolved "https://registry.yarnpkg.com/magic-string/-/magic-string-0.29.0.tgz#f034f79f8c43dba4ae1730ffb5e8c4e084b16cf3"
+ integrity sha512-WcfidHrDjMY+eLjlU+8OvwREqHwpgCeKVBUpQ3OhYYuvfaYCUgcbuBzappNzZvg/v8onU3oQj+BYpkOJe9Iw4Q==
+ dependencies:
+ "@jridgewell/sourcemap-codec" "^1.4.13"
mailparser@^3.5.0:
version "3.6.3"
@@ -9490,7 +9878,7 @@ minimist@1.2.6:
resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.6.tgz#8637a5b759ea0d6e98702cfb3a9283323c93af44"
integrity sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==
-minimist@^1.2.0, minimist@^1.2.5, minimist@^1.2.6:
+minimist@1.2.7, minimist@^1.2.0, minimist@^1.2.5, minimist@^1.2.6:
version "1.2.7"
resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.7.tgz#daa1c4d91f507390437c6a8bc01078e7000c4d18"
integrity sha512-bzfL1YUZsP41gmu/qjrEk0Q6i2ix/cVeAhbCbqH9u3zYutS1cLg00qhrD0M2MVdCcx4Sc0UpP2eBWo9rotpq6g==
@@ -9596,6 +9984,11 @@ mkdirp@^1.0.3, mkdirp@^1.0.4:
resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-1.0.4.tgz#3eb5ed62622756d79a5f0e2a221dfebad75c2f7e"
integrity sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==
+mkdirp@^2.1.3:
+ version "2.1.3"
+ resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-2.1.3.tgz#b083ff37be046fd3d6552468c1f0ff44c1545d1f"
+ integrity sha512-sjAkg21peAG9HS+Dkx7hlG9Ztx7HLeKnvB3NQRcu/mltCVmvkF0pisbiTSfDVYTT86XEfZrTUosLdZLStquZUw==
+
modify-values@^1.0.0:
version "1.0.1"
resolved "https://registry.yarnpkg.com/modify-values/-/modify-values-1.0.1.tgz#b3939fa605546474e3e3e3c63d64bd43b4ee6022"
@@ -9828,12 +10221,12 @@ node-releases@^2.0.6:
resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.8.tgz#0f349cdc8fcfa39a92ac0be9bc48b7706292b9ae"
integrity sha512-dFSmB8fFHEH/s81Xi+Y/15DQY6VHW81nXRj86EMSL3lmuTmK1e+aT4wrFCkTbm+gSwkw4KpX+rT/pMM2c1mF+A==
-node-schedule@2.1.0:
- version "2.1.0"
- resolved "https://registry.yarnpkg.com/node-schedule/-/node-schedule-2.1.0.tgz#068ae38d7351c330616f7fe7cdb05036f977cbaf"
- integrity sha512-nl4JTiZ7ZQDc97MmpTq9BQjYhq7gOtoh7SiPH069gBFBj0PzD8HI7zyFs6rzqL8Y5tTiEEYLxgtbx034YPrbyQ==
+node-schedule@2.1.1:
+ version "2.1.1"
+ resolved "https://registry.yarnpkg.com/node-schedule/-/node-schedule-2.1.1.tgz#6958b2c5af8834954f69bb0a7a97c62b97185de3"
+ integrity sha512-OXdegQq03OmXEjt2hZP33W2YPs/E5BcFQks46+G2gAxs4gHOIVD1u7EqlYLYSKsaIpyKCK9Gbk0ta1/gjRSMRQ==
dependencies:
- cron-parser "^3.5.0"
+ cron-parser "^4.2.0"
long-timeout "0.1.1"
sorted-array-functions "^1.3.0"
@@ -9842,6 +10235,11 @@ nodemailer@6.8.0, nodemailer@^6.7.2, nodemailer@^6.7.7:
resolved "https://registry.yarnpkg.com/nodemailer/-/nodemailer-6.8.0.tgz#804bcc5256ee5523bc914506ee59f8de8f0b1cd5"
integrity sha512-EjYvSmHzekz6VNkNd12aUqAco+bOkRe3Of5jVhltqKhEsjw/y0PYPJfp83+s9Wzh1dspYAkUW/YNQ350NATbSQ==
+nodemailer@6.9.1:
+ version "6.9.1"
+ resolved "https://registry.yarnpkg.com/nodemailer/-/nodemailer-6.9.1.tgz#8249d928a43ed85fec17b13d2870c8f758a126ed"
+ integrity sha512-qHw7dOiU5UKNnQpXktdgQ1d3OFgRAekuvbJLcdG5dnEo/GtcTHRYM7+UfJARdOFU9WUQO8OiIamgWPmiSFHYAA==
+
nodemon@2.0.20:
version "2.0.20"
resolved "https://registry.yarnpkg.com/nodemon/-/nodemon-2.0.20.tgz#e3537de768a492e8d74da5c5813cb0c7486fc701"
@@ -10178,6 +10576,14 @@ object-inspect@^1.12.2, object-inspect@^1.9.0:
resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.12.2.tgz#c0641f26394532f28ab8d796ab954e43c009a8ea"
integrity sha512-z+cPxW0QGUp0mcqcsgQyLVRDoXFQbXOwBaqyF7VIgI4TWNQsDHrBpUQslRmIfAoYWdYzs6UlKJtB2XJpTaNSpQ==
+object-is@^1.1.5:
+ 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"
@@ -10288,10 +10694,10 @@ opener@^1.5.2:
resolved "https://registry.yarnpkg.com/opener/-/opener-1.5.2.tgz#5d37e1f35077b9dcac4301372271afdeb2a13598"
integrity sha512-ur5UIdyw5Y7yEj9wLzhqXiy6GZ3Mwx0yGI+5sMn2r0N0v3cKJvUmFH5yPP+WXh9e0xfyzyJX95D8l088DNFj7A==
-openpgp@5.5.0:
- version "5.5.0"
- resolved "https://registry.yarnpkg.com/openpgp/-/openpgp-5.5.0.tgz#235ae5a49d5fda5cfd1d82c4c42cd91433478c14"
- integrity sha512-SpwcJnxrK9Y0HRM6KxSFqkAEOSWEabCH/c8dII/+y2e5f6KvuDG5ZE7JXaPBaVJNE4VUZZeTphxXDoZD0KOHrw==
+openpgp@5.7.0:
+ version "5.7.0"
+ resolved "https://registry.yarnpkg.com/openpgp/-/openpgp-5.7.0.tgz#fe0a346f26171ffb726636ae7ccb24a504281dbc"
+ integrity sha512-wchYJQfFbSaocUvUIYqNrWD+lRSmFSG1d3Ak2CHeXFocDSEsf7Uc1zUzHjSdlZPTvGeeXPQ+MJrwVtalL4QCBg==
dependencies:
asn1.js "^5.0.0"
@@ -10751,7 +11157,7 @@ postcss-selector-parser@6.0.10:
cssesc "^3.0.0"
util-deprecate "^1.0.2"
-postcss-selector-parser@^6.0.10:
+postcss-selector-parser@^6.0.10, postcss-selector-parser@^6.0.11:
version "6.0.11"
resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-6.0.11.tgz#2e41dc39b7ad74046e1615185185cd0b17d0c8dc"
integrity sha512-zbARubNdogI9j7WY4nQJBiNqQf3sLS3wCP4WfOidu+p28LofJqDH1tcXypGrcmMHhDk2t9wGhCsYe/+szLTy1g==
@@ -10773,10 +11179,10 @@ postcss@8.4.14:
picocolors "^1.0.0"
source-map-js "^1.0.2"
-postcss@8.4.20, postcss@^8.4.18:
- version "8.4.20"
- resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.20.tgz#64c52f509644cecad8567e949f4081d98349dc56"
- integrity sha512-6Q04AXR1212bXr5fh03u8aAwbLxAQNGQ/Q1LNa0VfOI06ZAlhPHtQvE4OIdpj4kLThXilalPnmDSOD65DcHt+g==
+postcss@8.4.21, postcss@^8.0.9:
+ version "8.4.21"
+ resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.21.tgz#c639b719a57efc3187b13a1d765675485f4134f4"
+ integrity sha512-tP7u/Sn/dVxK2NnruI4H9BG+x+Wxz6oeZ1cJ8P6G/PZY0IKk4k/63TDsQf2kQq3+qoJeLm2kIBUNlZe3zgb4Zg==
dependencies:
nanoid "^3.3.4"
picocolors "^1.0.0"
@@ -10794,20 +11200,20 @@ prettier-linter-helpers@^1.0.0:
dependencies:
fast-diff "^1.1.2"
-prettier-plugin-organize-imports@3.2.1:
- version "3.2.1"
- resolved "https://registry.yarnpkg.com/prettier-plugin-organize-imports/-/prettier-plugin-organize-imports-3.2.1.tgz#7e0e0a18457e0166e740daaff1aed1c08069fcb9"
- integrity sha512-bty7C2Ecard5EOXirtzeCAqj4FU4epeuWrQt/Z+sh8UVEpBlBZ3m3KNPz2kFu7KgRTQx/C9o4/TdquPD1jOqjQ==
+prettier-plugin-organize-imports@3.2.2:
+ version "3.2.2"
+ resolved "https://registry.yarnpkg.com/prettier-plugin-organize-imports/-/prettier-plugin-organize-imports-3.2.2.tgz#91993365e017daa5d0d28d8183179834224d8dd1"
+ integrity sha512-e97lE6odGSiHonHJMTYC0q0iLXQyw0u5z/PJpvP/3vRy6/Zi9kLBwFAbEGjDzIowpjQv8b+J04PDamoUSQbzGA==
-prettier-plugin-tailwindcss@0.2.1:
- version "0.2.1"
- resolved "https://registry.yarnpkg.com/prettier-plugin-tailwindcss/-/prettier-plugin-tailwindcss-0.2.1.tgz#989b35afd86c550cb671da69891aba4f4a051159"
- integrity sha512-aIO8IguumORyRsmT+E7JfJ3A9FEoyhqZR7Au7TBOege3VZkgMvHJMkufeYp4zjnDK2iq4ktkvGMNOQR9T8lisQ==
+prettier-plugin-tailwindcss@0.2.3:
+ version "0.2.3"
+ resolved "https://registry.yarnpkg.com/prettier-plugin-tailwindcss/-/prettier-plugin-tailwindcss-0.2.3.tgz#b68a1de10056fc84055426af132c2697bea0955c"
+ integrity sha512-s2N5Dh7Ao5KTV1mao5ZBnn8EKtUcDPJEkGViZIjI0Ij9TTI5zgTz4IHOxW33jOdjHKa8CSjM88scelUiC5TNRQ==
-prettier@2.8.1:
- version "2.8.1"
- resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.8.1.tgz#4e1fd11c34e2421bc1da9aea9bd8127cd0a35efc"
- integrity sha512-lqGoSJBQNJidqCHE80vqZJHWHRFoNYsSpP9AjFhlhi9ODCJA541svILes/+/1GM3VaL/abZi7cpFzOpdR9UPKg==
+prettier@2.8.4:
+ version "2.8.4"
+ resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.8.4.tgz#34dd2595629bfbb79d344ac4a91ff948694463c3"
+ integrity sha512-vIS4Rlc2FNh0BySk3Wkd6xmwxB0FpOndW5fisM5H8hsZSxU2VWVB5CWIkIjWvrHjIhxk2g3bfMKM87zNTrZddw==
pretty-bytes@^5.6.0:
version "5.6.0"
@@ -11150,45 +11556,45 @@ react-animate-height@2.1.2:
classnames "^2.2.5"
prop-types "^15.6.1"
-react-aria@3.22.0:
- version "3.22.0"
- resolved "https://registry.yarnpkg.com/react-aria/-/react-aria-3.22.0.tgz#824dbeac1760240b82359fd60c18bf68769d5815"
- integrity sha512-GA+qwnVVTvSirdhB/PsYPwix24vFDlGeK5Lk3zUgB9Q5VHnTfMMJ4+tyu9G38UR0clLQ5SAG1ArNjgzmhexQYg==
+react-aria@3.23.0:
+ version "3.23.0"
+ resolved "https://registry.yarnpkg.com/react-aria/-/react-aria-3.23.0.tgz#8829ae47373793a7b48e19aa8af1b581021b2a9a"
+ integrity sha512-CMem/+XnL3yuNHU94usRHS2+rdKLuyUzxRmQ/ndVXresflzKdaLYCH7Dtb2Um4rUEjD0BCz33hiNZPsJ7jBVQQ==
dependencies:
- "@react-aria/breadcrumbs" "^3.4.1"
- "@react-aria/button" "^3.6.4"
- "@react-aria/calendar" "^3.0.5"
- "@react-aria/checkbox" "^3.7.1"
- "@react-aria/combobox" "^3.4.4"
- "@react-aria/datepicker" "^3.2.1"
- "@react-aria/dialog" "^3.4.2"
- "@react-aria/dnd" "^3.0.1"
- "@react-aria/focus" "^3.10.1"
- "@react-aria/gridlist" "^3.1.2"
- "@react-aria/i18n" "^3.6.3"
- "@react-aria/interactions" "^3.13.1"
- "@react-aria/label" "^3.4.4"
- "@react-aria/link" "^3.3.6"
- "@react-aria/listbox" "^3.7.2"
- "@react-aria/menu" "^3.7.1"
- "@react-aria/meter" "^3.3.4"
- "@react-aria/numberfield" "^3.3.4"
- "@react-aria/overlays" "^3.12.1"
- "@react-aria/progress" "^3.3.4"
- "@react-aria/radio" "^3.4.2"
- "@react-aria/searchfield" "^3.4.4"
- "@react-aria/select" "^3.8.4"
- "@react-aria/selection" "^3.12.1"
- "@react-aria/separator" "^3.2.6"
- "@react-aria/slider" "^3.2.4"
- "@react-aria/ssr" "^3.4.1"
- "@react-aria/switch" "^3.3.1"
- "@react-aria/table" "^3.7.0"
- "@react-aria/tabs" "^3.3.4"
- "@react-aria/textfield" "^3.8.1"
- "@react-aria/tooltip" "^3.3.4"
- "@react-aria/utils" "^3.14.2"
- "@react-aria/visually-hidden" "^3.6.1"
+ "@react-aria/breadcrumbs" "^3.5.0"
+ "@react-aria/button" "^3.7.0"
+ "@react-aria/calendar" "^3.1.0"
+ "@react-aria/checkbox" "^3.8.0"
+ "@react-aria/combobox" "^3.5.0"
+ "@react-aria/datepicker" "^3.3.0"
+ "@react-aria/dialog" "^3.5.0"
+ "@react-aria/dnd" "^3.1.0"
+ "@react-aria/focus" "^3.11.0"
+ "@react-aria/gridlist" "^3.2.0"
+ "@react-aria/i18n" "^3.7.0"
+ "@react-aria/interactions" "^3.14.0"
+ "@react-aria/label" "^3.5.0"
+ "@react-aria/link" "^3.4.0"
+ "@react-aria/listbox" "^3.8.0"
+ "@react-aria/menu" "^3.8.0"
+ "@react-aria/meter" "^3.4.0"
+ "@react-aria/numberfield" "^3.4.0"
+ "@react-aria/overlays" "^3.13.0"
+ "@react-aria/progress" "^3.4.0"
+ "@react-aria/radio" "^3.5.0"
+ "@react-aria/searchfield" "^3.5.0"
+ "@react-aria/select" "^3.9.0"
+ "@react-aria/selection" "^3.13.0"
+ "@react-aria/separator" "^3.3.0"
+ "@react-aria/slider" "^3.3.0"
+ "@react-aria/ssr" "^3.5.0"
+ "@react-aria/switch" "^3.4.0"
+ "@react-aria/table" "^3.8.0"
+ "@react-aria/tabs" "^3.4.0"
+ "@react-aria/textfield" "^3.9.0"
+ "@react-aria/tooltip" "^3.4.0"
+ "@react-aria/utils" "^3.15.0"
+ "@react-aria/visually-hidden" "^3.7.0"
react-dom@18.2.0:
version "18.2.0"
@@ -11208,25 +11614,25 @@ react-fast-compare@^3.0.1:
resolved "https://registry.yarnpkg.com/react-fast-compare/-/react-fast-compare-3.2.0.tgz#641a9da81b6a6320f270e89724fb45a0b39e43bb"
integrity sha512-rtGImPZ0YyLrscKI9xTpV8psd6I8VAtjKCzQDlzyDvqJA8XOW78TXYQwNRNd8g8JZnDu8q9Fu/1v4HPAVwVdHA==
-react-intersection-observer@9.4.1:
- version "9.4.1"
- resolved "https://registry.yarnpkg.com/react-intersection-observer/-/react-intersection-observer-9.4.1.tgz#4ccb21e16acd0b9cf5b28d275af7055bef878f6b"
- integrity sha512-IXpIsPe6BleFOEHKzKh5UjwRUaz/JYS0lT/HPsupWEQou2hDqjhLMStc5zyE3eQVT4Fk3FufM8Fw33qW1uyeiw==
+react-intersection-observer@9.4.3:
+ version "9.4.3"
+ resolved "https://registry.yarnpkg.com/react-intersection-observer/-/react-intersection-observer-9.4.3.tgz#ec84ce0c25cad548075130ea045ac5c7adf908f3"
+ integrity sha512-WNRqMQvKpupr6MzecAQI0Pj0+JQong307knLP4g/nBex7kYfIaZsPpXaIhKHR+oV8z+goUbH9e10j6lGRnTzlQ==
-react-intl@6.2.5:
- version "6.2.5"
- resolved "https://registry.yarnpkg.com/react-intl/-/react-intl-6.2.5.tgz#eb871145e0866916d0c9283b2c83a146c6121793"
- integrity sha512-nz21POTKbE0sPEuEJU4o5YTZYY7VlIYCPNJaD6D2+xKyk6Noj6DoUK0LRO9LXuQNUuQ044IZl3m6ymzZRj8XFQ==
+react-intl@6.2.10:
+ version "6.2.10"
+ resolved "https://registry.yarnpkg.com/react-intl/-/react-intl-6.2.10.tgz#586ba261b3ff67be09072fefdee2ef58497e0ea2"
+ integrity sha512-l2TpskkFR0OzQnq7ChiJ5ZX23USZSzpKOcaR9MYC4UOHE9bT4kQ5JXXolgkq3tiOlvseEOzUCerlzn886AX9Yg==
dependencies:
"@formatjs/ecma402-abstract" "1.14.3"
- "@formatjs/icu-messageformat-parser" "2.1.14"
- "@formatjs/intl" "2.6.3"
- "@formatjs/intl-displaynames" "6.2.3"
- "@formatjs/intl-listformat" "7.1.7"
+ "@formatjs/icu-messageformat-parser" "2.3.0"
+ "@formatjs/intl" "2.6.7"
+ "@formatjs/intl-displaynames" "6.2.6"
+ "@formatjs/intl-listformat" "7.1.9"
"@types/hoist-non-react-statics" "^3.3.1"
"@types/react" "16 || 17 || 18"
hoist-non-react-statics "^3.3.2"
- intl-messageformat "10.2.5"
+ intl-messageformat "10.3.1"
tslib "^2.4.0"
react-is@^16.13.1, react-is@^16.7.0:
@@ -11239,10 +11645,10 @@ react-is@^18.0.0:
resolved "https://registry.yarnpkg.com/react-is/-/react-is-18.2.0.tgz#199431eeaaa2e09f86427efbb4f1473edb47609b"
integrity sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==
-react-markdown@8.0.4:
- version "8.0.4"
- resolved "https://registry.yarnpkg.com/react-markdown/-/react-markdown-8.0.4.tgz#b5ff1f0f29ead71a7a6f98815eb1a70bcc2a036e"
- integrity sha512-2oxHa6oDxc1apg/Gnc1Goh06t3B617xeywqI/92wmDV9FELI6ayRkwge7w7DoEqM0gRpZGTNU6xQG+YpJISnVg==
+react-markdown@8.0.5:
+ version "8.0.5"
+ resolved "https://registry.yarnpkg.com/react-markdown/-/react-markdown-8.0.5.tgz#c9a70a33ca9aeeafb769c6582e7e38843b9d70ad"
+ integrity sha512-jGJolWWmOWAvzf+xMdB9zwStViODyyFQhNB/bwCerbBKmrTmgmA599CGiOlP58OId1IMoIRsA8UdI1Lod4zb5A==
dependencies:
"@types/hast" "^2.0.0"
"@types/prop-types" "^15.0.0"
@@ -11255,7 +11661,7 @@ react-markdown@8.0.4:
remark-parse "^10.0.0"
remark-rehype "^10.0.0"
space-separated-tokens "^2.0.0"
- style-to-object "^0.3.0"
+ style-to-object "^0.4.0"
unified "^10.0.0"
unist-util-visit "^4.0.0"
vfile "^5.0.0"
@@ -11292,17 +11698,17 @@ react-select@5.7.0:
react-transition-group "^4.3.0"
use-isomorphic-layout-effect "^1.1.2"
-react-spring@9.6.1:
- version "9.6.1"
- resolved "https://registry.yarnpkg.com/react-spring/-/react-spring-9.6.1.tgz#e715b2fa523c1a3acfdcf1aaa93e081620b8cc8e"
- integrity sha512-BeP80R4SLb1bZHW/Q62nECoScHw/fH+jzGkD7dc892HNGa+lbGIJXURc6U7N8JfZ8peEO46nPxR57aUMuYzquQ==
+react-spring@9.7.1:
+ version "9.7.1"
+ resolved "https://registry.yarnpkg.com/react-spring/-/react-spring-9.7.1.tgz#8acfed700823490a4d9d4cf131c5fea12d1aaa93"
+ integrity sha512-o2+r2DNQDVEuefiz33ZF76DPd/gLq3kbdObJmllGF2IUfv2W6x+ZP0gR97QYCSR4QLbmOl1mPKUBbI+FJdys2Q==
dependencies:
- "@react-spring/core" "~9.6.1"
- "@react-spring/konva" "~9.6.1"
- "@react-spring/native" "~9.6.1"
- "@react-spring/three" "~9.6.1"
- "@react-spring/web" "~9.6.1"
- "@react-spring/zdog" "~9.6.1"
+ "@react-spring/core" "~9.7.1"
+ "@react-spring/konva" "~9.7.1"
+ "@react-spring/native" "~9.7.1"
+ "@react-spring/three" "~9.7.1"
+ "@react-spring/web" "~9.7.1"
+ "@react-spring/zdog" "~9.7.1"
react-tailwindcss-datepicker-sct@1.3.4:
version "1.3.4"
@@ -11671,7 +12077,7 @@ resolve@^1.1.7, resolve@^1.10.0, resolve@^1.12.0, resolve@^1.14.2, resolve@^1.15
path-parse "^1.0.7"
supports-preserve-symlinks-flag "^1.0.0"
-resolve@^2.0.0-next.3:
+resolve@^2.0.0-next.3, 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==
@@ -12272,6 +12678,13 @@ stealthy-require@^1.1.1:
resolved "https://registry.yarnpkg.com/stealthy-require/-/stealthy-require-1.1.1.tgz#35b09875b4ff49f26a777e509b3090a3226bf24b"
integrity sha512-ZnWpYnYugiOVEY5GkcuJK1io5V8QmNYChG62gSit9pQVGErXtrKuPC55ITaVSukmMta5qpMU7vqLt2Lnni4f/g==
+stop-iteration-iterator@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/stop-iteration-iterator/-/stop-iteration-iterator-1.0.0.tgz#6a60be0b4ee757d1ed5254858ec66b10c49285e4"
+ integrity sha512-iCGQj+0l0HOdZ2AEeBADlsRC+vsnDsZsbdSiH1yNSjcfKM7fdpCMfqAL/dwF5BLiw/XhRft/Wax6zQbhq2BcjQ==
+ dependencies:
+ internal-slot "^1.0.4"
+
stream-combiner2@~1.1.1:
version "1.1.1"
resolved "https://registry.yarnpkg.com/stream-combiner2/-/stream-combiner2-1.1.1.tgz#fb4d8a1420ea362764e21ad4780397bebcb41cbe"
@@ -12415,10 +12828,10 @@ strip-json-comments@~2.0.1:
resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a"
integrity sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==
-style-to-object@^0.3.0:
- version "0.3.0"
- resolved "https://registry.yarnpkg.com/style-to-object/-/style-to-object-0.3.0.tgz#b1b790d205991cc783801967214979ee19a76e46"
- integrity sha512-CzFnRRXhzWIdItT3OmF8SQfWyahHhjq3HwcMNCNLn+N7klOOqPjMeG/4JSu77D7ypZdGvSzvkrbyeTMizz2VrA==
+style-to-object@^0.4.0:
+ version "0.4.1"
+ resolved "https://registry.yarnpkg.com/style-to-object/-/style-to-object-0.4.1.tgz#53cf856f7cf7f172d72939d9679556469ba5de37"
+ integrity sha512-HFpbb5gr2ypci7Qw+IOhnP2zOU7e77b+rzM+wTzXzfi1PrtBCX0E7Pk4wL4iTLnhzZ+JgEGAhX81ebTg/aYjQw==
dependencies:
inline-style-parser "0.1.1"
@@ -12489,24 +12902,24 @@ swagger-ui-dist@>=4.11.0:
resolved "https://registry.yarnpkg.com/swagger-ui-dist/-/swagger-ui-dist-4.15.5.tgz#cda226a79db2a9192579cc1f37ec839398a62638"
integrity sha512-V3eIa28lwB6gg7/wfNvAbjwJYmDXy1Jo1POjyTzlB6wPcHiGlRxq39TSjYGVjQrUSAzpv+a7nzp7mDxgNy57xA==
-swagger-ui-express@4.6.0:
- version "4.6.0"
- resolved "https://registry.yarnpkg.com/swagger-ui-express/-/swagger-ui-express-4.6.0.tgz#fc297d80c614c80f5d7def3dab50b56428cfe1c9"
- integrity sha512-ZxpQFp1JR2RF8Ar++CyJzEDdvufa08ujNUJgMVTMWPi86CuQeVdBtvaeO/ysrz6dJAYXf9kbVNhWD7JWocwqsA==
+swagger-ui-express@4.6.2:
+ version "4.6.2"
+ resolved "https://registry.yarnpkg.com/swagger-ui-express/-/swagger-ui-express-4.6.2.tgz#61b2cb9fd7932cdccff99e0efdf700a5459e493c"
+ integrity sha512-MHIOaq9JrTTB3ygUJD+08PbjM5Tt/q7x80yz9VTFIatw8j5uIWKcr90S0h5NLMzFEDC6+eVprtoeA5MDZXCUKQ==
dependencies:
swagger-ui-dist ">=4.11.0"
-swr@2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/swr/-/swr-2.0.0.tgz#91d999359e2be92de1a41f6b6711d72be20ffdbd"
- integrity sha512-IhUx5yPkX+Fut3h0SqZycnaNLXLXsb2ECFq0Y29cxnK7d8r7auY2JWNbCW3IX+EqXUg3rwNJFlhrw5Ye/b6k7w==
+swr@2.0.4:
+ version "2.0.4"
+ resolved "https://registry.yarnpkg.com/swr/-/swr-2.0.4.tgz#e68a5cc2e87b2a7f5f7ebf8a472cea24fc1c5fce"
+ integrity sha512-4GUiTjknRUVuw4MWUHR7mzJ9G/DWL+yZz/TgWDfiA0OZ9tL6qyrTkN2wPeboBpL3OJTkej3pexh3mWCnv8cFkQ==
dependencies:
use-sync-external-store "^1.2.0"
-tailwindcss@3.2.4:
- version "3.2.4"
- resolved "https://registry.yarnpkg.com/tailwindcss/-/tailwindcss-3.2.4.tgz#afe3477e7a19f3ceafb48e4b083e292ce0dc0250"
- integrity sha512-AhwtHCKMtR71JgeYDaswmZXhPcW9iuI9Sp2LvZPo9upDZ7231ZJ7eA9RaURbhpXGVlrjX4cFNlB4ieTetEb7hQ==
+tailwindcss@3.2.7:
+ version "3.2.7"
+ resolved "https://registry.yarnpkg.com/tailwindcss/-/tailwindcss-3.2.7.tgz#5936dd08c250b05180f0944500c01dce19188c07"
+ integrity sha512-B6DLqJzc21x7wntlH/GsZwEXTBttVSl1FtCzC8WP4oBc/NKef7kaax5jeihkkCEWc831/5NDJ9gRNDK6NEioQQ==
dependencies:
arg "^5.0.2"
chokidar "^3.5.3"
@@ -12522,12 +12935,12 @@ tailwindcss@3.2.4:
normalize-path "^3.0.0"
object-hash "^3.0.0"
picocolors "^1.0.0"
- postcss "^8.4.18"
+ postcss "^8.0.9"
postcss-import "^14.1.0"
postcss-js "^4.0.0"
postcss-load-config "^3.1.4"
postcss-nested "6.0.0"
- postcss-selector-parser "^6.0.10"
+ postcss-selector-parser "^6.0.11"
postcss-value-parser "^4.2.0"
quick-lru "^5.1.1"
resolve "^1.22.1"
@@ -12785,16 +13198,26 @@ tsconfig-paths@^3.14.1:
minimist "^1.2.6"
strip-bom "^3.0.0"
+tslib@2.4.0:
+ version "2.4.0"
+ resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.4.0.tgz#7cecaa7f073ce680a05847aa77be941098f36dc3"
+ integrity sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==
+
tslib@^1.10.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==
-tslib@^2.0.1, tslib@^2.1.0, tslib@^2.2.0, tslib@^2.3.1, tslib@^2.4.0:
+tslib@^2.0.1, tslib@^2.1.0, tslib@^2.2.0, tslib@^2.4.0:
version "2.4.1"
resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.4.1.tgz#0d0bfbaac2880b91e22df0768e55be9753a5b17e"
integrity sha512-tGyy4dAjRIEwI7BzsB0lynWgOpfqjUdq91XXAlIWD2OwKBH7oCl/GZG/HT4BOHrTlPMOASlMQ7veyTqpmRcrNA==
+tslib@^2.5.0:
+ version "2.5.0"
+ resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.5.0.tgz#42bfed86f5787aeb41d031866c8f402429e0fddf"
+ integrity sha512-336iVw3rtn2BUK7ORdIAHTyxHGRIHVReokCR3XjbckJMK7ms8FysBfhLR8IXnAgy7T0PTPNBWKiH514FOW/WSg==
+
tsscmp@1.0.6:
version "1.0.6"
resolved "https://registry.yarnpkg.com/tsscmp/-/tsscmp-1.0.6.tgz#85b99583ac3589ec4bfef825b5000aa911d605eb"
@@ -12886,30 +13309,35 @@ typedarray@^0.0.6:
resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777"
integrity sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA==
-typeorm@0.3.11:
- version "0.3.11"
- resolved "https://registry.yarnpkg.com/typeorm/-/typeorm-0.3.11.tgz#09b6ab0b0574bf33c1faf7344bab6c363cf28921"
- integrity sha512-pzdOyWbVuz/z8Ww6gqvBW4nylsM0KLdUCDExr2gR20/x1khGSVxQkjNV/3YqliG90jrWzrknYbYscpk8yxFJVg==
+typeorm@0.3.12:
+ version "0.3.12"
+ resolved "https://registry.yarnpkg.com/typeorm/-/typeorm-0.3.12.tgz#d0fcdc4ce0c32bca42ba5ab04e83f5f58c41ebf3"
+ integrity sha512-sYSxBmCf1nJLLTcYtwqZ+lQIRtLPyUoO93rHTOKk9vJCyT4UfRtU7oRsJvfvKP3nnZTD1hzz2SEy2zwPEN6OyA==
dependencies:
- "@sqltools/formatter" "^1.2.2"
- app-root-path "^3.0.0"
+ "@sqltools/formatter" "^1.2.5"
+ app-root-path "^3.1.0"
buffer "^6.0.3"
- chalk "^4.1.0"
+ chalk "^4.1.2"
cli-highlight "^2.1.11"
- date-fns "^2.28.0"
- debug "^4.3.3"
- dotenv "^16.0.0"
- glob "^7.2.0"
+ date-fns "^2.29.3"
+ debug "^4.3.4"
+ dotenv "^16.0.3"
+ glob "^8.1.0"
js-yaml "^4.1.0"
- mkdirp "^1.0.4"
+ mkdirp "^2.1.3"
reflect-metadata "^0.1.13"
sha.js "^2.4.11"
- tslib "^2.3.1"
- uuid "^8.3.2"
+ tslib "^2.5.0"
+ uuid "^9.0.0"
xml2js "^0.4.23"
- yargs "^17.3.1"
+ yargs "^17.6.2"
-typescript@4.9.4, typescript@^4.0, typescript@^4.6.4, typescript@^4.7:
+typescript@4.9.5:
+ version "4.9.5"
+ resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.9.5.tgz#095979f9bcc0d09da324d58d03ce8f8374cbe65a"
+ integrity sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g==
+
+typescript@^4.0, typescript@^4.6.4, typescript@^4.7:
version "4.9.4"
resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.9.4.tgz#a2a3d2756c079abda241d75f149df9d561091e78"
integrity sha512-Uz+dTXYzxXXbsFpM86Wh3dKCxrQqUcVMxwU54orwlJjOpO3ao8L7j5lH+dWfTwgCwIuM9GQ2kvVotzYJMXTBZg==
@@ -12961,6 +13389,13 @@ unicode-canonical-property-names-ecmascript@^2.0.0:
resolved "https://registry.yarnpkg.com/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.0.tgz#301acdc525631670d39f6146e0e77ff6bbdebddc"
integrity sha512-yY5PpDlfVIU5+y/BSCxAJRBIS1Zc2dDG3Ujq+sR0U+JjUevW2JhocOF+soROYDSaAezOzOKuyyixhD6mBknSmQ==
+unicode-emoji-utils@^1.1.1:
+ version "1.1.1"
+ resolved "https://registry.yarnpkg.com/unicode-emoji-utils/-/unicode-emoji-utils-1.1.1.tgz#26e4ea4bc4308380caf65fd6a527e090e42ecdaf"
+ integrity sha512-QEg0BNool1kItuftJp79SbWYzgW8Rnf8I+Q5NIDSkUw8y+KS+mLBoOaxSO+nFFUyIHGEt24I2Fn1iJ74LpiDcA==
+ dependencies:
+ emoji-regex "10.2.1"
+
unicode-match-property-ecmascript@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-2.0.0.tgz#54fd16e0ecb167cf04cf1f756bdcc92eba7976c3"
@@ -13150,6 +13585,11 @@ uuid@^8.3.2:
resolved "https://registry.yarnpkg.com/uuid/-/uuid-8.3.2.tgz#80d5b5ced271bb9af6c445f21a1a04c606cefbe2"
integrity sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==
+uuid@^9.0.0:
+ version "9.0.0"
+ resolved "https://registry.yarnpkg.com/uuid/-/uuid-9.0.0.tgz#592f550650024a38ceb0c562f2f6aa435761efb5"
+ integrity sha512-MXcSTerfPa4uqyzStbRoTgt5XIe3x5+42+q1sDuy3R5MDk66URdLMOZe5aPX/SQd+kuYAh0FdP/pO28IkQyTeg==
+
uvu@^0.5.0:
version "0.5.6"
resolved "https://registry.yarnpkg.com/uvu/-/uvu-0.5.6.tgz#2754ca20bcb0bb59b64e9985e84d2e81058502df"
@@ -13301,6 +13741,28 @@ which-boxed-primitive@^1.0.2:
is-string "^1.0.5"
is-symbol "^1.0.3"
+which-collection@^1.0.1:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/which-collection/-/which-collection-1.0.1.tgz#70eab71ebbbd2aefaf32f917082fc62cdcb70906"
+ integrity sha512-W8xeTUwaln8i3K/cY1nGXzdnVZlidBcagyNFtBdD5kxnb4TvGKR7FfSIS3mYpwWS1QUCutfKz8IY8RjftB0+1A==
+ dependencies:
+ is-map "^2.0.1"
+ is-set "^2.0.1"
+ is-weakmap "^2.0.1"
+ is-weakset "^2.0.1"
+
+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@^1.2.14, which@^1.2.9:
version "1.3.1"
resolved "https://registry.yarnpkg.com/which/-/which-1.3.1.tgz#a45043d54f5805316da8d62f9f50918d3da70b0a"
@@ -13541,7 +14003,7 @@ yargs@^16.0.0, yargs@^16.1.0, yargs@^16.2.0:
y18n "^5.0.5"
yargs-parser "^20.2.2"
-yargs@^17.0.0, yargs@^17.3.1:
+yargs@^17.0.0:
version "17.6.2"
resolved "https://registry.yarnpkg.com/yargs/-/yargs-17.6.2.tgz#2e23f2944e976339a1ee00f18c77fedee8332541"
integrity sha512-1/9UrdHjDZc0eOU0HxOHoS78C69UD3JRMvzlJ7S79S2nTaWRA/whGCTV8o9e/N/1Va9YIV7Q4sOxD8VV4pCWOw==
@@ -13554,6 +14016,19 @@ yargs@^17.0.0, yargs@^17.3.1:
y18n "^5.0.5"
yargs-parser "^21.1.1"
+yargs@^17.6.2:
+ version "17.7.1"
+ resolved "https://registry.yarnpkg.com/yargs/-/yargs-17.7.1.tgz#34a77645201d1a8fc5213ace787c220eabbd0967"
+ integrity sha512-cwiTb08Xuv5fqF4AovYacTFNxk62th7LKJ6BL9IGUpTJrWoU7/7WdQGTP2SjKf1dUNBGzDd28p/Yfs/GI6JrLw==
+ dependencies:
+ cliui "^8.0.1"
+ escalade "^3.1.1"
+ get-caller-file "^2.0.5"
+ require-directory "^2.1.1"
+ string-width "^4.2.3"
+ y18n "^5.0.5"
+ yargs-parser "^21.1.1"
+
yauzl@^2.10.0:
version "2.10.0"
resolved "https://registry.yarnpkg.com/yauzl/-/yauzl-2.10.0.tgz#c7eb17c93e112cb1086fa6d8e51fb0667b79a5f9"
@@ -13585,7 +14060,7 @@ yup@0.32.11:
property-expr "^2.0.4"
toposort "^2.0.2"
-zod@3.20.2:
- version "3.20.2"
- resolved "https://registry.yarnpkg.com/zod/-/zod-3.20.2.tgz#068606642c8f51b3333981f91c0a8ab37dfc2807"
- integrity sha512-1MzNQdAvO+54H+EaK5YpyEy0T+Ejo/7YLHS93G3RnYWh5gaotGHwGeN/ZO687qEDU2y4CdStQYXVHIgrUl5UVQ==
+zod@3.20.6:
+ version "3.20.6"
+ resolved "https://registry.yarnpkg.com/zod/-/zod-3.20.6.tgz#2f2f08ff81291d47d99e86140fedb4e0db08361a"
+ integrity sha512-oyu0m54SGCtzh6EClBVqDDlAYRz4jrVtKwQ7ZnsEmMI9HnzuZFj8QFwAY1M5uniIYACdGvv0PBWPF2kO0aNofA==
From a4d07f5afab613317d96c9c6e9b47157a5a28986 Mon Sep 17 00:00:00 2001
From: Brandon Cohen
Date: Thu, 2 Mar 2023 08:21:55 -0500
Subject: [PATCH 03/39] fix(ui): corrected default badge hover opacity (#3369)
---
src/components/Common/Badge/index.tsx | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/components/Common/Badge/index.tsx b/src/components/Common/Badge/index.tsx
index 47ce6586c..17eda5b1d 100644
--- a/src/components/Common/Badge/index.tsx
+++ b/src/components/Common/Badge/index.tsx
@@ -71,7 +71,7 @@ const Badge = (
'bg-indigo-500 bg-opacity-80 border border-indigo-500 !text-indigo-100'
);
if (href) {
- badgeStyle.push('hover:bg-indigo-500 bg-opacity-100');
+ badgeStyle.push('hover:bg-indigo-500 hover:bg-opacity-100');
}
}
From 5f1c10d50aaa430bcda96218ef2cc12a0eb926f3 Mon Sep 17 00:00:00 2001
From: Yalagin
Date: Thu, 27 Apr 2023 21:19:36 +0700
Subject: [PATCH 04/39] feat(add watchlist): adding midding functionality from
overserr
feat(add watchlist): adding missing functionality from overserr
---
cypress/e2e/discover.cy.ts | 2 +-
overseerr-api.yml | 66 ++++++++
package.json | 1 +
server/entity/Media.ts | 20 ++-
server/entity/User.ts | 4 +
server/entity/Watchlist.ts | 148 ++++++++++++++++++
server/lib/watchlistsync.ts | 1 +
.../migration/1682608634546-AddWatchlists.ts | 19 +++
server/repositories/watchlist.repository.ts | 11 ++
server/routes/collection.ts | 1 +
server/routes/discover.ts | 32 ++++
server/routes/index.ts | 2 +
server/routes/movie.ts | 2 +
server/routes/person.ts | 2 +
server/routes/search.ts | 1 +
server/routes/tv.ts | 2 +
server/routes/user/index.ts | 22 ++-
server/routes/watchlist.ts | 65 ++++++++
src/components/CollectionDetails/index.tsx | 1 +
src/components/Common/ListView/index.tsx | 4 +
.../Discover/DiscoverWatchlist/index.tsx | 2 +-
.../Discover/PlexWatchlistSlider/index.tsx | 8 +-
src/components/Discover/constants.ts | 2 +-
src/components/MediaSlider/index.tsx | 4 +
.../NotificationTypeSelector/index.tsx | 2 +-
src/components/PersonDetails/index.tsx | 2 +
src/components/TitleCard/TmdbTitleCard.tsx | 10 ++
src/components/TitleCard/index.tsx | 110 ++++++++++++-
src/i18n/locale/en.json | 6 +-
src/i18n/locale/ua.json | 2 +-
30 files changed, 534 insertions(+), 20 deletions(-)
create mode 100644 server/entity/Watchlist.ts
create mode 100644 server/migration/1682608634546-AddWatchlists.ts
create mode 100644 server/repositories/watchlist.repository.ts
create mode 100644 server/routes/watchlist.ts
diff --git a/cypress/e2e/discover.cy.ts b/cypress/e2e/discover.cy.ts
index 545f25658..7f2f965bb 100644
--- a/cypress/e2e/discover.cy.ts
+++ b/cypress/e2e/discover.cy.ts
@@ -187,7 +187,7 @@ describe('Discover', () => {
cy.wait('@getWatchlist');
- const sliderHeader = cy.contains('.slider-header', 'Your Plex Watchlist');
+ const sliderHeader = cy.contains('.slider-header', 'Your Watchlist');
sliderHeader.scrollIntoView();
diff --git a/overseerr-api.yml b/overseerr-api.yml
index 20bc21849..013344eb6 100644
--- a/overseerr-api.yml
+++ b/overseerr-api.yml
@@ -36,6 +36,8 @@ tags:
description: Endpoints related to retrieving collection details.
- name: service
description: Endpoints related to getting service (Radarr/Sonarr) details.
+ - name: watchlist
+ description: Collection of media to watch later
servers:
- url: '{server}/api/v1'
variables:
@@ -44,6 +46,34 @@ servers:
components:
schemas:
+ Watchlist:
+ type: object
+ properties:
+ id:
+ type: integer
+ example: 1
+ readOnly: true
+ tmdbId:
+ type: number
+ example: 1
+ ratingKey:
+ type: string
+ type:
+ type: string
+ title:
+ type: string
+ media:
+ $ref: '#/components/schemas/MediaInfo'
+ createdAt:
+ type: string
+ example: '2020-09-12T10:00:27.000Z'
+ readOnly: true
+ updatedAt:
+ type: string
+ example: '2020-09-12T10:00:27.000Z'
+ readOnly: true
+ requestedBy:
+ $ref: '#/components/schemas/User'
User:
type: object
properties:
@@ -3962,6 +3992,41 @@ paths:
restricted:
type: boolean
example: false
+ /watchlist:
+ post:
+ summary: Add media to watchlist
+ tags:
+ - watchlist
+ requestBody:
+ required: true
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Watchlist'
+ responses:
+ '200':
+ description: Watchlist data returned
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Watchlist'
+ /watchlist/{tmdbId}:
+ delete:
+ summary: Delete watchlist item
+ description: Removes a watchlist item.
+ tags:
+ - watchlist
+ parameters:
+ - in: path
+ name: tmdbId
+ description: tmdbId ID
+ required: true
+ example: '1'
+ schema:
+ type: string
+ responses:
+ '204':
+ description: Succesfully removed watchlist item
/user/{userId}/watchlist:
get:
summary: Get the Plex watchlist for a specific user
@@ -3969,6 +4034,7 @@ paths:
Retrieves a user's Plex Watchlist in a JSON object.
tags:
- users
+ - watchlist
parameters:
- in: path
name: userId
diff --git a/package.json b/package.json
index f1f2de39e..280d6b690 100644
--- a/package.json
+++ b/package.json
@@ -8,6 +8,7 @@
"build:next": "next build",
"build": "yarn build:next && yarn build:server",
"lint": "eslint \"./server/**/*.{ts,tsx}\" \"./src/**/*.{ts,tsx}\" --cache",
+ "lintfix": "eslint \"./server/**/*.{ts,tsx}\" \"./src/**/*.{ts,tsx}\" --fix",
"start": "NODE_ENV=production node dist/index.js",
"i18n:extract": "extract-messages -l=en -o src/i18n/locale -d en --flat true --overwriteDefault true \"./src/**/!(*.test).{ts,tsx}\"",
"migration:generate": "ts-node -r tsconfig-paths/register --project server/tsconfig.json ./node_modules/typeorm/cli.js migration:generate -d server/datasource.ts",
diff --git a/server/entity/Media.ts b/server/entity/Media.ts
index 47217aa09..68a5622c0 100644
--- a/server/entity/Media.ts
+++ b/server/entity/Media.ts
@@ -3,6 +3,8 @@ import SonarrAPI from '@server/api/servarr/sonarr';
import { MediaStatus, MediaType } from '@server/constants/media';
import { MediaServerType } from '@server/constants/server';
import { getRepository } from '@server/datasource';
+import type { User } from '@server/entity/User';
+import { Watchlist } from '@server/entity/Watchlist';
import type { DownloadingItem } from '@server/lib/downloadtracker';
import downloadTracker from '@server/lib/downloadtracker';
import { getSettings } from '@server/lib/settings';
@@ -12,7 +14,6 @@ import {
Column,
CreateDateColumn,
Entity,
- In,
Index,
OneToMany,
PrimaryGeneratedColumn,
@@ -25,6 +26,7 @@ import Season from './Season';
@Entity()
class Media {
public static async getRelatedMedia(
+ user: User | undefined,
tmdbIds: number | number[]
): Promise {
const mediaRepository = getRepository(Media);
@@ -37,9 +39,16 @@ class Media {
finalIds = tmdbIds;
}
- const media = await mediaRepository.find({
- where: { tmdbId: In(finalIds) },
- });
+ const media = await mediaRepository
+ .createQueryBuilder('media')
+ .leftJoinAndSelect(
+ 'media.watchlists',
+ 'watchlist',
+ 'media.id= watchlist.media and watchlist.requestedBy = :userId',
+ { userId: user?.id }
+ ) //,
+ .where(' media.tmdbId in (:...finalIds)', { finalIds })
+ .getMany();
return media;
} catch (e) {
@@ -94,6 +103,9 @@ class Media {
@OneToMany(() => MediaRequest, (request) => request.media, { cascade: true })
public requests: MediaRequest[];
+ @OneToMany(() => Watchlist, (watchlist) => watchlist.media)
+ public watchlists: null | Watchlist[];
+
@OneToMany(() => Season, (season) => season.media, {
cascade: true,
eager: true,
diff --git a/server/entity/User.ts b/server/entity/User.ts
index 8780e2d8a..e4c8314c3 100644
--- a/server/entity/User.ts
+++ b/server/entity/User.ts
@@ -1,6 +1,7 @@
import { MediaRequestStatus, MediaType } from '@server/constants/media';
import { UserType } from '@server/constants/user';
import { getRepository } from '@server/datasource';
+import { Watchlist } from '@server/entity/Watchlist';
import type { QuotaResponse } from '@server/interfaces/api/userInterfaces';
import PreparedEmail from '@server/lib/email';
import type { PermissionCheckOptions } from '@server/lib/permissions';
@@ -103,6 +104,9 @@ export class User {
@OneToMany(() => MediaRequest, (request) => request.requestedBy)
public requests: MediaRequest[];
+ @OneToMany(() => Watchlist, (watchlist) => watchlist.requestedBy)
+ public watchlists: Watchlist[];
+
@Column({ nullable: true })
public movieQuotaLimit?: number;
diff --git a/server/entity/Watchlist.ts b/server/entity/Watchlist.ts
new file mode 100644
index 000000000..bf362acb4
--- /dev/null
+++ b/server/entity/Watchlist.ts
@@ -0,0 +1,148 @@
+import TheMovieDb from '@server/api/themoviedb';
+import { MediaType } from '@server/constants/media';
+import { getRepository } from '@server/datasource';
+import Media from '@server/entity/Media';
+import { User } from '@server/entity/User';
+import type { WatchlistItem } from '@server/interfaces/api/discoverInterfaces';
+import logger from '@server/logger';
+import {
+ Column,
+ CreateDateColumn,
+ Entity,
+ Index,
+ ManyToOne,
+ PrimaryGeneratedColumn,
+ Unique,
+ UpdateDateColumn,
+} from 'typeorm';
+
+export class DuplicateWatchlistRequestError extends Error {}
+export class NotFoundError extends Error {
+ constructor(message = 'Not found') {
+ super(message);
+ this.name = 'NotFoundError';
+ }
+}
+
+@Entity()
+@Unique('UNIQUE_USER_DB', ['tmdbId', 'requestedBy'])
+export class Watchlist implements WatchlistItem {
+ @PrimaryGeneratedColumn()
+ id: number;
+
+ @Column({ type: 'varchar' })
+ public ratingKey = '';
+
+ @Column({ type: 'varchar' })
+ public mediaType: MediaType;
+
+ @Column({ type: 'varchar' })
+ title = '';
+
+ @Column()
+ @Index()
+ public tmdbId: number;
+
+ @ManyToOne(() => User, (user) => user.watchlists, {
+ eager: true,
+ onDelete: 'CASCADE',
+ })
+ public requestedBy: User;
+
+ @ManyToOne(() => Media, (media) => media.watchlists, {
+ eager: true,
+ onDelete: 'CASCADE',
+ })
+ public media: Media;
+
+ @CreateDateColumn()
+ public createdAt: Date;
+
+ @UpdateDateColumn()
+ public updatedAt: Date;
+
+ constructor(init?: Partial) {
+ Object.assign(this, init);
+ }
+
+ public static async createWatchlist(
+ watchlistRequest: Watchlist,
+ user: User
+ ): Promise {
+ const watchlistRepository = getRepository(this);
+ const mediaRepository = getRepository(Media);
+ const tmdb = new TheMovieDb();
+
+ const tmdbMedia =
+ watchlistRequest.mediaType === MediaType.MOVIE
+ ? await tmdb.getMovie({ movieId: watchlistRequest.tmdbId })
+ : await tmdb.getTvShow({ tvId: watchlistRequest.tmdbId });
+
+ const existing = await watchlistRepository
+ .createQueryBuilder('watchlist')
+ .leftJoinAndSelect('watchlist.requestedBy', 'user')
+ .where('user.id = :userId', { userId: user.id })
+ .andWhere('watchlist.tmdbId = :tmdbId', {
+ tmdbId: watchlistRequest.tmdbId,
+ })
+ .andWhere('watchlist.mediaType = :mediaType', {
+ mediaType: watchlistRequest.mediaType,
+ })
+ .getMany();
+
+ if (existing && existing.length > 0) {
+ logger.warn('Duplicate request for watchlist blocked', {
+ tmdbId: watchlistRequest.tmdbId,
+ mediaType: watchlistRequest.mediaType,
+ label: 'Watchlist',
+ });
+
+ throw new DuplicateWatchlistRequestError();
+ }
+
+ let media = await mediaRepository.findOne({
+ where: {
+ tmdbId: watchlistRequest.tmdbId,
+ mediaType: watchlistRequest.mediaType,
+ },
+ });
+
+ if (!media) {
+ media = new Media({
+ tmdbId: tmdbMedia.id,
+ tvdbId: tmdbMedia.external_ids.tvdb_id,
+ mediaType: watchlistRequest.mediaType,
+ });
+ }
+
+ const watchlist = new this({
+ ...watchlistRequest,
+ requestedBy: user,
+ media,
+ });
+
+ await mediaRepository.save(media);
+ await watchlistRepository.save(watchlist);
+ return watchlist;
+ }
+
+ public static async deleteWatchlist(
+ tmdbId: Watchlist['tmdbId'],
+ user: User
+ ): Promise {
+ const watchlistRepository = getRepository(this);
+ const watchlist = await watchlistRepository.findOneBy({
+ tmdbId,
+ requestedBy: { id: user.id },
+ });
+ if (!watchlist) {
+ throw new NotFoundError('not Found');
+ }
+
+ if (watchlist) {
+ await watchlistRepository.delete(watchlist.id);
+ }
+
+ return watchlist;
+ }
+}
diff --git a/server/lib/watchlistsync.ts b/server/lib/watchlistsync.ts
index 46147f3fc..b4a072970 100644
--- a/server/lib/watchlistsync.ts
+++ b/server/lib/watchlistsync.ts
@@ -65,6 +65,7 @@ class WatchlistSync {
const response = await plexTvApi.getWatchlist({ size: 200 });
const mediaItems = await Media.getRelatedMedia(
+ user,
response.items.map((i) => i.tmdbId)
);
diff --git a/server/migration/1682608634546-AddWatchlists.ts b/server/migration/1682608634546-AddWatchlists.ts
new file mode 100644
index 000000000..492fb183e
--- /dev/null
+++ b/server/migration/1682608634546-AddWatchlists.ts
@@ -0,0 +1,19 @@
+import type { MigrationInterface, QueryRunner } from 'typeorm';
+
+export class AddWatchlists1682608634546 implements MigrationInterface {
+ name = 'AddWatchlists1682608634546';
+
+ public async up(queryRunner: QueryRunner): Promise {
+ await queryRunner.query(
+ `CREATE TABLE "watchlist" ("id" integer PRIMARY KEY AUTOINCREMENT NOT NULL, "ratingKey" varchar NOT NULL, "mediaType" varchar NOT NULL, "title" varchar NOT NULL, "tmdbId" integer NOT NULL, "createdAt" datetime NOT NULL DEFAULT (datetime('now')), "updatedAt" datetime NOT NULL DEFAULT (datetime('now')), "requestedById" integer, "mediaId" integer, CONSTRAINT "UNIQUE_USER_DB" UNIQUE ("tmdbId", "requestedById"))`
+ );
+ await queryRunner.query(
+ `CREATE INDEX "IDX_939f205946256cc0d2a1ac51a8" ON "watchlist" ("tmdbId") `
+ );
+ }
+
+ public async down(queryRunner: QueryRunner): Promise {
+ await queryRunner.query(`DROP INDEX "IDX_939f205946256cc0d2a1ac51a8"`);
+ await queryRunner.query(`DROP TABLE "watchlist"`);
+ }
+}
diff --git a/server/repositories/watchlist.repository.ts b/server/repositories/watchlist.repository.ts
new file mode 100644
index 000000000..128e64f5a
--- /dev/null
+++ b/server/repositories/watchlist.repository.ts
@@ -0,0 +1,11 @@
+import { getRepository } from '@server/datasource';
+import { Watchlist } from '@server/entity/Watchlist';
+
+export const UserRepository = getRepository(Watchlist).extend({
+ // findByName(firstName: string, lastName: string) {
+ // return this.createQueryBuilder("user")
+ // .where("user.firstName = :firstName", { firstName })
+ // .andWhere("user.lastName = :lastName", { lastName })
+ // .getMany()
+ // },
+});
diff --git a/server/routes/collection.ts b/server/routes/collection.ts
index d58b0357d..cc2a36e76 100644
--- a/server/routes/collection.ts
+++ b/server/routes/collection.ts
@@ -16,6 +16,7 @@ collectionRoutes.get<{ id: string }>('/:id', async (req, res, next) => {
});
const media = await Media.getRelatedMedia(
+ req.user,
collection.parts.map((part) => part.id)
);
diff --git a/server/routes/discover.ts b/server/routes/discover.ts
index f032fa66b..640572f0c 100644
--- a/server/routes/discover.ts
+++ b/server/routes/discover.ts
@@ -6,6 +6,7 @@ import { MediaType } from '@server/constants/media';
import { getRepository } from '@server/datasource';
import Media from '@server/entity/Media';
import { User } from '@server/entity/User';
+import { Watchlist } from '@server/entity/Watchlist';
import type {
GenreSliderItem,
WatchlistResponse,
@@ -100,6 +101,7 @@ discoverRoutes.get('/movies', async (req, res, next) => {
});
const media = await Media.getRelatedMedia(
+ req.user,
data.results.map((result) => result.id)
);
@@ -164,6 +166,7 @@ discoverRoutes.get<{ language: string }>(
});
const media = await Media.getRelatedMedia(
+ req.user,
data.results.map((result) => result.id)
);
@@ -221,6 +224,7 @@ discoverRoutes.get<{ genreId: string }>(
});
const media = await Media.getRelatedMedia(
+ req.user,
data.results.map((result) => result.id)
);
@@ -268,6 +272,7 @@ discoverRoutes.get<{ studioId: string }>(
});
const media = await Media.getRelatedMedia(
+ req.user,
data.results.map((result) => result.id)
);
@@ -317,6 +322,7 @@ discoverRoutes.get('/movies/upcoming', async (req, res, next) => {
});
const media = await Media.getRelatedMedia(
+ req.user,
data.results.map((result) => result.id)
);
@@ -375,6 +381,7 @@ discoverRoutes.get('/tv', async (req, res, next) => {
});
const media = await Media.getRelatedMedia(
+ req.user,
data.results.map((result) => result.id)
);
@@ -438,6 +445,7 @@ discoverRoutes.get<{ language: string }>(
});
const media = await Media.getRelatedMedia(
+ req.user,
data.results.map((result) => result.id)
);
@@ -495,6 +503,7 @@ discoverRoutes.get<{ genreId: string }>(
});
const media = await Media.getRelatedMedia(
+ req.user,
data.results.map((result) => result.id)
);
@@ -542,6 +551,7 @@ discoverRoutes.get<{ networkId: string }>(
});
const media = await Media.getRelatedMedia(
+ req.user,
data.results.map((result) => result.id)
);
@@ -591,6 +601,7 @@ discoverRoutes.get('/tv/upcoming', async (req, res, next) => {
});
const media = await Media.getRelatedMedia(
+ req.user,
data.results.map((result) => result.id)
);
@@ -629,6 +640,7 @@ discoverRoutes.get('/trending', async (req, res, next) => {
});
const media = await Media.getRelatedMedia(
+ req.user,
data.results.map((result) => result.id)
);
@@ -681,6 +693,7 @@ discoverRoutes.get<{ keywordId: string }>(
});
const media = await Media.getRelatedMedia(
+ req.user,
data.results.map((result) => result.id)
);
@@ -813,6 +826,25 @@ discoverRoutes.get, WatchlistResponse>(
select: ['id', 'plexToken'],
});
+ if (activeUser) {
+ const [result, total] = await getRepository(Watchlist).findAndCount({
+ where: { requestedBy: { id: activeUser?.id } },
+ relations: {
+ /*requestedBy: true,media:true*/
+ },
+ // loadRelationIds: true,
+ take: itemsPerPage,
+ skip: offset,
+ });
+ if (total) {
+ return res.json({
+ page: page,
+ totalPages: total / itemsPerPage,
+ totalResults: total,
+ results: result,
+ });
+ }
+ }
if (!activeUser?.plexToken) {
// We will just return an empty array if the user has no Plex token
return res.json({
diff --git a/server/routes/index.ts b/server/routes/index.ts
index f76f09fa0..552ca78d0 100644
--- a/server/routes/index.ts
+++ b/server/routes/index.ts
@@ -15,6 +15,7 @@ import { mapWatchProviderDetails } from '@server/models/common';
import { mapProductionCompany } from '@server/models/Movie';
import { mapNetwork } from '@server/models/Tv';
import settingsRoutes from '@server/routes/settings';
+import watchlistRoutes from '@server/routes/watchlist';
import { appDataPath, appDataStatus } from '@server/utils/appDataVolume';
import { getAppVersion, getCommitTag } from '@server/utils/appVersion';
import restartFlag from '@server/utils/restartFlag';
@@ -116,6 +117,7 @@ router.use('/settings', isAuthenticated(Permission.ADMIN), settingsRoutes);
router.use('/search', isAuthenticated(), searchRoutes);
router.use('/discover', isAuthenticated(), discoverRoutes);
router.use('/request', isAuthenticated(), requestRoutes);
+router.use('/watchlist', isAuthenticated(), watchlistRoutes);
router.use('/movie', isAuthenticated(), movieRoutes);
router.use('/tv', isAuthenticated(), tvRoutes);
router.use('/media', isAuthenticated(), mediaRoutes);
diff --git a/server/routes/movie.ts b/server/routes/movie.ts
index f11cead8c..8d609262b 100644
--- a/server/routes/movie.ts
+++ b/server/routes/movie.ts
@@ -45,6 +45,7 @@ movieRoutes.get('/:id/recommendations', async (req, res, next) => {
});
const media = await Media.getRelatedMedia(
+ req.user,
results.results.map((result) => result.id)
);
@@ -86,6 +87,7 @@ movieRoutes.get('/:id/similar', async (req, res, next) => {
});
const media = await Media.getRelatedMedia(
+ req.user,
results.results.map((result) => result.id)
);
diff --git a/server/routes/person.ts b/server/routes/person.ts
index 7f5d62236..d5cb89867 100644
--- a/server/routes/person.ts
+++ b/server/routes/person.ts
@@ -42,10 +42,12 @@ personRoutes.get('/:id/combined_credits', async (req, res, next) => {
});
const castMedia = await Media.getRelatedMedia(
+ req.user,
combinedCredits.cast.map((result) => result.id)
);
const crewMedia = await Media.getRelatedMedia(
+ req.user,
combinedCredits.crew.map((result) => result.id)
);
diff --git a/server/routes/search.ts b/server/routes/search.ts
index b9254221a..0de090cad 100644
--- a/server/routes/search.ts
+++ b/server/routes/search.ts
@@ -34,6 +34,7 @@ searchRoutes.get('/', async (req, res, next) => {
}
const media = await Media.getRelatedMedia(
+ req.user,
results.results.map((result) => result.id)
);
diff --git a/server/routes/tv.ts b/server/routes/tv.ts
index d45e40620..1d2b4deed 100644
--- a/server/routes/tv.ts
+++ b/server/routes/tv.ts
@@ -69,6 +69,7 @@ tvRoutes.get('/:id/recommendations', async (req, res, next) => {
});
const media = await Media.getRelatedMedia(
+ req.user,
results.results.map((result) => result.id)
);
@@ -109,6 +110,7 @@ tvRoutes.get('/:id/similar', async (req, res, next) => {
});
const media = await Media.getRelatedMedia(
+ req.user,
results.results.map((result) => result.id)
);
diff --git a/server/routes/user/index.ts b/server/routes/user/index.ts
index 55a912f36..ada7df393 100644
--- a/server/routes/user/index.ts
+++ b/server/routes/user/index.ts
@@ -8,6 +8,7 @@ import Media from '@server/entity/Media';
import { MediaRequest } from '@server/entity/MediaRequest';
import { User } from '@server/entity/User';
import { UserPushSubscription } from '@server/entity/UserPushSubscription';
+import { Watchlist } from '@server/entity/Watchlist';
import type { WatchlistResponse } from '@server/interfaces/api/discoverInterfaces';
import type {
QuotaResponse,
@@ -699,8 +700,7 @@ router.get<{ id: string }, WatchlistResponse>(
) {
return next({
status: 403,
- message:
- "You do not have permission to view this user's Plex Watchlist.",
+ message: "You do not have permission to view this user's Watchlist.",
});
}
@@ -714,6 +714,24 @@ router.get<{ id: string }, WatchlistResponse>(
});
if (!user?.plexToken) {
+ if (user) {
+ const [result, total] = await getRepository(Watchlist).findAndCount({
+ where: { requestedBy: { id: user?.id } },
+ relations: { requestedBy: true },
+ // loadRelationIds: true,
+ take: itemsPerPage,
+ skip: offset,
+ });
+ if (total) {
+ return res.json({
+ page: page,
+ totalPages: total / itemsPerPage,
+ totalResults: total,
+ results: result,
+ });
+ }
+ }
+
// We will just return an empty array if the user has no Plex token
return res.json({
page: 1,
diff --git a/server/routes/watchlist.ts b/server/routes/watchlist.ts
new file mode 100644
index 000000000..cbf165e29
--- /dev/null
+++ b/server/routes/watchlist.ts
@@ -0,0 +1,65 @@
+import {
+ DuplicateWatchlistRequestError,
+ NotFoundError,
+ Watchlist,
+} from '@server/entity/Watchlist';
+import logger from '@server/logger';
+import { Router } from 'express';
+import { QueryFailedError } from 'typeorm';
+
+const watchlistRoutes = Router();
+
+watchlistRoutes.post(
+ '/',
+ async (req, res, next) => {
+ try {
+ if (!req.user) {
+ return next({
+ status: 401,
+ message: 'You must be logged in to add watchlist.',
+ });
+ }
+ const request = await Watchlist.createWatchlist(req.body, req.user);
+ return res.status(201).json(request);
+ } catch (error) {
+ if (!(error instanceof Error)) {
+ return;
+ }
+ switch (error.constructor) {
+ case QueryFailedError:
+ logger.warn('Something wrong with data watchlist', {
+ ...req.body,
+ label: 'Watchlist',
+ });
+ return next({ status: 409, message: 'Something wrong' });
+ case DuplicateWatchlistRequestError:
+ return next({ status: 409, message: error.message });
+ default:
+ return next({ status: 500, message: error.message });
+ }
+ }
+ }
+);
+
+watchlistRoutes.delete('/:tmdbId', async (req, res, next) => {
+ if (!req.user) {
+ return next({
+ status: 401,
+ message: 'You must be logged in to delete watchlist data.',
+ });
+ }
+ try {
+ await Watchlist.deleteWatchlist(Number(req.params.tmdbId), req.user);
+ return res.status(204).send();
+ } catch (e) {
+ if (e instanceof NotFoundError) {
+ return next({
+ status: 401,
+ message: e.message,
+ });
+ }
+ return next({ status: 500, message: e.message });
+ }
+});
+
+export default watchlistRoutes;
diff --git a/src/components/CollectionDetails/index.tsx b/src/components/CollectionDetails/index.tsx
index 34b379e24..4b3b0fe4d 100644
--- a/src/components/CollectionDetails/index.tsx
+++ b/src/components/CollectionDetails/index.tsx
@@ -338,6 +338,7 @@ const CollectionDetails = ({ collection }: CollectionDetailsProps) => {
Plex Watchlist will appear here.',
});
@@ -22,12 +22,11 @@ const PlexWatchlistSlider = () => {
totalPages: number;
totalResults: number;
results: WatchlistItem[];
- }>(user?.userType === UserType.PLEX ? '/api/v1/discover/watchlist' : null, {
+ }>('/api/v1/discover/watchlist', {
revalidateOnMount: true,
});
if (
- user?.userType !== UserType.PLEX ||
(watchlistItems &&
watchlistItems.results.length === 0 &&
!user?.settings?.watchlistSyncMovies &&
@@ -69,6 +68,7 @@ const PlexWatchlistSlider = () => {
key={`watchlist-slider-item-${item.ratingKey}`}
tmdbId={item.tmdbId}
type={item.mediaType}
+ isAddedToWatchlist={true}
/>
))}
/>
diff --git a/src/components/Discover/constants.ts b/src/components/Discover/constants.ts
index 6fcbe43cb..c58eba7fa 100644
--- a/src/components/Discover/constants.ts
+++ b/src/components/Discover/constants.ts
@@ -74,7 +74,7 @@ export const sliderTitles = defineMessages({
recentlyAdded: 'Recently Added',
upcoming: 'Upcoming Movies',
trending: 'Trending',
- plexwatchlist: 'Your Plex Watchlist',
+ plexwatchlist: 'Your Watchlist',
moviegenres: 'Movie Genres',
tvgenres: 'Series Genres',
studios: 'Studios',
diff --git a/src/components/MediaSlider/index.tsx b/src/components/MediaSlider/index.tsx
index 54b5cc801..4ca34d8f1 100644
--- a/src/components/MediaSlider/index.tsx
+++ b/src/components/MediaSlider/index.tsx
@@ -95,7 +95,9 @@ const MediaSlider = ({
case 'movie':
return (
{
return (
{
return (
{
@@ -23,6 +24,7 @@ const TmdbTitleCard = ({
tvdbId,
type,
canExpand,
+ isAddedToWatchlist = false,
}: TmdbTitleCardProps) => {
const { hasPermission } = useUser();
@@ -56,7 +58,11 @@ const TmdbTitleCard = ({
return isMovie(title) ? (
) : (
{title} added to watchlist successfully!',
+ watchlistDeleted:
+ '{title} Removed from watchlist successfully!',
+ watchlistCancel: 'watchlist for {title} canceled.',
+ watchlistError: 'Something went wrong try again.',
+});
+
const TitleCard = ({
id,
image,
@@ -38,6 +58,7 @@ const TitleCard = ({
title,
status,
mediaType,
+ isAddedToWatchlist = false,
inProgress = false,
canExpand = false,
}: TitleCardProps) => {
@@ -48,6 +69,10 @@ const TitleCard = ({
const [currentStatus, setCurrentStatus] = useState(status);
const [showDetail, setShowDetail] = useState(false);
const [showRequestModal, setShowRequestModal] = useState(false);
+ const { addToast } = useToasts();
+ const [toggleWatchlist, setToggleWatchlist] = useState(
+ !isAddedToWatchlist
+ );
// Just to get the year from the date
if (year) {
@@ -68,6 +93,65 @@ const TitleCard = ({
[]
);
+ const onClickWatchlistBtn = async (): Promise => {
+ setIsUpdating(true);
+ try {
+ const response = await axios.post('/api/v1/watchlist', {
+ tmdbId: id,
+ mediaType,
+ title,
+ });
+ mutate('/api/v1/discover/watchlist');
+ if (response.data) {
+ addToast(
+
+ {intl.formatMessage(messages.watchlistSuccess, {
+ title,
+ strong: (msg: React.ReactNode) => {msg},
+ })}
+ ,
+ { appearance: 'success', autoDismiss: true }
+ );
+ }
+ } catch (e) {
+ addToast(intl.formatMessage(messages.watchlistError), {
+ appearance: 'error',
+ autoDismiss: true,
+ });
+ } finally {
+ setIsUpdating(false);
+ setToggleWatchlist((prevState) => !prevState);
+ }
+ };
+
+ const onClickDeleteWatchlistBtn = async (): Promise => {
+ setIsUpdating(true);
+ try {
+ const response = await axios.delete('/api/v1/watchlist/' + id);
+
+ if (response.status === 204) {
+ addToast(
+
+ {intl.formatMessage(messages.watchlistDeleted, {
+ title,
+ strong: (msg: React.ReactNode) => {msg},
+ })}
+ ,
+ { appearance: 'info', autoDismiss: true }
+ );
+ }
+ } catch (e) {
+ addToast(intl.formatMessage(messages.watchlistError), {
+ appearance: 'error',
+ autoDismiss: true,
+ });
+ } finally {
+ setIsUpdating(false);
+ mutate('/api/v1/discover/watchlist');
+ setToggleWatchlist((prevState) => !prevState);
+ }
+ };
+
const closeModal = useCallback(() => setShowRequestModal(false), []);
const showRequestButton = hasPermission(
@@ -141,6 +225,28 @@ const TitleCard = ({
: intl.formatMessage(globalMessages.tvshow)}
+ {showDetail && (
+ <>
+ {toggleWatchlist ? (
+
+ ) : (
+
+ )}
+ >
+ )}
{currentStatus && currentStatus !== MediaStatus.UNKNOWN && (
Plex Watchlist will appear here.",
"components.Discover.noRequests": "No requests.",
- "components.Discover.plexwatchlist": "Your Plex Watchlist",
+ "components.Discover.plexwatchlist": "Your Watchlist",
"components.Discover.popularmovies": "Popular Movies",
"components.Discover.populartv": "Popular Series",
"components.Discover.recentlyAdded": "Recently Added",
@@ -210,7 +210,7 @@
"components.NotificationTypeSelector.mediaapproved": "Request Approved",
"components.NotificationTypeSelector.mediaapprovedDescription": "Send notifications when media requests are manually approved.",
"components.NotificationTypeSelector.mediaautorequested": "Request Automatically Submitted",
- "components.NotificationTypeSelector.mediaautorequestedDescription": "Get notified when new media requests are automatically submitted for items on your Plex Watchlist.",
+ "components.NotificationTypeSelector.mediaautorequestedDescription": "Get notified when new media requests are automatically submitted for items on Your Watchlist.",
"components.NotificationTypeSelector.mediaavailable": "Request Available",
"components.NotificationTypeSelector.mediaavailableDescription": "Send notifications when media requests become available.",
"components.NotificationTypeSelector.mediadeclined": "Request Declined",
diff --git a/src/i18n/locale/ua.json b/src/i18n/locale/ua.json
index af02cc6d1..9963798e0 100644
--- a/src/i18n/locale/ua.json
+++ b/src/i18n/locale/ua.json
@@ -12,7 +12,7 @@
"components.Discover.DiscoverStudio.studioMovies": "Фільми {studio}",
"components.Discover.DiscoverTvGenre.genreSeries": "Серіали в жанрі \"{genre}\"",
"components.Discover.DiscoverTvLanguage.languageSeries": "Серіали мовою \"{language}\"",
- "components.Discover.DiscoverWatchlist.discoverwatchlist": "Your Plex Watchlist",
+ "components.Discover.DiscoverWatchlist.discoverwatchlist": "Your Watchlist",
"components.Discover.DiscoverWatchlist.watchlist": "Список спостереження Plex",
"components.Discover.MovieGenreList.moviegenres": "Фільми за жанрами",
"components.Discover.MovieGenreSlider.moviegenres": "Фільми за жанрами",
From b7e3d285ed35b623062eceb0d99035cafbf075a6 Mon Sep 17 00:00:00 2001
From: Yalagin
Date: Thu, 27 Apr 2023 22:46:46 +0700
Subject: [PATCH 05/39] feat(watchlist): add translation for en
---
src/i18n/locale/en.json | 5 +++++
1 file changed, 5 insertions(+)
diff --git a/src/i18n/locale/en.json b/src/i18n/locale/en.json
index 276214422..b9bab2e4f 100644
--- a/src/i18n/locale/en.json
+++ b/src/i18n/locale/en.json
@@ -1080,6 +1080,11 @@
"components.UserProfile.seriesrequest": "Series Requests",
"components.UserProfile.totalrequests": "Total Requests",
"components.UserProfile.unlimited": "Unlimited",
+ "components.TitleCard.addToWatchList": "Add to watchlist",
+ "components.TitleCard.watchlistCancel": "watchlist for {title} canceled.",
+ "components.TitleCard.watchlistDeleted": "{title} Removed from watchlist successfully!",
+ "components.TitleCard.watchlistError": "Something went wrong try again.",
+ "components.TitleCard.watchlistSuccess": "{title} added to watchlist successfully!",
"i18n.advanced": "Advanced",
"i18n.all": "All",
"i18n.approve": "Approve",
From 469f64d484f3ccb55da2dce18cc48b3737ef0820 Mon Sep 17 00:00:00 2001
From: Yalagin
Date: Tue, 2 May 2023 21:13:18 +0700
Subject: [PATCH 06/39] test(watchlist): fix broken test
---
cypress/e2e/discover.cy.ts | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/cypress/e2e/discover.cy.ts b/cypress/e2e/discover.cy.ts
index 7f2f965bb..50dacde1a 100644
--- a/cypress/e2e/discover.cy.ts
+++ b/cypress/e2e/discover.cy.ts
@@ -203,7 +203,7 @@ describe('Discover', () => {
.find('[data-testid=title-card-title]')
.invoke('text')
.then((text) => {
- cy.contains('.slider-header', 'Plex Watchlist')
+ cy.contains('.slider-header', 'Watchlist')
.next('[data-testid=media-slider]')
.find('[data-testid=title-card]')
.first()
From c08897bdc1cff65862c62347572bbbd01b6c36ac Mon Sep 17 00:00:00 2001
From: Yalagin
Date: Thu, 4 May 2023 22:36:36 +0700
Subject: [PATCH 07/39] fix(watchlist): fix github code scanning
---
server/routes/watchlist.ts | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/server/routes/watchlist.ts b/server/routes/watchlist.ts
index cbf165e29..b8ca0b909 100644
--- a/server/routes/watchlist.ts
+++ b/server/routes/watchlist.ts
@@ -28,7 +28,8 @@ watchlistRoutes.post(
switch (error.constructor) {
case QueryFailedError:
logger.warn('Something wrong with data watchlist', {
- ...req.body,
+ tmdbId: req.body.tmdbId,
+ mediaType: req.body.mediaType,
label: 'Watchlist',
});
return next({ status: 409, message: 'Something wrong' });
From 77a33cb74d744bb747b791785799b632af8c7862 Mon Sep 17 00:00:00 2001
From: Brandon Cohen
Date: Thu, 4 May 2023 14:08:22 -0400
Subject: [PATCH 08/39] fix(ui): corrected mobile menu spacing in collection
details (#3432)
---
src/components/CollectionDetails/index.tsx | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/components/CollectionDetails/index.tsx b/src/components/CollectionDetails/index.tsx
index 34b379e24..ff22ee107 100644
--- a/src/components/CollectionDetails/index.tsx
+++ b/src/components/CollectionDetails/index.tsx
@@ -348,7 +348,7 @@ const CollectionDetails = ({ collection }: CollectionDetailsProps) => {
/>
))}
/>
-
+
);
};
From 7522aa31743b169c903ebdf9d4d698645d27514c Mon Sep 17 00:00:00 2001
From: Brandon Cohen
Date: Wed, 10 May 2023 20:36:12 -0400
Subject: [PATCH 09/39] fix: availability sync file detection (#3371)
* fix: added extra check for unmonitored movies in radarr
* feat: created new radarr/sonarr routes to grab existing series data
* refactor: updated job routes to check by external service id
* fix: season check will now also look at episode file count
---
server/api/servarr/sonarr.ts | 19 ++
server/lib/availabilitySync.ts | 560 +++++++++++++++++++--------------
2 files changed, 335 insertions(+), 244 deletions(-)
diff --git a/server/api/servarr/sonarr.ts b/server/api/servarr/sonarr.ts
index 2e423ef39..6cda2a49c 100644
--- a/server/api/servarr/sonarr.ts
+++ b/server/api/servarr/sonarr.ts
@@ -76,6 +76,15 @@ export interface SonarrSeries {
ignoreEpisodesWithoutFiles?: boolean;
searchForMissingEpisodes?: boolean;
};
+ statistics: {
+ seasonCount: number;
+ episodeFileCount: number;
+ episodeCount: number;
+ totalEpisodeCount: number;
+ sizeOnDisk: number;
+ releaseGroups: string[];
+ percentOfEpisodes: number;
+ };
}
export interface AddSeriesOptions {
@@ -116,6 +125,16 @@ class SonarrAPI extends ServarrBase<{
}
}
+ public async getSeriesById(id: number): Promise {
+ try {
+ const response = await this.axios.get(`/series/${id}`);
+
+ return response.data;
+ } catch (e) {
+ throw new Error(`[Sonarr] Failed to retrieve series by ID: ${e.message}`);
+ }
+ }
+
public async getSeriesByTitle(title: string): Promise {
try {
const response = await this.axios.get('/series/lookup', {
diff --git a/server/lib/availabilitySync.ts b/server/lib/availabilitySync.ts
index 93ccfe391..a9f61fff6 100644
--- a/server/lib/availabilitySync.ts
+++ b/server/lib/availabilitySync.ts
@@ -1,7 +1,8 @@
import type { PlexMetadata } from '@server/api/plexapi';
import PlexAPI from '@server/api/plexapi';
+import type { RadarrMovie } from '@server/api/servarr/radarr';
import RadarrAPI from '@server/api/servarr/radarr';
-import type { SonarrSeason } from '@server/api/servarr/sonarr';
+import type { SonarrSeason, SonarrSeries } from '@server/api/servarr/sonarr';
import SonarrAPI from '@server/api/servarr/sonarr';
import { MediaStatus } from '@server/constants/media';
import { getRepository } from '@server/datasource';
@@ -47,158 +48,150 @@ class AvailabilitySync {
try {
for await (const media of this.loadAvailableMediaPaginated(pageSize)) {
- try {
- if (!this.running) {
- throw new Error('Job aborted');
- }
+ if (!this.running) {
+ throw new Error('Job aborted');
+ }
- const mediaExists = await this.mediaExists(media);
+ const mediaExists = await this.mediaExists(media);
- //We can not delete media so if both versions do not exist, we will change both columns to unknown or null
- if (!mediaExists) {
- if (
- media.status !== MediaStatus.UNKNOWN ||
- media.status4k !== MediaStatus.UNKNOWN
- ) {
- const request = await requestRepository.find({
- relations: {
- media: true,
- },
- where: { media: { id: media.id } },
- });
-
- logger.info(
- `${
- media.mediaType === 'tv' ? media.tvdbId : media.tmdbId
- } does not exist in any of your media instances. We will change its status to unknown.`,
- { label: 'AvailabilitySync' }
- );
-
- await mediaRepository.update(media.id, {
- status: MediaStatus.UNKNOWN,
- status4k: MediaStatus.UNKNOWN,
- serviceId: null,
- serviceId4k: null,
- externalServiceId: null,
- externalServiceId4k: null,
- externalServiceSlug: null,
- externalServiceSlug4k: null,
- ratingKey: null,
- ratingKey4k: null,
- });
-
- await requestRepository.remove(request);
- }
- }
-
- if (media.mediaType === 'tv') {
- // ok, the show itself exists, but do all it's seasons?
- const seasons = await seasonRepository.find({
- where: [
- { status: MediaStatus.AVAILABLE, media: { id: media.id } },
- {
- status: MediaStatus.PARTIALLY_AVAILABLE,
- media: { id: media.id },
- },
- { status4k: MediaStatus.AVAILABLE, media: { id: media.id } },
- {
- status4k: MediaStatus.PARTIALLY_AVAILABLE,
- media: { id: media.id },
- },
- ],
+ // We can not delete media so if both versions do not exist, we will change both columns to unknown or null
+ if (!mediaExists) {
+ if (
+ media.status !== MediaStatus.UNKNOWN ||
+ media.status4k !== MediaStatus.UNKNOWN
+ ) {
+ const request = await requestRepository.find({
+ relations: {
+ media: true,
+ },
+ where: { media: { id: media.id } },
});
- let didDeleteSeasons = false;
- for (const season of seasons) {
- if (
- !mediaExists &&
- (season.status !== MediaStatus.UNKNOWN ||
- season.status4k !== MediaStatus.UNKNOWN)
- ) {
- await seasonRepository.update(
- { id: season.id },
+ logger.info(
+ `Media ID ${media.id} does not exist in any of your media instances. Status will be changed to unknown.`,
+ { label: 'AvailabilitySync' }
+ );
+
+ await mediaRepository.update(media.id, {
+ status: MediaStatus.UNKNOWN,
+ status4k: MediaStatus.UNKNOWN,
+ serviceId: null,
+ serviceId4k: null,
+ externalServiceId: null,
+ externalServiceId4k: null,
+ externalServiceSlug: null,
+ externalServiceSlug4k: null,
+ ratingKey: null,
+ ratingKey4k: null,
+ });
+
+ await requestRepository.remove(request);
+ }
+ }
+
+ if (media.mediaType === 'tv') {
+ // ok, the show itself exists, but do all it's seasons?
+ const seasons = await seasonRepository.find({
+ where: [
+ { status: MediaStatus.AVAILABLE, media: { id: media.id } },
+ {
+ status: MediaStatus.PARTIALLY_AVAILABLE,
+ media: { id: media.id },
+ },
+ { status4k: MediaStatus.AVAILABLE, media: { id: media.id } },
+ {
+ status4k: MediaStatus.PARTIALLY_AVAILABLE,
+ media: { id: media.id },
+ },
+ ],
+ });
+
+ let didDeleteSeasons = false;
+ for (const season of seasons) {
+ if (
+ !mediaExists &&
+ (season.status !== MediaStatus.UNKNOWN ||
+ season.status4k !== MediaStatus.UNKNOWN)
+ ) {
+ await seasonRepository.update(
+ { id: season.id },
+ {
+ status: MediaStatus.UNKNOWN,
+ status4k: MediaStatus.UNKNOWN,
+ }
+ );
+ } else {
+ const seasonExists = await this.seasonExists(media, season);
+
+ if (!seasonExists) {
+ logger.info(
+ `Removing season ${season.seasonNumber}, media ID ${media.id} because it does not exist in any of your media instances.`,
+ { label: 'AvailabilitySync' }
+ );
+
+ if (
+ season.status !== MediaStatus.UNKNOWN ||
+ season.status4k !== MediaStatus.UNKNOWN
+ ) {
+ await seasonRepository.update(
+ { id: season.id },
+ {
+ status: MediaStatus.UNKNOWN,
+ status4k: MediaStatus.UNKNOWN,
+ }
+ );
+ }
+
+ const seasonToBeDeleted = await seasonRequestRepository.findOne(
{
- status: MediaStatus.UNKNOWN,
- status4k: MediaStatus.UNKNOWN,
+ relations: {
+ request: {
+ media: true,
+ },
+ },
+ where: {
+ request: {
+ media: {
+ id: media.id,
+ },
+ },
+ seasonNumber: season.seasonNumber,
+ },
}
);
- } else {
- const seasonExists = await this.seasonExists(media, season);
- if (!seasonExists) {
- logger.info(
- `Removing season ${season.seasonNumber}, media id: ${media.tvdbId} because it does not exist in any of your media instances.`,
- { label: 'AvailabilitySync' }
- );
-
- if (
- season.status !== MediaStatus.UNKNOWN ||
- season.status4k !== MediaStatus.UNKNOWN
- ) {
- await seasonRepository.update(
- { id: season.id },
- {
- status: MediaStatus.UNKNOWN,
- status4k: MediaStatus.UNKNOWN,
- }
- );
- }
-
- const seasonToBeDeleted =
- await seasonRequestRepository.findOne({
- relations: {
- request: {
- media: true,
- },
- },
- where: {
- request: {
- media: {
- id: media.id,
- },
- },
- seasonNumber: season.seasonNumber,
- },
- });
-
- if (seasonToBeDeleted) {
- await seasonRequestRepository.remove(seasonToBeDeleted);
- }
-
- didDeleteSeasons = true;
+ if (seasonToBeDeleted) {
+ await seasonRequestRepository.remove(seasonToBeDeleted);
}
+
+ didDeleteSeasons = true;
}
+ }
- if (didDeleteSeasons) {
- if (
- media.status === MediaStatus.AVAILABLE ||
- media.status4k === MediaStatus.AVAILABLE
- ) {
- logger.info(
- `Marking media id: ${media.tvdbId} as PARTIALLY_AVAILABLE because we deleted some of its seasons.`,
- { label: 'AvailabilitySync' }
- );
+ if (didDeleteSeasons) {
+ if (
+ media.status === MediaStatus.AVAILABLE ||
+ media.status4k === MediaStatus.AVAILABLE
+ ) {
+ logger.info(
+ `Marking media ID ${media.id} as PARTIALLY_AVAILABLE because season removal has occurred.`,
+ { label: 'AvailabilitySync' }
+ );
- if (media.status === MediaStatus.AVAILABLE) {
- await mediaRepository.update(media.id, {
- status: MediaStatus.PARTIALLY_AVAILABLE,
- });
- }
+ if (media.status === MediaStatus.AVAILABLE) {
+ await mediaRepository.update(media.id, {
+ status: MediaStatus.PARTIALLY_AVAILABLE,
+ });
+ }
- if (media.status4k === MediaStatus.AVAILABLE) {
- await mediaRepository.update(media.id, {
- status4k: MediaStatus.PARTIALLY_AVAILABLE,
- });
- }
+ if (media.status4k === MediaStatus.AVAILABLE) {
+ await mediaRepository.update(media.id, {
+ status4k: MediaStatus.PARTIALLY_AVAILABLE,
+ });
}
}
}
}
- } catch (ex) {
- logger.error('Failure with media.', {
- errorMessage: ex.message,
- label: 'AvailabilitySync',
- });
}
}
} catch (ex) {
@@ -254,9 +247,9 @@ class AvailabilitySync {
});
logger.info(
- `${media.tmdbId} does not exist in your ${is4k ? '4k' : 'non-4k'} ${
- isTVType ? 'sonarr' : 'radarr'
- } and plex instance. We will change its status to unknown.`,
+ `Media ID ${media.id} does not exist in your ${is4k ? '4k' : 'non-4k'} ${
+ isTVType ? 'Sonarr' : 'Radarr'
+ } and Plex instance. Status will be changed to unknown.`,
{ label: 'AvailabilitySync' }
);
@@ -306,46 +299,70 @@ class AvailabilitySync {
apiKey: server.apiKey,
url: RadarrAPI.buildUrl(server, '/api/v3'),
});
- const meta = await api.getMovieByTmdbId(media.tmdbId);
+ try {
+ // Check if both exist or if a single non-4k or 4k exists
+ // If both do not exist we will return false
- //check if both exist or if a single non-4k or 4k exists
- //if both do not exist we will return false
- if (!server.is4k && !meta.id) {
- existsInRadarr = false;
- }
+ let meta: RadarrMovie | undefined;
- if (server.is4k && !meta.id) {
- existsInRadarr4k = false;
+ if (!server.is4k && media.externalServiceId) {
+ meta = await api.getMovie({ id: media.externalServiceId });
+ }
+
+ if (server.is4k && media.externalServiceId4k) {
+ meta = await api.getMovie({ id: media.externalServiceId4k });
+ }
+
+ if (!server.is4k && (!meta || !meta.hasFile)) {
+ existsInRadarr = false;
+ }
+
+ if (server.is4k && (!meta || !meta.hasFile)) {
+ existsInRadarr4k = false;
+ }
+ } catch (ex) {
+ logger.debug(
+ `Failure retrieving media ID ${media.id} from your ${
+ !server.is4k ? 'non-4K' : '4K'
+ } Radarr.`,
+ {
+ errorMessage: ex.message,
+ label: 'AvailabilitySync',
+ }
+ );
+ if (!server.is4k) {
+ existsInRadarr = false;
+ }
+
+ if (server.is4k) {
+ existsInRadarr4k = false;
+ }
}
}
- if (existsInRadarr && existsInRadarr4k) {
- return true;
- }
-
- if (!existsInRadarr && existsInPlex) {
- return true;
- }
-
- if (!existsInRadarr4k && existsInPlex4k) {
- return true;
- }
-
- //if only a single non-4k or 4k exists, then change entity columns accordingly
- //related media request will then be deleted
- if (!existsInRadarr && existsInRadarr4k && !existsInPlex) {
+ // If only a single non-4k or 4k exists, then change entity columns accordingly
+ // Related media request will then be deleted
+ if (
+ !existsInRadarr &&
+ (existsInRadarr4k || existsInPlex4k) &&
+ !existsInPlex
+ ) {
if (media.status !== MediaStatus.UNKNOWN) {
this.mediaUpdater(media, false);
}
}
- if (existsInRadarr && !existsInRadarr4k && !existsInPlex4k) {
+ if (
+ (existsInRadarr || existsInPlex) &&
+ !existsInRadarr4k &&
+ !existsInPlex4k
+ ) {
if (media.status4k !== MediaStatus.UNKNOWN) {
this.mediaUpdater(media, true);
}
}
- if (existsInRadarr || existsInRadarr4k) {
+ if (existsInRadarr || existsInRadarr4k || existsInPlex || existsInPlex4k) {
return true;
}
@@ -357,10 +374,6 @@ class AvailabilitySync {
existsInPlex: boolean,
existsInPlex4k: boolean
): Promise {
- if (!media.tvdbId) {
- return false;
- }
-
let existsInSonarr = true;
let existsInSonarr4k = true;
@@ -369,49 +382,75 @@ class AvailabilitySync {
apiKey: server.apiKey,
url: SonarrAPI.buildUrl(server, '/api/v3'),
});
+ try {
+ // Check if both exist or if a single non-4k or 4k exists
+ // If both do not exist we will return false
- const meta = await api.getSeriesByTvdbId(media.tvdbId);
+ let meta: SonarrSeries | undefined;
- this.sonarrSeasonsCache[`${server.id}-${media.tvdbId}`] = meta.seasons;
+ if (!server.is4k && media.externalServiceId) {
+ meta = await api.getSeriesById(media.externalServiceId);
+ this.sonarrSeasonsCache[`${server.id}-${media.externalServiceId}`] =
+ meta.seasons;
+ }
- //check if both exist or if a single non-4k or 4k exists
- //if both do not exist we will return false
- if (!server.is4k && !meta.id) {
- existsInSonarr = false;
- }
+ if (server.is4k && media.externalServiceId4k) {
+ meta = await api.getSeriesById(media.externalServiceId4k);
+ this.sonarrSeasonsCache[`${server.id}-${media.externalServiceId4k}`] =
+ meta.seasons;
+ }
- if (server.is4k && !meta.id) {
- existsInSonarr4k = false;
+ if (!server.is4k && (!meta || meta.statistics.episodeFileCount === 0)) {
+ existsInSonarr = false;
+ }
+
+ if (server.is4k && (!meta || meta.statistics.episodeFileCount === 0)) {
+ existsInSonarr4k = false;
+ }
+ } catch (ex) {
+ logger.debug(
+ `Failure retrieving media ID ${media.id} from your ${
+ !server.is4k ? 'non-4K' : '4K'
+ } Sonarr.`,
+ {
+ errorMessage: ex.message,
+ label: 'AvailabilitySync',
+ }
+ );
+
+ if (!server.is4k) {
+ existsInSonarr = false;
+ }
+
+ if (server.is4k) {
+ existsInSonarr4k = false;
+ }
}
}
- if (existsInSonarr && existsInSonarr4k) {
- return true;
- }
-
- if (!existsInSonarr && existsInPlex) {
- return true;
- }
-
- if (!existsInSonarr4k && existsInPlex4k) {
- return true;
- }
-
- //if only a single non-4k or 4k exists, then change entity columns accordingly
- //related media request will then be deleted
- if (!existsInSonarr && existsInSonarr4k && !existsInPlex) {
+ // If only a single non-4k or 4k exists, then change entity columns accordingly
+ // Related media request will then be deleted
+ if (
+ !existsInSonarr &&
+ (existsInSonarr4k || existsInPlex4k) &&
+ !existsInPlex
+ ) {
if (media.status !== MediaStatus.UNKNOWN) {
this.mediaUpdater(media, false);
}
}
- if (existsInSonarr && !existsInSonarr4k && !existsInPlex4k) {
+ if (
+ (existsInSonarr || existsInPlex) &&
+ !existsInSonarr4k &&
+ !existsInPlex4k
+ ) {
if (media.status4k !== MediaStatus.UNKNOWN) {
this.mediaUpdater(media, true);
}
}
- if (existsInSonarr || existsInSonarr4k) {
+ if (existsInSonarr || existsInSonarr4k || existsInPlex || existsInPlex4k) {
return true;
}
@@ -424,10 +463,6 @@ class AvailabilitySync {
seasonExistsInPlex: boolean,
seasonExistsInPlex4k: boolean
): Promise {
- if (!media.tvdbId) {
- return false;
- }
-
let seasonExistsInSonarr = true;
let seasonExistsInSonarr4k = true;
@@ -441,35 +476,67 @@ class AvailabilitySync {
url: SonarrAPI.buildUrl(server, '/api/v3'),
});
- const seasons =
- this.sonarrSeasonsCache[`${server.id}-${media.tvdbId}`] ??
- (await api.getSeriesByTvdbId(media.tvdbId)).seasons;
- this.sonarrSeasonsCache[`${server.id}-${media.tvdbId}`] = seasons;
+ try {
+ // Here we can use the cache we built when we fetched the series with mediaExistsInSonarr
+ // If the cache does not have data, we will fetch with the api route
- const hasMonitoredSeason = seasons.find(
- ({ monitored, seasonNumber }) =>
- monitored && season.seasonNumber === seasonNumber
- );
+ let seasons: SonarrSeason[] =
+ this.sonarrSeasonsCache[
+ `${server.id}-${
+ !server.is4k ? media.externalServiceId : media.externalServiceId4k
+ }`
+ ];
- if (!server.is4k && !hasMonitoredSeason) {
- seasonExistsInSonarr = false;
+ if (!server.is4k && media.externalServiceId) {
+ seasons =
+ this.sonarrSeasonsCache[
+ `${server.id}-${media.externalServiceId}`
+ ] ?? (await api.getSeriesById(media.externalServiceId)).seasons;
+ this.sonarrSeasonsCache[`${server.id}-${media.externalServiceId}`] =
+ seasons;
+ }
+
+ if (server.is4k && media.externalServiceId4k) {
+ seasons =
+ this.sonarrSeasonsCache[
+ `${server.id}-${media.externalServiceId4k}`
+ ] ?? (await api.getSeriesById(media.externalServiceId4k)).seasons;
+ this.sonarrSeasonsCache[`${server.id}-${media.externalServiceId4k}`] =
+ seasons;
+ }
+
+ const seasonIsUnavailable = seasons?.find(
+ ({ seasonNumber, statistics }) =>
+ season.seasonNumber === seasonNumber &&
+ statistics?.episodeFileCount === 0
+ );
+
+ if (!server.is4k && seasonIsUnavailable) {
+ seasonExistsInSonarr = false;
+ }
+
+ if (server.is4k && seasonIsUnavailable) {
+ seasonExistsInSonarr4k = false;
+ }
+ } catch (ex) {
+ logger.debug(
+ `Failure retrieving media ID ${media.id} from your ${
+ !server.is4k ? 'non-4K' : '4K'
+ } Sonarr.`,
+ {
+ errorMessage: ex.message,
+ label: 'AvailabilitySync',
+ }
+ );
+
+ if (!server.is4k) {
+ seasonExistsInSonarr = false;
+ }
+
+ if (server.is4k) {
+ seasonExistsInSonarr4k = false;
+ }
}
-
- if (server.is4k && !hasMonitoredSeason) {
- seasonExistsInSonarr4k = false;
- }
- }
-
- if (seasonExistsInSonarr && seasonExistsInSonarr4k) {
- return true;
- }
-
- if (!seasonExistsInSonarr && seasonExistsInPlex) {
- return true;
- }
-
- if (!seasonExistsInSonarr4k && seasonExistsInPlex4k) {
- return true;
}
const seasonToBeDeleted = await seasonRequestRepository.findOne({
@@ -489,16 +556,16 @@ class AvailabilitySync {
},
});
- //if season does not exist, we will change status to unknown and delete related season request
- //if parent media request is empty(all related seasons have been removed), parent is automatically deleted
+ // If season does not exist, we will change status to unknown and delete related season request
+ // If parent media request is empty(all related seasons have been removed), parent is automatically deleted
if (
!seasonExistsInSonarr &&
- seasonExistsInSonarr4k &&
+ (seasonExistsInSonarr4k || seasonExistsInPlex4k) &&
!seasonExistsInPlex
) {
if (season.status !== MediaStatus.UNKNOWN) {
logger.info(
- `${media.tvdbId}, season: ${season.seasonNumber} does not exist in your non-4k sonarr and plex instance. We will change its status to unknown.`,
+ `Season ${season.seasonNumber}, media ID ${media.id} does not exist in your non-4k Sonarr and Plex instance. Status will be changed to unknown.`,
{ label: 'AvailabilitySync' }
);
await seasonRepository.update(season.id, {
@@ -511,7 +578,7 @@ class AvailabilitySync {
if (media.status === MediaStatus.AVAILABLE) {
logger.info(
- `Marking media id: ${media.tvdbId} as PARTIALLY_AVAILABLE because we deleted one of its seasons.`,
+ `Marking media ID ${media.id} as PARTIALLY_AVAILABLE because season removal has occurred.`,
{ label: 'AvailabilitySync' }
);
await mediaRepository.update(media.id, {
@@ -522,13 +589,13 @@ class AvailabilitySync {
}
if (
- seasonExistsInSonarr &&
+ (seasonExistsInSonarr || seasonExistsInPlex) &&
!seasonExistsInSonarr4k &&
!seasonExistsInPlex4k
) {
if (season.status4k !== MediaStatus.UNKNOWN) {
logger.info(
- `${media.tvdbId}, season: ${season.seasonNumber} does not exist in your 4k sonarr and plex instance. We will change its status to unknown.`,
+ `Season ${season.seasonNumber}, media ID ${media.id} does not exist in your 4k Sonarr and Plex instance. Status will be changed to unknown.`,
{ label: 'AvailabilitySync' }
);
await seasonRepository.update(season.id, {
@@ -541,7 +608,7 @@ class AvailabilitySync {
if (media.status4k === MediaStatus.AVAILABLE) {
logger.info(
- `Marking media id: ${media.tvdbId} as PARTIALLY_AVAILABLE because we deleted one of its seasons.`,
+ `Marking media ID ${media.id} as PARTIALLY_AVAILABLE because season removal has occurred.`,
{ label: 'AvailabilitySync' }
);
await mediaRepository.update(media.id, {
@@ -551,7 +618,12 @@ class AvailabilitySync {
}
}
- if (seasonExistsInSonarr || seasonExistsInSonarr4k) {
+ if (
+ seasonExistsInSonarr ||
+ seasonExistsInSonarr4k ||
+ seasonExistsInPlex ||
+ seasonExistsInPlex4k
+ ) {
return true;
}
@@ -565,7 +637,7 @@ class AvailabilitySync {
let existsInPlex = false;
let existsInPlex4k = false;
- //check each plex instance to see if media exists
+ // Check each plex instance to see if media exists
try {
if (ratingKey) {
const meta = await this.plexClient?.getMetadata(ratingKey);
@@ -573,6 +645,7 @@ class AvailabilitySync {
existsInPlex = true;
}
}
+
if (ratingKey4k) {
const meta4k = await this.plexClient?.getMetadata(ratingKey4k);
if (meta4k) {
@@ -580,18 +653,17 @@ class AvailabilitySync {
}
}
} catch (ex) {
- // TODO: oof, not the nicest way of handling this, but plex-api does not leave us with any other options...
if (!ex.message.includes('response code: 404')) {
throw ex;
}
}
- //base case for if both media versions exist in plex
+ // Base case if both media versions exist in plex
if (existsInPlex && existsInPlex4k) {
return true;
}
- //we then check radarr or sonarr has that specific media. If not, then we will move to delete
- //if a non-4k or 4k version exists in at least one of the instances, we will only update that specific version
+ // We then check radarr or sonarr has that specific media. If not, then we will move to delete
+ // If a non-4k or 4k version exists in at least one of the instances, we will only update that specific version
if (media.mediaType === 'movie') {
const existsInRadarr = await this.mediaExistsInRadarr(
media,
@@ -599,10 +671,10 @@ class AvailabilitySync {
existsInPlex4k
);
- //if true, media exists in at least one radarr or plex instance.
+ // If true, media exists in at least one radarr or plex instance.
if (existsInRadarr) {
logger.warn(
- `${media.tmdbId} exists in at least one radarr or plex instance. Media will be updated if set to available.`,
+ `${media.id} exists in at least one Radarr or Plex instance. Media will be updated if set to available.`,
{
label: 'AvailabilitySync',
}
@@ -619,10 +691,10 @@ class AvailabilitySync {
existsInPlex4k
);
- //if true, media exists in at least one sonarr or plex instance.
+ // If true, media exists in at least one sonarr or plex instance.
if (existsInSonarr) {
logger.warn(
- `${media.tvdbId} exists in at least one sonarr or plex instance. Media will be updated if set to available.`,
+ `${media.id} exists in at least one Sonarr or Plex instance. Media will be updated if set to available.`,
{
label: 'AvailabilitySync',
}
@@ -672,7 +744,7 @@ class AvailabilitySync {
}
}
- //base case for if both season versions exist in plex
+ // Base case if both season versions exist in plex
if (seasonExistsInPlex && seasonExistsInPlex4k) {
return true;
}
@@ -686,7 +758,7 @@ class AvailabilitySync {
if (existsInSonarr) {
logger.warn(
- `${media.tvdbId}, season: ${season.seasonNumber} exists in at least one sonarr or plex instance. Media will be updated if set to available.`,
+ `Season ${season.seasonNumber}, media ID ${media.id} exists in at least one Sonarr or Plex instance. Media will be updated if set to available.`,
{
label: 'AvailabilitySync',
}
From 70b1540ae23e83e01013856a9e06ad39e600922d Mon Sep 17 00:00:00 2001
From: Alex
Date: Thu, 11 May 2023 02:58:16 +0200
Subject: [PATCH 10/39] fix: handle search results with collections (#3393)
* feat: handle search collection
* Update server/utils/typeHelpers.ts
Co-authored-by: Danshil Kokil Mungur
* fix: modified title card to show collection instead of movies
---------
Co-authored-by: Danshil Kokil Mungur
Co-authored-by: Brandon
---
server/api/themoviedb/interfaces.ts | 19 ++++++++++-
server/models/Search.ts | 40 ++++++++++++++++++++++--
server/routes/discover.ts | 5 ++-
server/utils/typeHelpers.ts | 23 ++++++++++++--
src/components/Common/ListView/index.tsx | 15 ++++++++-
src/components/TitleCard/index.tsx | 28 ++++++++++++++---
src/i18n/globalMessages.ts | 1 +
7 files changed, 118 insertions(+), 13 deletions(-)
diff --git a/server/api/themoviedb/interfaces.ts b/server/api/themoviedb/interfaces.ts
index 955e1b12e..775a89765 100644
--- a/server/api/themoviedb/interfaces.ts
+++ b/server/api/themoviedb/interfaces.ts
@@ -28,6 +28,18 @@ export interface TmdbTvResult extends TmdbMediaResult {
first_air_date: string;
}
+export interface TmdbCollectionResult {
+ id: number;
+ media_type: 'collection';
+ title: string;
+ original_title: string;
+ adult: boolean;
+ poster_path?: string;
+ backdrop_path?: string;
+ overview: string;
+ original_language: string;
+}
+
export interface TmdbPersonResult {
id: number;
name: string;
@@ -45,7 +57,12 @@ interface TmdbPaginatedResponse {
}
export interface TmdbSearchMultiResponse extends TmdbPaginatedResponse {
- results: (TmdbMovieResult | TmdbTvResult | TmdbPersonResult)[];
+ results: (
+ | TmdbMovieResult
+ | TmdbTvResult
+ | TmdbPersonResult
+ | TmdbCollectionResult
+ )[];
}
export interface TmdbSearchMovieResponse extends TmdbPaginatedResponse {
diff --git a/server/models/Search.ts b/server/models/Search.ts
index 6ab696fe3..2193bbe15 100644
--- a/server/models/Search.ts
+++ b/server/models/Search.ts
@@ -1,4 +1,5 @@
import type {
+ TmdbCollectionResult,
TmdbMovieDetails,
TmdbMovieResult,
TmdbPersonDetails,
@@ -9,7 +10,7 @@ import type {
import { MediaType as MainMediaType } from '@server/constants/media';
import type Media from '@server/entity/Media';
-export type MediaType = 'tv' | 'movie' | 'person';
+export type MediaType = 'tv' | 'movie' | 'person' | 'collection';
interface SearchResult {
id: number;
@@ -43,6 +44,18 @@ export interface TvResult extends SearchResult {
firstAirDate: string;
}
+export interface CollectionResult {
+ id: number;
+ mediaType: 'collection';
+ title: string;
+ originalTitle: string;
+ adult: boolean;
+ posterPath?: string;
+ backdropPath?: string;
+ overview: string;
+ originalLanguage: string;
+}
+
export interface PersonResult {
id: number;
name: string;
@@ -53,7 +66,7 @@ export interface PersonResult {
knownFor: (MovieResult | TvResult)[];
}
-export type Results = MovieResult | TvResult | PersonResult;
+export type Results = MovieResult | TvResult | PersonResult | CollectionResult;
export const mapMovieResult = (
movieResult: TmdbMovieResult,
@@ -99,6 +112,20 @@ export const mapTvResult = (
mediaInfo: media,
});
+export const mapCollectionResult = (
+ collectionResult: TmdbCollectionResult
+): CollectionResult => ({
+ id: collectionResult.id,
+ mediaType: collectionResult.media_type || 'collection',
+ adult: collectionResult.adult,
+ originalLanguage: collectionResult.original_language,
+ originalTitle: collectionResult.original_title,
+ title: collectionResult.title,
+ overview: collectionResult.overview,
+ backdropPath: collectionResult.backdrop_path,
+ posterPath: collectionResult.poster_path,
+});
+
export const mapPersonResult = (
personResult: TmdbPersonResult
): PersonResult => ({
@@ -118,7 +145,12 @@ export const mapPersonResult = (
});
export const mapSearchResults = (
- results: (TmdbMovieResult | TmdbTvResult | TmdbPersonResult)[],
+ results: (
+ | TmdbMovieResult
+ | TmdbTvResult
+ | TmdbPersonResult
+ | TmdbCollectionResult
+ )[],
media?: Media[]
): Results[] =>
results.map((result) => {
@@ -139,6 +171,8 @@ export const mapSearchResults = (
req.tmdbId === result.id && req.mediaType === MainMediaType.TV
)
);
+ case 'collection':
+ return mapCollectionResult(result);
default:
return mapPersonResult(result);
}
diff --git a/server/routes/discover.ts b/server/routes/discover.ts
index f032fa66b..47492fc06 100644
--- a/server/routes/discover.ts
+++ b/server/routes/discover.ts
@@ -14,12 +14,13 @@ import { getSettings } from '@server/lib/settings';
import logger from '@server/logger';
import { mapProductionCompany } from '@server/models/Movie';
import {
+ mapCollectionResult,
mapMovieResult,
mapPersonResult,
mapTvResult,
} from '@server/models/Search';
import { mapNetwork } from '@server/models/Tv';
-import { isMovie, isPerson } from '@server/utils/typeHelpers';
+import { isCollection, isMovie, isPerson } from '@server/utils/typeHelpers';
import { Router } from 'express';
import { sortBy } from 'lodash';
import { z } from 'zod';
@@ -647,6 +648,8 @@ discoverRoutes.get('/trending', async (req, res, next) => {
)
: isPerson(result)
? mapPersonResult(result)
+ : isCollection(result)
+ ? mapCollectionResult(result)
: mapTvResult(
result,
media.find(
diff --git a/server/utils/typeHelpers.ts b/server/utils/typeHelpers.ts
index 507ece8cd..548378ff7 100644
--- a/server/utils/typeHelpers.ts
+++ b/server/utils/typeHelpers.ts
@@ -1,4 +1,5 @@
import type {
+ TmdbCollectionResult,
TmdbMovieDetails,
TmdbMovieResult,
TmdbPersonDetails,
@@ -8,17 +9,35 @@ import type {
} from '@server/api/themoviedb/interfaces';
export const isMovie = (
- movie: TmdbMovieResult | TmdbTvResult | TmdbPersonResult
+ movie:
+ | TmdbMovieResult
+ | TmdbTvResult
+ | TmdbPersonResult
+ | TmdbCollectionResult
): movie is TmdbMovieResult => {
return (movie as TmdbMovieResult).title !== undefined;
};
export const isPerson = (
- person: TmdbMovieResult | TmdbTvResult | TmdbPersonResult
+ person:
+ | TmdbMovieResult
+ | TmdbTvResult
+ | TmdbPersonResult
+ | TmdbCollectionResult
): person is TmdbPersonResult => {
return (person as TmdbPersonResult).known_for !== undefined;
};
+export const isCollection = (
+ collection:
+ | TmdbMovieResult
+ | TmdbTvResult
+ | TmdbPersonResult
+ | TmdbCollectionResult
+): collection is TmdbCollectionResult => {
+ return (collection as TmdbCollectionResult).media_type === 'collection';
+};
+
export const isMovieDetails = (
movie: TmdbMovieDetails | TmdbTvDetails | TmdbPersonDetails
): movie is TmdbMovieDetails => {
diff --git a/src/components/Common/ListView/index.tsx b/src/components/Common/ListView/index.tsx
index 6f09f768b..b46086862 100644
--- a/src/components/Common/ListView/index.tsx
+++ b/src/components/Common/ListView/index.tsx
@@ -5,6 +5,7 @@ import useVerticalScroll from '@app/hooks/useVerticalScroll';
import globalMessages from '@app/i18n/globalMessages';
import type { WatchlistItem } from '@server/interfaces/api/discoverInterfaces';
import type {
+ CollectionResult,
MovieResult,
PersonResult,
TvResult,
@@ -12,7 +13,7 @@ import type {
import { useIntl } from 'react-intl';
type ListViewProps = {
- items?: (TvResult | MovieResult | PersonResult)[];
+ items?: (TvResult | MovieResult | PersonResult | CollectionResult)[];
plexItems?: WatchlistItem[];
isEmpty?: boolean;
isLoading?: boolean;
@@ -90,6 +91,18 @@ const ListView = ({
/>
);
break;
+ case 'collection':
+ titleCard = (
+
+ );
+ break;
case 'person':
titleCard = (
{mediaType === 'movie'
? intl.formatMessage(globalMessages.movie)
+ : mediaType === 'collection'
+ ? intl.formatMessage(globalMessages.collection)
: intl.formatMessage(globalMessages.tvshow)}
@@ -177,7 +187,15 @@ const TitleCard = ({
leaveTo="opacity-0"
>
-
+
Date: Thu, 11 May 2023 09:59:15 +0900
Subject: [PATCH 11/39] docs: add Alexays as a contributor for code (#3452)
[skip ci]
* docs: update README.md
* docs: update .all-contributorsrc
---------
Co-authored-by: allcontributors[bot] <46447321+allcontributors[bot]@users.noreply.github.com>
---
.all-contributorsrc | 9 +++++++++
README.md | 3 ++-
2 files changed, 11 insertions(+), 1 deletion(-)
diff --git a/.all-contributorsrc b/.all-contributorsrc
index 113d0af47..180aea27a 100644
--- a/.all-contributorsrc
+++ b/.all-contributorsrc
@@ -809,6 +809,15 @@
"contributions": [
"code"
]
+ },
+ {
+ "login": "Alexays",
+ "name": "Alex",
+ "avatar_url": "https://avatars.githubusercontent.com/u/13947260?v=4",
+ "profile": "https://arouillard.fr",
+ "contributions": [
+ "code"
+ ]
}
],
"badgeTemplate": "
-orange.svg\"/>",
diff --git a/README.md b/README.md
index 83fff5ea7..9cf0b0bb4 100644
--- a/README.md
+++ b/README.md
@@ -11,7 +11,7 @@

-

+

@@ -187,6 +187,7 @@ Thanks goes to these wonderful people ([emoji key](https://allcontributors.org/d
 Owen Voke 💻 |
 Sebastian K 💻 |
 jariz 💻 |
+
 Alex 💻 |
From ac77b037d5fb0c54f5edf4b29d04adb57aef388f Mon Sep 17 00:00:00 2001
From: Zeb Muller
Date: Thu, 11 May 2023 11:45:23 +1000
Subject: [PATCH 12/39] fix: error deleting users with over 1000 requests
(#3376)
Break-up request removal into groups of 1000 requests to be removed at a time.
---
server/routes/user/index.ts | 9 ++++++++-
1 file changed, 8 insertions(+), 1 deletion(-)
diff --git a/server/routes/user/index.ts b/server/routes/user/index.ts
index ea709caf5..94784df51 100644
--- a/server/routes/user/index.ts
+++ b/server/routes/user/index.ts
@@ -381,7 +381,14 @@ router.delete<{ id: string }>(
* we manually remove all requests from the user here so the parent media's
* properly reflect the change.
*/
- await requestRepository.remove(user.requests);
+ await requestRepository.remove(user.requests, {
+ /**
+ * Break-up into groups of 1000 requests to be removed at a time.
+ * Necessary for users with >1000 requests, else an SQLite 'Expression tree is too large' error occurs.
+ * https://typeorm.io/repository-api#additional-options
+ */
+ chunk: user.requests.length / 1000,
+ });
await userRepository.delete(user.id);
return res.status(200).json(user.filter());
From cd1cacad5589e188406466c498d98f2608d40f85 Mon Sep 17 00:00:00 2001
From: "allcontributors[bot]"
<46447321+allcontributors[bot]@users.noreply.github.com>
Date: Thu, 11 May 2023 10:45:54 +0900
Subject: [PATCH 13/39] docs: add Zebebles as a contributor for code (#3453)
[skip ci]
* docs: update README.md
* docs: update .all-contributorsrc
---------
Co-authored-by: allcontributors[bot] <46447321+allcontributors[bot]@users.noreply.github.com>
---
.all-contributorsrc | 9 +++++++++
README.md | 3 ++-
2 files changed, 11 insertions(+), 1 deletion(-)
diff --git a/.all-contributorsrc b/.all-contributorsrc
index 180aea27a..de5ea4913 100644
--- a/.all-contributorsrc
+++ b/.all-contributorsrc
@@ -818,6 +818,15 @@
"contributions": [
"code"
]
+ },
+ {
+ "login": "Zebebles",
+ "name": "Zeb Muller",
+ "avatar_url": "https://avatars.githubusercontent.com/u/11425451?v=4",
+ "profile": "https://github.com/Zebebles",
+ "contributions": [
+ "code"
+ ]
}
],
"badgeTemplate": "
-orange.svg\"/>",
diff --git a/README.md b/README.md
index 9cf0b0bb4..c50ce854c 100644
--- a/README.md
+++ b/README.md
@@ -11,7 +11,7 @@
-
+
@@ -188,6 +188,7 @@ Thanks goes to these wonderful people ([emoji key](https://allcontributors.org/d
 Sebastian K 💻 |
 jariz 💻 |
 Alex 💻 |
+  Zeb Muller 💻 |
From c1e10338c1a5d1e5d4928428af7edeacfc428916 Mon Sep 17 00:00:00 2001
From: Brandon Cohen
Date: Wed, 10 May 2023 22:59:12 -0400
Subject: [PATCH 14/39] refactor: pull to refresh (#3391)
* refactor: decoupled PTR by removing import and creating new touch logic
* fix: overscroll behavior on mobile is now prevented on the y axis
* feat: added shadow effects to icon
* fix: modified cypress test
* fix: added better scroll lock functionality
* fix: hide icon if scroll value is negative
* fix: changed to allow usage on all touch devices
---
cypress/e2e/pull-to-refresh.cy.ts | 2 +-
package.json | 2 -
src/components/Layout/PullToRefresh/index.tsx | 118 ++++++++++++++++++
src/components/Layout/index.tsx | 2 +-
src/components/PullToRefresh/index.tsx | 45 -------
src/styles/globals.css | 2 +-
yarn.lock | 10 --
7 files changed, 121 insertions(+), 60 deletions(-)
create mode 100644 src/components/Layout/PullToRefresh/index.tsx
delete mode 100644 src/components/PullToRefresh/index.tsx
diff --git a/cypress/e2e/pull-to-refresh.cy.ts b/cypress/e2e/pull-to-refresh.cy.ts
index d56c55897..732ee4137 100644
--- a/cypress/e2e/pull-to-refresh.cy.ts
+++ b/cypress/e2e/pull-to-refresh.cy.ts
@@ -13,7 +13,7 @@ describe('Pull To Refresh', () => {
url: '/api/v1/*',
}).as('apiCall');
- cy.get('.searchbar').swipe('bottom', [190, 400]);
+ cy.get('.searchbar').swipe('bottom', [190, 500]);
cy.wait('@apiCall').then((interception) => {
assert.isNotNull(
diff --git a/package.json b/package.json
index 5dff068ee..8b82e45d4 100644
--- a/package.json
+++ b/package.json
@@ -68,7 +68,6 @@
"openpgp": "5.7.0",
"plex-api": "5.3.2",
"pug": "3.0.2",
- "pulltorefreshjs": "0.1.22",
"react": "18.2.0",
"react-ace": "10.1.0",
"react-animate-height": "2.1.2",
@@ -121,7 +120,6 @@
"@types/node": "17.0.36",
"@types/node-schedule": "2.1.0",
"@types/nodemailer": "6.4.7",
- "@types/pulltorefreshjs": "0.1.5",
"@types/react": "18.0.28",
"@types/react-dom": "18.0.11",
"@types/react-transition-group": "4.4.5",
diff --git a/src/components/Layout/PullToRefresh/index.tsx b/src/components/Layout/PullToRefresh/index.tsx
new file mode 100644
index 000000000..cdedcf43c
--- /dev/null
+++ b/src/components/Layout/PullToRefresh/index.tsx
@@ -0,0 +1,118 @@
+import { ArrowPathIcon } from '@heroicons/react/24/outline';
+import { useRouter } from 'next/router';
+import { useEffect, useRef, useState } from 'react';
+
+const PullToRefresh = () => {
+ const router = useRouter();
+
+ const [pullStartPoint, setPullStartPoint] = useState(0);
+ const [pullChange, setPullChange] = useState(0);
+ const refreshDiv = useRef(null);
+
+ // Various pull down thresholds that determine icon location
+ const pullDownInitThreshold = pullChange > 20;
+ const pullDownStopThreshold = 120;
+ const pullDownReloadThreshold = pullChange > 340;
+ const pullDownIconLocation = pullChange / 3;
+
+ useEffect(() => {
+ // Reload function that is called when reload threshold has been hit
+ // Add loading class to determine when to add spin animation
+ const forceReload = () => {
+ refreshDiv.current?.classList.add('loading');
+ setTimeout(() => {
+ router.reload();
+ }, 1000);
+ };
+
+ const html = document.querySelector('html');
+
+ // Determines if we are at the top of the page
+ // Locks or unlocks page when pulling down to refresh
+ const pullStart = (e: TouchEvent) => {
+ setPullStartPoint(e.targetTouches[0].screenY);
+
+ if (window.scrollY === 0 && window.scrollX === 0) {
+ refreshDiv.current?.classList.add('block');
+ refreshDiv.current?.classList.remove('hidden');
+ document.body.style.touchAction = 'none';
+ document.body.style.overscrollBehavior = 'none';
+ if (html) {
+ html.style.overscrollBehaviorY = 'none';
+ }
+ } else {
+ refreshDiv.current?.classList.remove('block');
+ refreshDiv.current?.classList.add('hidden');
+ }
+ };
+
+ // Tracks how far we have pulled down the refresh icon
+ const pullDown = async (e: TouchEvent) => {
+ const screenY = e.targetTouches[0].screenY;
+
+ const pullLength =
+ pullStartPoint < screenY ? Math.abs(screenY - pullStartPoint) : 0;
+
+ setPullChange(pullLength);
+ };
+
+ // Will reload the page if we are past the threshold
+ // Otherwise, we reset the pull
+ const pullFinish = () => {
+ setPullStartPoint(0);
+
+ if (pullDownReloadThreshold) {
+ forceReload();
+ } else {
+ setPullChange(0);
+ }
+
+ document.body.style.touchAction = 'auto';
+ document.body.style.overscrollBehaviorY = 'auto';
+ if (html) {
+ html.style.overscrollBehaviorY = 'auto';
+ }
+ };
+
+ window.addEventListener('touchstart', pullStart, { passive: false });
+ window.addEventListener('touchmove', pullDown, { passive: false });
+ window.addEventListener('touchend', pullFinish, { passive: false });
+
+ return () => {
+ window.removeEventListener('touchstart', pullStart);
+ window.removeEventListener('touchmove', pullDown);
+ window.removeEventListener('touchend', pullFinish);
+ };
+ }, [pullDownInitThreshold, pullDownReloadThreshold, pullStartPoint, router]);
+
+ return (
+
+ );
+};
+
+export default PullToRefresh;
diff --git a/src/components/Layout/index.tsx b/src/components/Layout/index.tsx
index b30b9712a..878f27b18 100644
--- a/src/components/Layout/index.tsx
+++ b/src/components/Layout/index.tsx
@@ -1,8 +1,8 @@
import MobileMenu from '@app/components/Layout/MobileMenu';
+import PullToRefresh from '@app/components/Layout/PullToRefresh';
import SearchInput from '@app/components/Layout/SearchInput';
import Sidebar from '@app/components/Layout/Sidebar';
import UserDropdown from '@app/components/Layout/UserDropdown';
-import PullToRefresh from '@app/components/PullToRefresh';
import type { AvailableLocale } from '@app/context/LanguageContext';
import useLocale from '@app/hooks/useLocale';
import useSettings from '@app/hooks/useSettings';
diff --git a/src/components/PullToRefresh/index.tsx b/src/components/PullToRefresh/index.tsx
deleted file mode 100644
index 68939c486..000000000
--- a/src/components/PullToRefresh/index.tsx
+++ /dev/null
@@ -1,45 +0,0 @@
-import { ArrowPathIcon } from '@heroicons/react/24/outline';
-import { useRouter } from 'next/router';
-import PR from 'pulltorefreshjs';
-import { useEffect } from 'react';
-import ReactDOMServer from 'react-dom/server';
-
-const PullToRefresh = () => {
- const router = useRouter();
-
- useEffect(() => {
- PR.init({
- mainElement: '#pull-to-refresh',
- onRefresh() {
- router.reload();
- },
- iconArrow: ReactDOMServer.renderToString(
-
- ),
- iconRefreshing: ReactDOMServer.renderToString(
-
- ),
- instructionsPullToRefresh: ReactDOMServer.renderToString(),
- instructionsReleaseToRefresh: ReactDOMServer.renderToString(),
- instructionsRefreshing: ReactDOMServer.renderToString(),
- distReload: 60,
- distIgnore: 15,
- shouldPullToRefresh: () =>
- !window.scrollY && document.body.style.overflow !== 'hidden',
- });
- return () => {
- PR.destroyAll();
- };
- }, [router]);
-
- return ;
-};
-
-export default PullToRefresh;
diff --git a/src/styles/globals.css b/src/styles/globals.css
index fac7272d7..8110e87e0 100644
--- a/src/styles/globals.css
+++ b/src/styles/globals.css
@@ -17,7 +17,7 @@
body {
@apply bg-gray-900;
- overscroll-behavior-y: contain;
+ -webkit-overflow-scrolling: touch;
}
code {
diff --git a/yarn.lock b/yarn.lock
index c95f591d7..886aee53e 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -3954,11 +3954,6 @@
resolved "https://registry.yarnpkg.com/@types/prop-types/-/prop-types-15.7.5.tgz#5f19d2b85a98e9558036f6a3cacc8819420f05cf"
integrity sha512-JCB8C6SnDoQf0cNycqd/35A7MjcnK+ZTqE7judS6o7utxUCg6imJg3QK2qzHKszlTjcj2cn+NwMB2i96ubpj7w==
-"@types/pulltorefreshjs@0.1.5":
- version "0.1.5"
- resolved "https://registry.yarnpkg.com/@types/pulltorefreshjs/-/pulltorefreshjs-0.1.5.tgz#f15c9dbc91b8fdd8135093d81ece9e9d4d2324d7"
- integrity sha512-/VRTgBettvBg1KI8mGnA9oeWs359tTXQ7qsxLuXnksL88jvK6ZNMStG5T9x9vUO9O7jLsgREB0cElz/BWFfdew==
-
"@types/qs@*":
version "6.9.7"
resolved "https://registry.yarnpkg.com/@types/qs/-/qs-6.9.7.tgz#63bb7d067db107cc1e457c303bc25d511febf6cb"
@@ -11434,11 +11429,6 @@ pug@3.0.2, pug@^3.0.2:
pug-runtime "^3.0.1"
pug-strip-comments "^2.0.0"
-pulltorefreshjs@0.1.22:
- version "0.1.22"
- resolved "https://registry.yarnpkg.com/pulltorefreshjs/-/pulltorefreshjs-0.1.22.tgz#ddb5e3feee0b2a49fd46e1b18e84fffef2c47ac0"
- integrity sha512-haxNVEHnS4NCQA7NeG7TSV69z4uqy/N7nfPRuc4dPWe8H6ygUrMjdNeohE+6v0lVVX/ukSjbLYwPUGUYtFKfvQ==
-
pump@^3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/pump/-/pump-3.0.0.tgz#b4a2116815bde2f4e1ea602354e8c75565107a64"
From 4bd87647d0551c20e13589a62690a6f3e5ad8ff7 Mon Sep 17 00:00:00 2001
From: Brandon Cohen
Date: Thu, 11 May 2023 00:16:50 -0400
Subject: [PATCH 15/39] fix: corrected initial fallback data load on details
page (#3395)
---
src/pages/movie/[movieId]/index.tsx | 36 ++++++++++++++---------------
src/pages/tv/[tvId]/index.tsx | 34 +++++++++++++--------------
2 files changed, 34 insertions(+), 36 deletions(-)
diff --git a/src/pages/movie/[movieId]/index.tsx b/src/pages/movie/[movieId]/index.tsx
index 2bb971c18..053ee3ff3 100644
--- a/src/pages/movie/[movieId]/index.tsx
+++ b/src/pages/movie/[movieId]/index.tsx
@@ -1,7 +1,7 @@
import MovieDetails from '@app/components/MovieDetails';
import type { MovieDetails as MovieDetailsType } from '@server/models/Movie';
import axios from 'axios';
-import type { NextPage } from 'next';
+import type { GetServerSideProps, NextPage } from 'next';
interface MoviePageProps {
movie?: MovieDetailsType;
@@ -11,25 +11,25 @@ const MoviePage: NextPage = ({ movie }) => {
return ;
};
-MoviePage.getInitialProps = async (ctx) => {
- if (ctx.req) {
- const response = await axios.get(
- `http://localhost:${process.env.PORT || 5055}/api/v1/movie/${
- ctx.query.movieId
- }`,
- {
- headers: ctx.req?.headers?.cookie
- ? { cookie: ctx.req.headers.cookie }
- : undefined,
- }
- );
+export const getServerSideProps: GetServerSideProps = async (
+ ctx
+) => {
+ const response = await axios.get(
+ `http://localhost:${process.env.PORT || 5055}/api/v1/movie/${
+ ctx.query.movieId
+ }`,
+ {
+ headers: ctx.req?.headers?.cookie
+ ? { cookie: ctx.req.headers.cookie }
+ : undefined,
+ }
+ );
- return {
+ return {
+ props: {
movie: response.data,
- };
- }
-
- return {};
+ },
+ };
};
export default MoviePage;
diff --git a/src/pages/tv/[tvId]/index.tsx b/src/pages/tv/[tvId]/index.tsx
index 69fe216fd..a8a3cbd7d 100644
--- a/src/pages/tv/[tvId]/index.tsx
+++ b/src/pages/tv/[tvId]/index.tsx
@@ -1,7 +1,7 @@
import TvDetails from '@app/components/TvDetails';
import type { TvDetails as TvDetailsType } from '@server/models/Tv';
import axios from 'axios';
-import type { NextPage } from 'next';
+import type { GetServerSideProps, NextPage } from 'next';
interface TvPageProps {
tv?: TvDetailsType;
@@ -11,25 +11,23 @@ const TvPage: NextPage = ({ tv }) => {
return ;
};
-TvPage.getInitialProps = async (ctx) => {
- if (ctx.req) {
- const response = await axios.get(
- `http://localhost:${process.env.PORT || 5055}/api/v1/tv/${
- ctx.query.tvId
- }`,
- {
- headers: ctx.req?.headers?.cookie
- ? { cookie: ctx.req.headers.cookie }
- : undefined,
- }
- );
+export const getServerSideProps: GetServerSideProps = async (
+ ctx
+) => {
+ const response = await axios.get(
+ `http://localhost:${process.env.PORT || 5055}/api/v1/tv/${ctx.query.tvId}`,
+ {
+ headers: ctx.req?.headers?.cookie
+ ? { cookie: ctx.req.headers.cookie }
+ : undefined,
+ }
+ );
- return {
+ return {
+ props: {
tv: response.data,
- };
- }
-
- return {};
+ },
+ };
};
export default TvPage;
From c27f96096ac8cc6c387f9d1dde5b263576ac2132 Mon Sep 17 00:00:00 2001
From: Brandon Cohen
Date: Thu, 11 May 2023 00:27:45 -0400
Subject: [PATCH 16/39] fix: lock body scroll when using webkit (#3399)
---
src/hooks/useLockBodyScroll.ts | 11 +++++++++--
1 file changed, 9 insertions(+), 2 deletions(-)
diff --git a/src/hooks/useLockBodyScroll.ts b/src/hooks/useLockBodyScroll.ts
index 08d7e3b6b..e962447cf 100644
--- a/src/hooks/useLockBodyScroll.ts
+++ b/src/hooks/useLockBodyScroll.ts
@@ -15,13 +15,20 @@ export const useLockBodyScroll = (
disabled?: boolean
): void => {
useEffect(() => {
- const originalStyle = window.getComputedStyle(document.body).overflow;
+ const originalOverflowStyle = window.getComputedStyle(
+ document.body
+ ).overflow;
+ const originalTouchActionStyle = window.getComputedStyle(
+ document.body
+ ).touchAction;
if (isLocked && !disabled) {
document.body.style.overflow = 'hidden';
+ document.body.style.touchAction = 'none';
}
return () => {
if (!disabled) {
- document.body.style.overflow = originalStyle;
+ document.body.style.overflow = originalOverflowStyle;
+ document.body.style.touchAction = originalTouchActionStyle;
}
};
}, [isLocked, disabled]);
From e051b1dfea9c9320cc9dd420c475ae74cff0d901 Mon Sep 17 00:00:00 2001
From: Brandon Cohen
Date: Thu, 11 May 2023 00:43:11 -0400
Subject: [PATCH 17/39] fix: correctly load series fallback modal with sonarr
v4 (#3451)
---
server/routes/service.ts | 4 +---
1 file changed, 1 insertion(+), 3 deletions(-)
diff --git a/server/routes/service.ts b/server/routes/service.ts
index b77d58c9d..083e1eb57 100644
--- a/server/routes/service.ts
+++ b/server/routes/service.ts
@@ -183,9 +183,7 @@ serviceRoutes.get<{ tmdbId: string }>(
const sonarr = new SonarrAPI({
apiKey: sonarrSettings.apiKey,
- url: `${sonarrSettings.useSsl ? 'https' : 'http'}://${
- sonarrSettings.hostname
- }:${sonarrSettings.port}${sonarrSettings.baseUrl ?? ''}/api`,
+ url: SonarrAPI.buildUrl(sonarrSettings, '/api/v3'),
});
try {
From aa849776809dfe891e67ff4db6861ef44df1a774 Mon Sep 17 00:00:00 2001
From: Shane Friedman
Date: Fri, 12 May 2023 20:23:14 -0400
Subject: [PATCH 18/39] feat(discover): support filtering by tmdb user vote
count on discover page (#3407)
---
overseerr-api.yml | 20 +++++++++
server/api/themoviedb/index.ts | 12 ++++++
server/routes/discover.ts | 6 +++
.../Discover/FilterSlideover/index.tsx | 41 +++++++++++++++++++
src/components/Discover/constants.ts | 16 ++++++++
src/i18n/locale/en.json | 2 +
6 files changed, 97 insertions(+)
diff --git a/overseerr-api.yml b/overseerr-api.yml
index 542ac59f4..c8b528859 100644
--- a/overseerr-api.yml
+++ b/overseerr-api.yml
@@ -4186,6 +4186,16 @@ paths:
schema:
type: number
example: 10
+ - in: query
+ name: voteCountGte
+ schema:
+ type: number
+ example: 7
+ - in: query
+ name: voteCountLte
+ schema:
+ type: number
+ example: 10
- in: query
name: watchRegion
schema:
@@ -4465,6 +4475,16 @@ paths:
schema:
type: number
example: 10
+ - in: query
+ name: voteCountGte
+ schema:
+ type: number
+ example: 7
+ - in: query
+ name: voteCountLte
+ schema:
+ type: number
+ example: 10
- in: query
name: watchRegion
schema:
diff --git a/server/api/themoviedb/index.ts b/server/api/themoviedb/index.ts
index 4c931ff97..ef36fcd6d 100644
--- a/server/api/themoviedb/index.ts
+++ b/server/api/themoviedb/index.ts
@@ -65,6 +65,8 @@ interface DiscoverMovieOptions {
withRuntimeLte?: string;
voteAverageGte?: string;
voteAverageLte?: string;
+ voteCountGte?: string;
+ voteCountLte?: string;
originalLanguage?: string;
genre?: string;
studio?: string;
@@ -83,6 +85,8 @@ interface DiscoverTvOptions {
withRuntimeLte?: string;
voteAverageGte?: string;
voteAverageLte?: string;
+ voteCountGte?: string;
+ voteCountLte?: string;
includeEmptyReleaseDate?: boolean;
originalLanguage?: string;
genre?: string;
@@ -460,6 +464,8 @@ class TheMovieDb extends ExternalAPI {
withRuntimeLte,
voteAverageGte,
voteAverageLte,
+ voteCountGte,
+ voteCountLte,
watchProviders,
watchRegion,
}: DiscoverMovieOptions = {}): Promise => {
@@ -504,6 +510,8 @@ class TheMovieDb extends ExternalAPI {
'with_runtime.lte': withRuntimeLte,
'vote_average.gte': voteAverageGte,
'vote_average.lte': voteAverageLte,
+ 'vote_count.gte': voteCountGte,
+ 'vote_count.lte': voteCountLte,
watch_region: watchRegion,
with_watch_providers: watchProviders,
},
@@ -530,6 +538,8 @@ class TheMovieDb extends ExternalAPI {
withRuntimeLte,
voteAverageGte,
voteAverageLte,
+ voteCountGte,
+ voteCountLte,
watchProviders,
watchRegion,
}: DiscoverTvOptions = {}): Promise => {
@@ -574,6 +584,8 @@ class TheMovieDb extends ExternalAPI {
'with_runtime.lte': withRuntimeLte,
'vote_average.gte': voteAverageGte,
'vote_average.lte': voteAverageLte,
+ 'vote_count.gte': voteCountGte,
+ 'vote_count.lte': voteCountLte,
with_watch_providers: watchProviders,
watch_region: watchRegion,
},
diff --git a/server/routes/discover.ts b/server/routes/discover.ts
index 47492fc06..487d1a329 100644
--- a/server/routes/discover.ts
+++ b/server/routes/discover.ts
@@ -65,6 +65,8 @@ const QueryFilterOptions = z.object({
withRuntimeLte: z.coerce.string().optional(),
voteAverageGte: z.coerce.string().optional(),
voteAverageLte: z.coerce.string().optional(),
+ voteCountGte: z.coerce.string().optional(),
+ voteCountLte: z.coerce.string().optional(),
network: z.coerce.string().optional(),
watchProviders: z.coerce.string().optional(),
watchRegion: z.coerce.string().optional(),
@@ -96,6 +98,8 @@ discoverRoutes.get('/movies', async (req, res, next) => {
withRuntimeLte: query.withRuntimeLte,
voteAverageGte: query.voteAverageGte,
voteAverageLte: query.voteAverageLte,
+ voteCountGte: query.voteCountGte,
+ voteCountLte: query.voteCountLte,
watchProviders: query.watchProviders,
watchRegion: query.watchRegion,
});
@@ -371,6 +375,8 @@ discoverRoutes.get('/tv', async (req, res, next) => {
withRuntimeLte: query.withRuntimeLte,
voteAverageGte: query.voteAverageGte,
voteAverageLte: query.voteAverageLte,
+ voteCountGte: query.voteCountGte,
+ voteCountLte: query.voteCountLte,
watchProviders: query.watchProviders,
watchRegion: query.watchRegion,
});
diff --git a/src/components/Discover/FilterSlideover/index.tsx b/src/components/Discover/FilterSlideover/index.tsx
index 10ee0fea2..83d5a2e49 100644
--- a/src/components/Discover/FilterSlideover/index.tsx
+++ b/src/components/Discover/FilterSlideover/index.tsx
@@ -35,8 +35,10 @@ const messages = defineMessages({
ratingText: 'Ratings between {minValue} and {maxValue}',
clearfilters: 'Clear Active Filters',
tmdbuserscore: 'TMDB User Score',
+ tmdbuservotecount: 'TMDB User Vote Count',
runtime: 'Runtime',
streamingservices: 'Streaming Services',
+ voteCount: 'Number of votes between {minValue} and {maxValue}',
});
type FilterSlideoverProps = {
@@ -246,6 +248,45 @@ const FilterSlideover = ({
})}
/>
+
+ {intl.formatMessage(messages.tmdbuservotecount)}
+
+
+ {
+ updateQueryParams(
+ 'voteCountGte',
+ min !== 0 && Number(currentFilters.voteCountLte) !== 1000
+ ? min.toString()
+ : undefined
+ );
+ }}
+ onUpdateMax={(max) => {
+ updateQueryParams(
+ 'voteCountLte',
+ max !== 1000 && Number(currentFilters.voteCountGte) !== 0
+ ? max.toString()
+ : undefined
+ );
+ }}
+ subText={intl.formatMessage(messages.voteCount, {
+ minValue: currentFilters.voteCountGte ?? 0,
+ maxValue: currentFilters.voteCountLte ?? 1000,
+ })}
+ />
+
{intl.formatMessage(messages.streamingservices)}
diff --git a/src/components/Discover/constants.ts b/src/components/Discover/constants.ts
index 802ba7c6e..0571f1fc7 100644
--- a/src/components/Discover/constants.ts
+++ b/src/components/Discover/constants.ts
@@ -104,6 +104,8 @@ export const QueryFilterOptions = z.object({
withRuntimeLte: z.string().optional(),
voteAverageGte: z.string().optional(),
voteAverageLte: z.string().optional(),
+ voteCountLte: z.string().optional(),
+ voteCountGte: z.string().optional(),
watchRegion: z.string().optional(),
watchProviders: z.string().optional(),
});
@@ -169,6 +171,14 @@ export const prepareFilterValues = (
filterValues.voteAverageLte = values.voteAverageLte;
}
+ if (values.voteCountGte) {
+ filterValues.voteCountGte = values.voteCountGte;
+ }
+
+ if (values.voteCountLte) {
+ filterValues.voteCountLte = values.voteCountLte;
+ }
+
if (values.watchProviders) {
filterValues.watchProviders = values.watchProviders;
}
@@ -190,6 +200,12 @@ export const countActiveFilters = (filterValues: FilterOptions): number => {
delete clonedFilters.voteAverageLte;
}
+ if (clonedFilters.voteCountGte || filterValues.voteCountLte) {
+ totalCount += 1;
+ delete clonedFilters.voteCountGte;
+ delete clonedFilters.voteCountLte;
+ }
+
if (clonedFilters.withRuntimeGte || filterValues.withRuntimeLte) {
totalCount += 1;
delete clonedFilters.withRuntimeGte;
diff --git a/src/i18n/locale/en.json b/src/i18n/locale/en.json
index 39d44bbc3..0098eb5c6 100644
--- a/src/i18n/locale/en.json
+++ b/src/i18n/locale/en.json
@@ -76,7 +76,9 @@
"components.Discover.FilterSlideover.streamingservices": "Streaming Services",
"components.Discover.FilterSlideover.studio": "Studio",
"components.Discover.FilterSlideover.tmdbuserscore": "TMDB User Score",
+ "components.Discover.FilterSlideover.tmdbuservotecount": "TMDB User Vote Count",
"components.Discover.FilterSlideover.to": "To",
+ "components.Discover.FilterSlideover.voteCount": "Number of votes between {minValue} and {maxValue}",
"components.Discover.MovieGenreList.moviegenres": "Movie Genres",
"components.Discover.MovieGenreSlider.moviegenres": "Movie Genres",
"components.Discover.NetworkSlider.networks": "Networks",
From b8e3c07c4760462d42dafb05ebaea8c19a8ec842 Mon Sep 17 00:00:00 2001
From: "allcontributors[bot]"
<46447321+allcontributors[bot]@users.noreply.github.com>
Date: Sat, 13 May 2023 09:35:51 +0900
Subject: [PATCH 19/39] docs: add SMores as a contributor for code (#3455)
[skip ci]
* docs: update README.md
* docs: update .all-contributorsrc
---------
Co-authored-by: allcontributors[bot] <46447321+allcontributors[bot]@users.noreply.github.com>
---
.all-contributorsrc | 9 +++++++++
README.md | 3 ++-
2 files changed, 11 insertions(+), 1 deletion(-)
diff --git a/.all-contributorsrc b/.all-contributorsrc
index de5ea4913..7cf0f74e8 100644
--- a/.all-contributorsrc
+++ b/.all-contributorsrc
@@ -827,6 +827,15 @@
"contributions": [
"code"
]
+ },
+ {
+ "login": "SMores",
+ "name": "Shane Friedman",
+ "avatar_url": "https://avatars.githubusercontent.com/u/5354254?v=4",
+ "profile": "http://smoores.dev",
+ "contributions": [
+ "code"
+ ]
}
],
"badgeTemplate": "
-orange.svg\"/>",
diff --git a/README.md b/README.md
index c50ce854c..915c75c8f 100644
--- a/README.md
+++ b/README.md
@@ -11,7 +11,7 @@

-

+

@@ -189,6 +189,7 @@ Thanks goes to these wonderful people ([emoji key](https://allcontributors.org/d
 jariz 💻 |
 Alex 💻 |
 Zeb Muller 💻 |
+
 Shane Friedman 💻 |
From 03316c642d1ecf89753789af08caf6e3aac80113 Mon Sep 17 00:00:00 2001
From: Yalagin
Date: Mon, 15 May 2023 23:25:32 +0700
Subject: [PATCH 20/39] fix(watchlist): add validation for creation request
---
server/entity/Watchlist.ts | 17 +++++++++++++----
server/interfaces/api/watchlistCreate.ts | 9 +++++++++
server/routes/watchlist.ts | 9 ++++++++-
3 files changed, 30 insertions(+), 5 deletions(-)
create mode 100644 server/interfaces/api/watchlistCreate.ts
diff --git a/server/entity/Watchlist.ts b/server/entity/Watchlist.ts
index bf362acb4..df820120e 100644
--- a/server/entity/Watchlist.ts
+++ b/server/entity/Watchlist.ts
@@ -15,6 +15,7 @@ import {
Unique,
UpdateDateColumn,
} from 'typeorm';
+import type { ZodNumber, ZodOptional, ZodString } from 'zod';
export class DuplicateWatchlistRequestError extends Error {}
export class NotFoundError extends Error {
@@ -65,10 +66,18 @@ export class Watchlist implements WatchlistItem {
Object.assign(this, init);
}
- public static async createWatchlist(
- watchlistRequest: Watchlist,
- user: User
- ): Promise {
+ public static async createWatchlist({
+ watchlistRequest,
+ user,
+ }: {
+ watchlistRequest: {
+ mediaType: MediaType;
+ ratingKey?: ZodOptional['_output'];
+ title?: ZodOptional['_output'];
+ tmdbId: ZodNumber['_output'];
+ };
+ user: User;
+ }): Promise {
const watchlistRepository = getRepository(this);
const mediaRepository = getRepository(Media);
const tmdb = new TheMovieDb();
diff --git a/server/interfaces/api/watchlistCreate.ts b/server/interfaces/api/watchlistCreate.ts
new file mode 100644
index 000000000..6cc6af3bb
--- /dev/null
+++ b/server/interfaces/api/watchlistCreate.ts
@@ -0,0 +1,9 @@
+import { MediaType } from '@server/constants/media';
+import { z } from 'zod';
+
+export const watchlistCreate = z.object({
+ ratingKey: z.coerce.string().optional(),
+ tmdbId: z.coerce.number(),
+ mediaType: z.nativeEnum(MediaType),
+ title: z.coerce.string().optional(),
+});
diff --git a/server/routes/watchlist.ts b/server/routes/watchlist.ts
index b8ca0b909..bbb44da01 100644
--- a/server/routes/watchlist.ts
+++ b/server/routes/watchlist.ts
@@ -7,6 +7,8 @@ import logger from '@server/logger';
import { Router } from 'express';
import { QueryFailedError } from 'typeorm';
+import { watchlistCreate } from '@server/interfaces/api/watchlistCreate';
+
const watchlistRoutes = Router();
watchlistRoutes.post(
@@ -19,7 +21,12 @@ watchlistRoutes.post(
message: 'You must be logged in to add watchlist.',
});
}
- const request = await Watchlist.createWatchlist(req.body, req.user);
+ const values = watchlistCreate.parse(req.body);
+
+ const request = await Watchlist.createWatchlist({
+ watchlistRequest: values,
+ user: req.user,
+ });
return res.status(201).json(request);
} catch (error) {
if (!(error instanceof Error)) {
From 24f268b6cb67d9a8d8675cd6e09dd83a7f499add Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Izaac=20Br=C3=A5nn?=
Date: Mon, 29 May 2023 04:29:36 +0200
Subject: [PATCH 21/39] feat: auto tagging requested media with username
(#3338)
* feat: auto tagging requested media with username
Relating to discussion: https://github.com/sct/overseerr/discussions/3313
Adding an option to the Radarr and Sonarr service to enable automatic tagging
with the username requesting the media.
Current format, to reduce tag clutter if a user changes displayname:
`[user.id] - [user.displayName]`
* fix: modified new secondary tip language
---------
Co-authored-by: Brandon Cohen
---
server/entity/MediaRequest.ts | 64 +++++++++++++++++++
server/lib/settings.ts | 1 +
src/components/Settings/RadarrModal/index.tsx | 20 ++++++
src/components/Settings/SonarrModal/index.tsx | 20 ++++++
src/i18n/locale/en.json | 5 ++
5 files changed, 110 insertions(+)
diff --git a/server/entity/MediaRequest.ts b/server/entity/MediaRequest.ts
index 61122afc3..5a8d3988c 100644
--- a/server/entity/MediaRequest.ts
+++ b/server/entity/MediaRequest.ts
@@ -764,6 +764,38 @@ export class MediaRequest {
return;
}
+ if (radarrSettings.tagRequests) {
+ let userTag = (await radarr.getTags()).find((v) =>
+ v.label.startsWith(this.requestedBy.id + ' - ')
+ );
+ if (!userTag) {
+ logger.info(`Requester has no active tag. Creating new`, {
+ label: 'Media Request',
+ requestId: this.id,
+ mediaId: this.media.id,
+ userId: this.requestedBy.id,
+ newTag:
+ this.requestedBy.id + ' - ' + this.requestedBy.displayName,
+ });
+ userTag = await radarr.createTag({
+ label: this.requestedBy.id + ' - ' + this.requestedBy.displayName,
+ });
+ }
+ if (userTag.id) {
+ if (!tags?.find((v) => v === userTag?.id)) {
+ tags?.push(userTag.id);
+ }
+ } else {
+ logger.warn(`Requester has no tag and failed to add one`, {
+ label: 'Media Request',
+ requestId: this.id,
+ mediaId: this.media.id,
+ userId: this.requestedBy.id,
+ radarrServer: radarrSettings.hostname + ':' + radarrSettings.port,
+ });
+ }
+ }
+
if (
media[this.is4k ? 'status4k' : 'status'] === MediaStatus.AVAILABLE
) {
@@ -1022,6 +1054,38 @@ export class MediaRequest {
});
}
+ if (sonarrSettings.tagRequests) {
+ let userTag = (await sonarr.getTags()).find((v) =>
+ v.label.startsWith(this.requestedBy.id + ' - ')
+ );
+ if (!userTag) {
+ logger.info(`Requester has no active tag. Creating new`, {
+ label: 'Media Request',
+ requestId: this.id,
+ mediaId: this.media.id,
+ userId: this.requestedBy.id,
+ newTag:
+ this.requestedBy.id + ' - ' + this.requestedBy.displayName,
+ });
+ userTag = await sonarr.createTag({
+ label: this.requestedBy.id + ' - ' + this.requestedBy.displayName,
+ });
+ }
+ if (userTag.id) {
+ if (!tags?.find((v) => v === userTag?.id)) {
+ tags?.push(userTag.id);
+ }
+ } else {
+ logger.warn(`Requester has no tag and failed to add one`, {
+ label: 'Media Request',
+ requestId: this.id,
+ mediaId: this.media.id,
+ userId: this.requestedBy.id,
+ sonarrServer: sonarrSettings.hostname + ':' + sonarrSettings.port,
+ });
+ }
+ }
+
const sonarrSeriesOptions: AddSeriesOptions = {
profileId: qualityProfile,
languageProfileId: languageProfile,
diff --git a/server/lib/settings.ts b/server/lib/settings.ts
index 8e66ebc5d..c3981fe90 100644
--- a/server/lib/settings.ts
+++ b/server/lib/settings.ts
@@ -61,6 +61,7 @@ export interface DVRSettings {
externalUrl?: string;
syncEnabled: boolean;
preventSearch: boolean;
+ tagRequests: boolean;
}
export interface RadarrSettings extends DVRSettings {
diff --git a/src/components/Settings/RadarrModal/index.tsx b/src/components/Settings/RadarrModal/index.tsx
index e74b0465f..4ebc7a8ba 100644
--- a/src/components/Settings/RadarrModal/index.tsx
+++ b/src/components/Settings/RadarrModal/index.tsx
@@ -57,6 +57,9 @@ const messages = defineMessages({
testFirstTags: 'Test connection to load tags',
tags: 'Tags',
enableSearch: 'Enable Automatic Search',
+ tagRequests: 'Tag Requests',
+ tagRequestsInfo:
+ "Automatically add an additional tag with the requester's user ID & display name",
validationApplicationUrl: 'You must provide a valid URL',
validationApplicationUrlTrailingSlash: 'URL must not end in a trailing slash',
validationBaseUrlLeadingSlash: 'URL base must have a leading slash',
@@ -238,6 +241,7 @@ const RadarrModal = ({ onClose, radarr, onSave }: RadarrModalProps) => {
externalUrl: radarr?.externalUrl,
syncEnabled: radarr?.syncEnabled ?? false,
enableSearch: !radarr?.preventSearch,
+ tagRequests: radarr?.tagRequests ?? false,
}}
validationSchema={RadarrSettingsSchema}
onSubmit={async (values) => {
@@ -263,6 +267,7 @@ const RadarrModal = ({ onClose, radarr, onSave }: RadarrModalProps) => {
externalUrl: values.externalUrl,
syncEnabled: values.syncEnabled,
preventSearch: !values.enableSearch,
+ tagRequests: values.tagRequests,
};
if (!radarr) {
await axios.post('/api/v1/settings/radarr', submission);
@@ -713,6 +718,21 @@ const RadarrModal = ({ onClose, radarr, onSave }: RadarrModalProps) => {
/>
+
+
+
+
+
+
);
diff --git a/src/components/Settings/SonarrModal/index.tsx b/src/components/Settings/SonarrModal/index.tsx
index d9ff0c172..6c61d5dbf 100644
--- a/src/components/Settings/SonarrModal/index.tsx
+++ b/src/components/Settings/SonarrModal/index.tsx
@@ -62,6 +62,9 @@ const messages = defineMessages({
syncEnabled: 'Enable Scan',
externalUrl: 'External URL',
enableSearch: 'Enable Automatic Search',
+ tagRequests: 'Tag Requests',
+ tagRequestsInfo:
+ "Automatically add an additional tag with the requester's user ID & display name",
validationApplicationUrl: 'You must provide a valid URL',
validationApplicationUrlTrailingSlash: 'URL must not end in a trailing slash',
validationBaseUrlLeadingSlash: 'Base URL must have a leading slash',
@@ -252,6 +255,7 @@ const SonarrModal = ({ onClose, sonarr, onSave }: SonarrModalProps) => {
externalUrl: sonarr?.externalUrl,
syncEnabled: sonarr?.syncEnabled ?? false,
enableSearch: !sonarr?.preventSearch,
+ tagRequests: sonarr?.tagRequests ?? false,
}}
validationSchema={SonarrSettingsSchema}
onSubmit={async (values) => {
@@ -292,6 +296,7 @@ const SonarrModal = ({ onClose, sonarr, onSave }: SonarrModalProps) => {
externalUrl: values.externalUrl,
syncEnabled: values.syncEnabled,
preventSearch: !values.enableSearch,
+ tagRequests: values.tagRequests,
};
if (!sonarr) {
await axios.post('/api/v1/settings/sonarr', submission);
@@ -960,6 +965,21 @@ const SonarrModal = ({ onClose, sonarr, onSave }: SonarrModalProps) => {
/>
+
+
+
+
+
+
);
diff --git a/src/i18n/locale/en.json b/src/i18n/locale/en.json
index 0098eb5c6..24a537a07 100644
--- a/src/i18n/locale/en.json
+++ b/src/i18n/locale/en.json
@@ -684,6 +684,8 @@
"components.Settings.RadarrModal.servername": "Server Name",
"components.Settings.RadarrModal.ssl": "Use SSL",
"components.Settings.RadarrModal.syncEnabled": "Enable Scan",
+ "components.Settings.RadarrModal.tagRequests": "Tag Requests",
+ "components.Settings.RadarrModal.tagRequestsInfo": "Automatically add an additional tag with the requester's user ID & display name",
"components.Settings.RadarrModal.tags": "Tags",
"components.Settings.RadarrModal.testFirstQualityProfiles": "Test connection to load quality profiles",
"components.Settings.RadarrModal.testFirstRootFolders": "Test connection to load root folders",
@@ -861,6 +863,8 @@
"components.Settings.SonarrModal.servername": "Server Name",
"components.Settings.SonarrModal.ssl": "Use SSL",
"components.Settings.SonarrModal.syncEnabled": "Enable Scan",
+ "components.Settings.SonarrModal.tagRequests": "Tag Requests",
+ "components.Settings.SonarrModal.tagRequestsInfo": "Automatically add an additional tag with the requester's user ID & display name",
"components.Settings.SonarrModal.tags": "Tags",
"components.Settings.SonarrModal.testFirstLanguageProfiles": "Test connection to load language profiles",
"components.Settings.SonarrModal.testFirstQualityProfiles": "Test connection to load quality profiles",
@@ -1178,6 +1182,7 @@
"i18n.cancel": "Cancel",
"i18n.canceling": "Canceling…",
"i18n.close": "Close",
+ "i18n.collection": "Collection",
"i18n.decline": "Decline",
"i18n.declined": "Declined",
"i18n.delete": "Delete",
From 0a007ca805dff334fc7972590c6f7bc85dce95a7 Mon Sep 17 00:00:00 2001
From: "allcontributors[bot]"
<46447321+allcontributors[bot]@users.noreply.github.com>
Date: Mon, 29 May 2023 11:32:08 +0900
Subject: [PATCH 22/39] docs: add IzaacJ as a contributor for code (#3473)
[skip ci]
* docs: update README.md
* docs: update .all-contributorsrc
---------
Co-authored-by: allcontributors[bot] <46447321+allcontributors[bot]@users.noreply.github.com>
---
.all-contributorsrc | 12 +++++++++++-
README.md | 5 ++++-
2 files changed, 15 insertions(+), 2 deletions(-)
diff --git a/.all-contributorsrc b/.all-contributorsrc
index 7cf0f74e8..62df8b807 100644
--- a/.all-contributorsrc
+++ b/.all-contributorsrc
@@ -836,6 +836,15 @@
"contributions": [
"code"
]
+ },
+ {
+ "login": "IzaacJ",
+ "name": "Izaac Brånn",
+ "avatar_url": "https://avatars.githubusercontent.com/u/711323?v=4",
+ "profile": "https://izaacj.me",
+ "contributions": [
+ "code"
+ ]
}
],
"badgeTemplate": "
-orange.svg\"/>",
@@ -845,5 +854,6 @@
"repoType": "github",
"repoHost": "https://github.com",
"skipCi": false,
- "commitConvention": "angular"
+ "commitConvention": "angular",
+ "commitType": "docs"
}
diff --git a/README.md b/README.md
index 915c75c8f..af2e7859d 100644
--- a/README.md
+++ b/README.md
@@ -11,7 +11,7 @@
-
+
@@ -191,6 +191,9 @@ Thanks goes to these wonderful people ([emoji key](https://allcontributors.org/d
 Zeb Muller 💻 |
 Shane Friedman 💻 |
+
+  Izaac Brånn 💻 |
+
From f33eb862fd85ff135828ab25c8d12d84e7e50762 Mon Sep 17 00:00:00 2001
From: Ryan Cohen
Date: Mon, 29 May 2023 11:36:26 +0900
Subject: [PATCH 23/39] chore: update codeowners (#3474) [skip ci]
---
.github/CODEOWNERS | 10 +++++-----
1 file changed, 5 insertions(+), 5 deletions(-)
diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS
index 6effae045..68a2d018e 100644
--- a/.github/CODEOWNERS
+++ b/.github/CODEOWNERS
@@ -1,10 +1,10 @@
# Global code ownership
-* @sct @TheCatLady @danshilm
+* @sct @TheCatLady @danshilm @OwsleyJr
# Documentation
-/.all-contributorsrc @TheCatLady @samwiseg0 @danshilm
-/*.md @TheCatLady @samwiseg0 @danshilm
-/docs/ @TheCatLady @samwiseg0 @danshilm
+/.all-contributorsrc @TheCatLady @samwiseg0 @danshilm @OwsleyJr
+/*.md @TheCatLady @samwiseg0 @danshilm @OwsleyJr
+/docs/ @TheCatLady @samwiseg0 @danshilm @OwsleyJr
# Snap-related files
/.github/workflows/snap.yaml @samwiseg0
@@ -12,4 +12,4 @@
# i18n locale files
/src/i18n/locale/ @sct @TheCatLady
-/src/i18n/locale/en.json @sct @TheCatLady @danshilm
+/src/i18n/locale/en.json @sct @TheCatLady @danshilm @OwsleyJr
From d7fa35e066cf371797aaa46ca464aa531ba8fb35 Mon Sep 17 00:00:00 2001
From: Salman Tariq
Date: Thu, 1 Jun 2023 02:53:50 +0500
Subject: [PATCH 24/39] fix(genreselector): fix searching in Genre filter
(#3468)
---
src/components/Selector/index.tsx | 14 +++++++++-----
1 file changed, 9 insertions(+), 5 deletions(-)
diff --git a/src/components/Selector/index.tsx b/src/components/Selector/index.tsx
index 8a21d3fbe..78ae33ea1 100644
--- a/src/components/Selector/index.tsx
+++ b/src/components/Selector/index.tsx
@@ -169,15 +169,19 @@ export const GenreSelector = ({
loadDefaultGenre();
}, [defaultValue, type]);
- const loadGenreOptions = async () => {
+ const loadGenreOptions = async (inputValue: string) => {
const results = await axios.get(
`/api/v1/discover/genreslider/${type}`
);
- return results.data.map((result) => ({
- label: result.name,
- value: result.id,
- }));
+ return results.data
+ .map((result) => ({
+ label: result.name,
+ value: result.id,
+ }))
+ .filter(({ label }) =>
+ label.toLowerCase().includes(inputValue.toLowerCase())
+ );
};
return (
From df332cec84f31e7a5152d9ad80f3f7839c0f3329 Mon Sep 17 00:00:00 2001
From: "allcontributors[bot]"
<46447321+allcontributors[bot]@users.noreply.github.com>
Date: Thu, 1 Jun 2023 00:24:05 +0000
Subject: [PATCH 25/39] docs: add SalmanTariq as a contributor for code (#3478)
* docs: update README.md
* docs: update .all-contributorsrc
---------
Co-authored-by: allcontributors[bot] <46447321+allcontributors[bot]@users.noreply.github.com>
---
.all-contributorsrc | 9 +++++++++
README.md | 3 ++-
2 files changed, 11 insertions(+), 1 deletion(-)
diff --git a/.all-contributorsrc b/.all-contributorsrc
index 62df8b807..634d9050e 100644
--- a/.all-contributorsrc
+++ b/.all-contributorsrc
@@ -845,6 +845,15 @@
"contributions": [
"code"
]
+ },
+ {
+ "login": "SalmanTariq",
+ "name": "Salman Tariq",
+ "avatar_url": "https://avatars.githubusercontent.com/u/13284494?v=4",
+ "profile": "https://github.com/SalmanTariq",
+ "contributions": [
+ "code"
+ ]
}
],
"badgeTemplate": "
-orange.svg\"/>",
diff --git a/README.md b/README.md
index af2e7859d..5aa90d257 100644
--- a/README.md
+++ b/README.md
@@ -11,7 +11,7 @@
-
+
@@ -193,6 +193,7 @@ Thanks goes to these wonderful people ([emoji key](https://allcontributors.org/d
 Izaac Brånn 💻 |
+  Salman Tariq 💻 |
From 672061cd646c97c9954790c8e50eac88ea2666e9 Mon Sep 17 00:00:00 2001
From: Jesse Boswell
Date: Mon, 5 Jun 2023 10:59:32 -0500
Subject: [PATCH 26/39] feat(src/components/externallinkblock/index.tsx):
support Emby icon
Display the Emby icon instead of Jellyfin when mediaserver type is Emby
---
src/assets/services/emby.svg | 78 ++++++++++++++++++++++
src/components/ExternalLinkBlock/index.tsx | 6 +-
2 files changed, 83 insertions(+), 1 deletion(-)
create mode 100644 src/assets/services/emby.svg
diff --git a/src/assets/services/emby.svg b/src/assets/services/emby.svg
new file mode 100644
index 000000000..e68d69ac5
--- /dev/null
+++ b/src/assets/services/emby.svg
@@ -0,0 +1,78 @@
+
+
diff --git a/src/components/ExternalLinkBlock/index.tsx b/src/components/ExternalLinkBlock/index.tsx
index d7c4b4602..f6c4caf68 100644
--- a/src/components/ExternalLinkBlock/index.tsx
+++ b/src/components/ExternalLinkBlock/index.tsx
@@ -1,3 +1,4 @@
+import EmbyLogo from '@app/assets/services/emby.svg';
import ImdbLogo from '@app/assets/services/imdb.svg';
import JellyfinLogo from '@app/assets/services/jellyfin.svg';
import PlexLogo from '@app/assets/services/plex.svg';
@@ -41,8 +42,11 @@ const ExternalLinkBlock = ({
>
{settings.currentSettings.mediaServerType === MediaServerType.PLEX ? (
- ) : (
+ ) : settings.currentSettings.mediaServerType ===
+ MediaServerType.JELLYFIN ? (
+ ) : (
+
)}
)}
From 46cd4d01d9a3cf17d79350c5e678202820272299 Mon Sep 17 00:00:00 2001
From: Jesse Boswell
Date: Mon, 5 Jun 2023 12:10:25 -0500
Subject: [PATCH 27/39] fix: externalLinkBlock
---
src/components/ExternalLinkBlock/index.tsx | 9 +++++----
1 file changed, 5 insertions(+), 4 deletions(-)
diff --git a/src/components/ExternalLinkBlock/index.tsx b/src/components/ExternalLinkBlock/index.tsx
index f6c4caf68..1de0b5a36 100644
--- a/src/components/ExternalLinkBlock/index.tsx
+++ b/src/components/ExternalLinkBlock/index.tsx
@@ -10,6 +10,7 @@ import useLocale from '@app/hooks/useLocale';
import useSettings from '@app/hooks/useSettings';
import { MediaType } from '@server/constants/media';
import { MediaServerType } from '@server/constants/server';
+import getConfig from 'next/config';
interface ExternalLinkBlockProps {
mediaType: 'movie' | 'tv';
@@ -29,6 +30,7 @@ const ExternalLinkBlock = ({
mediaUrl,
}: ExternalLinkBlockProps) => {
const settings = useSettings();
+ const { publicRuntimeConfig } = getConfig();
const { locale } = useLocale();
return (
@@ -42,11 +44,10 @@ const ExternalLinkBlock = ({
>
{settings.currentSettings.mediaServerType === MediaServerType.PLEX ? (
- ) : settings.currentSettings.mediaServerType ===
- MediaServerType.JELLYFIN ? (
-
- ) : (
+ ) : publicRuntimeConfig.JELLYFIN_TYPE == 'emby' ? (
+ ) : (
+
)}
)}
From ad69d6715e976630092bfbbb1843886523551014 Mon Sep 17 00:00:00 2001
From: Jesse Boswell
Date: Mon, 5 Jun 2023 13:21:00 -0500
Subject: [PATCH 28/39] fix(ui): Resize Emby icon and add margins
---
src/assets/services/emby.svg | 73 +++++++++---------------------------
1 file changed, 17 insertions(+), 56 deletions(-)
diff --git a/src/assets/services/emby.svg b/src/assets/services/emby.svg
index e68d69ac5..9db728426 100644
--- a/src/assets/services/emby.svg
+++ b/src/assets/services/emby.svg
@@ -1,61 +1,15 @@
From 1fe4bb8a0415a72791ced75a2fba1027287398d5 Mon Sep 17 00:00:00 2001
From: Jesse Boswell
Date: Mon, 5 Jun 2023 18:44:42 -0500
Subject: [PATCH 29/39] fix(ui): Make play symbol white
---
src/assets/services/emby.svg | 13 ++++++++++---
1 file changed, 10 insertions(+), 3 deletions(-)
diff --git a/src/assets/services/emby.svg b/src/assets/services/emby.svg
index 9db728426..eddc540cd 100644
--- a/src/assets/services/emby.svg
+++ b/src/assets/services/emby.svg
@@ -26,11 +26,18 @@
id="rect249"
width="712.60077"
height="712.5481"
- x="1e-06"
- y="-2.8421709e-14" />
+ x="-0.00071160076"
+ y="2.0223413e-11" />
+
+ transform="matrix(0.70249853,0,0,0.70249853,88.770447,96.84571)">
Date: Fri, 9 Jun 2023 15:46:04 -0700
Subject: [PATCH 30/39] fix: make a (shallow) copy of radarr/sonarr tags into a
request before adding user tags (#3485)
* Make a (shallow) copy of radarr/sonarr tags into a request before adding user tags
* Undo random formatting changes
* more undoing formatting changes
* Fix undefined case.
* Prettier format
---
server/entity/MediaRequest.ts | 8 ++++++--
1 file changed, 6 insertions(+), 2 deletions(-)
diff --git a/server/entity/MediaRequest.ts b/server/entity/MediaRequest.ts
index 5a8d3988c..e980860c6 100644
--- a/server/entity/MediaRequest.ts
+++ b/server/entity/MediaRequest.ts
@@ -704,7 +704,7 @@ export class MediaRequest {
let rootFolder = radarrSettings.activeDirectory;
let qualityProfile = radarrSettings.activeProfileId;
- let tags = radarrSettings.tags;
+ let tags = radarrSettings.tags ? [...radarrSettings.tags] : [];
if (
this.rootFolder &&
@@ -1002,7 +1002,11 @@ export class MediaRequest {
let tags =
seriesType === 'anime'
? sonarrSettings.animeTags
- : sonarrSettings.tags;
+ ? [...sonarrSettings.animeTags]
+ : []
+ : sonarrSettings.tags
+ ? [...sonarrSettings.tags]
+ : [];
if (
this.rootFolder &&
From 21231186d17df00073a8977bab9f7605736fd155 Mon Sep 17 00:00:00 2001
From: "allcontributors[bot]"
<46447321+allcontributors[bot]@users.noreply.github.com>
Date: Fri, 9 Jun 2023 23:20:02 +0000
Subject: [PATCH 31/39] docs: add andrew-kennedy as a contributor for code
(#3489) [skip ci]
* docs: update README.md
* docs: update .all-contributorsrc
---------
Co-authored-by: allcontributors[bot] <46447321+allcontributors[bot]@users.noreply.github.com>
---
.all-contributorsrc | 9 +++++++++
README.md | 3 ++-
2 files changed, 11 insertions(+), 1 deletion(-)
diff --git a/.all-contributorsrc b/.all-contributorsrc
index 634d9050e..5ece548ea 100644
--- a/.all-contributorsrc
+++ b/.all-contributorsrc
@@ -854,6 +854,15 @@
"contributions": [
"code"
]
+ },
+ {
+ "login": "andrew-kennedy",
+ "name": "Andrew Kennedy",
+ "avatar_url": "https://avatars.githubusercontent.com/u/2387159?v=4",
+ "profile": "https://github.com/andrew-kennedy",
+ "contributions": [
+ "code"
+ ]
}
],
"badgeTemplate": "
-orange.svg\"/>",
diff --git a/README.md b/README.md
index 5aa90d257..522988c86 100644
--- a/README.md
+++ b/README.md
@@ -11,7 +11,7 @@
-
+
@@ -194,6 +194,7 @@ Thanks goes to these wonderful people ([emoji key](https://allcontributors.org/d
 Izaac Brånn 💻 |
 Salman Tariq 💻 |
+  Andrew Kennedy 💻 |
From c6b2dd372875370779288294ca16499310e98965 Mon Sep 17 00:00:00 2001
From: Fallenbagel <98979876+Fallenbagel@users.noreply.github.com>
Date: Sat, 10 Jun 2023 05:06:22 +0500
Subject: [PATCH 32/39] ci: fix CODEOWNERS file containing errors
---
.github/CODEOWNERS | 15 +--------------
1 file changed, 1 insertion(+), 14 deletions(-)
diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS
index 8ef4f6e6b..b2f0d8b73 100644
--- a/.github/CODEOWNERS
+++ b/.github/CODEOWNERS
@@ -1,15 +1,2 @@
# Global code ownership
-* @sct @TheCatLady @danshilm @OwsleyJr @Fallenbagel
-
-# Documentation
-/.all-contributorsrc @TheCatLady @samwiseg0 @danshilm @OwsleyJr
-/*.md @TheCatLady @samwiseg0 @danshilm @OwsleyJr
-/docs/ @TheCatLady @samwiseg0 @danshilm @OwsleyJr
-
-# Snap-related files
-/.github/workflows/snap.yaml @samwiseg0
-/snap/ @samwiseg0
-
-# i18n locale files
-/src/i18n/locale/ @sct @TheCatLady
-/src/i18n/locale/en.json @sct @TheCatLady @danshilm @OwsleyJr
+* @Fallenbagel
From 2ab814574cc5395b5758118cfc97408bd5ddf6f3 Mon Sep 17 00:00:00 2001
From: Fallenbagel <98979876+Fallenbagel@users.noreply.github.com>
Date: Sat, 10 Jun 2023 05:17:01 +0500
Subject: [PATCH 33/39] ci(snap): possible fix for dubious ownership error for
snap builds
---
.github/workflows/snap.yaml | 2 ++
1 file changed, 2 insertions(+)
diff --git a/.github/workflows/snap.yaml b/.github/workflows/snap.yaml
index 4039c58e2..9c5b143b1 100644
--- a/.github/workflows/snap.yaml
+++ b/.github/workflows/snap.yaml
@@ -41,6 +41,8 @@ jobs:
fi
- name: Set Up QEMU
uses: docker/setup-qemu-action@v2
+ - name: Configure Git
+ run: git config --add safe.directory /data/parts/jellyseerr/src
- name: Build Snap Package
uses: diddlesnaps/snapcraft-multiarch-action@v1
id: build
From 8d4943997e1ff964f1654d934a2105004bed9ad3 Mon Sep 17 00:00:00 2001
From: Fallenbagel <98979876+Fallenbagel@users.noreply.github.com>
Date: Sat, 10 Jun 2023 10:23:20 +0500
Subject: [PATCH 34/39] ci: temporarily clean cache to fix docker builds
---
.github/workflows/ci.yml | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml
index b4c88ba9c..704126518 100644
--- a/.github/workflows/ci.yml
+++ b/.github/workflows/ci.yml
@@ -39,6 +39,10 @@ jobs:
uses: docker/setup-qemu-action@v2
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v2
+ # temporarily clear out cache
+ - name: Remove cache
+ run: |
+ rm -rf /tmp/.buildx-cache
- name: Cache Docker layers
uses: actions/cache@v3
with:
From 235cee1d28a6e7687b14d46011d111272d2e68cf Mon Sep 17 00:00:00 2001
From: Fallenbagel <98979876+Fallenbagel@users.noreply.github.com>
Date: Sat, 10 Jun 2023 21:57:01 +0500
Subject: [PATCH 35/39] ci: use self-hosted github runner
Changed to using self-hosted github runner as the free tier one was crashing due to low storage
space when pushing cache
---
.github/workflows/ci.yml | 6 +-----
1 file changed, 1 insertion(+), 5 deletions(-)
diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml
index 704126518..77da7ea18 100644
--- a/.github/workflows/ci.yml
+++ b/.github/workflows/ci.yml
@@ -31,7 +31,7 @@ jobs:
build_and_push:
name: Build & Publish Docker Images
if: github.ref == 'refs/heads/develop' && !contains(github.event.head_commit.message, '[skip ci]')
- runs-on: ubuntu-20.04
+ runs-on: self-hosted
steps:
- name: Checkout
uses: actions/checkout@v3
@@ -39,10 +39,6 @@ jobs:
uses: docker/setup-qemu-action@v2
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v2
- # temporarily clear out cache
- - name: Remove cache
- run: |
- rm -rf /tmp/.buildx-cache
- name: Cache Docker layers
uses: actions/cache@v3
with:
From 04fbd00d4ac29045592588ef8b664d1916991e37 Mon Sep 17 00:00:00 2001
From: Fallenbagel <98979876+Fallenbagel@users.noreply.github.com>
Date: Sun, 11 Jun 2023 06:14:14 +0500
Subject: [PATCH 36/39] fix: fixes RT ratings for tv shows (#3492)
fix #3491
---
server/api/rottentomatoes.ts | 13 +++++--------
1 file changed, 5 insertions(+), 8 deletions(-)
diff --git a/server/api/rottentomatoes.ts b/server/api/rottentomatoes.ts
index 7695e3987..99a74eb1b 100644
--- a/server/api/rottentomatoes.ts
+++ b/server/api/rottentomatoes.ts
@@ -17,7 +17,7 @@ interface RTAlgoliaHit {
title: string;
titles: string[];
description: string;
- releaseYear: string;
+ releaseYear: number;
rating: string;
genres: string[];
updateDate: string;
@@ -111,22 +111,19 @@ class RottenTomatoes extends ExternalAPI {
// First, attempt to match exact name and year
let movie = contentResults.hits.find(
- (movie) => movie.releaseYear === year.toString() && movie.title === name
+ (movie) => movie.releaseYear === year && movie.title === name
);
// If we don't find a movie, try to match partial name and year
if (!movie) {
movie = contentResults.hits.find(
- (movie) =>
- movie.releaseYear === year.toString() && movie.title.includes(name)
+ (movie) => movie.releaseYear === year && movie.title.includes(name)
);
}
// If we still dont find a movie, try to match just on year
if (!movie) {
- movie = contentResults.hits.find(
- (movie) => movie.releaseYear === year.toString()
- );
+ movie = contentResults.hits.find((movie) => movie.releaseYear === year);
}
// One last try, try exact name match only
@@ -181,7 +178,7 @@ class RottenTomatoes extends ExternalAPI {
if (year) {
tvshow = contentResults.hits.find(
- (series) => series.releaseYear === year.toString()
+ (series) => series.releaseYear === year
);
}
From 24d94ef6fd79d1fc1cef5464bbff5e6d2ba0789e Mon Sep 17 00:00:00 2001
From: "allcontributors[bot]"
<46447321+allcontributors[bot]@users.noreply.github.com>
Date: Sun, 11 Jun 2023 10:15:55 +0900
Subject: [PATCH 37/39] docs: add Fallenbagel as a contributor for code (#3493)
[skip ci]
* docs: update README.md
* docs: update .all-contributorsrc
---------
Co-authored-by: allcontributors[bot] <46447321+allcontributors[bot]@users.noreply.github.com>
---
.all-contributorsrc | 9 +++++++++
README.md | 3 ++-
2 files changed, 11 insertions(+), 1 deletion(-)
diff --git a/.all-contributorsrc b/.all-contributorsrc
index 5ece548ea..371872759 100644
--- a/.all-contributorsrc
+++ b/.all-contributorsrc
@@ -863,6 +863,15 @@
"contributions": [
"code"
]
+ },
+ {
+ "login": "Fallenbagel",
+ "name": "Fallenbagel",
+ "avatar_url": "https://avatars.githubusercontent.com/u/98979876?v=4",
+ "profile": "https://github.com/Fallenbagel",
+ "contributions": [
+ "code"
+ ]
}
],
"badgeTemplate": "
-orange.svg\"/>",
diff --git a/README.md b/README.md
index 522988c86..6fe73c27d 100644
--- a/README.md
+++ b/README.md
@@ -11,7 +11,7 @@
-
+
@@ -195,6 +195,7 @@ Thanks goes to these wonderful people ([emoji key](https://allcontributors.org/d
 Izaac Brånn 💻 |
 Salman Tariq 💻 |
 Andrew Kennedy 💻 |
+  Fallenbagel 💻 |
From cc041b5e0aa2b67573edba5919772b77a5111162 Mon Sep 17 00:00:00 2001
From: Fallenbagel <98979876+Fallenbagel@users.noreply.github.com>
Date: Sun, 11 Jun 2023 07:26:45 +0500
Subject: [PATCH 38/39] fix(logs): jellyfin auth error now has the severity
warn consistent with local login
fix #224
---
server/routes/auth.ts | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/server/routes/auth.ts b/server/routes/auth.ts
index 1dabcdf31..7adcc73ab 100644
--- a/server/routes/auth.ts
+++ b/server/routes/auth.ts
@@ -380,7 +380,7 @@ authRoutes.post('/jellyfin', async (req, res, next) => {
return res.status(200).json(user?.filter() ?? {});
} catch (e) {
if (e.message === 'Unauthorized') {
- logger.info(
+ logger.warn(
'Failed login attempt from user with incorrect Jellyfin credentials',
{
label: 'Auth',
From 47287c368885d14bd1a56e3e8318ce22dd0f6ddf Mon Sep 17 00:00:00 2001
From: Fallenbagel <98979876+Fallenbagel@users.noreply.github.com>
Date: Sun, 11 Jun 2023 07:52:39 +0500
Subject: [PATCH 39/39] feat: translations update
fix #381
---
src/i18n/locale/en.json | 2 ++
src/i18n/locale/zh_Hans.json | 3 +++
2 files changed, 5 insertions(+)
diff --git a/src/i18n/locale/en.json b/src/i18n/locale/en.json
index 25730e884..a2ebd3504 100644
--- a/src/i18n/locale/en.json
+++ b/src/i18n/locale/en.json
@@ -146,6 +146,8 @@
"components.Layout.LanguagePicker.displaylanguage": "Display Language",
"components.Layout.SearchInput.searchPlaceholder": "Search Movies & TV",
"components.Layout.Sidebar.dashboard": "Discover",
+ "components.Layout.Sidebar.browsemovies": "Movies",
+ "components.Layout.Sidebar.browsetv": "Series",
"components.Layout.Sidebar.issues": "Issues",
"components.Layout.Sidebar.requests": "Requests",
"components.Layout.Sidebar.settings": "Settings",
diff --git a/src/i18n/locale/zh_Hans.json b/src/i18n/locale/zh_Hans.json
index 59febf2ed..9650d4e6b 100644
--- a/src/i18n/locale/zh_Hans.json
+++ b/src/i18n/locale/zh_Hans.json
@@ -274,6 +274,8 @@
"components.Layout.UserDropdown.signout": "登出",
"components.Layout.UserDropdown.settings": "用户设定",
"components.Layout.UserDropdown.myprofile": "个人档案",
+ "components.Layout.Sidebar.browsemovies": "电影",
+ "components.Layout.Sidebar.browsetv": "电视节目",
"components.Layout.Sidebar.users": "用户",
"components.Layout.Sidebar.settings": "设定",
"components.Layout.Sidebar.requests": "请求",
@@ -289,6 +291,7 @@
"components.Discover.trending": "趋势",
"components.Discover.recentrequests": "最新请求",
"components.Discover.recentlyAdded": "最新添加",
+ "components.Discover.RecentlyAddedSlider.recentlyAdded": "最近添加",
"components.Discover.populartv": "热门电视节目",
"components.Discover.popularmovies": "热门电影",
"components.Discover.discovertv": "热门电视节目",