diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index ebb6ede65..2f9f6a794 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -32,7 +32,7 @@ dependencies: version: 1.0.3 '@movie-web/providers': specifier: github:sussy-code/providers - version: github.com/sussy-code/providers/d1386b3478e0cf5d93171ee7c655a06cebd53063 + version: github.com/sussy-code/providers/9b6eb8417c7e2cd2c4265b7102ac5ed299022a42 '@noble/hashes': specifier: ^1.4.0 version: 1.4.0 @@ -56,16 +56,16 @@ dependencies: version: 2.5.1 core-js: specifier: ^3.37.0 - version: 3.37.0 + version: 3.37.1 detect-browser: specifier: ^5.3.0 version: 5.3.0 dompurify: specifier: ^3.1.1 - version: 3.1.1 + version: 3.1.4 flag-icons: specifier: ^7.2.1 - version: 7.2.1 + version: 7.2.2 focus-trap-react: specifier: ^10.2.3 version: 10.2.3(prop-types@15.8.1)(react-dom@18.3.1)(react@18.3.1) @@ -80,7 +80,7 @@ dependencies: version: 1.5.8 i18next: specifier: ^23.11.2 - version: 23.11.2 + version: 23.11.5 immer: specifier: ^10.1.1 version: 10.1.1 @@ -119,16 +119,16 @@ dependencies: version: 1.10.1(react-dom@18.3.1)(react@18.3.1) react-helmet-async: specifier: ^2.0.4 - version: 2.0.4(react-dom@18.3.1)(react@18.3.1) + version: 2.0.5(react@18.3.1) react-i18next: specifier: ^14.1.1 - version: 14.1.1(i18next@23.11.2)(react-dom@18.3.1)(react@18.3.1) + version: 14.1.2(i18next@23.11.5)(react-dom@18.3.1)(react@18.3.1) react-lazy-with-preload: specifier: ^2.2.1 version: 2.2.1 react-router-dom: specifier: ^6.23.0 - version: 6.23.0(react-dom@18.3.1)(react@18.3.1) + version: 6.23.1(react-dom@18.3.1)(react@18.3.1) react-sticky-el: specifier: ^2.1.0 version: 2.1.0(react-dom@18.3.1)(react@18.3.1) @@ -140,7 +140,7 @@ dependencies: version: 17.5.0(react-dom@18.3.1)(react@18.3.1) semver: specifier: ^7.6.0 - version: 7.6.0 + version: 7.6.2 slugify: specifier: ^1.6.6 version: 1.6.6 @@ -149,24 +149,24 @@ dependencies: version: 2.1.2 zustand: specifier: ^4.5.2 - version: 4.5.2(@types/react@18.3.1)(immer@10.1.1)(react@18.3.1) + version: 4.5.2(@types/react@18.3.2)(immer@10.1.1)(react@18.3.1) devDependencies: '@babel/core': specifier: ^7.24.4 - version: 7.24.4 + version: 7.24.5 '@babel/preset-env': specifier: ^7.24.4 - version: 7.24.4(@babel/core@7.24.4) + version: 7.24.5(@babel/core@7.24.5) '@babel/preset-typescript': specifier: ^7.24.1 - version: 7.24.1(@babel/core@7.24.4) + version: 7.24.1(@babel/core@7.24.5) '@rollup/wasm-node': specifier: ^4.17.0 - version: 4.17.0 + version: 4.18.0 '@types/chromecast-caf-sender': specifier: ^1.0.9 - version: 1.0.9 + version: 1.0.10 '@types/crypto-js': specifier: ^4.2.2 version: 4.2.2 @@ -187,13 +187,13 @@ devDependencies: version: 4.1.9 '@types/node': specifier: ^20.12.7 - version: 20.12.7 + version: 20.12.12 '@types/pako': specifier: ^2.0.3 version: 2.0.3 '@types/react': specifier: ^18.3.1 - version: 18.3.1 + version: 18.3.2 '@types/react-dom': specifier: ^18.3.0 version: 18.3.0 @@ -226,7 +226,7 @@ devDependencies: version: 6.21.0(eslint@8.57.0)(typescript@5.4.5) '@vitejs/plugin-react': specifier: ^4.2.1 - version: 4.2.1(vite@5.2.10) + version: 4.3.0(vite@5.2.11) autoprefixer: specifier: ^10.4.19 version: 10.4.19(postcss@8.4.38) @@ -262,7 +262,7 @@ devDependencies: version: 4.6.0(eslint@8.57.0) glob: specifier: ^10.3.12 - version: 10.3.12 + version: 10.3.16 handlebars: specifier: ^4.7.8 version: 4.7.8 @@ -286,7 +286,7 @@ devDependencies: version: 0.5.14(prettier@3.2.5) rollup-plugin-visualizer: specifier: ^5.12.0 - version: 5.12.0(@rollup/wasm-node@4.17.2) + version: 5.12.0(@rollup/wasm-node@4.18.0) tailwind-scrollbar: specifier: ^3.1.0 version: 3.1.0(tailwindcss@3.4.3) @@ -298,28 +298,28 @@ devDependencies: version: 4.0.0(tailwindcss@3.4.3) type-fest: specifier: ^4.17.0 - version: 4.17.0 + version: 4.18.2 typescript: specifier: ^5.4.5 version: 5.4.5 vite: specifier: ^5.2.10 - version: 5.2.10(@types/node@20.12.7) + version: 5.2.11(@types/node@20.12.12) vite-plugin-checker: specifier: ^0.6.4 - version: 0.6.4(eslint@8.57.0)(typescript@5.4.5)(vite@5.2.10) + version: 0.6.4(eslint@8.57.0)(typescript@5.4.5)(vite@5.2.11) vite-plugin-package-version: specifier: ^1.1.0 - version: 1.1.0(vite@5.2.10) + version: 1.1.0(vite@5.2.11) vite-plugin-pwa: specifier: ^0.17.5 - version: 0.17.5(vite@5.2.10)(workbox-build@7.1.0)(workbox-window@7.1.0) + version: 0.17.5(vite@5.2.11)(workbox-build@7.1.0)(workbox-window@7.1.0) vite-plugin-static-copy: specifier: ^1.0.3 - version: 1.0.3(vite@5.2.10) + version: 1.0.5(vite@5.2.11) vitest: specifier: ^1.5.2 - version: 1.5.2(@types/node@20.12.7)(jsdom@23.2.0) + version: 1.6.0(@types/node@20.12.12)(jsdom@23.2.0) workbox-window: specifier: ^7.1.0 version: 7.1.0 @@ -338,13 +338,13 @@ packages: '@jridgewell/gen-mapping': 0.3.5 '@jridgewell/trace-mapping': 0.3.25 - /@apideck/better-ajv-errors@0.3.6(ajv@8.12.0): + /@apideck/better-ajv-errors@0.3.6(ajv@8.13.0): resolution: {integrity: sha512-P+ZygBLZtkp0qqOAJJVX4oX/sFo5JR3eBWwwuqHHhK0GIgQOKWrAfiAaWX0aArHkRWHMuggFEgAZNxVPwPZYaA==} engines: {node: '>=10'} peerDependencies: ajv: '>=8' dependencies: - ajv: 8.12.0 + ajv: 8.13.0 json-schema: 0.4.0 jsonpointer: 5.0.1 leven: 3.1.0 @@ -362,27 +362,27 @@ packages: resolution: {integrity: sha512-y5+tLQyV8pg3fsiln67BVLD1P13Eg4lh5RW9mF0zUuvLrv9uIQ4MCL+CRT+FTsBlBjcIan6PGsLcBN0m3ClUyQ==} engines: {node: '>=6.9.0'} dependencies: - '@babel/highlight': 7.24.2 - picocolors: 1.0.0 + '@babel/highlight': 7.24.5 + picocolors: 1.0.1 /@babel/compat-data@7.24.4: resolution: {integrity: sha512-vg8Gih2MLK+kOkHJp4gBEIkyaIi00jgWot2D9QOmmfLC8jINSOzmCLta6Bvz/JSBCqnegV0L80jhxkol5GWNfQ==} engines: {node: '>=6.9.0'} - /@babel/core@7.24.4: - resolution: {integrity: sha512-MBVlMXP+kkl5394RBLSxxk/iLTeVGuXTV3cIDXavPpMMqnSnt6apKgan/U8O3USWZCWZT/TbgfEpKa4uMgN4Dg==} + /@babel/core@7.24.5: + resolution: {integrity: sha512-tVQRucExLQ02Boi4vdPp49svNGcfL2GhdTCT9aldhXgCJVAI21EtRfBettiuLUwce/7r6bFdgs6JFkcdTiFttA==} engines: {node: '>=6.9.0'} dependencies: '@ampproject/remapping': 2.3.0 '@babel/code-frame': 7.24.2 - '@babel/generator': 7.24.4 + '@babel/generator': 7.24.5 '@babel/helper-compilation-targets': 7.23.6 - '@babel/helper-module-transforms': 7.23.3(@babel/core@7.24.4) - '@babel/helpers': 7.24.4 - '@babel/parser': 7.24.4 + '@babel/helper-module-transforms': 7.24.5(@babel/core@7.24.5) + '@babel/helpers': 7.24.5 + '@babel/parser': 7.24.5 '@babel/template': 7.24.0 - '@babel/traverse': 7.24.1 - '@babel/types': 7.24.0 + '@babel/traverse': 7.24.5 + '@babel/types': 7.24.5 convert-source-map: 2.0.0 debug: 4.3.4 gensync: 1.0.0-beta.2 @@ -391,11 +391,11 @@ packages: transitivePeerDependencies: - supports-color - /@babel/generator@7.24.4: - resolution: {integrity: sha512-Xd6+v6SnjWVx/nus+y0l1sxMOTOMBkyL4+BIdbALyatQnAe/SRVjANeDPSCYaX+i1iJmuGSKf3Z+E+V/va1Hvw==} + /@babel/generator@7.24.5: + resolution: {integrity: sha512-x32i4hEXvr+iI0NEoEfDKzlemF8AmtOP8CcrRaEcpzysWuoEb1KknpcvMsHKPONoKZiDuItklgWhB18xEhr9PA==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.24.0 + '@babel/types': 7.24.5 '@jridgewell/gen-mapping': 0.3.5 '@jridgewell/trace-mapping': 0.3.25 jsesc: 2.5.2 @@ -404,14 +404,14 @@ packages: resolution: {integrity: sha512-LvBTxu8bQSQkcyKOU+a1btnNFQ1dMAd0R6PyW3arXes06F6QLWLIrd681bxRPIXlrMGR3XYnW9JyML7dP3qgxg==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.24.0 + '@babel/types': 7.24.5 dev: true /@babel/helper-builder-binary-assignment-operator-visitor@7.22.15: resolution: {integrity: sha512-QkBXwGgaoC2GtGZRoma6kv7Szfv06khvhFav67ZExau2RaXzy8MpHSMO2PNoP2XtmQphJQRHFfg77Bq731Yizw==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.24.0 + '@babel/types': 7.24.5 dev: true /@babel/helper-compilation-targets@7.23.6: @@ -424,44 +424,44 @@ packages: lru-cache: 5.1.1 semver: 6.3.1 - /@babel/helper-create-class-features-plugin@7.24.4(@babel/core@7.24.4): - resolution: {integrity: sha512-lG75yeuUSVu0pIcbhiYMXBXANHrpUPaOfu7ryAzskCgKUHuAxRQI5ssrtmF0X9UXldPlvT0XM/A4F44OXRt6iQ==} + /@babel/helper-create-class-features-plugin@7.24.5(@babel/core@7.24.5): + resolution: {integrity: sha512-uRc4Cv8UQWnE4NXlYTIIdM7wfFkOqlFztcC/gVXDKohKoVB3OyonfelUBaJzSwpBntZ2KYGF/9S7asCHsXwW6g==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 dependencies: - '@babel/core': 7.24.4 + '@babel/core': 7.24.5 '@babel/helper-annotate-as-pure': 7.22.5 '@babel/helper-environment-visitor': 7.22.20 '@babel/helper-function-name': 7.23.0 - '@babel/helper-member-expression-to-functions': 7.23.0 + '@babel/helper-member-expression-to-functions': 7.24.5 '@babel/helper-optimise-call-expression': 7.22.5 - '@babel/helper-replace-supers': 7.24.1(@babel/core@7.24.4) + '@babel/helper-replace-supers': 7.24.1(@babel/core@7.24.5) '@babel/helper-skip-transparent-expression-wrappers': 7.22.5 - '@babel/helper-split-export-declaration': 7.22.6 + '@babel/helper-split-export-declaration': 7.24.5 semver: 6.3.1 dev: true - /@babel/helper-create-regexp-features-plugin@7.22.15(@babel/core@7.24.4): + /@babel/helper-create-regexp-features-plugin@7.22.15(@babel/core@7.24.5): resolution: {integrity: sha512-29FkPLFjn4TPEa3RE7GpW+qbE8tlsu3jntNYNfcGsc49LphF1PQIiD+vMZ1z1xVOKt+93khA9tc2JBs3kBjA7w==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 dependencies: - '@babel/core': 7.24.4 + '@babel/core': 7.24.5 '@babel/helper-annotate-as-pure': 7.22.5 regexpu-core: 5.3.2 semver: 6.3.1 dev: true - /@babel/helper-define-polyfill-provider@0.6.2(@babel/core@7.24.4): + /@babel/helper-define-polyfill-provider@0.6.2(@babel/core@7.24.5): resolution: {integrity: sha512-LV76g+C502biUK6AyZ3LK10vDpDyCzZnhZFXkH1L75zHPj68+qc8Zfpx2th+gzwA2MzyK+1g/3EPl62yFnVttQ==} peerDependencies: '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 dependencies: - '@babel/core': 7.24.4 + '@babel/core': 7.24.5 '@babel/helper-compilation-targets': 7.23.6 - '@babel/helper-plugin-utils': 7.24.0 + '@babel/helper-plugin-utils': 7.24.5 debug: 4.3.4 lodash.debounce: 4.0.8 resolve: 1.22.8 @@ -478,1068 +478,1068 @@ packages: engines: {node: '>=6.9.0'} dependencies: '@babel/template': 7.24.0 - '@babel/types': 7.24.0 + '@babel/types': 7.24.5 /@babel/helper-hoist-variables@7.22.5: resolution: {integrity: sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.24.0 + '@babel/types': 7.24.5 - /@babel/helper-member-expression-to-functions@7.23.0: - resolution: {integrity: sha512-6gfrPwh7OuT6gZyJZvd6WbTfrqAo7vm4xCzAXOusKqq/vWdKXphTpj5klHKNmRUU6/QRGlBsyU9mAIPaWHlqJA==} + /@babel/helper-member-expression-to-functions@7.24.5: + resolution: {integrity: sha512-4owRteeihKWKamtqg4JmWSsEZU445xpFRXPEwp44HbgbxdWlUV1b4Agg4lkA806Lil5XM/e+FJyS0vj5T6vmcA==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.24.0 + '@babel/types': 7.24.5 dev: true /@babel/helper-module-imports@7.24.3: resolution: {integrity: sha512-viKb0F9f2s0BCS22QSF308z/+1YWKV/76mwt61NBzS5izMzDPwdq1pTrzf+Li3npBWX9KdQbkeCt1jSAM7lZqg==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.24.0 + '@babel/types': 7.24.5 - /@babel/helper-module-transforms@7.23.3(@babel/core@7.24.4): - resolution: {integrity: sha512-7bBs4ED9OmswdfDzpz4MpWgSrV7FXlc3zIagvLFjS5H+Mk7Snr21vQ6QwrsoCGMfNC4e4LQPdoULEt4ykz0SRQ==} + /@babel/helper-module-transforms@7.24.5(@babel/core@7.24.5): + resolution: {integrity: sha512-9GxeY8c2d2mdQUP1Dye0ks3VDyIMS98kt/llQ2nUId8IsWqTF0l1LkSX0/uP7l7MCDrzXS009Hyhe2gzTiGW8A==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 dependencies: - '@babel/core': 7.24.4 + '@babel/core': 7.24.5 '@babel/helper-environment-visitor': 7.22.20 '@babel/helper-module-imports': 7.24.3 - '@babel/helper-simple-access': 7.22.5 - '@babel/helper-split-export-declaration': 7.22.6 - '@babel/helper-validator-identifier': 7.22.20 + '@babel/helper-simple-access': 7.24.5 + '@babel/helper-split-export-declaration': 7.24.5 + '@babel/helper-validator-identifier': 7.24.5 /@babel/helper-optimise-call-expression@7.22.5: resolution: {integrity: sha512-HBwaojN0xFRx4yIvpwGqxiV2tUfl7401jlok564NgB9EHS1y6QT17FmKWm4ztqjeVdXLuC4fSvHc5ePpQjoTbw==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.24.0 + '@babel/types': 7.24.5 dev: true - /@babel/helper-plugin-utils@7.24.0: - resolution: {integrity: sha512-9cUznXMG0+FxRuJfvL82QlTqIzhVW9sL0KjMPHhAOOvpQGL8QtdxnBKILjBqxlHyliz0yCa1G903ZXI/FuHy2w==} + /@babel/helper-plugin-utils@7.24.5: + resolution: {integrity: sha512-xjNLDopRzW2o6ba0gKbkZq5YWEBaK3PCyTOY1K2P/O07LGMhMqlMXPxwN4S5/RhWuCobT8z0jrlKGlYmeR1OhQ==} engines: {node: '>=6.9.0'} - /@babel/helper-remap-async-to-generator@7.22.20(@babel/core@7.24.4): + /@babel/helper-remap-async-to-generator@7.22.20(@babel/core@7.24.5): resolution: {integrity: sha512-pBGyV4uBqOns+0UvhsTO8qgl8hO89PmiDYv+/COyp1aeMcmfrfruz+/nCMFiYyFF/Knn0yfrC85ZzNFjembFTw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 dependencies: - '@babel/core': 7.24.4 + '@babel/core': 7.24.5 '@babel/helper-annotate-as-pure': 7.22.5 '@babel/helper-environment-visitor': 7.22.20 - '@babel/helper-wrap-function': 7.22.20 + '@babel/helper-wrap-function': 7.24.5 dev: true - /@babel/helper-replace-supers@7.24.1(@babel/core@7.24.4): + /@babel/helper-replace-supers@7.24.1(@babel/core@7.24.5): resolution: {integrity: sha512-QCR1UqC9BzG5vZl8BMicmZ28RuUBnHhAMddD8yHFHDRH9lLTZ9uUPehX8ctVPT8l0TKblJidqcgUUKGVrePleQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 dependencies: - '@babel/core': 7.24.4 + '@babel/core': 7.24.5 '@babel/helper-environment-visitor': 7.22.20 - '@babel/helper-member-expression-to-functions': 7.23.0 + '@babel/helper-member-expression-to-functions': 7.24.5 '@babel/helper-optimise-call-expression': 7.22.5 dev: true - /@babel/helper-simple-access@7.22.5: - resolution: {integrity: sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w==} + /@babel/helper-simple-access@7.24.5: + resolution: {integrity: sha512-uH3Hmf5q5n7n8mz7arjUlDOCbttY/DW4DYhE6FUsjKJ/oYC1kQQUvwEQWxRwUpX9qQKRXeqLwWxrqilMrf32sQ==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.24.0 + '@babel/types': 7.24.5 /@babel/helper-skip-transparent-expression-wrappers@7.22.5: resolution: {integrity: sha512-tK14r66JZKiC43p8Ki33yLBVJKlQDFoA8GYN67lWCDCqoL6EMMSuM9b+Iff2jHaM/RRFYl7K+iiru7hbRqNx8Q==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.24.0 + '@babel/types': 7.24.5 dev: true - /@babel/helper-split-export-declaration@7.22.6: - resolution: {integrity: sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g==} + /@babel/helper-split-export-declaration@7.24.5: + resolution: {integrity: sha512-5CHncttXohrHk8GWOFCcCl4oRD9fKosWlIRgWm4ql9VYioKm52Mk2xsmoohvm7f3JoiLSM5ZgJuRaf5QZZYd3Q==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.24.0 + '@babel/types': 7.24.5 /@babel/helper-string-parser@7.24.1: resolution: {integrity: sha512-2ofRCjnnA9y+wk8b9IAREroeUP02KHp431N2mhKniy2yKIDKpbrHv9eXwm8cBeWQYcJmzv5qKCu65P47eCF7CQ==} engines: {node: '>=6.9.0'} - /@babel/helper-validator-identifier@7.22.20: - resolution: {integrity: sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==} + /@babel/helper-validator-identifier@7.24.5: + resolution: {integrity: sha512-3q93SSKX2TWCG30M2G2kwaKeTYgEUp5Snjuj8qm729SObL6nbtUldAi37qbxkD5gg3xnBio+f9nqpSepGZMvxA==} engines: {node: '>=6.9.0'} /@babel/helper-validator-option@7.23.5: resolution: {integrity: sha512-85ttAOMLsr53VgXkTbkx8oA6YTfT4q7/HzXSLEYmjcSTJPMPQtvq1BD79Byep5xMUYbGRzEpDsjUf3dyp54IKw==} engines: {node: '>=6.9.0'} - /@babel/helper-wrap-function@7.22.20: - resolution: {integrity: sha512-pms/UwkOpnQe/PDAEdV/d7dVCoBbB+R4FvYoHGZz+4VPcg7RtYy2KP7S2lbuWM6FCSgob5wshfGESbC/hzNXZw==} + /@babel/helper-wrap-function@7.24.5: + resolution: {integrity: sha512-/xxzuNvgRl4/HLNKvnFwdhdgN3cpLxgLROeLDl83Yx0AJ1SGvq1ak0OszTOjDfiB8Vx03eJbeDWh9r+jCCWttw==} engines: {node: '>=6.9.0'} dependencies: '@babel/helper-function-name': 7.23.0 '@babel/template': 7.24.0 - '@babel/types': 7.24.0 + '@babel/types': 7.24.5 dev: true - /@babel/helpers@7.24.4: - resolution: {integrity: sha512-FewdlZbSiwaVGlgT1DPANDuCHaDMiOo+D/IDYRFYjHOuv66xMSJ7fQwwODwRNAPkADIO/z1EoF/l2BCWlWABDw==} + /@babel/helpers@7.24.5: + resolution: {integrity: sha512-CiQmBMMpMQHwM5m01YnrM6imUG1ebgYJ+fAIW4FZe6m4qHTPaRHti+R8cggAwkdz4oXhtO4/K9JWlh+8hIfR2Q==} engines: {node: '>=6.9.0'} dependencies: '@babel/template': 7.24.0 - '@babel/traverse': 7.24.1 - '@babel/types': 7.24.0 + '@babel/traverse': 7.24.5 + '@babel/types': 7.24.5 transitivePeerDependencies: - supports-color - /@babel/highlight@7.24.2: - resolution: {integrity: sha512-Yac1ao4flkTxTteCDZLEvdxg2fZfz1v8M4QpaGypq/WPDqg3ijHYbDfs+LG5hvzSoqaSZ9/Z9lKSP3CjZjv+pA==} + /@babel/highlight@7.24.5: + resolution: {integrity: sha512-8lLmua6AVh/8SLJRRVD6V8p73Hir9w5mJrhE+IPpILG31KKlI9iz5zmBYKcWPS59qSfgP9RaSBQSHHE81WKuEw==} engines: {node: '>=6.9.0'} dependencies: - '@babel/helper-validator-identifier': 7.22.20 + '@babel/helper-validator-identifier': 7.24.5 chalk: 2.4.2 js-tokens: 4.0.0 - picocolors: 1.0.0 + picocolors: 1.0.1 - /@babel/parser@7.24.4: - resolution: {integrity: sha512-zTvEBcghmeBma9QIGunWevvBAp4/Qu9Bdq+2k0Ot4fVMD6v3dsC9WOcRSKk7tRRyBM/53yKMJko9xOatGQAwSg==} + /@babel/parser@7.24.5: + resolution: {integrity: sha512-EOv5IK8arwh3LI47dz1b0tKUb/1uhHAnHJOrjgtQMIpu1uXd9mlFrJg9IUgGUgZ41Ch0K8REPTYpO7B76b4vJg==} engines: {node: '>=6.0.0'} hasBin: true dependencies: - '@babel/types': 7.24.0 + '@babel/types': 7.24.5 - /@babel/plugin-bugfix-firefox-class-in-computed-class-key@7.24.4(@babel/core@7.24.4): - resolution: {integrity: sha512-qpl6vOOEEzTLLcsuqYYo8yDtrTocmu2xkGvgNebvPjT9DTtfFYGmgDqY+rBYXNlqL4s9qLDn6xkrJv4RxAPiTA==} + /@babel/plugin-bugfix-firefox-class-in-computed-class-key@7.24.5(@babel/core@7.24.5): + resolution: {integrity: sha512-LdXRi1wEMTrHVR4Zc9F8OewC3vdm5h4QB6L71zy6StmYeqGi1b3ttIO8UC+BfZKcH9jdr4aI249rBkm+3+YvHw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 dependencies: - '@babel/core': 7.24.4 + '@babel/core': 7.24.5 '@babel/helper-environment-visitor': 7.22.20 - '@babel/helper-plugin-utils': 7.24.0 + '@babel/helper-plugin-utils': 7.24.5 dev: true - /@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@7.24.1(@babel/core@7.24.4): + /@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@7.24.1(@babel/core@7.24.5): resolution: {integrity: sha512-y4HqEnkelJIOQGd+3g1bTeKsA5c6qM7eOn7VggGVbBc0y8MLSKHacwcIE2PplNlQSj0PqS9rrXL/nkPVK+kUNg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 dependencies: - '@babel/core': 7.24.4 - '@babel/helper-plugin-utils': 7.24.0 + '@babel/core': 7.24.5 + '@babel/helper-plugin-utils': 7.24.5 dev: true - /@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@7.24.1(@babel/core@7.24.4): + /@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@7.24.1(@babel/core@7.24.5): resolution: {integrity: sha512-Hj791Ii4ci8HqnaKHAlLNs+zaLXb0EzSDhiAWp5VNlyvCNymYfacs64pxTxbH1znW/NcArSmwpmG9IKE/TUVVQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.13.0 dependencies: - '@babel/core': 7.24.4 - '@babel/helper-plugin-utils': 7.24.0 + '@babel/core': 7.24.5 + '@babel/helper-plugin-utils': 7.24.5 '@babel/helper-skip-transparent-expression-wrappers': 7.22.5 - '@babel/plugin-transform-optional-chaining': 7.24.1(@babel/core@7.24.4) + '@babel/plugin-transform-optional-chaining': 7.24.5(@babel/core@7.24.5) dev: true - /@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@7.24.1(@babel/core@7.24.4): + /@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@7.24.1(@babel/core@7.24.5): resolution: {integrity: sha512-m9m/fXsXLiHfwdgydIFnpk+7jlVbnvlK5B2EKiPdLUb6WX654ZaaEWJUjk8TftRbZpK0XibovlLWX4KIZhV6jw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 dependencies: - '@babel/core': 7.24.4 + '@babel/core': 7.24.5 '@babel/helper-environment-visitor': 7.22.20 - '@babel/helper-plugin-utils': 7.24.0 + '@babel/helper-plugin-utils': 7.24.5 dev: true - /@babel/plugin-proposal-private-property-in-object@7.21.0-placeholder-for-preset-env.2(@babel/core@7.24.4): + /@babel/plugin-proposal-private-property-in-object@7.21.0-placeholder-for-preset-env.2(@babel/core@7.24.5): resolution: {integrity: sha512-SOSkfJDddaM7mak6cPEpswyTRnuRltl429hMraQEglW+OkovnCzsiszTmsrlY//qLFjCpQDFRvjdm2wA5pPm9w==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.24.4 + '@babel/core': 7.24.5 dev: true - /@babel/plugin-syntax-async-generators@7.8.4(@babel/core@7.24.4): + /@babel/plugin-syntax-async-generators@7.8.4(@babel/core@7.24.5): resolution: {integrity: sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.24.4 - '@babel/helper-plugin-utils': 7.24.0 + '@babel/core': 7.24.5 + '@babel/helper-plugin-utils': 7.24.5 dev: true - /@babel/plugin-syntax-class-properties@7.12.13(@babel/core@7.24.4): + /@babel/plugin-syntax-class-properties@7.12.13(@babel/core@7.24.5): resolution: {integrity: sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.24.4 - '@babel/helper-plugin-utils': 7.24.0 + '@babel/core': 7.24.5 + '@babel/helper-plugin-utils': 7.24.5 dev: true - /@babel/plugin-syntax-class-static-block@7.14.5(@babel/core@7.24.4): + /@babel/plugin-syntax-class-static-block@7.14.5(@babel/core@7.24.5): resolution: {integrity: sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.24.4 - '@babel/helper-plugin-utils': 7.24.0 + '@babel/core': 7.24.5 + '@babel/helper-plugin-utils': 7.24.5 dev: true - /@babel/plugin-syntax-dynamic-import@7.8.3(@babel/core@7.24.4): + /@babel/plugin-syntax-dynamic-import@7.8.3(@babel/core@7.24.5): resolution: {integrity: sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.24.4 - '@babel/helper-plugin-utils': 7.24.0 + '@babel/core': 7.24.5 + '@babel/helper-plugin-utils': 7.24.5 dev: true - /@babel/plugin-syntax-export-namespace-from@7.8.3(@babel/core@7.24.4): + /@babel/plugin-syntax-export-namespace-from@7.8.3(@babel/core@7.24.5): resolution: {integrity: sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.24.4 - '@babel/helper-plugin-utils': 7.24.0 + '@babel/core': 7.24.5 + '@babel/helper-plugin-utils': 7.24.5 dev: true - /@babel/plugin-syntax-import-assertions@7.24.1(@babel/core@7.24.4): + /@babel/plugin-syntax-import-assertions@7.24.1(@babel/core@7.24.5): resolution: {integrity: sha512-IuwnI5XnuF189t91XbxmXeCDz3qs6iDRO7GJ++wcfgeXNs/8FmIlKcpDSXNVyuLQxlwvskmI3Ct73wUODkJBlQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.24.4 - '@babel/helper-plugin-utils': 7.24.0 + '@babel/core': 7.24.5 + '@babel/helper-plugin-utils': 7.24.5 dev: true - /@babel/plugin-syntax-import-attributes@7.24.1(@babel/core@7.24.4): + /@babel/plugin-syntax-import-attributes@7.24.1(@babel/core@7.24.5): resolution: {integrity: sha512-zhQTMH0X2nVLnb04tz+s7AMuasX8U0FnpE+nHTOhSOINjWMnopoZTxtIKsd45n4GQ/HIZLyfIpoul8e2m0DnRA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.24.4 - '@babel/helper-plugin-utils': 7.24.0 + '@babel/core': 7.24.5 + '@babel/helper-plugin-utils': 7.24.5 dev: true - /@babel/plugin-syntax-import-meta@7.10.4(@babel/core@7.24.4): + /@babel/plugin-syntax-import-meta@7.10.4(@babel/core@7.24.5): resolution: {integrity: sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.24.4 - '@babel/helper-plugin-utils': 7.24.0 + '@babel/core': 7.24.5 + '@babel/helper-plugin-utils': 7.24.5 dev: true - /@babel/plugin-syntax-json-strings@7.8.3(@babel/core@7.24.4): + /@babel/plugin-syntax-json-strings@7.8.3(@babel/core@7.24.5): resolution: {integrity: sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.24.4 - '@babel/helper-plugin-utils': 7.24.0 + '@babel/core': 7.24.5 + '@babel/helper-plugin-utils': 7.24.5 dev: true - /@babel/plugin-syntax-jsx@7.24.1(@babel/core@7.24.4): + /@babel/plugin-syntax-jsx@7.24.1(@babel/core@7.24.5): resolution: {integrity: sha512-2eCtxZXf+kbkMIsXS4poTvT4Yu5rXiRa+9xGVT56raghjmBTKMpFNc9R4IDiB4emao9eO22Ox7CxuJG7BgExqA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.24.4 - '@babel/helper-plugin-utils': 7.24.0 + '@babel/core': 7.24.5 + '@babel/helper-plugin-utils': 7.24.5 - /@babel/plugin-syntax-logical-assignment-operators@7.10.4(@babel/core@7.24.4): + /@babel/plugin-syntax-logical-assignment-operators@7.10.4(@babel/core@7.24.5): resolution: {integrity: sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.24.4 - '@babel/helper-plugin-utils': 7.24.0 + '@babel/core': 7.24.5 + '@babel/helper-plugin-utils': 7.24.5 dev: true - /@babel/plugin-syntax-nullish-coalescing-operator@7.8.3(@babel/core@7.24.4): + /@babel/plugin-syntax-nullish-coalescing-operator@7.8.3(@babel/core@7.24.5): resolution: {integrity: sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.24.4 - '@babel/helper-plugin-utils': 7.24.0 + '@babel/core': 7.24.5 + '@babel/helper-plugin-utils': 7.24.5 dev: true - /@babel/plugin-syntax-numeric-separator@7.10.4(@babel/core@7.24.4): + /@babel/plugin-syntax-numeric-separator@7.10.4(@babel/core@7.24.5): resolution: {integrity: sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.24.4 - '@babel/helper-plugin-utils': 7.24.0 + '@babel/core': 7.24.5 + '@babel/helper-plugin-utils': 7.24.5 dev: true - /@babel/plugin-syntax-object-rest-spread@7.8.3(@babel/core@7.24.4): + /@babel/plugin-syntax-object-rest-spread@7.8.3(@babel/core@7.24.5): resolution: {integrity: sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.24.4 - '@babel/helper-plugin-utils': 7.24.0 + '@babel/core': 7.24.5 + '@babel/helper-plugin-utils': 7.24.5 dev: true - /@babel/plugin-syntax-optional-catch-binding@7.8.3(@babel/core@7.24.4): + /@babel/plugin-syntax-optional-catch-binding@7.8.3(@babel/core@7.24.5): resolution: {integrity: sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.24.4 - '@babel/helper-plugin-utils': 7.24.0 + '@babel/core': 7.24.5 + '@babel/helper-plugin-utils': 7.24.5 dev: true - /@babel/plugin-syntax-optional-chaining@7.8.3(@babel/core@7.24.4): + /@babel/plugin-syntax-optional-chaining@7.8.3(@babel/core@7.24.5): resolution: {integrity: sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.24.4 - '@babel/helper-plugin-utils': 7.24.0 + '@babel/core': 7.24.5 + '@babel/helper-plugin-utils': 7.24.5 dev: true - /@babel/plugin-syntax-private-property-in-object@7.14.5(@babel/core@7.24.4): + /@babel/plugin-syntax-private-property-in-object@7.14.5(@babel/core@7.24.5): resolution: {integrity: sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.24.4 - '@babel/helper-plugin-utils': 7.24.0 + '@babel/core': 7.24.5 + '@babel/helper-plugin-utils': 7.24.5 dev: true - /@babel/plugin-syntax-top-level-await@7.14.5(@babel/core@7.24.4): + /@babel/plugin-syntax-top-level-await@7.14.5(@babel/core@7.24.5): resolution: {integrity: sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.24.4 - '@babel/helper-plugin-utils': 7.24.0 + '@babel/core': 7.24.5 + '@babel/helper-plugin-utils': 7.24.5 dev: true - /@babel/plugin-syntax-typescript@7.24.1(@babel/core@7.24.4): + /@babel/plugin-syntax-typescript@7.24.1(@babel/core@7.24.5): resolution: {integrity: sha512-Yhnmvy5HZEnHUty6i++gcfH1/l68AHnItFHnaCv6hn9dNh0hQvvQJsxpi4BMBFN5DLeHBuucT/0DgzXif/OyRw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.24.4 - '@babel/helper-plugin-utils': 7.24.0 + '@babel/core': 7.24.5 + '@babel/helper-plugin-utils': 7.24.5 - /@babel/plugin-syntax-unicode-sets-regex@7.18.6(@babel/core@7.24.4): + /@babel/plugin-syntax-unicode-sets-regex@7.18.6(@babel/core@7.24.5): resolution: {integrity: sha512-727YkEAPwSIQTv5im8QHz3upqp92JTWhidIC81Tdx4VJYIte/VndKf1qKrfnnhPLiPghStWfvC/iFaMCQu7Nqg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 dependencies: - '@babel/core': 7.24.4 - '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.24.4) - '@babel/helper-plugin-utils': 7.24.0 + '@babel/core': 7.24.5 + '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.24.5) + '@babel/helper-plugin-utils': 7.24.5 dev: true - /@babel/plugin-transform-arrow-functions@7.24.1(@babel/core@7.24.4): + /@babel/plugin-transform-arrow-functions@7.24.1(@babel/core@7.24.5): resolution: {integrity: sha512-ngT/3NkRhsaep9ck9uj2Xhv9+xB1zShY3tM3g6om4xxCELwCDN4g4Aq5dRn48+0hasAql7s2hdBOysCfNpr4fw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.24.4 - '@babel/helper-plugin-utils': 7.24.0 + '@babel/core': 7.24.5 + '@babel/helper-plugin-utils': 7.24.5 dev: true - /@babel/plugin-transform-async-generator-functions@7.24.3(@babel/core@7.24.4): + /@babel/plugin-transform-async-generator-functions@7.24.3(@babel/core@7.24.5): resolution: {integrity: sha512-Qe26CMYVjpQxJ8zxM1340JFNjZaF+ISWpr1Kt/jGo+ZTUzKkfw/pphEWbRCb+lmSM6k/TOgfYLvmbHkUQ0asIg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.24.4 + '@babel/core': 7.24.5 '@babel/helper-environment-visitor': 7.22.20 - '@babel/helper-plugin-utils': 7.24.0 - '@babel/helper-remap-async-to-generator': 7.22.20(@babel/core@7.24.4) - '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.24.4) + '@babel/helper-plugin-utils': 7.24.5 + '@babel/helper-remap-async-to-generator': 7.22.20(@babel/core@7.24.5) + '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.24.5) dev: true - /@babel/plugin-transform-async-to-generator@7.24.1(@babel/core@7.24.4): + /@babel/plugin-transform-async-to-generator@7.24.1(@babel/core@7.24.5): resolution: {integrity: sha512-AawPptitRXp1y0n4ilKcGbRYWfbbzFWz2NqNu7dacYDtFtz0CMjG64b3LQsb3KIgnf4/obcUL78hfaOS7iCUfw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.24.4 + '@babel/core': 7.24.5 '@babel/helper-module-imports': 7.24.3 - '@babel/helper-plugin-utils': 7.24.0 - '@babel/helper-remap-async-to-generator': 7.22.20(@babel/core@7.24.4) + '@babel/helper-plugin-utils': 7.24.5 + '@babel/helper-remap-async-to-generator': 7.22.20(@babel/core@7.24.5) dev: true - /@babel/plugin-transform-block-scoped-functions@7.24.1(@babel/core@7.24.4): + /@babel/plugin-transform-block-scoped-functions@7.24.1(@babel/core@7.24.5): resolution: {integrity: sha512-TWWC18OShZutrv9C6mye1xwtam+uNi2bnTOCBUd5sZxyHOiWbU6ztSROofIMrK84uweEZC219POICK/sTYwfgg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.24.4 - '@babel/helper-plugin-utils': 7.24.0 + '@babel/core': 7.24.5 + '@babel/helper-plugin-utils': 7.24.5 dev: true - /@babel/plugin-transform-block-scoping@7.24.4(@babel/core@7.24.4): - resolution: {integrity: sha512-nIFUZIpGKDf9O9ttyRXpHFpKC+X3Y5mtshZONuEUYBomAKoM4y029Jr+uB1bHGPhNmK8YXHevDtKDOLmtRrp6g==} + /@babel/plugin-transform-block-scoping@7.24.5(@babel/core@7.24.5): + resolution: {integrity: sha512-sMfBc3OxghjC95BkYrYocHL3NaOplrcaunblzwXhGmlPwpmfsxr4vK+mBBt49r+S240vahmv+kUxkeKgs+haCw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.24.4 - '@babel/helper-plugin-utils': 7.24.0 + '@babel/core': 7.24.5 + '@babel/helper-plugin-utils': 7.24.5 dev: true - /@babel/plugin-transform-class-properties@7.24.1(@babel/core@7.24.4): + /@babel/plugin-transform-class-properties@7.24.1(@babel/core@7.24.5): resolution: {integrity: sha512-OMLCXi0NqvJfORTaPQBwqLXHhb93wkBKZ4aNwMl6WtehO7ar+cmp+89iPEQPqxAnxsOKTaMcs3POz3rKayJ72g==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.24.4 - '@babel/helper-create-class-features-plugin': 7.24.4(@babel/core@7.24.4) - '@babel/helper-plugin-utils': 7.24.0 + '@babel/core': 7.24.5 + '@babel/helper-create-class-features-plugin': 7.24.5(@babel/core@7.24.5) + '@babel/helper-plugin-utils': 7.24.5 dev: true - /@babel/plugin-transform-class-static-block@7.24.4(@babel/core@7.24.4): + /@babel/plugin-transform-class-static-block@7.24.4(@babel/core@7.24.5): resolution: {integrity: sha512-B8q7Pz870Hz/q9UgP8InNpY01CSLDSCyqX7zcRuv3FcPl87A2G17lASroHWaCtbdIcbYzOZ7kWmXFKbijMSmFg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.12.0 dependencies: - '@babel/core': 7.24.4 - '@babel/helper-create-class-features-plugin': 7.24.4(@babel/core@7.24.4) - '@babel/helper-plugin-utils': 7.24.0 - '@babel/plugin-syntax-class-static-block': 7.14.5(@babel/core@7.24.4) + '@babel/core': 7.24.5 + '@babel/helper-create-class-features-plugin': 7.24.5(@babel/core@7.24.5) + '@babel/helper-plugin-utils': 7.24.5 + '@babel/plugin-syntax-class-static-block': 7.14.5(@babel/core@7.24.5) dev: true - /@babel/plugin-transform-classes@7.24.1(@babel/core@7.24.4): - resolution: {integrity: sha512-ZTIe3W7UejJd3/3R4p7ScyyOoafetUShSf4kCqV0O7F/RiHxVj/wRaRnQlrGwflvcehNA8M42HkAiEDYZu2F1Q==} + /@babel/plugin-transform-classes@7.24.5(@babel/core@7.24.5): + resolution: {integrity: sha512-gWkLP25DFj2dwe9Ck8uwMOpko4YsqyfZJrOmqqcegeDYEbp7rmn4U6UQZNj08UF6MaX39XenSpKRCvpDRBtZ7Q==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.24.4 + '@babel/core': 7.24.5 '@babel/helper-annotate-as-pure': 7.22.5 '@babel/helper-compilation-targets': 7.23.6 '@babel/helper-environment-visitor': 7.22.20 '@babel/helper-function-name': 7.23.0 - '@babel/helper-plugin-utils': 7.24.0 - '@babel/helper-replace-supers': 7.24.1(@babel/core@7.24.4) - '@babel/helper-split-export-declaration': 7.22.6 + '@babel/helper-plugin-utils': 7.24.5 + '@babel/helper-replace-supers': 7.24.1(@babel/core@7.24.5) + '@babel/helper-split-export-declaration': 7.24.5 globals: 11.12.0 dev: true - /@babel/plugin-transform-computed-properties@7.24.1(@babel/core@7.24.4): + /@babel/plugin-transform-computed-properties@7.24.1(@babel/core@7.24.5): resolution: {integrity: sha512-5pJGVIUfJpOS+pAqBQd+QMaTD2vCL/HcePooON6pDpHgRp4gNRmzyHTPIkXntwKsq3ayUFVfJaIKPw2pOkOcTw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.24.4 - '@babel/helper-plugin-utils': 7.24.0 + '@babel/core': 7.24.5 + '@babel/helper-plugin-utils': 7.24.5 '@babel/template': 7.24.0 dev: true - /@babel/plugin-transform-destructuring@7.24.1(@babel/core@7.24.4): - resolution: {integrity: sha512-ow8jciWqNxR3RYbSNVuF4U2Jx130nwnBnhRw6N6h1bOejNkABmcI5X5oz29K4alWX7vf1C+o6gtKXikzRKkVdw==} + /@babel/plugin-transform-destructuring@7.24.5(@babel/core@7.24.5): + resolution: {integrity: sha512-SZuuLyfxvsm+Ah57I/i1HVjveBENYK9ue8MJ7qkc7ndoNjqquJiElzA7f5yaAXjyW2hKojosOTAQQRX50bPSVg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.24.4 - '@babel/helper-plugin-utils': 7.24.0 + '@babel/core': 7.24.5 + '@babel/helper-plugin-utils': 7.24.5 dev: true - /@babel/plugin-transform-dotall-regex@7.24.1(@babel/core@7.24.4): + /@babel/plugin-transform-dotall-regex@7.24.1(@babel/core@7.24.5): resolution: {integrity: sha512-p7uUxgSoZwZ2lPNMzUkqCts3xlp8n+o05ikjy7gbtFJSt9gdU88jAmtfmOxHM14noQXBxfgzf2yRWECiNVhTCw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.24.4 - '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.24.4) - '@babel/helper-plugin-utils': 7.24.0 + '@babel/core': 7.24.5 + '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.24.5) + '@babel/helper-plugin-utils': 7.24.5 dev: true - /@babel/plugin-transform-duplicate-keys@7.24.1(@babel/core@7.24.4): + /@babel/plugin-transform-duplicate-keys@7.24.1(@babel/core@7.24.5): resolution: {integrity: sha512-msyzuUnvsjsaSaocV6L7ErfNsa5nDWL1XKNnDePLgmz+WdU4w/J8+AxBMrWfi9m4IxfL5sZQKUPQKDQeeAT6lA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.24.4 - '@babel/helper-plugin-utils': 7.24.0 + '@babel/core': 7.24.5 + '@babel/helper-plugin-utils': 7.24.5 dev: true - /@babel/plugin-transform-dynamic-import@7.24.1(@babel/core@7.24.4): + /@babel/plugin-transform-dynamic-import@7.24.1(@babel/core@7.24.5): resolution: {integrity: sha512-av2gdSTyXcJVdI+8aFZsCAtR29xJt0S5tas+Ef8NvBNmD1a+N/3ecMLeMBgfcK+xzsjdLDT6oHt+DFPyeqUbDA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.24.4 - '@babel/helper-plugin-utils': 7.24.0 - '@babel/plugin-syntax-dynamic-import': 7.8.3(@babel/core@7.24.4) + '@babel/core': 7.24.5 + '@babel/helper-plugin-utils': 7.24.5 + '@babel/plugin-syntax-dynamic-import': 7.8.3(@babel/core@7.24.5) dev: true - /@babel/plugin-transform-exponentiation-operator@7.24.1(@babel/core@7.24.4): + /@babel/plugin-transform-exponentiation-operator@7.24.1(@babel/core@7.24.5): resolution: {integrity: sha512-U1yX13dVBSwS23DEAqU+Z/PkwE9/m7QQy8Y9/+Tdb8UWYaGNDYwTLi19wqIAiROr8sXVum9A/rtiH5H0boUcTw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.24.4 + '@babel/core': 7.24.5 '@babel/helper-builder-binary-assignment-operator-visitor': 7.22.15 - '@babel/helper-plugin-utils': 7.24.0 + '@babel/helper-plugin-utils': 7.24.5 dev: true - /@babel/plugin-transform-export-namespace-from@7.24.1(@babel/core@7.24.4): + /@babel/plugin-transform-export-namespace-from@7.24.1(@babel/core@7.24.5): resolution: {integrity: sha512-Ft38m/KFOyzKw2UaJFkWG9QnHPG/Q/2SkOrRk4pNBPg5IPZ+dOxcmkK5IyuBcxiNPyyYowPGUReyBvrvZs7IlQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.24.4 - '@babel/helper-plugin-utils': 7.24.0 - '@babel/plugin-syntax-export-namespace-from': 7.8.3(@babel/core@7.24.4) + '@babel/core': 7.24.5 + '@babel/helper-plugin-utils': 7.24.5 + '@babel/plugin-syntax-export-namespace-from': 7.8.3(@babel/core@7.24.5) dev: true - /@babel/plugin-transform-for-of@7.24.1(@babel/core@7.24.4): + /@babel/plugin-transform-for-of@7.24.1(@babel/core@7.24.5): resolution: {integrity: sha512-OxBdcnF04bpdQdR3i4giHZNZQn7cm8RQKcSwA17wAAqEELo1ZOwp5FFgeptWUQXFyT9kwHo10aqqauYkRZPCAg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.24.4 - '@babel/helper-plugin-utils': 7.24.0 + '@babel/core': 7.24.5 + '@babel/helper-plugin-utils': 7.24.5 '@babel/helper-skip-transparent-expression-wrappers': 7.22.5 dev: true - /@babel/plugin-transform-function-name@7.24.1(@babel/core@7.24.4): + /@babel/plugin-transform-function-name@7.24.1(@babel/core@7.24.5): resolution: {integrity: sha512-BXmDZpPlh7jwicKArQASrj8n22/w6iymRnvHYYd2zO30DbE277JO20/7yXJT3QxDPtiQiOxQBbZH4TpivNXIxA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.24.4 + '@babel/core': 7.24.5 '@babel/helper-compilation-targets': 7.23.6 '@babel/helper-function-name': 7.23.0 - '@babel/helper-plugin-utils': 7.24.0 + '@babel/helper-plugin-utils': 7.24.5 dev: true - /@babel/plugin-transform-json-strings@7.24.1(@babel/core@7.24.4): + /@babel/plugin-transform-json-strings@7.24.1(@babel/core@7.24.5): resolution: {integrity: sha512-U7RMFmRvoasscrIFy5xA4gIp8iWnWubnKkKuUGJjsuOH7GfbMkB+XZzeslx2kLdEGdOJDamEmCqOks6e8nv8DQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.24.4 - '@babel/helper-plugin-utils': 7.24.0 - '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.24.4) + '@babel/core': 7.24.5 + '@babel/helper-plugin-utils': 7.24.5 + '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.24.5) dev: true - /@babel/plugin-transform-literals@7.24.1(@babel/core@7.24.4): + /@babel/plugin-transform-literals@7.24.1(@babel/core@7.24.5): resolution: {integrity: sha512-zn9pwz8U7nCqOYIiBaOxoQOtYmMODXTJnkxG4AtX8fPmnCRYWBOHD0qcpwS9e2VDSp1zNJYpdnFMIKb8jmwu6g==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.24.4 - '@babel/helper-plugin-utils': 7.24.0 + '@babel/core': 7.24.5 + '@babel/helper-plugin-utils': 7.24.5 dev: true - /@babel/plugin-transform-logical-assignment-operators@7.24.1(@babel/core@7.24.4): + /@babel/plugin-transform-logical-assignment-operators@7.24.1(@babel/core@7.24.5): resolution: {integrity: sha512-OhN6J4Bpz+hIBqItTeWJujDOfNP+unqv/NJgyhlpSqgBTPm37KkMmZV6SYcOj+pnDbdcl1qRGV/ZiIjX9Iy34w==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.24.4 - '@babel/helper-plugin-utils': 7.24.0 - '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.24.4) + '@babel/core': 7.24.5 + '@babel/helper-plugin-utils': 7.24.5 + '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.24.5) dev: true - /@babel/plugin-transform-member-expression-literals@7.24.1(@babel/core@7.24.4): + /@babel/plugin-transform-member-expression-literals@7.24.1(@babel/core@7.24.5): resolution: {integrity: sha512-4ojai0KysTWXzHseJKa1XPNXKRbuUrhkOPY4rEGeR+7ChlJVKxFa3H3Bz+7tWaGKgJAXUWKOGmltN+u9B3+CVg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.24.4 - '@babel/helper-plugin-utils': 7.24.0 + '@babel/core': 7.24.5 + '@babel/helper-plugin-utils': 7.24.5 dev: true - /@babel/plugin-transform-modules-amd@7.24.1(@babel/core@7.24.4): + /@babel/plugin-transform-modules-amd@7.24.1(@babel/core@7.24.5): resolution: {integrity: sha512-lAxNHi4HVtjnHd5Rxg3D5t99Xm6H7b04hUS7EHIXcUl2EV4yl1gWdqZrNzXnSrHveL9qMdbODlLF55mvgjAfaQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.24.4 - '@babel/helper-module-transforms': 7.23.3(@babel/core@7.24.4) - '@babel/helper-plugin-utils': 7.24.0 + '@babel/core': 7.24.5 + '@babel/helper-module-transforms': 7.24.5(@babel/core@7.24.5) + '@babel/helper-plugin-utils': 7.24.5 dev: true - /@babel/plugin-transform-modules-commonjs@7.24.1(@babel/core@7.24.4): + /@babel/plugin-transform-modules-commonjs@7.24.1(@babel/core@7.24.5): resolution: {integrity: sha512-szog8fFTUxBfw0b98gEWPaEqF42ZUD/T3bkynW/wtgx2p/XCP55WEsb+VosKceRSd6njipdZvNogqdtI4Q0chw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.24.4 - '@babel/helper-module-transforms': 7.23.3(@babel/core@7.24.4) - '@babel/helper-plugin-utils': 7.24.0 - '@babel/helper-simple-access': 7.22.5 + '@babel/core': 7.24.5 + '@babel/helper-module-transforms': 7.24.5(@babel/core@7.24.5) + '@babel/helper-plugin-utils': 7.24.5 + '@babel/helper-simple-access': 7.24.5 dev: true - /@babel/plugin-transform-modules-systemjs@7.24.1(@babel/core@7.24.4): + /@babel/plugin-transform-modules-systemjs@7.24.1(@babel/core@7.24.5): resolution: {integrity: sha512-mqQ3Zh9vFO1Tpmlt8QPnbwGHzNz3lpNEMxQb1kAemn/erstyqw1r9KeOlOfo3y6xAnFEcOv2tSyrXfmMk+/YZA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.24.4 + '@babel/core': 7.24.5 '@babel/helper-hoist-variables': 7.22.5 - '@babel/helper-module-transforms': 7.23.3(@babel/core@7.24.4) - '@babel/helper-plugin-utils': 7.24.0 - '@babel/helper-validator-identifier': 7.22.20 + '@babel/helper-module-transforms': 7.24.5(@babel/core@7.24.5) + '@babel/helper-plugin-utils': 7.24.5 + '@babel/helper-validator-identifier': 7.24.5 dev: true - /@babel/plugin-transform-modules-umd@7.24.1(@babel/core@7.24.4): + /@babel/plugin-transform-modules-umd@7.24.1(@babel/core@7.24.5): resolution: {integrity: sha512-tuA3lpPj+5ITfcCluy6nWonSL7RvaG0AOTeAuvXqEKS34lnLzXpDb0dcP6K8jD0zWZFNDVly90AGFJPnm4fOYg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.24.4 - '@babel/helper-module-transforms': 7.23.3(@babel/core@7.24.4) - '@babel/helper-plugin-utils': 7.24.0 + '@babel/core': 7.24.5 + '@babel/helper-module-transforms': 7.24.5(@babel/core@7.24.5) + '@babel/helper-plugin-utils': 7.24.5 dev: true - /@babel/plugin-transform-named-capturing-groups-regex@7.22.5(@babel/core@7.24.4): + /@babel/plugin-transform-named-capturing-groups-regex@7.22.5(@babel/core@7.24.5): resolution: {integrity: sha512-YgLLKmS3aUBhHaxp5hi1WJTgOUb/NCuDHzGT9z9WTt3YG+CPRhJs6nprbStx6DnWM4dh6gt7SU3sZodbZ08adQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 dependencies: - '@babel/core': 7.24.4 - '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.24.4) - '@babel/helper-plugin-utils': 7.24.0 + '@babel/core': 7.24.5 + '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.24.5) + '@babel/helper-plugin-utils': 7.24.5 dev: true - /@babel/plugin-transform-new-target@7.24.1(@babel/core@7.24.4): + /@babel/plugin-transform-new-target@7.24.1(@babel/core@7.24.5): resolution: {integrity: sha512-/rurytBM34hYy0HKZQyA0nHbQgQNFm4Q/BOc9Hflxi2X3twRof7NaE5W46j4kQitm7SvACVRXsa6N/tSZxvPug==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.24.4 - '@babel/helper-plugin-utils': 7.24.0 + '@babel/core': 7.24.5 + '@babel/helper-plugin-utils': 7.24.5 dev: true - /@babel/plugin-transform-nullish-coalescing-operator@7.24.1(@babel/core@7.24.4): + /@babel/plugin-transform-nullish-coalescing-operator@7.24.1(@babel/core@7.24.5): resolution: {integrity: sha512-iQ+caew8wRrhCikO5DrUYx0mrmdhkaELgFa+7baMcVuhxIkN7oxt06CZ51D65ugIb1UWRQ8oQe+HXAVM6qHFjw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.24.4 - '@babel/helper-plugin-utils': 7.24.0 - '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.24.4) + '@babel/core': 7.24.5 + '@babel/helper-plugin-utils': 7.24.5 + '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.24.5) dev: true - /@babel/plugin-transform-numeric-separator@7.24.1(@babel/core@7.24.4): + /@babel/plugin-transform-numeric-separator@7.24.1(@babel/core@7.24.5): resolution: {integrity: sha512-7GAsGlK4cNL2OExJH1DzmDeKnRv/LXq0eLUSvudrehVA5Rgg4bIrqEUW29FbKMBRT0ztSqisv7kjP+XIC4ZMNw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.24.4 - '@babel/helper-plugin-utils': 7.24.0 - '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.24.4) + '@babel/core': 7.24.5 + '@babel/helper-plugin-utils': 7.24.5 + '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.24.5) dev: true - /@babel/plugin-transform-object-rest-spread@7.24.1(@babel/core@7.24.4): - resolution: {integrity: sha512-XjD5f0YqOtebto4HGISLNfiNMTTs6tbkFf2TOqJlYKYmbo+mN9Dnpl4SRoofiziuOWMIyq3sZEUqLo3hLITFEA==} + /@babel/plugin-transform-object-rest-spread@7.24.5(@babel/core@7.24.5): + resolution: {integrity: sha512-7EauQHszLGM3ay7a161tTQH7fj+3vVM/gThlz5HpFtnygTxjrlvoeq7MPVA1Vy9Q555OB8SnAOsMkLShNkkrHA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.24.4 + '@babel/core': 7.24.5 '@babel/helper-compilation-targets': 7.23.6 - '@babel/helper-plugin-utils': 7.24.0 - '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.24.4) - '@babel/plugin-transform-parameters': 7.24.1(@babel/core@7.24.4) + '@babel/helper-plugin-utils': 7.24.5 + '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.24.5) + '@babel/plugin-transform-parameters': 7.24.5(@babel/core@7.24.5) dev: true - /@babel/plugin-transform-object-super@7.24.1(@babel/core@7.24.4): + /@babel/plugin-transform-object-super@7.24.1(@babel/core@7.24.5): resolution: {integrity: sha512-oKJqR3TeI5hSLRxudMjFQ9re9fBVUU0GICqM3J1mi8MqlhVr6hC/ZN4ttAyMuQR6EZZIY6h/exe5swqGNNIkWQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.24.4 - '@babel/helper-plugin-utils': 7.24.0 - '@babel/helper-replace-supers': 7.24.1(@babel/core@7.24.4) + '@babel/core': 7.24.5 + '@babel/helper-plugin-utils': 7.24.5 + '@babel/helper-replace-supers': 7.24.1(@babel/core@7.24.5) dev: true - /@babel/plugin-transform-optional-catch-binding@7.24.1(@babel/core@7.24.4): + /@babel/plugin-transform-optional-catch-binding@7.24.1(@babel/core@7.24.5): resolution: {integrity: sha512-oBTH7oURV4Y+3EUrf6cWn1OHio3qG/PVwO5J03iSJmBg6m2EhKjkAu/xuaXaYwWW9miYtvbWv4LNf0AmR43LUA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.24.4 - '@babel/helper-plugin-utils': 7.24.0 - '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.24.4) + '@babel/core': 7.24.5 + '@babel/helper-plugin-utils': 7.24.5 + '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.24.5) dev: true - /@babel/plugin-transform-optional-chaining@7.24.1(@babel/core@7.24.4): - resolution: {integrity: sha512-n03wmDt+987qXwAgcBlnUUivrZBPZ8z1plL0YvgQalLm+ZE5BMhGm94jhxXtA1wzv1Cu2aaOv1BM9vbVttrzSg==} + /@babel/plugin-transform-optional-chaining@7.24.5(@babel/core@7.24.5): + resolution: {integrity: sha512-xWCkmwKT+ihmA6l7SSTpk8e4qQl/274iNbSKRRS8mpqFR32ksy36+a+LWY8OXCCEefF8WFlnOHVsaDI2231wBg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.24.4 - '@babel/helper-plugin-utils': 7.24.0 + '@babel/core': 7.24.5 + '@babel/helper-plugin-utils': 7.24.5 '@babel/helper-skip-transparent-expression-wrappers': 7.22.5 - '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.24.4) + '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.24.5) dev: true - /@babel/plugin-transform-parameters@7.24.1(@babel/core@7.24.4): - resolution: {integrity: sha512-8Jl6V24g+Uw5OGPeWNKrKqXPDw2YDjLc53ojwfMcKwlEoETKU9rU0mHUtcg9JntWI/QYzGAXNWEcVHZ+fR+XXg==} + /@babel/plugin-transform-parameters@7.24.5(@babel/core@7.24.5): + resolution: {integrity: sha512-9Co00MqZ2aoky+4j2jhofErthm6QVLKbpQrvz20c3CH9KQCLHyNB+t2ya4/UrRpQGR+Wrwjg9foopoeSdnHOkA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.24.4 - '@babel/helper-plugin-utils': 7.24.0 + '@babel/core': 7.24.5 + '@babel/helper-plugin-utils': 7.24.5 dev: true - /@babel/plugin-transform-private-methods@7.24.1(@babel/core@7.24.4): + /@babel/plugin-transform-private-methods@7.24.1(@babel/core@7.24.5): resolution: {integrity: sha512-tGvisebwBO5em4PaYNqt4fkw56K2VALsAbAakY0FjTYqJp7gfdrgr7YX76Or8/cpik0W6+tj3rZ0uHU9Oil4tw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.24.4 - '@babel/helper-create-class-features-plugin': 7.24.4(@babel/core@7.24.4) - '@babel/helper-plugin-utils': 7.24.0 + '@babel/core': 7.24.5 + '@babel/helper-create-class-features-plugin': 7.24.5(@babel/core@7.24.5) + '@babel/helper-plugin-utils': 7.24.5 dev: true - /@babel/plugin-transform-private-property-in-object@7.24.1(@babel/core@7.24.4): - resolution: {integrity: sha512-pTHxDVa0BpUbvAgX3Gat+7cSciXqUcY9j2VZKTbSB6+VQGpNgNO9ailxTGHSXlqOnX1Hcx1Enme2+yv7VqP9bg==} + /@babel/plugin-transform-private-property-in-object@7.24.5(@babel/core@7.24.5): + resolution: {integrity: sha512-JM4MHZqnWR04jPMujQDTBVRnqxpLLpx2tkn7iPn+Hmsc0Gnb79yvRWOkvqFOx3Z7P7VxiRIR22c4eGSNj87OBQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.24.4 + '@babel/core': 7.24.5 '@babel/helper-annotate-as-pure': 7.22.5 - '@babel/helper-create-class-features-plugin': 7.24.4(@babel/core@7.24.4) - '@babel/helper-plugin-utils': 7.24.0 - '@babel/plugin-syntax-private-property-in-object': 7.14.5(@babel/core@7.24.4) + '@babel/helper-create-class-features-plugin': 7.24.5(@babel/core@7.24.5) + '@babel/helper-plugin-utils': 7.24.5 + '@babel/plugin-syntax-private-property-in-object': 7.14.5(@babel/core@7.24.5) dev: true - /@babel/plugin-transform-property-literals@7.24.1(@babel/core@7.24.4): + /@babel/plugin-transform-property-literals@7.24.1(@babel/core@7.24.5): resolution: {integrity: sha512-LetvD7CrHmEx0G442gOomRr66d7q8HzzGGr4PMHGr+5YIm6++Yke+jxj246rpvsbyhJwCLxcTn6zW1P1BSenqA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.24.4 - '@babel/helper-plugin-utils': 7.24.0 + '@babel/core': 7.24.5 + '@babel/helper-plugin-utils': 7.24.5 dev: true - /@babel/plugin-transform-react-jsx-self@7.24.1(@babel/core@7.24.4): - resolution: {integrity: sha512-kDJgnPujTmAZ/9q2CN4m2/lRsUUPDvsG3+tSHWUJIzMGTt5U/b/fwWd3RO3n+5mjLrsBrVa5eKFRVSQbi3dF1w==} + /@babel/plugin-transform-react-jsx-self@7.24.5(@babel/core@7.24.5): + resolution: {integrity: sha512-RtCJoUO2oYrYwFPtR1/jkoBEcFuI1ae9a9IMxeyAVa3a1Ap4AnxmyIKG2b2FaJKqkidw/0cxRbWN+HOs6ZWd1w==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.24.4 - '@babel/helper-plugin-utils': 7.24.0 + '@babel/core': 7.24.5 + '@babel/helper-plugin-utils': 7.24.5 dev: true - /@babel/plugin-transform-react-jsx-source@7.24.1(@babel/core@7.24.4): + /@babel/plugin-transform-react-jsx-source@7.24.1(@babel/core@7.24.5): resolution: {integrity: sha512-1v202n7aUq4uXAieRTKcwPzNyphlCuqHHDcdSNc+vdhoTEZcFMh+L5yZuCmGaIO7bs1nJUNfHB89TZyoL48xNA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.24.4 - '@babel/helper-plugin-utils': 7.24.0 + '@babel/core': 7.24.5 + '@babel/helper-plugin-utils': 7.24.5 dev: true - /@babel/plugin-transform-regenerator@7.24.1(@babel/core@7.24.4): + /@babel/plugin-transform-regenerator@7.24.1(@babel/core@7.24.5): resolution: {integrity: sha512-sJwZBCzIBE4t+5Q4IGLaaun5ExVMRY0lYwos/jNecjMrVCygCdph3IKv0tkP5Fc87e/1+bebAmEAGBfnRD+cnw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.24.4 - '@babel/helper-plugin-utils': 7.24.0 + '@babel/core': 7.24.5 + '@babel/helper-plugin-utils': 7.24.5 regenerator-transform: 0.15.2 dev: true - /@babel/plugin-transform-reserved-words@7.24.1(@babel/core@7.24.4): + /@babel/plugin-transform-reserved-words@7.24.1(@babel/core@7.24.5): resolution: {integrity: sha512-JAclqStUfIwKN15HrsQADFgeZt+wexNQ0uLhuqvqAUFoqPMjEcFCYZBhq0LUdz6dZK/mD+rErhW71fbx8RYElg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.24.4 - '@babel/helper-plugin-utils': 7.24.0 + '@babel/core': 7.24.5 + '@babel/helper-plugin-utils': 7.24.5 dev: true - /@babel/plugin-transform-shorthand-properties@7.24.1(@babel/core@7.24.4): + /@babel/plugin-transform-shorthand-properties@7.24.1(@babel/core@7.24.5): resolution: {integrity: sha512-LyjVB1nsJ6gTTUKRjRWx9C1s9hE7dLfP/knKdrfeH9UPtAGjYGgxIbFfx7xyLIEWs7Xe1Gnf8EWiUqfjLhInZA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.24.4 - '@babel/helper-plugin-utils': 7.24.0 + '@babel/core': 7.24.5 + '@babel/helper-plugin-utils': 7.24.5 dev: true - /@babel/plugin-transform-spread@7.24.1(@babel/core@7.24.4): + /@babel/plugin-transform-spread@7.24.1(@babel/core@7.24.5): resolution: {integrity: sha512-KjmcIM+fxgY+KxPVbjelJC6hrH1CgtPmTvdXAfn3/a9CnWGSTY7nH4zm5+cjmWJybdcPSsD0++QssDsjcpe47g==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.24.4 - '@babel/helper-plugin-utils': 7.24.0 + '@babel/core': 7.24.5 + '@babel/helper-plugin-utils': 7.24.5 '@babel/helper-skip-transparent-expression-wrappers': 7.22.5 dev: true - /@babel/plugin-transform-sticky-regex@7.24.1(@babel/core@7.24.4): + /@babel/plugin-transform-sticky-regex@7.24.1(@babel/core@7.24.5): resolution: {integrity: sha512-9v0f1bRXgPVcPrngOQvLXeGNNVLc8UjMVfebo9ka0WF3/7+aVUHmaJVT3sa0XCzEFioPfPHZiOcYG9qOsH63cw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.24.4 - '@babel/helper-plugin-utils': 7.24.0 + '@babel/core': 7.24.5 + '@babel/helper-plugin-utils': 7.24.5 dev: true - /@babel/plugin-transform-template-literals@7.24.1(@babel/core@7.24.4): + /@babel/plugin-transform-template-literals@7.24.1(@babel/core@7.24.5): resolution: {integrity: sha512-WRkhROsNzriarqECASCNu/nojeXCDTE/F2HmRgOzi7NGvyfYGq1NEjKBK3ckLfRgGc6/lPAqP0vDOSw3YtG34g==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.24.4 - '@babel/helper-plugin-utils': 7.24.0 + '@babel/core': 7.24.5 + '@babel/helper-plugin-utils': 7.24.5 dev: true - /@babel/plugin-transform-typeof-symbol@7.24.1(@babel/core@7.24.4): - resolution: {integrity: sha512-CBfU4l/A+KruSUoW+vTQthwcAdwuqbpRNB8HQKlZABwHRhsdHZ9fezp4Sn18PeAlYxTNiLMlx4xUBV3AWfg1BA==} + /@babel/plugin-transform-typeof-symbol@7.24.5(@babel/core@7.24.5): + resolution: {integrity: sha512-UTGnhYVZtTAjdwOTzT+sCyXmTn8AhaxOS/MjG9REclZ6ULHWF9KoCZur0HSGU7hk8PdBFKKbYe6+gqdXWz84Jg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.24.4 - '@babel/helper-plugin-utils': 7.24.0 + '@babel/core': 7.24.5 + '@babel/helper-plugin-utils': 7.24.5 dev: true - /@babel/plugin-transform-typescript@7.24.4(@babel/core@7.24.4): - resolution: {integrity: sha512-79t3CQ8+oBGk/80SQ8MN3Bs3obf83zJ0YZjDmDaEZN8MqhMI760apl5z6a20kFeMXBwJX99VpKT8CKxEBp5H1g==} + /@babel/plugin-transform-typescript@7.24.5(@babel/core@7.24.5): + resolution: {integrity: sha512-E0VWu/hk83BIFUWnsKZ4D81KXjN5L3MobvevOHErASk9IPwKHOkTgvqzvNo1yP/ePJWqqK2SpUR5z+KQbl6NVw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.24.4 + '@babel/core': 7.24.5 '@babel/helper-annotate-as-pure': 7.22.5 - '@babel/helper-create-class-features-plugin': 7.24.4(@babel/core@7.24.4) - '@babel/helper-plugin-utils': 7.24.0 - '@babel/plugin-syntax-typescript': 7.24.1(@babel/core@7.24.4) + '@babel/helper-create-class-features-plugin': 7.24.5(@babel/core@7.24.5) + '@babel/helper-plugin-utils': 7.24.5 + '@babel/plugin-syntax-typescript': 7.24.1(@babel/core@7.24.5) dev: true - /@babel/plugin-transform-unicode-escapes@7.24.1(@babel/core@7.24.4): + /@babel/plugin-transform-unicode-escapes@7.24.1(@babel/core@7.24.5): resolution: {integrity: sha512-RlkVIcWT4TLI96zM660S877E7beKlQw7Ig+wqkKBiWfj0zH5Q4h50q6er4wzZKRNSYpfo6ILJ+hrJAGSX2qcNw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.24.4 - '@babel/helper-plugin-utils': 7.24.0 + '@babel/core': 7.24.5 + '@babel/helper-plugin-utils': 7.24.5 dev: true - /@babel/plugin-transform-unicode-property-regex@7.24.1(@babel/core@7.24.4): + /@babel/plugin-transform-unicode-property-regex@7.24.1(@babel/core@7.24.5): resolution: {integrity: sha512-Ss4VvlfYV5huWApFsF8/Sq0oXnGO+jB+rijFEFugTd3cwSObUSnUi88djgR5528Csl0uKlrI331kRqe56Ov2Ng==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.24.4 - '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.24.4) - '@babel/helper-plugin-utils': 7.24.0 + '@babel/core': 7.24.5 + '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.24.5) + '@babel/helper-plugin-utils': 7.24.5 dev: true - /@babel/plugin-transform-unicode-regex@7.24.1(@babel/core@7.24.4): + /@babel/plugin-transform-unicode-regex@7.24.1(@babel/core@7.24.5): resolution: {integrity: sha512-2A/94wgZgxfTsiLaQ2E36XAOdcZmGAaEEgVmxQWwZXWkGhvoHbaqXcKnU8zny4ycpu3vNqg0L/PcCiYtHtA13g==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.24.4 - '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.24.4) - '@babel/helper-plugin-utils': 7.24.0 + '@babel/core': 7.24.5 + '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.24.5) + '@babel/helper-plugin-utils': 7.24.5 dev: true - /@babel/plugin-transform-unicode-sets-regex@7.24.1(@babel/core@7.24.4): + /@babel/plugin-transform-unicode-sets-regex@7.24.1(@babel/core@7.24.5): resolution: {integrity: sha512-fqj4WuzzS+ukpgerpAoOnMfQXwUHFxXUZUE84oL2Kao2N8uSlvcpnAidKASgsNgzZHBsHWvcm8s9FPWUhAb8fA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 dependencies: - '@babel/core': 7.24.4 - '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.24.4) - '@babel/helper-plugin-utils': 7.24.0 + '@babel/core': 7.24.5 + '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.24.5) + '@babel/helper-plugin-utils': 7.24.5 dev: true - /@babel/preset-env@7.24.4(@babel/core@7.24.4): - resolution: {integrity: sha512-7Kl6cSmYkak0FK/FXjSEnLJ1N9T/WA2RkMhu17gZ/dsxKJUuTYNIylahPTzqpLyJN4WhDif8X0XK1R8Wsguo/A==} + /@babel/preset-env@7.24.5(@babel/core@7.24.5): + resolution: {integrity: sha512-UGK2ifKtcC8i5AI4cH+sbLLuLc2ktYSFJgBAXorKAsHUZmrQ1q6aQ6i3BvU24wWs2AAKqQB6kq3N9V9Gw1HiMQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: '@babel/compat-data': 7.24.4 - '@babel/core': 7.24.4 + '@babel/core': 7.24.5 '@babel/helper-compilation-targets': 7.23.6 - '@babel/helper-plugin-utils': 7.24.0 + '@babel/helper-plugin-utils': 7.24.5 '@babel/helper-validator-option': 7.23.5 - '@babel/plugin-bugfix-firefox-class-in-computed-class-key': 7.24.4(@babel/core@7.24.4) - '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression': 7.24.1(@babel/core@7.24.4) - '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining': 7.24.1(@babel/core@7.24.4) - '@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly': 7.24.1(@babel/core@7.24.4) - '@babel/plugin-proposal-private-property-in-object': 7.21.0-placeholder-for-preset-env.2(@babel/core@7.24.4) - '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.24.4) - '@babel/plugin-syntax-class-properties': 7.12.13(@babel/core@7.24.4) - '@babel/plugin-syntax-class-static-block': 7.14.5(@babel/core@7.24.4) - '@babel/plugin-syntax-dynamic-import': 7.8.3(@babel/core@7.24.4) - '@babel/plugin-syntax-export-namespace-from': 7.8.3(@babel/core@7.24.4) - '@babel/plugin-syntax-import-assertions': 7.24.1(@babel/core@7.24.4) - '@babel/plugin-syntax-import-attributes': 7.24.1(@babel/core@7.24.4) - '@babel/plugin-syntax-import-meta': 7.10.4(@babel/core@7.24.4) - '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.24.4) - '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.24.4) - '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.24.4) - '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.24.4) - '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.24.4) - '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.24.4) - '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.24.4) - '@babel/plugin-syntax-private-property-in-object': 7.14.5(@babel/core@7.24.4) - '@babel/plugin-syntax-top-level-await': 7.14.5(@babel/core@7.24.4) - '@babel/plugin-syntax-unicode-sets-regex': 7.18.6(@babel/core@7.24.4) - '@babel/plugin-transform-arrow-functions': 7.24.1(@babel/core@7.24.4) - '@babel/plugin-transform-async-generator-functions': 7.24.3(@babel/core@7.24.4) - '@babel/plugin-transform-async-to-generator': 7.24.1(@babel/core@7.24.4) - '@babel/plugin-transform-block-scoped-functions': 7.24.1(@babel/core@7.24.4) - '@babel/plugin-transform-block-scoping': 7.24.4(@babel/core@7.24.4) - '@babel/plugin-transform-class-properties': 7.24.1(@babel/core@7.24.4) - '@babel/plugin-transform-class-static-block': 7.24.4(@babel/core@7.24.4) - '@babel/plugin-transform-classes': 7.24.1(@babel/core@7.24.4) - '@babel/plugin-transform-computed-properties': 7.24.1(@babel/core@7.24.4) - '@babel/plugin-transform-destructuring': 7.24.1(@babel/core@7.24.4) - '@babel/plugin-transform-dotall-regex': 7.24.1(@babel/core@7.24.4) - '@babel/plugin-transform-duplicate-keys': 7.24.1(@babel/core@7.24.4) - '@babel/plugin-transform-dynamic-import': 7.24.1(@babel/core@7.24.4) - '@babel/plugin-transform-exponentiation-operator': 7.24.1(@babel/core@7.24.4) - '@babel/plugin-transform-export-namespace-from': 7.24.1(@babel/core@7.24.4) - '@babel/plugin-transform-for-of': 7.24.1(@babel/core@7.24.4) - '@babel/plugin-transform-function-name': 7.24.1(@babel/core@7.24.4) - '@babel/plugin-transform-json-strings': 7.24.1(@babel/core@7.24.4) - '@babel/plugin-transform-literals': 7.24.1(@babel/core@7.24.4) - '@babel/plugin-transform-logical-assignment-operators': 7.24.1(@babel/core@7.24.4) - '@babel/plugin-transform-member-expression-literals': 7.24.1(@babel/core@7.24.4) - '@babel/plugin-transform-modules-amd': 7.24.1(@babel/core@7.24.4) - '@babel/plugin-transform-modules-commonjs': 7.24.1(@babel/core@7.24.4) - '@babel/plugin-transform-modules-systemjs': 7.24.1(@babel/core@7.24.4) - '@babel/plugin-transform-modules-umd': 7.24.1(@babel/core@7.24.4) - '@babel/plugin-transform-named-capturing-groups-regex': 7.22.5(@babel/core@7.24.4) - '@babel/plugin-transform-new-target': 7.24.1(@babel/core@7.24.4) - '@babel/plugin-transform-nullish-coalescing-operator': 7.24.1(@babel/core@7.24.4) - '@babel/plugin-transform-numeric-separator': 7.24.1(@babel/core@7.24.4) - '@babel/plugin-transform-object-rest-spread': 7.24.1(@babel/core@7.24.4) - '@babel/plugin-transform-object-super': 7.24.1(@babel/core@7.24.4) - '@babel/plugin-transform-optional-catch-binding': 7.24.1(@babel/core@7.24.4) - '@babel/plugin-transform-optional-chaining': 7.24.1(@babel/core@7.24.4) - '@babel/plugin-transform-parameters': 7.24.1(@babel/core@7.24.4) - '@babel/plugin-transform-private-methods': 7.24.1(@babel/core@7.24.4) - '@babel/plugin-transform-private-property-in-object': 7.24.1(@babel/core@7.24.4) - '@babel/plugin-transform-property-literals': 7.24.1(@babel/core@7.24.4) - '@babel/plugin-transform-regenerator': 7.24.1(@babel/core@7.24.4) - '@babel/plugin-transform-reserved-words': 7.24.1(@babel/core@7.24.4) - '@babel/plugin-transform-shorthand-properties': 7.24.1(@babel/core@7.24.4) - '@babel/plugin-transform-spread': 7.24.1(@babel/core@7.24.4) - '@babel/plugin-transform-sticky-regex': 7.24.1(@babel/core@7.24.4) - '@babel/plugin-transform-template-literals': 7.24.1(@babel/core@7.24.4) - '@babel/plugin-transform-typeof-symbol': 7.24.1(@babel/core@7.24.4) - '@babel/plugin-transform-unicode-escapes': 7.24.1(@babel/core@7.24.4) - '@babel/plugin-transform-unicode-property-regex': 7.24.1(@babel/core@7.24.4) - '@babel/plugin-transform-unicode-regex': 7.24.1(@babel/core@7.24.4) - '@babel/plugin-transform-unicode-sets-regex': 7.24.1(@babel/core@7.24.4) - '@babel/preset-modules': 0.1.6-no-external-plugins(@babel/core@7.24.4) - babel-plugin-polyfill-corejs2: 0.4.11(@babel/core@7.24.4) - babel-plugin-polyfill-corejs3: 0.10.4(@babel/core@7.24.4) - babel-plugin-polyfill-regenerator: 0.6.2(@babel/core@7.24.4) - core-js-compat: 3.37.0 + '@babel/plugin-bugfix-firefox-class-in-computed-class-key': 7.24.5(@babel/core@7.24.5) + '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression': 7.24.1(@babel/core@7.24.5) + '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining': 7.24.1(@babel/core@7.24.5) + '@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly': 7.24.1(@babel/core@7.24.5) + '@babel/plugin-proposal-private-property-in-object': 7.21.0-placeholder-for-preset-env.2(@babel/core@7.24.5) + '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.24.5) + '@babel/plugin-syntax-class-properties': 7.12.13(@babel/core@7.24.5) + '@babel/plugin-syntax-class-static-block': 7.14.5(@babel/core@7.24.5) + '@babel/plugin-syntax-dynamic-import': 7.8.3(@babel/core@7.24.5) + '@babel/plugin-syntax-export-namespace-from': 7.8.3(@babel/core@7.24.5) + '@babel/plugin-syntax-import-assertions': 7.24.1(@babel/core@7.24.5) + '@babel/plugin-syntax-import-attributes': 7.24.1(@babel/core@7.24.5) + '@babel/plugin-syntax-import-meta': 7.10.4(@babel/core@7.24.5) + '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.24.5) + '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.24.5) + '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.24.5) + '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.24.5) + '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.24.5) + '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.24.5) + '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.24.5) + '@babel/plugin-syntax-private-property-in-object': 7.14.5(@babel/core@7.24.5) + '@babel/plugin-syntax-top-level-await': 7.14.5(@babel/core@7.24.5) + '@babel/plugin-syntax-unicode-sets-regex': 7.18.6(@babel/core@7.24.5) + '@babel/plugin-transform-arrow-functions': 7.24.1(@babel/core@7.24.5) + '@babel/plugin-transform-async-generator-functions': 7.24.3(@babel/core@7.24.5) + '@babel/plugin-transform-async-to-generator': 7.24.1(@babel/core@7.24.5) + '@babel/plugin-transform-block-scoped-functions': 7.24.1(@babel/core@7.24.5) + '@babel/plugin-transform-block-scoping': 7.24.5(@babel/core@7.24.5) + '@babel/plugin-transform-class-properties': 7.24.1(@babel/core@7.24.5) + '@babel/plugin-transform-class-static-block': 7.24.4(@babel/core@7.24.5) + '@babel/plugin-transform-classes': 7.24.5(@babel/core@7.24.5) + '@babel/plugin-transform-computed-properties': 7.24.1(@babel/core@7.24.5) + '@babel/plugin-transform-destructuring': 7.24.5(@babel/core@7.24.5) + '@babel/plugin-transform-dotall-regex': 7.24.1(@babel/core@7.24.5) + '@babel/plugin-transform-duplicate-keys': 7.24.1(@babel/core@7.24.5) + '@babel/plugin-transform-dynamic-import': 7.24.1(@babel/core@7.24.5) + '@babel/plugin-transform-exponentiation-operator': 7.24.1(@babel/core@7.24.5) + '@babel/plugin-transform-export-namespace-from': 7.24.1(@babel/core@7.24.5) + '@babel/plugin-transform-for-of': 7.24.1(@babel/core@7.24.5) + '@babel/plugin-transform-function-name': 7.24.1(@babel/core@7.24.5) + '@babel/plugin-transform-json-strings': 7.24.1(@babel/core@7.24.5) + '@babel/plugin-transform-literals': 7.24.1(@babel/core@7.24.5) + '@babel/plugin-transform-logical-assignment-operators': 7.24.1(@babel/core@7.24.5) + '@babel/plugin-transform-member-expression-literals': 7.24.1(@babel/core@7.24.5) + '@babel/plugin-transform-modules-amd': 7.24.1(@babel/core@7.24.5) + '@babel/plugin-transform-modules-commonjs': 7.24.1(@babel/core@7.24.5) + '@babel/plugin-transform-modules-systemjs': 7.24.1(@babel/core@7.24.5) + '@babel/plugin-transform-modules-umd': 7.24.1(@babel/core@7.24.5) + '@babel/plugin-transform-named-capturing-groups-regex': 7.22.5(@babel/core@7.24.5) + '@babel/plugin-transform-new-target': 7.24.1(@babel/core@7.24.5) + '@babel/plugin-transform-nullish-coalescing-operator': 7.24.1(@babel/core@7.24.5) + '@babel/plugin-transform-numeric-separator': 7.24.1(@babel/core@7.24.5) + '@babel/plugin-transform-object-rest-spread': 7.24.5(@babel/core@7.24.5) + '@babel/plugin-transform-object-super': 7.24.1(@babel/core@7.24.5) + '@babel/plugin-transform-optional-catch-binding': 7.24.1(@babel/core@7.24.5) + '@babel/plugin-transform-optional-chaining': 7.24.5(@babel/core@7.24.5) + '@babel/plugin-transform-parameters': 7.24.5(@babel/core@7.24.5) + '@babel/plugin-transform-private-methods': 7.24.1(@babel/core@7.24.5) + '@babel/plugin-transform-private-property-in-object': 7.24.5(@babel/core@7.24.5) + '@babel/plugin-transform-property-literals': 7.24.1(@babel/core@7.24.5) + '@babel/plugin-transform-regenerator': 7.24.1(@babel/core@7.24.5) + '@babel/plugin-transform-reserved-words': 7.24.1(@babel/core@7.24.5) + '@babel/plugin-transform-shorthand-properties': 7.24.1(@babel/core@7.24.5) + '@babel/plugin-transform-spread': 7.24.1(@babel/core@7.24.5) + '@babel/plugin-transform-sticky-regex': 7.24.1(@babel/core@7.24.5) + '@babel/plugin-transform-template-literals': 7.24.1(@babel/core@7.24.5) + '@babel/plugin-transform-typeof-symbol': 7.24.5(@babel/core@7.24.5) + '@babel/plugin-transform-unicode-escapes': 7.24.1(@babel/core@7.24.5) + '@babel/plugin-transform-unicode-property-regex': 7.24.1(@babel/core@7.24.5) + '@babel/plugin-transform-unicode-regex': 7.24.1(@babel/core@7.24.5) + '@babel/plugin-transform-unicode-sets-regex': 7.24.1(@babel/core@7.24.5) + '@babel/preset-modules': 0.1.6-no-external-plugins(@babel/core@7.24.5) + babel-plugin-polyfill-corejs2: 0.4.11(@babel/core@7.24.5) + babel-plugin-polyfill-corejs3: 0.10.4(@babel/core@7.24.5) + babel-plugin-polyfill-regenerator: 0.6.2(@babel/core@7.24.5) + core-js-compat: 3.37.1 semver: 6.3.1 transitivePeerDependencies: - supports-color dev: true - /@babel/preset-modules@0.1.6-no-external-plugins(@babel/core@7.24.4): + /@babel/preset-modules@0.1.6-no-external-plugins(@babel/core@7.24.5): resolution: {integrity: sha512-HrcgcIESLm9aIR842yhJ5RWan/gebQUJ6E/E5+rf0y9o6oj7w0Br+sWuL6kEQ/o/AdfvR1Je9jG18/gnpwjEyA==} peerDependencies: '@babel/core': ^7.0.0-0 || ^8.0.0-0 <8.0.0 dependencies: - '@babel/core': 7.24.4 - '@babel/helper-plugin-utils': 7.24.0 - '@babel/types': 7.24.0 + '@babel/core': 7.24.5 + '@babel/helper-plugin-utils': 7.24.5 + '@babel/types': 7.24.5 esutils: 2.0.3 dev: true - /@babel/preset-typescript@7.24.1(@babel/core@7.24.4): + /@babel/preset-typescript@7.24.1(@babel/core@7.24.5): resolution: {integrity: sha512-1DBaMmRDpuYQBPWD8Pf/WEwCrtgRHxsZnP4mIy9G/X+hFfbI47Q2G4t1Paakld84+qsk2fSsUPMKg71jkoOOaQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.24.4 - '@babel/helper-plugin-utils': 7.24.0 + '@babel/core': 7.24.5 + '@babel/helper-plugin-utils': 7.24.5 '@babel/helper-validator-option': 7.23.5 - '@babel/plugin-syntax-jsx': 7.24.1(@babel/core@7.24.4) - '@babel/plugin-transform-modules-commonjs': 7.24.1(@babel/core@7.24.4) - '@babel/plugin-transform-typescript': 7.24.4(@babel/core@7.24.4) + '@babel/plugin-syntax-jsx': 7.24.1(@babel/core@7.24.5) + '@babel/plugin-transform-modules-commonjs': 7.24.1(@babel/core@7.24.5) + '@babel/plugin-transform-typescript': 7.24.5(@babel/core@7.24.5) dev: true /@babel/regjsgen@0.8.0: resolution: {integrity: sha512-x/rqGMdzj+fWZvCOYForTghzbtqPDZ5gPwaoNGHdgDfF2QA/XZbCBp4Moo5scrkAMPhB7z26XM/AaHuIJdgauA==} dev: true - /@babel/runtime@7.24.4: - resolution: {integrity: sha512-dkxf7+hn8mFBwKjs9bvBlArzLVxVbS8usaPUDd5p2a9JCL9tB8OaOVN1isD4+Xyk4ns89/xeOmbQvgdK7IIVdA==} + /@babel/runtime@7.24.5: + resolution: {integrity: sha512-Nms86NXrsaeU9vbBJKni6gXiEXZ4CVpYVzEjDH9Sb8vmZ3UljyA1GSOJl/6LGPO8EHLuSF9H+IxNXHPX8QHJ4g==} engines: {node: '>=6.9.0'} dependencies: regenerator-runtime: 0.14.1 @@ -1549,32 +1549,32 @@ packages: engines: {node: '>=6.9.0'} dependencies: '@babel/code-frame': 7.24.2 - '@babel/parser': 7.24.4 - '@babel/types': 7.24.0 + '@babel/parser': 7.24.5 + '@babel/types': 7.24.5 - /@babel/traverse@7.24.1: - resolution: {integrity: sha512-xuU6o9m68KeqZbQuDt2TcKSxUw/mrsvavlEqQ1leZ/B+C9tk6E4sRWy97WaXgvq5E+nU3cXMxv3WKOCanVMCmQ==} + /@babel/traverse@7.24.5: + resolution: {integrity: sha512-7aaBLeDQ4zYcUFDUD41lJc1fG8+5IU9DaNSJAgal866FGvmD5EbWQgnEC6kO1gGLsX0esNkfnJSndbTXA3r7UA==} engines: {node: '>=6.9.0'} dependencies: '@babel/code-frame': 7.24.2 - '@babel/generator': 7.24.4 + '@babel/generator': 7.24.5 '@babel/helper-environment-visitor': 7.22.20 '@babel/helper-function-name': 7.23.0 '@babel/helper-hoist-variables': 7.22.5 - '@babel/helper-split-export-declaration': 7.22.6 - '@babel/parser': 7.24.4 - '@babel/types': 7.24.0 + '@babel/helper-split-export-declaration': 7.24.5 + '@babel/parser': 7.24.5 + '@babel/types': 7.24.5 debug: 4.3.4 globals: 11.12.0 transitivePeerDependencies: - supports-color - /@babel/types@7.24.0: - resolution: {integrity: sha512-+j7a5c253RfKh8iABBhywc8NSfP5LURe7Uh4qpsh6jc+aLJguvmIUBdjSdEMQv2bENrCR5MfRdjGo7vzS/ob7w==} + /@babel/types@7.24.5: + resolution: {integrity: sha512-6mQNsaLeXTw0nxYUYu+NSa4Hx4BlF1x1x8/PMFbiR+GBSr+2DkECc69b8hgy2frEodNcvPffeH8YfWd3LI6jhQ==} engines: {node: '>=6.9.0'} dependencies: '@babel/helper-string-parser': 7.24.1 - '@babel/helper-validator-identifier': 7.22.20 + '@babel/helper-validator-identifier': 7.24.5 to-fast-properties: 2.0.0 /@dnd-kit/accessibility@3.1.0(react@18.3.1): @@ -1875,7 +1875,7 @@ packages: react: ^16 || ^17 || ^18 react-dom: ^16 || ^17 || ^18 dependencies: - '@tanstack/react-virtual': 3.4.0(react-dom@18.3.1)(react@18.3.1) + '@tanstack/react-virtual': 3.5.0(react-dom@18.3.1)(react@18.3.1) client-only: 0.0.1 react: 18.3.1 react-dom: 18.3.1(react@18.3.1) @@ -2055,12 +2055,12 @@ packages: react-dom: 18.3.1(react@18.3.1) dev: false - /@remix-run/router@1.16.0: - resolution: {integrity: sha512-Quz1KOffeEf/zwkCBM3kBtH4ZoZ+pT3xIXBG4PPW/XFtDP7EGhtTiC2+gpL9GnR7+Qdet5Oa6cYSvwKYg6kN9Q==} + /@remix-run/router@1.16.1: + resolution: {integrity: sha512-es2g3dq6Nb07iFxGk5GuHN20RwBZOsuDQN7izWIisUcv9r+d2C5jQxqmgkdebXgReWfiyUabcki6Fg77mSNrig==} engines: {node: '>=14.0.0'} dev: false - /@rollup/plugin-babel@5.3.1(@babel/core@7.24.4)(@rollup/wasm-node@4.17.2): + /@rollup/plugin-babel@5.3.1(@babel/core@7.24.5)(@rollup/wasm-node@4.18.0): resolution: {integrity: sha512-WFfdLWU/xVWKeRQnKmIAQULUI7Il0gZnBIH/ZFO069wYIfPu+8zrfp/KMW0atmELoRDq8FbiP3VCss9MhCut7Q==} engines: {node: '>= 10.0.0'} peerDependencies: @@ -2071,13 +2071,13 @@ packages: '@types/babel__core': optional: true dependencies: - '@babel/core': 7.24.4 + '@babel/core': 7.24.5 '@babel/helper-module-imports': 7.24.3 - '@rollup/pluginutils': 3.1.0(@rollup/wasm-node@4.17.2) - rollup: /@rollup/wasm-node@4.17.2 + '@rollup/pluginutils': 3.1.0(@rollup/wasm-node@4.18.0) + rollup: /@rollup/wasm-node@4.18.0 dev: true - /@rollup/plugin-node-resolve@15.2.3(@rollup/wasm-node@4.17.2): + /@rollup/plugin-node-resolve@15.2.3(@rollup/wasm-node@4.18.0): resolution: {integrity: sha512-j/lym8nf5E21LwBT4Df1VD6hRO2L2iwUeUmP7litikRsVp1H6NWx20NEp0Y7su+7XGc476GnXXc4kFeZNGmaSQ==} engines: {node: '>=14.0.0'} peerDependencies: @@ -2086,26 +2086,26 @@ packages: rollup: optional: true dependencies: - '@rollup/pluginutils': 5.1.0(@rollup/wasm-node@4.17.2) + '@rollup/pluginutils': 5.1.0(@rollup/wasm-node@4.18.0) '@types/resolve': 1.20.2 deepmerge: 4.3.1 is-builtin-module: 3.2.1 is-module: 1.0.0 resolve: 1.22.8 - rollup: /@rollup/wasm-node@4.17.2 + rollup: /@rollup/wasm-node@4.18.0 dev: true - /@rollup/plugin-replace@2.4.2(@rollup/wasm-node@4.17.2): + /@rollup/plugin-replace@2.4.2(@rollup/wasm-node@4.18.0): resolution: {integrity: sha512-IGcu+cydlUMZ5En85jxHH4qj2hta/11BHq95iHEyb2sbgiN0eCdzvUcHw5gt9pBL5lTi4JDYJ1acCoMGpTvEZg==} peerDependencies: rollup: npm:@rollup/wasm-node dependencies: - '@rollup/pluginutils': 3.1.0(@rollup/wasm-node@4.17.2) + '@rollup/pluginutils': 3.1.0(@rollup/wasm-node@4.18.0) magic-string: 0.25.9 - rollup: /@rollup/wasm-node@4.17.2 + rollup: /@rollup/wasm-node@4.18.0 dev: true - /@rollup/plugin-terser@0.4.4(@rollup/wasm-node@4.17.2): + /@rollup/plugin-terser@0.4.4(@rollup/wasm-node@4.18.0): resolution: {integrity: sha512-XHeJC5Bgvs8LfukDwWZp7yeqin6ns8RTl2B9avbejt6tZqsqvVoWI7ZTQrcNsfKEDWBTnTxM8nMDkO2IFFbd0A==} engines: {node: '>=14.0.0'} peerDependencies: @@ -2114,13 +2114,13 @@ packages: rollup: optional: true dependencies: - rollup: /@rollup/wasm-node@4.17.2 + rollup: /@rollup/wasm-node@4.18.0 serialize-javascript: 6.0.2 smob: 1.5.0 - terser: 5.30.4 + terser: 5.31.0 dev: true - /@rollup/pluginutils@3.1.0(@rollup/wasm-node@4.17.2): + /@rollup/pluginutils@3.1.0(@rollup/wasm-node@4.18.0): resolution: {integrity: sha512-GksZ6pr6TpIjHm8h9lSQ8pi8BE9VeubNT0OMJ3B5uZJ8pz73NPiqOtCog/x2/QzM1ENChPKxMDhiQuRHsqc+lg==} engines: {node: '>= 8.0.0'} peerDependencies: @@ -2129,10 +2129,10 @@ packages: '@types/estree': 0.0.39 estree-walker: 1.0.1 picomatch: 2.3.1 - rollup: /@rollup/wasm-node@4.17.2 + rollup: /@rollup/wasm-node@4.18.0 dev: true - /@rollup/pluginutils@5.1.0(@rollup/wasm-node@4.17.2): + /@rollup/pluginutils@5.1.0(@rollup/wasm-node@4.18.0): resolution: {integrity: sha512-XTIWOPPcpvyKI6L1NHo0lFlCyznUEyPmPY1mc3KpPVDYulHSTvyeLNVW00QTLIAFNhR3kYnJTQHeGqU4M3n09g==} engines: {node: '>=14.0.0'} peerDependencies: @@ -2144,21 +2144,11 @@ packages: '@types/estree': 1.0.5 estree-walker: 2.0.2 picomatch: 2.3.1 - rollup: /@rollup/wasm-node@4.17.2 - dev: true - - /@rollup/wasm-node@4.17.0: - resolution: {integrity: sha512-EOKrg8I26cw7+M8mn5PDWfq4TIyJ7OGeZuaK7Pm3wn5nLJYfRH7CQV/IT+j9MpaVW84JPRp2FGqePdyF8FkTEQ==} - engines: {node: '>=18.0.0', npm: '>=8.0.0'} - hasBin: true - dependencies: - '@types/estree': 1.0.5 - optionalDependencies: - fsevents: 2.3.3 + rollup: /@rollup/wasm-node@4.18.0 dev: true - /@rollup/wasm-node@4.17.2: - resolution: {integrity: sha512-4F6C3XaUn02XY/GJMQTXncWrLyCkRHdRZe4OyWuQUprWKmU2u+esISOtCYdr3Bp9AqCIo/X3So2Ik7N9dNDwow==} + /@rollup/wasm-node@4.18.0: + resolution: {integrity: sha512-DkLoyblRMhJw9ZogW9zCpyH0CNJ+7GaM7Ty+Vl+G21z/Gr7uKBaXqcJqwWUiNYVxTOgxZrxhDG6pmOFxOuswvw==} engines: {node: '>=18.0.0', npm: '>=8.0.0'} hasBin: true dependencies: @@ -2197,61 +2187,61 @@ packages: string.prototype.matchall: 4.0.11 dev: true - /@tanstack/react-virtual@3.4.0(react-dom@18.3.1)(react@18.3.1): - resolution: {integrity: sha512-GZN4xn/Tg5w7gvYeVcMVCeL4pEyUhvg+Cp6KX2Z01C4FRNxIWMgIQ9ibgMarNQfo+gt0PVLcEER4A9sNv/jlow==} + /@tanstack/react-virtual@3.5.0(react-dom@18.3.1)(react@18.3.1): + resolution: {integrity: sha512-rtvo7KwuIvqK9zb0VZ5IL7fiJAEnG+0EiFZz8FUOs+2mhGqdGmjKIaT1XU7Zq0eFqL0jonLlhbayJI/J2SA/Bw==} peerDependencies: react: ^16.8.0 || ^17.0.0 || ^18.0.0 react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 dependencies: - '@tanstack/virtual-core': 3.4.0 + '@tanstack/virtual-core': 3.5.0 react: 18.3.1 react-dom: 18.3.1(react@18.3.1) dev: false - /@tanstack/virtual-core@3.4.0: - resolution: {integrity: sha512-75jXqXxqq5M5Veb9KP1STi8kA5u408uOOAefk2ftHDGCpUk3RP6zX++QqfbmHJTBiU72NQ+ghgCZVts/Wocz8Q==} + /@tanstack/virtual-core@3.5.0: + resolution: {integrity: sha512-KnPRCkQTyqhanNC0K63GBG3wA8I+D1fQuVnAvcBF8f13akOKeQp1gSbu6f77zCxhEk727iV5oQnbHLYzHrECLg==} dev: false /@types/babel__core@7.20.5: resolution: {integrity: sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==} dependencies: - '@babel/parser': 7.24.4 - '@babel/types': 7.24.0 + '@babel/parser': 7.24.5 + '@babel/types': 7.24.5 '@types/babel__generator': 7.6.8 '@types/babel__template': 7.4.4 - '@types/babel__traverse': 7.20.5 + '@types/babel__traverse': 7.20.6 dev: true /@types/babel__generator@7.6.8: resolution: {integrity: sha512-ASsj+tpEDsEiFr1arWrlN6V3mdfjRMZt6LtK/Vp/kreFLnr5QH5+DhvD5nINYZXzwJvXeGq+05iUXcAzVrqWtw==} dependencies: - '@babel/types': 7.24.0 + '@babel/types': 7.24.5 dev: true /@types/babel__template@7.4.4: resolution: {integrity: sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==} dependencies: - '@babel/parser': 7.24.4 - '@babel/types': 7.24.0 + '@babel/parser': 7.24.5 + '@babel/types': 7.24.5 dev: true - /@types/babel__traverse@7.20.5: - resolution: {integrity: sha512-WXCyOcRtH37HAUkpXhUduaxdm82b4GSlyTqajXviN4EfiuPgNYR109xMCKvpl6zPIpua0DGlMEDCq+g8EdoheQ==} + /@types/babel__traverse@7.20.6: + resolution: {integrity: sha512-r1bzfrm0tomOI8g1SzvCaQHo6Lcv6zu0EA+W2kHrt8dyrHQxGzBBL4kdkzIS+jBMV+EYcMAEAqXqYaLJq5rOZg==} dependencies: - '@babel/types': 7.24.0 + '@babel/types': 7.24.5 dev: true - /@types/chrome@0.0.267: - resolution: {integrity: sha512-vnCWPpYjazSPRMNmybRH+0q4f738F+Pbbls4ZPFsPr9/4TTNJyK1OLZDpSnghnEWb4stfmIUtq/GegnlfD4sPA==} + /@types/chrome@0.0.268: + resolution: {integrity: sha512-7N1QH9buudSJ7sI8Pe4mBHJr5oZ48s0hcanI9w3wgijAlv1OZNUZve9JR4x42dn5lJ5Sm87V1JNfnoh10EnQlA==} dependencies: '@types/filesystem': 0.0.36 '@types/har-format': 1.2.15 dev: true - /@types/chromecast-caf-sender@1.0.9: - resolution: {integrity: sha512-+u4Y5O4OkkNjG+V2l2Cnsw6pSYS+lg4Jlnxh+FVVqdnXp+M8R4Umor1C3JA6u/iXCpTmIndOaBvZa3bMhGZgnw==} + /@types/chromecast-caf-sender@1.0.10: + resolution: {integrity: sha512-B4iO+T4kMonmvIV+9xyWeIjxNWYVh6RyIQlFUeLk9fgQuXzHtFLnbnVwY7no5qshdUk9szKy0qbCWEMAjMkj4w==} dependencies: - '@types/chrome': 0.0.267 + '@types/chrome': 0.0.268 dev: true /@types/crypto-js@4.2.2: @@ -2308,33 +2298,33 @@ packages: /@types/lodash.isequal@4.5.8: resolution: {integrity: sha512-uput6pg4E/tj2LGxCZo9+y27JNyB2OZuuI/T5F+ylVDYuqICLG2/ktjxx0v6GvVntAf8TvEzeQLcV0ffRirXuA==} dependencies: - '@types/lodash': 4.17.0 + '@types/lodash': 4.17.4 dev: true /@types/lodash.merge@4.6.9: resolution: {integrity: sha512-23sHDPmzd59kUgWyKGiOMO2Qb9YtqRO/x4IhkgNUiPQ1+5MUVqi6bCZeq9nBJ17msjIMbEIO5u+XW4Kz6aGUhQ==} dependencies: - '@types/lodash': 4.17.0 + '@types/lodash': 4.17.4 dev: true /@types/lodash.throttle@4.1.9: resolution: {integrity: sha512-PCPVfpfueguWZQB7pJQK890F2scYKoDUL3iM522AptHWn7d5NQmeS/LTEHIcLr5PaTzl3dK2Z0xSUHHTHwaL5g==} dependencies: - '@types/lodash': 4.17.0 + '@types/lodash': 4.17.4 dev: true - /@types/lodash@4.17.0: - resolution: {integrity: sha512-t7dhREVv6dbNj0q17X12j7yDG4bD/DHYX7o5/DbDxobP0HnGPgpRz2Ej77aL7TZT3DSw13fqUTj8J4mMnqa7WA==} + /@types/lodash@4.17.4: + resolution: {integrity: sha512-wYCP26ZLxaT3R39kiN2+HcJ4kTd3U1waI/cY7ivWYqFP6pW3ZNpvi6Wd6PHZx7T/t8z0vlkXMg3QYLa7DZ/IJQ==} dev: true /@types/node-forge@1.3.11: resolution: {integrity: sha512-FQx220y22OKNTqaByeBGqHWYz4cl94tpcxeFdvBo3wjG6XPBuZ0BNgNZRV5J5TFmmcsJ4IzsLkmGRiQbnYsBEQ==} dependencies: - '@types/node': 20.12.7 + '@types/node': 20.12.12 dev: false - /@types/node@20.12.7: - resolution: {integrity: sha512-wq0cICSkRLVaf3UGLMGItu/PtdY7oaXaI/RVU+xliKVOtRna3PRY57ZDfztpDL0n11vfymMUnXv8QwYCO7L1wg==} + /@types/node@20.12.12: + resolution: {integrity: sha512-eWLDGF/FOSPtAvEqeRAQ4C8LSA7M1I7i0ky1I8U7kD1J5ITyW3AsRhQrKVoWf5pFKZ2kILsEGJhsI9r93PYnOw==} dependencies: undici-types: 5.26.5 @@ -2348,19 +2338,19 @@ packages: /@types/react-dom@18.3.0: resolution: {integrity: sha512-EhwApuTmMBmXuFOikhQLIBUn6uFg81SwLMOAUgodJF14SOBOCMdU04gDoYi0WOJJHD144TL32z4yDqCW3dnkQg==} dependencies: - '@types/react': 18.3.1 + '@types/react': 18.3.2 dev: true /@types/react-helmet@6.1.11: resolution: {integrity: sha512-0QcdGLddTERotCXo3VFlUSWO3ztraw8nZ6e3zJSgG7apwV5xt+pJUS8ewPBqT4NYB1optGLprNQzFleIY84u/g==} dependencies: - '@types/react': 18.3.1 + '@types/react': 18.3.2 dev: true /@types/react-lazy-load-image-component@1.6.4: resolution: {integrity: sha512-8pFPeDPF4yVG4lU1/ixZidJEEDZmEOYOTYDvmIu2IAabyuv97Q7n/93nMCocHvQ7vD1czKGiW+op55D9m3MkdA==} dependencies: - '@types/react': 18.3.1 + '@types/react': 18.3.2 csstype: 3.1.3 dev: true @@ -2368,7 +2358,7 @@ packages: resolution: {integrity: sha512-kpqnYK4wcdm5UaWI3fLcELopqLrHgLqNsdpHauzlQktfkHL3npOSwtj1Uz9oKBAzs7lFtVkV8j83voAz2D8fhw==} dependencies: '@types/history': 4.7.11 - '@types/react': 18.3.1 + '@types/react': 18.3.2 '@types/react-router': 5.1.20 dev: true @@ -2376,23 +2366,23 @@ packages: resolution: {integrity: sha512-jGjmu/ZqS7FjSH6owMcD5qpq19+1RS9DeVRqfl1FeBMxTDQAGwlMWOcs52NDoXaNKyG3d1cYQFMs9rCrb88o9Q==} dependencies: '@types/history': 4.7.11 - '@types/react': 18.3.1 + '@types/react': 18.3.2 dev: true /@types/react-stickynode@4.0.3: resolution: {integrity: sha512-K7YkwdhXQE4YVxIVweix4nkpdG4onm/dcnKK+qCj0vgUrNiKng+09zOfjF5AlOcC1HQkg5yxVLwp/0AzT84R0w==} dependencies: - '@types/react': 18.3.1 + '@types/react': 18.3.2 dev: true /@types/react-transition-group@4.4.10: resolution: {integrity: sha512-hT/+s0VQs2ojCX823m60m5f0sL5idt9SO6Tj6Dg+rdphGPIeJbJ6CxvBYkgkGKrYeDjvIpKTR38UzmtHJOGW3Q==} dependencies: - '@types/react': 18.3.1 + '@types/react': 18.3.2 dev: true - /@types/react@18.3.1: - resolution: {integrity: sha512-V0kuGBX3+prX+DQ/7r2qsv1NsdfnCLnTgnRJ1pYnxykBhGMz+qj+box5lq7XsO5mtZsBqpjwwTu/7wszPfMBcw==} + /@types/react@18.3.2: + resolution: {integrity: sha512-Btgg89dAnqD4vV7R3hlwOxgqobUQKgx3MmrQRi0yYbs/P0ym8XozIAlkqVilPqHQwXs4e9Tf63rrCgl58BcO4w==} dependencies: '@types/prop-types': 15.7.12 csstype: 3.1.3 @@ -2431,7 +2421,7 @@ packages: graphemer: 1.4.0 ignore: 5.3.1 natural-compare: 1.4.0 - semver: 7.6.0 + semver: 7.6.2 ts-api-utils: 1.3.0(typescript@5.4.5) typescript: 5.4.5 transitivePeerDependencies: @@ -2507,7 +2497,7 @@ packages: globby: 11.1.0 is-glob: 4.0.3 minimatch: 9.0.3 - semver: 7.6.0 + semver: 7.6.2 ts-api-utils: 1.3.0(typescript@5.4.5) typescript: 5.4.5 transitivePeerDependencies: @@ -2527,7 +2517,7 @@ packages: '@typescript-eslint/types': 6.21.0 '@typescript-eslint/typescript-estree': 6.21.0(typescript@5.4.5) eslint: 8.57.0 - semver: 7.6.0 + semver: 7.6.2 transitivePeerDependencies: - supports-color - typescript @@ -2545,54 +2535,54 @@ packages: resolution: {integrity: sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==} dev: true - /@vitejs/plugin-react@4.2.1(vite@5.2.10): - resolution: {integrity: sha512-oojO9IDc4nCUUi8qIR11KoQm0XFFLIwsRBwHRR4d/88IWghn1y6ckz/bJ8GHDCsYEJee8mDzqtJxh15/cisJNQ==} + /@vitejs/plugin-react@4.3.0(vite@5.2.11): + resolution: {integrity: sha512-KcEbMsn4Dpk+LIbHMj7gDPRKaTMStxxWRkRmxsg/jVdFdJCZWt1SchZcf0M4t8lIKdwwMsEyzhrcOXRrDPtOBw==} engines: {node: ^14.18.0 || >=16.0.0} peerDependencies: vite: ^4.2.0 || ^5.0.0 dependencies: - '@babel/core': 7.24.4 - '@babel/plugin-transform-react-jsx-self': 7.24.1(@babel/core@7.24.4) - '@babel/plugin-transform-react-jsx-source': 7.24.1(@babel/core@7.24.4) + '@babel/core': 7.24.5 + '@babel/plugin-transform-react-jsx-self': 7.24.5(@babel/core@7.24.5) + '@babel/plugin-transform-react-jsx-source': 7.24.1(@babel/core@7.24.5) '@types/babel__core': 7.20.5 react-refresh: 0.14.2 - vite: 5.2.10(@types/node@20.12.7) + vite: 5.2.11(@types/node@20.12.12) transitivePeerDependencies: - supports-color dev: true - /@vitest/expect@1.5.2: - resolution: {integrity: sha512-rf7MTD1WCoDlN3FfYJ9Llfp0PbdtOMZ3FIF0AVkDnKbp3oiMW1c8AmvRZBcqbAhDUAvF52e9zx4WQM1r3oraVA==} + /@vitest/expect@1.6.0: + resolution: {integrity: sha512-ixEvFVQjycy/oNgHjqsL6AZCDduC+tflRluaHIzKIsdbzkLn2U/iBnVeJwB6HsIjQBdfMR8Z0tRxKUsvFJEeWQ==} dependencies: - '@vitest/spy': 1.5.2 - '@vitest/utils': 1.5.2 + '@vitest/spy': 1.6.0 + '@vitest/utils': 1.6.0 chai: 4.4.1 dev: true - /@vitest/runner@1.5.2: - resolution: {integrity: sha512-7IJ7sJhMZrqx7HIEpv3WrMYcq8ZNz9L6alo81Y6f8hV5mIE6yVZsFoivLZmr0D777klm1ReqonE9LyChdcmw6g==} + /@vitest/runner@1.6.0: + resolution: {integrity: sha512-P4xgwPjwesuBiHisAVz/LSSZtDjOTPYZVmNAnpHHSR6ONrf8eCJOFRvUwdHn30F5M1fxhqtl7QZQUk2dprIXAg==} dependencies: - '@vitest/utils': 1.5.2 + '@vitest/utils': 1.6.0 p-limit: 5.0.0 pathe: 1.1.2 dev: true - /@vitest/snapshot@1.5.2: - resolution: {integrity: sha512-CTEp/lTYos8fuCc9+Z55Ga5NVPKUgExritjF5VY7heRFUfheoAqBneUlvXSUJHUZPjnPmyZA96yLRJDP1QATFQ==} + /@vitest/snapshot@1.6.0: + resolution: {integrity: sha512-+Hx43f8Chus+DCmygqqfetcAZrDJwvTj0ymqjQq4CvmpKFSTVteEOBzCusu1x2tt4OJcvBflyHUE0DZSLgEMtQ==} dependencies: magic-string: 0.30.10 pathe: 1.1.2 pretty-format: 29.7.0 dev: true - /@vitest/spy@1.5.2: - resolution: {integrity: sha512-xCcPvI8JpCtgikT9nLpHPL1/81AYqZy1GCy4+MCHBE7xi8jgsYkULpW5hrx5PGLgOQjUpb6fd15lqcriJ40tfQ==} + /@vitest/spy@1.6.0: + resolution: {integrity: sha512-leUTap6B/cqi/bQkXUu6bQV5TZPx7pmMBKBQiI0rJA8c3pB56ZsaTbREnF7CJfmvAS4V2cXIBAh/3rVwrrCYgw==} dependencies: tinyspy: 2.2.1 dev: true - /@vitest/utils@1.5.2: - resolution: {integrity: sha512-sWOmyofuXLJ85VvXNsroZur7mOJGiQeM0JN3/0D1uU8U9bGFM69X1iqHaRXl6R8BwaLY6yPCogP257zxTzkUdA==} + /@vitest/utils@1.6.0: + resolution: {integrity: sha512-21cPiuGMoMZwiOHa2i4LXkMkMkCGzA+MVFV70jRwHo95dL4x/ts5GZhML1QWuy7yfp3WzK3lRvZi3JnXTYqrBw==} dependencies: diff-sequences: 29.6.3 estree-walker: 3.0.3 @@ -2640,8 +2630,8 @@ packages: uri-js: 4.4.1 dev: true - /ajv@8.12.0: - resolution: {integrity: sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==} + /ajv@8.13.0: + resolution: {integrity: sha512-PRA911Blj99jR5RMeTunVbNXMF6Lp4vZXnk5GQjcnUWUTsrXtekg/pnmFFI2u/I36Y/2bITGS30GZCXei6uNkA==} dependencies: fast-deep-equal: 3.1.3 json-schema-traverse: 1.0.0 @@ -2823,10 +2813,10 @@ packages: postcss: '>=8.4.31' dependencies: browserslist: 4.23.0 - caniuse-lite: 1.0.30001614 + caniuse-lite: 1.0.30001621 fraction.js: 4.3.7 normalize-range: 0.1.2 - picocolors: 1.0.0 + picocolors: 1.0.1 postcss: 8.4.38 postcss-value-parser: 4.2.0 dev: true @@ -2849,38 +2839,38 @@ packages: dequal: 2.0.3 dev: true - /babel-plugin-polyfill-corejs2@0.4.11(@babel/core@7.24.4): + /babel-plugin-polyfill-corejs2@0.4.11(@babel/core@7.24.5): resolution: {integrity: sha512-sMEJ27L0gRHShOh5G54uAAPaiCOygY/5ratXuiyb2G46FmlSpc9eFCzYVyDiPxfNbwzA7mYahmjQc5q+CZQ09Q==} peerDependencies: '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 dependencies: '@babel/compat-data': 7.24.4 - '@babel/core': 7.24.4 - '@babel/helper-define-polyfill-provider': 0.6.2(@babel/core@7.24.4) + '@babel/core': 7.24.5 + '@babel/helper-define-polyfill-provider': 0.6.2(@babel/core@7.24.5) semver: 6.3.1 transitivePeerDependencies: - supports-color dev: true - /babel-plugin-polyfill-corejs3@0.10.4(@babel/core@7.24.4): + /babel-plugin-polyfill-corejs3@0.10.4(@babel/core@7.24.5): resolution: {integrity: sha512-25J6I8NGfa5YkCDogHRID3fVCadIR8/pGl1/spvCkzb6lVn6SR3ojpx9nOn9iEBcUsjY24AmdKm5khcfKdylcg==} peerDependencies: '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 dependencies: - '@babel/core': 7.24.4 - '@babel/helper-define-polyfill-provider': 0.6.2(@babel/core@7.24.4) - core-js-compat: 3.37.0 + '@babel/core': 7.24.5 + '@babel/helper-define-polyfill-provider': 0.6.2(@babel/core@7.24.5) + core-js-compat: 3.37.1 transitivePeerDependencies: - supports-color dev: true - /babel-plugin-polyfill-regenerator@0.6.2(@babel/core@7.24.4): + /babel-plugin-polyfill-regenerator@0.6.2(@babel/core@7.24.5): resolution: {integrity: sha512-2R25rQZWP63nGwaAswvDazbPXfrM3HwVoBXK6HcqeKrSrL/JqcC/rDcf95l4r7LXLyxDXc8uQDa064GubtCABg==} peerDependencies: '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 dependencies: - '@babel/core': 7.24.4 - '@babel/helper-define-polyfill-provider': 0.6.2(@babel/core@7.24.4) + '@babel/core': 7.24.5 + '@babel/helper-define-polyfill-provider': 0.6.2(@babel/core@7.24.5) transitivePeerDependencies: - supports-color dev: true @@ -2916,21 +2906,21 @@ packages: balanced-match: 1.0.2 dev: true - /braces@3.0.2: - resolution: {integrity: sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==} + /braces@3.0.3: + resolution: {integrity: sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==} engines: {node: '>=8'} dependencies: - fill-range: 7.0.1 + fill-range: 7.1.1 /browserslist@4.23.0: resolution: {integrity: sha512-QW8HiM1shhT2GuzkvklfjcKDiWFXHOeFCIA/huJPwHsslwcydgk7X+z2zXpEijP98UCY7HbubZt5J2Zgvf0CaQ==} engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} hasBin: true dependencies: - caniuse-lite: 1.0.30001614 - electron-to-chromium: 1.4.750 + caniuse-lite: 1.0.30001621 + electron-to-chromium: 1.4.779 node-releases: 2.0.14 - update-browserslist-db: 1.0.13(browserslist@4.23.0) + update-browserslist-db: 1.0.16(browserslist@4.23.0) /buffer-from@1.1.2: resolution: {integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==} @@ -2967,8 +2957,8 @@ packages: engines: {node: '>= 6'} dev: true - /caniuse-lite@1.0.30001614: - resolution: {integrity: sha512-jmZQ1VpmlRwHgdP1/uiKzgiAuGOfLEJsYFP4+GBou/QQ4U6IOJCB4NP1c+1p9RGLpwObcT94jA5/uO+F1vBbog==} + /caniuse-lite@1.0.30001621: + resolution: {integrity: sha512-+NLXZiviFFKX0fk8Piwv3PfLPGtRqJeq2TiNoUff/qB5KJgwecJTvCXDpmlyP/eCI/GUEmp/h/y5j0yckiiZrA==} /chai@4.4.1: resolution: {integrity: sha512-13sOfMv2+DWduEU+/xbun3LScLoqN17nBeTLUsmDfKdoiC1fr0n9PU4guu4AhRcOVFk/sW8LyZWHuhWtQZiF+g==} @@ -3034,7 +3024,7 @@ packages: engines: {node: '>= 8.10.0'} dependencies: anymatch: 3.1.3 - braces: 3.0.2 + braces: 3.0.3 glob-parent: 5.1.2 is-binary-path: 2.1.0 is-glob: 4.0.3 @@ -3145,14 +3135,14 @@ packages: toggle-selection: 1.0.6 dev: false - /core-js-compat@3.37.0: - resolution: {integrity: sha512-vYq4L+T8aS5UuFg4UwDhc7YNRWVeVZwltad9C/jV3R2LgVOpS9BDr7l/WL6BN0dbV3k1XejPTHqqEzJgsa0frA==} + /core-js-compat@3.37.1: + resolution: {integrity: sha512-9TNiImhKvQqSUkOvk/mMRZzOANTiEVC7WaBNhHcKM7x+/5E1l5NvsysR19zuDQScE8k+kfQXWRN3AtS/eOSHpg==} dependencies: browserslist: 4.23.0 dev: true - /core-js@3.37.0: - resolution: {integrity: sha512-fu5vHevQ8ZG4og+LXug8ulUtVxjOcEYvifJr7L5Bfq9GOztVqsKd9/59hUk2ZSbCrS3BqUr3EpaYGIYzq7g3Ug==} + /core-js@3.37.1: + resolution: {integrity: sha512-Xn6qmxrQZyB0FFY8E3bgRXei3lWDJHhvI+u0q9TKIYM49G8pAr0FgnnrFRAmsbptZL1yxRADVXn+x5AGsbBfyw==} requiresBuild: true dev: false @@ -3185,7 +3175,7 @@ packages: /css-in-js-utils@3.1.0: resolution: {integrity: sha512-fJAcud6B3rRu+KHYk+Bwf+WFL2MDCJJ1XG9x137tJQ0xYxor7XziQtuGFbWNdqrvF4Tk26O3H73nfVqXt/fW1A==} dependencies: - hyphenate-style-name: 1.0.4 + hyphenate-style-name: 1.0.5 dev: false /css-select@5.1.0: @@ -3414,8 +3404,8 @@ packages: domelementtype: 2.3.0 dev: false - /dompurify@3.1.1: - resolution: {integrity: sha512-tVP8C/GJwnABOn/7cx/ymx/hXpmBfWIPihC1aOEvS8GbMqy3pgeYtJk1HXN3CO7tu+8bpY18f6isjR5Cymj0TQ==} + /dompurify@3.1.4: + resolution: {integrity: sha512-2gnshi6OshmuKil8rMZuQCGiUF3cUxHY3NGDzUAdUx/NPEe5DVnO8BDoAQouvgwnx0R/+a6jUn36Z0FSdq8vww==} dev: false /domutils@3.1.0: @@ -3435,11 +3425,11 @@ packages: engines: {node: '>=0.10.0'} hasBin: true dependencies: - jake: 10.8.7 + jake: 10.9.1 dev: true - /electron-to-chromium@1.4.750: - resolution: {integrity: sha512-9ItEpeu15hW5m8jKdriL+BQrgwDTXEL9pn4SkillWFu73ZNNNQ2BKKLS+ZHv2vC9UkNhosAeyfxOf/5OSeTCPA==} + /electron-to-chromium@1.4.779: + resolution: {integrity: sha512-oaTiIcszNfySXVJzKcjxd2YjPxziAd+GmXyb2HbidCeFo6Z88ygOT7EimlrEQhM2U08VhSrbKhLOXP0kKUCZ6g==} /emoji-regex@8.0.0: resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} @@ -3449,8 +3439,8 @@ packages: resolution: {integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==} dev: true - /enhanced-resolve@5.16.0: - resolution: {integrity: sha512-O+QWCviPNSSLAD9Ucn8Awv+poAkqn3T1XY5/N7kR7rQO9yfSGWkYZDwpJ+iKF7B8rxaQKWngSqACpgzeapSyoA==} + /enhanced-resolve@5.16.1: + resolution: {integrity: sha512-4U5pNsuDl0EhuZpq46M5xPslstkviJuhrdobaRDBk2Jy2KO37FDAJl4lb2KlNabxT0m4MTK2UHNrsAcphE8nyw==} engines: {node: '>=10.13.0'} dependencies: graceful-fs: 4.2.11 @@ -3486,7 +3476,7 @@ packages: function.prototype.name: 1.1.6 get-intrinsic: 1.2.4 get-symbol-description: 1.0.2 - globalthis: 1.0.3 + globalthis: 1.0.4 gopd: 1.0.1 has-property-descriptors: 1.0.2 has-proto: 1.0.3 @@ -3542,7 +3532,7 @@ packages: es-set-tostringtag: 2.0.3 function-bind: 1.1.2 get-intrinsic: 1.2.4 - globalthis: 1.0.3 + globalthis: 1.0.4 has-property-descriptors: 1.0.2 has-proto: 1.0.3 has-symbols: 1.0.3 @@ -3688,12 +3678,12 @@ packages: eslint-plugin-import: '*' dependencies: debug: 4.3.4 - enhanced-resolve: 5.16.0 + enhanced-resolve: 5.16.1 eslint: 8.57.0 eslint-module-utils: 2.8.1(@typescript-eslint/parser@6.21.0)(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1)(eslint@8.57.0) eslint-plugin-import: 2.29.1(@typescript-eslint/parser@6.21.0)(eslint-import-resolver-typescript@3.6.1)(eslint@8.57.0) fast-glob: 3.3.2 - get-tsconfig: 4.7.3 + get-tsconfig: 4.7.5 is-core-module: 2.13.1 is-glob: 4.0.3 transitivePeerDependencies: @@ -3774,7 +3764,7 @@ packages: peerDependencies: eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 dependencies: - '@babel/runtime': 7.24.4 + '@babel/runtime': 7.24.5 aria-query: 5.3.0 array-includes: 3.1.8 array.prototype.flatmap: 1.3.2 @@ -3985,7 +3975,7 @@ packages: '@nodelib/fs.walk': 1.2.8 glob-parent: 5.1.2 merge2: 1.4.1 - micromatch: 4.0.5 + micromatch: 4.0.7 dev: true /fast-json-stable-stringify@2.1.0: @@ -4035,8 +4025,8 @@ packages: minimatch: 5.1.6 dev: true - /fill-range@7.0.1: - resolution: {integrity: sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==} + /fill-range@7.1.1: + resolution: {integrity: sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==} engines: {node: '>=8'} dependencies: to-regex-range: 5.0.1 @@ -4049,8 +4039,8 @@ packages: path-exists: 4.0.0 dev: true - /flag-icons@7.2.1: - resolution: {integrity: sha512-EaU4XZmFt1BOilz9nMmJKjma5pOaNjzL7somOhadrrilollh4xj6aaXI2M1sd00VUfVWN0E25Q6xaW3SNt0k/Q==} + /flag-icons@7.2.2: + resolution: {integrity: sha512-9cC2y77npwpNJ1Whl3iACVFd/vR7ZQe9AwN8BRDJU2sZROMpEzIC3tOT1qbRRm/QS9b9UTXBHEKAO4I6d7L0xg==} dev: false /flat-cache@3.2.0: @@ -4218,8 +4208,8 @@ packages: get-intrinsic: 1.2.4 dev: true - /get-tsconfig@4.7.3: - resolution: {integrity: sha512-ZvkrzoUA0PQZM6fy6+/Hce561s+faD1rsNwhnO5FelNjyy7EMGJ3Rz1AQ8GYDWjhRs/7dBLOEJvhK8MiEJOAFg==} + /get-tsconfig@4.7.5: + resolution: {integrity: sha512-ZCuZCnlqNzjb4QprAzXKdpp/gh6KTxSJuw3IBsPnV/7fV4NxC9ckB+vPTt8w7fJA0TaSD7c55BR47JD6MEDyDw==} dependencies: resolve-pkg-maps: 1.0.0 dev: true @@ -4237,16 +4227,16 @@ packages: is-glob: 4.0.3 dev: true - /glob@10.3.12: - resolution: {integrity: sha512-TCNv8vJ+xz4QiqTpfOJA7HvYv+tNIRHKfUWw/q+v2jdgN4ebz+KY9tGx5J4rHP0o84mNP+ApH66HRX8us3Khqg==} - engines: {node: '>=16 || 14 >=14.17'} + /glob@10.3.16: + resolution: {integrity: sha512-JDKXl1DiuuHJ6fVS2FXjownaavciiHNUU4mOvV/B793RLh05vZL1rcPnCSaOgv1hDT6RDlY7AB7ZUvFYAtPgAw==} + engines: {node: '>=16 || 14 >=14.18'} hasBin: true dependencies: foreground-child: 3.1.1 - jackspeak: 2.3.6 + jackspeak: 3.1.2 minimatch: 9.0.4 - minipass: 7.0.4 - path-scurry: 1.10.2 + minipass: 7.1.1 + path-scurry: 1.11.1 dev: true /glob@7.2.3: @@ -4271,11 +4261,12 @@ packages: type-fest: 0.20.2 dev: true - /globalthis@1.0.3: - resolution: {integrity: sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA==} + /globalthis@1.0.4: + resolution: {integrity: sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ==} engines: {node: '>= 0.4'} dependencies: define-properties: 1.2.1 + gopd: 1.0.1 dev: true /globby@11.1.0: @@ -4417,14 +4408,14 @@ packages: engines: {node: '>=16.17.0'} dev: true - /hyphenate-style-name@1.0.4: - resolution: {integrity: sha512-ygGZLjmXfPHj+ZWh6LwbC37l43MhfztxetbFCoYTM2VjkIUpeHgSNn7QIyVFj7YQ1Wl9Cbw5sholVJPzWvC2MQ==} + /hyphenate-style-name@1.0.5: + resolution: {integrity: sha512-fedL7PRwmeVkgyhu9hLeTBaI6wcGk7JGJswdaRsa5aUbkXI1kr1xZwTPBtaYPpwf56878iDek6VbVnuWMebJmw==} dev: false - /i18next@23.11.2: - resolution: {integrity: sha512-qMBm7+qT8jdpmmDw/kQD16VpmkL9BdL+XNAK5MNbNFaf1iQQq35ZbPrSlqmnNPOSUY4m342+c0t0evinF5l7sA==} + /i18next@23.11.5: + resolution: {integrity: sha512-41pvpVbW9rhZPk5xjCX2TPJi2861LEig/YRhUkY+1FQ2IQPS0bKUDYnEqY8XPPbB48h1uIwLnP9iiEfuSl20CA==} dependencies: - '@babel/runtime': 7.24.4 + '@babel/runtime': 7.24.5 dev: false /iconv-lite@0.6.3: @@ -4462,6 +4453,7 @@ packages: /inflight@1.0.6: resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==} + deprecated: This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful. dependencies: once: 1.4.0 wrappy: 1.0.2 @@ -4742,8 +4734,8 @@ packages: set-function-name: 2.0.2 dev: true - /jackspeak@2.3.6: - resolution: {integrity: sha512-N3yCS/NegsOBokc8GAdM8UcmfsKiSS8cipheD/nivzr700H+nsMOxJjQnvwOcRYVuFkdH0wGUvW2WbXGmrZGbQ==} + /jackspeak@3.1.2: + resolution: {integrity: sha512-kWmLKn2tRtfYMF/BakihVVRzBKOxz4gJMiL2Rj91WnAB5TPZumSH99R/Yf1qE1u4uRimvCSJfm6hnxohXeEXjQ==} engines: {node: '>=14'} dependencies: '@isaacs/cliui': 8.0.2 @@ -4751,8 +4743,8 @@ packages: '@pkgjs/parseargs': 0.11.0 dev: true - /jake@10.8.7: - resolution: {integrity: sha512-ZDi3aP+fG/LchyBzUM804VjddnwfSfsdeYkwt8NcbKRvo4rFkjhs456iLFn3k2ZUWvNe4i48WACDbza8fhq2+w==} + /jake@10.9.1: + resolution: {integrity: sha512-61btcOHNnLnsOdtLgA5efqQWjnSi/vow5HbI7HMdKKWqvrKR1bLK3BPlJn9gcSaP2ewuamUSMB5XEy76KUIS2w==} engines: {node: '>=10'} hasBin: true dependencies: @@ -4807,7 +4799,7 @@ packages: rrweb-cssom: 0.6.0 saxes: 6.0.0 symbol-tree: 3.2.4 - tough-cookie: 4.1.3 + tough-cookie: 4.1.4 w3c-xmlserializer: 5.0.0 webidl-conversions: 7.0.0 whatwg-encoding: 3.1.1 @@ -4906,15 +4898,15 @@ packages: engines: {node: '>=6'} dev: false - /language-subtag-registry@0.3.22: - resolution: {integrity: sha512-tN0MCzyWnoz/4nHS6uxdlFWoUZT7ABptwKPQ52Ea7URk6vll88bWBVhodtnlfEuCcKWNGoc+uGbw1cwa9IKh/w==} + /language-subtag-registry@0.3.23: + resolution: {integrity: sha512-0K65Lea881pHotoGEa5gDlMxt3pctLi2RplBb7Ezh4rRdLEOtgi7n4EwK9lamnUCkKBqaeKRVebTq6BAxSkpXQ==} dev: true /language-tags@1.0.9: resolution: {integrity: sha512-MbjN408fEndfiQXbFQ1vnd+1NoLDsnQW41410oQBXiyXDMYH5z505juWa4KUE1LqxRC7DgOgZDbKLxHIwm27hA==} engines: {node: '>=0.10'} dependencies: - language-subtag-registry: 0.3.22 + language-subtag-registry: 0.3.23 dev: true /leven@3.1.0: @@ -4948,8 +4940,8 @@ packages: resolution: {integrity: sha512-ok6z3qlYyCDS4ZEU27HaU6x/xZa9Whf8jD4ptH5UZTQYZVYeb9bnZ3ojVhiJNLiXK1Hfc0GNbLXcmZ5plLDDBg==} engines: {node: '>=14'} dependencies: - mlly: 1.6.1 - pkg-types: 1.1.0 + mlly: 1.7.0 + pkg-types: 1.1.1 dev: true /locate-path@6.0.0: @@ -5008,12 +5000,6 @@ packages: dependencies: yallist: 3.1.1 - /lru-cache@6.0.0: - resolution: {integrity: sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==} - engines: {node: '>=10'} - dependencies: - yallist: 4.0.0 - /magic-string@0.25.9: resolution: {integrity: sha512-RmF0AsMzgt25qzqqLc1+MbHmhdx0ojF2Fvs4XnOqz2ZOBXzzkEwc/dJQZCYHAn7v1jbVOjAZfK8msRn4BxO4VQ==} dependencies: @@ -5043,11 +5029,11 @@ packages: engines: {node: '>= 8'} dev: true - /micromatch@4.0.5: - resolution: {integrity: sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==} + /micromatch@4.0.7: + resolution: {integrity: sha512-LPP/3KorzCwBxfeUuZmaR6bG2kdeHSbe0P2tY3FLRU4vYrjYz5hI4QZwV0njUx3jeuKe67YukQ1LSPZBKDqO/Q==} engines: {node: '>=8.6'} dependencies: - braces: 3.0.2 + braces: 3.0.3 picomatch: 2.3.1 dev: true @@ -5055,13 +5041,13 @@ packages: resolution: {integrity: sha512-voUkdd/jHWrG+7NS+mX49Pat+POKdgGW78V7pYMSrTaOjUitR6ySEcAci8hn17Rsx1IMI3+5w41dkADM1J1ZEg==} hasBin: true dependencies: - '@babel/core': 7.24.4 - '@babel/generator': 7.24.4 - '@babel/plugin-syntax-jsx': 7.24.1(@babel/core@7.24.4) - '@babel/plugin-syntax-typescript': 7.24.1(@babel/core@7.24.4) - '@babel/types': 7.24.0 + '@babel/core': 7.24.5 + '@babel/generator': 7.24.5 + '@babel/plugin-syntax-jsx': 7.24.1(@babel/core@7.24.5) + '@babel/plugin-syntax-typescript': 7.24.1(@babel/core@7.24.5) + '@babel/types': 7.24.5 kleur: 4.1.5 - rollup: /@rollup/wasm-node@4.17.2 + rollup: /@rollup/wasm-node@4.18.0 unplugin: 1.10.1 transitivePeerDependencies: - supports-color @@ -5113,17 +5099,17 @@ packages: resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==} dev: true - /minipass@7.0.4: - resolution: {integrity: sha512-jYofLM5Dam9279rdkWzqHozUo4ybjdZmCsDHePy5V/PbBcVMiSZR97gmAy45aqi8CK1lG2ECd356FU86avfwUQ==} + /minipass@7.1.1: + resolution: {integrity: sha512-UZ7eQ+h8ywIRAW1hIEl2AqdwzJucU/Kp59+8kkZeSvafXhZjul247BvIJjEVFVeON6d7lM46XX1HXCduKAS8VA==} engines: {node: '>=16 || 14 >=14.17'} dev: true - /mlly@1.6.1: - resolution: {integrity: sha512-vLgaHvaeunuOXHSmEbZ9izxPx3USsk8KCQ8iC+aTlp5sKRSoZvwhHh5L9VbKSaVC6sJDqbyohIS76E2VmHIPAA==} + /mlly@1.7.0: + resolution: {integrity: sha512-U9SDaXGEREBYQgfejV97coK0UL1r+qnF2SyO9A3qcI8MzKnsIFKHNVEkrDyNncQTKQQumsasmeq84eNMdBfsNQ==} dependencies: acorn: 8.11.3 pathe: 1.1.2 - pkg-types: 1.1.0 + pkg-types: 1.1.1 ufo: 1.5.3 dev: true @@ -5420,12 +5406,12 @@ packages: resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==} dev: true - /path-scurry@1.10.2: - resolution: {integrity: sha512-7xTavNy5RQXnsjANvVvMkEjvloOinkAjv/Z6Ildz9v2RinZ4SBKTWFOVRbaF8p0vpHnyjV/UwNDdKuUv6M5qcA==} - engines: {node: '>=16 || 14 >=14.17'} + /path-scurry@1.11.1: + resolution: {integrity: sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==} + engines: {node: '>=16 || 14 >=14.18'} dependencies: lru-cache: 10.2.2 - minipass: 7.0.4 + minipass: 7.1.1 dev: true /path-type@4.0.0: @@ -5441,8 +5427,8 @@ packages: resolution: {integrity: sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ==} dev: true - /picocolors@1.0.0: - resolution: {integrity: sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==} + /picocolors@1.0.1: + resolution: {integrity: sha512-anP1Z8qwhkbmu7MFP5iTt+wQKXgwzf7zTyGlcdzabySa9vd0Xt392U0rVmz9poOaBj0uHJKyyo9/upk0HrEQew==} /picomatch@2.3.1: resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} @@ -5458,11 +5444,11 @@ packages: engines: {node: '>= 6'} dev: true - /pkg-types@1.1.0: - resolution: {integrity: sha512-/RpmvKdxKf8uILTtoOhAgf30wYbP2Qw+L9p3Rvshx1JZVX+XQNZQFjlbmGHEGIm4CkVPlSn+NXmIM8+9oWQaSA==} + /pkg-types@1.1.1: + resolution: {integrity: sha512-ko14TjmDuQJ14zsotODv7dBlwxKhUKQEhuhmbqo1uCi9BB0Z2alo/wAXg6q1dTR5TyuqYyWhjtfe/Tsh+X28jQ==} dependencies: confbox: 0.1.7 - mlly: 1.6.1 + mlly: 1.7.0 pathe: 1.1.2 dev: true @@ -5517,7 +5503,7 @@ packages: postcss: '>=8.4.31' dependencies: postcss: 8.4.38 - postcss-selector-parser: 6.0.16 + postcss-selector-parser: 6.1.0 dev: true /postcss-rtl@2.0.0(postcss@8.4.38): @@ -5540,8 +5526,8 @@ packages: rtlcss: 4.1.1 dev: true - /postcss-selector-parser@6.0.16: - resolution: {integrity: sha512-A0RVJrX+IUkVZbW3ClroRWurercFhieevHB38sr2+l9eUClMqome3LmEmnhlNy+5Mr2EYN6B2Kaw9wYdd+VHiw==} + /postcss-selector-parser@6.1.0: + resolution: {integrity: sha512-UMz42UD0UY0EApS0ZL9o1XnLhSTtvvvLe5Dc2H2O56fvRZi+KulDyf5ctDhhtYJBGKStV2FL1fy6253cmLgqVQ==} engines: {node: '>=4'} dependencies: cssesc: 3.0.0 @@ -5557,7 +5543,7 @@ packages: engines: {node: ^10 || ^12 || >=14} dependencies: nanoid: 3.3.7 - picocolors: 1.0.0 + picocolors: 1.0.1 source-map-js: 1.2.0 dev: true @@ -5712,21 +5698,19 @@ packages: react-dom: 18.3.1(react@18.3.1) dev: false - /react-helmet-async@2.0.4(react-dom@18.3.1)(react@18.3.1): - resolution: {integrity: sha512-yxjQMWposw+akRfvpl5+8xejl4JtUlHnEBcji6u8/e6oc7ozT+P9PNTWMhCbz2y9tc5zPegw2BvKjQA+NwdEjQ==} + /react-helmet-async@2.0.5(react@18.3.1): + resolution: {integrity: sha512-rYUYHeus+i27MvFE+Jaa4WsyBKGkL6qVgbJvSBoX8mbsWoABJXdEO0bZyi0F6i+4f0NuIb8AvqPMj3iXFHkMwg==} peerDependencies: react: ^16.6.0 || ^17.0.0 || ^18.0.0 - react-dom: ^16.6.0 || ^17.0.0 || ^18.0.0 dependencies: invariant: 2.2.4 react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) react-fast-compare: 3.2.2 shallowequal: 1.1.0 dev: false - /react-i18next@14.1.1(i18next@23.11.2)(react-dom@18.3.1)(react@18.3.1): - resolution: {integrity: sha512-QSiKw+ihzJ/CIeIYWrarCmXJUySHDwQr5y8uaNIkbxoGRm/5DukkxZs+RPla79IKyyDPzC/DRlgQCABHtrQuQQ==} + /react-i18next@14.1.2(i18next@23.11.5)(react-dom@18.3.1)(react@18.3.1): + resolution: {integrity: sha512-FSIcJy6oauJbGEXfhUgVeLzvWBhIBIS+/9c6Lj4niwKZyGaGb4V4vUbATXSlsHJDXXB+ociNxqFNiFuV1gmoqg==} peerDependencies: i18next: '>= 23.2.3' react: '>= 16.8.0' @@ -5738,9 +5722,9 @@ packages: react-native: optional: true dependencies: - '@babel/runtime': 7.24.4 + '@babel/runtime': 7.24.5 html-parse-stringify: 3.0.1 - i18next: 23.11.2 + i18next: 23.11.5 react: 18.3.1 react-dom: 18.3.1(react@18.3.1) dev: false @@ -5761,26 +5745,26 @@ packages: engines: {node: '>=0.10.0'} dev: true - /react-router-dom@6.23.0(react-dom@18.3.1)(react@18.3.1): - resolution: {integrity: sha512-Q9YaSYvubwgbal2c9DJKfx6hTNoBp3iJDsl+Duva/DwxoJH+OTXkxGpql4iUK2sla/8z4RpjAm6EWx1qUDuopQ==} + /react-router-dom@6.23.1(react-dom@18.3.1)(react@18.3.1): + resolution: {integrity: sha512-utP+K+aSTtEdbWpC+4gxhdlPFwuEfDKq8ZrPFU65bbRJY+l706qjR7yaidBpo3MSeA/fzwbXWbKBI6ftOnP3OQ==} engines: {node: '>=14.0.0'} peerDependencies: react: '>=16.8' react-dom: '>=16.8' dependencies: - '@remix-run/router': 1.16.0 + '@remix-run/router': 1.16.1 react: 18.3.1 react-dom: 18.3.1(react@18.3.1) - react-router: 6.23.0(react@18.3.1) + react-router: 6.23.1(react@18.3.1) dev: false - /react-router@6.23.0(react@18.3.1): - resolution: {integrity: sha512-wPMZ8S2TuPadH0sF5irFGjkNLIcRvOSaEe7v+JER8508dyJumm6XZB1u5kztlX0RVq6AzRVndzqcUh6sFIauzA==} + /react-router@6.23.1(react@18.3.1): + resolution: {integrity: sha512-fzcOaRF69uvqbbM7OhvQyBTFDVrrGlsFdS3AL+1KfIBtGETibHzi3FkoTRyiDJnWNc2VxrfvR+657ROHjaNjqQ==} engines: {node: '>=14.0.0'} peerDependencies: react: '>=16.8' dependencies: - '@remix-run/router': 1.16.0 + '@remix-run/router': 1.16.1 react: 18.3.1 dev: false @@ -5866,7 +5850,7 @@ packages: es-abstract: 1.23.3 es-errors: 1.3.0 get-intrinsic: 1.2.4 - globalthis: 1.0.3 + globalthis: 1.0.4 which-builtin-type: 1.1.3 dev: true @@ -5887,7 +5871,7 @@ packages: /regenerator-transform@0.15.2: resolution: {integrity: sha512-hfMp2BoF0qOk3uc5V20ALGDS2ddjQaLrdl7xrGXvAIow7qeWRM2VA2HuCHkUKk9slq3VwEwLNK3DFBqDfPGYtg==} dependencies: - '@babel/runtime': 7.24.4 + '@babel/runtime': 7.24.5 dev: true /regexp.prototype.flags@1.5.2: @@ -5976,7 +5960,7 @@ packages: glob: 7.2.3 dev: true - /rollup-plugin-visualizer@5.12.0(@rollup/wasm-node@4.17.2): + /rollup-plugin-visualizer@5.12.0(@rollup/wasm-node@4.18.0): resolution: {integrity: sha512-8/NU9jXcHRs7Nnj07PF2o4gjxmm9lXIrZ8r175bT9dK8qoLlvKTwRMArRCMgpMGlq8CTLugRvEmyMeMXIU2pNQ==} engines: {node: '>=14'} hasBin: true @@ -5988,7 +5972,7 @@ packages: dependencies: open: 8.4.2 picomatch: 2.3.1 - rollup: /@rollup/wasm-node@4.17.2 + rollup: /@rollup/wasm-node@4.18.0 source-map: 0.7.4 yargs: 17.7.2 dev: true @@ -6000,7 +5984,7 @@ packages: /rtl-css-js@1.16.1: resolution: {integrity: sha512-lRQgou1mu19e+Ya0LsTvKrVJ5TYUbqCVPAiImX3UfLTenarvPUl1QFdvu5Z3PYmHT9RCcwIfbjRQBntExyj3Zg==} dependencies: - '@babel/runtime': 7.24.4 + '@babel/runtime': 7.24.5 dev: false /rtlcss@4.0.0: @@ -6009,7 +5993,7 @@ packages: hasBin: true dependencies: escalade: 3.1.2 - picocolors: 1.0.0 + picocolors: 1.0.1 postcss: 8.4.38 strip-json-comments: 3.1.1 dev: true @@ -6020,7 +6004,7 @@ packages: hasBin: true dependencies: escalade: 3.1.2 - picocolors: 1.0.0 + picocolors: 1.0.1 postcss: 8.4.38 strip-json-comments: 3.1.1 dev: true @@ -6080,12 +6064,10 @@ packages: resolution: {integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==} hasBin: true - /semver@7.6.0: - resolution: {integrity: sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==} + /semver@7.6.2: + resolution: {integrity: sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==} engines: {node: '>=10'} hasBin: true - dependencies: - lru-cache: 6.0.0 /serialize-javascript@6.0.2: resolution: {integrity: sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g==} @@ -6378,7 +6360,7 @@ packages: dependencies: '@jridgewell/gen-mapping': 0.3.5 commander: 4.1.1 - glob: 10.3.12 + glob: 10.3.16 lines-and-columns: 1.2.4 mz: 2.7.0 pirates: 4.0.6 @@ -6455,16 +6437,16 @@ packages: is-glob: 4.0.3 jiti: 1.21.0 lilconfig: 2.1.0 - micromatch: 4.0.5 + micromatch: 4.0.7 normalize-path: 3.0.0 object-hash: 3.0.0 - picocolors: 1.0.0 + picocolors: 1.0.1 postcss: 8.4.38 postcss-import: 15.1.0(postcss@8.4.38) postcss-js: 4.0.1(postcss@8.4.38) postcss-load-config: 4.0.2(postcss@8.4.38) postcss-nested: 6.0.1(postcss@8.4.38) - postcss-selector-parser: 6.0.16 + postcss-selector-parser: 6.1.0 resolve: 1.22.8 sucrase: 3.35.0 transitivePeerDependencies: @@ -6491,8 +6473,8 @@ packages: unique-string: 2.0.0 dev: true - /terser@5.30.4: - resolution: {integrity: sha512-xRdd0v64a8mFK9bnsKVdoNP9GQIKUAaJPTaqEQDL4w/J8WaW4sWXXoMZ+6SimPkfT5bElreXf8m9HnmPc3E1BQ==} + /terser@5.31.0: + resolution: {integrity: sha512-Q1JFAoUKE5IMfI4Z/lkE/E6+SwgzO+x4tq4v1AyBLRj8VSYvRO6A/rQrPg1yud4g0En9EKI1TvFRF2tQFcoUkg==} engines: {node: '>=10'} hasBin: true dependencies: @@ -6556,8 +6538,8 @@ packages: resolution: {integrity: sha512-BiZS+C1OS8g/q2RRbJmy59xpyghNBqrr6k5L/uKBGRsTfxmu3ffiRnd8mlGPUVayg8pvfi5urfnu8TU7DVOkLQ==} dev: false - /tough-cookie@4.1.3: - resolution: {integrity: sha512-aX/y5pVRkfRnfmuX+OdbSdXvPe6ieKX/G2s7e98f4poJHnqH3281gDPm/metm6E/WRamfx7WC4HUqkWHfQHprw==} + /tough-cookie@4.1.4: + resolution: {integrity: sha512-Loo5UUvLD9ScZ6jh8beX1T6sO1w2/MpCRpEP7V280GKMVUQ0Jzar2U3UJPsrdbziLEMMhu3Ujnq//rhiFuIeag==} engines: {node: '>=6'} dependencies: psl: 1.9.0 @@ -6635,8 +6617,8 @@ packages: engines: {node: '>=10'} dev: true - /type-fest@4.17.0: - resolution: {integrity: sha512-9flrz1zkfLRH3jO3bLflmTxryzKMxVa7841VeMgBaNQGY6vH4RCcpN/sQLB7mQQYh1GZ5utT2deypMuCy4yicw==} + /type-fest@4.18.2: + resolution: {integrity: sha512-+suCYpfJLAe4OXS6+PPXjW3urOS4IoP9waSiLuXfLgqZODKw/aWwASvzqE886wA0kQgGy0mIWyhd87VpqIy6Xg==} engines: {node: '>=16'} dev: true @@ -6778,15 +6760,15 @@ packages: engines: {node: '>=4'} dev: true - /update-browserslist-db@1.0.13(browserslist@4.23.0): - resolution: {integrity: sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg==} + /update-browserslist-db@1.0.16(browserslist@4.23.0): + resolution: {integrity: sha512-KVbTxlBYlckhF5wgfyZXTWnMn7MMZjMu9XG8bPlliUOP9ThaF4QnhP8qrjrH7DRzHfSk0oQv1wToW+iA5GajEQ==} hasBin: true peerDependencies: browserslist: '>= 4.21.0' dependencies: browserslist: 4.23.0 escalade: 3.1.2 - picocolors: 1.0.0 + picocolors: 1.0.1 /uri-js@4.4.1: resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} @@ -6813,16 +6795,16 @@ packages: resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==} dev: true - /vite-node@1.5.2(@types/node@20.12.7): - resolution: {integrity: sha512-Y8p91kz9zU+bWtF7HGt6DVw2JbhyuB2RlZix3FPYAYmUyZ3n7iTp8eSyLyY6sxtPegvxQtmlTMhfPhUfCUF93A==} + /vite-node@1.6.0(@types/node@20.12.12): + resolution: {integrity: sha512-de6HJgzC+TFzOu0NTC4RAIsyf/DY/ibWDYQUcuEA84EMHhcefTUGkjFHKKEJhQN4A+6I0u++kr3l36ZF2d7XRw==} engines: {node: ^18.0.0 || >=20.0.0} hasBin: true dependencies: cac: 6.7.14 debug: 4.3.4 pathe: 1.1.2 - picocolors: 1.0.0 - vite: 5.2.10(@types/node@20.12.7) + picocolors: 1.0.1 + vite: 5.2.11(@types/node@20.12.12) transitivePeerDependencies: - '@types/node' - less @@ -6834,7 +6816,7 @@ packages: - terser dev: true - /vite-plugin-checker@0.6.4(eslint@8.57.0)(typescript@5.4.5)(vite@5.2.10): + /vite-plugin-checker@0.6.4(eslint@8.57.0)(typescript@5.4.5)(vite@5.2.11): resolution: {integrity: sha512-2zKHH5oxr+ye43nReRbC2fny1nyARwhxdm0uNYp/ERy4YvU9iZpNOsueoi/luXw5gnpqRSvjcEPxXbS153O2wA==} engines: {node: '>=14.16'} peerDependencies: @@ -6874,26 +6856,26 @@ packages: fast-glob: 3.3.2 fs-extra: 11.2.0 npm-run-path: 4.0.1 - semver: 7.6.0 + semver: 7.6.2 strip-ansi: 6.0.1 tiny-invariant: 1.3.3 typescript: 5.4.5 - vite: 5.2.10(@types/node@20.12.7) + vite: 5.2.11(@types/node@20.12.12) vscode-languageclient: 7.0.0 vscode-languageserver: 7.0.0 vscode-languageserver-textdocument: 1.0.11 vscode-uri: 3.0.8 dev: true - /vite-plugin-package-version@1.1.0(vite@5.2.10): + /vite-plugin-package-version@1.1.0(vite@5.2.11): resolution: {integrity: sha512-TPoFZXNanzcaKCIrC3e2L/TVRkkRLB6l4RPN/S7KbG7rWfyLcCEGsnXvxn6qR7fyZwXalnnSN/I9d6pSFjHpEA==} peerDependencies: vite: '>=2.0.0-beta.69' dependencies: - vite: 5.2.10(@types/node@20.12.7) + vite: 5.2.11(@types/node@20.12.12) dev: true - /vite-plugin-pwa@0.17.5(vite@5.2.10)(workbox-build@7.1.0)(workbox-window@7.1.0): + /vite-plugin-pwa@0.17.5(vite@5.2.11)(workbox-build@7.1.0)(workbox-window@7.1.0): resolution: {integrity: sha512-UxRNPiJBzh4tqU/vc8G2TxmrUTzT6BqvSzhszLk62uKsf+npXdvLxGDz9C675f4BJi6MbD2tPnJhi5txlMzxbQ==} engines: {node: '>=16.0.0'} peerDependencies: @@ -6904,15 +6886,15 @@ packages: debug: 4.3.4 fast-glob: 3.3.2 pretty-bytes: 6.1.1 - vite: 5.2.10(@types/node@20.12.7) + vite: 5.2.11(@types/node@20.12.12) workbox-build: 7.1.0 workbox-window: 7.1.0 transitivePeerDependencies: - supports-color dev: true - /vite-plugin-static-copy@1.0.3(vite@5.2.10): - resolution: {integrity: sha512-hBCCz6T0uNI3oF5oJ/Ju73rhoR+ADrJ2iLAea5+wA7kpQ8clYgY8BD+GL0w0BrqsYCbgBITOByBP/3y9Y+h93A==} + /vite-plugin-static-copy@1.0.5(vite@5.2.11): + resolution: {integrity: sha512-02k0Rox+buYdEOfeilKZSgs1gXfPf9RjVztZEIYZgVIxjsVZi6AXssjzdi+qW6zYt00d3bq+tpP2voVXN2fKLw==} engines: {node: ^18.0.0 || >=20.0.0} peerDependencies: vite: ^5.0.0 @@ -6920,12 +6902,12 @@ packages: chokidar: 3.6.0 fast-glob: 3.3.2 fs-extra: 11.2.0 - picocolors: 1.0.0 - vite: 5.2.10(@types/node@20.12.7) + picocolors: 1.0.1 + vite: 5.2.11(@types/node@20.12.12) dev: true - /vite@5.2.10(@types/node@20.12.7): - resolution: {integrity: sha512-PAzgUZbP7msvQvqdSD+ErD5qGnSFiGOoWmV5yAKUEI0kdhjbH6nMWVyZQC/hSc4aXwc0oJ9aEdIiF9Oje0JFCw==} + /vite@5.2.11(@types/node@20.12.12): + resolution: {integrity: sha512-HndV31LWW05i1BLPMUCE1B9E9GFbOu1MbenhS58FuK6owSO5qHm7GiCotrNY1YE5rMeQSFBGmT5ZaLEjFizgiQ==} engines: {node: ^18.0.0 || >=20.0.0} hasBin: true peerDependencies: @@ -6952,23 +6934,23 @@ packages: terser: optional: true dependencies: - '@types/node': 20.12.7 + '@types/node': 20.12.12 esbuild: 0.20.2 postcss: 8.4.38 - rollup: /@rollup/wasm-node@4.17.2 + rollup: /@rollup/wasm-node@4.18.0 optionalDependencies: fsevents: 2.3.3 dev: true - /vitest@1.5.2(@types/node@20.12.7)(jsdom@23.2.0): - resolution: {integrity: sha512-l9gwIkq16ug3xY7BxHwcBQovLZG75zZL0PlsiYQbf76Rz6QGs54416UWMtC0jXeihvHvcHrf2ROEjkQRVpoZYw==} + /vitest@1.6.0(@types/node@20.12.12)(jsdom@23.2.0): + resolution: {integrity: sha512-H5r/dN06swuFnzNFhq/dnz37bPXnq8xB2xB5JOVk8K09rUtoeNN+LHWkoQ0A/i3hvbUKKcCei9KpbxqHMLhLLA==} engines: {node: ^18.0.0 || >=20.0.0} hasBin: true peerDependencies: '@edge-runtime/vm': '*' '@types/node': ^18.0.0 || >=20.0.0 - '@vitest/browser': 1.5.2 - '@vitest/ui': 1.5.2 + '@vitest/browser': 1.6.0 + '@vitest/ui': 1.6.0 happy-dom: '*' jsdom: '*' peerDependenciesMeta: @@ -6985,12 +6967,12 @@ packages: jsdom: optional: true dependencies: - '@types/node': 20.12.7 - '@vitest/expect': 1.5.2 - '@vitest/runner': 1.5.2 - '@vitest/snapshot': 1.5.2 - '@vitest/spy': 1.5.2 - '@vitest/utils': 1.5.2 + '@types/node': 20.12.12 + '@vitest/expect': 1.6.0 + '@vitest/runner': 1.6.0 + '@vitest/snapshot': 1.6.0 + '@vitest/spy': 1.6.0 + '@vitest/utils': 1.6.0 acorn-walk: 8.3.2 chai: 4.4.1 debug: 4.3.4 @@ -6999,13 +6981,13 @@ packages: local-pkg: 0.5.0 magic-string: 0.30.10 pathe: 1.1.2 - picocolors: 1.0.0 + picocolors: 1.0.1 std-env: 3.7.0 strip-literal: 2.1.0 tinybench: 2.8.0 tinypool: 0.8.4 - vite: 5.2.10(@types/node@20.12.7) - vite-node: 1.5.2(@types/node@20.12.7) + vite: 5.2.11(@types/node@20.12.12) + vite-node: 1.6.0(@types/node@20.12.12) why-is-node-running: 2.2.2 transitivePeerDependencies: - less @@ -7032,7 +7014,7 @@ packages: engines: {vscode: ^1.52.0} dependencies: minimatch: 3.1.2 - semver: 7.6.0 + semver: 7.6.2 vscode-languageserver-protocol: 3.16.0 dev: true @@ -7212,23 +7194,23 @@ packages: resolution: {integrity: sha512-F6R94XAxjB2j4ETMkP1EXKfjECOtDmyvt0vz3BzgWJMI68TNSXIVNkgatwUKBlPGOfy9n2F/4voYRNAhEvPJNg==} engines: {node: '>=16.0.0'} dependencies: - '@apideck/better-ajv-errors': 0.3.6(ajv@8.12.0) - '@babel/core': 7.24.4 - '@babel/preset-env': 7.24.4(@babel/core@7.24.4) - '@babel/runtime': 7.24.4 - '@rollup/plugin-babel': 5.3.1(@babel/core@7.24.4)(@rollup/wasm-node@4.17.2) - '@rollup/plugin-node-resolve': 15.2.3(@rollup/wasm-node@4.17.2) - '@rollup/plugin-replace': 2.4.2(@rollup/wasm-node@4.17.2) - '@rollup/plugin-terser': 0.4.4(@rollup/wasm-node@4.17.2) + '@apideck/better-ajv-errors': 0.3.6(ajv@8.13.0) + '@babel/core': 7.24.5 + '@babel/preset-env': 7.24.5(@babel/core@7.24.5) + '@babel/runtime': 7.24.5 + '@rollup/plugin-babel': 5.3.1(@babel/core@7.24.5)(@rollup/wasm-node@4.18.0) + '@rollup/plugin-node-resolve': 15.2.3(@rollup/wasm-node@4.18.0) + '@rollup/plugin-replace': 2.4.2(@rollup/wasm-node@4.18.0) + '@rollup/plugin-terser': 0.4.4(@rollup/wasm-node@4.18.0) '@surma/rollup-plugin-off-main-thread': 2.2.3 - ajv: 8.12.0 + ajv: 8.13.0 common-tags: 1.8.2 fast-json-stable-stringify: 2.1.0 fs-extra: 9.1.0 glob: 7.2.3 lodash: 4.17.21 pretty-bytes: 5.6.0 - rollup: /@rollup/wasm-node@4.17.2 + rollup: /@rollup/wasm-node@4.18.0 source-map: 0.8.0-beta.0 stringify-object: 3.3.0 strip-comments: 2.0.1 @@ -7393,9 +7375,6 @@ packages: /yallist@3.1.1: resolution: {integrity: sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==} - /yallist@4.0.0: - resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==} - /yaml@2.4.2: resolution: {integrity: sha512-B3VqDZ+JAg1nZpaEmWtTXUlBneoGx6CPM9b0TENK6aoSu5t73dItudwdgmi6tHlIZZId4dZ9skcAQ2UbcyAeVA==} engines: {node: '>= 14'} @@ -7430,7 +7409,7 @@ packages: engines: {node: '>=12.20'} dev: true - /zustand@4.5.2(@types/react@18.3.1)(immer@10.1.1)(react@18.3.1): + /zustand@4.5.2(@types/react@18.3.2)(immer@10.1.1)(react@18.3.1): resolution: {integrity: sha512-2cN1tPkDVkwCy5ickKrI7vijSjPksFRfqS6237NzT0vqSsztTNnQdHw9mmN7uBdk3gceVXU0a+21jFzFzAc9+g==} engines: {node: '>=12.7.0'} peerDependencies: @@ -7445,17 +7424,16 @@ packages: react: optional: true dependencies: - '@types/react': 18.3.1 + '@types/react': 18.3.2 immer: 10.1.1 react: 18.3.1 use-sync-external-store: 1.2.0(react@18.3.1) dev: false - github.com/sussy-code/providers/d1386b3478e0cf5d93171ee7c655a06cebd53063: - resolution: {tarball: https://codeload.github.com/sussy-code/providers/tar.gz/d1386b3478e0cf5d93171ee7c655a06cebd53063} + github.com/sussy-code/providers/9b6eb8417c7e2cd2c4265b7102ac5ed299022a42: + resolution: {tarball: https://codeload.github.com/sussy-code/providers/tar.gz/9b6eb8417c7e2cd2c4265b7102ac5ed299022a42} name: '@movie-web/providers' version: 2.3.0 - prepare: true requiresBuild: true dependencies: cheerio: 1.0.0-rc.12 diff --git a/public/config.js b/public/config.js index d8dfadaed..71347049e 100644 --- a/public/config.js +++ b/public/config.js @@ -1,7 +1,7 @@ window.__CONFIG__ = { // The URL for the CORS proxy, the URL must NOT end with a slash! // If not specified, the onboarding will not allow a "default setup". The user will have to use the extension or set up a proxy themselves - VITE_CORS_PROXY_URL: "https://sudo-proxy.up.railway.app", + VITE_CORS_PROXY_URL: "REPLACE THIS", // The READ API key to access TMDB VITE_TMDB_READ_API_KEY: "eyJhbGciOiJIUzI1NiJ9.eyJhdWQiOiI1NzlkZWYyZDY5ZWFlNDk4ZjJiOTI4MTgyNDdjM2ViMCIsInN1YiI6IjY2MjdmMGJlNjJmMzM1MDE0YmQ4NTFmMiIsInNjb3BlcyI6WyJhcGlfcmVhZCJdLCJ2ZXJzaW9uIjoxfQ.h3KpPvkiaz8uNz1bntAKqsPrxG_4UUWaY3kYME6N6m8", diff --git a/src/assets/README.md b/src/assets/README.md index d3820f45d..5d155e905 100644 --- a/src/assets/README.md +++ b/src/assets/README.md @@ -3,7 +3,7 @@ Locales are difficult, here is some guidance. ## Process on adding new languages -1. Use Weblate to add translations, see contributing guidelines. +1. Use [Weblate](https://weblate.tinypixel.uk/projects/sudo-flix/main) to add translations, see contributing guidelines. 2. Add your language to `@/assets/languages.ts`. Must be in ISO format (ISO-639 for language and ISO-3166 for country/region). For joke languages, use any format. 3. If the language code doesn't have a region specified (Such as in `pt-BR`, `BR` being the region), add a default region in `@/utils/language.ts` at `defaultLanguageCodes` 4. If the language code doesn't contain a region (Such as in `zh-Hant`), add a default country in `@/utils/language.ts` at `countryPriority`. diff --git a/src/assets/languages.ts b/src/assets/languages.ts index a27801aff..d603e221e 100644 --- a/src/assets/languages.ts +++ b/src/assets/languages.ts @@ -3,7 +3,6 @@ import bg from "@/assets/locales/bg.json"; import bn from "@/assets/locales/bn.json"; import ca from "@/assets/locales/ca.json"; import caVl from "@/assets/locales/ca@valencia.json"; -import cat from "@/assets/locales/cat.json"; import cs from "@/assets/locales/cs.json"; import de from "@/assets/locales/de.json"; import el from "@/assets/locales/el.json"; @@ -21,6 +20,7 @@ import id from "@/assets/locales/id.json"; import is from "@/assets/locales/is-IS.json"; import it from "@/assets/locales/it.json"; import ja from "@/assets/locales/ja.json"; +import kitty from "@/assets/locales/kitty.json"; import ko from "@/assets/locales/ko.json"; import lv from "@/assets/locales/lv.json"; import minion from "@/assets/locales/minion.json"; @@ -62,7 +62,7 @@ export const locales = { he, sv, pirate, - cat, + kitty, uwu, minion, lv, diff --git a/src/assets/locales/en.json b/src/assets/locales/en.json index 6e6c4c319..17cc9c93d 100644 --- a/src/assets/locales/en.json +++ b/src/assets/locales/en.json @@ -368,6 +368,7 @@ "customChoice": "Drop or upload file", "customizeLabel": "Customize", "offChoice": "Off", + "OpenSubtitlesChoice": "OpenSubtitles", "settings": { "backlink": "Custom subtitles", "delay": "Subtitle delay", @@ -375,7 +376,9 @@ }, "title": "Subtitles", "unknownLanguage": "Unknown", - "dropSubtitleFile": "Drop subtitle file here! >_<" + "dropSubtitleFile": "Drop subtitle file here! >_<", + "scrapeButton": "Scrape subtitles", + "empty": "There are no provided subtitles for this." } }, "metadata": { @@ -474,7 +477,7 @@ }, "screens": { "dmca": { - "text": "Welcome to sudo-flix's DMCA contact page. If you believe your copyrighted work has been improperly used on our platform (😢), please send a detailed DMCA notice to: dev@sudo-flix.lol below. Please include a description of the copyrighted material, your contact details, and a statement of good faith belief. We're committed to resolving these matters promptly and appreciate your cooperation.", + "text": "Welcome to sudo-flix's DMCA contact page. If you believe your copyrighted work has been improperly used on our platform (😢), please send a detailed DMCA notice to: {{dmca}} below. Please include a description of the copyrighted material, your contact details, and a statement of good faith belief. We're committed to resolving these matters promptly and appreciate your cooperation.", "title": "DMCA :(" }, "loadingApp": "Loading application", diff --git a/src/assets/locales/it.json b/src/assets/locales/it.json index 855fa0fcc..e024b123b 100644 --- a/src/assets/locales/it.json +++ b/src/assets/locales/it.json @@ -1,553 +1,560 @@ { - "about": { - "description": "sudo-flix è un'applicazione web che ricerca dei stream sull'internet. Il team cerca di usare un approccio prevalentemente minimalista per usufruire del contenuto.", - "faqTitle": "Domande comuni", - "q1": { - "body": "sudo-flix non ospita alcun contento. Quando clicci su qualcosa da guardare, sudo-flix cerca l'internet per media di vostra scelta (Sull schermata di caricamento e nell tab 'sorgenti video' si può vedere quale sorgente si sta utilizzando). I media non sono mai caricati da sudo-flix, tutto è attraverso questo meccanismo di ricerca.", - "title": "Da dove arriva il contenuto?" - }, - "q2": { - "body": "Non è possibile richiedere uno show o un film, sudo-flix non gestisce alcun contenuto. Tutti i contenuti sono visualizzati da sorgenti online.", - "title": "Dove posso richiedere una serie o un film?" - }, - "q3": { - "body": "Nostri risultati sono alimentati da «The Movie Database (TMDB)» e visualizzare indipendentemente dal fatto che nostri sorgenti hanno effettivamente il contenuto.", - "title": "I risultati di ricerca mostrano la serie o il film, perché non posso riprodurlo?" - }, - "title": "Su di sudo-flix" - }, - "actions": { - "copied": "Copiato", - "copy": "Copia" - }, - "auth": { - "createAccount": "Non hai ancora un account? <0>Crea un account.", - "deviceNameLabel": "Nome del dispositivo", - "deviceNamePlaceholder": "Telefono personale", - "generate": { - "description": "La tua frase password agisce come il tuo nome utente e password. Assicurati di tenerla al sicuro dato che ti servirà per accedere al tuo account", - "next": "Ho salvato il mio frase password", - "passphraseFrameLabel": "Frase password", - "title": "La tua frase password" - }, - "hasAccount": "Hai già un account? <0>Accedi.", - "login": { - "description": "Inserisci la tua frase password per accedere al vostro account", - "deviceLengthError": "Inserisci un nome per il dispositivo", - "passphraseLabel": "Frase password di 12 parole", - "passphrasePlaceholder": "Frase password", - "submit": "Accedi", - "title": "Accedi al vostro account", - "validationError": "Frase password incompleta o sbagliata" - }, - "register": { - "information": { - "color1": "Colore profilo uno", - "color2": "Colore profilo due", - "header": "Inserisci un nome per il tuo dispositivo e seleziona, un colore e un'icona utente a tua scelta", - "icon": "Icona utente", - "next": "Avanti", - "title": "Informazioni sull'account" - } - }, - "trust": { - "failed": { - "text": "L'avete configurata correttamente?", - "title": "Impossibile raggiungere il server" - }, - "host": "Ti stai collegando a <0>{{hostname}} - conferma la tua fiducia prima di creare un account", - "no": "Indietro", - "noHost": "Il server non è configurato, quindi non si può creare un account", - "noHostTitle": "Server non è configurato!", - "title": "Ti fidi di questo server?", - "yes": "Mi fido di questo server" - }, - "verify": { - "description": "Inserisci il tuo frase password da prima per confermare che è salvato per creare un account", - "invalidData": "I dati non sono validi", - "noMatch": "Frase password non corrisponde", - "passphraseLabel": "La propria frase password di 12 parole", - "recaptchaFailed": "Validazione ReCaptcha fallita", - "register": "Crea account", - "title": "Conferma la propria frase password" - } - }, - "errors": { - "badge": "Si è rotto", - "details": "Dettagli errore", - "reloadPage": "Ricarica la pagina", - "showError": "Mostra dettagli dell'errore", - "title": "Si è verificato un errore!" - }, - "footer": { - "legal": { - "disclaimer": "Disclaimer", - "disclaimerText": "sudo-flix non ospita qualsiasi file, si collega solo a fonti di terze parti. Se avete problemi legali, rivolgetevi ai file host e ai provider. sudo-flix non è responsabile per i file multimediali mostrati dai video provider." - }, - "links": { - "discord": "Discord", - "dmca": "DMCA", - "github": "GitHub" - }, - "tagline": "Guardate i vostri preferiti programmi televisivi e film con questo app di streaming open source." - }, - "global": { - "name": "sudo-flix", - "pages": { - "about": "Su di sudo-flix", - "dmca": "DMCA", - "login": "Accedi", - "onboarding": "Setup", - "pagetitle": "{{title}} - sudo-flix", - "register": "Registrarsi", - "settings": "Impostazioni" - } - }, - "home": { - "bookmarks": { - "sectionTitle": "Segnalibri" - }, - "continueWatching": { - "sectionTitle": "Continua a guardare" - }, - "mediaList": { - "stopEditing": "Smettere di modificare" + "about": { + "description": "sudo-flix è un'applicazione web che ricerca dei stream sull'internet. Il team cerca di usare un approccio prevalentemente minimalista per usufruire del contenuto.", + "faqTitle": "Domande comuni", + "q1": { + "body": "sudo-flix non ospita alcun contento. Quando clicci su qualcosa da guardare, sudo-flix cerca l'internet per media di vostra scelta (Sull schermata di caricamento e nell tab 'sorgenti video' si può vedere quale sorgente si sta utilizzando). I media non sono mai caricati da sudo-flix, tutto è attraverso questo meccanismo di ricerca.", + "title": "Da dove arriva il contenuto?" + }, + "q2": { + "body": "Non è possibile richiedere uno show o un film, sudo-flix non gestisce alcun contenuto. Tutti i contenuti sono visualizzati da sorgenti online.", + "title": "Dove posso richiedere una serie o un film?" + }, + "q3": { + "body": "Nostri risultati sono alimentati da «The Movie Database (TMDB)» e visualizzare indipendentemente dal fatto che nostri sorgenti hanno effettivamente il contenuto.", + "title": "I risultati di ricerca mostrano la serie o il film, perché non posso riprodurlo?" + }, + "title": "Su di sudo-flix", + "q4": { + "title": "E i miei dati?" + } }, - "search": { - "allResults": "È tutto ciò che abbiamo!", - "failed": "Impossibile trovare i media, riprova!", - "loading": "Caricamento...", - "noResults": "Non abbiamo trovato nulla!", - "placeholder": { - "default": "Cosa vuoi guardare?", - "extra": [ - "Cosa vorresti esplorare?", - "Cosa c’è nella tua lista di guardare?", - "Cos’è il vostro preferito film?", - "Cos’è il vostro preferito serie?" - ] - }, - "sectionTitle": "Risultati della ricerca" + "actions": { + "copied": "Copiato", + "copy": "Copia" }, - "titles": { - "day": { - "default": "Cosa vorresti guardare questo pomeriggio?", - "extra": [ - "Senti avventuroso? Jurassic Park potrebbe essere la scelta perfetta." - ] - }, - "morning": { - "default": "Cosa vorresti guardare questa mattina?", - "extra": ["Ho sentito che «Prima Dell'alba» è buono"] - }, - "night": { - "default": "Cosa vorresti guardare questa sera?", - "extra": ["Stanco? Ho sentito che L'esorciccio è buono."] - } - } - }, - "media": { - "episodeDisplay": "S{{season}} E{{episode}}", - "types": { - "movie": "Film", - "show": "Serie" + "auth": { + "createAccount": "Non hai ancora un account? <0>Crea un account.", + "deviceNameLabel": "Nome del dispositivo", + "deviceNamePlaceholder": "Telefono personale", + "generate": { + "description": "La tua frase password agisce come il tuo nome utente e password. Assicurati di tenerla al sicuro dato che ti servirà per accedere al tuo account", + "next": "Ho salvato il mio frase password", + "passphraseFrameLabel": "Frase password", + "title": "La tua frase password" + }, + "hasAccount": "Hai già un account? <0>Accedi.", + "login": { + "description": "Inserisci la tua frase password per accedere al vostro account", + "deviceLengthError": "Inserisci un nome per il dispositivo", + "passphraseLabel": "Frase password di 12 parole", + "passphrasePlaceholder": "Frase password", + "submit": "Accedi", + "title": "Accedi al vostro account", + "validationError": "Frase password incompleta o sbagliata" + }, + "register": { + "information": { + "color1": "Colore profilo uno", + "color2": "Colore profilo due", + "header": "Inserisci un nome per il tuo dispositivo e seleziona, un colore e un'icona utente a tua scelta", + "icon": "Icona utente", + "next": "Avanti", + "title": "Informazioni sull'account" + } + }, + "trust": { + "failed": { + "text": "L'avete configurata correttamente?", + "title": "Impossibile raggiungere il server" + }, + "host": "Ti stai collegando a <0>{{hostname}} - conferma la tua fiducia prima di creare un account", + "no": "Indietro", + "noHost": "Il server non è configurato, quindi non si può creare un account", + "noHostTitle": "Server non è configurato!", + "title": "Ti fidi di questo server?", + "yes": "Mi fido di questo server" + }, + "verify": { + "description": "Inserisci il tuo frase password da prima per confermare che è salvato per creare un account", + "invalidData": "I dati non sono validi", + "noMatch": "Frase password non corrisponde", + "passphraseLabel": "La propria frase password di 12 parole", + "recaptchaFailed": "Validazione ReCaptcha fallita", + "register": "Crea account", + "title": "Conferma la propria frase password" + } }, - "unreleased": "Inedito" - }, - "navigation": { - "banner": { - "offline": "Controlla la tua connessione internet" + "errors": { + "badge": "Si è rotto", + "details": "Dettagli errore", + "reloadPage": "Ricarica la pagina", + "showError": "Mostra dettagli dell'errore", + "title": "Si è verificato un errore!" + }, + "footer": { + "legal": { + "disclaimer": "Disclaimer", + "disclaimerText": "sudo-flix non ospita qualsiasi file, si collega solo a fonti di terze parti. Se avete problemi legali, rivolgetevi ai file host e ai provider. sudo-flix non è responsabile per i file multimediali mostrati dai video provider." + }, + "links": { + "discord": "Discord", + "dmca": "DMCA", + "github": "GitHub" + }, + "tagline": "Guardate i vostri preferiti programmi televisivi e film con questo app di streaming open source." + }, + "global": { + "name": "sudo-flix", + "pages": { + "about": "Su di sudo-flix", + "dmca": "DMCA", + "login": "Accedi", + "onboarding": "Setup", + "pagetitle": "{{title}} - sudo-flix", + "register": "Registrarsi", + "settings": "Impostazioni" + } }, - "menu": { - "about": "Su di sudo-flix", - "logout": "Esci", - "register": "Sincronizzare con il cloud", - "settings": "Impostazioni", - "support": "Impostazioni" - } - }, - "notFound": { - "badge": "Non trovato", - "goHome": "Torna alla pagina iniziale", - "message": "Abbiamo cercato ovunque: sotto i bidoni, nell'armadio, dietro il proxy, ma alla fine non siamo riusciti a trovare la pagina che stai cercando.", - "title": "Impossibile trovare quella pagina" - }, - "onboarding": { - "defaultConfirm": { - "cancel": "Annulla", - "confirm": "Utilizzare setup predefinita", - "description": "Il setup predefinita non offre i migliori stream e può essere incredibilmente lento.", - "title": "Sei sicuro?" + "home": { + "bookmarks": { + "sectionTitle": "Segnalibri" + }, + "continueWatching": { + "sectionTitle": "Continua a guardare" + }, + "mediaList": { + "stopEditing": "Smettere di modificare" + }, + "search": { + "allResults": "È tutto ciò che abbiamo!", + "failed": "Impossibile trovare i media, riprova!", + "loading": "Caricamento...", + "noResults": "Non abbiamo trovato nulla!", + "placeholder": { + "default": "Cosa vuoi guardare?", + "extra": [ + "Cosa vorresti esplorare?", + "Cosa c’è nella tua lista di guardare?", + "Cos’è il vostro preferito film?", + "Cos’è il vostro preferito serie?" + ] + }, + "sectionTitle": "Risultati della ricerca" + }, + "titles": { + "day": { + "default": "Cosa vorresti guardare questo pomeriggio?", + "extra": [ + "Senti avventuroso? Jurassic Park potrebbe essere la scelta perfetta." + ] + }, + "morning": { + "default": "Cosa vorresti guardare questa mattina?", + "extra": [ + "Ho sentito che «Prima Dell'alba» è buono" + ] + }, + "night": { + "default": "Cosa vorresti guardare questa sera?", + "extra": [ + "Stanco? Ho sentito che L'esorciccio è buono." + ] + } + } }, - "extension": { - "back": "Torna indietro", - "explainer": "Utilizzando l'estensione del browser, è possibile ottenere i stream ottimi che abbiamo da offrire. Basta una semplice installazione.", - "explainerIos": "Purtroppo, l'estensione del browser non è supportato su iOS, premere Torna indietro per scegliere un'altra opzione.", - "extensionHelp": "Se avete installato l'estensione ma non viene rilevata. Apri l'estensione attraverso il menu delle estensioni del browser e seguire i passaggi sullo schermo.", - "linkChrome": "Installa l'estensione su Chrome", - "linkFirefox": "Installa l'estensione su Firefox", - "notDetecting": "Installato su Chrome ma il sito non lo rileva? Prova a ricaricare la pagina!", - "notDetectingAction": "Ricarica pagina", - "status": { - "disallowed": "L'estensione non è attivato per questa pagina", - "disallowedAction": "Attiva l'estensione", - "failed": "Richiesta di stato fallita", - "loading": "In attesa di installare l'estensione", - "outdated": "Versione dell'estensione troppo vecchia", - "success": "L'estensione funziona come previsto!" - }, - "submit": "Continua", - "title": "Iniziamo con un'estensione" + "media": { + "episodeDisplay": "S{{season}} E{{episode}}", + "types": { + "movie": "Film", + "show": "Serie" + }, + "unreleased": "Inedito" }, - "proxy": { - "back": "Torna indietro", - "explainer": "Con il metodo proxy, è possibile ottenere stream di qualità ottima creando un proxy self-service.", - "input": { - "errorConnection": "Impossibile connettere al proxy", - "errorInvalidUrl": "URL non valido", - "errorNotProxy": "Avevamo previsto un proxy, ma abbiamo ottenuto un sito web", - "label": "URL proxy", - "placeholder": "https://" - }, - "link": "Impare a creare un proxy", - "submit": "Invia proxy", - "title": "Creiamo un nuovo proxy" + "navigation": { + "banner": { + "offline": "Controlla la tua connessione internet" + }, + "menu": { + "about": "Su di sudo-flix", + "logout": "Esci", + "register": "Sincronizzare con il cloud", + "settings": "Impostazioni", + "support": "Impostazioni" + } }, - "start": { - "explainer": "Per ottenere i migliori streaming possibili, è necessario scegliere il metodo di streaming da utilizzare.", - "options": { - "default": { - "text": "Non voglio stream di buona qualità, <0 /> <1>usa setup predefinita" + "notFound": { + "badge": "Non trovato", + "goHome": "Torna alla pagina iniziale", + "message": "Abbiamo cercato ovunque: sotto i bidoni, nell'armadio, dietro il proxy, ma alla fine non siamo riusciti a trovare la pagina che stai cercando.", + "title": "Impossibile trovare quella pagina" + }, + "onboarding": { + "defaultConfirm": { + "cancel": "Annulla", + "confirm": "Utilizzare setup predefinita", + "description": "Il setup predefinita non offre i migliori stream e può essere incredibilmente lento.", + "title": "Sei sicuro?" }, "extension": { - "action": "Installa l'estensione", - "description": "Installate l'estensione del browser per accedere alle migliori sorgenti.", - "quality": "Migliore qualità", - "title": "Estensione del browser" + "back": "Torna indietro", + "explainer": "Utilizzando l'estensione del browser, è possibile ottenere i stream ottimi che abbiamo da offrire. Basta una semplice installazione.", + "explainerIos": "Purtroppo, l'estensione del browser non è supportato su iOS, premere Torna indietro per scegliere un'altra opzione.", + "extensionHelp": "Se avete installato l'estensione ma non viene rilevata. Apri l'estensione attraverso il menu delle estensioni del browser e seguire i passaggi sullo schermo.", + "linkChrome": "Installa l'estensione su Chrome", + "linkFirefox": "Installa l'estensione su Firefox", + "notDetecting": "Installato su Chrome ma il sito non lo rileva? Prova a ricaricare la pagina!", + "notDetectingAction": "Ricarica pagina", + "status": { + "disallowed": "L'estensione non è attivato per questa pagina", + "disallowedAction": "Attiva l'estensione", + "failed": "Richiesta di stato fallita", + "loading": "In attesa di installare l'estensione", + "outdated": "Versione dell'estensione troppo vecchia", + "success": "L'estensione funziona come previsto!" + }, + "submit": "Continua", + "title": "Iniziamo con un'estensione" }, "proxy": { - "action": "Setup proxy", - "description": "Configurate un proxy in soli 5 minuti e ottenete l'accesso a ottimi fonti.", - "quality": "Buona qualità", - "title": "Proxy personalizzato" + "back": "Torna indietro", + "explainer": "Con il metodo proxy, è possibile ottenere stream di qualità ottima creando un proxy self-service.", + "input": { + "errorConnection": "Impossibile connettere al proxy", + "errorInvalidUrl": "URL non valido", + "errorNotProxy": "Avevamo previsto un proxy, ma abbiamo ottenuto un sito web", + "label": "URL proxy", + "placeholder": "https://" + }, + "link": "Impare a creare un proxy", + "submit": "Invia proxy", + "title": "Creiamo un nuovo proxy" + }, + "start": { + "explainer": "Per ottenere i migliori streaming possibili, è necessario scegliere il metodo di streaming da utilizzare.", + "options": { + "default": { + "text": "Non voglio stream di buona qualità, <0 /> <1>usa setup predefinita" + }, + "extension": { + "action": "Installa l'estensione", + "description": "Installate l'estensione del browser per accedere alle migliori sorgenti.", + "quality": "Migliore qualità", + "title": "Estensione del browser" + }, + "proxy": { + "action": "Setup proxy", + "description": "Configurate un proxy in soli 5 minuti e ottenete l'accesso a ottimi fonti.", + "quality": "Buona qualità", + "title": "Proxy personalizzato" + } + }, + "title": "Configuriamo sudo-flix" } - }, - "title": "Configuriamo sudo-flix" - } - }, - "overlays": { - "close": "Chiudi" - }, - "player": { - "back": { - "default": "Torna alla pagina iniziale", - "short": "Indietro" - }, - "casting": { - "enabled": "Casting al dispositivo.." - }, - "menus": { - "downloads": { - "copyHlsPlaylist": "Copia link HLS playlist", - "disclaimer": "I download vengono effettuati direttamente dal provider. sudo-flix non ha il controllo sulle modalità di fornitura dei download.", - "downloadSubtitle": "Scarica sottotitolo attuale", - "downloadVideo": "Scarica video", - "hlsDisclaimer": "I download vengono effettuati direttamente dal provider. sudo-flix non ha il controllo sul modo in cui i download vengono forniti.

Nota che se state scaricando un playlist HLS, non è raccomandato di scaricare se non si ha familiarità con i formati di streaming avanzati. Prova altri sorgenti per diversi formati.", - "onAndroid": { - "1": "Per scaricare su Android, fai clic sul pulsante di scaricare, e poi nella nuova paggina, toccare e tenere premuto sul video, e selezionare salva.", - "shortTitle": "Scarica / Android", - "title": "Scaricare su Android" - }, - "onIos": { - "1": "Per scaricare su iOS, fai clic sul pulsante di scaricare, e poi nella nuova paggina, fai clic su e poiSalva su FIle .", - "shortTitle": "Scarica / iOS", - "title": "Scaricare su iOS" - }, - "onPc": { - "1": "Sul PC, fare clic sul pulsante di downloa, e poi nella nuova pagina, fai clic destro sul video e selezionare Salva video come", - "shortTitle": "Scarica / PC", - "title": "Scaricare su PC" - }, - "title": "Scarica" - }, - "episodes": { - "button": "Episodi", - "emptyState": "Non ci sono episodi in questa stagione, controlla più tardi!", - "episodeBadge": "E{{episode}}", - "loadingError": "Errore nel caricare la stagione", - "loadingList": "Caricamento...", - "loadingTitle": "Caricamento...", - "unairedEpisodes": "Uno o più episodi di questa stagione sono stati disabilitati perché non sono ancora andati in onda." - }, - "playback": { - "speedLabel": "Velocità di riproduzione", - "title": "Impostazioni di riproduzione" - }, - "quality": { - "automaticLabel": "Qualità automatica", - "hint": "Si può provare <0>cambiare sorgente per prendere diverse opzioni di qualità.", - "iosNoQuality": "A causa delle limitazioni imposti da Apple, la selezione della qualità non è disponibile su iOS per questa sorgente. Si può provare a <0>passare a un'altra sorgente per scegliere opzioni di qualità diverse.", - "title": "Qualità" - }, - "settings": { - "audioItem": "Audio", - "downloadItem": "Scarica", - "enableSubtitles": "Abilita i sottotitoli", - "experienceSection": "Esperienza di visione", - "playbackItem": "Impostazioni di riproduzione", - "qualityItem": "Qualità", - "sourceItem": "Sorgenti video", - "subtitleItem": "Impostazioni sottotitoli", - "videoSection": "Impostazioni video" - }, - "sources": { - "failed": { - "text": "Si è verificato un errore trovare i video, provare con un'altra sorgente.", - "title": "Impossibile raschiare" - }, - "noEmbeds": { - "text": "Non è stato possibile trovare alcun embed, provare con un'altra sorgente.", - "title": "Nessun embed trovato" - }, - "noStream": { - "text": "Questa fonte non ha flussi per questo film o serie.", - "title": "Nessun flusso" - }, - "title": "Sorgenti", - "unknownOption": "Sconosciuto" - }, - "subtitles": { - "customChoice": "Trascina o carica il file", - "customizeLabel": "Personalizzare", - "dropSubtitleFile": "Trascina il file dei sottotitoli qui", - "offChoice": "Spento", - "settings": { - "backlink": "Sottotitoli personalizzati", - "delay": "Ritardo del sottotitolo", - "fixCapitals": "Correggere la capitalizzazione" - }, - "title": "Sottotitoli", - "unknownLanguage": "Sconosciuto" - } - }, - "metadata": { - "api": { - "text": "Impossibile caricare metadati API, verifica la connessione internet.", - "title": "Impossibile caricare metadati API" - }, - "dmca": { - "badge": "Rimosso", - "text": "Questa media non è più disponibile a causa di un notizia takedown o un rivendicazione di copyright.", - "title": "I media sono stati rimossi" - }, - "extensionPermission": { - "badge": "Permesso mancato", - "button": "Usa l'estensione", - "text": "Avete l'estensione del browser, ma serve il vostro permesso per iniziare usare l'estensione.", - "title": "Configura l'estensione" - }, - "failed": { - "badge": "Fallito", - "homeButton": "Vai alla pagina iniziale", - "text": "Impossibile caricare i metadati da TMDB. Verifica che TMDB è offline o bloccato sulla propria connessione Internet.", - "title": "Impossibile caricare i metadati" - }, - "notFound": { - "badge": "Non trovato", - "homeButton": "Torna alla pagina iniziale", - "text": "Non siamo riusciti a trovare il media richiesto. È stato rimosso o hai manomesso l'URL.", - "title": "Impossibile trovare quel media." - } - }, - "nextEpisode": { - "cancel": "Cancella", - "next": "Prossimo episodio" - }, - "playbackError": { - "badge": "Errore di riproduzione", - "errors": { - "errorAborted": "Il recupero del media è stato interrotto dalla richiesta dell'utente.", - "errorDecode": "Nonostante sia stato precedentemente stabilito che è utilizzabile, si è verificato un errore decodifica della risorsa multimediale, con conseguente errore.", - "errorGenericMedia": "Errore multimediale sconosciuto si è verificato.", - "errorNetwork": "Si è verificato un errore di rete che ha impedito il recupero del supporto, nonostante fosse precedentemente disponibile.", - "errorNotSupported": "L'oggetto media o media provider non è supportato." - }, - "homeButton": "Torna a pagina iniziale", - "text": "Si è verificato un errore cercando di riprodurre i media. Riprova.", - "title": "Impossibile riprodurre il video!" - }, - "scraping": { - "extensionFailure": { - "badge": "L'estensione è disabilitata", - "enableExtension": "Abilita l'estensione", - "homeButton": "Torna alla pagina iniziale", - "text": "Avete installato l'estensione sudo-flix. Per iniziare a usarla, è necessario abilitare l'estensione per questo sito.", - "title": "Abilita l'estensione" - }, - "items": { - "failure": "Si è verificato un errore", - "notFound": "Non ha il video", - "pending": "Controllo per video..." - }, - "notFound": { - "badge": "Non trovato", - "detailsButton": "Mostra i dettagli", - "homeButton": "Torna a pagina iniziale", - "text": "Abbiamo cercato tra i nostri fornitori e non abbiamo trovato i media che state cercando! Non ospitiamo i media e non abbiamo alcun controllo su ciò che è disponibile. Per maggiori dettagli, fare clic su \"Mostra i dettagli\" qui sotto.", - "title": "Non siamo riusciti a trovare quello" - } }, - "time": { - "regular": "{{timeWatched}} / {{duration}}", - "remaining": "{{timeLeft}} rimasto • Finisce a {{timeFinished, datetime}}", - "shortRegular": "{{timeWatched}}", - "shortRemaining": "-{{timeLeft}}" + "overlays": { + "close": "Chiudi" }, - "turnstile": { - "description": "Verifica che siate umani completando il Captcha sulla destra. Questo serve a mantenere sudo-flix sicuro!", - "error": "Impossibile verificare la vostra umanità. Riprova.", - "title": "Dobbiamo verificare che lei sia umano.", - "verifyingHumanity": "Verificare la vostra umanità..." - } - }, - "screens": { - "dmca": { - "text": "Benvenuti nella pagina di contatto DMCA di sudo-flix! Rispettiamo i diritti di proprietà intellettuale e vogliamo risolvere rapidamente qualsiasi problema di copyright. Se ritenete che il vostro lavoro protetto da copyright sia stato utilizzato in modo improprio sulla nostra piattaforma, inviate una notizia DMCA all'indirizzo e-mail indicato di seguito. Dovresti includere una descrizione del materiale protetto da copyright, i propri dati di contatto e una dichiarazione di buona fede. Ci impegniamo a risolvere tempestivamente questi problemi e apprezziamo la vostra collaborazione per mantenere sudo-flix un luogo che rispetta la creatività e i diritti d'autore.", - "title": "DMCA" - }, - "loadingApp": "Caricamento dell'applicazione", - "loadingUser": "Caricamento del vostro profilo", - "loadingUserError": { - "logout": "Esci", - "reset": "Ripristino del server personalizzato", - "text": "Impossibile caricare il vostro profilo", - "textWithReset": "Impossibile caricare il vostro profile dal server personalizzato, vorresti ripristinare il server predefinito?" - }, - "migration": { - "failed": "Impossible migrare i propri dati.", - "inProgress": "Attendere, stiamo migrando i propri dati." - } - }, - "settings": { - "account": { - "accountDetails": { - "deviceNameLabel": "Nome del dispositivo", - "deviceNamePlaceholder": "Telefono personale", - "editProfile": "Modifica", - "logoutButton": "Esci" - }, - "actions": { - "delete": { - "button": "Eliminare l'account", - "confirmButton": "Eliminare l'account", - "confirmDescription": "Sei sicuro che vuoi eliminare il vostro account? Tutti i dati andranno persi!", - "confirmTitle": "Sei sicuro?", - "text": "Questa azione è irreversibile. Tutti i propri dati verranno eliminati e non sarà possibile recuperare nulla.", - "title": "Eliminare l'account" - }, - "title": "Azioni" - }, - "devices": { - "deviceNameLabel": "Nome dispositivo", - "failed": "Impossibile caricare sessioni", - "removeDevice": "Rimuovi", - "title": "Dispositivi" - }, - "profile": { - "finish": "Finire di modificare", - "firstColor": "Colore del profilo uno", - "secondColor": "Colore del profilo due", - "title": "Modifica l'immagine del profilo", - "userIcon": "Icona utente" - }, - "register": { - "cta": "Inizia", - "text": "Condividete i progressi di film o serie tra i dispositivi e manteneteli sincronizzati.", - "title": "Sincronizzazione con il cloud" - }, - "title": "Account" - }, - "appearance": { - "activeTheme": "Attivo", - "themes": { - "blue": "Blu", - "default": "Predefinito", - "gray": "Grigio", - "red": "Rosso", - "teal": "Verde acqua" - }, - "title": "Aspetto" - }, - "connections": { - "server": { - "description": "Se si desideri connettersi a un backend personalizzato per memorizzare i dati, attivare questo e fornire l'URL. <0>Istruzioni.", - "label": "Server personalizzato", - "urlLabel": "URL del server personalizzato" - }, - "setup": { - "doSetup": "Fare setup", - "errorStatus": { - "description": "Sembra che uno o più articoli in questo setup serve la vostra attenzione.", - "title": "Qualcosa serve la vostra attenzione" - }, - "itemError": "C'è un errore in questo setup. Eseguire nuovamente il setup per correggerlo.", - "items": { - "default": "Setup predefinita", - "extension": "Estensione", - "proxy": "Proxy personalizzato" - }, - "redoSetup": "Rifare setup", - "successStatus": { - "description": "Tutto è pronto per iniziare a guardare i vostri media preferiti.", - "title": "Tutto è setup!" - }, - "unsetStatus": { - "description": "Fare clic sul pulsante a destra per avviare il setup.", - "title": "Non l'avete completato il setup" + "player": { + "back": { + "default": "Torna alla pagina iniziale", + "short": "Indietro" + }, + "casting": { + "enabled": "Casting al dispositivo.." + }, + "menus": { + "downloads": { + "copyHlsPlaylist": "Copia link HLS playlist", + "disclaimer": "I download vengono effettuati direttamente dal provider. sudo-flix non ha il controllo sulle modalità di fornitura dei download.", + "downloadSubtitle": "Scarica sottotitolo attuale", + "downloadVideo": "Scarica video", + "hlsDisclaimer": "I download vengono effettuati direttamente dal provider. sudo-flix non ha il controllo sul modo in cui i download vengono forniti.

Nota che se state scaricando un playlist HLS, non è raccomandato di scaricare se non si ha familiarità con i formati di streaming avanzati. Prova altri sorgenti per diversi formati.", + "onAndroid": { + "1": "Per scaricare su Android, fai clic sul pulsante di scaricare, e poi nella nuova paggina, toccare e tenere premuto sul video, e selezionare salva.", + "shortTitle": "Scarica / Android", + "title": "Scaricare su Android" + }, + "onIos": { + "1": "Per scaricare su iOS, fai clic sul pulsante di scaricare, e poi nella nuova paggina, fai clic su e poiSalva su FIle .", + "shortTitle": "Scarica / iOS", + "title": "Scaricare su iOS" + }, + "onPc": { + "1": "Sul PC, fare clic sul pulsante di downloa, e poi nella nuova pagina, fai clic destro sul video e selezionare Salva video come", + "shortTitle": "Scarica / PC", + "title": "Scaricare su PC" + }, + "title": "Scarica" + }, + "episodes": { + "button": "Episodi", + "emptyState": "Non ci sono episodi in questa stagione, controlla più tardi!", + "episodeBadge": "E{{episode}}", + "loadingError": "Errore nel caricare la stagione", + "loadingList": "Caricamento...", + "loadingTitle": "Caricamento...", + "unairedEpisodes": "Uno o più episodi di questa stagione sono stati disabilitati perché non sono ancora andati in onda." + }, + "playback": { + "speedLabel": "Velocità di riproduzione", + "title": "Impostazioni di riproduzione" + }, + "quality": { + "automaticLabel": "Qualità automatica", + "hint": "Si può provare <0>cambiare sorgente per prendere diverse opzioni di qualità.", + "iosNoQuality": "A causa delle limitazioni imposti da Apple, la selezione della qualità non è disponibile su iOS per questa sorgente. Si può provare a <0>passare a un'altra sorgente per scegliere opzioni di qualità diverse.", + "title": "Qualità" + }, + "settings": { + "audioItem": "Audio", + "downloadItem": "Scarica", + "enableSubtitles": "Abilita i sottotitoli", + "experienceSection": "Esperienza di visione", + "playbackItem": "Impostazioni di riproduzione", + "qualityItem": "Qualità", + "sourceItem": "Sorgenti video", + "subtitleItem": "Impostazioni sottotitoli", + "videoSection": "Impostazioni video" + }, + "sources": { + "failed": { + "text": "Si è verificato un errore trovare i video, provare con un'altra sorgente.", + "title": "Impossibile raschiare" + }, + "noEmbeds": { + "text": "Non è stato possibile trovare alcun embed, provare con un'altra sorgente.", + "title": "Nessun embed trovato" + }, + "noStream": { + "text": "Questa fonte non ha flussi per questo film o serie.", + "title": "Nessun flusso" + }, + "title": "Sorgenti", + "unknownOption": "Sconosciuto" + }, + "subtitles": { + "customChoice": "Trascina o carica il file", + "customizeLabel": "Personalizzare", + "dropSubtitleFile": "Trascina il file dei sottotitoli qui", + "offChoice": "Spento", + "settings": { + "backlink": "Sottotitoli personalizzati", + "delay": "Ritardo del sottotitolo", + "fixCapitals": "Correggere la capitalizzazione" + }, + "title": "Sottotitoli", + "unknownLanguage": "Sconosciuto" + } + }, + "metadata": { + "api": { + "text": "Impossibile caricare metadati API, verifica la connessione internet.", + "title": "Impossibile caricare metadati API" + }, + "dmca": { + "badge": "Rimosso", + "text": "Questa media non è più disponibile a causa di un notizia takedown o un rivendicazione di copyright.", + "title": "I media sono stati rimossi" + }, + "extensionPermission": { + "badge": "Permesso mancato", + "button": "Usa l'estensione", + "text": "Avete l'estensione del browser, ma serve il vostro permesso per iniziare usare l'estensione.", + "title": "Configura l'estensione" + }, + "failed": { + "badge": "Fallito", + "homeButton": "Vai alla pagina iniziale", + "text": "Impossibile caricare i metadati da TMDB. Verifica che TMDB è offline o bloccato sulla propria connessione Internet.", + "title": "Impossibile caricare i metadati" + }, + "notFound": { + "badge": "Non trovato", + "homeButton": "Torna alla pagina iniziale", + "text": "Non siamo riusciti a trovare il media richiesto. È stato rimosso o hai manomesso l'URL.", + "title": "Impossibile trovare quel media." + } + }, + "nextEpisode": { + "cancel": "Cancella", + "next": "Prossimo episodio" + }, + "playbackError": { + "badge": "Errore di riproduzione", + "errors": { + "errorAborted": "Il recupero del media è stato interrotto dalla richiesta dell'utente.", + "errorDecode": "Nonostante sia stato precedentemente stabilito che è utilizzabile, si è verificato un errore decodifica della risorsa multimediale, con conseguente errore.", + "errorGenericMedia": "Errore multimediale sconosciuto si è verificato.", + "errorNetwork": "Si è verificato un errore di rete che ha impedito il recupero del supporto, nonostante fosse precedentemente disponibile.", + "errorNotSupported": "L'oggetto media o media provider non è supportato." + }, + "homeButton": "Torna a pagina iniziale", + "text": "Si è verificato un errore cercando di riprodurre i media. Riprova.", + "title": "Impossibile riprodurre il video!" + }, + "scraping": { + "extensionFailure": { + "badge": "L'estensione è disabilitata", + "enableExtension": "Abilita l'estensione", + "homeButton": "Torna alla pagina iniziale", + "text": "Avete installato l'estensione sudo-flix. Per iniziare a usarla, è necessario abilitare l'estensione per questo sito.", + "title": "Abilita l'estensione" + }, + "items": { + "failure": "Si è verificato un errore", + "notFound": "Non ha il video", + "pending": "Controllo per video..." + }, + "notFound": { + "badge": "Non trovato", + "detailsButton": "Mostra i dettagli", + "homeButton": "Torna a pagina iniziale", + "text": "Abbiamo cercato tra i nostri fornitori e non abbiamo trovato i media che state cercando! Non ospitiamo i media e non abbiamo alcun controllo su ciò che è disponibile. Per maggiori dettagli, fare clic su \"Mostra i dettagli\" qui sotto.", + "title": "Non siamo riusciti a trovare quello" + } + }, + "time": { + "regular": "{{timeWatched}} / {{duration}}", + "remaining": "{{timeLeft}} rimasto • Finisce a {{timeFinished, datetime}}", + "shortRegular": "{{timeWatched}}", + "shortRemaining": "-{{timeLeft}}" + }, + "turnstile": { + "description": "Verifica che siate umani completando il Captcha sulla destra. Questo serve a mantenere sudo-flix sicuro!", + "error": "Impossibile verificare la vostra umanità. Riprova.", + "title": "Dobbiamo verificare che lei sia umano.", + "verifyingHumanity": "Verificare la vostra umanità..." } - }, - "title": "Connessioni", - "workers": { - "addButton": "Aggiungere un nuovo lavoratore", - "description": "Per far funzionare l'applicazione, tutto il traffico viene instradato attraverso i proxy. Abilitare questa opzione se si desidera portare i propri lavoratori. <0>Istruzioni.", - "emptyState": "Non ci sono ancora lavoratori, aggiungetene uno sotto", - "label": "Utilizzare proxy worker personalizzati", - "urlLabel": "URL dei lavoratori", - "urlPlaceholder": "https://" - } - }, - "preferences": { - "language": "Lingua di applicazione", - "languageDescription": "Lingua applicato all'intera applicazione.", - "thumbnail": "Generare miniature", - "thumbnailDescription": "Nella maggior parte dei casi, i video non hanno miniature. È possibile attivare questa impostazione per generarle quando è necessario, ma possono rendere il video più lento.", - "thumbnailLabel": "Generare miniature", - "title": "Preferenze" }, - "reset": "Reset", - "save": "Salva", - "sidebar": { - "info": { - "appVersion": "Versione dell'app", - "backendUrl": "URL backend", - "backendVersion": "Versione backend", - "hostname": "Hostname", - "insecure": "Insicuro", - "notLoggedIn": "Non sei connesso", - "secure": "Sicuro", - "title": "Informazioni dell'app", - "unknownVersion": "Sconosciuto", - "userId": "ID utente" - } - }, - "subtitles": { - "backgroundBlurLabel": "Sfocatura di sfondo", - "backgroundLabel": "Opacità di sfondo", - "colorLabel": "Colore", - "previewQuote": "Cantami o Diva del pelide Achille l'ira funesta.", - "textSizeLabel": "Dimensione testo", - "title": "Sottotitoli" + "screens": { + "dmca": { + "text": "Benvenuti nella pagina di contatto DMCA di sudo-flix! Rispettiamo i diritti di proprietà intellettuale e vogliamo risolvere rapidamente qualsiasi problema di copyright. Se ritenete che il vostro lavoro protetto da copyright sia stato utilizzato in modo improprio sulla nostra piattaforma, inviate una notizia DMCA all'indirizzo e-mail indicato di seguito. Dovresti includere una descrizione del materiale protetto da copyright, i propri dati di contatto e una dichiarazione di buona fede. Ci impegniamo a risolvere tempestivamente questi problemi e apprezziamo la vostra collaborazione per mantenere sudo-flix un luogo che rispetta la creatività e i diritti d'autore.", + "title": "DMCA" + }, + "loadingApp": "Caricamento dell'applicazione", + "loadingUser": "Caricamento del vostro profilo", + "loadingUserError": { + "logout": "Esci", + "reset": "Ripristino del server personalizzato", + "text": "Impossibile caricare il vostro profilo", + "textWithReset": "Impossibile caricare il vostro profile dal server personalizzato, vorresti ripristinare il server predefinito?" + }, + "migration": { + "failed": "Impossible migrare i propri dati.", + "inProgress": "Attendere, stiamo migrando i propri dati." + } }, - "unsaved": "Le modifiche non sono state salvate" - } + "settings": { + "account": { + "accountDetails": { + "deviceNameLabel": "Nome del dispositivo", + "deviceNamePlaceholder": "Telefono personale", + "editProfile": "Modifica", + "logoutButton": "Esci" + }, + "actions": { + "delete": { + "button": "Eliminare l'account", + "confirmButton": "Eliminare l'account", + "confirmDescription": "Sei sicuro che vuoi eliminare il vostro account? Tutti i dati andranno persi!", + "confirmTitle": "Sei sicuro?", + "text": "Questa azione è irreversibile. Tutti i propri dati verranno eliminati e non sarà possibile recuperare nulla.", + "title": "Eliminare l'account" + }, + "title": "Azioni" + }, + "devices": { + "deviceNameLabel": "Nome dispositivo", + "failed": "Impossibile caricare sessioni", + "removeDevice": "Rimuovi", + "title": "Dispositivi" + }, + "profile": { + "finish": "Finire di modificare", + "firstColor": "Colore del profilo uno", + "secondColor": "Colore del profilo due", + "title": "Modifica l'immagine del profilo", + "userIcon": "Icona utente" + }, + "register": { + "cta": "Inizia", + "text": "Condividete i progressi di film o serie tra i dispositivi e manteneteli sincronizzati.", + "title": "Sincronizzazione con il cloud" + }, + "title": "Account" + }, + "appearance": { + "activeTheme": "Attivo", + "themes": { + "blue": "Blu", + "default": "Predefinito", + "gray": "Grigio", + "red": "Rosso", + "teal": "Verde acqua" + }, + "title": "Aspetto" + }, + "connections": { + "server": { + "description": "Se si desideri connettersi a un backend personalizzato per memorizzare i dati, attivare questo e fornire l'URL. <0>Istruzioni.", + "label": "Server personalizzato", + "urlLabel": "URL del server personalizzato" + }, + "setup": { + "doSetup": "Fare setup", + "errorStatus": { + "description": "Sembra che uno o più articoli in questo setup serve la vostra attenzione.", + "title": "Qualcosa serve la vostra attenzione" + }, + "itemError": "C'è un errore in questo setup. Eseguire nuovamente il setup per correggerlo.", + "items": { + "default": "Setup predefinita", + "extension": "Estensione", + "proxy": "Proxy personalizzato" + }, + "redoSetup": "Rifare setup", + "successStatus": { + "description": "Tutto è pronto per iniziare a guardare i vostri media preferiti.", + "title": "Tutto è setup!" + }, + "unsetStatus": { + "description": "Fare clic sul pulsante a destra per avviare il setup.", + "title": "Non l'avete completato il setup" + } + }, + "title": "Connessioni", + "workers": { + "addButton": "Aggiungere un nuovo lavoratore", + "description": "Per far funzionare l'applicazione, tutto il traffico viene instradato attraverso i proxy. Abilitare questa opzione se si desidera portare i propri lavoratori. <0>Istruzioni.", + "emptyState": "Non ci sono ancora lavoratori, aggiungetene uno sotto", + "label": "Utilizzare proxy worker personalizzati", + "urlLabel": "URL dei lavoratori", + "urlPlaceholder": "https://" + } + }, + "preferences": { + "language": "Lingua di applicazione", + "languageDescription": "Lingua applicato all'intera applicazione.", + "thumbnail": "Generare miniature", + "thumbnailDescription": "Nella maggior parte dei casi, i video non hanno miniature. È possibile attivare questa impostazione per generarle quando è necessario, ma possono rendere il video più lento.", + "thumbnailLabel": "Generare miniature", + "title": "Preferenze" + }, + "reset": "Reset", + "save": "Salva", + "sidebar": { + "info": { + "appVersion": "Versione dell'app", + "backendUrl": "URL backend", + "backendVersion": "Versione backend", + "hostname": "Hostname", + "insecure": "Insicuro", + "notLoggedIn": "Non sei connesso", + "secure": "Sicuro", + "title": "Informazioni dell'app", + "unknownVersion": "Sconosciuto", + "userId": "ID utente" + } + }, + "subtitles": { + "backgroundBlurLabel": "Sfocatura di sfondo", + "backgroundLabel": "Opacità di sfondo", + "colorLabel": "Colore", + "previewQuote": "Cantami o Diva del pelide Achille l'ira funesta.", + "textSizeLabel": "Dimensione testo", + "title": "Sottotitoli" + }, + "unsaved": "Le modifiche non sono state salvate" + } } diff --git a/src/assets/locales/cat.json b/src/assets/locales/kitty.json similarity index 100% rename from src/assets/locales/cat.json rename to src/assets/locales/kitty.json diff --git a/src/components/Icon.tsx b/src/components/Icon.tsx index dbbcf9a87..51bd0de66 100644 --- a/src/components/Icon.tsx +++ b/src/components/Icon.tsx @@ -65,6 +65,7 @@ export enum Icons { CIRCLE_QUESTION = "circle_question", BRUSH = "brush", UPLOAD = "upload", + WEB = "web", } export interface IconProps { @@ -136,6 +137,18 @@ const iconList: Record = { circle_question: ``, brush: ``, upload: ``, + web: ` + + + + + + + + + + + `, }; function ChromeCastButton() { diff --git a/src/components/player/atoms/Settings.tsx b/src/components/player/atoms/Settings.tsx index 5900df447..b3eb2a594 100644 --- a/src/components/player/atoms/Settings.tsx +++ b/src/components/player/atoms/Settings.tsx @@ -18,6 +18,7 @@ import { AudioView } from "./settings/AudioView"; import { CaptionSettingsView } from "./settings/CaptionSettingsView"; import { CaptionsView } from "./settings/CaptionsView"; import { DownloadRoutes } from "./settings/Downloads"; +import { OpenSubtitlesCaptionView } from "./settings/Opensubtitles"; import { PlaybackSettingsView } from "./settings/PlaybackSettingsView"; import { QualityView } from "./settings/QualityView"; import { SettingsMenu } from "./settings/SettingsMenu"; @@ -57,6 +58,16 @@ function SettingsOverlay({ id }: { id: string }) { + + + + + diff --git a/src/components/player/atoms/settings/CaptionsView.tsx b/src/components/player/atoms/settings/CaptionsView.tsx index 3a7a7def4..709ad067d 100644 --- a/src/components/player/atoms/settings/CaptionsView.tsx +++ b/src/components/player/atoms/settings/CaptionsView.tsx @@ -29,6 +29,7 @@ export function CaptionOption(props: { loading?: boolean; onClick?: () => void; error?: React.ReactNode; + chevron?: boolean; }) { return ( { - const input = subs.map((t) => ({ - ...t, - languageName: - getPrettyLanguageNameFromLocale(t.language) ?? unknownChoice, - })); + const input = subs + .map((t) => ({ + ...t, + languageName: + getPrettyLanguageNameFromLocale(t.language) ?? unknownChoice, + })) + .filter((x) => !x.opensubtitles); const sorted = sortLangCodes(input.map((t) => t.language)); let results = input.sort((a, b) => { return sorted.indexOf(a.language) - sorted.indexOf(b.language); @@ -231,8 +235,15 @@ export function CaptionsView({ id }: { id: string }) { }} onDrop={(event) => onDrop(event)} > -
+
+
- {content} + {content.length === 0 ? ( +
+
+ {t("player.menus.subtitles.empty")} + +
+
+ ) : ( + content + )}
diff --git a/src/components/player/atoms/settings/Opensubtitles.tsx b/src/components/player/atoms/settings/Opensubtitles.tsx new file mode 100644 index 000000000..b4dd2b1be --- /dev/null +++ b/src/components/player/atoms/settings/Opensubtitles.tsx @@ -0,0 +1,141 @@ +import Fuse from "fuse.js"; +import { useMemo, useState } from "react"; +import { useTranslation } from "react-i18next"; +import { useAsyncFn } from "react-use"; + +import { FlagIcon } from "@/components/FlagIcon"; +import { useCaptions } from "@/components/player/hooks/useCaptions"; +import { Menu } from "@/components/player/internals/ContextMenu"; +import { Input } from "@/components/player/internals/ContextMenu/Input"; +import { SelectableLink } from "@/components/player/internals/ContextMenu/Links"; +import { useOverlayRouter } from "@/hooks/useOverlayRouter"; +import { CaptionListItem } from "@/stores/player/slices/source"; +import { usePlayerStore } from "@/stores/player/store"; +import { + getPrettyLanguageNameFromLocale, + sortLangCodes, +} from "@/utils/language"; + +export function CaptionOption(props: { + countryCode?: string; + children: React.ReactNode; + selected?: boolean; + loading?: boolean; + onClick?: () => void; + error?: React.ReactNode; +}) { + return ( + + + + + + {props.children} + + + ); +} + +function useSubtitleList(subs: CaptionListItem[], searchQuery: string) { + const { t: translate } = useTranslation(); + const unknownChoice = translate("player.menus.subtitles.unknownLanguage"); + return useMemo(() => { + const input = subs + .map((t) => ({ + ...t, + languageName: + getPrettyLanguageNameFromLocale(t.language) ?? unknownChoice, + })) + .filter((x) => x.opensubtitles); + const sorted = sortLangCodes(input.map((t) => t.language)); + let results = input.sort((a, b) => { + return sorted.indexOf(a.language) - sorted.indexOf(b.language); + }); + + if (searchQuery.trim().length > 0) { + const fuse = new Fuse(input, { + includeScore: true, + keys: ["languageName"], + }); + + results = fuse.search(searchQuery).map((res) => res.item); + } + + return results; + }, [subs, searchQuery, unknownChoice]); +} + +export function OpenSubtitlesCaptionView({ id }: { id: string }) { + const { t } = useTranslation(); + const router = useOverlayRouter(id); + const selectedCaptionId = usePlayerStore((s) => s.caption.selected?.id); + const [currentlyDownloading, setCurrentlyDownloading] = useState< + string | null + >(null); + const { selectCaptionById } = useCaptions(); + const captionList = usePlayerStore((s) => s.captionList); + const getHlsCaptionList = usePlayerStore((s) => s.display?.getCaptionList); + + const captions = useMemo( + () => + captionList.length !== 0 ? captionList : getHlsCaptionList?.() ?? [], + [captionList, getHlsCaptionList], + ); + + const [searchQuery, setSearchQuery] = useState(""); + const subtitleList = useSubtitleList(captions, searchQuery); + + const [downloadReq, startDownload] = useAsyncFn( + async (captionId: string) => { + setCurrentlyDownloading(captionId); + return selectCaptionById(captionId); + }, + [selectCaptionById, setCurrentlyDownloading], + ); + + const content = subtitleList.map((v) => { + return ( + startDownload(v.id)} + > + {v.languageName} + + ); + }); + + return ( + <> +
+ router.navigate("/captions")}> + {t("player.menus.subtitles.OpenSubtitlesChoice")} + +
+
+ +
+ + {content} + + + ); +} + +export default OpenSubtitlesCaptionView; diff --git a/src/components/player/hooks/useCaptions.ts b/src/components/player/hooks/useCaptions.ts index 4bbdae4fc..521840586 100644 --- a/src/components/player/hooks/useCaptions.ts +++ b/src/components/player/hooks/useCaptions.ts @@ -19,6 +19,7 @@ export function useCaptions() { ); const setCaption = usePlayerStore((s) => s.setCaption); const lastSelectedLanguage = useSubtitleStore((s) => s.lastSelectedLanguage); + const setIsOpenSubtitles = useSubtitleStore((s) => s.setIsOpenSubtitles); const captionList = usePlayerStore((s) => s.captionList); const getHlsCaptionList = usePlayerStore((s) => s.display?.getCaptionList); @@ -77,11 +78,13 @@ export function useCaptions() { captionToSet.srtData = srtData; } + setIsOpenSubtitles(!!caption.opensubtitles); setCaption(captionToSet); resetSubtitleSpecificSettings(); setLanguage(caption.language); }, [ + setIsOpenSubtitles, setLanguage, captions, setCaption, @@ -101,9 +104,10 @@ export function useCaptions() { ); const disable = useCallback(async () => { + setIsOpenSubtitles(false); setCaption(null); setLanguage(null); - }, [setCaption, setLanguage]); + }, [setCaption, setLanguage, setIsOpenSubtitles]); const selectLastUsedLanguage = useCallback(async () => { const language = lastSelectedLanguage ?? "en"; diff --git a/src/components/player/internals/ContextMenu/Links.tsx b/src/components/player/internals/ContextMenu/Links.tsx index 616647a98..9b49db887 100644 --- a/src/components/player/internals/ContextMenu/Links.tsx +++ b/src/components/player/internals/ContextMenu/Links.tsx @@ -123,14 +123,34 @@ export function SelectableLink(props: { children?: ReactNode; disabled?: boolean; error?: ReactNode; + chevron?: boolean; }) { let rightContent; if (props.selected) { + if (props.chevron) { + rightContent = ( + + + + + ); + } else { + rightContent = ( + + ); + } + } else if (props.chevron) { rightContent = ( - + ); } if (props.error) diff --git a/src/components/player/utils/captions.ts b/src/components/player/utils/captions.ts index df64fa5ab..d144340ef 100644 --- a/src/components/player/utils/captions.ts +++ b/src/components/player/utils/captions.ts @@ -102,5 +102,6 @@ export function convertProviderCaption( language: v.language, url: v.url, needsProxy: v.hasCorsRestrictions, + opensubtitles: v.opensubtitles, })); } diff --git a/src/pages/Discover.tsx b/src/pages/Discover.tsx index 5472faa8b..ec08ed8c1 100644 --- a/src/pages/Discover.tsx +++ b/src/pages/Discover.tsx @@ -1,5 +1,5 @@ // Based mfs only use only one 500 line file instead of ten 50 line files. -import React, { useEffect, useRef, useState } from "react"; +import { useEffect, useRef, useState } from "react"; import { Helmet } from "react-helmet-async"; import { useTranslation } from "react-i18next"; import { useNavigate } from "react-router-dom"; @@ -21,7 +21,6 @@ import { import { SubPageLayout } from "./layouts/SubPageLayout"; import { PageTitle } from "./parts/util/PageTitle"; -import placeholderImageLogo from "../../public/placeholder.png"; import { Icon, Icons } from "../components/Icon"; export function Discover() { @@ -167,6 +166,66 @@ export function Discover() { tvGenres.forEach((genre) => fetchTVShowsForGenre(genre.id)); }, [tvGenres]); + // Fetch Movie genres + useEffect(() => { + const fetchGenres = async () => { + try { + const data = await get("/genre/movie/list", { + api_key: conf().TMDB_READ_API_KEY, + language: "en-US", + }); + + // Shuffle the array of genres + for (let i = data.genres.length - 1; i > 0; i -= 1) { + const j = Math.floor(Math.random() * (i + 1)); + [data.genres[i], data.genres[j]] = [data.genres[j], data.genres[i]]; + } + + // Fetch only the first 4 genres + setGenres(data.genres.slice(0, 4)); + } catch (error) { + console.error("Error fetching genres:", error); + } + }; + + fetchGenres(); + }, []); + + // Fetch movies for each genre + useEffect(() => { + const fetchMoviesForGenre = async (genreId: number) => { + try { + const movies: any[] = []; + for (let page = 1; page <= 6; page += 1) { + // Fetch only 6 pages + const data = await get("/discover/movie", { + api_key: conf().TMDB_READ_API_KEY, + with_genres: genreId.toString(), + language: "en-US", + page: page.toString(), + }); + + movies.push(...data.results); + } + + // Shuffle the movies + for (let i = movies.length - 1; i > 0; i -= 1) { + const j = Math.floor(Math.random() * (i + 1)); + [movies[i], movies[j]] = [movies[j], movies[i]]; + } + + setGenreMovies((prevGenreMovies) => ({ + ...prevGenreMovies, + [genreId]: movies, + })); + } catch (error) { + console.error(`Error fetching movies for genre ${genreId}:`, error); + } + }; + + genres.forEach((genre) => fetchMoviesForGenre(genre.id)); + }, [genres]); + // Update the scrollCarousel function to use the new ref map function scrollCarousel(categorySlug: string, direction: string) { const carousel = carouselRefs.current[categorySlug]; @@ -176,6 +235,7 @@ export function Discover() { const movieWidth = movieElements[0].offsetWidth; const visibleMovies = Math.floor(carousel.offsetWidth / movieWidth); const scrollAmount = movieWidth * visibleMovies * 0.69; // Silly number :3 + if (direction === "left") { if (carousel.scrollLeft <= 5) { carousel.scrollBy({ @@ -252,21 +312,6 @@ export function Discover() { }, 345); // Disable scrolling every 3 milliseconds after interaction (only for mouse wheel doe) } - const handleMouseEnter = () => { - document.body.style.overflow = "hidden"; - }; - - const handleMouseLeave = () => { - document.body.style.overflow = "auto"; - }; - - useEffect(() => { - window.addEventListener("mouseleave", handleMouseLeave); - return () => { - window.removeEventListener("mouseleave", handleMouseLeave); - }; - }, []); - function renderMovies(medias: Media[], category: string, isTVShow = false) { const categorySlug = `${category.toLowerCase().replace(/ /g, "-")}${Math.random()}`; // Convert the category to a slug const displayCategory = @@ -277,6 +322,7 @@ export function Discover() { : isTVShow ? `${category} Shows` : `${category} Movies`; + // https://tailwindcss.com/docs/border-style return (
@@ -295,48 +341,58 @@ export function Discover() { carouselRefs.current[categorySlug] = el; }} > - {medias.slice(0, 20).map((media) => ( - - navigate( - `/media/tmdb-${isTVShow ? "tv" : "movie"}-${media.id}-${ - isTVShow ? media.name : media.title - }`, + {medias + .filter((media, index, self) => { + return ( + index === + self.findIndex( + (m) => m.id === media.id && m.title === media.title, ) - } - className="text-center relative mt-3 mx-[0.285em] mb-3 transition-transform hover:scale-105 duration-[0.45s]" - style={{ flex: `0 0 ${movieWidth}` }} // Set a fixed width for each movie - > - - - {media.poster_path -

- {isTVShow - ? (media.name?.length ?? 0) > 32 - ? `${media.name?.slice(0, 32)}...` - : media.name - : (media.title?.length ?? 0) > 32 - ? `${media.title?.slice(0, 32)}...` - : media.title} -

-
-
- ))} + ); + }) + .slice(0, 20) + .map((media) => ( + + navigate( + `/media/tmdb-${isTVShow ? "tv" : "movie"}-${media.id}-${ + isTVShow ? media.name : media.title + }`, + ) + } + className="text-center relative mt-3 mx-[0.285em] mb-3 transition-transform hover:scale-105 duration-[0.45s]" + style={{ flex: `0 0 ${movieWidth}` }} // Set a fixed width for each movie + > + + + {media.poster_path +

+ {isTVShow + ? (media.name?.length ?? 0) > 32 + ? `${media.name?.slice(0, 32)}...` + : media.name + : (media.title?.length ?? 0) > 32 + ? `${media.title?.slice(0, 32)}...` + : media.title} +

+
+
+ ))}
@@ -400,66 +456,6 @@ export function Discover() { } }; - // Fetch Movie genres - useEffect(() => { - const fetchGenres = async () => { - try { - const data = await get("/genre/movie/list", { - api_key: conf().TMDB_READ_API_KEY, - language: "en-US", - }); - - // Shuffle the array of genres - for (let i = data.genres.length - 1; i > 0; i -= 1) { - const j = Math.floor(Math.random() * (i + 1)); - [data.genres[i], data.genres[j]] = [data.genres[j], data.genres[i]]; - } - - // Fetch only the first 4 genres - setGenres(data.genres.slice(0, 4)); - } catch (error) { - console.error("Error fetching genres:", error); - } - }; - - fetchGenres(); - }, []); - - // Fetch movies for each genre - useEffect(() => { - const fetchMoviesForGenre = async (genreId: number) => { - try { - const movies: any[] = []; - for (let page = 1; page <= 6; page += 1) { - // Fetch only 6 pages - const data = await get("/discover/movie", { - api_key: conf().TMDB_READ_API_KEY, - with_genres: genreId.toString(), - language: "en-US", - page: page.toString(), - }); - - movies.push(...data.results); - } - - // Shuffle the movies - for (let i = movies.length - 1; i > 0; i -= 1) { - const j = Math.floor(Math.random() * (i + 1)); - [movies[i], movies[j]] = [movies[j], movies[i]]; - } - - setGenreMovies((prevGenreMovies) => ({ - ...prevGenreMovies, - [genreId]: movies, - })); - } catch (error) { - console.error(`Error fetching movies for genre ${genreId}:`, error); - } - }; - - genres.forEach((genre) => fetchMoviesForGenre(genre.id)); - }, [genres]); - useEffect(() => { let countdownInterval: NodeJS.Timeout; if (countdown !== null && countdown > 0) { @@ -547,7 +543,7 @@ export function Discover() { ))} {genres.map((genre) => (
@@ -574,7 +570,7 @@ export function Discover() { ))} {tvGenres.map((genre) => (
diff --git a/src/pages/Dmca.tsx b/src/pages/Dmca.tsx index b96a2ce55..dbb59e8ec 100644 --- a/src/pages/Dmca.tsx +++ b/src/pages/Dmca.tsx @@ -28,6 +28,9 @@ export function DmcaPage() { components={{ bold: , }} + values={{ + dmca: conf().DMCA_EMAIL, + }} /> diff --git a/src/stores/player/slices/source.ts b/src/stores/player/slices/source.ts index 5cbfc6db8..779244263 100644 --- a/src/stores/player/slices/source.ts +++ b/src/stores/player/slices/source.ts @@ -54,6 +54,7 @@ export interface CaptionListItem { url: string; needsProxy: boolean; hls?: boolean; + opensubtitles?: boolean; } export interface AudioTrack { diff --git a/src/stores/subtitles/index.ts b/src/stores/subtitles/index.ts index eaac0cb2d..fab666442 100644 --- a/src/stores/subtitles/index.ts +++ b/src/stores/subtitles/index.ts @@ -36,11 +36,13 @@ export interface SubtitleStore { }; enabled: boolean; lastSelectedLanguage: string | null; + isOpenSubtitles: boolean; styling: SubtitleStyling; overrideCasing: boolean; delay: number; updateStyling(newStyling: Partial): void; setLanguage(language: string | null): void; + setIsOpenSubtitles(isOpenSubtitles: boolean): void; setCustomSubs(): void; setOverrideCasing(enabled: boolean): void; setDelay(delay: number): void; @@ -56,6 +58,7 @@ export const useSubtitleStore = create( lastSelectedLanguage: null, }, lastSelectedLanguage: null, + isOpenSubtitles: false, overrideCasing: false, delay: 0, styling: { @@ -96,6 +99,11 @@ export const useSubtitleStore = create( if (lang) s.lastSelectedLanguage = lang; }); }, + setIsOpenSubtitles(isOpenSubtitles) { + set((s) => { + s.isOpenSubtitles = isOpenSubtitles; + }); + }, setCustomSubs() { set((s) => { s.enabled = true; diff --git a/src/utils/language.ts b/src/utils/language.ts index 9889d1c5e..505399857 100644 --- a/src/utils/language.ts +++ b/src/utils/language.ts @@ -63,7 +63,7 @@ const extraLanguages: Record = { name: "Pirate", nativeName: "Pirate Tongue", }, - cat: { + kitty: { code: "cat", name: "Cat", nativeName: "Kitty Speak",