pstream is dead; long live pstream taciturnaxolotl.github.io/pstream-ng/

Upgrade packages, bundling, performance

+2717 -2016
+69 -67
package.json
··· 26 26 ] 27 27 }, 28 28 "dependencies": { 29 - "@formkit/auto-animate": "^0.7.0", 30 - "@headlessui/react": "^1.5.0", 29 + "@formkit/auto-animate": "^0.8.1", 30 + "@headlessui/react": "^1.7.17", 31 31 "@movie-web/providers": "^1.1.5", 32 - "@noble/hashes": "^1.3.2", 33 - "@react-spring/web": "^9.7.1", 34 - "@scure/bip39": "^1.2.1", 32 + "@noble/hashes": "^1.3.3", 33 + "@react-spring/web": "^9.7.3", 34 + "@scure/bip39": "^1.2.2", 35 35 "@sozialhelden/ietf-language-tags": "^5.4.2", 36 - "@types/node-forge": "^1.3.8", 36 + "@types/node-forge": "^1.3.10", 37 37 "classnames": "^2.3.2", 38 - "core-js": "^3.29.1", 39 - "dompurify": "^3.0.1", 40 - "flag-icons": "^6.11.1", 38 + "core-js": "^3.34.0", 39 + "dompurify": "^3.0.6", 40 + "flag-icons": "^7.1.0", 41 41 "focus-trap-react": "^10.2.3", 42 42 "fscreen": "^1.2.0", 43 - "fuse.js": "^6.4.6", 44 - "hls.js": "^1.0.7", 45 - "i18next": "^22.4.5", 46 - "immer": "^10.0.2", 43 + "fuse.js": "^7.0.0", 44 + "hls.js": "^1.4.14", 45 + "i18next": "^23.7.11", 46 + "immer": "^10.0.3", 47 47 "iso-639-1": "^3.1.0", 48 48 "jwt-decode": "^4.0.0", 49 49 "lodash.isequal": "^4.5.0", 50 + "million": "^2.6.4", 50 51 "nanoid": "^5.0.4", 51 52 "node-forge": "^1.3.1", 52 - "ofetch": "^1.0.0", 53 - "react": "^17.0.2", 54 - "react-dom": "^17.0.2", 55 - "react-ga4": "^2.0.0", 53 + "ofetch": "^1.3.3", 54 + "react": "^18.2.0", 55 + "react-dom": "^18.2.0", 56 + "react-ga4": "^2.1.0", 56 57 "react-google-recaptcha-v3": "^1.10.1", 57 - "react-helmet-async": "^1.3.0", 58 - "react-i18next": "^12.1.1", 59 - "react-router-dom": "^5.2.0", 58 + "react-helmet-async": "^2.0.4", 59 + "react-i18next": "^14.0.0", 60 + "react-lazy-with-preload": "^2.2.1", 61 + "react-router-dom": "^6.21.1", 60 62 "react-sticky-el": "^2.1.0", 61 63 "react-turnstile": "^1.1.2", 62 - "react-use": "^17.4.0", 64 + "react-use": "^17.4.2", 63 65 "slugify": "^1.6.6", 64 - "subsrt-ts": "^2.1.1", 65 - "zustand": "^4.3.9" 66 + "subsrt-ts": "^2.1.2", 67 + "zustand": "^4.4.7" 66 68 }, 67 69 "devDependencies": { 68 - "@babel/core": "^7.21.3", 69 - "@babel/preset-env": "^7.20.2", 70 - "@babel/preset-typescript": "^7.21.0", 71 - "@types/chromecast-caf-sender": "^1.0.5", 72 - "@types/crypto-js": "^4.1.1", 73 - "@types/dompurify": "^2.4.0", 74 - "@types/fscreen": "^1.0.1", 70 + "@babel/core": "^7.23.6", 71 + "@babel/preset-env": "^7.23.6", 72 + "@babel/preset-typescript": "^7.23.3", 73 + "@types/chromecast-caf-sender": "^1.0.8", 74 + "@types/crypto-js": "^4.2.1", 75 + "@types/dompurify": "^3.0.5", 76 + "@types/fscreen": "^1.0.4", 75 77 "@types/lodash.isequal": "^4.5.8", 76 - "@types/lodash.throttle": "^4.1.7", 77 - "@types/node": "^17.0.15", 78 - "@types/pako": "^2.0.0", 79 - "@types/react": "^17.0.39", 80 - "@types/react-dom": "^17.0.11", 81 - "@types/react-helmet": "^6.1.6", 78 + "@types/lodash.throttle": "^4.1.9", 79 + "@types/node": "^20.10.5", 80 + "@types/pako": "^2.0.3", 81 + "@types/react": "^18.2.45", 82 + "@types/react-dom": "^18.2.18", 83 + "@types/react-helmet": "^6.1.11", 82 84 "@types/react-router": "^5.1.20", 83 85 "@types/react-router-dom": "^5.3.3", 84 - "@types/react-stickynode": "^4.0.0", 85 - "@types/react-transition-group": "^4.4.5", 86 - "@typescript-eslint/eslint-plugin": "^5.13.0", 87 - "@typescript-eslint/parser": "^5.13.0", 88 - "@vitejs/plugin-react": "^3.1.0", 89 - "autoprefixer": "^10.4.13", 86 + "@types/react-stickynode": "^4.0.3", 87 + "@types/react-transition-group": "^4.4.10", 88 + "@typescript-eslint/eslint-plugin": "^6.15.0", 89 + "@typescript-eslint/parser": "^6.15.0", 90 + "@vitejs/plugin-react": "^4.2.1", 91 + "autoprefixer": "^10.4.16", 90 92 "cross-env": "^7.0.3", 91 - "eslint": "^8.10.0", 93 + "eslint": "^8.56.0", 92 94 "eslint-config-airbnb": "19.0.4", 93 - "eslint-config-prettier": "^8.6.0", 94 - "eslint-import-resolver-typescript": "^2.5.0", 95 - "eslint-plugin-import": "^2.27.5", 96 - "eslint-plugin-jsx-a11y": "^6.5.1", 97 - "eslint-plugin-prettier": "^4.2.1", 98 - "eslint-plugin-react": "7.29.4", 99 - "eslint-plugin-react-hooks": "4.3.0", 100 - "glob": "^10.3.3", 101 - "handlebars": "^4.7.7", 102 - "jsdom": "^21.1.0", 103 - "postcss": "^8.4.20", 95 + "eslint-config-prettier": "^9.1.0", 96 + "eslint-import-resolver-typescript": "^3.6.1", 97 + "eslint-plugin-import": "^2.29.1", 98 + "eslint-plugin-jsx-a11y": "^6.8.0", 99 + "eslint-plugin-prettier": "^5.1.1", 100 + "eslint-plugin-react": "7.33.2", 101 + "eslint-plugin-react-hooks": "4.6.0", 102 + "glob": "^10.3.10", 103 + "handlebars": "^4.7.8", 104 + "jsdom": "^23.0.1", 105 + "postcss": "^8.4.32", 104 106 "postcss-rtl": "^2.0.0", 105 107 "postcss-rtlcss": "^4.0.9", 106 - "prettier": "^2.5.1", 107 - "prettier-plugin-tailwindcss": "^0.1.7", 108 - "tailwind-scrollbar": "^2.0.1", 109 - "tailwindcss": "^3.2.4", 110 - "tailwindcss-themer": "^3.1.0", 111 - "type-fest": "^4.3.3", 112 - "typescript": "^4.6.4", 113 - "vite": "^4.4.12", 114 - "vite-plugin-checker": "^0.5.6", 115 - "vite-plugin-package-version": "^1.0.2", 116 - "vite-plugin-pwa": "^0.16.5", 117 - "vite-plugin-static-copy": "^0.16.0", 118 - "vitest": "^0.28.5" 108 + "prettier": "^3.1.1", 109 + "prettier-plugin-tailwindcss": "^0.5.9", 110 + "tailwind-scrollbar": "^3.0.5", 111 + "tailwindcss": "^3.4.0", 112 + "tailwindcss-themer": "^4.0.0", 113 + "type-fest": "^4.8.3", 114 + "typescript": "^5.3.3", 115 + "vite": "^5.0.10", 116 + "vite-plugin-checker": "^0.6.2", 117 + "vite-plugin-package-version": "^1.1.0", 118 + "vite-plugin-pwa": "^0.17.4", 119 + "vite-plugin-static-copy": "^1.0.0", 120 + "vitest": "^1.1.0" 119 121 }, 120 122 "pnpm": { 121 123 "overrides": {
+2102 -1447
pnpm-lock.yaml
··· 12 12 13 13 dependencies: 14 14 '@formkit/auto-animate': 15 - specifier: ^0.7.0 16 - version: 0.7.0 15 + specifier: ^0.8.1 16 + version: 0.8.1 17 17 '@headlessui/react': 18 - specifier: ^1.5.0 19 - version: 1.7.17(react-dom@17.0.2)(react@17.0.2) 18 + specifier: ^1.7.17 19 + version: 1.7.17(react-dom@18.2.0)(react@18.2.0) 20 20 '@movie-web/providers': 21 21 specifier: ^1.1.5 22 22 version: 1.1.5 23 23 '@noble/hashes': 24 - specifier: ^1.3.2 25 - version: 1.3.2 24 + specifier: ^1.3.3 25 + version: 1.3.3 26 26 '@react-spring/web': 27 - specifier: ^9.7.1 28 - version: 9.7.3(react-dom@17.0.2)(react@17.0.2) 27 + specifier: ^9.7.3 28 + version: 9.7.3(react-dom@18.2.0)(react@18.2.0) 29 29 '@scure/bip39': 30 - specifier: ^1.2.1 31 - version: 1.2.1 30 + specifier: ^1.2.2 31 + version: 1.2.2 32 32 '@sozialhelden/ietf-language-tags': 33 33 specifier: ^5.4.2 34 34 version: 5.4.2 35 35 '@types/node-forge': 36 - specifier: ^1.3.8 37 - version: 1.3.8 36 + specifier: ^1.3.10 37 + version: 1.3.10 38 38 classnames: 39 39 specifier: ^2.3.2 40 40 version: 2.3.2 41 41 core-js: 42 - specifier: ^3.29.1 43 - version: 3.32.1 42 + specifier: ^3.34.0 43 + version: 3.34.0 44 44 dompurify: 45 - specifier: ^3.0.1 46 - version: 3.0.5 45 + specifier: ^3.0.6 46 + version: 3.0.6 47 47 flag-icons: 48 - specifier: ^6.11.1 49 - version: 6.11.1 48 + specifier: ^7.1.0 49 + version: 7.1.0 50 50 focus-trap-react: 51 51 specifier: ^10.2.3 52 - version: 10.2.3(prop-types@15.8.1)(react-dom@17.0.2)(react@17.0.2) 52 + version: 10.2.3(prop-types@15.8.1)(react-dom@18.2.0)(react@18.2.0) 53 53 fscreen: 54 54 specifier: ^1.2.0 55 55 version: 1.2.0 56 56 fuse.js: 57 - specifier: ^6.4.6 58 - version: 6.6.2 57 + specifier: ^7.0.0 58 + version: 7.0.0 59 59 hls.js: 60 - specifier: ^1.0.7 61 - version: 1.4.11 60 + specifier: ^1.4.14 61 + version: 1.4.14 62 62 i18next: 63 - specifier: ^22.4.5 64 - version: 22.5.1 63 + specifier: ^23.7.11 64 + version: 23.7.11 65 65 immer: 66 - specifier: ^10.0.2 67 - version: 10.0.2 66 + specifier: ^10.0.3 67 + version: 10.0.3 68 68 iso-639-1: 69 69 specifier: ^3.1.0 70 70 version: 3.1.0 ··· 74 74 lodash.isequal: 75 75 specifier: ^4.5.0 76 76 version: 4.5.0 77 + million: 78 + specifier: ^2.6.4 79 + version: 2.6.4 77 80 nanoid: 78 81 specifier: ^5.0.4 79 82 version: 5.0.4 ··· 81 84 specifier: ^1.3.1 82 85 version: 1.3.1 83 86 ofetch: 84 - specifier: ^1.0.0 87 + specifier: ^1.3.3 85 88 version: 1.3.3 86 89 react: 87 - specifier: ^17.0.2 88 - version: 17.0.2 90 + specifier: ^18.2.0 91 + version: 18.2.0 89 92 react-dom: 90 - specifier: ^17.0.2 91 - version: 17.0.2(react@17.0.2) 93 + specifier: ^18.2.0 94 + version: 18.2.0(react@18.2.0) 92 95 react-ga4: 93 - specifier: ^2.0.0 96 + specifier: ^2.1.0 94 97 version: 2.1.0 95 98 react-google-recaptcha-v3: 96 99 specifier: ^1.10.1 97 - version: 1.10.1(react-dom@17.0.2)(react@17.0.2) 100 + version: 1.10.1(react-dom@18.2.0)(react@18.2.0) 98 101 react-helmet-async: 99 - specifier: ^1.3.0 100 - version: 1.3.0(react-dom@17.0.2)(react@17.0.2) 102 + specifier: ^2.0.4 103 + version: 2.0.4(react-dom@18.2.0)(react@18.2.0) 101 104 react-i18next: 102 - specifier: ^12.1.1 103 - version: 12.3.1(i18next@22.5.1)(react-dom@17.0.2)(react@17.0.2) 105 + specifier: ^14.0.0 106 + version: 14.0.0(i18next@23.7.11)(react-dom@18.2.0)(react@18.2.0) 107 + react-lazy-with-preload: 108 + specifier: ^2.2.1 109 + version: 2.2.1 104 110 react-router-dom: 105 - specifier: ^5.2.0 106 - version: 5.3.4(react@17.0.2) 111 + specifier: ^6.21.1 112 + version: 6.21.1(react-dom@18.2.0)(react@18.2.0) 107 113 react-sticky-el: 108 114 specifier: ^2.1.0 109 - version: 2.1.0(react-dom@17.0.2)(react@17.0.2) 115 + version: 2.1.0(react-dom@18.2.0)(react@18.2.0) 110 116 react-turnstile: 111 117 specifier: ^1.1.2 112 - version: 1.1.2(react-dom@17.0.2)(react@17.0.2) 118 + version: 1.1.2(react-dom@18.2.0)(react@18.2.0) 113 119 react-use: 114 - specifier: ^17.4.0 115 - version: 17.4.0(react-dom@17.0.2)(react@17.0.2) 120 + specifier: ^17.4.2 121 + version: 17.4.2(react-dom@18.2.0)(react@18.2.0) 116 122 slugify: 117 123 specifier: ^1.6.6 118 124 version: 1.6.6 119 125 subsrt-ts: 120 - specifier: ^2.1.1 121 - version: 2.1.1 126 + specifier: ^2.1.2 127 + version: 2.1.2 122 128 zustand: 123 - specifier: ^4.3.9 124 - version: 4.4.1(@types/react@17.0.65)(immer@10.0.2)(react@17.0.2) 129 + specifier: ^4.4.7 130 + version: 4.4.7(@types/react@18.2.45)(immer@10.0.3)(react@18.2.0) 125 131 126 132 devDependencies: 127 133 '@babel/core': 128 - specifier: ^7.21.3 129 - version: 7.22.11 134 + specifier: ^7.23.6 135 + version: 7.23.6 130 136 '@babel/preset-env': 131 - specifier: ^7.20.2 132 - version: 7.22.14(@babel/core@7.22.11) 137 + specifier: ^7.23.6 138 + version: 7.23.6(@babel/core@7.23.6) 133 139 '@babel/preset-typescript': 134 - specifier: ^7.21.0 135 - version: 7.22.11(@babel/core@7.22.11) 140 + specifier: ^7.23.3 141 + version: 7.23.3(@babel/core@7.23.6) 136 142 '@types/chromecast-caf-sender': 137 - specifier: ^1.0.5 138 - version: 1.0.5 143 + specifier: ^1.0.8 144 + version: 1.0.8 139 145 '@types/crypto-js': 140 - specifier: ^4.1.1 141 - version: 4.1.1 146 + specifier: ^4.2.1 147 + version: 4.2.1 142 148 '@types/dompurify': 143 - specifier: ^2.4.0 144 - version: 2.4.0 149 + specifier: ^3.0.5 150 + version: 3.0.5 145 151 '@types/fscreen': 146 - specifier: ^1.0.1 147 - version: 1.0.1 152 + specifier: ^1.0.4 153 + version: 1.0.4 148 154 '@types/lodash.isequal': 149 155 specifier: ^4.5.8 150 156 version: 4.5.8 151 157 '@types/lodash.throttle': 152 - specifier: ^4.1.7 153 - version: 4.1.7 158 + specifier: ^4.1.9 159 + version: 4.1.9 154 160 '@types/node': 155 - specifier: ^17.0.15 156 - version: 17.0.45 161 + specifier: ^20.10.5 162 + version: 20.10.5 157 163 '@types/pako': 158 - specifier: ^2.0.0 159 - version: 2.0.0 164 + specifier: ^2.0.3 165 + version: 2.0.3 160 166 '@types/react': 161 - specifier: ^17.0.39 162 - version: 17.0.65 167 + specifier: ^18.2.45 168 + version: 18.2.45 163 169 '@types/react-dom': 164 - specifier: ^17.0.11 165 - version: 17.0.20 170 + specifier: ^18.2.18 171 + version: 18.2.18 166 172 '@types/react-helmet': 167 - specifier: ^6.1.6 168 - version: 6.1.6 173 + specifier: ^6.1.11 174 + version: 6.1.11 169 175 '@types/react-router': 170 176 specifier: ^5.1.20 171 177 version: 5.1.20 ··· 173 179 specifier: ^5.3.3 174 180 version: 5.3.3 175 181 '@types/react-stickynode': 176 - specifier: ^4.0.0 177 - version: 4.0.0 182 + specifier: ^4.0.3 183 + version: 4.0.3 178 184 '@types/react-transition-group': 179 - specifier: ^4.4.5 180 - version: 4.4.6 185 + specifier: ^4.4.10 186 + version: 4.4.10 181 187 '@typescript-eslint/eslint-plugin': 182 - specifier: ^5.13.0 183 - version: 5.62.0(@typescript-eslint/parser@5.62.0)(eslint@8.48.0)(typescript@4.9.5) 188 + specifier: ^6.15.0 189 + version: 6.15.0(@typescript-eslint/parser@6.15.0)(eslint@8.56.0)(typescript@5.3.3) 184 190 '@typescript-eslint/parser': 185 - specifier: ^5.13.0 186 - version: 5.62.0(eslint@8.48.0)(typescript@4.9.5) 191 + specifier: ^6.15.0 192 + version: 6.15.0(eslint@8.56.0)(typescript@5.3.3) 187 193 '@vitejs/plugin-react': 188 - specifier: ^3.1.0 189 - version: 3.1.0(vite@4.4.12) 194 + specifier: ^4.2.1 195 + version: 4.2.1(vite@5.0.10) 190 196 autoprefixer: 191 - specifier: ^10.4.13 192 - version: 10.4.15(postcss@8.4.31) 197 + specifier: ^10.4.16 198 + version: 10.4.16(postcss@8.4.32) 193 199 cross-env: 194 200 specifier: ^7.0.3 195 201 version: 7.0.3 196 202 eslint: 197 - specifier: ^8.10.0 198 - version: 8.48.0 203 + specifier: ^8.56.0 204 + version: 8.56.0 199 205 eslint-config-airbnb: 200 206 specifier: 19.0.4 201 - version: 19.0.4(eslint-plugin-import@2.28.1)(eslint-plugin-jsx-a11y@6.7.1)(eslint-plugin-react-hooks@4.3.0)(eslint-plugin-react@7.29.4)(eslint@8.48.0) 207 + version: 19.0.4(eslint-plugin-import@2.29.1)(eslint-plugin-jsx-a11y@6.8.0)(eslint-plugin-react-hooks@4.6.0)(eslint-plugin-react@7.33.2)(eslint@8.56.0) 202 208 eslint-config-prettier: 203 - specifier: ^8.6.0 204 - version: 8.10.0(eslint@8.48.0) 209 + specifier: ^9.1.0 210 + version: 9.1.0(eslint@8.56.0) 205 211 eslint-import-resolver-typescript: 206 - specifier: ^2.5.0 207 - version: 2.7.1(eslint-plugin-import@2.28.1)(eslint@8.48.0) 212 + specifier: ^3.6.1 213 + version: 3.6.1(@typescript-eslint/parser@6.15.0)(eslint-plugin-import@2.29.1)(eslint@8.56.0) 208 214 eslint-plugin-import: 209 - specifier: ^2.27.5 210 - version: 2.28.1(@typescript-eslint/parser@5.62.0)(eslint-import-resolver-typescript@2.7.1)(eslint@8.48.0) 215 + specifier: ^2.29.1 216 + version: 2.29.1(@typescript-eslint/parser@6.15.0)(eslint-import-resolver-typescript@3.6.1)(eslint@8.56.0) 211 217 eslint-plugin-jsx-a11y: 212 - specifier: ^6.5.1 213 - version: 6.7.1(eslint@8.48.0) 218 + specifier: ^6.8.0 219 + version: 6.8.0(eslint@8.56.0) 214 220 eslint-plugin-prettier: 215 - specifier: ^4.2.1 216 - version: 4.2.1(eslint-config-prettier@8.10.0)(eslint@8.48.0)(prettier@2.8.8) 221 + specifier: ^5.1.1 222 + version: 5.1.1(eslint-config-prettier@9.1.0)(eslint@8.56.0)(prettier@3.1.1) 217 223 eslint-plugin-react: 218 - specifier: 7.29.4 219 - version: 7.29.4(eslint@8.48.0) 224 + specifier: 7.33.2 225 + version: 7.33.2(eslint@8.56.0) 220 226 eslint-plugin-react-hooks: 221 - specifier: 4.3.0 222 - version: 4.3.0(eslint@8.48.0) 227 + specifier: 4.6.0 228 + version: 4.6.0(eslint@8.56.0) 223 229 glob: 224 - specifier: ^10.3.3 225 - version: 10.3.4 230 + specifier: ^10.3.10 231 + version: 10.3.10 226 232 handlebars: 227 - specifier: ^4.7.7 233 + specifier: ^4.7.8 228 234 version: 4.7.8 229 235 jsdom: 230 - specifier: ^21.1.0 231 - version: 21.1.2 236 + specifier: ^23.0.1 237 + version: 23.0.1 232 238 postcss: 233 - specifier: '>=8.4.31' 234 - version: 8.4.31 239 + specifier: ^8.4.32 240 + version: 8.4.32 235 241 postcss-rtl: 236 242 specifier: ^2.0.0 237 - version: 2.0.0(postcss@8.4.31) 243 + version: 2.0.0(postcss@8.4.32) 238 244 postcss-rtlcss: 239 245 specifier: ^4.0.9 240 - version: 4.0.9(postcss@8.4.31) 246 + version: 4.0.9(postcss@8.4.32) 241 247 prettier: 242 - specifier: ^2.5.1 243 - version: 2.8.8 248 + specifier: ^3.1.1 249 + version: 3.1.1 244 250 prettier-plugin-tailwindcss: 245 - specifier: ^0.1.7 246 - version: 0.1.13(prettier@2.8.8) 251 + specifier: ^0.5.9 252 + version: 0.5.9(prettier@3.1.1) 247 253 tailwind-scrollbar: 248 - specifier: ^2.0.1 249 - version: 2.1.0(tailwindcss@3.3.3) 254 + specifier: ^3.0.5 255 + version: 3.0.5(tailwindcss@3.4.0) 250 256 tailwindcss: 251 - specifier: ^3.2.4 252 - version: 3.3.3 257 + specifier: ^3.4.0 258 + version: 3.4.0 253 259 tailwindcss-themer: 254 - specifier: ^3.1.0 255 - version: 3.1.0(tailwindcss@3.3.3) 260 + specifier: ^4.0.0 261 + version: 4.0.0(tailwindcss@3.4.0) 256 262 type-fest: 257 - specifier: ^4.3.3 258 - version: 4.3.3 263 + specifier: ^4.8.3 264 + version: 4.8.3 259 265 typescript: 260 - specifier: ^4.6.4 261 - version: 4.9.5 266 + specifier: ^5.3.3 267 + version: 5.3.3 262 268 vite: 263 - specifier: ^4.4.12 264 - version: 4.4.12(@types/node@17.0.45) 269 + specifier: ^5.0.10 270 + version: 5.0.10(@types/node@20.10.5) 265 271 vite-plugin-checker: 266 - specifier: ^0.5.6 267 - version: 0.5.6(eslint@8.48.0)(typescript@4.9.5)(vite@4.4.12) 272 + specifier: ^0.6.2 273 + version: 0.6.2(eslint@8.56.0)(typescript@5.3.3)(vite@5.0.10) 268 274 vite-plugin-package-version: 269 - specifier: ^1.0.2 270 - version: 1.0.2(vite@4.4.12) 275 + specifier: ^1.1.0 276 + version: 1.1.0(vite@5.0.10) 271 277 vite-plugin-pwa: 272 - specifier: ^0.16.5 273 - version: 0.16.5(vite@4.4.12)(workbox-build@7.0.0)(workbox-window@7.0.0) 278 + specifier: ^0.17.4 279 + version: 0.17.4(vite@5.0.10)(workbox-build@7.0.0)(workbox-window@7.0.0) 274 280 vite-plugin-static-copy: 275 - specifier: ^0.16.0 276 - version: 0.16.0(vite@4.4.12) 281 + specifier: ^1.0.0 282 + version: 1.0.0(vite@5.0.10) 277 283 vitest: 278 - specifier: ^0.28.5 279 - version: 0.28.5(jsdom@21.1.2) 284 + specifier: ^1.1.0 285 + version: 1.1.0(@types/node@20.10.5)(jsdom@23.0.1) 280 286 281 287 packages: 282 288 ··· 296 302 dependencies: 297 303 '@jridgewell/gen-mapping': 0.3.3 298 304 '@jridgewell/trace-mapping': 0.3.19 299 - dev: true 300 305 301 306 /@apideck/better-ajv-errors@0.3.6(ajv@8.12.0): 302 307 resolution: {integrity: sha512-P+ZygBLZtkp0qqOAJJVX4oX/sFo5JR3eBWwwuqHHhK0GIgQOKWrAfiAaWX0aArHkRWHMuggFEgAZNxVPwPZYaA==} ··· 318 323 chalk: 2.4.2 319 324 dev: true 320 325 321 - /@babel/compat-data@7.22.9: 322 - resolution: {integrity: sha512-5UamI7xkUcJ3i9qVDS+KFDEK8/7oJ55/sJMB1Ge7IEapr7KfdfV/HErR+koZwOfd+SgtFKOKRhRakdg++DcJpQ==} 326 + /@babel/code-frame@7.23.5: 327 + resolution: {integrity: sha512-CgH3s1a96LipHCmSUmYFPwY7MNx8C3avkq7i4Wl3cfa662ldtUe4VM1TPXX70pfmrlWTb6jLqTYrZyT2ZTJBgA==} 323 328 engines: {node: '>=6.9.0'} 324 - dev: true 329 + dependencies: 330 + '@babel/highlight': 7.23.4 331 + chalk: 2.4.2 325 332 326 - /@babel/core@7.22.11: 327 - resolution: {integrity: sha512-lh7RJrtPdhibbxndr6/xx0w8+CVlY5FJZiaSz908Fpy+G0xkBFTvwLcKJFF4PJxVfGhVWNebikpWGnOoC71juQ==} 333 + /@babel/compat-data@7.23.5: 334 + resolution: {integrity: sha512-uU27kfDRlhfKl+w1U6vp16IuvSLtjAxdArVXPa9BvLkrr7CYIsxH5adpHObeAGY/41+syctUWOZ140a2Rvkgjw==} 335 + engines: {node: '>=6.9.0'} 336 + 337 + /@babel/core@7.23.6: 338 + resolution: {integrity: sha512-FxpRyGjrMJXh7X3wGLGhNDCRiwpWEF74sKjTLDJSG5Kyvow3QZaG0Adbqzi9ZrVjTWpsX+2cxWXD71NMg93kdw==} 328 339 engines: {node: '>=6.9.0'} 329 340 dependencies: 330 341 '@ampproject/remapping': 2.2.1 331 - '@babel/code-frame': 7.22.13 332 - '@babel/generator': 7.22.10 333 - '@babel/helper-compilation-targets': 7.22.10 334 - '@babel/helper-module-transforms': 7.22.9(@babel/core@7.22.11) 335 - '@babel/helpers': 7.22.11 336 - '@babel/parser': 7.22.14 337 - '@babel/template': 7.22.5 338 - '@babel/traverse': 7.23.2 339 - '@babel/types': 7.22.11 340 - convert-source-map: 1.9.0 342 + '@babel/code-frame': 7.23.5 343 + '@babel/generator': 7.23.6 344 + '@babel/helper-compilation-targets': 7.23.6 345 + '@babel/helper-module-transforms': 7.23.3(@babel/core@7.23.6) 346 + '@babel/helpers': 7.23.6 347 + '@babel/parser': 7.23.6 348 + '@babel/template': 7.22.15 349 + '@babel/traverse': 7.23.6 350 + '@babel/types': 7.23.6 351 + convert-source-map: 2.0.0 341 352 debug: 4.3.4 342 353 gensync: 1.0.0-beta.2 343 354 json5: 2.2.3 344 355 semver: 6.3.1 345 356 transitivePeerDependencies: 346 357 - supports-color 347 - dev: true 348 358 349 - /@babel/generator@7.22.10: 350 - resolution: {integrity: sha512-79KIf7YiWjjdZ81JnLujDRApWtl7BxTqWD88+FFdQEIOG8LJ0etDOM7CXuIgGJa55sGOwZVwuEsaLEm0PJ5/+A==} 351 - engines: {node: '>=6.9.0'} 352 - dependencies: 353 - '@babel/types': 7.22.11 354 - '@jridgewell/gen-mapping': 0.3.3 355 - '@jridgewell/trace-mapping': 0.3.19 356 - jsesc: 2.5.2 357 - dev: true 358 - 359 - /@babel/generator@7.23.0: 360 - resolution: {integrity: sha512-lN85QRR+5IbYrMWM6Y4pE/noaQtg4pNiqeNGX60eqOfo6gtEj6uw/JagelB8vVztSd7R6M5n1+PQkDbHbBRU4g==} 359 + /@babel/generator@7.23.6: 360 + resolution: {integrity: sha512-qrSfCYxYQB5owCmGLbl8XRpX1ytXlpueOb0N0UmQwA073KZxejgQTzAmJezxvpwQD9uGtK2shHdi55QT+MbjIw==} 361 361 engines: {node: '>=6.9.0'} 362 362 dependencies: 363 - '@babel/types': 7.23.0 363 + '@babel/types': 7.23.6 364 364 '@jridgewell/gen-mapping': 0.3.3 365 365 '@jridgewell/trace-mapping': 0.3.19 366 366 jsesc: 2.5.2 367 - dev: true 368 367 369 368 /@babel/helper-annotate-as-pure@7.22.5: 370 369 resolution: {integrity: sha512-LvBTxu8bQSQkcyKOU+a1btnNFQ1dMAd0R6PyW3arXes06F6QLWLIrd681bxRPIXlrMGR3XYnW9JyML7dP3qgxg==} 371 370 engines: {node: '>=6.9.0'} 372 371 dependencies: 373 - '@babel/types': 7.22.11 372 + '@babel/types': 7.23.0 374 373 dev: true 375 374 376 - /@babel/helper-builder-binary-assignment-operator-visitor@7.22.10: 377 - resolution: {integrity: sha512-Av0qubwDQxC56DoUReVDeLfMEjYYSN1nZrTUrWkXd7hpU73ymRANkbuDm3yni9npkn+RXy9nNbEJZEzXr7xrfQ==} 375 + /@babel/helper-builder-binary-assignment-operator-visitor@7.22.15: 376 + resolution: {integrity: sha512-QkBXwGgaoC2GtGZRoma6kv7Szfv06khvhFav67ZExau2RaXzy8MpHSMO2PNoP2XtmQphJQRHFfg77Bq731Yizw==} 378 377 engines: {node: '>=6.9.0'} 379 378 dependencies: 380 - '@babel/types': 7.22.11 379 + '@babel/types': 7.23.0 381 380 dev: true 382 381 383 - /@babel/helper-compilation-targets@7.22.10: 384 - resolution: {integrity: sha512-JMSwHD4J7SLod0idLq5PKgI+6g/hLD/iuWBq08ZX49xE14VpVEojJ5rHWptpirV2j020MvypRLAXAO50igCJ5Q==} 382 + /@babel/helper-compilation-targets@7.23.6: 383 + resolution: {integrity: sha512-9JB548GZoQVmzrFgp8o7KxdgkTGm6xs9DW0o/Pim72UDjzr5ObUQ6ZzYPqA+g9OTS2bBQoctLJrky0RDCAWRgQ==} 385 384 engines: {node: '>=6.9.0'} 386 385 dependencies: 387 - '@babel/compat-data': 7.22.9 388 - '@babel/helper-validator-option': 7.22.5 389 - browserslist: 4.21.10 386 + '@babel/compat-data': 7.23.5 387 + '@babel/helper-validator-option': 7.23.5 388 + browserslist: 4.22.2 390 389 lru-cache: 5.1.1 391 390 semver: 6.3.1 392 - dev: true 393 391 394 - /@babel/helper-create-class-features-plugin@7.22.11(@babel/core@7.22.11): 395 - resolution: {integrity: sha512-y1grdYL4WzmUDBRGK0pDbIoFd7UZKoDurDzWEoNMYoj1EL+foGRQNyPWDcC+YyegN5y1DUsFFmzjGijB3nSVAQ==} 392 + /@babel/helper-create-class-features-plugin@7.23.6(@babel/core@7.23.6): 393 + resolution: {integrity: sha512-cBXU1vZni/CpGF29iTu4YRbOZt3Wat6zCoMDxRF1MayiEc4URxOj31tT65HUM0CRpMowA3HCJaAOVOUnMf96cw==} 396 394 engines: {node: '>=6.9.0'} 397 395 peerDependencies: 398 396 '@babel/core': ^7.0.0 399 397 dependencies: 400 - '@babel/core': 7.22.11 398 + '@babel/core': 7.23.6 401 399 '@babel/helper-annotate-as-pure': 7.22.5 402 - '@babel/helper-environment-visitor': 7.22.5 403 - '@babel/helper-function-name': 7.22.5 404 - '@babel/helper-member-expression-to-functions': 7.22.5 400 + '@babel/helper-environment-visitor': 7.22.20 401 + '@babel/helper-function-name': 7.23.0 402 + '@babel/helper-member-expression-to-functions': 7.23.0 405 403 '@babel/helper-optimise-call-expression': 7.22.5 406 - '@babel/helper-replace-supers': 7.22.9(@babel/core@7.22.11) 404 + '@babel/helper-replace-supers': 7.22.20(@babel/core@7.23.6) 407 405 '@babel/helper-skip-transparent-expression-wrappers': 7.22.5 408 406 '@babel/helper-split-export-declaration': 7.22.6 409 407 semver: 6.3.1 410 408 dev: true 411 409 412 - /@babel/helper-create-regexp-features-plugin@7.22.9(@babel/core@7.22.11): 410 + /@babel/helper-create-regexp-features-plugin@7.22.15(@babel/core@7.23.6): 411 + resolution: {integrity: sha512-29FkPLFjn4TPEa3RE7GpW+qbE8tlsu3jntNYNfcGsc49LphF1PQIiD+vMZ1z1xVOKt+93khA9tc2JBs3kBjA7w==} 412 + engines: {node: '>=6.9.0'} 413 + peerDependencies: 414 + '@babel/core': ^7.0.0 415 + dependencies: 416 + '@babel/core': 7.23.6 417 + '@babel/helper-annotate-as-pure': 7.22.5 418 + regexpu-core: 5.3.2 419 + semver: 6.3.1 420 + dev: true 421 + 422 + /@babel/helper-create-regexp-features-plugin@7.22.9(@babel/core@7.23.6): 413 423 resolution: {integrity: sha512-+svjVa/tFwsNSG4NEy1h85+HQ5imbT92Q5/bgtS7P0GTQlP8WuFdqsiABmQouhiFGyV66oGxZFpeYHza1rNsKw==} 414 424 engines: {node: '>=6.9.0'} 415 425 peerDependencies: 416 426 '@babel/core': ^7.0.0 417 427 dependencies: 418 - '@babel/core': 7.22.11 428 + '@babel/core': 7.23.6 419 429 '@babel/helper-annotate-as-pure': 7.22.5 420 430 regexpu-core: 5.3.2 421 431 semver: 6.3.1 422 432 dev: true 423 433 424 - /@babel/helper-define-polyfill-provider@0.4.2(@babel/core@7.22.11): 425 - resolution: {integrity: sha512-k0qnnOqHn5dK9pZpfD5XXZ9SojAITdCKRn2Lp6rnDGzIbaP0rHyMPk/4wsSxVBVz4RfN0q6VpXWP2pDGIoQ7hw==} 434 + /@babel/helper-define-polyfill-provider@0.4.4(@babel/core@7.23.6): 435 + resolution: {integrity: sha512-QcJMILQCu2jm5TFPGA3lCpJJTeEP+mqeXooG/NZbg/h5FTFi6V0+99ahlRsW8/kRLyb24LZVCCiclDedhLKcBA==} 426 436 peerDependencies: 427 437 '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 428 438 dependencies: 429 - '@babel/core': 7.22.11 430 - '@babel/helper-compilation-targets': 7.22.10 439 + '@babel/core': 7.23.6 440 + '@babel/helper-compilation-targets': 7.23.6 431 441 '@babel/helper-plugin-utils': 7.22.5 432 442 debug: 4.3.4 433 443 lodash.debounce: 4.0.8 ··· 439 449 /@babel/helper-environment-visitor@7.22.20: 440 450 resolution: {integrity: sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA==} 441 451 engines: {node: '>=6.9.0'} 442 - dev: true 443 - 444 - /@babel/helper-environment-visitor@7.22.5: 445 - resolution: {integrity: sha512-XGmhECfVA/5sAt+H+xpSg0mfrHq6FzNr9Oxh7PSEBBRUb/mL7Kz3NICXb194rCqAEdxkhPT1a88teizAFyvk8Q==} 446 - engines: {node: '>=6.9.0'} 447 - dev: true 448 - 449 - /@babel/helper-function-name@7.22.5: 450 - resolution: {integrity: sha512-wtHSq6jMRE3uF2otvfuD3DIvVhOsSNshQl0Qrd7qC9oQJzHvOL4qQXlQn2916+CXGywIjpGuIkoyZRRxHPiNQQ==} 451 - engines: {node: '>=6.9.0'} 452 - dependencies: 453 - '@babel/template': 7.22.5 454 - '@babel/types': 7.22.11 455 - dev: true 456 452 457 453 /@babel/helper-function-name@7.23.0: 458 454 resolution: {integrity: sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw==} ··· 460 456 dependencies: 461 457 '@babel/template': 7.22.15 462 458 '@babel/types': 7.23.0 463 - dev: true 464 459 465 460 /@babel/helper-hoist-variables@7.22.5: 466 461 resolution: {integrity: sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==} 467 462 engines: {node: '>=6.9.0'} 468 463 dependencies: 469 - '@babel/types': 7.22.11 470 - dev: true 464 + '@babel/types': 7.23.0 471 465 472 - /@babel/helper-member-expression-to-functions@7.22.5: 473 - resolution: {integrity: sha512-aBiH1NKMG0H2cGZqspNvsaBe6wNGjbJjuLy29aU+eDZjSbbN53BaxlpB02xm9v34pLTZ1nIQPFYn2qMZoa5BQQ==} 466 + /@babel/helper-member-expression-to-functions@7.23.0: 467 + resolution: {integrity: sha512-6gfrPwh7OuT6gZyJZvd6WbTfrqAo7vm4xCzAXOusKqq/vWdKXphTpj5klHKNmRUU6/QRGlBsyU9mAIPaWHlqJA==} 474 468 engines: {node: '>=6.9.0'} 475 469 dependencies: 476 - '@babel/types': 7.22.11 470 + '@babel/types': 7.23.0 477 471 dev: true 478 472 479 - /@babel/helper-module-imports@7.22.5: 480 - resolution: {integrity: sha512-8Dl6+HD/cKifutF5qGd/8ZJi84QeAKh+CEe1sBzz8UayBBGg1dAIJrdHOcOM5b2MpzWL2yuotJTtGjETq0qjXg==} 473 + /@babel/helper-module-imports@7.22.15: 474 + resolution: {integrity: sha512-0pYVBnDKZO2fnSPCrgM/6WMc7eS20Fbok+0r88fp+YtWVLZrp4CkafFGIp+W0VKw4a22sgebPT99y+FDNMdP4w==} 481 475 engines: {node: '>=6.9.0'} 482 476 dependencies: 483 - '@babel/types': 7.22.11 484 - dev: true 477 + '@babel/types': 7.23.0 485 478 486 - /@babel/helper-module-transforms@7.22.9(@babel/core@7.22.11): 487 - resolution: {integrity: sha512-t+WA2Xn5K+rTeGtC8jCsdAH52bjggG5TKRuRrAGNM/mjIbO4GxvlLMFOEz9wXY5I2XQ60PMFsAG2WIcG82dQMQ==} 479 + /@babel/helper-module-transforms@7.23.3(@babel/core@7.23.6): 480 + resolution: {integrity: sha512-7bBs4ED9OmswdfDzpz4MpWgSrV7FXlc3zIagvLFjS5H+Mk7Snr21vQ6QwrsoCGMfNC4e4LQPdoULEt4ykz0SRQ==} 488 481 engines: {node: '>=6.9.0'} 489 482 peerDependencies: 490 483 '@babel/core': ^7.0.0 491 484 dependencies: 492 - '@babel/core': 7.22.11 493 - '@babel/helper-environment-visitor': 7.22.5 494 - '@babel/helper-module-imports': 7.22.5 485 + '@babel/core': 7.23.6 486 + '@babel/helper-environment-visitor': 7.22.20 487 + '@babel/helper-module-imports': 7.22.15 495 488 '@babel/helper-simple-access': 7.22.5 496 489 '@babel/helper-split-export-declaration': 7.22.6 497 - '@babel/helper-validator-identifier': 7.22.5 498 - dev: true 490 + '@babel/helper-validator-identifier': 7.22.20 499 491 500 492 /@babel/helper-optimise-call-expression@7.22.5: 501 493 resolution: {integrity: sha512-HBwaojN0xFRx4yIvpwGqxiV2tUfl7401jlok564NgB9EHS1y6QT17FmKWm4ztqjeVdXLuC4fSvHc5ePpQjoTbw==} 502 494 engines: {node: '>=6.9.0'} 503 495 dependencies: 504 - '@babel/types': 7.22.11 496 + '@babel/types': 7.23.0 505 497 dev: true 506 498 507 499 /@babel/helper-plugin-utils@7.22.5: 508 500 resolution: {integrity: sha512-uLls06UVKgFG9QD4OeFYLEGteMIAa5kpTPcFL28yuCIIzsf6ZyKZMllKVOCZFhiZ5ptnwX4mtKdWCBE/uT4amg==} 509 501 engines: {node: '>=6.9.0'} 510 - dev: true 511 502 512 - /@babel/helper-remap-async-to-generator@7.22.9(@babel/core@7.22.11): 513 - resolution: {integrity: sha512-8WWC4oR4Px+tr+Fp0X3RHDVfINGpF3ad1HIbrc8A77epiR6eMMc6jsgozkzT2uDiOOdoS9cLIQ+XD2XvI2WSmQ==} 503 + /@babel/helper-remap-async-to-generator@7.22.20(@babel/core@7.23.6): 504 + resolution: {integrity: sha512-pBGyV4uBqOns+0UvhsTO8qgl8hO89PmiDYv+/COyp1aeMcmfrfruz+/nCMFiYyFF/Knn0yfrC85ZzNFjembFTw==} 514 505 engines: {node: '>=6.9.0'} 515 506 peerDependencies: 516 507 '@babel/core': ^7.0.0 517 508 dependencies: 518 - '@babel/core': 7.22.11 509 + '@babel/core': 7.23.6 519 510 '@babel/helper-annotate-as-pure': 7.22.5 520 - '@babel/helper-environment-visitor': 7.22.5 521 - '@babel/helper-wrap-function': 7.22.10 511 + '@babel/helper-environment-visitor': 7.22.20 512 + '@babel/helper-wrap-function': 7.22.20 522 513 dev: true 523 514 524 - /@babel/helper-replace-supers@7.22.9(@babel/core@7.22.11): 525 - resolution: {integrity: sha512-LJIKvvpgPOPUThdYqcX6IXRuIcTkcAub0IaDRGCZH0p5GPUp7PhRU9QVgFcDDd51BaPkk77ZjqFwh6DZTAEmGg==} 515 + /@babel/helper-replace-supers@7.22.20(@babel/core@7.23.6): 516 + resolution: {integrity: sha512-qsW0In3dbwQUbK8kejJ4R7IHVGwHJlV6lpG6UA7a9hSa2YEiAib+N1T2kr6PEeUT+Fl7najmSOS6SmAwCHK6Tw==} 526 517 engines: {node: '>=6.9.0'} 527 518 peerDependencies: 528 519 '@babel/core': ^7.0.0 529 520 dependencies: 530 - '@babel/core': 7.22.11 531 - '@babel/helper-environment-visitor': 7.22.5 532 - '@babel/helper-member-expression-to-functions': 7.22.5 521 + '@babel/core': 7.23.6 522 + '@babel/helper-environment-visitor': 7.22.20 523 + '@babel/helper-member-expression-to-functions': 7.23.0 533 524 '@babel/helper-optimise-call-expression': 7.22.5 534 525 dev: true 535 526 ··· 537 528 resolution: {integrity: sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w==} 538 529 engines: {node: '>=6.9.0'} 539 530 dependencies: 540 - '@babel/types': 7.22.11 541 - dev: true 531 + '@babel/types': 7.23.0 542 532 543 533 /@babel/helper-skip-transparent-expression-wrappers@7.22.5: 544 534 resolution: {integrity: sha512-tK14r66JZKiC43p8Ki33yLBVJKlQDFoA8GYN67lWCDCqoL6EMMSuM9b+Iff2jHaM/RRFYl7K+iiru7hbRqNx8Q==} 545 535 engines: {node: '>=6.9.0'} 546 536 dependencies: 547 - '@babel/types': 7.22.11 537 + '@babel/types': 7.23.0 548 538 dev: true 549 539 550 540 /@babel/helper-split-export-declaration@7.22.6: 551 541 resolution: {integrity: sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g==} 552 542 engines: {node: '>=6.9.0'} 553 543 dependencies: 554 - '@babel/types': 7.22.11 555 - dev: true 544 + '@babel/types': 7.23.0 556 545 557 546 /@babel/helper-string-parser@7.22.5: 558 547 resolution: {integrity: sha512-mM4COjgZox8U+JcXQwPijIZLElkgEpO5rsERVDJTc2qfCDfERyob6k5WegS14SX18IIjv+XD+GrqNumY5JRCDw==} 559 548 engines: {node: '>=6.9.0'} 560 - dev: true 561 549 562 - /@babel/helper-validator-identifier@7.22.20: 563 - resolution: {integrity: sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==} 550 + /@babel/helper-string-parser@7.23.4: 551 + resolution: {integrity: sha512-803gmbQdqwdf4olxrX4AJyFBV/RTr3rSmOj0rKwesmzlfhYNDEs+/iOcznzpNWlJlIlTJC2QfPFcHB6DlzdVLQ==} 564 552 engines: {node: '>=6.9.0'} 565 - dev: true 566 553 567 - /@babel/helper-validator-identifier@7.22.5: 568 - resolution: {integrity: sha512-aJXu+6lErq8ltp+JhkJUfk1MTGyuA4v7f3pA+BJ5HLfNC6nAQ0Cpi9uOquUj8Hehg0aUiHzWQbOVJGao6ztBAQ==} 554 + /@babel/helper-validator-identifier@7.22.20: 555 + resolution: {integrity: sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==} 569 556 engines: {node: '>=6.9.0'} 570 - dev: true 571 557 572 - /@babel/helper-validator-option@7.22.5: 573 - resolution: {integrity: sha512-R3oB6xlIVKUnxNUxbmgq7pKjxpru24zlimpE8WK47fACIlM0II/Hm1RS8IaOI7NgCr6LNS+jl5l75m20npAziw==} 558 + /@babel/helper-validator-option@7.23.5: 559 + resolution: {integrity: sha512-85ttAOMLsr53VgXkTbkx8oA6YTfT4q7/HzXSLEYmjcSTJPMPQtvq1BD79Byep5xMUYbGRzEpDsjUf3dyp54IKw==} 574 560 engines: {node: '>=6.9.0'} 575 - dev: true 576 561 577 - /@babel/helper-wrap-function@7.22.10: 578 - resolution: {integrity: sha512-OnMhjWjuGYtdoO3FmsEFWvBStBAe2QOgwOLsLNDjN+aaiMD8InJk1/O3HSD8lkqTjCgg5YI34Tz15KNNA3p+nQ==} 562 + /@babel/helper-wrap-function@7.22.20: 563 + resolution: {integrity: sha512-pms/UwkOpnQe/PDAEdV/d7dVCoBbB+R4FvYoHGZz+4VPcg7RtYy2KP7S2lbuWM6FCSgob5wshfGESbC/hzNXZw==} 579 564 engines: {node: '>=6.9.0'} 580 565 dependencies: 581 - '@babel/helper-function-name': 7.22.5 582 - '@babel/template': 7.22.5 583 - '@babel/types': 7.22.11 566 + '@babel/helper-function-name': 7.23.0 567 + '@babel/template': 7.22.15 568 + '@babel/types': 7.23.0 584 569 dev: true 585 570 586 - /@babel/helpers@7.22.11: 587 - resolution: {integrity: sha512-vyOXC8PBWaGc5h7GMsNx68OH33cypkEDJCHvYVVgVbbxJDROYVtexSk0gK5iCF1xNjRIN2s8ai7hwkWDq5szWg==} 571 + /@babel/helpers@7.23.6: 572 + resolution: {integrity: sha512-wCfsbN4nBidDRhpDhvcKlzHWCTlgJYUUdSJfzXb2NuBssDSIjc3xcb+znA7l+zYsFljAcGM0aFkN40cR3lXiGA==} 588 573 engines: {node: '>=6.9.0'} 589 574 dependencies: 590 - '@babel/template': 7.22.5 591 - '@babel/traverse': 7.23.2 592 - '@babel/types': 7.22.11 575 + '@babel/template': 7.22.15 576 + '@babel/traverse': 7.23.6 577 + '@babel/types': 7.23.6 593 578 transitivePeerDependencies: 594 579 - supports-color 595 - dev: true 596 580 597 581 /@babel/highlight@7.22.13: 598 582 resolution: {integrity: sha512-C/BaXcnnvBCmHTpz/VGZ8jgtE2aYlW4hxDhseJAWZb7gqGM/qtCK6iZUb0TyKFf7BOUsBH7Q7fkRsDRhg1XklQ==} 599 583 engines: {node: '>=6.9.0'} 600 584 dependencies: 601 - '@babel/helper-validator-identifier': 7.22.5 585 + '@babel/helper-validator-identifier': 7.22.20 602 586 chalk: 2.4.2 603 587 js-tokens: 4.0.0 604 588 dev: true 605 589 606 - /@babel/parser@7.22.14: 607 - resolution: {integrity: sha512-1KucTHgOvaw/LzCVrEOAyXkr9rQlp0A1HiHRYnSUE9dmb8PvPW7o5sscg+5169r54n3vGlbx6GevTE/Iw/P3AQ==} 608 - engines: {node: '>=6.0.0'} 609 - hasBin: true 590 + /@babel/highlight@7.23.4: 591 + resolution: {integrity: sha512-acGdbYSfp2WheJoJm/EBBBLh/ID8KDc64ISZ9DYtBmC8/Q204PZJLHyzeB5qMzJ5trcOkybd78M4x2KWsUq++A==} 592 + engines: {node: '>=6.9.0'} 610 593 dependencies: 611 - '@babel/types': 7.22.11 612 - dev: true 594 + '@babel/helper-validator-identifier': 7.22.20 595 + chalk: 2.4.2 596 + js-tokens: 4.0.0 613 597 614 598 /@babel/parser@7.23.0: 615 599 resolution: {integrity: sha512-vvPKKdMemU85V9WE/l5wZEmImpCtLqbnTvqDS2U1fJ96KrxoW7KrXhNsNCblQlg8Ck4b85yxdTyelsMUgFUXiw==} ··· 619 603 '@babel/types': 7.23.0 620 604 dev: true 621 605 622 - /@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@7.22.5(@babel/core@7.22.11): 623 - resolution: {integrity: sha512-NP1M5Rf+u2Gw9qfSO4ihjcTGW5zXTi36ITLd4/EoAcEhIZ0yjMqmftDNl3QC19CX7olhrjpyU454g/2W7X0jvQ==} 606 + /@babel/parser@7.23.6: 607 + resolution: {integrity: sha512-Z2uID7YJ7oNvAI20O9X0bblw7Qqs8Q2hFy0R9tAfnfLkp5MW0UH9eUvnDSnFwKZ0AvgS1ucqR4KzvVHgnke1VQ==} 608 + engines: {node: '>=6.0.0'} 609 + hasBin: true 610 + dependencies: 611 + '@babel/types': 7.23.6 612 + 613 + /@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@7.23.3(@babel/core@7.23.6): 614 + resolution: {integrity: sha512-iRkKcCqb7iGnq9+3G6rZ+Ciz5VywC4XNRHe57lKM+jOeYAoR0lVqdeeDRfh0tQcTfw/+vBhHn926FmQhLtlFLQ==} 624 615 engines: {node: '>=6.9.0'} 625 616 peerDependencies: 626 617 '@babel/core': ^7.0.0 627 618 dependencies: 628 - '@babel/core': 7.22.11 619 + '@babel/core': 7.23.6 629 620 '@babel/helper-plugin-utils': 7.22.5 630 621 dev: true 631 622 632 - /@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@7.22.5(@babel/core@7.22.11): 633 - resolution: {integrity: sha512-31Bb65aZaUwqCbWMnZPduIZxCBngHFlzyN6Dq6KAJjtx+lx6ohKHubc61OomYi7XwVD4Ol0XCVz4h+pYFR048g==} 623 + /@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@7.23.3(@babel/core@7.23.6): 624 + resolution: {integrity: sha512-WwlxbfMNdVEpQjZmK5mhm7oSwD3dS6eU+Iwsi4Knl9wAletWem7kaRsGOG+8UEbRyqxY4SS5zvtfXwX+jMxUwQ==} 634 625 engines: {node: '>=6.9.0'} 635 626 peerDependencies: 636 627 '@babel/core': ^7.13.0 637 628 dependencies: 638 - '@babel/core': 7.22.11 629 + '@babel/core': 7.23.6 639 630 '@babel/helper-plugin-utils': 7.22.5 640 631 '@babel/helper-skip-transparent-expression-wrappers': 7.22.5 641 - '@babel/plugin-transform-optional-chaining': 7.22.12(@babel/core@7.22.11) 632 + '@babel/plugin-transform-optional-chaining': 7.23.4(@babel/core@7.23.6) 633 + dev: true 634 + 635 + /@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@7.23.3(@babel/core@7.23.6): 636 + resolution: {integrity: sha512-XaJak1qcityzrX0/IU5nKHb34VaibwP3saKqG6a/tppelgllOH13LUann4ZCIBcVOeE6H18K4Vx9QKkVww3z/w==} 637 + engines: {node: '>=6.9.0'} 638 + peerDependencies: 639 + '@babel/core': ^7.0.0 640 + dependencies: 641 + '@babel/core': 7.23.6 642 + '@babel/helper-environment-visitor': 7.22.20 643 + '@babel/helper-plugin-utils': 7.22.5 642 644 dev: true 643 645 644 - /@babel/plugin-proposal-private-property-in-object@7.21.0-placeholder-for-preset-env.2(@babel/core@7.22.11): 646 + /@babel/plugin-proposal-private-property-in-object@7.21.0-placeholder-for-preset-env.2(@babel/core@7.23.6): 645 647 resolution: {integrity: sha512-SOSkfJDddaM7mak6cPEpswyTRnuRltl429hMraQEglW+OkovnCzsiszTmsrlY//qLFjCpQDFRvjdm2wA5pPm9w==} 646 648 engines: {node: '>=6.9.0'} 647 649 peerDependencies: 648 650 '@babel/core': ^7.0.0-0 649 651 dependencies: 650 - '@babel/core': 7.22.11 652 + '@babel/core': 7.23.6 651 653 dev: true 652 654 653 - /@babel/plugin-syntax-async-generators@7.8.4(@babel/core@7.22.11): 655 + /@babel/plugin-syntax-async-generators@7.8.4(@babel/core@7.23.6): 654 656 resolution: {integrity: sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==} 655 657 peerDependencies: 656 658 '@babel/core': ^7.0.0-0 657 659 dependencies: 658 - '@babel/core': 7.22.11 660 + '@babel/core': 7.23.6 659 661 '@babel/helper-plugin-utils': 7.22.5 660 662 dev: true 661 663 662 - /@babel/plugin-syntax-class-properties@7.12.13(@babel/core@7.22.11): 664 + /@babel/plugin-syntax-class-properties@7.12.13(@babel/core@7.23.6): 663 665 resolution: {integrity: sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==} 664 666 peerDependencies: 665 667 '@babel/core': ^7.0.0-0 666 668 dependencies: 667 - '@babel/core': 7.22.11 669 + '@babel/core': 7.23.6 668 670 '@babel/helper-plugin-utils': 7.22.5 669 671 dev: true 670 672 671 - /@babel/plugin-syntax-class-static-block@7.14.5(@babel/core@7.22.11): 673 + /@babel/plugin-syntax-class-static-block@7.14.5(@babel/core@7.23.6): 672 674 resolution: {integrity: sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==} 673 675 engines: {node: '>=6.9.0'} 674 676 peerDependencies: 675 677 '@babel/core': ^7.0.0-0 676 678 dependencies: 677 - '@babel/core': 7.22.11 679 + '@babel/core': 7.23.6 678 680 '@babel/helper-plugin-utils': 7.22.5 679 681 dev: true 680 682 681 - /@babel/plugin-syntax-dynamic-import@7.8.3(@babel/core@7.22.11): 683 + /@babel/plugin-syntax-dynamic-import@7.8.3(@babel/core@7.23.6): 682 684 resolution: {integrity: sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==} 683 685 peerDependencies: 684 686 '@babel/core': ^7.0.0-0 685 687 dependencies: 686 - '@babel/core': 7.22.11 688 + '@babel/core': 7.23.6 687 689 '@babel/helper-plugin-utils': 7.22.5 688 690 dev: true 689 691 690 - /@babel/plugin-syntax-export-namespace-from@7.8.3(@babel/core@7.22.11): 692 + /@babel/plugin-syntax-export-namespace-from@7.8.3(@babel/core@7.23.6): 691 693 resolution: {integrity: sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==} 692 694 peerDependencies: 693 695 '@babel/core': ^7.0.0-0 694 696 dependencies: 695 - '@babel/core': 7.22.11 697 + '@babel/core': 7.23.6 696 698 '@babel/helper-plugin-utils': 7.22.5 697 699 dev: true 698 700 699 - /@babel/plugin-syntax-import-assertions@7.22.5(@babel/core@7.22.11): 700 - resolution: {integrity: sha512-rdV97N7KqsRzeNGoWUOK6yUsWarLjE5Su/Snk9IYPU9CwkWHs4t+rTGOvffTR8XGkJMTAdLfO0xVnXm8wugIJg==} 701 + /@babel/plugin-syntax-import-assertions@7.23.3(@babel/core@7.23.6): 702 + resolution: {integrity: sha512-lPgDSU+SJLK3xmFDTV2ZRQAiM7UuUjGidwBywFavObCiZc1BeAAcMtHJKUya92hPHO+at63JJPLygilZard8jw==} 701 703 engines: {node: '>=6.9.0'} 702 704 peerDependencies: 703 705 '@babel/core': ^7.0.0-0 704 706 dependencies: 705 - '@babel/core': 7.22.11 707 + '@babel/core': 7.23.6 706 708 '@babel/helper-plugin-utils': 7.22.5 707 709 dev: true 708 710 709 - /@babel/plugin-syntax-import-attributes@7.22.5(@babel/core@7.22.11): 710 - resolution: {integrity: sha512-KwvoWDeNKPETmozyFE0P2rOLqh39EoQHNjqizrI5B8Vt0ZNS7M56s7dAiAqbYfiAYOuIzIh96z3iR2ktgu3tEg==} 711 + /@babel/plugin-syntax-import-attributes@7.23.3(@babel/core@7.23.6): 712 + resolution: {integrity: sha512-pawnE0P9g10xgoP7yKr6CK63K2FMsTE+FZidZO/1PwRdzmAPVs+HS1mAURUsgaoxammTJvULUdIkEK0gOcU2tA==} 711 713 engines: {node: '>=6.9.0'} 712 714 peerDependencies: 713 715 '@babel/core': ^7.0.0-0 714 716 dependencies: 715 - '@babel/core': 7.22.11 717 + '@babel/core': 7.23.6 716 718 '@babel/helper-plugin-utils': 7.22.5 717 719 dev: true 718 720 719 - /@babel/plugin-syntax-import-meta@7.10.4(@babel/core@7.22.11): 721 + /@babel/plugin-syntax-import-meta@7.10.4(@babel/core@7.23.6): 720 722 resolution: {integrity: sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==} 721 723 peerDependencies: 722 724 '@babel/core': ^7.0.0-0 723 725 dependencies: 724 - '@babel/core': 7.22.11 726 + '@babel/core': 7.23.6 725 727 '@babel/helper-plugin-utils': 7.22.5 726 728 dev: true 727 729 728 - /@babel/plugin-syntax-json-strings@7.8.3(@babel/core@7.22.11): 730 + /@babel/plugin-syntax-json-strings@7.8.3(@babel/core@7.23.6): 729 731 resolution: {integrity: sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==} 730 732 peerDependencies: 731 733 '@babel/core': ^7.0.0-0 732 734 dependencies: 733 - '@babel/core': 7.22.11 735 + '@babel/core': 7.23.6 734 736 '@babel/helper-plugin-utils': 7.22.5 735 737 dev: true 736 738 737 - /@babel/plugin-syntax-jsx@7.22.5(@babel/core@7.22.11): 738 - resolution: {integrity: sha512-gvyP4hZrgrs/wWMaocvxZ44Hw0b3W8Pe+cMxc8V1ULQ07oh8VNbIRaoD1LRZVTvD+0nieDKjfgKg89sD7rrKrg==} 739 + /@babel/plugin-syntax-jsx@7.23.3(@babel/core@7.23.6): 740 + resolution: {integrity: sha512-EB2MELswq55OHUoRZLGg/zC7QWUKfNLpE57m/S2yr1uEneIgsTgrSzXP3NXEsMkVn76OlaVVnzN+ugObuYGwhg==} 739 741 engines: {node: '>=6.9.0'} 740 742 peerDependencies: 741 743 '@babel/core': ^7.0.0-0 742 744 dependencies: 743 - '@babel/core': 7.22.11 745 + '@babel/core': 7.23.6 744 746 '@babel/helper-plugin-utils': 7.22.5 745 - dev: true 746 747 747 - /@babel/plugin-syntax-logical-assignment-operators@7.10.4(@babel/core@7.22.11): 748 + /@babel/plugin-syntax-logical-assignment-operators@7.10.4(@babel/core@7.23.6): 748 749 resolution: {integrity: sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==} 749 750 peerDependencies: 750 751 '@babel/core': ^7.0.0-0 751 752 dependencies: 752 - '@babel/core': 7.22.11 753 + '@babel/core': 7.23.6 753 754 '@babel/helper-plugin-utils': 7.22.5 754 755 dev: true 755 756 756 - /@babel/plugin-syntax-nullish-coalescing-operator@7.8.3(@babel/core@7.22.11): 757 + /@babel/plugin-syntax-nullish-coalescing-operator@7.8.3(@babel/core@7.23.6): 757 758 resolution: {integrity: sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==} 758 759 peerDependencies: 759 760 '@babel/core': ^7.0.0-0 760 761 dependencies: 761 - '@babel/core': 7.22.11 762 + '@babel/core': 7.23.6 762 763 '@babel/helper-plugin-utils': 7.22.5 763 764 dev: true 764 765 765 - /@babel/plugin-syntax-numeric-separator@7.10.4(@babel/core@7.22.11): 766 + /@babel/plugin-syntax-numeric-separator@7.10.4(@babel/core@7.23.6): 766 767 resolution: {integrity: sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==} 767 768 peerDependencies: 768 769 '@babel/core': ^7.0.0-0 769 770 dependencies: 770 - '@babel/core': 7.22.11 771 + '@babel/core': 7.23.6 771 772 '@babel/helper-plugin-utils': 7.22.5 772 773 dev: true 773 774 774 - /@babel/plugin-syntax-object-rest-spread@7.8.3(@babel/core@7.22.11): 775 + /@babel/plugin-syntax-object-rest-spread@7.8.3(@babel/core@7.23.6): 775 776 resolution: {integrity: sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==} 776 777 peerDependencies: 777 778 '@babel/core': ^7.0.0-0 778 779 dependencies: 779 - '@babel/core': 7.22.11 780 + '@babel/core': 7.23.6 780 781 '@babel/helper-plugin-utils': 7.22.5 781 782 dev: true 782 783 783 - /@babel/plugin-syntax-optional-catch-binding@7.8.3(@babel/core@7.22.11): 784 + /@babel/plugin-syntax-optional-catch-binding@7.8.3(@babel/core@7.23.6): 784 785 resolution: {integrity: sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==} 785 786 peerDependencies: 786 787 '@babel/core': ^7.0.0-0 787 788 dependencies: 788 - '@babel/core': 7.22.11 789 + '@babel/core': 7.23.6 789 790 '@babel/helper-plugin-utils': 7.22.5 790 791 dev: true 791 792 792 - /@babel/plugin-syntax-optional-chaining@7.8.3(@babel/core@7.22.11): 793 + /@babel/plugin-syntax-optional-chaining@7.8.3(@babel/core@7.23.6): 793 794 resolution: {integrity: sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==} 794 795 peerDependencies: 795 796 '@babel/core': ^7.0.0-0 796 797 dependencies: 797 - '@babel/core': 7.22.11 798 + '@babel/core': 7.23.6 798 799 '@babel/helper-plugin-utils': 7.22.5 799 800 dev: true 800 801 801 - /@babel/plugin-syntax-private-property-in-object@7.14.5(@babel/core@7.22.11): 802 + /@babel/plugin-syntax-private-property-in-object@7.14.5(@babel/core@7.23.6): 802 803 resolution: {integrity: sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==} 803 804 engines: {node: '>=6.9.0'} 804 805 peerDependencies: 805 806 '@babel/core': ^7.0.0-0 806 807 dependencies: 807 - '@babel/core': 7.22.11 808 + '@babel/core': 7.23.6 808 809 '@babel/helper-plugin-utils': 7.22.5 809 810 dev: true 810 811 811 - /@babel/plugin-syntax-top-level-await@7.14.5(@babel/core@7.22.11): 812 + /@babel/plugin-syntax-top-level-await@7.14.5(@babel/core@7.23.6): 812 813 resolution: {integrity: sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==} 813 814 engines: {node: '>=6.9.0'} 814 815 peerDependencies: 815 816 '@babel/core': ^7.0.0-0 816 817 dependencies: 817 - '@babel/core': 7.22.11 818 + '@babel/core': 7.23.6 818 819 '@babel/helper-plugin-utils': 7.22.5 819 820 dev: true 820 821 821 - /@babel/plugin-syntax-typescript@7.22.5(@babel/core@7.22.11): 822 - resolution: {integrity: sha512-1mS2o03i7t1c6VzH6fdQ3OA8tcEIxwG18zIPRp+UY1Ihv6W+XZzBCVxExF9upussPXJ0xE9XRHwMoNs1ep/nRQ==} 822 + /@babel/plugin-syntax-typescript@7.23.3(@babel/core@7.23.6): 823 + resolution: {integrity: sha512-9EiNjVJOMwCO+43TqoTrgQ8jMwcAd0sWyXi9RPfIsLTj4R2MADDDQXELhffaUx/uJv2AYcxBgPwH6j4TIA4ytQ==} 823 824 engines: {node: '>=6.9.0'} 824 825 peerDependencies: 825 826 '@babel/core': ^7.0.0-0 826 827 dependencies: 827 - '@babel/core': 7.22.11 828 + '@babel/core': 7.23.6 828 829 '@babel/helper-plugin-utils': 7.22.5 829 - dev: true 830 830 831 - /@babel/plugin-syntax-unicode-sets-regex@7.18.6(@babel/core@7.22.11): 831 + /@babel/plugin-syntax-unicode-sets-regex@7.18.6(@babel/core@7.23.6): 832 832 resolution: {integrity: sha512-727YkEAPwSIQTv5im8QHz3upqp92JTWhidIC81Tdx4VJYIte/VndKf1qKrfnnhPLiPghStWfvC/iFaMCQu7Nqg==} 833 833 engines: {node: '>=6.9.0'} 834 834 peerDependencies: 835 835 '@babel/core': ^7.0.0 836 836 dependencies: 837 - '@babel/core': 7.22.11 838 - '@babel/helper-create-regexp-features-plugin': 7.22.9(@babel/core@7.22.11) 837 + '@babel/core': 7.23.6 838 + '@babel/helper-create-regexp-features-plugin': 7.22.9(@babel/core@7.23.6) 839 839 '@babel/helper-plugin-utils': 7.22.5 840 840 dev: true 841 841 842 - /@babel/plugin-transform-arrow-functions@7.22.5(@babel/core@7.22.11): 843 - resolution: {integrity: sha512-26lTNXoVRdAnsaDXPpvCNUq+OVWEVC6bx7Vvz9rC53F2bagUWW4u4ii2+h8Fejfh7RYqPxn+libeFBBck9muEw==} 842 + /@babel/plugin-transform-arrow-functions@7.23.3(@babel/core@7.23.6): 843 + resolution: {integrity: sha512-NzQcQrzaQPkaEwoTm4Mhyl8jI1huEL/WWIEvudjTCMJ9aBZNpsJbMASx7EQECtQQPS/DcnFpo0FIh3LvEO9cxQ==} 844 844 engines: {node: '>=6.9.0'} 845 845 peerDependencies: 846 846 '@babel/core': ^7.0.0-0 847 847 dependencies: 848 - '@babel/core': 7.22.11 848 + '@babel/core': 7.23.6 849 849 '@babel/helper-plugin-utils': 7.22.5 850 850 dev: true 851 851 852 - /@babel/plugin-transform-async-generator-functions@7.22.11(@babel/core@7.22.11): 853 - resolution: {integrity: sha512-0pAlmeRJn6wU84zzZsEOx1JV1Jf8fqO9ok7wofIJwUnplYo247dcd24P+cMJht7ts9xkzdtB0EPHmOb7F+KzXw==} 852 + /@babel/plugin-transform-async-generator-functions@7.23.4(@babel/core@7.23.6): 853 + resolution: {integrity: sha512-efdkfPhHYTtn0G6n2ddrESE91fgXxjlqLsnUtPWnJs4a4mZIbUaK7ffqKIIUKXSHwcDvaCVX6GXkaJJFqtX7jw==} 854 854 engines: {node: '>=6.9.0'} 855 855 peerDependencies: 856 856 '@babel/core': ^7.0.0-0 857 857 dependencies: 858 - '@babel/core': 7.22.11 859 - '@babel/helper-environment-visitor': 7.22.5 858 + '@babel/core': 7.23.6 859 + '@babel/helper-environment-visitor': 7.22.20 860 860 '@babel/helper-plugin-utils': 7.22.5 861 - '@babel/helper-remap-async-to-generator': 7.22.9(@babel/core@7.22.11) 862 - '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.22.11) 861 + '@babel/helper-remap-async-to-generator': 7.22.20(@babel/core@7.23.6) 862 + '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.23.6) 863 863 dev: true 864 864 865 - /@babel/plugin-transform-async-to-generator@7.22.5(@babel/core@7.22.11): 866 - resolution: {integrity: sha512-b1A8D8ZzE/VhNDoV1MSJTnpKkCG5bJo+19R4o4oy03zM7ws8yEMK755j61Dc3EyvdysbqH5BOOTquJ7ZX9C6vQ==} 865 + /@babel/plugin-transform-async-to-generator@7.23.3(@babel/core@7.23.6): 866 + resolution: {integrity: sha512-A7LFsKi4U4fomjqXJlZg/u0ft/n8/7n7lpffUP/ZULx/DtV9SGlNKZolHH6PE8Xl1ngCc0M11OaeZptXVkfKSw==} 867 867 engines: {node: '>=6.9.0'} 868 868 peerDependencies: 869 869 '@babel/core': ^7.0.0-0 870 870 dependencies: 871 - '@babel/core': 7.22.11 872 - '@babel/helper-module-imports': 7.22.5 871 + '@babel/core': 7.23.6 872 + '@babel/helper-module-imports': 7.22.15 873 873 '@babel/helper-plugin-utils': 7.22.5 874 - '@babel/helper-remap-async-to-generator': 7.22.9(@babel/core@7.22.11) 874 + '@babel/helper-remap-async-to-generator': 7.22.20(@babel/core@7.23.6) 875 875 dev: true 876 876 877 - /@babel/plugin-transform-block-scoped-functions@7.22.5(@babel/core@7.22.11): 878 - resolution: {integrity: sha512-tdXZ2UdknEKQWKJP1KMNmuF5Lx3MymtMN/pvA+p/VEkhK8jVcQ1fzSy8KM9qRYhAf2/lV33hoMPKI/xaI9sADA==} 877 + /@babel/plugin-transform-block-scoped-functions@7.23.3(@babel/core@7.23.6): 878 + resolution: {integrity: sha512-vI+0sIaPIO6CNuM9Kk5VmXcMVRiOpDh7w2zZt9GXzmE/9KD70CUEVhvPR/etAeNK/FAEkhxQtXOzVF3EuRL41A==} 879 879 engines: {node: '>=6.9.0'} 880 880 peerDependencies: 881 881 '@babel/core': ^7.0.0-0 882 882 dependencies: 883 - '@babel/core': 7.22.11 883 + '@babel/core': 7.23.6 884 884 '@babel/helper-plugin-utils': 7.22.5 885 885 dev: true 886 886 887 - /@babel/plugin-transform-block-scoping@7.22.10(@babel/core@7.22.11): 888 - resolution: {integrity: sha512-1+kVpGAOOI1Albt6Vse7c8pHzcZQdQKW+wJH+g8mCaszOdDVwRXa/slHPqIw+oJAJANTKDMuM2cBdV0Dg618Vg==} 887 + /@babel/plugin-transform-block-scoping@7.23.4(@babel/core@7.23.6): 888 + resolution: {integrity: sha512-0QqbP6B6HOh7/8iNR4CQU2Th/bbRtBp4KS9vcaZd1fZ0wSh5Fyssg0UCIHwxh+ka+pNDREbVLQnHCMHKZfPwfw==} 889 889 engines: {node: '>=6.9.0'} 890 890 peerDependencies: 891 891 '@babel/core': ^7.0.0-0 892 892 dependencies: 893 - '@babel/core': 7.22.11 893 + '@babel/core': 7.23.6 894 894 '@babel/helper-plugin-utils': 7.22.5 895 895 dev: true 896 896 897 - /@babel/plugin-transform-class-properties@7.22.5(@babel/core@7.22.11): 898 - resolution: {integrity: sha512-nDkQ0NfkOhPTq8YCLiWNxp1+f9fCobEjCb0n8WdbNUBc4IB5V7P1QnX9IjpSoquKrXF5SKojHleVNs2vGeHCHQ==} 897 + /@babel/plugin-transform-class-properties@7.23.3(@babel/core@7.23.6): 898 + resolution: {integrity: sha512-uM+AN8yCIjDPccsKGlw271xjJtGii+xQIF/uMPS8H15L12jZTsLfF4o5vNO7d/oUguOyfdikHGc/yi9ge4SGIg==} 899 899 engines: {node: '>=6.9.0'} 900 900 peerDependencies: 901 901 '@babel/core': ^7.0.0-0 902 902 dependencies: 903 - '@babel/core': 7.22.11 904 - '@babel/helper-create-class-features-plugin': 7.22.11(@babel/core@7.22.11) 903 + '@babel/core': 7.23.6 904 + '@babel/helper-create-class-features-plugin': 7.23.6(@babel/core@7.23.6) 905 905 '@babel/helper-plugin-utils': 7.22.5 906 906 dev: true 907 907 908 - /@babel/plugin-transform-class-static-block@7.22.11(@babel/core@7.22.11): 909 - resolution: {integrity: sha512-GMM8gGmqI7guS/llMFk1bJDkKfn3v3C4KHK9Yg1ey5qcHcOlKb0QvcMrgzvxo+T03/4szNh5lghY+fEC98Kq9g==} 908 + /@babel/plugin-transform-class-static-block@7.23.4(@babel/core@7.23.6): 909 + resolution: {integrity: sha512-nsWu/1M+ggti1SOALj3hfx5FXzAY06fwPJsUZD4/A5e1bWi46VUIWtD+kOX6/IdhXGsXBWllLFDSnqSCdUNydQ==} 910 910 engines: {node: '>=6.9.0'} 911 911 peerDependencies: 912 912 '@babel/core': ^7.12.0 913 913 dependencies: 914 - '@babel/core': 7.22.11 915 - '@babel/helper-create-class-features-plugin': 7.22.11(@babel/core@7.22.11) 914 + '@babel/core': 7.23.6 915 + '@babel/helper-create-class-features-plugin': 7.23.6(@babel/core@7.23.6) 916 916 '@babel/helper-plugin-utils': 7.22.5 917 - '@babel/plugin-syntax-class-static-block': 7.14.5(@babel/core@7.22.11) 917 + '@babel/plugin-syntax-class-static-block': 7.14.5(@babel/core@7.23.6) 918 918 dev: true 919 919 920 - /@babel/plugin-transform-classes@7.22.6(@babel/core@7.22.11): 921 - resolution: {integrity: sha512-58EgM6nuPNG6Py4Z3zSuu0xWu2VfodiMi72Jt5Kj2FECmaYk1RrTXA45z6KBFsu9tRgwQDwIiY4FXTt+YsSFAQ==} 920 + /@babel/plugin-transform-classes@7.23.5(@babel/core@7.23.6): 921 + resolution: {integrity: sha512-jvOTR4nicqYC9yzOHIhXG5emiFEOpappSJAl73SDSEDcybD+Puuze8Tnpb9p9qEyYup24tq891gkaygIFvWDqg==} 922 922 engines: {node: '>=6.9.0'} 923 923 peerDependencies: 924 924 '@babel/core': ^7.0.0-0 925 925 dependencies: 926 - '@babel/core': 7.22.11 926 + '@babel/core': 7.23.6 927 927 '@babel/helper-annotate-as-pure': 7.22.5 928 - '@babel/helper-compilation-targets': 7.22.10 929 - '@babel/helper-environment-visitor': 7.22.5 930 - '@babel/helper-function-name': 7.22.5 928 + '@babel/helper-compilation-targets': 7.23.6 929 + '@babel/helper-environment-visitor': 7.22.20 930 + '@babel/helper-function-name': 7.23.0 931 931 '@babel/helper-optimise-call-expression': 7.22.5 932 932 '@babel/helper-plugin-utils': 7.22.5 933 - '@babel/helper-replace-supers': 7.22.9(@babel/core@7.22.11) 933 + '@babel/helper-replace-supers': 7.22.20(@babel/core@7.23.6) 934 934 '@babel/helper-split-export-declaration': 7.22.6 935 935 globals: 11.12.0 936 936 dev: true 937 937 938 - /@babel/plugin-transform-computed-properties@7.22.5(@babel/core@7.22.11): 939 - resolution: {integrity: sha512-4GHWBgRf0krxPX+AaPtgBAlTgTeZmqDynokHOX7aqqAB4tHs3U2Y02zH6ETFdLZGcg9UQSD1WCmkVrE9ErHeOg==} 938 + /@babel/plugin-transform-computed-properties@7.23.3(@babel/core@7.23.6): 939 + resolution: {integrity: sha512-dTj83UVTLw/+nbiHqQSFdwO9CbTtwq1DsDqm3CUEtDrZNET5rT5E6bIdTlOftDTDLMYxvxHNEYO4B9SLl8SLZw==} 940 940 engines: {node: '>=6.9.0'} 941 941 peerDependencies: 942 942 '@babel/core': ^7.0.0-0 943 943 dependencies: 944 - '@babel/core': 7.22.11 944 + '@babel/core': 7.23.6 945 945 '@babel/helper-plugin-utils': 7.22.5 946 - '@babel/template': 7.22.5 946 + '@babel/template': 7.22.15 947 947 dev: true 948 948 949 - /@babel/plugin-transform-destructuring@7.22.10(@babel/core@7.22.11): 950 - resolution: {integrity: sha512-dPJrL0VOyxqLM9sritNbMSGx/teueHF/htMKrPT7DNxccXxRDPYqlgPFFdr8u+F+qUZOkZoXue/6rL5O5GduEw==} 949 + /@babel/plugin-transform-destructuring@7.23.3(@babel/core@7.23.6): 950 + resolution: {integrity: sha512-n225npDqjDIr967cMScVKHXJs7rout1q+tt50inyBCPkyZ8KxeI6d+GIbSBTT/w/9WdlWDOej3V9HE5Lgk57gw==} 951 951 engines: {node: '>=6.9.0'} 952 952 peerDependencies: 953 953 '@babel/core': ^7.0.0-0 954 954 dependencies: 955 - '@babel/core': 7.22.11 955 + '@babel/core': 7.23.6 956 956 '@babel/helper-plugin-utils': 7.22.5 957 957 dev: true 958 958 959 - /@babel/plugin-transform-dotall-regex@7.22.5(@babel/core@7.22.11): 960 - resolution: {integrity: sha512-5/Yk9QxCQCl+sOIB1WelKnVRxTJDSAIxtJLL2/pqL14ZVlbH0fUQUZa/T5/UnQtBNgghR7mfB8ERBKyKPCi7Vw==} 959 + /@babel/plugin-transform-dotall-regex@7.23.3(@babel/core@7.23.6): 960 + resolution: {integrity: sha512-vgnFYDHAKzFaTVp+mneDsIEbnJ2Np/9ng9iviHw3P/KVcgONxpNULEW/51Z/BaFojG2GI2GwwXck5uV1+1NOYQ==} 961 961 engines: {node: '>=6.9.0'} 962 962 peerDependencies: 963 963 '@babel/core': ^7.0.0-0 964 964 dependencies: 965 - '@babel/core': 7.22.11 966 - '@babel/helper-create-regexp-features-plugin': 7.22.9(@babel/core@7.22.11) 965 + '@babel/core': 7.23.6 966 + '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.23.6) 967 967 '@babel/helper-plugin-utils': 7.22.5 968 968 dev: true 969 969 970 - /@babel/plugin-transform-duplicate-keys@7.22.5(@babel/core@7.22.11): 971 - resolution: {integrity: sha512-dEnYD+9BBgld5VBXHnF/DbYGp3fqGMsyxKbtD1mDyIA7AkTSpKXFhCVuj/oQVOoALfBs77DudA0BE4d5mcpmqw==} 970 + /@babel/plugin-transform-duplicate-keys@7.23.3(@babel/core@7.23.6): 971 + resolution: {integrity: sha512-RrqQ+BQmU3Oyav3J+7/myfvRCq7Tbz+kKLLshUmMwNlDHExbGL7ARhajvoBJEvc+fCguPPu887N+3RRXBVKZUA==} 972 972 engines: {node: '>=6.9.0'} 973 973 peerDependencies: 974 974 '@babel/core': ^7.0.0-0 975 975 dependencies: 976 - '@babel/core': 7.22.11 976 + '@babel/core': 7.23.6 977 977 '@babel/helper-plugin-utils': 7.22.5 978 978 dev: true 979 979 980 - /@babel/plugin-transform-dynamic-import@7.22.11(@babel/core@7.22.11): 981 - resolution: {integrity: sha512-g/21plo58sfteWjaO0ZNVb+uEOkJNjAaHhbejrnBmu011l/eNDScmkbjCC3l4FKb10ViaGU4aOkFznSu2zRHgA==} 980 + /@babel/plugin-transform-dynamic-import@7.23.4(@babel/core@7.23.6): 981 + resolution: {integrity: sha512-V6jIbLhdJK86MaLh4Jpghi8ho5fGzt3imHOBu/x0jlBaPYqDoWz4RDXjmMOfnh+JWNaQleEAByZLV0QzBT4YQQ==} 982 982 engines: {node: '>=6.9.0'} 983 983 peerDependencies: 984 984 '@babel/core': ^7.0.0-0 985 985 dependencies: 986 - '@babel/core': 7.22.11 986 + '@babel/core': 7.23.6 987 987 '@babel/helper-plugin-utils': 7.22.5 988 - '@babel/plugin-syntax-dynamic-import': 7.8.3(@babel/core@7.22.11) 988 + '@babel/plugin-syntax-dynamic-import': 7.8.3(@babel/core@7.23.6) 989 989 dev: true 990 990 991 - /@babel/plugin-transform-exponentiation-operator@7.22.5(@babel/core@7.22.11): 992 - resolution: {integrity: sha512-vIpJFNM/FjZ4rh1myqIya9jXwrwwgFRHPjT3DkUA9ZLHuzox8jiXkOLvwm1H+PQIP3CqfC++WPKeuDi0Sjdj1g==} 991 + /@babel/plugin-transform-exponentiation-operator@7.23.3(@babel/core@7.23.6): 992 + resolution: {integrity: sha512-5fhCsl1odX96u7ILKHBj4/Y8vipoqwsJMh4csSA8qFfxrZDEA4Ssku2DyNvMJSmZNOEBT750LfFPbtrnTP90BQ==} 993 993 engines: {node: '>=6.9.0'} 994 994 peerDependencies: 995 995 '@babel/core': ^7.0.0-0 996 996 dependencies: 997 - '@babel/core': 7.22.11 998 - '@babel/helper-builder-binary-assignment-operator-visitor': 7.22.10 997 + '@babel/core': 7.23.6 998 + '@babel/helper-builder-binary-assignment-operator-visitor': 7.22.15 999 999 '@babel/helper-plugin-utils': 7.22.5 1000 1000 dev: true 1001 1001 1002 - /@babel/plugin-transform-export-namespace-from@7.22.11(@babel/core@7.22.11): 1003 - resolution: {integrity: sha512-xa7aad7q7OiT8oNZ1mU7NrISjlSkVdMbNxn9IuLZyL9AJEhs1Apba3I+u5riX1dIkdptP5EKDG5XDPByWxtehw==} 1002 + /@babel/plugin-transform-export-namespace-from@7.23.4(@babel/core@7.23.6): 1003 + resolution: {integrity: sha512-GzuSBcKkx62dGzZI1WVgTWvkkz84FZO5TC5T8dl/Tht/rAla6Dg/Mz9Yhypg+ezVACf/rgDuQt3kbWEv7LdUDQ==} 1004 1004 engines: {node: '>=6.9.0'} 1005 1005 peerDependencies: 1006 1006 '@babel/core': ^7.0.0-0 1007 1007 dependencies: 1008 - '@babel/core': 7.22.11 1008 + '@babel/core': 7.23.6 1009 1009 '@babel/helper-plugin-utils': 7.22.5 1010 - '@babel/plugin-syntax-export-namespace-from': 7.8.3(@babel/core@7.22.11) 1010 + '@babel/plugin-syntax-export-namespace-from': 7.8.3(@babel/core@7.23.6) 1011 1011 dev: true 1012 1012 1013 - /@babel/plugin-transform-for-of@7.22.5(@babel/core@7.22.11): 1014 - resolution: {integrity: sha512-3kxQjX1dU9uudwSshyLeEipvrLjBCVthCgeTp6CzE/9JYrlAIaeekVxRpCWsDDfYTfRZRoCeZatCQvwo+wvK8A==} 1013 + /@babel/plugin-transform-for-of@7.23.6(@babel/core@7.23.6): 1014 + resolution: {integrity: sha512-aYH4ytZ0qSuBbpfhuofbg/e96oQ7U2w1Aw/UQmKT+1l39uEhUPoFS3fHevDc1G0OvewyDudfMKY1OulczHzWIw==} 1015 1015 engines: {node: '>=6.9.0'} 1016 1016 peerDependencies: 1017 1017 '@babel/core': ^7.0.0-0 1018 1018 dependencies: 1019 - '@babel/core': 7.22.11 1019 + '@babel/core': 7.23.6 1020 1020 '@babel/helper-plugin-utils': 7.22.5 1021 + '@babel/helper-skip-transparent-expression-wrappers': 7.22.5 1021 1022 dev: true 1022 1023 1023 - /@babel/plugin-transform-function-name@7.22.5(@babel/core@7.22.11): 1024 - resolution: {integrity: sha512-UIzQNMS0p0HHiQm3oelztj+ECwFnj+ZRV4KnguvlsD2of1whUeM6o7wGNj6oLwcDoAXQ8gEqfgC24D+VdIcevg==} 1024 + /@babel/plugin-transform-function-name@7.23.3(@babel/core@7.23.6): 1025 + resolution: {integrity: sha512-I1QXp1LxIvt8yLaib49dRW5Okt7Q4oaxao6tFVKS/anCdEOMtYwWVKoiOA1p34GOWIZjUK0E+zCp7+l1pfQyiw==} 1025 1026 engines: {node: '>=6.9.0'} 1026 1027 peerDependencies: 1027 1028 '@babel/core': ^7.0.0-0 1028 1029 dependencies: 1029 - '@babel/core': 7.22.11 1030 - '@babel/helper-compilation-targets': 7.22.10 1031 - '@babel/helper-function-name': 7.22.5 1030 + '@babel/core': 7.23.6 1031 + '@babel/helper-compilation-targets': 7.23.6 1032 + '@babel/helper-function-name': 7.23.0 1032 1033 '@babel/helper-plugin-utils': 7.22.5 1033 1034 dev: true 1034 1035 1035 - /@babel/plugin-transform-json-strings@7.22.11(@babel/core@7.22.11): 1036 - resolution: {integrity: sha512-CxT5tCqpA9/jXFlme9xIBCc5RPtdDq3JpkkhgHQqtDdiTnTI0jtZ0QzXhr5DILeYifDPp2wvY2ad+7+hLMW5Pw==} 1036 + /@babel/plugin-transform-json-strings@7.23.4(@babel/core@7.23.6): 1037 + resolution: {integrity: sha512-81nTOqM1dMwZ/aRXQ59zVubN9wHGqk6UtqRK+/q+ciXmRy8fSolhGVvG09HHRGo4l6fr/c4ZhXUQH0uFW7PZbg==} 1037 1038 engines: {node: '>=6.9.0'} 1038 1039 peerDependencies: 1039 1040 '@babel/core': ^7.0.0-0 1040 1041 dependencies: 1041 - '@babel/core': 7.22.11 1042 + '@babel/core': 7.23.6 1042 1043 '@babel/helper-plugin-utils': 7.22.5 1043 - '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.22.11) 1044 + '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.23.6) 1044 1045 dev: true 1045 1046 1046 - /@babel/plugin-transform-literals@7.22.5(@babel/core@7.22.11): 1047 - resolution: {integrity: sha512-fTLj4D79M+mepcw3dgFBTIDYpbcB9Sm0bpm4ppXPaO+U+PKFFyV9MGRvS0gvGw62sd10kT5lRMKXAADb9pWy8g==} 1047 + /@babel/plugin-transform-literals@7.23.3(@babel/core@7.23.6): 1048 + resolution: {integrity: sha512-wZ0PIXRxnwZvl9AYpqNUxpZ5BiTGrYt7kueGQ+N5FiQ7RCOD4cm8iShd6S6ggfVIWaJf2EMk8eRzAh52RfP4rQ==} 1048 1049 engines: {node: '>=6.9.0'} 1049 1050 peerDependencies: 1050 1051 '@babel/core': ^7.0.0-0 1051 1052 dependencies: 1052 - '@babel/core': 7.22.11 1053 + '@babel/core': 7.23.6 1053 1054 '@babel/helper-plugin-utils': 7.22.5 1054 1055 dev: true 1055 1056 1056 - /@babel/plugin-transform-logical-assignment-operators@7.22.11(@babel/core@7.22.11): 1057 - resolution: {integrity: sha512-qQwRTP4+6xFCDV5k7gZBF3C31K34ut0tbEcTKxlX/0KXxm9GLcO14p570aWxFvVzx6QAfPgq7gaeIHXJC8LswQ==} 1057 + /@babel/plugin-transform-logical-assignment-operators@7.23.4(@babel/core@7.23.6): 1058 + resolution: {integrity: sha512-Mc/ALf1rmZTP4JKKEhUwiORU+vcfarFVLfcFiolKUo6sewoxSEgl36ak5t+4WamRsNr6nzjZXQjM35WsU+9vbg==} 1058 1059 engines: {node: '>=6.9.0'} 1059 1060 peerDependencies: 1060 1061 '@babel/core': ^7.0.0-0 1061 1062 dependencies: 1062 - '@babel/core': 7.22.11 1063 + '@babel/core': 7.23.6 1063 1064 '@babel/helper-plugin-utils': 7.22.5 1064 - '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.22.11) 1065 + '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.23.6) 1065 1066 dev: true 1066 1067 1067 - /@babel/plugin-transform-member-expression-literals@7.22.5(@babel/core@7.22.11): 1068 - resolution: {integrity: sha512-RZEdkNtzzYCFl9SE9ATaUMTj2hqMb4StarOJLrZRbqqU4HSBE7UlBw9WBWQiDzrJZJdUWiMTVDI6Gv/8DPvfew==} 1068 + /@babel/plugin-transform-member-expression-literals@7.23.3(@babel/core@7.23.6): 1069 + resolution: {integrity: sha512-sC3LdDBDi5x96LA+Ytekz2ZPk8i/Ck+DEuDbRAll5rknJ5XRTSaPKEYwomLcs1AA8wg9b3KjIQRsnApj+q51Ag==} 1069 1070 engines: {node: '>=6.9.0'} 1070 1071 peerDependencies: 1071 1072 '@babel/core': ^7.0.0-0 1072 1073 dependencies: 1073 - '@babel/core': 7.22.11 1074 + '@babel/core': 7.23.6 1074 1075 '@babel/helper-plugin-utils': 7.22.5 1075 1076 dev: true 1076 1077 1077 - /@babel/plugin-transform-modules-amd@7.22.5(@babel/core@7.22.11): 1078 - resolution: {integrity: sha512-R+PTfLTcYEmb1+kK7FNkhQ1gP4KgjpSO6HfH9+f8/yfp2Nt3ggBjiVpRwmwTlfqZLafYKJACy36yDXlEmI9HjQ==} 1078 + /@babel/plugin-transform-modules-amd@7.23.3(@babel/core@7.23.6): 1079 + resolution: {integrity: sha512-vJYQGxeKM4t8hYCKVBlZX/gtIY2I7mRGFNcm85sgXGMTBcoV3QdVtdpbcWEbzbfUIUZKwvgFT82mRvaQIebZzw==} 1079 1080 engines: {node: '>=6.9.0'} 1080 1081 peerDependencies: 1081 1082 '@babel/core': ^7.0.0-0 1082 1083 dependencies: 1083 - '@babel/core': 7.22.11 1084 - '@babel/helper-module-transforms': 7.22.9(@babel/core@7.22.11) 1084 + '@babel/core': 7.23.6 1085 + '@babel/helper-module-transforms': 7.23.3(@babel/core@7.23.6) 1085 1086 '@babel/helper-plugin-utils': 7.22.5 1086 1087 dev: true 1087 1088 1088 - /@babel/plugin-transform-modules-commonjs@7.22.11(@babel/core@7.22.11): 1089 - resolution: {integrity: sha512-o2+bg7GDS60cJMgz9jWqRUsWkMzLCxp+jFDeDUT5sjRlAxcJWZ2ylNdI7QQ2+CH5hWu7OnN+Cv3htt7AkSf96g==} 1089 + /@babel/plugin-transform-modules-commonjs@7.23.3(@babel/core@7.23.6): 1090 + resolution: {integrity: sha512-aVS0F65LKsdNOtcz6FRCpE4OgsP2OFnW46qNxNIX9h3wuzaNcSQsJysuMwqSibC98HPrf2vCgtxKNwS0DAlgcA==} 1090 1091 engines: {node: '>=6.9.0'} 1091 1092 peerDependencies: 1092 1093 '@babel/core': ^7.0.0-0 1093 1094 dependencies: 1094 - '@babel/core': 7.22.11 1095 - '@babel/helper-module-transforms': 7.22.9(@babel/core@7.22.11) 1095 + '@babel/core': 7.23.6 1096 + '@babel/helper-module-transforms': 7.23.3(@babel/core@7.23.6) 1096 1097 '@babel/helper-plugin-utils': 7.22.5 1097 1098 '@babel/helper-simple-access': 7.22.5 1098 1099 dev: true 1099 1100 1100 - /@babel/plugin-transform-modules-systemjs@7.22.11(@babel/core@7.22.11): 1101 - resolution: {integrity: sha512-rIqHmHoMEOhI3VkVf5jQ15l539KrwhzqcBO6wdCNWPWc/JWt9ILNYNUssbRpeq0qWns8svuw8LnMNCvWBIJ8wA==} 1101 + /@babel/plugin-transform-modules-systemjs@7.23.3(@babel/core@7.23.6): 1102 + resolution: {integrity: sha512-ZxyKGTkF9xT9YJuKQRo19ewf3pXpopuYQd8cDXqNzc3mUNbOME0RKMoZxviQk74hwzfQsEe66dE92MaZbdHKNQ==} 1102 1103 engines: {node: '>=6.9.0'} 1103 1104 peerDependencies: 1104 1105 '@babel/core': ^7.0.0-0 1105 1106 dependencies: 1106 - '@babel/core': 7.22.11 1107 + '@babel/core': 7.23.6 1107 1108 '@babel/helper-hoist-variables': 7.22.5 1108 - '@babel/helper-module-transforms': 7.22.9(@babel/core@7.22.11) 1109 + '@babel/helper-module-transforms': 7.23.3(@babel/core@7.23.6) 1109 1110 '@babel/helper-plugin-utils': 7.22.5 1110 - '@babel/helper-validator-identifier': 7.22.5 1111 + '@babel/helper-validator-identifier': 7.22.20 1111 1112 dev: true 1112 1113 1113 - /@babel/plugin-transform-modules-umd@7.22.5(@babel/core@7.22.11): 1114 - resolution: {integrity: sha512-+S6kzefN/E1vkSsKx8kmQuqeQsvCKCd1fraCM7zXm4SFoggI099Tr4G8U81+5gtMdUeMQ4ipdQffbKLX0/7dBQ==} 1114 + /@babel/plugin-transform-modules-umd@7.23.3(@babel/core@7.23.6): 1115 + resolution: {integrity: sha512-zHsy9iXX2nIsCBFPud3jKn1IRPWg3Ing1qOZgeKV39m1ZgIdpJqvlWVeiHBZC6ITRG0MfskhYe9cLgntfSFPIg==} 1115 1116 engines: {node: '>=6.9.0'} 1116 1117 peerDependencies: 1117 1118 '@babel/core': ^7.0.0-0 1118 1119 dependencies: 1119 - '@babel/core': 7.22.11 1120 - '@babel/helper-module-transforms': 7.22.9(@babel/core@7.22.11) 1120 + '@babel/core': 7.23.6 1121 + '@babel/helper-module-transforms': 7.23.3(@babel/core@7.23.6) 1121 1122 '@babel/helper-plugin-utils': 7.22.5 1122 1123 dev: true 1123 1124 1124 - /@babel/plugin-transform-named-capturing-groups-regex@7.22.5(@babel/core@7.22.11): 1125 + /@babel/plugin-transform-named-capturing-groups-regex@7.22.5(@babel/core@7.23.6): 1125 1126 resolution: {integrity: sha512-YgLLKmS3aUBhHaxp5hi1WJTgOUb/NCuDHzGT9z9WTt3YG+CPRhJs6nprbStx6DnWM4dh6gt7SU3sZodbZ08adQ==} 1126 1127 engines: {node: '>=6.9.0'} 1127 1128 peerDependencies: 1128 1129 '@babel/core': ^7.0.0 1129 1130 dependencies: 1130 - '@babel/core': 7.22.11 1131 - '@babel/helper-create-regexp-features-plugin': 7.22.9(@babel/core@7.22.11) 1131 + '@babel/core': 7.23.6 1132 + '@babel/helper-create-regexp-features-plugin': 7.22.9(@babel/core@7.23.6) 1132 1133 '@babel/helper-plugin-utils': 7.22.5 1133 1134 dev: true 1134 1135 1135 - /@babel/plugin-transform-new-target@7.22.5(@babel/core@7.22.11): 1136 - resolution: {integrity: sha512-AsF7K0Fx/cNKVyk3a+DW0JLo+Ua598/NxMRvxDnkpCIGFh43+h/v2xyhRUYf6oD8gE4QtL83C7zZVghMjHd+iw==} 1136 + /@babel/plugin-transform-new-target@7.23.3(@babel/core@7.23.6): 1137 + resolution: {integrity: sha512-YJ3xKqtJMAT5/TIZnpAR3I+K+WaDowYbN3xyxI8zxx/Gsypwf9B9h0VB+1Nh6ACAAPRS5NSRje0uVv5i79HYGQ==} 1137 1138 engines: {node: '>=6.9.0'} 1138 1139 peerDependencies: 1139 1140 '@babel/core': ^7.0.0-0 1140 1141 dependencies: 1141 - '@babel/core': 7.22.11 1142 + '@babel/core': 7.23.6 1142 1143 '@babel/helper-plugin-utils': 7.22.5 1143 1144 dev: true 1144 1145 1145 - /@babel/plugin-transform-nullish-coalescing-operator@7.22.11(@babel/core@7.22.11): 1146 - resolution: {integrity: sha512-YZWOw4HxXrotb5xsjMJUDlLgcDXSfO9eCmdl1bgW4+/lAGdkjaEvOnQ4p5WKKdUgSzO39dgPl0pTnfxm0OAXcg==} 1146 + /@babel/plugin-transform-nullish-coalescing-operator@7.23.4(@babel/core@7.23.6): 1147 + resolution: {integrity: sha512-jHE9EVVqHKAQx+VePv5LLGHjmHSJR76vawFPTdlxR/LVJPfOEGxREQwQfjuZEOPTwG92X3LINSh3M40Rv4zpVA==} 1147 1148 engines: {node: '>=6.9.0'} 1148 1149 peerDependencies: 1149 1150 '@babel/core': ^7.0.0-0 1150 1151 dependencies: 1151 - '@babel/core': 7.22.11 1152 + '@babel/core': 7.23.6 1152 1153 '@babel/helper-plugin-utils': 7.22.5 1153 - '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.22.11) 1154 + '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.23.6) 1154 1155 dev: true 1155 1156 1156 - /@babel/plugin-transform-numeric-separator@7.22.11(@babel/core@7.22.11): 1157 - resolution: {integrity: sha512-3dzU4QGPsILdJbASKhF/V2TVP+gJya1PsueQCxIPCEcerqF21oEcrob4mzjsp2Py/1nLfF5m+xYNMDpmA8vffg==} 1157 + /@babel/plugin-transform-numeric-separator@7.23.4(@babel/core@7.23.6): 1158 + resolution: {integrity: sha512-mps6auzgwjRrwKEZA05cOwuDc9FAzoyFS4ZsG/8F43bTLf/TgkJg7QXOrPO1JO599iA3qgK9MXdMGOEC8O1h6Q==} 1158 1159 engines: {node: '>=6.9.0'} 1159 1160 peerDependencies: 1160 1161 '@babel/core': ^7.0.0-0 1161 1162 dependencies: 1162 - '@babel/core': 7.22.11 1163 + '@babel/core': 7.23.6 1163 1164 '@babel/helper-plugin-utils': 7.22.5 1164 - '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.22.11) 1165 + '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.23.6) 1165 1166 dev: true 1166 1167 1167 - /@babel/plugin-transform-object-rest-spread@7.22.11(@babel/core@7.22.11): 1168 - resolution: {integrity: sha512-nX8cPFa6+UmbepISvlf5jhQyaC7ASs/7UxHmMkuJ/k5xSHvDPPaibMo+v3TXwU/Pjqhep/nFNpd3zn4YR59pnw==} 1168 + /@babel/plugin-transform-object-rest-spread@7.23.4(@babel/core@7.23.6): 1169 + resolution: {integrity: sha512-9x9K1YyeQVw0iOXJlIzwm8ltobIIv7j2iLyP2jIhEbqPRQ7ScNgwQufU2I0Gq11VjyG4gI4yMXt2VFags+1N3g==} 1169 1170 engines: {node: '>=6.9.0'} 1170 1171 peerDependencies: 1171 1172 '@babel/core': ^7.0.0-0 1172 1173 dependencies: 1173 - '@babel/compat-data': 7.22.9 1174 - '@babel/core': 7.22.11 1175 - '@babel/helper-compilation-targets': 7.22.10 1174 + '@babel/compat-data': 7.23.5 1175 + '@babel/core': 7.23.6 1176 + '@babel/helper-compilation-targets': 7.23.6 1176 1177 '@babel/helper-plugin-utils': 7.22.5 1177 - '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.22.11) 1178 - '@babel/plugin-transform-parameters': 7.22.5(@babel/core@7.22.11) 1178 + '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.23.6) 1179 + '@babel/plugin-transform-parameters': 7.23.3(@babel/core@7.23.6) 1179 1180 dev: true 1180 1181 1181 - /@babel/plugin-transform-object-super@7.22.5(@babel/core@7.22.11): 1182 - resolution: {integrity: sha512-klXqyaT9trSjIUrcsYIfETAzmOEZL3cBYqOYLJxBHfMFFggmXOv+NYSX/Jbs9mzMVESw/WycLFPRx8ba/b2Ipw==} 1182 + /@babel/plugin-transform-object-super@7.23.3(@babel/core@7.23.6): 1183 + resolution: {integrity: sha512-BwQ8q0x2JG+3lxCVFohg+KbQM7plfpBwThdW9A6TMtWwLsbDA01Ek2Zb/AgDN39BiZsExm4qrXxjk+P1/fzGrA==} 1183 1184 engines: {node: '>=6.9.0'} 1184 1185 peerDependencies: 1185 1186 '@babel/core': ^7.0.0-0 1186 1187 dependencies: 1187 - '@babel/core': 7.22.11 1188 + '@babel/core': 7.23.6 1188 1189 '@babel/helper-plugin-utils': 7.22.5 1189 - '@babel/helper-replace-supers': 7.22.9(@babel/core@7.22.11) 1190 + '@babel/helper-replace-supers': 7.22.20(@babel/core@7.23.6) 1190 1191 dev: true 1191 1192 1192 - /@babel/plugin-transform-optional-catch-binding@7.22.11(@babel/core@7.22.11): 1193 - resolution: {integrity: sha512-rli0WxesXUeCJnMYhzAglEjLWVDF6ahb45HuprcmQuLidBJFWjNnOzssk2kuc6e33FlLaiZhG/kUIzUMWdBKaQ==} 1193 + /@babel/plugin-transform-optional-catch-binding@7.23.4(@babel/core@7.23.6): 1194 + resolution: {integrity: sha512-XIq8t0rJPHf6Wvmbn9nFxU6ao4c7WhghTR5WyV8SrJfUFzyxhCm4nhC+iAp3HFhbAKLfYpgzhJ6t4XCtVwqO5A==} 1194 1195 engines: {node: '>=6.9.0'} 1195 1196 peerDependencies: 1196 1197 '@babel/core': ^7.0.0-0 1197 1198 dependencies: 1198 - '@babel/core': 7.22.11 1199 + '@babel/core': 7.23.6 1199 1200 '@babel/helper-plugin-utils': 7.22.5 1200 - '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.22.11) 1201 + '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.23.6) 1201 1202 dev: true 1202 1203 1203 - /@babel/plugin-transform-optional-chaining@7.22.12(@babel/core@7.22.11): 1204 - resolution: {integrity: sha512-7XXCVqZtyFWqjDsYDY4T45w4mlx1rf7aOgkc/Ww76xkgBiOlmjPkx36PBLHa1k1rwWvVgYMPsbuVnIamx2ZQJw==} 1204 + /@babel/plugin-transform-optional-chaining@7.23.4(@babel/core@7.23.6): 1205 + resolution: {integrity: sha512-ZU8y5zWOfjM5vZ+asjgAPwDaBjJzgufjES89Rs4Lpq63O300R/kOz30WCLo6BxxX6QVEilwSlpClnG5cZaikTA==} 1205 1206 engines: {node: '>=6.9.0'} 1206 1207 peerDependencies: 1207 1208 '@babel/core': ^7.0.0-0 1208 1209 dependencies: 1209 - '@babel/core': 7.22.11 1210 + '@babel/core': 7.23.6 1210 1211 '@babel/helper-plugin-utils': 7.22.5 1211 1212 '@babel/helper-skip-transparent-expression-wrappers': 7.22.5 1212 - '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.22.11) 1213 + '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.23.6) 1213 1214 dev: true 1214 1215 1215 - /@babel/plugin-transform-parameters@7.22.5(@babel/core@7.22.11): 1216 - resolution: {integrity: sha512-AVkFUBurORBREOmHRKo06FjHYgjrabpdqRSwq6+C7R5iTCZOsM4QbcB27St0a4U6fffyAOqh3s/qEfybAhfivg==} 1216 + /@babel/plugin-transform-parameters@7.23.3(@babel/core@7.23.6): 1217 + resolution: {integrity: sha512-09lMt6UsUb3/34BbECKVbVwrT9bO6lILWln237z7sLaWnMsTi7Yc9fhX5DLpkJzAGfaReXI22wP41SZmnAA3Vw==} 1217 1218 engines: {node: '>=6.9.0'} 1218 1219 peerDependencies: 1219 1220 '@babel/core': ^7.0.0-0 1220 1221 dependencies: 1221 - '@babel/core': 7.22.11 1222 + '@babel/core': 7.23.6 1222 1223 '@babel/helper-plugin-utils': 7.22.5 1223 1224 dev: true 1224 1225 1225 - /@babel/plugin-transform-private-methods@7.22.5(@babel/core@7.22.11): 1226 - resolution: {integrity: sha512-PPjh4gyrQnGe97JTalgRGMuU4icsZFnWkzicB/fUtzlKUqvsWBKEpPPfr5a2JiyirZkHxnAqkQMO5Z5B2kK3fA==} 1226 + /@babel/plugin-transform-private-methods@7.23.3(@babel/core@7.23.6): 1227 + resolution: {integrity: sha512-UzqRcRtWsDMTLrRWFvUBDwmw06tCQH9Rl1uAjfh6ijMSmGYQ+fpdB+cnqRC8EMh5tuuxSv0/TejGL+7vyj+50g==} 1227 1228 engines: {node: '>=6.9.0'} 1228 1229 peerDependencies: 1229 1230 '@babel/core': ^7.0.0-0 1230 1231 dependencies: 1231 - '@babel/core': 7.22.11 1232 - '@babel/helper-create-class-features-plugin': 7.22.11(@babel/core@7.22.11) 1232 + '@babel/core': 7.23.6 1233 + '@babel/helper-create-class-features-plugin': 7.23.6(@babel/core@7.23.6) 1233 1234 '@babel/helper-plugin-utils': 7.22.5 1234 1235 dev: true 1235 1236 1236 - /@babel/plugin-transform-private-property-in-object@7.22.11(@babel/core@7.22.11): 1237 - resolution: {integrity: sha512-sSCbqZDBKHetvjSwpyWzhuHkmW5RummxJBVbYLkGkaiTOWGxml7SXt0iWa03bzxFIx7wOj3g/ILRd0RcJKBeSQ==} 1237 + /@babel/plugin-transform-private-property-in-object@7.23.4(@babel/core@7.23.6): 1238 + resolution: {integrity: sha512-9G3K1YqTq3F4Vt88Djx1UZ79PDyj+yKRnUy7cZGSMe+a7jkwD259uKKuUzQlPkGam7R+8RJwh5z4xO27fA1o2A==} 1238 1239 engines: {node: '>=6.9.0'} 1239 1240 peerDependencies: 1240 1241 '@babel/core': ^7.0.0-0 1241 1242 dependencies: 1242 - '@babel/core': 7.22.11 1243 + '@babel/core': 7.23.6 1243 1244 '@babel/helper-annotate-as-pure': 7.22.5 1244 - '@babel/helper-create-class-features-plugin': 7.22.11(@babel/core@7.22.11) 1245 + '@babel/helper-create-class-features-plugin': 7.23.6(@babel/core@7.23.6) 1245 1246 '@babel/helper-plugin-utils': 7.22.5 1246 - '@babel/plugin-syntax-private-property-in-object': 7.14.5(@babel/core@7.22.11) 1247 + '@babel/plugin-syntax-private-property-in-object': 7.14.5(@babel/core@7.23.6) 1247 1248 dev: true 1248 1249 1249 - /@babel/plugin-transform-property-literals@7.22.5(@babel/core@7.22.11): 1250 - resolution: {integrity: sha512-TiOArgddK3mK/x1Qwf5hay2pxI6wCZnvQqrFSqbtg1GLl2JcNMitVH/YnqjP+M31pLUeTfzY1HAXFDnUBV30rQ==} 1250 + /@babel/plugin-transform-property-literals@7.23.3(@babel/core@7.23.6): 1251 + resolution: {integrity: sha512-jR3Jn3y7cZp4oEWPFAlRsSWjxKe4PZILGBSd4nis1TsC5qeSpb+nrtihJuDhNI7QHiVbUaiXa0X2RZY3/TI6Nw==} 1251 1252 engines: {node: '>=6.9.0'} 1252 1253 peerDependencies: 1253 1254 '@babel/core': ^7.0.0-0 1254 1255 dependencies: 1255 - '@babel/core': 7.22.11 1256 + '@babel/core': 7.23.6 1256 1257 '@babel/helper-plugin-utils': 7.22.5 1257 1258 dev: true 1258 1259 1259 - /@babel/plugin-transform-react-jsx-self@7.22.5(@babel/core@7.22.11): 1260 - resolution: {integrity: sha512-nTh2ogNUtxbiSbxaT4Ds6aXnXEipHweN9YRgOX/oNXdf0cCrGn/+2LozFa3lnPV5D90MkjhgckCPBrsoSc1a7g==} 1260 + /@babel/plugin-transform-react-jsx-self@7.23.3(@babel/core@7.23.6): 1261 + resolution: {integrity: sha512-qXRvbeKDSfwnlJnanVRp0SfuWE5DQhwQr5xtLBzp56Wabyo+4CMosF6Kfp+eOD/4FYpql64XVJ2W0pVLlJZxOQ==} 1261 1262 engines: {node: '>=6.9.0'} 1262 1263 peerDependencies: 1263 1264 '@babel/core': ^7.0.0-0 1264 1265 dependencies: 1265 - '@babel/core': 7.22.11 1266 + '@babel/core': 7.23.6 1266 1267 '@babel/helper-plugin-utils': 7.22.5 1267 1268 dev: true 1268 1269 1269 - /@babel/plugin-transform-react-jsx-source@7.22.5(@babel/core@7.22.11): 1270 - resolution: {integrity: sha512-yIiRO6yobeEIaI0RTbIr8iAK9FcBHLtZq0S89ZPjDLQXBA4xvghaKqI0etp/tF3htTM0sazJKKLz9oEiGRtu7w==} 1270 + /@babel/plugin-transform-react-jsx-source@7.23.3(@babel/core@7.23.6): 1271 + resolution: {integrity: sha512-91RS0MDnAWDNvGC6Wio5XYkyWI39FMFO+JK9+4AlgaTH+yWwVTsw7/sn6LK0lH7c5F+TFkpv/3LfCJ1Ydwof/g==} 1271 1272 engines: {node: '>=6.9.0'} 1272 1273 peerDependencies: 1273 1274 '@babel/core': ^7.0.0-0 1274 1275 dependencies: 1275 - '@babel/core': 7.22.11 1276 + '@babel/core': 7.23.6 1276 1277 '@babel/helper-plugin-utils': 7.22.5 1277 1278 dev: true 1278 1279 1279 - /@babel/plugin-transform-regenerator@7.22.10(@babel/core@7.22.11): 1280 - resolution: {integrity: sha512-F28b1mDt8KcT5bUyJc/U9nwzw6cV+UmTeRlXYIl2TNqMMJif0Jeey9/RQ3C4NOd2zp0/TRsDns9ttj2L523rsw==} 1280 + /@babel/plugin-transform-regenerator@7.23.3(@babel/core@7.23.6): 1281 + resolution: {integrity: sha512-KP+75h0KghBMcVpuKisx3XTu9Ncut8Q8TuvGO4IhY+9D5DFEckQefOuIsB/gQ2tG71lCke4NMrtIPS8pOj18BQ==} 1281 1282 engines: {node: '>=6.9.0'} 1282 1283 peerDependencies: 1283 1284 '@babel/core': ^7.0.0-0 1284 1285 dependencies: 1285 - '@babel/core': 7.22.11 1286 + '@babel/core': 7.23.6 1286 1287 '@babel/helper-plugin-utils': 7.22.5 1287 1288 regenerator-transform: 0.15.2 1288 1289 dev: true 1289 1290 1290 - /@babel/plugin-transform-reserved-words@7.22.5(@babel/core@7.22.11): 1291 - resolution: {integrity: sha512-DTtGKFRQUDm8svigJzZHzb/2xatPc6TzNvAIJ5GqOKDsGFYgAskjRulbR/vGsPKq3OPqtexnz327qYpP57RFyA==} 1291 + /@babel/plugin-transform-reserved-words@7.23.3(@babel/core@7.23.6): 1292 + resolution: {integrity: sha512-QnNTazY54YqgGxwIexMZva9gqbPa15t/x9VS+0fsEFWplwVpXYZivtgl43Z1vMpc1bdPP2PP8siFeVcnFvA3Cg==} 1292 1293 engines: {node: '>=6.9.0'} 1293 1294 peerDependencies: 1294 1295 '@babel/core': ^7.0.0-0 1295 1296 dependencies: 1296 - '@babel/core': 7.22.11 1297 + '@babel/core': 7.23.6 1297 1298 '@babel/helper-plugin-utils': 7.22.5 1298 1299 dev: true 1299 1300 1300 - /@babel/plugin-transform-shorthand-properties@7.22.5(@babel/core@7.22.11): 1301 - resolution: {integrity: sha512-vM4fq9IXHscXVKzDv5itkO1X52SmdFBFcMIBZ2FRn2nqVYqw6dBexUgMvAjHW+KXpPPViD/Yo3GrDEBaRC0QYA==} 1301 + /@babel/plugin-transform-shorthand-properties@7.23.3(@babel/core@7.23.6): 1302 + resolution: {integrity: sha512-ED2fgqZLmexWiN+YNFX26fx4gh5qHDhn1O2gvEhreLW2iI63Sqm4llRLCXALKrCnbN4Jy0VcMQZl/SAzqug/jg==} 1302 1303 engines: {node: '>=6.9.0'} 1303 1304 peerDependencies: 1304 1305 '@babel/core': ^7.0.0-0 1305 1306 dependencies: 1306 - '@babel/core': 7.22.11 1307 + '@babel/core': 7.23.6 1307 1308 '@babel/helper-plugin-utils': 7.22.5 1308 1309 dev: true 1309 1310 1310 - /@babel/plugin-transform-spread@7.22.5(@babel/core@7.22.11): 1311 - resolution: {integrity: sha512-5ZzDQIGyvN4w8+dMmpohL6MBo+l2G7tfC/O2Dg7/hjpgeWvUx8FzfeOKxGog9IimPa4YekaQ9PlDqTLOljkcxg==} 1311 + /@babel/plugin-transform-spread@7.23.3(@babel/core@7.23.6): 1312 + resolution: {integrity: sha512-VvfVYlrlBVu+77xVTOAoxQ6mZbnIq5FM0aGBSFEcIh03qHf+zNqA4DC/3XMUozTg7bZV3e3mZQ0i13VB6v5yUg==} 1312 1313 engines: {node: '>=6.9.0'} 1313 1314 peerDependencies: 1314 1315 '@babel/core': ^7.0.0-0 1315 1316 dependencies: 1316 - '@babel/core': 7.22.11 1317 + '@babel/core': 7.23.6 1317 1318 '@babel/helper-plugin-utils': 7.22.5 1318 1319 '@babel/helper-skip-transparent-expression-wrappers': 7.22.5 1319 1320 dev: true 1320 1321 1321 - /@babel/plugin-transform-sticky-regex@7.22.5(@babel/core@7.22.11): 1322 - resolution: {integrity: sha512-zf7LuNpHG0iEeiyCNwX4j3gDg1jgt1k3ZdXBKbZSoA3BbGQGvMiSvfbZRR3Dr3aeJe3ooWFZxOOG3IRStYp2Bw==} 1322 + /@babel/plugin-transform-sticky-regex@7.23.3(@babel/core@7.23.6): 1323 + resolution: {integrity: sha512-HZOyN9g+rtvnOU3Yh7kSxXrKbzgrm5X4GncPY1QOquu7epga5MxKHVpYu2hvQnry/H+JjckSYRb93iNfsioAGg==} 1323 1324 engines: {node: '>=6.9.0'} 1324 1325 peerDependencies: 1325 1326 '@babel/core': ^7.0.0-0 1326 1327 dependencies: 1327 - '@babel/core': 7.22.11 1328 + '@babel/core': 7.23.6 1328 1329 '@babel/helper-plugin-utils': 7.22.5 1329 1330 dev: true 1330 1331 1331 - /@babel/plugin-transform-template-literals@7.22.5(@babel/core@7.22.11): 1332 - resolution: {integrity: sha512-5ciOehRNf+EyUeewo8NkbQiUs4d6ZxiHo6BcBcnFlgiJfu16q0bQUw9Jvo0b0gBKFG1SMhDSjeKXSYuJLeFSMA==} 1332 + /@babel/plugin-transform-template-literals@7.23.3(@babel/core@7.23.6): 1333 + resolution: {integrity: sha512-Flok06AYNp7GV2oJPZZcP9vZdszev6vPBkHLwxwSpaIqx75wn6mUd3UFWsSsA0l8nXAKkyCmL/sR02m8RYGeHg==} 1333 1334 engines: {node: '>=6.9.0'} 1334 1335 peerDependencies: 1335 1336 '@babel/core': ^7.0.0-0 1336 1337 dependencies: 1337 - '@babel/core': 7.22.11 1338 + '@babel/core': 7.23.6 1338 1339 '@babel/helper-plugin-utils': 7.22.5 1339 1340 dev: true 1340 1341 1341 - /@babel/plugin-transform-typeof-symbol@7.22.5(@babel/core@7.22.11): 1342 - resolution: {integrity: sha512-bYkI5lMzL4kPii4HHEEChkD0rkc+nvnlR6+o/qdqR6zrm0Sv/nodmyLhlq2DO0YKLUNd2VePmPRjJXSBh9OIdA==} 1342 + /@babel/plugin-transform-typeof-symbol@7.23.3(@babel/core@7.23.6): 1343 + resolution: {integrity: sha512-4t15ViVnaFdrPC74be1gXBSMzXk3B4Us9lP7uLRQHTFpV5Dvt33pn+2MyyNxmN3VTTm3oTrZVMUmuw3oBnQ2oQ==} 1343 1344 engines: {node: '>=6.9.0'} 1344 1345 peerDependencies: 1345 1346 '@babel/core': ^7.0.0-0 1346 1347 dependencies: 1347 - '@babel/core': 7.22.11 1348 + '@babel/core': 7.23.6 1348 1349 '@babel/helper-plugin-utils': 7.22.5 1349 1350 dev: true 1350 1351 1351 - /@babel/plugin-transform-typescript@7.22.11(@babel/core@7.22.11): 1352 - resolution: {integrity: sha512-0E4/L+7gfvHub7wsbTv03oRtD69X31LByy44fGmFzbZScpupFByMcgCJ0VbBTkzyjSJKuRoGN8tcijOWKTmqOA==} 1352 + /@babel/plugin-transform-typescript@7.23.6(@babel/core@7.23.6): 1353 + resolution: {integrity: sha512-6cBG5mBvUu4VUD04OHKnYzbuHNP8huDsD3EDqqpIpsswTDoqHCjLoHb6+QgsV1WsT2nipRqCPgxD3LXnEO7XfA==} 1353 1354 engines: {node: '>=6.9.0'} 1354 1355 peerDependencies: 1355 1356 '@babel/core': ^7.0.0-0 1356 1357 dependencies: 1357 - '@babel/core': 7.22.11 1358 + '@babel/core': 7.23.6 1358 1359 '@babel/helper-annotate-as-pure': 7.22.5 1359 - '@babel/helper-create-class-features-plugin': 7.22.11(@babel/core@7.22.11) 1360 + '@babel/helper-create-class-features-plugin': 7.23.6(@babel/core@7.23.6) 1360 1361 '@babel/helper-plugin-utils': 7.22.5 1361 - '@babel/plugin-syntax-typescript': 7.22.5(@babel/core@7.22.11) 1362 + '@babel/plugin-syntax-typescript': 7.23.3(@babel/core@7.23.6) 1362 1363 dev: true 1363 1364 1364 - /@babel/plugin-transform-unicode-escapes@7.22.10(@babel/core@7.22.11): 1365 - resolution: {integrity: sha512-lRfaRKGZCBqDlRU3UIFovdp9c9mEvlylmpod0/OatICsSfuQ9YFthRo1tpTkGsklEefZdqlEFdY4A2dwTb6ohg==} 1365 + /@babel/plugin-transform-unicode-escapes@7.23.3(@babel/core@7.23.6): 1366 + resolution: {integrity: sha512-OMCUx/bU6ChE3r4+ZdylEqAjaQgHAgipgW8nsCfu5pGqDcFytVd91AwRvUJSBZDz0exPGgnjoqhgRYLRjFZc9Q==} 1366 1367 engines: {node: '>=6.9.0'} 1367 1368 peerDependencies: 1368 1369 '@babel/core': ^7.0.0-0 1369 1370 dependencies: 1370 - '@babel/core': 7.22.11 1371 + '@babel/core': 7.23.6 1371 1372 '@babel/helper-plugin-utils': 7.22.5 1372 1373 dev: true 1373 1374 1374 - /@babel/plugin-transform-unicode-property-regex@7.22.5(@babel/core@7.22.11): 1375 - resolution: {integrity: sha512-HCCIb+CbJIAE6sXn5CjFQXMwkCClcOfPCzTlilJ8cUatfzwHlWQkbtV0zD338u9dZskwvuOYTuuaMaA8J5EI5A==} 1375 + /@babel/plugin-transform-unicode-property-regex@7.23.3(@babel/core@7.23.6): 1376 + resolution: {integrity: sha512-KcLIm+pDZkWZQAFJ9pdfmh89EwVfmNovFBcXko8szpBeF8z68kWIPeKlmSOkT9BXJxs2C0uk+5LxoxIv62MROA==} 1376 1377 engines: {node: '>=6.9.0'} 1377 1378 peerDependencies: 1378 1379 '@babel/core': ^7.0.0-0 1379 1380 dependencies: 1380 - '@babel/core': 7.22.11 1381 - '@babel/helper-create-regexp-features-plugin': 7.22.9(@babel/core@7.22.11) 1381 + '@babel/core': 7.23.6 1382 + '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.23.6) 1382 1383 '@babel/helper-plugin-utils': 7.22.5 1383 1384 dev: true 1384 1385 1385 - /@babel/plugin-transform-unicode-regex@7.22.5(@babel/core@7.22.11): 1386 - resolution: {integrity: sha512-028laaOKptN5vHJf9/Arr/HiJekMd41hOEZYvNsrsXqJ7YPYuX2bQxh31fkZzGmq3YqHRJzYFFAVYvKfMPKqyg==} 1386 + /@babel/plugin-transform-unicode-regex@7.23.3(@babel/core@7.23.6): 1387 + resolution: {integrity: sha512-wMHpNA4x2cIA32b/ci3AfwNgheiva2W0WUKWTK7vBHBhDKfPsc5cFGNWm69WBqpwd86u1qwZ9PWevKqm1A3yAw==} 1387 1388 engines: {node: '>=6.9.0'} 1388 1389 peerDependencies: 1389 1390 '@babel/core': ^7.0.0-0 1390 1391 dependencies: 1391 - '@babel/core': 7.22.11 1392 - '@babel/helper-create-regexp-features-plugin': 7.22.9(@babel/core@7.22.11) 1392 + '@babel/core': 7.23.6 1393 + '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.23.6) 1393 1394 '@babel/helper-plugin-utils': 7.22.5 1394 1395 dev: true 1395 1396 1396 - /@babel/plugin-transform-unicode-sets-regex@7.22.5(@babel/core@7.22.11): 1397 - resolution: {integrity: sha512-lhMfi4FC15j13eKrh3DnYHjpGj6UKQHtNKTbtc1igvAhRy4+kLhV07OpLcsN0VgDEw/MjAvJO4BdMJsHwMhzCg==} 1397 + /@babel/plugin-transform-unicode-sets-regex@7.23.3(@babel/core@7.23.6): 1398 + resolution: {integrity: sha512-W7lliA/v9bNR83Qc3q1ip9CQMZ09CcHDbHfbLRDNuAhn1Mvkr1ZNF7hPmztMQvtTGVLJ9m8IZqWsTkXOml8dbw==} 1398 1399 engines: {node: '>=6.9.0'} 1399 1400 peerDependencies: 1400 1401 '@babel/core': ^7.0.0 1401 1402 dependencies: 1402 - '@babel/core': 7.22.11 1403 - '@babel/helper-create-regexp-features-plugin': 7.22.9(@babel/core@7.22.11) 1403 + '@babel/core': 7.23.6 1404 + '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.23.6) 1404 1405 '@babel/helper-plugin-utils': 7.22.5 1405 1406 dev: true 1406 1407 1407 - /@babel/preset-env@7.22.14(@babel/core@7.22.11): 1408 - resolution: {integrity: sha512-daodMIoVo+ol/g+//c/AH+szBkFj4STQUikvBijRGL72Ph+w+AMTSh55DUETe8KJlPlDT1k/mp7NBfOuiWmoig==} 1408 + /@babel/preset-env@7.23.6(@babel/core@7.23.6): 1409 + resolution: {integrity: sha512-2XPn/BqKkZCpzYhUUNZ1ssXw7DcXfKQEjv/uXZUXgaebCMYmkEsfZ2yY+vv+xtXv50WmL5SGhyB6/xsWxIvvOQ==} 1409 1410 engines: {node: '>=6.9.0'} 1410 1411 peerDependencies: 1411 1412 '@babel/core': ^7.0.0-0 1412 1413 dependencies: 1413 - '@babel/compat-data': 7.22.9 1414 - '@babel/core': 7.22.11 1415 - '@babel/helper-compilation-targets': 7.22.10 1414 + '@babel/compat-data': 7.23.5 1415 + '@babel/core': 7.23.6 1416 + '@babel/helper-compilation-targets': 7.23.6 1416 1417 '@babel/helper-plugin-utils': 7.22.5 1417 - '@babel/helper-validator-option': 7.22.5 1418 - '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression': 7.22.5(@babel/core@7.22.11) 1419 - '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining': 7.22.5(@babel/core@7.22.11) 1420 - '@babel/plugin-proposal-private-property-in-object': 7.21.0-placeholder-for-preset-env.2(@babel/core@7.22.11) 1421 - '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.22.11) 1422 - '@babel/plugin-syntax-class-properties': 7.12.13(@babel/core@7.22.11) 1423 - '@babel/plugin-syntax-class-static-block': 7.14.5(@babel/core@7.22.11) 1424 - '@babel/plugin-syntax-dynamic-import': 7.8.3(@babel/core@7.22.11) 1425 - '@babel/plugin-syntax-export-namespace-from': 7.8.3(@babel/core@7.22.11) 1426 - '@babel/plugin-syntax-import-assertions': 7.22.5(@babel/core@7.22.11) 1427 - '@babel/plugin-syntax-import-attributes': 7.22.5(@babel/core@7.22.11) 1428 - '@babel/plugin-syntax-import-meta': 7.10.4(@babel/core@7.22.11) 1429 - '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.22.11) 1430 - '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.22.11) 1431 - '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.22.11) 1432 - '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.22.11) 1433 - '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.22.11) 1434 - '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.22.11) 1435 - '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.22.11) 1436 - '@babel/plugin-syntax-private-property-in-object': 7.14.5(@babel/core@7.22.11) 1437 - '@babel/plugin-syntax-top-level-await': 7.14.5(@babel/core@7.22.11) 1438 - '@babel/plugin-syntax-unicode-sets-regex': 7.18.6(@babel/core@7.22.11) 1439 - '@babel/plugin-transform-arrow-functions': 7.22.5(@babel/core@7.22.11) 1440 - '@babel/plugin-transform-async-generator-functions': 7.22.11(@babel/core@7.22.11) 1441 - '@babel/plugin-transform-async-to-generator': 7.22.5(@babel/core@7.22.11) 1442 - '@babel/plugin-transform-block-scoped-functions': 7.22.5(@babel/core@7.22.11) 1443 - '@babel/plugin-transform-block-scoping': 7.22.10(@babel/core@7.22.11) 1444 - '@babel/plugin-transform-class-properties': 7.22.5(@babel/core@7.22.11) 1445 - '@babel/plugin-transform-class-static-block': 7.22.11(@babel/core@7.22.11) 1446 - '@babel/plugin-transform-classes': 7.22.6(@babel/core@7.22.11) 1447 - '@babel/plugin-transform-computed-properties': 7.22.5(@babel/core@7.22.11) 1448 - '@babel/plugin-transform-destructuring': 7.22.10(@babel/core@7.22.11) 1449 - '@babel/plugin-transform-dotall-regex': 7.22.5(@babel/core@7.22.11) 1450 - '@babel/plugin-transform-duplicate-keys': 7.22.5(@babel/core@7.22.11) 1451 - '@babel/plugin-transform-dynamic-import': 7.22.11(@babel/core@7.22.11) 1452 - '@babel/plugin-transform-exponentiation-operator': 7.22.5(@babel/core@7.22.11) 1453 - '@babel/plugin-transform-export-namespace-from': 7.22.11(@babel/core@7.22.11) 1454 - '@babel/plugin-transform-for-of': 7.22.5(@babel/core@7.22.11) 1455 - '@babel/plugin-transform-function-name': 7.22.5(@babel/core@7.22.11) 1456 - '@babel/plugin-transform-json-strings': 7.22.11(@babel/core@7.22.11) 1457 - '@babel/plugin-transform-literals': 7.22.5(@babel/core@7.22.11) 1458 - '@babel/plugin-transform-logical-assignment-operators': 7.22.11(@babel/core@7.22.11) 1459 - '@babel/plugin-transform-member-expression-literals': 7.22.5(@babel/core@7.22.11) 1460 - '@babel/plugin-transform-modules-amd': 7.22.5(@babel/core@7.22.11) 1461 - '@babel/plugin-transform-modules-commonjs': 7.22.11(@babel/core@7.22.11) 1462 - '@babel/plugin-transform-modules-systemjs': 7.22.11(@babel/core@7.22.11) 1463 - '@babel/plugin-transform-modules-umd': 7.22.5(@babel/core@7.22.11) 1464 - '@babel/plugin-transform-named-capturing-groups-regex': 7.22.5(@babel/core@7.22.11) 1465 - '@babel/plugin-transform-new-target': 7.22.5(@babel/core@7.22.11) 1466 - '@babel/plugin-transform-nullish-coalescing-operator': 7.22.11(@babel/core@7.22.11) 1467 - '@babel/plugin-transform-numeric-separator': 7.22.11(@babel/core@7.22.11) 1468 - '@babel/plugin-transform-object-rest-spread': 7.22.11(@babel/core@7.22.11) 1469 - '@babel/plugin-transform-object-super': 7.22.5(@babel/core@7.22.11) 1470 - '@babel/plugin-transform-optional-catch-binding': 7.22.11(@babel/core@7.22.11) 1471 - '@babel/plugin-transform-optional-chaining': 7.22.12(@babel/core@7.22.11) 1472 - '@babel/plugin-transform-parameters': 7.22.5(@babel/core@7.22.11) 1473 - '@babel/plugin-transform-private-methods': 7.22.5(@babel/core@7.22.11) 1474 - '@babel/plugin-transform-private-property-in-object': 7.22.11(@babel/core@7.22.11) 1475 - '@babel/plugin-transform-property-literals': 7.22.5(@babel/core@7.22.11) 1476 - '@babel/plugin-transform-regenerator': 7.22.10(@babel/core@7.22.11) 1477 - '@babel/plugin-transform-reserved-words': 7.22.5(@babel/core@7.22.11) 1478 - '@babel/plugin-transform-shorthand-properties': 7.22.5(@babel/core@7.22.11) 1479 - '@babel/plugin-transform-spread': 7.22.5(@babel/core@7.22.11) 1480 - '@babel/plugin-transform-sticky-regex': 7.22.5(@babel/core@7.22.11) 1481 - '@babel/plugin-transform-template-literals': 7.22.5(@babel/core@7.22.11) 1482 - '@babel/plugin-transform-typeof-symbol': 7.22.5(@babel/core@7.22.11) 1483 - '@babel/plugin-transform-unicode-escapes': 7.22.10(@babel/core@7.22.11) 1484 - '@babel/plugin-transform-unicode-property-regex': 7.22.5(@babel/core@7.22.11) 1485 - '@babel/plugin-transform-unicode-regex': 7.22.5(@babel/core@7.22.11) 1486 - '@babel/plugin-transform-unicode-sets-regex': 7.22.5(@babel/core@7.22.11) 1487 - '@babel/preset-modules': 0.1.6-no-external-plugins(@babel/core@7.22.11) 1488 - '@babel/types': 7.22.11 1489 - babel-plugin-polyfill-corejs2: 0.4.5(@babel/core@7.22.11) 1490 - babel-plugin-polyfill-corejs3: 0.8.3(@babel/core@7.22.11) 1491 - babel-plugin-polyfill-regenerator: 0.5.2(@babel/core@7.22.11) 1418 + '@babel/helper-validator-option': 7.23.5 1419 + '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression': 7.23.3(@babel/core@7.23.6) 1420 + '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining': 7.23.3(@babel/core@7.23.6) 1421 + '@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly': 7.23.3(@babel/core@7.23.6) 1422 + '@babel/plugin-proposal-private-property-in-object': 7.21.0-placeholder-for-preset-env.2(@babel/core@7.23.6) 1423 + '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.23.6) 1424 + '@babel/plugin-syntax-class-properties': 7.12.13(@babel/core@7.23.6) 1425 + '@babel/plugin-syntax-class-static-block': 7.14.5(@babel/core@7.23.6) 1426 + '@babel/plugin-syntax-dynamic-import': 7.8.3(@babel/core@7.23.6) 1427 + '@babel/plugin-syntax-export-namespace-from': 7.8.3(@babel/core@7.23.6) 1428 + '@babel/plugin-syntax-import-assertions': 7.23.3(@babel/core@7.23.6) 1429 + '@babel/plugin-syntax-import-attributes': 7.23.3(@babel/core@7.23.6) 1430 + '@babel/plugin-syntax-import-meta': 7.10.4(@babel/core@7.23.6) 1431 + '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.23.6) 1432 + '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.23.6) 1433 + '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.23.6) 1434 + '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.23.6) 1435 + '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.23.6) 1436 + '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.23.6) 1437 + '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.23.6) 1438 + '@babel/plugin-syntax-private-property-in-object': 7.14.5(@babel/core@7.23.6) 1439 + '@babel/plugin-syntax-top-level-await': 7.14.5(@babel/core@7.23.6) 1440 + '@babel/plugin-syntax-unicode-sets-regex': 7.18.6(@babel/core@7.23.6) 1441 + '@babel/plugin-transform-arrow-functions': 7.23.3(@babel/core@7.23.6) 1442 + '@babel/plugin-transform-async-generator-functions': 7.23.4(@babel/core@7.23.6) 1443 + '@babel/plugin-transform-async-to-generator': 7.23.3(@babel/core@7.23.6) 1444 + '@babel/plugin-transform-block-scoped-functions': 7.23.3(@babel/core@7.23.6) 1445 + '@babel/plugin-transform-block-scoping': 7.23.4(@babel/core@7.23.6) 1446 + '@babel/plugin-transform-class-properties': 7.23.3(@babel/core@7.23.6) 1447 + '@babel/plugin-transform-class-static-block': 7.23.4(@babel/core@7.23.6) 1448 + '@babel/plugin-transform-classes': 7.23.5(@babel/core@7.23.6) 1449 + '@babel/plugin-transform-computed-properties': 7.23.3(@babel/core@7.23.6) 1450 + '@babel/plugin-transform-destructuring': 7.23.3(@babel/core@7.23.6) 1451 + '@babel/plugin-transform-dotall-regex': 7.23.3(@babel/core@7.23.6) 1452 + '@babel/plugin-transform-duplicate-keys': 7.23.3(@babel/core@7.23.6) 1453 + '@babel/plugin-transform-dynamic-import': 7.23.4(@babel/core@7.23.6) 1454 + '@babel/plugin-transform-exponentiation-operator': 7.23.3(@babel/core@7.23.6) 1455 + '@babel/plugin-transform-export-namespace-from': 7.23.4(@babel/core@7.23.6) 1456 + '@babel/plugin-transform-for-of': 7.23.6(@babel/core@7.23.6) 1457 + '@babel/plugin-transform-function-name': 7.23.3(@babel/core@7.23.6) 1458 + '@babel/plugin-transform-json-strings': 7.23.4(@babel/core@7.23.6) 1459 + '@babel/plugin-transform-literals': 7.23.3(@babel/core@7.23.6) 1460 + '@babel/plugin-transform-logical-assignment-operators': 7.23.4(@babel/core@7.23.6) 1461 + '@babel/plugin-transform-member-expression-literals': 7.23.3(@babel/core@7.23.6) 1462 + '@babel/plugin-transform-modules-amd': 7.23.3(@babel/core@7.23.6) 1463 + '@babel/plugin-transform-modules-commonjs': 7.23.3(@babel/core@7.23.6) 1464 + '@babel/plugin-transform-modules-systemjs': 7.23.3(@babel/core@7.23.6) 1465 + '@babel/plugin-transform-modules-umd': 7.23.3(@babel/core@7.23.6) 1466 + '@babel/plugin-transform-named-capturing-groups-regex': 7.22.5(@babel/core@7.23.6) 1467 + '@babel/plugin-transform-new-target': 7.23.3(@babel/core@7.23.6) 1468 + '@babel/plugin-transform-nullish-coalescing-operator': 7.23.4(@babel/core@7.23.6) 1469 + '@babel/plugin-transform-numeric-separator': 7.23.4(@babel/core@7.23.6) 1470 + '@babel/plugin-transform-object-rest-spread': 7.23.4(@babel/core@7.23.6) 1471 + '@babel/plugin-transform-object-super': 7.23.3(@babel/core@7.23.6) 1472 + '@babel/plugin-transform-optional-catch-binding': 7.23.4(@babel/core@7.23.6) 1473 + '@babel/plugin-transform-optional-chaining': 7.23.4(@babel/core@7.23.6) 1474 + '@babel/plugin-transform-parameters': 7.23.3(@babel/core@7.23.6) 1475 + '@babel/plugin-transform-private-methods': 7.23.3(@babel/core@7.23.6) 1476 + '@babel/plugin-transform-private-property-in-object': 7.23.4(@babel/core@7.23.6) 1477 + '@babel/plugin-transform-property-literals': 7.23.3(@babel/core@7.23.6) 1478 + '@babel/plugin-transform-regenerator': 7.23.3(@babel/core@7.23.6) 1479 + '@babel/plugin-transform-reserved-words': 7.23.3(@babel/core@7.23.6) 1480 + '@babel/plugin-transform-shorthand-properties': 7.23.3(@babel/core@7.23.6) 1481 + '@babel/plugin-transform-spread': 7.23.3(@babel/core@7.23.6) 1482 + '@babel/plugin-transform-sticky-regex': 7.23.3(@babel/core@7.23.6) 1483 + '@babel/plugin-transform-template-literals': 7.23.3(@babel/core@7.23.6) 1484 + '@babel/plugin-transform-typeof-symbol': 7.23.3(@babel/core@7.23.6) 1485 + '@babel/plugin-transform-unicode-escapes': 7.23.3(@babel/core@7.23.6) 1486 + '@babel/plugin-transform-unicode-property-regex': 7.23.3(@babel/core@7.23.6) 1487 + '@babel/plugin-transform-unicode-regex': 7.23.3(@babel/core@7.23.6) 1488 + '@babel/plugin-transform-unicode-sets-regex': 7.23.3(@babel/core@7.23.6) 1489 + '@babel/preset-modules': 0.1.6-no-external-plugins(@babel/core@7.23.6) 1490 + babel-plugin-polyfill-corejs2: 0.4.7(@babel/core@7.23.6) 1491 + babel-plugin-polyfill-corejs3: 0.8.7(@babel/core@7.23.6) 1492 + babel-plugin-polyfill-regenerator: 0.5.4(@babel/core@7.23.6) 1492 1493 core-js-compat: 3.32.1 1493 1494 semver: 6.3.1 1494 1495 transitivePeerDependencies: 1495 1496 - supports-color 1496 1497 dev: true 1497 1498 1498 - /@babel/preset-modules@0.1.6-no-external-plugins(@babel/core@7.22.11): 1499 + /@babel/preset-modules@0.1.6-no-external-plugins(@babel/core@7.23.6): 1499 1500 resolution: {integrity: sha512-HrcgcIESLm9aIR842yhJ5RWan/gebQUJ6E/E5+rf0y9o6oj7w0Br+sWuL6kEQ/o/AdfvR1Je9jG18/gnpwjEyA==} 1500 1501 peerDependencies: 1501 1502 '@babel/core': ^7.0.0-0 || ^8.0.0-0 <8.0.0 1502 1503 dependencies: 1503 - '@babel/core': 7.22.11 1504 + '@babel/core': 7.23.6 1504 1505 '@babel/helper-plugin-utils': 7.22.5 1505 - '@babel/types': 7.22.11 1506 + '@babel/types': 7.23.0 1506 1507 esutils: 2.0.3 1507 1508 dev: true 1508 1509 1509 - /@babel/preset-typescript@7.22.11(@babel/core@7.22.11): 1510 - resolution: {integrity: sha512-tWY5wyCZYBGY7IlalfKI1rLiGlIfnwsRHZqlky0HVv8qviwQ1Uo/05M6+s+TcTCVa6Bmoo2uJW5TMFX6Wa4qVg==} 1510 + /@babel/preset-typescript@7.23.3(@babel/core@7.23.6): 1511 + resolution: {integrity: sha512-17oIGVlqz6CchO9RFYn5U6ZpWRZIngayYCtrPRSgANSwC2V1Jb+iP74nVxzzXJte8b8BYxrL1yY96xfhTBrNNQ==} 1511 1512 engines: {node: '>=6.9.0'} 1512 1513 peerDependencies: 1513 1514 '@babel/core': ^7.0.0-0 1514 1515 dependencies: 1515 - '@babel/core': 7.22.11 1516 + '@babel/core': 7.23.6 1516 1517 '@babel/helper-plugin-utils': 7.22.5 1517 - '@babel/helper-validator-option': 7.22.5 1518 - '@babel/plugin-syntax-jsx': 7.22.5(@babel/core@7.22.11) 1519 - '@babel/plugin-transform-modules-commonjs': 7.22.11(@babel/core@7.22.11) 1520 - '@babel/plugin-transform-typescript': 7.22.11(@babel/core@7.22.11) 1518 + '@babel/helper-validator-option': 7.23.5 1519 + '@babel/plugin-syntax-jsx': 7.23.3(@babel/core@7.23.6) 1520 + '@babel/plugin-transform-modules-commonjs': 7.23.3(@babel/core@7.23.6) 1521 + '@babel/plugin-transform-typescript': 7.23.6(@babel/core@7.23.6) 1521 1522 dev: true 1522 1523 1523 1524 /@babel/regjsgen@0.8.0: ··· 1530 1531 dependencies: 1531 1532 regenerator-runtime: 0.14.0 1532 1533 1533 - /@babel/template@7.22.15: 1534 - resolution: {integrity: sha512-QPErUVm4uyJa60rkI73qneDacvdvzxshT3kksGqlGWYdOTIUOwJ7RDUL8sGqslY1uXWSL6xMFKEXDS3ox2uF0w==} 1534 + /@babel/runtime@7.23.6: 1535 + resolution: {integrity: sha512-zHd0eUrf5GZoOWVCXp6koAKQTfZV07eit6bGPmJgnZdnSAvvZee6zniW2XMF7Cmc4ISOOnPy3QaSiIJGJkVEDQ==} 1535 1536 engines: {node: '>=6.9.0'} 1536 1537 dependencies: 1537 - '@babel/code-frame': 7.22.13 1538 - '@babel/parser': 7.23.0 1539 - '@babel/types': 7.23.0 1540 - dev: true 1538 + regenerator-runtime: 0.14.0 1541 1539 1542 - /@babel/template@7.22.5: 1543 - resolution: {integrity: sha512-X7yV7eiwAxdj9k94NEylvbVHLiVG1nvzCV2EAowhxLTwODV1jl9UzZ48leOC0sH7OnuHrIkllaBgneUykIcZaw==} 1540 + /@babel/template@7.22.15: 1541 + resolution: {integrity: sha512-QPErUVm4uyJa60rkI73qneDacvdvzxshT3kksGqlGWYdOTIUOwJ7RDUL8sGqslY1uXWSL6xMFKEXDS3ox2uF0w==} 1544 1542 engines: {node: '>=6.9.0'} 1545 1543 dependencies: 1546 - '@babel/code-frame': 7.22.13 1547 - '@babel/parser': 7.22.14 1548 - '@babel/types': 7.22.11 1549 - dev: true 1544 + '@babel/code-frame': 7.23.5 1545 + '@babel/parser': 7.23.6 1546 + '@babel/types': 7.23.6 1550 1547 1551 - /@babel/traverse@7.23.2: 1552 - resolution: {integrity: sha512-azpe59SQ48qG6nu2CzcMLbxUudtN+dOM9kDbUqGq3HXUJRlo7i8fvPoxQUzYgLZ4cMVmuZgm8vvBpNeRhd6XSw==} 1548 + /@babel/traverse@7.23.6: 1549 + resolution: {integrity: sha512-czastdK1e8YByZqezMPFiZ8ahwVMh/ESl9vPgvgdB9AmFMGP5jfpFax74AQgl5zj4XHzqeYAg2l8PuUeRS1MgQ==} 1553 1550 engines: {node: '>=6.9.0'} 1554 1551 dependencies: 1555 - '@babel/code-frame': 7.22.13 1556 - '@babel/generator': 7.23.0 1552 + '@babel/code-frame': 7.23.5 1553 + '@babel/generator': 7.23.6 1557 1554 '@babel/helper-environment-visitor': 7.22.20 1558 1555 '@babel/helper-function-name': 7.23.0 1559 1556 '@babel/helper-hoist-variables': 7.22.5 1560 1557 '@babel/helper-split-export-declaration': 7.22.6 1561 - '@babel/parser': 7.23.0 1562 - '@babel/types': 7.23.0 1558 + '@babel/parser': 7.23.6 1559 + '@babel/types': 7.23.6 1563 1560 debug: 4.3.4 1564 1561 globals: 11.12.0 1565 1562 transitivePeerDependencies: 1566 1563 - supports-color 1567 - dev: true 1568 1564 1569 - /@babel/types@7.22.11: 1570 - resolution: {integrity: sha512-siazHiGuZRz9aB9NpHy9GOs9xiQPKnMzgdr493iI1M67vRXpnEq8ZOOKzezC5q7zwuQ6sDhdSp4SD9ixKSqKZg==} 1565 + /@babel/types@7.23.0: 1566 + resolution: {integrity: sha512-0oIyUfKoI3mSqMvsxBdclDwxXKXAUA8v/apZbc+iSyARYou1o8ZGDxbUYyLFoW2arqS2jDGqJuZvv1d/io1axg==} 1571 1567 engines: {node: '>=6.9.0'} 1572 1568 dependencies: 1573 1569 '@babel/helper-string-parser': 7.22.5 1574 - '@babel/helper-validator-identifier': 7.22.5 1570 + '@babel/helper-validator-identifier': 7.22.20 1575 1571 to-fast-properties: 2.0.0 1576 - dev: true 1577 1572 1578 - /@babel/types@7.23.0: 1579 - resolution: {integrity: sha512-0oIyUfKoI3mSqMvsxBdclDwxXKXAUA8v/apZbc+iSyARYou1o8ZGDxbUYyLFoW2arqS2jDGqJuZvv1d/io1axg==} 1573 + /@babel/types@7.23.6: 1574 + resolution: {integrity: sha512-+uarb83brBzPKN38NX1MkB6vb6+mwvR6amUulqAE7ccQw1pEl+bCia9TbdG1lsnFP7lZySvUn37CHyXQdfTwzg==} 1580 1575 engines: {node: '>=6.9.0'} 1581 1576 dependencies: 1582 - '@babel/helper-string-parser': 7.22.5 1577 + '@babel/helper-string-parser': 7.23.4 1583 1578 '@babel/helper-validator-identifier': 7.22.20 1584 1579 to-fast-properties: 2.0.0 1580 + 1581 + /@esbuild/aix-ppc64@0.19.10: 1582 + resolution: {integrity: sha512-Q+mk96KJ+FZ30h9fsJl+67IjNJm3x2eX+GBWGmocAKgzp27cowCOOqSdscX80s0SpdFXZnIv/+1xD1EctFx96Q==} 1583 + engines: {node: '>=12'} 1584 + cpu: [ppc64] 1585 + os: [aix] 1586 + requiresBuild: true 1585 1587 dev: true 1588 + optional: true 1586 1589 1587 - /@esbuild/android-arm64@0.18.20: 1588 - resolution: {integrity: sha512-Nz4rJcchGDtENV0eMKUNa6L12zz2zBDXuhj/Vjh18zGqB44Bi7MBMSXjgunJgjRhCmKOjnPuZp4Mb6OKqtMHLQ==} 1590 + /@esbuild/android-arm64@0.19.10: 1591 + resolution: {integrity: sha512-1X4CClKhDgC3by7k8aOWZeBXQX8dHT5QAMCAQDArCLaYfkppoARvh0fit3X2Qs+MXDngKcHv6XXyQCpY0hkK1Q==} 1589 1592 engines: {node: '>=12'} 1590 1593 cpu: [arm64] 1591 1594 os: [android] ··· 1593 1596 dev: true 1594 1597 optional: true 1595 1598 1596 - /@esbuild/android-arm@0.18.20: 1597 - resolution: {integrity: sha512-fyi7TDI/ijKKNZTUJAQqiG5T7YjJXgnzkURqmGj13C6dCqckZBLdl4h7bkhHt/t0WP+zO9/zwroDvANaOqO5Sw==} 1599 + /@esbuild/android-arm@0.19.10: 1600 + resolution: {integrity: sha512-7W0bK7qfkw1fc2viBfrtAEkDKHatYfHzr/jKAHNr9BvkYDXPcC6bodtm8AyLJNNuqClLNaeTLuwURt4PRT9d7w==} 1598 1601 engines: {node: '>=12'} 1599 1602 cpu: [arm] 1600 1603 os: [android] ··· 1602 1605 dev: true 1603 1606 optional: true 1604 1607 1605 - /@esbuild/android-x64@0.18.20: 1606 - resolution: {integrity: sha512-8GDdlePJA8D6zlZYJV/jnrRAi6rOiNaCC/JclcXpB+KIuvfBN4owLtgzY2bsxnx666XjJx2kDPUmnTtR8qKQUg==} 1608 + /@esbuild/android-x64@0.19.10: 1609 + resolution: {integrity: sha512-O/nO/g+/7NlitUxETkUv/IvADKuZXyH4BHf/g/7laqKC4i/7whLpB0gvpPc2zpF0q9Q6FXS3TS75QHac9MvVWw==} 1607 1610 engines: {node: '>=12'} 1608 1611 cpu: [x64] 1609 1612 os: [android] ··· 1611 1614 dev: true 1612 1615 optional: true 1613 1616 1614 - /@esbuild/darwin-arm64@0.18.20: 1615 - resolution: {integrity: sha512-bxRHW5kHU38zS2lPTPOyuyTm+S+eobPUnTNkdJEfAddYgEcll4xkT8DB9d2008DtTbl7uJag2HuE5NZAZgnNEA==} 1617 + /@esbuild/darwin-arm64@0.19.10: 1618 + resolution: {integrity: sha512-YSRRs2zOpwypck+6GL3wGXx2gNP7DXzetmo5pHXLrY/VIMsS59yKfjPizQ4lLt5vEI80M41gjm2BxrGZ5U+VMA==} 1616 1619 engines: {node: '>=12'} 1617 1620 cpu: [arm64] 1618 1621 os: [darwin] ··· 1620 1623 dev: true 1621 1624 optional: true 1622 1625 1623 - /@esbuild/darwin-x64@0.18.20: 1624 - resolution: {integrity: sha512-pc5gxlMDxzm513qPGbCbDukOdsGtKhfxD1zJKXjCCcU7ju50O7MeAZ8c4krSJcOIJGFR+qx21yMMVYwiQvyTyQ==} 1626 + /@esbuild/darwin-x64@0.19.10: 1627 + resolution: {integrity: sha512-alfGtT+IEICKtNE54hbvPg13xGBe4GkVxyGWtzr+yHO7HIiRJppPDhOKq3zstTcVf8msXb/t4eavW3jCDpMSmA==} 1625 1628 engines: {node: '>=12'} 1626 1629 cpu: [x64] 1627 1630 os: [darwin] ··· 1629 1632 dev: true 1630 1633 optional: true 1631 1634 1632 - /@esbuild/freebsd-arm64@0.18.20: 1633 - resolution: {integrity: sha512-yqDQHy4QHevpMAaxhhIwYPMv1NECwOvIpGCZkECn8w2WFHXjEwrBn3CeNIYsibZ/iZEUemj++M26W3cNR5h+Tw==} 1635 + /@esbuild/freebsd-arm64@0.19.10: 1636 + resolution: {integrity: sha512-dMtk1wc7FSH8CCkE854GyGuNKCewlh+7heYP/sclpOG6Cectzk14qdUIY5CrKDbkA/OczXq9WesqnPl09mj5dg==} 1634 1637 engines: {node: '>=12'} 1635 1638 cpu: [arm64] 1636 1639 os: [freebsd] ··· 1638 1641 dev: true 1639 1642 optional: true 1640 1643 1641 - /@esbuild/freebsd-x64@0.18.20: 1642 - resolution: {integrity: sha512-tgWRPPuQsd3RmBZwarGVHZQvtzfEBOreNuxEMKFcd5DaDn2PbBxfwLcj4+aenoh7ctXcbXmOQIn8HI6mCSw5MQ==} 1644 + /@esbuild/freebsd-x64@0.19.10: 1645 + resolution: {integrity: sha512-G5UPPspryHu1T3uX8WiOEUa6q6OlQh6gNl4CO4Iw5PS+Kg5bVggVFehzXBJY6X6RSOMS8iXDv2330VzaObm4Ag==} 1643 1646 engines: {node: '>=12'} 1644 1647 cpu: [x64] 1645 1648 os: [freebsd] ··· 1647 1650 dev: true 1648 1651 optional: true 1649 1652 1650 - /@esbuild/linux-arm64@0.18.20: 1651 - resolution: {integrity: sha512-2YbscF+UL7SQAVIpnWvYwM+3LskyDmPhe31pE7/aoTMFKKzIc9lLbyGUpmmb8a8AixOL61sQ/mFh3jEjHYFvdA==} 1653 + /@esbuild/linux-arm64@0.19.10: 1654 + resolution: {integrity: sha512-QxaouHWZ+2KWEj7cGJmvTIHVALfhpGxo3WLmlYfJ+dA5fJB6lDEIg+oe/0//FuyVHuS3l79/wyBxbHr0NgtxJQ==} 1652 1655 engines: {node: '>=12'} 1653 1656 cpu: [arm64] 1654 1657 os: [linux] ··· 1656 1659 dev: true 1657 1660 optional: true 1658 1661 1659 - /@esbuild/linux-arm@0.18.20: 1660 - resolution: {integrity: sha512-/5bHkMWnq1EgKr1V+Ybz3s1hWXok7mDFUMQ4cG10AfW3wL02PSZi5kFpYKrptDsgb2WAJIvRcDm+qIvXf/apvg==} 1662 + /@esbuild/linux-arm@0.19.10: 1663 + resolution: {integrity: sha512-j6gUW5aAaPgD416Hk9FHxn27On28H4eVI9rJ4az7oCGTFW48+LcgNDBN+9f8rKZz7EEowo889CPKyeaD0iw9Kg==} 1661 1664 engines: {node: '>=12'} 1662 1665 cpu: [arm] 1663 1666 os: [linux] ··· 1665 1668 dev: true 1666 1669 optional: true 1667 1670 1668 - /@esbuild/linux-ia32@0.18.20: 1669 - resolution: {integrity: sha512-P4etWwq6IsReT0E1KHU40bOnzMHoH73aXp96Fs8TIT6z9Hu8G6+0SHSw9i2isWrD2nbx2qo5yUqACgdfVGx7TA==} 1671 + /@esbuild/linux-ia32@0.19.10: 1672 + resolution: {integrity: sha512-4ub1YwXxYjj9h1UIZs2hYbnTZBtenPw5NfXCRgEkGb0b6OJ2gpkMvDqRDYIDRjRdWSe/TBiZltm3Y3Q8SN1xNg==} 1670 1673 engines: {node: '>=12'} 1671 1674 cpu: [ia32] 1672 1675 os: [linux] ··· 1674 1677 dev: true 1675 1678 optional: true 1676 1679 1677 - /@esbuild/linux-loong64@0.18.20: 1678 - resolution: {integrity: sha512-nXW8nqBTrOpDLPgPY9uV+/1DjxoQ7DoB2N8eocyq8I9XuqJ7BiAMDMf9n1xZM9TgW0J8zrquIb/A7s3BJv7rjg==} 1680 + /@esbuild/linux-loong64@0.19.10: 1681 + resolution: {integrity: sha512-lo3I9k+mbEKoxtoIbM0yC/MZ1i2wM0cIeOejlVdZ3D86LAcFXFRdeuZmh91QJvUTW51bOK5W2BznGNIl4+mDaA==} 1679 1682 engines: {node: '>=12'} 1680 1683 cpu: [loong64] 1681 1684 os: [linux] ··· 1683 1686 dev: true 1684 1687 optional: true 1685 1688 1686 - /@esbuild/linux-mips64el@0.18.20: 1687 - resolution: {integrity: sha512-d5NeaXZcHp8PzYy5VnXV3VSd2D328Zb+9dEq5HE6bw6+N86JVPExrA6O68OPwobntbNJ0pzCpUFZTo3w0GyetQ==} 1689 + /@esbuild/linux-mips64el@0.19.10: 1690 + resolution: {integrity: sha512-J4gH3zhHNbdZN0Bcr1QUGVNkHTdpijgx5VMxeetSk6ntdt+vR1DqGmHxQYHRmNb77tP6GVvD+K0NyO4xjd7y4A==} 1688 1691 engines: {node: '>=12'} 1689 1692 cpu: [mips64el] 1690 1693 os: [linux] ··· 1692 1695 dev: true 1693 1696 optional: true 1694 1697 1695 - /@esbuild/linux-ppc64@0.18.20: 1696 - resolution: {integrity: sha512-WHPyeScRNcmANnLQkq6AfyXRFr5D6N2sKgkFo2FqguP44Nw2eyDlbTdZwd9GYk98DZG9QItIiTlFLHJHjxP3FA==} 1698 + /@esbuild/linux-ppc64@0.19.10: 1699 + resolution: {integrity: sha512-tgT/7u+QhV6ge8wFMzaklOY7KqiyitgT1AUHMApau32ZlvTB/+efeCtMk4eXS+uEymYK249JsoiklZN64xt6oQ==} 1697 1700 engines: {node: '>=12'} 1698 1701 cpu: [ppc64] 1699 1702 os: [linux] ··· 1701 1704 dev: true 1702 1705 optional: true 1703 1706 1704 - /@esbuild/linux-riscv64@0.18.20: 1705 - resolution: {integrity: sha512-WSxo6h5ecI5XH34KC7w5veNnKkju3zBRLEQNY7mv5mtBmrP/MjNBCAlsM2u5hDBlS3NGcTQpoBvRzqBcRtpq1A==} 1707 + /@esbuild/linux-riscv64@0.19.10: 1708 + resolution: {integrity: sha512-0f/spw0PfBMZBNqtKe5FLzBDGo0SKZKvMl5PHYQr3+eiSscfJ96XEknCe+JoOayybWUFQbcJTrk946i3j9uYZA==} 1706 1709 engines: {node: '>=12'} 1707 1710 cpu: [riscv64] 1708 1711 os: [linux] ··· 1710 1713 dev: true 1711 1714 optional: true 1712 1715 1713 - /@esbuild/linux-s390x@0.18.20: 1714 - resolution: {integrity: sha512-+8231GMs3mAEth6Ja1iK0a1sQ3ohfcpzpRLH8uuc5/KVDFneH6jtAJLFGafpzpMRO6DzJ6AvXKze9LfFMrIHVQ==} 1716 + /@esbuild/linux-s390x@0.19.10: 1717 + resolution: {integrity: sha512-pZFe0OeskMHzHa9U38g+z8Yx5FNCLFtUnJtQMpwhS+r4S566aK2ci3t4NCP4tjt6d5j5uo4h7tExZMjeKoehAA==} 1715 1718 engines: {node: '>=12'} 1716 1719 cpu: [s390x] 1717 1720 os: [linux] ··· 1719 1722 dev: true 1720 1723 optional: true 1721 1724 1722 - /@esbuild/linux-x64@0.18.20: 1723 - resolution: {integrity: sha512-UYqiqemphJcNsFEskc73jQ7B9jgwjWrSayxawS6UVFZGWrAAtkzjxSqnoclCXxWtfwLdzU+vTpcNYhpn43uP1w==} 1725 + /@esbuild/linux-x64@0.19.10: 1726 + resolution: {integrity: sha512-SpYNEqg/6pZYoc+1zLCjVOYvxfZVZj6w0KROZ3Fje/QrM3nfvT2llI+wmKSrWuX6wmZeTapbarvuNNK/qepSgA==} 1724 1727 engines: {node: '>=12'} 1725 1728 cpu: [x64] 1726 1729 os: [linux] ··· 1728 1731 dev: true 1729 1732 optional: true 1730 1733 1731 - /@esbuild/netbsd-x64@0.18.20: 1732 - resolution: {integrity: sha512-iO1c++VP6xUBUmltHZoMtCUdPlnPGdBom6IrO4gyKPFFVBKioIImVooR5I83nTew5UOYrk3gIJhbZh8X44y06A==} 1734 + /@esbuild/netbsd-x64@0.19.10: 1735 + resolution: {integrity: sha512-ACbZ0vXy9zksNArWlk2c38NdKg25+L9pr/mVaj9SUq6lHZu/35nx2xnQVRGLrC1KKQqJKRIB0q8GspiHI3J80Q==} 1733 1736 engines: {node: '>=12'} 1734 1737 cpu: [x64] 1735 1738 os: [netbsd] ··· 1737 1740 dev: true 1738 1741 optional: true 1739 1742 1740 - /@esbuild/openbsd-x64@0.18.20: 1741 - resolution: {integrity: sha512-e5e4YSsuQfX4cxcygw/UCPIEP6wbIL+se3sxPdCiMbFLBWu0eiZOJ7WoD+ptCLrmjZBK1Wk7I6D/I3NglUGOxg==} 1743 + /@esbuild/openbsd-x64@0.19.10: 1744 + resolution: {integrity: sha512-PxcgvjdSjtgPMiPQrM3pwSaG4kGphP+bLSb+cihuP0LYdZv1epbAIecHVl5sD3npkfYBZ0ZnOjR878I7MdJDFg==} 1742 1745 engines: {node: '>=12'} 1743 1746 cpu: [x64] 1744 1747 os: [openbsd] ··· 1746 1749 dev: true 1747 1750 optional: true 1748 1751 1749 - /@esbuild/sunos-x64@0.18.20: 1750 - resolution: {integrity: sha512-kDbFRFp0YpTQVVrqUd5FTYmWo45zGaXe0X8E1G/LKFC0v8x0vWrhOWSLITcCn63lmZIxfOMXtCfti/RxN/0wnQ==} 1752 + /@esbuild/sunos-x64@0.19.10: 1753 + resolution: {integrity: sha512-ZkIOtrRL8SEJjr+VHjmW0znkPs+oJXhlJbNwfI37rvgeMtk3sxOQevXPXjmAPZPigVTncvFqLMd+uV0IBSEzqA==} 1751 1754 engines: {node: '>=12'} 1752 1755 cpu: [x64] 1753 1756 os: [sunos] ··· 1755 1758 dev: true 1756 1759 optional: true 1757 1760 1758 - /@esbuild/win32-arm64@0.18.20: 1759 - resolution: {integrity: sha512-ddYFR6ItYgoaq4v4JmQQaAI5s7npztfV4Ag6NrhiaW0RrnOXqBkgwZLofVTlq1daVTQNhtI5oieTvkRPfZrePg==} 1761 + /@esbuild/win32-arm64@0.19.10: 1762 + resolution: {integrity: sha512-+Sa4oTDbpBfGpl3Hn3XiUe4f8TU2JF7aX8cOfqFYMMjXp6ma6NJDztl5FDG8Ezx0OjwGikIHw+iA54YLDNNVfw==} 1760 1763 engines: {node: '>=12'} 1761 1764 cpu: [arm64] 1762 1765 os: [win32] ··· 1764 1767 dev: true 1765 1768 optional: true 1766 1769 1767 - /@esbuild/win32-ia32@0.18.20: 1768 - resolution: {integrity: sha512-Wv7QBi3ID/rROT08SABTS7eV4hX26sVduqDOTe1MvGMjNd3EjOz4b7zeexIR62GTIEKrfJXKL9LFxTYgkyeu7g==} 1770 + /@esbuild/win32-ia32@0.19.10: 1771 + resolution: {integrity: sha512-EOGVLK1oWMBXgfttJdPHDTiivYSjX6jDNaATeNOaCOFEVcfMjtbx7WVQwPSE1eIfCp/CaSF2nSrDtzc4I9f8TQ==} 1769 1772 engines: {node: '>=12'} 1770 1773 cpu: [ia32] 1771 1774 os: [win32] ··· 1773 1776 dev: true 1774 1777 optional: true 1775 1778 1776 - /@esbuild/win32-x64@0.18.20: 1777 - resolution: {integrity: sha512-kTdfRcSiDfQca/y9QIkng02avJ+NCaQvrMejlsB3RRv5sE9rRoeBPISaZpKxHELzRxZyLvNts1P27W3wV+8geQ==} 1779 + /@esbuild/win32-x64@0.19.10: 1780 + resolution: {integrity: sha512-whqLG6Sc70AbU73fFYvuYzaE4MNMBIlR1Y/IrUeOXFrWHxBEjjbZaQ3IXIQS8wJdAzue2GwYZCjOrgrU1oUHoA==} 1778 1781 engines: {node: '>=12'} 1779 1782 cpu: [x64] 1780 1783 os: [win32] ··· 1782 1785 dev: true 1783 1786 optional: true 1784 1787 1785 - /@eslint-community/eslint-utils@4.4.0(eslint@8.48.0): 1788 + /@eslint-community/eslint-utils@4.4.0(eslint@8.56.0): 1786 1789 resolution: {integrity: sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==} 1787 1790 engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 1788 1791 peerDependencies: 1789 1792 eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 1790 1793 dependencies: 1791 - eslint: 8.48.0 1794 + eslint: 8.56.0 1792 1795 eslint-visitor-keys: 3.4.3 1793 1796 dev: true 1794 1797 ··· 1797 1800 engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} 1798 1801 dev: true 1799 1802 1800 - /@eslint/eslintrc@2.1.2: 1801 - resolution: {integrity: sha512-+wvgpDsrB1YqAMdEUCcnTlpfVBH7Vqn6A/NT3D8WVXFIaKMlErPIZT3oCIAVCOtarRpMtelZLqJeU3t7WY6X6g==} 1803 + /@eslint/eslintrc@2.1.4: 1804 + resolution: {integrity: sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==} 1802 1805 engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 1803 1806 dependencies: 1804 1807 ajv: 6.12.6 ··· 1814 1817 - supports-color 1815 1818 dev: true 1816 1819 1817 - /@eslint/js@8.48.0: 1818 - resolution: {integrity: sha512-ZSjtmelB7IJfWD2Fvb7+Z+ChTIKWq6kjda95fLcQKNS5aheVHn4IkfgRQE3sIIzTcSLwLcLZUD9UBt+V7+h+Pw==} 1820 + /@eslint/js@8.56.0: 1821 + resolution: {integrity: sha512-gMsVel9D7f2HLkBma9VbtzZRehRogVRfbr++f06nL2vnCGCNlzOD+/MUov/F4p8myyAHspEhVobgjpX64q5m6A==} 1819 1822 engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 1820 1823 dev: true 1821 1824 1822 - /@formkit/auto-animate@0.7.0: 1823 - resolution: {integrity: sha512-RczHUr0AhRPssREoNdRjLfk2b/id9/DFnbIq18QM8L7E4zNV3XH+WO480EZ46BQHDEsv76YPJ0JbG2Y2i3GfXw==} 1825 + /@formkit/auto-animate@0.8.1: 1826 + resolution: {integrity: sha512-0/Z2cuNXWVVIG/l0SpcHAWFhGdvLJ8DRvEfRWvmojtmRWfEy+LWNwgDazbZqY0qQYtkHcoEK3jBLkhiZaB/4Ig==} 1824 1827 dev: false 1825 1828 1826 - /@headlessui/react@1.7.17(react-dom@17.0.2)(react@17.0.2): 1829 + /@headlessui/react@1.7.17(react-dom@18.2.0)(react@18.2.0): 1827 1830 resolution: {integrity: sha512-4am+tzvkqDSSgiwrsEpGWqgGo9dz8qU5M3znCkC4PgkpY4HcCZzEDEvozltGGGHIKl9jbXbZPSH5TWn4sWJdow==} 1828 1831 engines: {node: '>=10'} 1829 1832 peerDependencies: ··· 1831 1834 react-dom: ^16 || ^17 || ^18 1832 1835 dependencies: 1833 1836 client-only: 0.0.1 1834 - react: 17.0.2 1835 - react-dom: 17.0.2(react@17.0.2) 1837 + react: 18.2.0 1838 + react-dom: 18.2.0(react@18.2.0) 1836 1839 dev: false 1837 1840 1838 - /@humanwhocodes/config-array@0.11.11: 1839 - resolution: {integrity: sha512-N2brEuAadi0CcdeMXUkhbZB84eskAc8MEX1By6qEchoVywSgXPIjou4rYsl0V3Hj0ZnuGycGCjdNgockbzeWNA==} 1841 + /@humanwhocodes/config-array@0.11.13: 1842 + resolution: {integrity: sha512-JSBDMiDKSzQVngfRjOdFXgFfklaXI4K9nLF49Auh21lmBWRLIK3+xTErTWD4KU54pb6coM6ESE7Awz/FNU3zgQ==} 1840 1843 engines: {node: '>=10.10.0'} 1841 1844 dependencies: 1842 - '@humanwhocodes/object-schema': 1.2.1 1845 + '@humanwhocodes/object-schema': 2.0.1 1843 1846 debug: 4.3.4 1844 1847 minimatch: 3.1.2 1845 1848 transitivePeerDependencies: ··· 1851 1854 engines: {node: '>=12.22'} 1852 1855 dev: true 1853 1856 1854 - /@humanwhocodes/object-schema@1.2.1: 1855 - resolution: {integrity: sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==} 1857 + /@humanwhocodes/object-schema@2.0.1: 1858 + resolution: {integrity: sha512-dvuCeX5fC9dXgJn9t+X5atfmgQAzUOWqS1254Gh0m6i8wKd10ebXkfNKiRK+1GWi/yTvvLDHpoxLr0xxxeslWw==} 1856 1859 dev: true 1857 1860 1858 1861 /@isaacs/cliui@8.0.2: ··· 1865 1868 strip-ansi-cjs: /strip-ansi@6.0.1 1866 1869 wrap-ansi: 8.1.0 1867 1870 wrap-ansi-cjs: /wrap-ansi@7.0.0 1871 + dev: true 1872 + 1873 + /@jest/schemas@29.6.3: 1874 + resolution: {integrity: sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA==} 1875 + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} 1876 + dependencies: 1877 + '@sinclair/typebox': 0.27.8 1868 1878 dev: true 1869 1879 1870 1880 /@jridgewell/gen-mapping@0.3.3: ··· 1874 1884 '@jridgewell/set-array': 1.1.2 1875 1885 '@jridgewell/sourcemap-codec': 1.4.15 1876 1886 '@jridgewell/trace-mapping': 0.3.19 1877 - dev: true 1878 1887 1879 1888 /@jridgewell/resolve-uri@3.1.1: 1880 1889 resolution: {integrity: sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA==} 1881 1890 engines: {node: '>=6.0.0'} 1882 - dev: true 1883 1891 1884 1892 /@jridgewell/set-array@1.1.2: 1885 1893 resolution: {integrity: sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==} 1886 1894 engines: {node: '>=6.0.0'} 1887 - dev: true 1888 1895 1889 1896 /@jridgewell/source-map@0.3.5: 1890 1897 resolution: {integrity: sha512-UTYAUj/wviwdsMfzoSJspJxbkH5o1snzwX0//0ENX1u/55kkZZkcTZP6u9bwKGkv+dkk9at4m1Cpt0uY80kcpQ==} ··· 1895 1902 1896 1903 /@jridgewell/sourcemap-codec@1.4.15: 1897 1904 resolution: {integrity: sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==} 1898 - dev: true 1899 1905 1900 1906 /@jridgewell/trace-mapping@0.3.19: 1901 1907 resolution: {integrity: sha512-kf37QtfW+Hwx/buWGMPcR60iF9ziHa6r/CZJIHbmcm4+0qrXiVdxegAH0F6yddEVQ7zdkjcGCgCzUu+BcbhQxw==} 1902 1908 dependencies: 1903 1909 '@jridgewell/resolve-uri': 3.1.1 1904 1910 '@jridgewell/sourcemap-codec': 1.4.15 1905 - dev: true 1906 1911 1907 1912 /@movie-web/providers@1.1.5: 1908 1913 resolution: {integrity: sha512-JnqU6nVsEZ83UVcsizqzcr/vtwvHHlZt9vYwGiJEAyaUgaXJPZz3C90qzaRZ8CVWydUTRAmjRP3daRFtC1nKHw==} ··· 1918 1923 - encoding 1919 1924 dev: false 1920 1925 1921 - /@noble/hashes@1.3.2: 1922 - resolution: {integrity: sha512-MVC8EAQp7MvEcm30KWENFjgR+Mkmf+D189XJTkFIlwohU5hcBbn1ZkKq7KVTi2Hme3PMGF390DaL52beVrIihQ==} 1926 + /@noble/hashes@1.3.3: 1927 + resolution: {integrity: sha512-V7/fPHgl+jsVPXqqeOzT8egNj2iBIVt+ECeMMG8TdcnTikP3oaBtUVqpT/gYCR68aEBJSF+XbYUxStjbFMqIIA==} 1923 1928 engines: {node: '>= 16'} 1924 1929 dev: false 1925 1930 ··· 1951 1956 dev: true 1952 1957 optional: true 1953 1958 1954 - /@react-spring/animated@9.7.3(react@17.0.2): 1959 + /@pkgr/utils@2.4.2: 1960 + resolution: {integrity: sha512-POgTXhjrTfbTV63DiFXav4lBHiICLKKwDeaKn9Nphwj7WH6m0hMMCaJkMyRWjgtPFyRKRVoMXXjczsTQRDEhYw==} 1961 + engines: {node: ^12.20.0 || ^14.18.0 || >=16.0.0} 1962 + dependencies: 1963 + cross-spawn: 7.0.3 1964 + fast-glob: 3.3.1 1965 + is-glob: 4.0.3 1966 + open: 9.1.0 1967 + picocolors: 1.0.0 1968 + tslib: 2.6.2 1969 + dev: true 1970 + 1971 + /@react-spring/animated@9.7.3(react@18.2.0): 1955 1972 resolution: {integrity: sha512-5CWeNJt9pNgyvuSzQH+uy2pvTg8Y4/OisoscZIR8/ZNLIOI+CatFBhGZpDGTF/OzdNFsAoGk3wiUYTwoJ0YIvw==} 1956 1973 peerDependencies: 1957 1974 react: ^16.8.0 || ^17.0.0 || ^18.0.0 1958 1975 dependencies: 1959 - '@react-spring/shared': 9.7.3(react@17.0.2) 1976 + '@react-spring/shared': 9.7.3(react@18.2.0) 1960 1977 '@react-spring/types': 9.7.3 1961 - react: 17.0.2 1978 + react: 18.2.0 1962 1979 dev: false 1963 1980 1964 - /@react-spring/core@9.7.3(react@17.0.2): 1981 + /@react-spring/core@9.7.3(react@18.2.0): 1965 1982 resolution: {integrity: sha512-IqFdPVf3ZOC1Cx7+M0cXf4odNLxDC+n7IN3MDcVCTIOSBfqEcBebSv+vlY5AhM0zw05PDbjKrNmBpzv/AqpjnQ==} 1966 1983 peerDependencies: 1967 1984 react: ^16.8.0 || ^17.0.0 || ^18.0.0 1968 1985 dependencies: 1969 - '@react-spring/animated': 9.7.3(react@17.0.2) 1970 - '@react-spring/shared': 9.7.3(react@17.0.2) 1986 + '@react-spring/animated': 9.7.3(react@18.2.0) 1987 + '@react-spring/shared': 9.7.3(react@18.2.0) 1971 1988 '@react-spring/types': 9.7.3 1972 - react: 17.0.2 1989 + react: 18.2.0 1973 1990 dev: false 1974 1991 1975 - /@react-spring/shared@9.7.3(react@17.0.2): 1992 + /@react-spring/shared@9.7.3(react@18.2.0): 1976 1993 resolution: {integrity: sha512-NEopD+9S5xYyQ0pGtioacLhL2luflh6HACSSDUZOwLHoxA5eku1UPuqcJqjwSD6luKjjLfiLOspxo43FUHKKSA==} 1977 1994 peerDependencies: 1978 1995 react: ^16.8.0 || ^17.0.0 || ^18.0.0 1979 1996 dependencies: 1980 1997 '@react-spring/types': 9.7.3 1981 - react: 17.0.2 1998 + react: 18.2.0 1982 1999 dev: false 1983 2000 1984 2001 /@react-spring/types@9.7.3: 1985 2002 resolution: {integrity: sha512-Kpx/fQ/ZFX31OtlqVEFfgaD1ACzul4NksrvIgYfIFq9JpDHFwQkMVZ10tbo0FU/grje4rcL4EIrjekl3kYwgWw==} 1986 2003 dev: false 1987 2004 1988 - /@react-spring/web@9.7.3(react-dom@17.0.2)(react@17.0.2): 2005 + /@react-spring/web@9.7.3(react-dom@18.2.0)(react@18.2.0): 1989 2006 resolution: {integrity: sha512-BXt6BpS9aJL/QdVqEIX9YoUy8CE6TJrU0mNCqSoxdXlIeNcEBWOfIyE6B14ENNsyQKS3wOWkiJfco0tCr/9tUg==} 1990 2007 peerDependencies: 1991 2008 react: ^16.8.0 || ^17.0.0 || ^18.0.0 1992 2009 react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 1993 2010 dependencies: 1994 - '@react-spring/animated': 9.7.3(react@17.0.2) 1995 - '@react-spring/core': 9.7.3(react@17.0.2) 1996 - '@react-spring/shared': 9.7.3(react@17.0.2) 2011 + '@react-spring/animated': 9.7.3(react@18.2.0) 2012 + '@react-spring/core': 9.7.3(react@18.2.0) 2013 + '@react-spring/shared': 9.7.3(react@18.2.0) 1997 2014 '@react-spring/types': 9.7.3 1998 - react: 17.0.2 1999 - react-dom: 17.0.2(react@17.0.2) 2015 + react: 18.2.0 2016 + react-dom: 18.2.0(react@18.2.0) 2017 + dev: false 2018 + 2019 + /@remix-run/router@1.14.1: 2020 + resolution: {integrity: sha512-Qg4DMQsfPNAs88rb2xkdk03N3bjK4jgX5fR24eHCTR9q6PrhZQZ4UJBPzCHJkIpTRN1UKxx2DzjZmnC+7Lj0Ow==} 2021 + engines: {node: '>=14.0.0'} 2000 2022 dev: false 2001 2023 2002 - /@rollup/plugin-babel@5.3.1(@babel/core@7.22.11)(rollup@2.79.1): 2024 + /@rollup/plugin-babel@5.3.1(@babel/core@7.23.6)(rollup@2.79.1): 2003 2025 resolution: {integrity: sha512-WFfdLWU/xVWKeRQnKmIAQULUI7Il0gZnBIH/ZFO069wYIfPu+8zrfp/KMW0atmELoRDq8FbiP3VCss9MhCut7Q==} 2004 2026 engines: {node: '>= 10.0.0'} 2005 2027 peerDependencies: ··· 2010 2032 '@types/babel__core': 2011 2033 optional: true 2012 2034 dependencies: 2013 - '@babel/core': 7.22.11 2014 - '@babel/helper-module-imports': 7.22.5 2035 + '@babel/core': 7.23.6 2036 + '@babel/helper-module-imports': 7.22.15 2015 2037 '@rollup/pluginutils': 3.1.0(rollup@2.79.1) 2016 2038 rollup: 2.79.1 2017 2039 dev: true ··· 2053 2075 rollup: 2.79.1 2054 2076 dev: true 2055 2077 2056 - /@scure/base@1.1.3: 2057 - resolution: {integrity: sha512-/+SgoRjLq7Xlf0CWuLHq2LUZeL/w65kfzAPG5NH9pcmBhs+nunQTn4gvdwgMTIXnt9b2C/1SeL2XiysZEyIC9Q==} 2078 + /@rollup/rollup-android-arm-eabi@4.9.1: 2079 + resolution: {integrity: sha512-6vMdBZqtq1dVQ4CWdhFwhKZL6E4L1dV6jUjuBvsavvNJSppzi6dLBbuV+3+IyUREaj9ZFvQefnQm28v4OCXlig==} 2080 + cpu: [arm] 2081 + os: [android] 2082 + requiresBuild: true 2083 + dev: true 2084 + optional: true 2085 + 2086 + /@rollup/rollup-android-arm64@4.9.1: 2087 + resolution: {integrity: sha512-Jto9Fl3YQ9OLsTDWtLFPtaIMSL2kwGyGoVCmPC8Gxvym9TCZm4Sie+cVeblPO66YZsYH8MhBKDMGZ2NDxuk/XQ==} 2088 + cpu: [arm64] 2089 + os: [android] 2090 + requiresBuild: true 2091 + dev: true 2092 + optional: true 2093 + 2094 + /@rollup/rollup-darwin-arm64@4.9.1: 2095 + resolution: {integrity: sha512-LtYcLNM+bhsaKAIGwVkh5IOWhaZhjTfNOkGzGqdHvhiCUVuJDalvDxEdSnhFzAn+g23wgsycmZk1vbnaibZwwA==} 2096 + cpu: [arm64] 2097 + os: [darwin] 2098 + requiresBuild: true 2099 + dev: true 2100 + optional: true 2101 + 2102 + /@rollup/rollup-darwin-x64@4.9.1: 2103 + resolution: {integrity: sha512-KyP/byeXu9V+etKO6Lw3E4tW4QdcnzDG/ake031mg42lob5tN+5qfr+lkcT/SGZaH2PdW4Z1NX9GHEkZ8xV7og==} 2104 + cpu: [x64] 2105 + os: [darwin] 2106 + requiresBuild: true 2107 + dev: true 2108 + optional: true 2109 + 2110 + /@rollup/rollup-linux-arm-gnueabihf@4.9.1: 2111 + resolution: {integrity: sha512-Yqz/Doumf3QTKplwGNrCHe/B2p9xqDghBZSlAY0/hU6ikuDVQuOUIpDP/YcmoT+447tsZTmirmjgG3znvSCR0Q==} 2112 + cpu: [arm] 2113 + os: [linux] 2114 + requiresBuild: true 2115 + dev: true 2116 + optional: true 2117 + 2118 + /@rollup/rollup-linux-arm64-gnu@4.9.1: 2119 + resolution: {integrity: sha512-u3XkZVvxcvlAOlQJ3UsD1rFvLWqu4Ef/Ggl40WAVCuogf4S1nJPHh5RTgqYFpCOvuGJ7H5yGHabjFKEZGExk5Q==} 2120 + cpu: [arm64] 2121 + os: [linux] 2122 + requiresBuild: true 2123 + dev: true 2124 + optional: true 2125 + 2126 + /@rollup/rollup-linux-arm64-musl@4.9.1: 2127 + resolution: {integrity: sha512-0XSYN/rfWShW+i+qjZ0phc6vZ7UWI8XWNz4E/l+6edFt+FxoEghrJHjX1EY/kcUGCnZzYYRCl31SNdfOi450Aw==} 2128 + cpu: [arm64] 2129 + os: [linux] 2130 + requiresBuild: true 2131 + dev: true 2132 + optional: true 2133 + 2134 + /@rollup/rollup-linux-riscv64-gnu@4.9.1: 2135 + resolution: {integrity: sha512-LmYIO65oZVfFt9t6cpYkbC4d5lKHLYv5B4CSHRpnANq0VZUQXGcCPXHzbCXCz4RQnx7jvlYB1ISVNCE/omz5cw==} 2136 + cpu: [riscv64] 2137 + os: [linux] 2138 + requiresBuild: true 2139 + dev: true 2140 + optional: true 2141 + 2142 + /@rollup/rollup-linux-x64-gnu@4.9.1: 2143 + resolution: {integrity: sha512-kr8rEPQ6ns/Lmr/hiw8sEVj9aa07gh1/tQF2Y5HrNCCEPiCBGnBUt9tVusrcBBiJfIt1yNaXN6r1CCmpbFEDpg==} 2144 + cpu: [x64] 2145 + os: [linux] 2146 + requiresBuild: true 2147 + dev: true 2148 + optional: true 2149 + 2150 + /@rollup/rollup-linux-x64-musl@4.9.1: 2151 + resolution: {integrity: sha512-t4QSR7gN+OEZLG0MiCgPqMWZGwmeHhsM4AkegJ0Kiy6TnJ9vZ8dEIwHw1LcZKhbHxTY32hp9eVCMdR3/I8MGRw==} 2152 + cpu: [x64] 2153 + os: [linux] 2154 + requiresBuild: true 2155 + dev: true 2156 + optional: true 2157 + 2158 + /@rollup/rollup-win32-arm64-msvc@4.9.1: 2159 + resolution: {integrity: sha512-7XI4ZCBN34cb+BH557FJPmh0kmNz2c25SCQeT9OiFWEgf8+dL6ZwJ8f9RnUIit+j01u07Yvrsuu1rZGxJCc51g==} 2160 + cpu: [arm64] 2161 + os: [win32] 2162 + requiresBuild: true 2163 + dev: true 2164 + optional: true 2165 + 2166 + /@rollup/rollup-win32-ia32-msvc@4.9.1: 2167 + resolution: {integrity: sha512-yE5c2j1lSWOH5jp+Q0qNL3Mdhr8WuqCNVjc6BxbVfS5cAS6zRmdiw7ktb8GNpDCEUJphILY6KACoFoRtKoqNQg==} 2168 + cpu: [ia32] 2169 + os: [win32] 2170 + requiresBuild: true 2171 + dev: true 2172 + optional: true 2173 + 2174 + /@rollup/rollup-win32-x64-msvc@4.9.1: 2175 + resolution: {integrity: sha512-PyJsSsafjmIhVgaI1Zdj7m8BB8mMckFah/xbpplObyHfiXzKcI5UOUXRyOdHW7nz4DpMCuzLnF7v5IWHenCwYA==} 2176 + cpu: [x64] 2177 + os: [win32] 2178 + requiresBuild: true 2179 + dev: true 2180 + optional: true 2181 + 2182 + /@scure/base@1.1.5: 2183 + resolution: {integrity: sha512-Brj9FiG2W1MRQSTB212YVPRrcbjkv48FoZi/u4l/zds/ieRrqsh7aUf6CLwkAq61oKXr/ZlTzlY66gLIj3TFTQ==} 2058 2184 dev: false 2059 2185 2060 - /@scure/bip39@1.2.1: 2061 - resolution: {integrity: sha512-Z3/Fsz1yr904dduJD0NpiyRHhRYHdcnyh73FZWiV+/qhWi83wNJ3NWolYqCEN+ZWsUz2TWwajJggcRE9r1zUYg==} 2186 + /@scure/bip39@1.2.2: 2187 + resolution: {integrity: sha512-HYf9TUXG80beW+hGAt3TRM8wU6pQoYur9iNypTROm42dorCGmLnFe3eWjz3gOq6G62H2WRh0FCzAR1PI+29zIA==} 2062 2188 dependencies: 2063 - '@noble/hashes': 1.3.2 2064 - '@scure/base': 1.1.3 2189 + '@noble/hashes': 1.3.3 2190 + '@scure/base': 1.1.5 2065 2191 dev: false 2066 2192 2193 + /@sinclair/typebox@0.27.8: 2194 + resolution: {integrity: sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==} 2195 + dev: true 2196 + 2067 2197 /@sozialhelden/ietf-language-tags@5.4.2: 2068 2198 resolution: {integrity: sha512-aCN7bVOfX9sBN0EHyWJT14H8bx+VYBo8tdcynai35wgoxKMfVtgEECkQ1gs8nEL6GHGes8lPIfo6AjIch44N3w==} 2069 2199 dependencies: ··· 2080 2210 string.prototype.matchall: 4.0.9 2081 2211 dev: true 2082 2212 2083 - /@tootallnate/once@2.0.0: 2084 - resolution: {integrity: sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A==} 2085 - engines: {node: '>= 10'} 2213 + /@types/babel__core@7.20.5: 2214 + resolution: {integrity: sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==} 2215 + dependencies: 2216 + '@babel/parser': 7.23.0 2217 + '@babel/types': 7.23.0 2218 + '@types/babel__generator': 7.6.8 2219 + '@types/babel__template': 7.4.4 2220 + '@types/babel__traverse': 7.20.4 2086 2221 dev: true 2087 2222 2088 - /@types/chai-subset@1.3.3: 2089 - resolution: {integrity: sha512-frBecisrNGz+F4T6bcc+NLeolfiojh5FxW2klu669+8BARtyQv2C/GkNW6FUodVe4BroGMP/wER/YDGc7rEllw==} 2223 + /@types/babel__generator@7.6.8: 2224 + resolution: {integrity: sha512-ASsj+tpEDsEiFr1arWrlN6V3mdfjRMZt6LtK/Vp/kreFLnr5QH5+DhvD5nINYZXzwJvXeGq+05iUXcAzVrqWtw==} 2090 2225 dependencies: 2091 - '@types/chai': 4.3.5 2226 + '@babel/types': 7.23.0 2092 2227 dev: true 2093 2228 2094 - /@types/chai@4.3.5: 2095 - resolution: {integrity: sha512-mEo1sAde+UCE6b2hxn332f1g1E8WfYRu6p5SvTKr2ZKC1f7gFJXk4h5PyGP9Dt6gCaG8y8XhwnXWC6Iy2cmBng==} 2229 + /@types/babel__template@7.4.4: 2230 + resolution: {integrity: sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==} 2231 + dependencies: 2232 + '@babel/parser': 7.23.0 2233 + '@babel/types': 7.23.0 2234 + dev: true 2235 + 2236 + /@types/babel__traverse@7.20.4: 2237 + resolution: {integrity: sha512-mSM/iKUk5fDDrEV/e83qY+Cr3I1+Q3qqTuEn++HAWYjEa1+NxZr6CNrcJGf2ZTnq4HoFGC3zaTPZTobCzCFukA==} 2238 + dependencies: 2239 + '@babel/types': 7.23.0 2096 2240 dev: true 2097 2241 2098 2242 /@types/chrome@0.0.244: ··· 2102 2246 '@types/har-format': 1.2.12 2103 2247 dev: true 2104 2248 2105 - /@types/chromecast-caf-sender@1.0.5: 2106 - resolution: {integrity: sha512-8d6RRCOYYiKzDyFJKAYKOp7Eo0kUfj9imnLQj0uuh/QGSz8euL9OOeKmh8XizqTcKW5tXva6li0mRYtnvzVIcA==} 2249 + /@types/chromecast-caf-sender@1.0.8: 2250 + resolution: {integrity: sha512-3vByTZptIkYpNz/wErOnpFQ4hWGU1ghO5bcivNButxARbXXKfClLJv6r5Pd622nD/UecjSwrAeIposAIzd4HvA==} 2107 2251 dependencies: 2108 2252 '@types/chrome': 0.0.244 2109 2253 dev: true 2110 2254 2111 - /@types/crypto-js@4.1.1: 2112 - resolution: {integrity: sha512-BG7fQKZ689HIoc5h+6D2Dgq1fABRa0RbBWKBd9SP/MVRVXROflpm5fhwyATX5duFmbStzyzyycPB8qUYKDH3NA==} 2255 + /@types/crypto-js@4.2.1: 2256 + resolution: {integrity: sha512-FSPGd9+OcSok3RsM0UZ/9fcvMOXJ1ENE/ZbLfOPlBWj7BgXtEAM8VYfTtT760GiLbQIMoVozwVuisjvsVwqYWw==} 2113 2257 dev: true 2114 2258 2115 - /@types/dompurify@2.4.0: 2116 - resolution: {integrity: sha512-IDBwO5IZhrKvHFUl+clZxgf3hn2b/lU6H1KaBShPkQyGJUQ0xwebezIPSuiyGwfz1UzJWQl4M7BDxtHtCCPlTg==} 2259 + /@types/dompurify@3.0.5: 2260 + resolution: {integrity: sha512-1Wg0g3BtQF7sSb27fJQAKck1HECM6zV1EB66j8JH9i3LCjYabJa0FSdiSgsD5K/RbrsR0SiraKacLB+T8ZVYAg==} 2117 2261 dependencies: 2118 2262 '@types/trusted-types': 2.0.3 2119 2263 dev: true ··· 2132 2276 resolution: {integrity: sha512-BsPXH/irW0ht0Ji6iw/jJaK8Lj3FJemon2gvEqHKpCdDCeemHa+rI3WBGq5z7cDMZgoLjY40oninGxqk+8NzNQ==} 2133 2277 dev: true 2134 2278 2135 - /@types/fscreen@1.0.1: 2136 - resolution: {integrity: sha512-hV2d0BreihMGtrg+EdAFOIl/O2EL5vhAheHJUztGE/lPFZIN8ZCpGFL8hCbtyi1CfhKjDRCf47sHjP+FwJ4q0Q==} 2279 + /@types/fscreen@1.0.4: 2280 + resolution: {integrity: sha512-TsjxyAUvlvuQyao9vNk0yES4nY07K9xoAbkhgXU948JG39EqlLxniWuW9OiZde9Q8ACSpu3fmbXXRAfb/l/HqQ==} 2137 2281 dev: true 2138 2282 2139 2283 /@types/har-format@1.2.12: ··· 2162 2306 '@types/lodash': 4.14.197 2163 2307 dev: true 2164 2308 2165 - /@types/lodash.throttle@4.1.7: 2166 - resolution: {integrity: sha512-znwGDpjCHQ4FpLLx19w4OXDqq8+OvREa05H89obtSyXyOFKL3dDjCslsmfBz0T2FU8dmf5Wx1QvogbINiGIu9g==} 2309 + /@types/lodash.throttle@4.1.9: 2310 + resolution: {integrity: sha512-PCPVfpfueguWZQB7pJQK890F2scYKoDUL3iM522AptHWn7d5NQmeS/LTEHIcLr5PaTzl3dK2Z0xSUHHTHwaL5g==} 2167 2311 dependencies: 2168 2312 '@types/lodash': 4.14.197 2169 2313 dev: true ··· 2172 2316 resolution: {integrity: sha512-BMVOiWs0uNxHVlHBgzTIqJYmj+PgCo4euloGF+5m4okL3rEYzM2EEv78mw8zWSMM57dM7kVIgJ2QDvwHSoCI5g==} 2173 2317 dev: true 2174 2318 2175 - /@types/node-forge@1.3.8: 2176 - resolution: {integrity: sha512-vGXshY9vim9CJjrpcS5raqSjEfKlJcWy2HNdgUasR66fAnVEYarrf1ULV4nfvpC1nZq/moA9qyqBcu83x+Jlrg==} 2319 + /@types/node-forge@1.3.10: 2320 + resolution: {integrity: sha512-y6PJDYN4xYBxwd22l+OVH35N+1fCYWiuC3aiP2SlXVE6Lo7SS+rSx9r89hLxrP4pn6n1lBGhHJ12pj3F3Mpttw==} 2177 2321 dependencies: 2178 - '@types/node': 17.0.45 2322 + '@types/node': 20.10.5 2179 2323 dev: false 2180 2324 2181 - /@types/node@17.0.45: 2182 - resolution: {integrity: sha512-w+tIMs3rq2afQdsPJlODhoUEKzFP1ayaoyl1CcnwtIlsVe7K7bA1NGm4s3PraqTLlXnbIN84zuBlxBWo1u9BLw==} 2325 + /@types/node@20.10.5: 2326 + resolution: {integrity: sha512-nNPsNE65wjMxEKI93yOP+NPGGBJz/PoN3kZsVLee0XMiJolxSekEVD8wRwBUBqkwc7UWop0edW50yrCQW4CyRw==} 2327 + dependencies: 2328 + undici-types: 5.26.5 2183 2329 2184 - /@types/pako@2.0.0: 2185 - resolution: {integrity: sha512-10+iaz93qR5WYxTo+PMifD5TSxiOtdRaxBf7INGGXMQgTCu8Z/7GYWYFUOS3q/G0nE5boj1r4FEB+WSy7s5gbA==} 2330 + /@types/pako@2.0.3: 2331 + resolution: {integrity: sha512-bq0hMV9opAcrmE0Byyo0fY3Ew4tgOevJmQ9grUhpXQhYfyLJ1Kqg3P33JT5fdbT2AjeAjR51zqqVjAL/HMkx7Q==} 2186 2332 dev: true 2187 2333 2188 2334 /@types/prop-types@15.7.5: 2189 2335 resolution: {integrity: sha512-JCB8C6SnDoQf0cNycqd/35A7MjcnK+ZTqE7judS6o7utxUCg6imJg3QK2qzHKszlTjcj2cn+NwMB2i96ubpj7w==} 2190 2336 2191 - /@types/react-dom@17.0.20: 2192 - resolution: {integrity: sha512-4pzIjSxDueZZ90F52mU3aPoogkHIoSIDG+oQ+wQK7Cy2B9S+MvOqY0uEA/qawKz381qrEDkvpwyt8Bm31I8sbA==} 2337 + /@types/react-dom@18.2.18: 2338 + resolution: {integrity: sha512-TJxDm6OfAX2KJWJdMEVTwWke5Sc/E/RlnPGvGfS0W7+6ocy2xhDVQVh/KvC2Uf7kACs+gDytdusDSdWfWkaNzw==} 2193 2339 dependencies: 2194 - '@types/react': 17.0.65 2340 + '@types/react': 18.2.45 2195 2341 dev: true 2196 2342 2197 - /@types/react-helmet@6.1.6: 2198 - resolution: {integrity: sha512-ZKcoOdW/Tg+kiUbkFCBtvDw0k3nD4HJ/h/B9yWxN4uDO8OkRksWTO+EL+z/Qu3aHTeTll3Ro0Cc/8UhwBCMG5A==} 2343 + /@types/react-helmet@6.1.11: 2344 + resolution: {integrity: sha512-0QcdGLddTERotCXo3VFlUSWO3ztraw8nZ6e3zJSgG7apwV5xt+pJUS8ewPBqT4NYB1optGLprNQzFleIY84u/g==} 2199 2345 dependencies: 2200 - '@types/react': 17.0.65 2346 + '@types/react': 18.2.45 2201 2347 dev: true 2202 2348 2203 2349 /@types/react-router-dom@5.3.3: 2204 2350 resolution: {integrity: sha512-kpqnYK4wcdm5UaWI3fLcELopqLrHgLqNsdpHauzlQktfkHL3npOSwtj1Uz9oKBAzs7lFtVkV8j83voAz2D8fhw==} 2205 2351 dependencies: 2206 2352 '@types/history': 4.7.11 2207 - '@types/react': 17.0.65 2353 + '@types/react': 18.2.45 2208 2354 '@types/react-router': 5.1.20 2209 2355 dev: true 2210 2356 ··· 2212 2358 resolution: {integrity: sha512-jGjmu/ZqS7FjSH6owMcD5qpq19+1RS9DeVRqfl1FeBMxTDQAGwlMWOcs52NDoXaNKyG3d1cYQFMs9rCrb88o9Q==} 2213 2359 dependencies: 2214 2360 '@types/history': 4.7.11 2215 - '@types/react': 17.0.65 2361 + '@types/react': 18.2.45 2216 2362 dev: true 2217 2363 2218 - /@types/react-stickynode@4.0.0: 2219 - resolution: {integrity: sha512-PKkmOzF6WCNuyIKrvhidGeUPLfe8htPwfEljKnQBF4bA5v74ADvXtwkjavOH8i6aCSw9J14AyDDl1Ul0VNQJUg==} 2364 + /@types/react-stickynode@4.0.3: 2365 + resolution: {integrity: sha512-K7YkwdhXQE4YVxIVweix4nkpdG4onm/dcnKK+qCj0vgUrNiKng+09zOfjF5AlOcC1HQkg5yxVLwp/0AzT84R0w==} 2220 2366 dependencies: 2221 - '@types/react': 17.0.65 2367 + '@types/react': 18.2.45 2222 2368 dev: true 2223 2369 2224 - /@types/react-transition-group@4.4.6: 2225 - resolution: {integrity: sha512-VnCdSxfcm08KjsJVQcfBmhEQAPnLB8G08hAxn39azX1qYBQ/5RVQuoHuKIcfKOdncuaUvEpFKFzEvbtIMsfVew==} 2370 + /@types/react-transition-group@4.4.10: 2371 + resolution: {integrity: sha512-hT/+s0VQs2ojCX823m60m5f0sL5idt9SO6Tj6Dg+rdphGPIeJbJ6CxvBYkgkGKrYeDjvIpKTR38UzmtHJOGW3Q==} 2226 2372 dependencies: 2227 - '@types/react': 17.0.65 2373 + '@types/react': 18.2.45 2228 2374 dev: true 2229 2375 2230 - /@types/react@17.0.65: 2231 - resolution: {integrity: sha512-oxur785xZYHvnI7TRS61dXbkIhDPnGfsXKv0cNXR/0ml4SipRIFpSMzA7HMEfOywFwJ5AOnPrXYTEiTRUQeGlQ==} 2376 + /@types/react@18.2.45: 2377 + resolution: {integrity: sha512-TtAxCNrlrBp8GoeEp1npd5g+d/OejJHFxS3OWmrPBMFaVQMSN0OFySozJio5BHxTuTeug00AVXVAjfDSfk+lUg==} 2232 2378 dependencies: 2233 2379 '@types/prop-types': 15.7.5 2234 2380 '@types/scheduler': 0.16.3 ··· 2237 2383 /@types/resolve@1.17.1: 2238 2384 resolution: {integrity: sha512-yy7HuzQhj0dhGpD8RLXSZWEkLsV9ibvxvi6EiJ3bkqLAO1RGo0WbkWQiwpRlSFymTJRz0d3k5LM3kkx8ArDbLw==} 2239 2385 dependencies: 2240 - '@types/node': 17.0.45 2386 + '@types/node': 20.10.5 2241 2387 dev: true 2242 2388 2243 2389 /@types/scheduler@0.16.3: ··· 2251 2397 resolution: {integrity: sha512-NfQ4gyz38SL8sDNrSixxU2Os1a5xcdFxipAFxYEuLUlvU2uDwS4NUpsImcf1//SlWItCVMMLiylsxbmNMToV/g==} 2252 2398 dev: true 2253 2399 2254 - /@typescript-eslint/eslint-plugin@5.62.0(@typescript-eslint/parser@5.62.0)(eslint@8.48.0)(typescript@4.9.5): 2255 - resolution: {integrity: sha512-TiZzBSJja/LbhNPvk6yc0JrX9XqhQ0hdh6M2svYfsHGejaKFIAGd9MQ+ERIMzLGlN/kZoYIgdxFV0PuljTKXag==} 2256 - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 2400 + /@typescript-eslint/eslint-plugin@6.15.0(@typescript-eslint/parser@6.15.0)(eslint@8.56.0)(typescript@5.3.3): 2401 + resolution: {integrity: sha512-j5qoikQqPccq9QoBAupOP+CBu8BaJ8BLjaXSioDISeTZkVO3ig7oSIKh3H+rEpee7xCXtWwSB4KIL5l6hWZzpg==} 2402 + engines: {node: ^16.0.0 || >=18.0.0} 2257 2403 peerDependencies: 2258 - '@typescript-eslint/parser': ^5.0.0 2259 - eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 2404 + '@typescript-eslint/parser': ^6.0.0 || ^6.0.0-alpha 2405 + eslint: ^7.0.0 || ^8.0.0 2260 2406 typescript: '*' 2261 2407 peerDependenciesMeta: 2262 2408 typescript: 2263 2409 optional: true 2264 2410 dependencies: 2265 2411 '@eslint-community/regexpp': 4.8.0 2266 - '@typescript-eslint/parser': 5.62.0(eslint@8.48.0)(typescript@4.9.5) 2267 - '@typescript-eslint/scope-manager': 5.62.0 2268 - '@typescript-eslint/type-utils': 5.62.0(eslint@8.48.0)(typescript@4.9.5) 2269 - '@typescript-eslint/utils': 5.62.0(eslint@8.48.0)(typescript@4.9.5) 2412 + '@typescript-eslint/parser': 6.15.0(eslint@8.56.0)(typescript@5.3.3) 2413 + '@typescript-eslint/scope-manager': 6.15.0 2414 + '@typescript-eslint/type-utils': 6.15.0(eslint@8.56.0)(typescript@5.3.3) 2415 + '@typescript-eslint/utils': 6.15.0(eslint@8.56.0)(typescript@5.3.3) 2416 + '@typescript-eslint/visitor-keys': 6.15.0 2270 2417 debug: 4.3.4 2271 - eslint: 8.48.0 2418 + eslint: 8.56.0 2272 2419 graphemer: 1.4.0 2273 2420 ignore: 5.2.4 2274 - natural-compare-lite: 1.4.0 2421 + natural-compare: 1.4.0 2275 2422 semver: 7.5.4 2276 - tsutils: 3.21.0(typescript@4.9.5) 2277 - typescript: 4.9.5 2423 + ts-api-utils: 1.0.3(typescript@5.3.3) 2424 + typescript: 5.3.3 2278 2425 transitivePeerDependencies: 2279 2426 - supports-color 2280 2427 dev: true 2281 2428 2282 - /@typescript-eslint/parser@5.62.0(eslint@8.48.0)(typescript@4.9.5): 2283 - resolution: {integrity: sha512-VlJEV0fOQ7BExOsHYAGrgbEiZoi8D+Bl2+f6V2RrXerRSylnp+ZBHmPvaIa8cz0Ajx7WO7Z5RqfgYg7ED1nRhA==} 2284 - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 2429 + /@typescript-eslint/parser@6.15.0(eslint@8.56.0)(typescript@5.3.3): 2430 + resolution: {integrity: sha512-MkgKNnsjC6QwcMdlNAel24jjkEO/0hQaMDLqP4S9zq5HBAUJNQB6y+3DwLjX7b3l2b37eNAxMPLwb3/kh8VKdA==} 2431 + engines: {node: ^16.0.0 || >=18.0.0} 2285 2432 peerDependencies: 2286 - eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 2433 + eslint: ^7.0.0 || ^8.0.0 2287 2434 typescript: '*' 2288 2435 peerDependenciesMeta: 2289 2436 typescript: 2290 2437 optional: true 2291 2438 dependencies: 2292 - '@typescript-eslint/scope-manager': 5.62.0 2293 - '@typescript-eslint/types': 5.62.0 2294 - '@typescript-eslint/typescript-estree': 5.62.0(typescript@4.9.5) 2439 + '@typescript-eslint/scope-manager': 6.15.0 2440 + '@typescript-eslint/types': 6.15.0 2441 + '@typescript-eslint/typescript-estree': 6.15.0(typescript@5.3.3) 2442 + '@typescript-eslint/visitor-keys': 6.15.0 2295 2443 debug: 4.3.4 2296 - eslint: 8.48.0 2297 - typescript: 4.9.5 2444 + eslint: 8.56.0 2445 + typescript: 5.3.3 2298 2446 transitivePeerDependencies: 2299 2447 - supports-color 2300 2448 dev: true 2301 2449 2302 - /@typescript-eslint/scope-manager@5.62.0: 2303 - resolution: {integrity: sha512-VXuvVvZeQCQb5Zgf4HAxc04q5j+WrNAtNh9OwCsCgpKqESMTu3tF/jhZ3xG6T4NZwWl65Bg8KuS2uEvhSfLl0w==} 2304 - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 2450 + /@typescript-eslint/scope-manager@6.15.0: 2451 + resolution: {integrity: sha512-+BdvxYBltqrmgCNu4Li+fGDIkW9n//NrruzG9X1vBzaNK+ExVXPoGB71kneaVw/Jp+4rH/vaMAGC6JfMbHstVg==} 2452 + engines: {node: ^16.0.0 || >=18.0.0} 2305 2453 dependencies: 2306 - '@typescript-eslint/types': 5.62.0 2307 - '@typescript-eslint/visitor-keys': 5.62.0 2454 + '@typescript-eslint/types': 6.15.0 2455 + '@typescript-eslint/visitor-keys': 6.15.0 2308 2456 dev: true 2309 2457 2310 - /@typescript-eslint/type-utils@5.62.0(eslint@8.48.0)(typescript@4.9.5): 2311 - resolution: {integrity: sha512-xsSQreu+VnfbqQpW5vnCJdq1Z3Q0U31qiWmRhr98ONQmcp/yhiPJFPq8MXiJVLiksmOKSjIldZzkebzHuCGzew==} 2312 - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 2458 + /@typescript-eslint/type-utils@6.15.0(eslint@8.56.0)(typescript@5.3.3): 2459 + resolution: {integrity: sha512-CnmHKTfX6450Bo49hPg2OkIm/D/TVYV7jO1MCfPYGwf6x3GO0VU8YMO5AYMn+u3X05lRRxA4fWCz87GFQV6yVQ==} 2460 + engines: {node: ^16.0.0 || >=18.0.0} 2313 2461 peerDependencies: 2314 - eslint: '*' 2462 + eslint: ^7.0.0 || ^8.0.0 2315 2463 typescript: '*' 2316 2464 peerDependenciesMeta: 2317 2465 typescript: 2318 2466 optional: true 2319 2467 dependencies: 2320 - '@typescript-eslint/typescript-estree': 5.62.0(typescript@4.9.5) 2321 - '@typescript-eslint/utils': 5.62.0(eslint@8.48.0)(typescript@4.9.5) 2468 + '@typescript-eslint/typescript-estree': 6.15.0(typescript@5.3.3) 2469 + '@typescript-eslint/utils': 6.15.0(eslint@8.56.0)(typescript@5.3.3) 2322 2470 debug: 4.3.4 2323 - eslint: 8.48.0 2324 - tsutils: 3.21.0(typescript@4.9.5) 2325 - typescript: 4.9.5 2471 + eslint: 8.56.0 2472 + ts-api-utils: 1.0.3(typescript@5.3.3) 2473 + typescript: 5.3.3 2326 2474 transitivePeerDependencies: 2327 2475 - supports-color 2328 2476 dev: true 2329 2477 2330 - /@typescript-eslint/types@5.62.0: 2331 - resolution: {integrity: sha512-87NVngcbVXUahrRTqIK27gD2t5Cu1yuCXxbLcFtCzZGlfyVWWh8mLHkoxzjsB6DDNnvdL+fW8MiwPEJyGJQDgQ==} 2332 - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 2478 + /@typescript-eslint/types@6.15.0: 2479 + resolution: {integrity: sha512-yXjbt//E4T/ee8Ia1b5mGlbNj9fB9lJP4jqLbZualwpP2BCQ5is6BcWwxpIsY4XKAhmdv3hrW92GdtJbatC6dQ==} 2480 + engines: {node: ^16.0.0 || >=18.0.0} 2333 2481 dev: true 2334 2482 2335 - /@typescript-eslint/typescript-estree@5.62.0(typescript@4.9.5): 2336 - resolution: {integrity: sha512-CmcQ6uY7b9y694lKdRB8FEel7JbU/40iSAPomu++SjLMntB+2Leay2LO6i8VnJk58MtE9/nQSFIH6jpyRWyYzA==} 2337 - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 2483 + /@typescript-eslint/typescript-estree@6.15.0(typescript@5.3.3): 2484 + resolution: {integrity: sha512-7mVZJN7Hd15OmGuWrp2T9UvqR2Ecg+1j/Bp1jXUEY2GZKV6FXlOIoqVDmLpBiEiq3katvj/2n2mR0SDwtloCew==} 2485 + engines: {node: ^16.0.0 || >=18.0.0} 2338 2486 peerDependencies: 2339 2487 typescript: '*' 2340 2488 peerDependenciesMeta: 2341 2489 typescript: 2342 2490 optional: true 2343 2491 dependencies: 2344 - '@typescript-eslint/types': 5.62.0 2345 - '@typescript-eslint/visitor-keys': 5.62.0 2492 + '@typescript-eslint/types': 6.15.0 2493 + '@typescript-eslint/visitor-keys': 6.15.0 2346 2494 debug: 4.3.4 2347 2495 globby: 11.1.0 2348 2496 is-glob: 4.0.3 2349 2497 semver: 7.5.4 2350 - tsutils: 3.21.0(typescript@4.9.5) 2351 - typescript: 4.9.5 2498 + ts-api-utils: 1.0.3(typescript@5.3.3) 2499 + typescript: 5.3.3 2352 2500 transitivePeerDependencies: 2353 2501 - supports-color 2354 2502 dev: true 2355 2503 2356 - /@typescript-eslint/utils@5.62.0(eslint@8.48.0)(typescript@4.9.5): 2357 - resolution: {integrity: sha512-n8oxjeb5aIbPFEtmQxQYOLI0i9n5ySBEY/ZEHHZqKQSFnxio1rv6dthascc9dLuwrL0RC5mPCxB7vnAVGAYWAQ==} 2358 - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 2504 + /@typescript-eslint/utils@6.15.0(eslint@8.56.0)(typescript@5.3.3): 2505 + resolution: {integrity: sha512-eF82p0Wrrlt8fQSRL0bGXzK5nWPRV2dYQZdajcfzOD9+cQz9O7ugifrJxclB+xVOvWvagXfqS4Es7vpLP4augw==} 2506 + engines: {node: ^16.0.0 || >=18.0.0} 2359 2507 peerDependencies: 2360 - eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 2508 + eslint: ^7.0.0 || ^8.0.0 2361 2509 dependencies: 2362 - '@eslint-community/eslint-utils': 4.4.0(eslint@8.48.0) 2510 + '@eslint-community/eslint-utils': 4.4.0(eslint@8.56.0) 2363 2511 '@types/json-schema': 7.0.12 2364 2512 '@types/semver': 7.5.1 2365 - '@typescript-eslint/scope-manager': 5.62.0 2366 - '@typescript-eslint/types': 5.62.0 2367 - '@typescript-eslint/typescript-estree': 5.62.0(typescript@4.9.5) 2368 - eslint: 8.48.0 2369 - eslint-scope: 5.1.1 2513 + '@typescript-eslint/scope-manager': 6.15.0 2514 + '@typescript-eslint/types': 6.15.0 2515 + '@typescript-eslint/typescript-estree': 6.15.0(typescript@5.3.3) 2516 + eslint: 8.56.0 2370 2517 semver: 7.5.4 2371 2518 transitivePeerDependencies: 2372 2519 - supports-color 2373 2520 - typescript 2374 2521 dev: true 2375 2522 2376 - /@typescript-eslint/visitor-keys@5.62.0: 2377 - resolution: {integrity: sha512-07ny+LHRzQXepkGg6w0mFY41fVUNBrL2Roj/++7V1txKugfjm/Ci/qSND03r2RhlJhJYMcTn9AhhSSqQp0Ysyw==} 2378 - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 2523 + /@typescript-eslint/visitor-keys@6.15.0: 2524 + resolution: {integrity: sha512-1zvtdC1a9h5Tb5jU9x3ADNXO9yjP8rXlaoChu0DQX40vf5ACVpYIVIZhIMZ6d5sDXH7vq4dsZBT1fEGj8D2n2w==} 2525 + engines: {node: ^16.0.0 || >=18.0.0} 2379 2526 dependencies: 2380 - '@typescript-eslint/types': 5.62.0 2527 + '@typescript-eslint/types': 6.15.0 2381 2528 eslint-visitor-keys: 3.4.3 2382 2529 dev: true 2383 2530 2384 - /@vitejs/plugin-react@3.1.0(vite@4.4.12): 2385 - resolution: {integrity: sha512-AfgcRL8ZBhAlc3BFdigClmTUMISmmzHn7sB2h9U1odvc5U/MjWXsAaz18b/WoppUTDBzxOJwo2VdClfUcItu9g==} 2531 + /@ungap/structured-clone@1.2.0: 2532 + resolution: {integrity: sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==} 2533 + dev: true 2534 + 2535 + /@vitejs/plugin-react@4.2.1(vite@5.0.10): 2536 + resolution: {integrity: sha512-oojO9IDc4nCUUi8qIR11KoQm0XFFLIwsRBwHRR4d/88IWghn1y6ckz/bJ8GHDCsYEJee8mDzqtJxh15/cisJNQ==} 2386 2537 engines: {node: ^14.18.0 || >=16.0.0} 2387 2538 peerDependencies: 2388 - vite: ^4.1.0-beta.0 2539 + vite: ^4.2.0 || ^5.0.0 2389 2540 dependencies: 2390 - '@babel/core': 7.22.11 2391 - '@babel/plugin-transform-react-jsx-self': 7.22.5(@babel/core@7.22.11) 2392 - '@babel/plugin-transform-react-jsx-source': 7.22.5(@babel/core@7.22.11) 2393 - magic-string: 0.27.0 2541 + '@babel/core': 7.23.6 2542 + '@babel/plugin-transform-react-jsx-self': 7.23.3(@babel/core@7.23.6) 2543 + '@babel/plugin-transform-react-jsx-source': 7.23.3(@babel/core@7.23.6) 2544 + '@types/babel__core': 7.20.5 2394 2545 react-refresh: 0.14.0 2395 - vite: 4.4.12(@types/node@17.0.45) 2546 + vite: 5.0.10(@types/node@20.10.5) 2396 2547 transitivePeerDependencies: 2397 2548 - supports-color 2398 2549 dev: true 2399 2550 2400 - /@vitest/expect@0.28.5: 2401 - resolution: {integrity: sha512-gqTZwoUTwepwGIatnw4UKpQfnoyV0Z9Czn9+Lo2/jLIt4/AXLTn+oVZxlQ7Ng8bzcNkR+3DqLJ08kNr8jRmdNQ==} 2551 + /@vitest/expect@1.1.0: 2552 + resolution: {integrity: sha512-9IE2WWkcJo2BR9eqtY5MIo3TPmS50Pnwpm66A6neb2hvk/QSLfPXBz2qdiwUOQkwyFuuXEUj5380CbwfzW4+/w==} 2553 + dependencies: 2554 + '@vitest/spy': 1.1.0 2555 + '@vitest/utils': 1.1.0 2556 + chai: 4.3.10 2557 + dev: true 2558 + 2559 + /@vitest/runner@1.1.0: 2560 + resolution: {integrity: sha512-zdNLJ00pm5z/uhbWF6aeIJCGMSyTyWImy3Fcp9piRGvueERFlQFbUwCpzVce79OLm2UHk9iwaMSOaU9jVHgNVw==} 2402 2561 dependencies: 2403 - '@vitest/spy': 0.28.5 2404 - '@vitest/utils': 0.28.5 2405 - chai: 4.3.8 2562 + '@vitest/utils': 1.1.0 2563 + p-limit: 5.0.0 2564 + pathe: 1.1.1 2406 2565 dev: true 2407 2566 2408 - /@vitest/runner@0.28.5: 2409 - resolution: {integrity: sha512-NKkHtLB+FGjpp5KmneQjTcPLWPTDfB7ie+MmF1PnUBf/tGe2OjGxWyB62ySYZ25EYp9krR5Bw0YPLS/VWh1QiA==} 2567 + /@vitest/snapshot@1.1.0: 2568 + resolution: {integrity: sha512-5O/wyZg09V5qmNmAlUgCBqflvn2ylgsWJRRuPrnHEfDNT6tQpQ8O1isNGgo+VxofISHqz961SG3iVvt3SPK/QQ==} 2410 2569 dependencies: 2411 - '@vitest/utils': 0.28.5 2412 - p-limit: 4.0.0 2570 + magic-string: 0.30.5 2413 2571 pathe: 1.1.1 2572 + pretty-format: 29.7.0 2414 2573 dev: true 2415 2574 2416 - /@vitest/spy@0.28.5: 2417 - resolution: {integrity: sha512-7if6rsHQr9zbmvxN7h+gGh2L9eIIErgf8nSKYDlg07HHimCxp4H6I/X/DPXktVPPLQfiZ1Cw2cbDIx9fSqDjGw==} 2575 + /@vitest/spy@1.1.0: 2576 + resolution: {integrity: sha512-sNOVSU/GE+7+P76qYo+VXdXhXffzWZcYIPQfmkiRxaNCSPiLANvQx5Mx6ZURJ/ndtEkUJEpvKLXqAYTKEY+lTg==} 2418 2577 dependencies: 2419 - tinyspy: 1.1.1 2578 + tinyspy: 2.2.0 2420 2579 dev: true 2421 2580 2422 - /@vitest/utils@0.28.5: 2423 - resolution: {integrity: sha512-UyZdYwdULlOa4LTUSwZ+Paz7nBHGTT72jKwdFSV4IjHF1xsokp+CabMdhjvVhYwkLfO88ylJT46YMilnkSARZA==} 2581 + /@vitest/utils@1.1.0: 2582 + resolution: {integrity: sha512-z+s510fKmYz4Y41XhNs3vcuFTFhcij2YF7F8VQfMEYAAUfqQh0Zfg7+w9xdgFGhPf3tX3TicAe+8BDITk6ampQ==} 2424 2583 dependencies: 2425 - cli-truncate: 3.1.0 2426 - diff: 5.1.0 2427 - loupe: 2.3.6 2428 - picocolors: 1.0.0 2429 - pretty-format: 27.5.1 2584 + diff-sequences: 29.6.3 2585 + loupe: 2.3.7 2586 + pretty-format: 29.7.0 2430 2587 dev: true 2431 2588 2432 2589 /@xobotyi/scrollbar-width@1.9.5: 2433 2590 resolution: {integrity: sha512-N8tkAACJx2ww8vFMneJmaAgmjAG1tnVBZJRLRcx061tmsLRZHSEZSLuGWnwPtunsSLvSqXQ2wfp7Mgqg1I+2dQ==} 2434 2591 dev: false 2435 2592 2436 - /abab@2.0.6: 2437 - resolution: {integrity: sha512-j2afSsaIENvHZN2B8GOpF566vZ5WVk5opAiMTvWgaQT8DkbOqsTfvNAvHoRGU2zzP8cPoqys+xHTRDWW8L+/BA==} 2438 - dev: true 2439 - 2440 - /acorn-globals@7.0.1: 2441 - resolution: {integrity: sha512-umOSDSDrfHbTNPuNpC2NSnnA3LUrqpevPb4T9jRx4MagXNS0rs+gwiTcAvqCRmsD6utzsrzNt+ebm00SNWiC3Q==} 2442 - dependencies: 2443 - acorn: 8.10.0 2444 - acorn-walk: 8.2.0 2445 - dev: true 2446 - 2447 2593 /acorn-jsx@5.3.2(acorn@8.10.0): 2448 2594 resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==} 2449 2595 peerDependencies: ··· 2452 2598 acorn: 8.10.0 2453 2599 dev: true 2454 2600 2455 - /acorn-walk@8.2.0: 2456 - resolution: {integrity: sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==} 2601 + /acorn-walk@8.3.1: 2602 + resolution: {integrity: sha512-TgUZgYvqZprrl7YldZNoa9OciCAyZR+Ejm9eXzKCmjsF5IKp/wgQ7Z/ZpjpGTIUPwrHQIcYeI8qDh4PsEwxMbw==} 2457 2603 engines: {node: '>=0.4.0'} 2458 2604 dev: true 2459 2605 ··· 2463 2609 hasBin: true 2464 2610 dev: true 2465 2611 2466 - /agent-base@6.0.2: 2467 - resolution: {integrity: sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==} 2468 - engines: {node: '>= 6.0.0'} 2612 + /acorn@8.11.2: 2613 + resolution: {integrity: sha512-nc0Axzp/0FILLEVsm4fNwLCwMttvhEI263QtVPQcbpfZZ3ts0hLsZGOpE6czNlid7CJ9MlyH8reXkpsf3YUY4w==} 2614 + engines: {node: '>=0.4.0'} 2615 + hasBin: true 2616 + 2617 + /agent-base@7.1.0: 2618 + resolution: {integrity: sha512-o/zjMZRhJxny7OyEF+Op8X+efiELC7k7yOjMzgfzVqOzXqkBkWI79YoTdOtsuWd5BWhAGAuOY/Xa6xpiaWXiNg==} 2619 + engines: {node: '>= 14'} 2469 2620 dependencies: 2470 2621 debug: 4.3.4 2471 2622 transitivePeerDependencies: ··· 2512 2663 engines: {node: '>=4'} 2513 2664 dependencies: 2514 2665 color-convert: 1.9.3 2515 - dev: true 2516 2666 2517 2667 /ansi-styles@4.3.0: 2518 2668 resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==} ··· 2541 2691 dependencies: 2542 2692 normalize-path: 3.0.0 2543 2693 picomatch: 2.3.1 2544 - dev: true 2545 2694 2546 2695 /arg@5.0.2: 2547 2696 resolution: {integrity: sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==} ··· 2575 2724 is-string: 1.0.7 2576 2725 dev: true 2577 2726 2727 + /array-includes@3.1.7: 2728 + resolution: {integrity: sha512-dlcsNBIiWhPkHdOEEKnehA+RNUWDc4UqFtnIXU4uuYDPtA4LDkr7qip2p0VvFAEXNDr0yWZ9PJyIRiGjRLQzwQ==} 2729 + engines: {node: '>= 0.4'} 2730 + dependencies: 2731 + call-bind: 1.0.2 2732 + define-properties: 1.2.0 2733 + es-abstract: 1.22.1 2734 + get-intrinsic: 1.2.1 2735 + is-string: 1.0.7 2736 + dev: true 2737 + 2578 2738 /array-union@2.1.0: 2579 2739 resolution: {integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==} 2580 2740 engines: {node: '>=8'} ··· 2601 2761 es-shim-unscopables: 1.0.0 2602 2762 dev: true 2603 2763 2764 + /array.prototype.flat@1.3.2: 2765 + resolution: {integrity: sha512-djYB+Zx2vLewY8RWlNCUdHjDXs2XOgm602S9E7P/UpHgfeHL00cRiIF+IN/G/aUJ7kGPb6yO/ErDI5V2s8iycA==} 2766 + engines: {node: '>= 0.4'} 2767 + dependencies: 2768 + call-bind: 1.0.2 2769 + define-properties: 1.2.0 2770 + es-abstract: 1.22.1 2771 + es-shim-unscopables: 1.0.0 2772 + dev: true 2773 + 2604 2774 /array.prototype.flatmap@1.3.1: 2605 2775 resolution: {integrity: sha512-8UGn9O1FDVvMNB0UlLv4voxRMze7+FpHyF5mSMRjWHUMlpoDViniy05870VlxhfgTnLbpuwTzvD76MTtWxB/mQ==} 2606 2776 engines: {node: '>= 0.4'} ··· 2611 2781 es-shim-unscopables: 1.0.0 2612 2782 dev: true 2613 2783 2784 + /array.prototype.flatmap@1.3.2: 2785 + resolution: {integrity: sha512-Ewyx0c9PmpcsByhSW4r+9zDU7sGjFc86qf/kKtuSCRdhfbk0SNLLkaT5qvcHnRGgc5NP/ly/y+qkXkqONX54CQ==} 2786 + engines: {node: '>= 0.4'} 2787 + dependencies: 2788 + call-bind: 1.0.2 2789 + define-properties: 1.2.0 2790 + es-abstract: 1.22.1 2791 + es-shim-unscopables: 1.0.0 2792 + dev: true 2793 + 2794 + /array.prototype.tosorted@1.1.2: 2795 + resolution: {integrity: sha512-HuQCHOlk1Weat5jzStICBCd83NxiIMwqDg/dHEsoefabn/hJRj5pVdWcPUSpRrwhwxZOsQassMpgN/xRYFBMIg==} 2796 + dependencies: 2797 + call-bind: 1.0.2 2798 + define-properties: 1.2.0 2799 + es-abstract: 1.22.1 2800 + es-shim-unscopables: 1.0.0 2801 + get-intrinsic: 1.2.1 2802 + dev: true 2803 + 2614 2804 /arraybuffer.prototype.slice@1.0.1: 2615 2805 resolution: {integrity: sha512-09x0ZWFEjj4WD8PDbykUwo3t9arLn8NIzmmYEJFpYekOAQjpkGSyrQhNoRTcwwcFRu+ycWF78QZ63oWTqSjBcw==} 2616 2806 engines: {node: '>= 0.4'} ··· 2627 2817 resolution: {integrity: sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==} 2628 2818 dev: true 2629 2819 2630 - /ast-types-flow@0.0.7: 2631 - resolution: {integrity: sha512-eBvWn1lvIApYMhzQMsu9ciLfkBY499mFZlNqG+/9WR7PVlroQw0vG30cOQQbaKz3sCEc44TAOu2ykzqXSNnwag==} 2820 + /ast-types-flow@0.0.8: 2821 + resolution: {integrity: sha512-OH/2E5Fg20h2aPrbe+QL8JZQFko0YZaF+j4mnQ7BGhfavO7OpSLa8a0y9sBwomHdSbkhTS8TQNayBfnW5DwbvQ==} 2632 2822 dev: true 2633 2823 2634 2824 /async@3.2.4: 2635 2825 resolution: {integrity: sha512-iAB+JbDEGXhyIUavoDl9WP/Jj106Kz9DEn1DPgYw5ruDn0e3Wgi3sKFm55sASdGBNOQB8F59d9qQ7deqrHA8wQ==} 2636 2826 dev: true 2637 2827 2828 + /asynciterator.prototype@1.0.0: 2829 + resolution: {integrity: sha512-wwHYEIS0Q80f5mosx3L/dfG5t5rjEa9Ft51GTaNt862EnpyGHpgz2RkZvLPp1oF5TnAiTohkEKVEu8pQPJI7Vg==} 2830 + dependencies: 2831 + has-symbols: 1.0.3 2832 + dev: true 2833 + 2638 2834 /asynckit@0.4.0: 2639 2835 resolution: {integrity: sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==} 2640 2836 ··· 2643 2839 engines: {node: '>= 4.0.0'} 2644 2840 dev: true 2645 2841 2646 - /autoprefixer@10.4.15(postcss@8.4.31): 2647 - resolution: {integrity: sha512-KCuPB8ZCIqFdA4HwKXsvz7j6gvSDNhDP7WnUjBleRkKjPdvCmHFuQ77ocavI8FT6NdvlBnE2UFr2H4Mycn8Vew==} 2842 + /autoprefixer@10.4.16(postcss@8.4.32): 2843 + resolution: {integrity: sha512-7vd3UC6xKp0HLfua5IjZlcXvGAGy7cBAXTg2lyQ/8WpNhd6SiZ8Be+xm3FyBSYJx5GKcpRCzBh7RH4/0dnY+uQ==} 2648 2844 engines: {node: ^10 || ^12 || >=14} 2649 2845 hasBin: true 2650 2846 peerDependencies: 2651 2847 postcss: '>=8.4.31' 2652 2848 dependencies: 2653 2849 browserslist: 4.21.10 2654 - caniuse-lite: 1.0.30001525 2655 - fraction.js: 4.3.5 2850 + caniuse-lite: 1.0.30001571 2851 + fraction.js: 4.3.7 2656 2852 normalize-range: 0.1.2 2657 2853 picocolors: 1.0.0 2658 - postcss: 8.4.31 2854 + postcss: 8.4.32 2659 2855 postcss-value-parser: 4.2.0 2660 2856 dev: true 2661 2857 ··· 2664 2860 engines: {node: '>= 0.4'} 2665 2861 dev: true 2666 2862 2667 - /axe-core@4.7.2: 2668 - resolution: {integrity: sha512-zIURGIS1E1Q4pcrMjp+nnEh+16G56eG/MUllJH8yEvw7asDo7Ac9uhC9KIH5jzpITueEZolfYglnCGIuSBz39g==} 2863 + /axe-core@4.7.0: 2864 + resolution: {integrity: sha512-M0JtH+hlOL5pLQwHOLNYZaXuhqmvS8oExsqB1SBYgA4Dk7u/xx+YdGHXaK5pyUfed5mYXdlYiphWq3G8cRi5JQ==} 2669 2865 engines: {node: '>=4'} 2670 2866 dev: true 2671 2867 ··· 2675 2871 dequal: 2.0.3 2676 2872 dev: true 2677 2873 2678 - /babel-plugin-polyfill-corejs2@0.4.5(@babel/core@7.22.11): 2679 - resolution: {integrity: sha512-19hwUH5FKl49JEsvyTcoHakh6BE0wgXLLptIyKZ3PijHc/Ci521wygORCUCCred+E/twuqRyAkE02BAWPmsHOg==} 2874 + /babel-plugin-polyfill-corejs2@0.4.7(@babel/core@7.23.6): 2875 + resolution: {integrity: sha512-LidDk/tEGDfuHW2DWh/Hgo4rmnw3cduK6ZkOI1NPFceSK3n/yAGeOsNT7FLnSGHkXj3RHGSEVkN3FsCTY6w2CQ==} 2680 2876 peerDependencies: 2681 2877 '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 2682 2878 dependencies: 2683 - '@babel/compat-data': 7.22.9 2684 - '@babel/core': 7.22.11 2685 - '@babel/helper-define-polyfill-provider': 0.4.2(@babel/core@7.22.11) 2879 + '@babel/compat-data': 7.23.5 2880 + '@babel/core': 7.23.6 2881 + '@babel/helper-define-polyfill-provider': 0.4.4(@babel/core@7.23.6) 2686 2882 semver: 6.3.1 2687 2883 transitivePeerDependencies: 2688 2884 - supports-color 2689 2885 dev: true 2690 2886 2691 - /babel-plugin-polyfill-corejs3@0.8.3(@babel/core@7.22.11): 2692 - resolution: {integrity: sha512-z41XaniZL26WLrvjy7soabMXrfPWARN25PZoriDEiLMxAp50AUW3t35BGQUMg5xK3UrpVTtagIDklxYa+MhiNA==} 2887 + /babel-plugin-polyfill-corejs3@0.8.7(@babel/core@7.23.6): 2888 + resolution: {integrity: sha512-KyDvZYxAzkC0Aj2dAPyDzi2Ym15e5JKZSK+maI7NAwSqofvuFglbSsxE7wUOvTg9oFVnHMzVzBKcqEb4PJgtOA==} 2693 2889 peerDependencies: 2694 2890 '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 2695 2891 dependencies: 2696 - '@babel/core': 7.22.11 2697 - '@babel/helper-define-polyfill-provider': 0.4.2(@babel/core@7.22.11) 2698 - core-js-compat: 3.32.1 2892 + '@babel/core': 7.23.6 2893 + '@babel/helper-define-polyfill-provider': 0.4.4(@babel/core@7.23.6) 2894 + core-js-compat: 3.34.0 2699 2895 transitivePeerDependencies: 2700 2896 - supports-color 2701 2897 dev: true 2702 2898 2703 - /babel-plugin-polyfill-regenerator@0.5.2(@babel/core@7.22.11): 2704 - resolution: {integrity: sha512-tAlOptU0Xj34V1Y2PNTL4Y0FOJMDB6bZmoW39FeCQIhigGLkqu3Fj6uiXpxIf6Ij274ENdYx64y6Au+ZKlb1IA==} 2899 + /babel-plugin-polyfill-regenerator@0.5.4(@babel/core@7.23.6): 2900 + resolution: {integrity: sha512-S/x2iOCvDaCASLYsOOgWOq4bCfKYVqvO/uxjkaYyZ3rVsVE3CeAI/c84NpyuBBymEgNvHgjEot3a9/Z/kXvqsg==} 2705 2901 peerDependencies: 2706 2902 '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 2707 2903 dependencies: 2708 - '@babel/core': 7.22.11 2709 - '@babel/helper-define-polyfill-provider': 0.4.2(@babel/core@7.22.11) 2904 + '@babel/core': 7.23.6 2905 + '@babel/helper-define-polyfill-provider': 0.4.4(@babel/core@7.23.6) 2710 2906 transitivePeerDependencies: 2711 2907 - supports-color 2712 2908 dev: true ··· 2715 2911 resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} 2716 2912 dev: true 2717 2913 2914 + /big-integer@1.6.52: 2915 + resolution: {integrity: sha512-QxD8cf2eVqJOOz63z6JIN9BzvVs/dlySa5HGSBH5xtR8dPteIRQnBxxKqkNTiT6jbDTF6jAfrd4oMcND9RGbQg==} 2916 + engines: {node: '>=0.6'} 2917 + dev: true 2918 + 2718 2919 /binary-extensions@2.2.0: 2719 2920 resolution: {integrity: sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==} 2720 2921 engines: {node: '>=8'} 2721 - dev: true 2722 2922 2723 2923 /boolbase@1.0.0: 2724 2924 resolution: {integrity: sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==} 2725 2925 dev: false 2726 2926 2927 + /bplist-parser@0.2.0: 2928 + resolution: {integrity: sha512-z0M+byMThzQmD9NILRniCUXYsYpjwnlO8N5uCFaCqIOpqRsJCrQL9NK3JsD67CN5a08nF5oIL2bD6loTdHOuKw==} 2929 + engines: {node: '>= 5.10.0'} 2930 + dependencies: 2931 + big-integer: 1.6.52 2932 + dev: true 2933 + 2727 2934 /brace-expansion@1.1.11: 2728 2935 resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==} 2729 2936 dependencies: ··· 2742 2949 engines: {node: '>=8'} 2743 2950 dependencies: 2744 2951 fill-range: 7.0.1 2745 - dev: true 2746 2952 2747 2953 /browserslist@4.21.10: 2748 2954 resolution: {integrity: sha512-bipEBdZfVH5/pwrvqc+Ub0kUPVfGUhlKxbvfD+z1BDnPEO/X98ruXGA1WP5ASpAFKan7Qr6j736IacbZQuAlKQ==} 2749 2955 engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} 2750 2956 hasBin: true 2751 2957 dependencies: 2752 - caniuse-lite: 1.0.30001525 2958 + caniuse-lite: 1.0.30001571 2753 2959 electron-to-chromium: 1.4.508 2754 2960 node-releases: 2.0.13 2755 2961 update-browserslist-db: 1.0.11(browserslist@4.21.10) 2756 2962 dev: true 2757 2963 2964 + /browserslist@4.22.2: 2965 + resolution: {integrity: sha512-0UgcrvQmBDvZHFGdYUehrCNIazki7/lUP3kkoi/r3YB2amZbFM9J43ZRkJTXBUZK4gmx56+Sqk9+Vs9mwZx9+A==} 2966 + engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} 2967 + hasBin: true 2968 + dependencies: 2969 + caniuse-lite: 1.0.30001571 2970 + electron-to-chromium: 1.4.616 2971 + node-releases: 2.0.14 2972 + update-browserslist-db: 1.0.13(browserslist@4.22.2) 2973 + 2758 2974 /buffer-from@1.1.2: 2759 2975 resolution: {integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==} 2760 2976 dev: true ··· 2762 2978 /builtin-modules@3.3.0: 2763 2979 resolution: {integrity: sha512-zhaCDicdLuWN5UbN5IMnFqNMhNfo919sH85y2/ea+5Yg9TsTkeZxpL+JLbp6cgYFS4sRLp3YV4S6yDuqVWHYOw==} 2764 2980 engines: {node: '>=6'} 2981 + dev: true 2982 + 2983 + /bundle-name@3.0.0: 2984 + resolution: {integrity: sha512-PKA4BeSvBpQKQ8iPOGCSiell+N8P+Tf1DlwqmYhpe2gAhKPHn8EYOxVT+ShuGmhg8lN8XiSlS80yiExKXrURlw==} 2985 + engines: {node: '>=12'} 2986 + dependencies: 2987 + run-applescript: 5.0.0 2765 2988 dev: true 2766 2989 2767 2990 /cac@6.7.14: ··· 2786 3009 engines: {node: '>= 6'} 2787 3010 dev: true 2788 3011 2789 - /caniuse-lite@1.0.30001525: 2790 - resolution: {integrity: sha512-/3z+wB4icFt3r0USMwxujAqRvaD/B7rvGTsKhbhSQErVrJvkZCLhgNLJxU8MevahQVH6hCU9FsHdNUFbiwmE7Q==} 2791 - dev: true 3012 + /caniuse-lite@1.0.30001571: 3013 + resolution: {integrity: sha512-tYq/6MoXhdezDLFZuCO/TKboTzuQ/xR5cFdgXPfDtM7/kchBO3b4VWghE/OAi/DV7tTdhmLjZiZBZi1fA/GheQ==} 2792 3014 2793 - /chai@4.3.8: 2794 - resolution: {integrity: sha512-vX4YvVVtxlfSZ2VecZgFUTU5qPCYsobVI2O9FmwEXBhDigYGQA6jRXCycIs1yJnnWbZ6/+a2zNIF5DfVCcJBFQ==} 3015 + /chai@4.3.10: 3016 + resolution: {integrity: sha512-0UXG04VuVbruMUYbJ6JctvH0YnC/4q3/AkT18q4NaITo91CUm0liMS9VqzT9vZhVQ/1eqPanMWjBM+Juhfb/9g==} 2795 3017 engines: {node: '>=4'} 2796 3018 dependencies: 2797 3019 assertion-error: 1.1.0 2798 - check-error: 1.0.2 3020 + check-error: 1.0.3 2799 3021 deep-eql: 4.1.3 2800 - get-func-name: 3.0.0 3022 + get-func-name: 2.0.2 2801 3023 loupe: 2.3.6 2802 3024 pathval: 1.1.1 2803 3025 type-detect: 4.0.8 ··· 2810 3032 ansi-styles: 3.2.1 2811 3033 escape-string-regexp: 1.0.5 2812 3034 supports-color: 5.5.0 2813 - dev: true 2814 3035 2815 3036 /chalk@4.1.2: 2816 3037 resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==} ··· 2820 3041 supports-color: 7.2.0 2821 3042 dev: true 2822 3043 2823 - /check-error@1.0.2: 2824 - resolution: {integrity: sha512-BrgHpW9NURQgzoNyjfq0Wu6VFO6D7IZEmJNdtgNqpzGG8RuNFHt2jQxWlAs4HMe119chBnv+34syEZtc6IhLtA==} 3044 + /check-error@1.0.3: 3045 + resolution: {integrity: sha512-iKEoDYaRmd1mxM90a2OEfWhjsjPpYPuQ+lMYsoxB126+t8fw7ySEO48nmDg5COTjxDI65/Y2OWpeEHk3ZOe8zg==} 3046 + dependencies: 3047 + get-func-name: 2.0.2 2825 3048 dev: true 2826 3049 2827 3050 /cheerio-select@2.1.0: ··· 2861 3084 readdirp: 3.6.0 2862 3085 optionalDependencies: 2863 3086 fsevents: 2.3.3 2864 - dev: true 2865 3087 2866 3088 /classnames@2.3.2: 2867 3089 resolution: {integrity: sha512-CSbhY4cFEJRe6/GQzIk5qXZ4Jeg5pcsP7b5peFSDpffpe1cqjASH/n9UTjBwOp6XpMSTwQ8Za2K5V02ueA7Tmw==} 2868 3090 dev: false 2869 3091 2870 - /cli-truncate@3.1.0: 2871 - resolution: {integrity: sha512-wfOBkjXteqSnI59oPcJkcPl/ZmwvMMOj340qUIY1SKZCv0B9Cf4D4fAucRkIKQmsIuYK3x1rrgU7MeGRruiuiA==} 2872 - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} 2873 - dependencies: 2874 - slice-ansi: 5.0.0 2875 - string-width: 5.1.2 2876 - dev: true 2877 - 2878 3092 /client-only@0.0.1: 2879 3093 resolution: {integrity: sha512-IV3Ou0jSMzZrd3pZ48nLkT9DA7Ag1pnPzaiQhpW7c3RbcqqzvzzVu+L8gfqMp/8IM2MQtSiqaCxrrcfu8I8rMA==} 2880 3094 dev: false ··· 2883 3097 resolution: {integrity: sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==} 2884 3098 dependencies: 2885 3099 color-name: 1.1.3 2886 - dev: true 2887 3100 2888 3101 /color-convert@2.0.1: 2889 3102 resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==} ··· 2894 3107 2895 3108 /color-name@1.1.3: 2896 3109 resolution: {integrity: sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==} 2897 - dev: true 2898 3110 2899 3111 /color-name@1.1.4: 2900 3112 resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} ··· 2948 3160 resolution: {integrity: sha512-JsPKdmh8ZkmnHxDk55FZ1TqVLvEQTvoByJZRN9jzI0UjxK/QgAmsphz7PGtqgPieQZ/CQcHWXCR7ATDNhGe+YA==} 2949 3161 dev: true 2950 3162 2951 - /convert-source-map@1.9.0: 2952 - resolution: {integrity: sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==} 2953 - dev: true 3163 + /convert-source-map@2.0.0: 3164 + resolution: {integrity: sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==} 2954 3165 2955 3166 /copy-to-clipboard@3.3.3: 2956 3167 resolution: {integrity: sha512-2KV8NhB5JqC3ky0r9PMCAZKbUHSwtEo4CwCs0KXgruG43gX5PMqDEBbVU4OUzw2MuAWUfsuFmWvEKG5QRfSnJA==} ··· 2964 3175 browserslist: 4.21.10 2965 3176 dev: true 2966 3177 2967 - /core-js@3.32.1: 2968 - resolution: {integrity: sha512-lqufgNn9NLnESg5mQeYsxQP5w7wrViSj0jr/kv6ECQiByzQkrn1MKvV0L3acttpDqfQrHLwr2KCMgX5b8X+lyQ==} 3178 + /core-js-compat@3.34.0: 3179 + resolution: {integrity: sha512-4ZIyeNbW/Cn1wkMMDy+mvrRUxrwFNjKwbhCfQpDd+eLgYipDqp8oGFGtLmhh18EDPKA0g3VUBYOxQGGwvWLVpA==} 3180 + dependencies: 3181 + browserslist: 4.22.2 3182 + dev: true 3183 + 3184 + /core-js@3.34.0: 3185 + resolution: {integrity: sha512-aDdvlDder8QmY91H88GzNi9EtQi2TjvQhpCX6B1v/dAZHU1AuLgHvRh54RiOerpEhEW46Tkf+vgAViB/CWC0ag==} 2969 3186 requiresBuild: true 2970 3187 dev: false 2971 3188 ··· 3044 3261 resolution: {integrity: sha512-sdQSFB7+llfUcQHUQO3+B8ERRj0Oa4w9POWMI/puGtuf7gFywGmkaLCElnudfTiKZV+NvHqL0ifzdrI8Ro7ESA==} 3045 3262 dev: true 3046 3263 3047 - /data-urls@4.0.0: 3048 - resolution: {integrity: sha512-/mMTei/JXPqvFqQtfyTowxmJVwr2PVAeCcDxyFf6LhoOu/09TX2OX3kb2wzi4DMXcfj4OItwDOnhl5oziPnT6g==} 3049 - engines: {node: '>=14'} 3264 + /data-urls@5.0.0: 3265 + resolution: {integrity: sha512-ZYP5VBHshaDAiVZxjbRVcFJpc+4xGgT0bK3vzy1HLN8jTO975HEbuYzZJcHoQEY5K1a0z8YayJkyVETa08eNTg==} 3266 + engines: {node: '>=18'} 3050 3267 dependencies: 3051 - abab: 2.0.6 3052 - whatwg-mimetype: 3.0.0 3053 - whatwg-url: 12.0.1 3268 + whatwg-mimetype: 4.0.0 3269 + whatwg-url: 14.0.0 3054 3270 dev: true 3055 3271 3056 3272 /debug@3.2.7: ··· 3074 3290 optional: true 3075 3291 dependencies: 3076 3292 ms: 2.1.2 3077 - dev: true 3078 3293 3079 3294 /decimal.js@10.4.3: 3080 3295 resolution: {integrity: sha512-VBBaLc1MgL5XpzgIP7ny5Z6Nx3UrRkIViUkPUdtl9aya5amy3De1gsUUSB1g3+3sExYNjCAsAznmukyxCb1GRA==} ··· 3096 3311 engines: {node: '>=0.10.0'} 3097 3312 dev: true 3098 3313 3314 + /default-browser-id@3.0.0: 3315 + resolution: {integrity: sha512-OZ1y3y0SqSICtE8DE4S8YOE9UZOJ8wO16fKWVP5J1Qz42kV9jcnMVFrEE/noXb/ss3Q4pZIH79kxofzyNNtUNA==} 3316 + engines: {node: '>=12'} 3317 + dependencies: 3318 + bplist-parser: 0.2.0 3319 + untildify: 4.0.0 3320 + dev: true 3321 + 3322 + /default-browser@4.0.0: 3323 + resolution: {integrity: sha512-wX5pXO1+BrhMkSbROFsyxUm0i/cJEScyNhA4PPxc41ICuv05ZZB/MX28s8aZx6xjmatvebIapF6hLEKEcpneUA==} 3324 + engines: {node: '>=14.16'} 3325 + dependencies: 3326 + bundle-name: 3.0.0 3327 + default-browser-id: 3.0.0 3328 + execa: 7.2.0 3329 + titleize: 3.0.0 3330 + dev: true 3331 + 3332 + /define-data-property@1.1.1: 3333 + resolution: {integrity: sha512-E7uGkTzkk1d0ByLeSc6ZsFS79Axg+m1P/VsgYsxHgiuc3tFSj+MjMIwe90FC4lOAZzNBdY7kkO2P2wKdsQ1vgQ==} 3334 + engines: {node: '>= 0.4'} 3335 + dependencies: 3336 + get-intrinsic: 1.2.1 3337 + gopd: 1.0.1 3338 + has-property-descriptors: 1.0.0 3339 + dev: true 3340 + 3341 + /define-lazy-prop@3.0.0: 3342 + resolution: {integrity: sha512-N+MeXYoqr3pOgn8xfyRPREN7gHakLYjhsHhWGT3fWAiL4IkAt0iDw14QiiEm2bE30c5XX5q0FtAA3CK5f9/BUg==} 3343 + engines: {node: '>=12'} 3344 + dev: true 3345 + 3099 3346 /define-properties@1.2.0: 3100 3347 resolution: {integrity: sha512-xvqAVKGfT1+UAvPwKTVw/njhdQ8ZhXK4lI0bCIuCMrp2up9nPnaDftrLtmpTazqd1o+UY4zgzU+avtMbDP+ldA==} 3101 3348 engines: {node: '>= 0.4'} 3102 3349 dependencies: 3350 + has-property-descriptors: 1.0.0 3351 + object-keys: 1.1.1 3352 + dev: true 3353 + 3354 + /define-properties@1.2.1: 3355 + resolution: {integrity: sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==} 3356 + engines: {node: '>= 0.4'} 3357 + dependencies: 3358 + define-data-property: 1.1.1 3103 3359 has-property-descriptors: 1.0.0 3104 3360 object-keys: 1.1.1 3105 3361 dev: true ··· 3121 3377 resolution: {integrity: sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==} 3122 3378 dev: true 3123 3379 3124 - /diff@5.1.0: 3125 - resolution: {integrity: sha512-D+mk+qE8VC/PAUrlAU34N+VfXev0ghe5ywmpqrawphmVZc1bEfn56uo9qpyGp1p4xpzOHkSW4ztBd6L7Xx4ACw==} 3126 - engines: {node: '>=0.3.1'} 3380 + /diff-sequences@29.6.3: 3381 + resolution: {integrity: sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q==} 3382 + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} 3127 3383 dev: true 3128 3384 3129 3385 /dir-glob@3.0.1: ··· 3163 3419 resolution: {integrity: sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==} 3164 3420 dev: false 3165 3421 3166 - /domexception@4.0.0: 3167 - resolution: {integrity: sha512-A2is4PLG+eeSfoTMA95/s4pvAoSo2mKtiM5jlHkAVewmiO8ISFTFKZjH7UAM1Atli/OT/7JHOrJRJiMKUZKYBw==} 3168 - engines: {node: '>=12'} 3169 - dependencies: 3170 - webidl-conversions: 7.0.0 3171 - dev: true 3172 - 3173 3422 /domhandler@5.0.3: 3174 3423 resolution: {integrity: sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==} 3175 3424 engines: {node: '>= 4'} ··· 3177 3426 domelementtype: 2.3.0 3178 3427 dev: false 3179 3428 3180 - /dompurify@3.0.5: 3181 - resolution: {integrity: sha512-F9e6wPGtY+8KNMRAVfxeCOHU0/NPWMSENNq4pQctuXRqqdEPW7q3CrLbR5Nse044WwacyjHGOMlvNsBe1y6z9A==} 3429 + /dompurify@3.0.6: 3430 + resolution: {integrity: sha512-ilkD8YEnnGh1zJ240uJsW7AzE+2qpbOUYjacomn3AvJ6J4JhKGSZ2nh4wUIXPZrEPppaCLx5jFe8T89Rk8tQ7w==} 3182 3431 dev: false 3183 3432 3184 3433 /domutils@3.1.0: ··· 3205 3454 resolution: {integrity: sha512-FFa8QKjQK/A5QuFr2167myhMesGrhlOBD+3cYNxO9/S4XzHEXesyTD/1/xF644gC8buFPz3ca6G1LOQD0tZrrg==} 3206 3455 dev: true 3207 3456 3457 + /electron-to-chromium@1.4.616: 3458 + resolution: {integrity: sha512-1n7zWYh8eS0L9Uy+GskE0lkBUNK83cXTVJI0pU3mGprFsbfSdAc15VTFbo+A+Bq4pwstmL30AVcEU3Fo463lNg==} 3459 + 3208 3460 /emoji-regex@8.0.0: 3209 3461 resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} 3210 3462 dev: true 3211 3463 3212 3464 /emoji-regex@9.2.2: 3213 3465 resolution: {integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==} 3466 + dev: true 3467 + 3468 + /enhanced-resolve@5.15.0: 3469 + resolution: {integrity: sha512-LXYT42KJ7lpIKECr2mAXIaMldcNCh/7E0KBKOu4KSfkHmP+mZmSs+8V5gBAqisWBy0OO4W5Oyys0GO1Y8KtdKg==} 3470 + engines: {node: '>=10.13.0'} 3471 + dependencies: 3472 + graceful-fs: 4.2.11 3473 + tapable: 2.2.1 3214 3474 dev: true 3215 3475 3216 3476 /entities@4.5.0: ··· 3268 3528 which-typed-array: 1.1.11 3269 3529 dev: true 3270 3530 3531 + /es-iterator-helpers@1.0.15: 3532 + resolution: {integrity: sha512-GhoY8uYqd6iwUl2kgjTm4CZAf6oo5mHK7BPqx3rKgx893YSsy0LGHV6gfqqQvZt/8xM8xeOnfXBCfqclMKkJ5g==} 3533 + dependencies: 3534 + asynciterator.prototype: 1.0.0 3535 + call-bind: 1.0.2 3536 + define-properties: 1.2.1 3537 + es-abstract: 1.22.1 3538 + es-set-tostringtag: 2.0.1 3539 + function-bind: 1.1.1 3540 + get-intrinsic: 1.2.1 3541 + globalthis: 1.0.3 3542 + has-property-descriptors: 1.0.0 3543 + has-proto: 1.0.1 3544 + has-symbols: 1.0.3 3545 + internal-slot: 1.0.5 3546 + iterator.prototype: 1.1.2 3547 + safe-array-concat: 1.0.1 3548 + dev: true 3549 + 3271 3550 /es-set-tostringtag@2.0.1: 3272 3551 resolution: {integrity: sha512-g3OMbtlwY3QewlqAiMLI47KywjWZoEytKr8pf6iTC8uJq5bIAH52Z9pnQ8pVL6whrCto53JZDuUIsifGeLorTg==} 3273 3552 engines: {node: '>= 0.4'} ··· 3292 3571 is-symbol: 1.0.4 3293 3572 dev: true 3294 3573 3295 - /esbuild@0.18.20: 3296 - resolution: {integrity: sha512-ceqxoedUrcayh7Y7ZX6NdbbDzGROiyVBgC4PriJThBKSVPWnnFHZAkfI1lJT8QFkOwH4qOS2SJkS4wvpGl8BpA==} 3574 + /esbuild@0.19.10: 3575 + resolution: {integrity: sha512-S1Y27QGt/snkNYrRcswgRFqZjaTG5a5xM3EQo97uNBnH505pdzSNe/HLBq1v0RO7iK/ngdbhJB6mDAp0OK+iUA==} 3297 3576 engines: {node: '>=12'} 3298 3577 hasBin: true 3299 3578 requiresBuild: true 3300 3579 optionalDependencies: 3301 - '@esbuild/android-arm': 0.18.20 3302 - '@esbuild/android-arm64': 0.18.20 3303 - '@esbuild/android-x64': 0.18.20 3304 - '@esbuild/darwin-arm64': 0.18.20 3305 - '@esbuild/darwin-x64': 0.18.20 3306 - '@esbuild/freebsd-arm64': 0.18.20 3307 - '@esbuild/freebsd-x64': 0.18.20 3308 - '@esbuild/linux-arm': 0.18.20 3309 - '@esbuild/linux-arm64': 0.18.20 3310 - '@esbuild/linux-ia32': 0.18.20 3311 - '@esbuild/linux-loong64': 0.18.20 3312 - '@esbuild/linux-mips64el': 0.18.20 3313 - '@esbuild/linux-ppc64': 0.18.20 3314 - '@esbuild/linux-riscv64': 0.18.20 3315 - '@esbuild/linux-s390x': 0.18.20 3316 - '@esbuild/linux-x64': 0.18.20 3317 - '@esbuild/netbsd-x64': 0.18.20 3318 - '@esbuild/openbsd-x64': 0.18.20 3319 - '@esbuild/sunos-x64': 0.18.20 3320 - '@esbuild/win32-arm64': 0.18.20 3321 - '@esbuild/win32-ia32': 0.18.20 3322 - '@esbuild/win32-x64': 0.18.20 3580 + '@esbuild/aix-ppc64': 0.19.10 3581 + '@esbuild/android-arm': 0.19.10 3582 + '@esbuild/android-arm64': 0.19.10 3583 + '@esbuild/android-x64': 0.19.10 3584 + '@esbuild/darwin-arm64': 0.19.10 3585 + '@esbuild/darwin-x64': 0.19.10 3586 + '@esbuild/freebsd-arm64': 0.19.10 3587 + '@esbuild/freebsd-x64': 0.19.10 3588 + '@esbuild/linux-arm': 0.19.10 3589 + '@esbuild/linux-arm64': 0.19.10 3590 + '@esbuild/linux-ia32': 0.19.10 3591 + '@esbuild/linux-loong64': 0.19.10 3592 + '@esbuild/linux-mips64el': 0.19.10 3593 + '@esbuild/linux-ppc64': 0.19.10 3594 + '@esbuild/linux-riscv64': 0.19.10 3595 + '@esbuild/linux-s390x': 0.19.10 3596 + '@esbuild/linux-x64': 0.19.10 3597 + '@esbuild/netbsd-x64': 0.19.10 3598 + '@esbuild/openbsd-x64': 0.19.10 3599 + '@esbuild/sunos-x64': 0.19.10 3600 + '@esbuild/win32-arm64': 0.19.10 3601 + '@esbuild/win32-ia32': 0.19.10 3602 + '@esbuild/win32-x64': 0.19.10 3323 3603 dev: true 3324 3604 3325 3605 /escalade@3.1.1: 3326 3606 resolution: {integrity: sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==} 3327 3607 engines: {node: '>=6'} 3328 - dev: true 3329 3608 3330 3609 /escape-string-regexp@1.0.5: 3331 3610 resolution: {integrity: sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==} 3332 3611 engines: {node: '>=0.8.0'} 3333 - dev: true 3334 3612 3335 3613 /escape-string-regexp@4.0.0: 3336 3614 resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==} 3337 3615 engines: {node: '>=10'} 3338 3616 dev: true 3339 3617 3340 - /escodegen@2.1.0: 3341 - resolution: {integrity: sha512-2NlIDTwUWJN0mRPQOdtQBzbUHvdGY2P1VXSyU83Q3xKxM7WHX2Ql8dKq782Q9TgQUNOLEzEYu9bzLNj1q88I5w==} 3342 - engines: {node: '>=6.0'} 3343 - hasBin: true 3344 - dependencies: 3345 - esprima: 4.0.1 3346 - estraverse: 5.3.0 3347 - esutils: 2.0.3 3348 - optionalDependencies: 3349 - source-map: 0.6.1 3350 - dev: true 3351 - 3352 - /eslint-config-airbnb-base@15.0.0(eslint-plugin-import@2.28.1)(eslint@8.48.0): 3618 + /eslint-config-airbnb-base@15.0.0(eslint-plugin-import@2.29.1)(eslint@8.56.0): 3353 3619 resolution: {integrity: sha512-xaX3z4ZZIcFLvh2oUNvcX5oEofXda7giYmuplVxoOg5A7EXJMrUyqRgR+mhDhPK8LZ4PttFOBvCYDbX3sUoUig==} 3354 3620 engines: {node: ^10.12.0 || >=12.0.0} 3355 3621 peerDependencies: ··· 3357 3623 eslint-plugin-import: ^2.25.2 3358 3624 dependencies: 3359 3625 confusing-browser-globals: 1.0.11 3360 - eslint: 8.48.0 3361 - eslint-plugin-import: 2.28.1(@typescript-eslint/parser@5.62.0)(eslint-import-resolver-typescript@2.7.1)(eslint@8.48.0) 3626 + eslint: 8.56.0 3627 + eslint-plugin-import: 2.29.1(@typescript-eslint/parser@6.15.0)(eslint-import-resolver-typescript@3.6.1)(eslint@8.56.0) 3362 3628 object.assign: 4.1.4 3363 3629 object.entries: 1.1.7 3364 3630 semver: 6.3.1 3365 3631 dev: true 3366 3632 3367 - /eslint-config-airbnb@19.0.4(eslint-plugin-import@2.28.1)(eslint-plugin-jsx-a11y@6.7.1)(eslint-plugin-react-hooks@4.3.0)(eslint-plugin-react@7.29.4)(eslint@8.48.0): 3633 + /eslint-config-airbnb@19.0.4(eslint-plugin-import@2.29.1)(eslint-plugin-jsx-a11y@6.8.0)(eslint-plugin-react-hooks@4.6.0)(eslint-plugin-react@7.33.2)(eslint@8.56.0): 3368 3634 resolution: {integrity: sha512-T75QYQVQX57jiNgpF9r1KegMICE94VYwoFQyMGhrvc+lB8YF2E/M/PYDaQe1AJcWaEgqLE+ErXV1Og/+6Vyzew==} 3369 3635 engines: {node: ^10.12.0 || ^12.22.0 || ^14.17.0 || >=16.0.0} 3370 3636 peerDependencies: ··· 3374 3640 eslint-plugin-react: ^7.28.0 3375 3641 eslint-plugin-react-hooks: ^4.3.0 3376 3642 dependencies: 3377 - eslint: 8.48.0 3378 - eslint-config-airbnb-base: 15.0.0(eslint-plugin-import@2.28.1)(eslint@8.48.0) 3379 - eslint-plugin-import: 2.28.1(@typescript-eslint/parser@5.62.0)(eslint-import-resolver-typescript@2.7.1)(eslint@8.48.0) 3380 - eslint-plugin-jsx-a11y: 6.7.1(eslint@8.48.0) 3381 - eslint-plugin-react: 7.29.4(eslint@8.48.0) 3382 - eslint-plugin-react-hooks: 4.3.0(eslint@8.48.0) 3643 + eslint: 8.56.0 3644 + eslint-config-airbnb-base: 15.0.0(eslint-plugin-import@2.29.1)(eslint@8.56.0) 3645 + eslint-plugin-import: 2.29.1(@typescript-eslint/parser@6.15.0)(eslint-import-resolver-typescript@3.6.1)(eslint@8.56.0) 3646 + eslint-plugin-jsx-a11y: 6.8.0(eslint@8.56.0) 3647 + eslint-plugin-react: 7.33.2(eslint@8.56.0) 3648 + eslint-plugin-react-hooks: 4.6.0(eslint@8.56.0) 3383 3649 object.assign: 4.1.4 3384 3650 object.entries: 1.1.7 3385 3651 dev: true 3386 3652 3387 - /eslint-config-prettier@8.10.0(eslint@8.48.0): 3388 - resolution: {integrity: sha512-SM8AMJdeQqRYT9O9zguiruQZaN7+z+E4eAP9oiLNGKMtomwaB1E9dcgUD6ZAn/eQAb52USbvezbiljfZUhbJcg==} 3653 + /eslint-config-prettier@9.1.0(eslint@8.56.0): 3654 + resolution: {integrity: sha512-NSWl5BFQWEPi1j4TjVNItzYV7dZXZ+wP6I6ZhrBGpChQhZRUaElihE9uRRkcbRnNb76UMKDF3r+WTmNcGPKsqw==} 3389 3655 hasBin: true 3390 3656 peerDependencies: 3391 3657 eslint: '>=7.0.0' 3392 3658 dependencies: 3393 - eslint: 8.48.0 3659 + eslint: 8.56.0 3394 3660 dev: true 3395 3661 3396 3662 /eslint-import-resolver-node@0.3.9: 3397 3663 resolution: {integrity: sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g==} 3398 3664 dependencies: 3399 3665 debug: 3.2.7 3400 - is-core-module: 2.13.0 3666 + is-core-module: 2.13.1 3401 3667 resolve: 1.22.4 3402 3668 transitivePeerDependencies: 3403 3669 - supports-color 3404 3670 dev: true 3405 3671 3406 - /eslint-import-resolver-typescript@2.7.1(eslint-plugin-import@2.28.1)(eslint@8.48.0): 3407 - resolution: {integrity: sha512-00UbgGwV8bSgUv34igBDbTOtKhqoRMy9bFjNehT40bXg6585PNIct8HhXZ0SybqB9rWtXj9crcku8ndDn/gIqQ==} 3408 - engines: {node: '>=4'} 3672 + /eslint-import-resolver-typescript@3.6.1(@typescript-eslint/parser@6.15.0)(eslint-plugin-import@2.29.1)(eslint@8.56.0): 3673 + resolution: {integrity: sha512-xgdptdoi5W3niYeuQxKmzVDTATvLYqhpwmykwsh7f6HIOStGWEIL9iqZgQDF9u9OEzrRwR8no5q2VT+bjAujTg==} 3674 + engines: {node: ^14.18.0 || >=16.0.0} 3409 3675 peerDependencies: 3410 3676 eslint: '*' 3411 3677 eslint-plugin-import: '*' 3412 3678 dependencies: 3413 3679 debug: 4.3.4 3414 - eslint: 8.48.0 3415 - eslint-plugin-import: 2.28.1(@typescript-eslint/parser@5.62.0)(eslint-import-resolver-typescript@2.7.1)(eslint@8.48.0) 3416 - glob: 7.2.3 3680 + enhanced-resolve: 5.15.0 3681 + eslint: 8.56.0 3682 + eslint-module-utils: 2.8.0(@typescript-eslint/parser@6.15.0)(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1)(eslint@8.56.0) 3683 + eslint-plugin-import: 2.29.1(@typescript-eslint/parser@6.15.0)(eslint-import-resolver-typescript@3.6.1)(eslint@8.56.0) 3684 + fast-glob: 3.3.1 3685 + get-tsconfig: 4.7.2 3686 + is-core-module: 2.13.0 3417 3687 is-glob: 4.0.3 3418 - resolve: 1.22.4 3419 - tsconfig-paths: 3.14.2 3420 3688 transitivePeerDependencies: 3689 + - '@typescript-eslint/parser' 3690 + - eslint-import-resolver-node 3691 + - eslint-import-resolver-webpack 3421 3692 - supports-color 3422 3693 dev: true 3423 3694 3424 - /eslint-module-utils@2.8.0(@typescript-eslint/parser@5.62.0)(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@2.7.1)(eslint@8.48.0): 3695 + /eslint-module-utils@2.8.0(@typescript-eslint/parser@6.15.0)(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1)(eslint@8.56.0): 3425 3696 resolution: {integrity: sha512-aWajIYfsqCKRDgUfjEXNN/JlrzauMuSEy5sbd7WXbtW3EH6A6MpwEh42c7qD+MqQo9QMJ6fWLAeIJynx0g6OAw==} 3426 3697 engines: {node: '>=4'} 3427 3698 peerDependencies: ··· 3442 3713 eslint-import-resolver-webpack: 3443 3714 optional: true 3444 3715 dependencies: 3445 - '@typescript-eslint/parser': 5.62.0(eslint@8.48.0)(typescript@4.9.5) 3716 + '@typescript-eslint/parser': 6.15.0(eslint@8.56.0)(typescript@5.3.3) 3446 3717 debug: 3.2.7 3447 - eslint: 8.48.0 3718 + eslint: 8.56.0 3448 3719 eslint-import-resolver-node: 0.3.9 3449 - eslint-import-resolver-typescript: 2.7.1(eslint-plugin-import@2.28.1)(eslint@8.48.0) 3720 + eslint-import-resolver-typescript: 3.6.1(@typescript-eslint/parser@6.15.0)(eslint-plugin-import@2.29.1)(eslint@8.56.0) 3450 3721 transitivePeerDependencies: 3451 3722 - supports-color 3452 3723 dev: true 3453 3724 3454 - /eslint-plugin-import@2.28.1(@typescript-eslint/parser@5.62.0)(eslint-import-resolver-typescript@2.7.1)(eslint@8.48.0): 3455 - resolution: {integrity: sha512-9I9hFlITvOV55alzoKBI+K9q74kv0iKMeY6av5+umsNwayt59fz692daGyjR+oStBQgx6nwR9rXldDev3Clw+A==} 3725 + /eslint-plugin-import@2.29.1(@typescript-eslint/parser@6.15.0)(eslint-import-resolver-typescript@3.6.1)(eslint@8.56.0): 3726 + resolution: {integrity: sha512-BbPC0cuExzhiMo4Ff1BTVwHpjjv28C5R+btTOGaCRC7UEz801up0JadwkeSk5Ued6TG34uaczuVuH6qyy5YUxw==} 3456 3727 engines: {node: '>=4'} 3457 3728 peerDependencies: 3458 3729 '@typescript-eslint/parser': '*' ··· 3461 3732 '@typescript-eslint/parser': 3462 3733 optional: true 3463 3734 dependencies: 3464 - '@typescript-eslint/parser': 5.62.0(eslint@8.48.0)(typescript@4.9.5) 3465 - array-includes: 3.1.6 3735 + '@typescript-eslint/parser': 6.15.0(eslint@8.56.0)(typescript@5.3.3) 3736 + array-includes: 3.1.7 3466 3737 array.prototype.findlastindex: 1.2.3 3467 - array.prototype.flat: 1.3.1 3468 - array.prototype.flatmap: 1.3.1 3738 + array.prototype.flat: 1.3.2 3739 + array.prototype.flatmap: 1.3.2 3469 3740 debug: 3.2.7 3470 3741 doctrine: 2.1.0 3471 - eslint: 8.48.0 3742 + eslint: 8.56.0 3472 3743 eslint-import-resolver-node: 0.3.9 3473 - eslint-module-utils: 2.8.0(@typescript-eslint/parser@5.62.0)(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@2.7.1)(eslint@8.48.0) 3474 - has: 1.0.3 3475 - is-core-module: 2.13.0 3744 + eslint-module-utils: 2.8.0(@typescript-eslint/parser@6.15.0)(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1)(eslint@8.56.0) 3745 + hasown: 2.0.0 3746 + is-core-module: 2.13.1 3476 3747 is-glob: 4.0.3 3477 3748 minimatch: 3.1.2 3478 3749 object.fromentries: 2.0.7 3479 3750 object.groupby: 1.0.1 3480 3751 object.values: 1.1.7 3481 3752 semver: 6.3.1 3482 - tsconfig-paths: 3.14.2 3753 + tsconfig-paths: 3.15.0 3483 3754 transitivePeerDependencies: 3484 3755 - eslint-import-resolver-typescript 3485 3756 - eslint-import-resolver-webpack 3486 3757 - supports-color 3487 3758 dev: true 3488 3759 3489 - /eslint-plugin-jsx-a11y@6.7.1(eslint@8.48.0): 3490 - resolution: {integrity: sha512-63Bog4iIethyo8smBklORknVjB0T2dwB8Mr/hIC+fBS0uyHdYYpzM/Ed+YC8VxTjlXHEWFOdmgwcDn1U2L9VCA==} 3760 + /eslint-plugin-jsx-a11y@6.8.0(eslint@8.56.0): 3761 + resolution: {integrity: sha512-Hdh937BS3KdwwbBaKd5+PLCOmYY6U4f2h9Z2ktwtNKvIdIEu137rjYbcb9ApSbVJfWxANNuiKTD/9tOKjK9qOA==} 3491 3762 engines: {node: '>=4.0'} 3492 3763 peerDependencies: 3493 3764 eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 3494 3765 dependencies: 3495 - '@babel/runtime': 7.22.11 3766 + '@babel/runtime': 7.23.6 3496 3767 aria-query: 5.3.0 3497 - array-includes: 3.1.6 3498 - array.prototype.flatmap: 1.3.1 3499 - ast-types-flow: 0.0.7 3500 - axe-core: 4.7.2 3768 + array-includes: 3.1.7 3769 + array.prototype.flatmap: 1.3.2 3770 + ast-types-flow: 0.0.8 3771 + axe-core: 4.7.0 3501 3772 axobject-query: 3.2.1 3502 3773 damerau-levenshtein: 1.0.8 3503 3774 emoji-regex: 9.2.2 3504 - eslint: 8.48.0 3505 - has: 1.0.3 3775 + es-iterator-helpers: 1.0.15 3776 + eslint: 8.56.0 3777 + hasown: 2.0.0 3506 3778 jsx-ast-utils: 3.3.5 3507 - language-tags: 1.0.5 3779 + language-tags: 1.0.9 3508 3780 minimatch: 3.1.2 3509 3781 object.entries: 1.1.7 3510 3782 object.fromentries: 2.0.7 3511 - semver: 6.3.1 3512 3783 dev: true 3513 3784 3514 - /eslint-plugin-prettier@4.2.1(eslint-config-prettier@8.10.0)(eslint@8.48.0)(prettier@2.8.8): 3515 - resolution: {integrity: sha512-f/0rXLXUt0oFYs8ra4w49wYZBG5GKZpAYsJSm6rnYL5uVDjd+zowwMwVZHnAjf4edNrKpCDYfXDgmRE/Ak7QyQ==} 3516 - engines: {node: '>=12.0.0'} 3785 + /eslint-plugin-prettier@5.1.1(eslint-config-prettier@9.1.0)(eslint@8.56.0)(prettier@3.1.1): 3786 + resolution: {integrity: sha512-WQpV3mSmIobb77s4qiCZu3dBrZZ0rj8ckSfBtRrgNK9Wnh2s3eiaxNTWloz1LJ1WtvqZES/PAI7PLvsrGt/CEA==} 3787 + engines: {node: ^14.18.0 || >=16.0.0} 3517 3788 peerDependencies: 3518 - eslint: '>=7.28.0' 3789 + '@types/eslint': '>=8.0.0' 3790 + eslint: '>=8.0.0' 3519 3791 eslint-config-prettier: '*' 3520 - prettier: '>=2.0.0' 3792 + prettier: '>=3.0.0' 3521 3793 peerDependenciesMeta: 3794 + '@types/eslint': 3795 + optional: true 3522 3796 eslint-config-prettier: 3523 3797 optional: true 3524 3798 dependencies: 3525 - eslint: 8.48.0 3526 - eslint-config-prettier: 8.10.0(eslint@8.48.0) 3527 - prettier: 2.8.8 3799 + eslint: 8.56.0 3800 + eslint-config-prettier: 9.1.0(eslint@8.56.0) 3801 + prettier: 3.1.1 3528 3802 prettier-linter-helpers: 1.0.0 3803 + synckit: 0.8.6 3529 3804 dev: true 3530 3805 3531 - /eslint-plugin-react-hooks@4.3.0(eslint@8.48.0): 3532 - resolution: {integrity: sha512-XslZy0LnMn+84NEG9jSGR6eGqaZB3133L8xewQo3fQagbQuGt7a63gf+P1NGKZavEYEC3UXaWEAA/AqDkuN6xA==} 3806 + /eslint-plugin-react-hooks@4.6.0(eslint@8.56.0): 3807 + resolution: {integrity: sha512-oFc7Itz9Qxh2x4gNHStv3BqJq54ExXmfC+a1NjAta66IAN87Wu0R/QArgIS9qKzX3dXKPI9H5crl9QchNMY9+g==} 3533 3808 engines: {node: '>=10'} 3534 3809 peerDependencies: 3535 3810 eslint: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0 3536 3811 dependencies: 3537 - eslint: 8.48.0 3812 + eslint: 8.56.0 3538 3813 dev: true 3539 3814 3540 - /eslint-plugin-react@7.29.4(eslint@8.48.0): 3541 - resolution: {integrity: sha512-CVCXajliVh509PcZYRFyu/BoUEz452+jtQJq2b3Bae4v3xBUWPLCmtmBM+ZinG4MzwmxJgJ2M5rMqhqLVn7MtQ==} 3815 + /eslint-plugin-react@7.33.2(eslint@8.56.0): 3816 + resolution: {integrity: sha512-73QQMKALArI8/7xGLNI/3LylrEYrlKZSb5C9+q3OtOewTnMQi5cT+aE9E41sLCmli3I9PGGmD1yiZydyo4FEPw==} 3542 3817 engines: {node: '>=4'} 3543 3818 peerDependencies: 3544 3819 eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 3545 3820 dependencies: 3546 3821 array-includes: 3.1.6 3547 3822 array.prototype.flatmap: 1.3.1 3823 + array.prototype.tosorted: 1.1.2 3548 3824 doctrine: 2.1.0 3549 - eslint: 8.48.0 3825 + es-iterator-helpers: 1.0.15 3826 + eslint: 8.56.0 3550 3827 estraverse: 5.3.0 3551 3828 jsx-ast-utils: 3.3.5 3552 3829 minimatch: 3.1.2 ··· 3560 3837 string.prototype.matchall: 4.0.9 3561 3838 dev: true 3562 3839 3563 - /eslint-scope@5.1.1: 3564 - resolution: {integrity: sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==} 3565 - engines: {node: '>=8.0.0'} 3566 - dependencies: 3567 - esrecurse: 4.3.0 3568 - estraverse: 4.3.0 3569 - dev: true 3570 - 3571 3840 /eslint-scope@7.2.2: 3572 3841 resolution: {integrity: sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==} 3573 3842 engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} ··· 3581 3850 engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 3582 3851 dev: true 3583 3852 3584 - /eslint@8.48.0: 3585 - resolution: {integrity: sha512-sb6DLeIuRXxeM1YljSe1KEx9/YYeZFQWcV8Rq9HfigmdDEugjLEVEa1ozDjL6YDjBpQHPJxJzze+alxi4T3OLg==} 3853 + /eslint@8.56.0: 3854 + resolution: {integrity: sha512-Go19xM6T9puCOWntie1/P997aXxFsOi37JIHRWI514Hc6ZnaHGKY9xFhrU65RT6CcBEzZoGG1e6Nq+DT04ZtZQ==} 3586 3855 engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 3587 3856 hasBin: true 3588 3857 dependencies: 3589 - '@eslint-community/eslint-utils': 4.4.0(eslint@8.48.0) 3858 + '@eslint-community/eslint-utils': 4.4.0(eslint@8.56.0) 3590 3859 '@eslint-community/regexpp': 4.8.0 3591 - '@eslint/eslintrc': 2.1.2 3592 - '@eslint/js': 8.48.0 3593 - '@humanwhocodes/config-array': 0.11.11 3860 + '@eslint/eslintrc': 2.1.4 3861 + '@eslint/js': 8.56.0 3862 + '@humanwhocodes/config-array': 0.11.13 3594 3863 '@humanwhocodes/module-importer': 1.0.1 3595 3864 '@nodelib/fs.walk': 1.2.8 3865 + '@ungap/structured-clone': 1.2.0 3596 3866 ajv: 6.12.6 3597 3867 chalk: 4.1.2 3598 3868 cross-spawn: 7.0.3 ··· 3636 3906 eslint-visitor-keys: 3.4.3 3637 3907 dev: true 3638 3908 3639 - /esprima@4.0.1: 3640 - resolution: {integrity: sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==} 3641 - engines: {node: '>=4'} 3642 - hasBin: true 3643 - dev: true 3644 - 3645 3909 /esquery@1.5.0: 3646 3910 resolution: {integrity: sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==} 3647 3911 engines: {node: '>=0.10'} ··· 3656 3920 estraverse: 5.3.0 3657 3921 dev: true 3658 3922 3659 - /estraverse@4.3.0: 3660 - resolution: {integrity: sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==} 3661 - engines: {node: '>=4.0'} 3662 - dev: true 3663 - 3664 3923 /estraverse@5.3.0: 3665 3924 resolution: {integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==} 3666 3925 engines: {node: '>=4.0'} ··· 3675 3934 engines: {node: '>=0.10.0'} 3676 3935 dev: true 3677 3936 3937 + /execa@5.1.1: 3938 + resolution: {integrity: sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==} 3939 + engines: {node: '>=10'} 3940 + dependencies: 3941 + cross-spawn: 7.0.3 3942 + get-stream: 6.0.1 3943 + human-signals: 2.1.0 3944 + is-stream: 2.0.1 3945 + merge-stream: 2.0.0 3946 + npm-run-path: 4.0.1 3947 + onetime: 5.1.2 3948 + signal-exit: 3.0.7 3949 + strip-final-newline: 2.0.0 3950 + dev: true 3951 + 3952 + /execa@7.2.0: 3953 + resolution: {integrity: sha512-UduyVP7TLB5IcAQl+OzLyLcS/l32W/GLg+AhHJ+ow40FOk2U3SAllPwR44v4vmdFwIWqpdwxxpQbF1n5ta9seA==} 3954 + engines: {node: ^14.18.0 || ^16.14.0 || >=18.0.0} 3955 + dependencies: 3956 + cross-spawn: 7.0.3 3957 + get-stream: 6.0.1 3958 + human-signals: 4.3.1 3959 + is-stream: 3.0.0 3960 + merge-stream: 2.0.0 3961 + npm-run-path: 5.2.0 3962 + onetime: 6.0.0 3963 + signal-exit: 3.0.7 3964 + strip-final-newline: 3.0.0 3965 + dev: true 3966 + 3967 + /execa@8.0.1: 3968 + resolution: {integrity: sha512-VyhnebXciFV2DESc+p6B+y0LjSm0krU4OgJN44qFAhBY0TJ+1V61tYD2+wHusZ6F9n5K+vl8k0sTy7PEfV4qpg==} 3969 + engines: {node: '>=16.17'} 3970 + dependencies: 3971 + cross-spawn: 7.0.3 3972 + get-stream: 8.0.1 3973 + human-signals: 5.0.0 3974 + is-stream: 3.0.0 3975 + merge-stream: 2.0.0 3976 + npm-run-path: 5.2.0 3977 + onetime: 6.0.0 3978 + signal-exit: 4.1.0 3979 + strip-final-newline: 3.0.0 3980 + dev: true 3981 + 3678 3982 /fast-deep-equal@3.1.3: 3679 3983 resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} 3680 3984 ··· 3684 3988 3685 3989 /fast-glob@3.3.1: 3686 3990 resolution: {integrity: sha512-kNFPyjhh5cKjrUltxs+wFx+ZkbRaxxmZ+X0ZU31SOsxCEtP9VPgtq2teZw1DebupL5GmDaNQ6yKMMVcM41iqDg==} 3991 + engines: {node: '>=8.6.0'} 3992 + dependencies: 3993 + '@nodelib/fs.stat': 2.0.5 3994 + '@nodelib/fs.walk': 1.2.8 3995 + glob-parent: 5.1.2 3996 + merge2: 1.4.1 3997 + micromatch: 4.0.5 3998 + dev: true 3999 + 4000 + /fast-glob@3.3.2: 4001 + resolution: {integrity: sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==} 3687 4002 engines: {node: '>=8.6.0'} 3688 4003 dependencies: 3689 4004 '@nodelib/fs.stat': 2.0.5 ··· 3737 4052 engines: {node: '>=8'} 3738 4053 dependencies: 3739 4054 to-regex-range: 5.0.1 3740 - dev: true 3741 4055 3742 4056 /find-up@5.0.0: 3743 4057 resolution: {integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==} ··· 3747 4061 path-exists: 4.0.0 3748 4062 dev: true 3749 4063 3750 - /flag-icons@6.11.1: 3751 - resolution: {integrity: sha512-c2UMJTFZoVQ47/sE1mb+9b5S1pi8SjXsx0MR063O31GV+O2EN4FMwMdEYSQItpien2bl9w1viLUoo2R3r6OK3g==} 4064 + /flag-icons@7.1.0: 4065 + resolution: {integrity: sha512-AH4v++19bpC5P3Wh767top4wylJYJCWkFnvNiDqGHDxqSqdMZ49jpLXp8PWBHTTXaNQ+/A+QPrOwyiIGaiIhmw==} 3752 4066 dev: false 3753 4067 3754 4068 /flat-cache@3.1.0: ··· 3764 4078 resolution: {integrity: sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ==} 3765 4079 dev: true 3766 4080 3767 - /focus-trap-react@10.2.3(prop-types@15.8.1)(react-dom@17.0.2)(react@17.0.2): 4081 + /focus-trap-react@10.2.3(prop-types@15.8.1)(react-dom@18.2.0)(react@18.2.0): 3768 4082 resolution: {integrity: sha512-YXBpFu/hIeSu6NnmV2xlXzOYxuWkoOtar9jzgp3lOmjWLWY59C/b8DtDHEAV4SPU07Nd/t+nS/SBNGkhUBFmEw==} 3769 4083 peerDependencies: 3770 4084 prop-types: ^15.8.1 ··· 3773 4087 dependencies: 3774 4088 focus-trap: 7.5.4 3775 4089 prop-types: 15.8.1 3776 - react: 17.0.2 3777 - react-dom: 17.0.2(react@17.0.2) 4090 + react: 18.2.0 4091 + react-dom: 18.2.0(react@18.2.0) 3778 4092 tabbable: 6.2.0 3779 4093 dev: false 3780 4094 ··· 3806 4120 combined-stream: 1.0.8 3807 4121 mime-types: 2.1.35 3808 4122 3809 - /fraction.js@4.3.5: 3810 - resolution: {integrity: sha512-58DncB2bO/8ZvTHapG7U2KEbeFFyUbbrFFkHakecpdUSqJrQnEuBeTUPEggIVkx5cnugZJ4IVzk2Nbb32MOxBg==} 4123 + /fraction.js@4.3.7: 4124 + resolution: {integrity: sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew==} 3811 4125 dev: true 3812 4126 3813 4127 /fs-extra@11.1.1: ··· 3842 4156 engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} 3843 4157 os: [darwin] 3844 4158 requiresBuild: true 3845 - dev: true 3846 4159 optional: true 3847 4160 3848 4161 /function-bind@1.1.1: 3849 4162 resolution: {integrity: sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==} 4163 + dev: true 4164 + 4165 + /function-bind@1.1.2: 4166 + resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==} 3850 4167 dev: true 3851 4168 3852 4169 /function.prototype.name@1.1.6: ··· 3863 4180 resolution: {integrity: sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==} 3864 4181 dev: true 3865 4182 3866 - /fuse.js@6.6.2: 3867 - resolution: {integrity: sha512-cJaJkxCCxC8qIIcPBF9yGxY0W/tVZS3uEISDxhYIdtk8OL93pe+6Zj7LjCqVV4dzbqcriOZ+kQ/NE4RXZHsIGA==} 4183 + /fuse.js@7.0.0: 4184 + resolution: {integrity: sha512-14F4hBIxqKvD4Zz/XjDc3y94mNZN6pRv3U13Udo0lNLCWRBUsrMv2xwcF/y/Z5sV6+FQW+/ow68cHpm4sunt8Q==} 3868 4185 engines: {node: '>=10'} 3869 4186 dev: false 3870 4187 3871 4188 /gensync@1.0.0-beta.2: 3872 4189 resolution: {integrity: sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==} 3873 4190 engines: {node: '>=6.9.0'} 4191 + 4192 + /get-func-name@2.0.2: 4193 + resolution: {integrity: sha512-8vXOvuE167CtIc3OyItco7N/dpRtBbYOsPsXCz7X/PMnlGjYjSGuZJgM1Y7mmew7BKf9BqvLX2tnOVy1BBUsxQ==} 3874 4194 dev: true 3875 4195 3876 4196 /get-func-name@3.0.0: ··· 3891 4211 resolution: {integrity: sha512-I0UBV/XOz1XkIJHEUDMZAbzCThU/H8DxmSfmdGcKPnVhu2VfFqr34jr9777IyaTYvxjedWhqVIilEDsCdP5G6g==} 3892 4212 dev: true 3893 4213 4214 + /get-stream@6.0.1: 4215 + resolution: {integrity: sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==} 4216 + engines: {node: '>=10'} 4217 + dev: true 4218 + 4219 + /get-stream@8.0.1: 4220 + resolution: {integrity: sha512-VaUJspBffn/LMCJVoMvSAdmscJyS1auj5Zulnn5UoYcY531UWmdwhRWkcGKnGU93m5HSXP9LP2usOryrBtQowA==} 4221 + engines: {node: '>=16'} 4222 + dev: true 4223 + 3894 4224 /get-symbol-description@1.0.0: 3895 4225 resolution: {integrity: sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==} 3896 4226 engines: {node: '>= 0.4'} ··· 3899 4229 get-intrinsic: 1.2.1 3900 4230 dev: true 3901 4231 4232 + /get-tsconfig@4.7.2: 4233 + resolution: {integrity: sha512-wuMsz4leaj5hbGgg4IvDU0bqJagpftG5l5cXIAvo8uZrqn0NJqwtfupTN00VnkQJPcIRrxYrm1Ue24btpCha2A==} 4234 + dependencies: 4235 + resolve-pkg-maps: 1.0.0 4236 + dev: true 4237 + 3902 4238 /glob-parent@5.1.2: 3903 4239 resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} 3904 4240 engines: {node: '>= 6'} 3905 4241 dependencies: 3906 4242 is-glob: 4.0.3 3907 - dev: true 3908 4243 3909 4244 /glob-parent@6.0.2: 3910 4245 resolution: {integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==} ··· 3913 4248 is-glob: 4.0.3 3914 4249 dev: true 3915 4250 3916 - /glob@10.3.4: 3917 - resolution: {integrity: sha512-6LFElP3A+i/Q8XQKEvZjkEWEOTgAIALR9AO2rwT8bgPhDd1anmqDJDZ6lLddI4ehxxxR1S5RIqKe1uapMQfYaQ==} 4251 + /glob@10.3.10: 4252 + resolution: {integrity: sha512-fa46+tv1Ak0UPK1TOy/pZrIybNNt4HCv7SDzwyfiOZkvZLEbjsZkJBPtDHVshZjbecAoAGSC20MjLDG/qr679g==} 3918 4253 engines: {node: '>=16 || 14 >=14.17'} 3919 4254 hasBin: true 3920 4255 dependencies: 3921 4256 foreground-child: 3.1.1 3922 - jackspeak: 2.3.1 4257 + jackspeak: 2.3.6 3923 4258 minimatch: 9.0.3 3924 4259 minipass: 7.0.3 3925 4260 path-scurry: 1.10.1 ··· 3950 4285 /globals@11.12.0: 3951 4286 resolution: {integrity: sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==} 3952 4287 engines: {node: '>=4'} 3953 - dev: true 3954 4288 3955 4289 /globals@13.21.0: 3956 4290 resolution: {integrity: sha512-ybyme3s4yy/t/3s35bewwXKOf7cvzfreG2lH0lZl0JB7I4GxRP2ghxOK/Nb9EkRXdbBXZLfq/p/0W2JUONB/Gg==} ··· 4012 4346 /has-flag@3.0.0: 4013 4347 resolution: {integrity: sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==} 4014 4348 engines: {node: '>=4'} 4015 - dev: true 4016 4349 4017 4350 /has-flag@4.0.0: 4018 4351 resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==} ··· 4049 4382 function-bind: 1.1.1 4050 4383 dev: true 4051 4384 4052 - /history@4.10.1: 4053 - resolution: {integrity: sha512-36nwAD620w12kuzPAsyINPWJqlNbij+hpK1k9XRloDtym8mxzGYl2c17LnV6IAGB2Dmg4tEa7G7DlawS0+qjew==} 4385 + /hasown@2.0.0: 4386 + resolution: {integrity: sha512-vUptKVTpIJhcczKBbgnS+RtcuYMB8+oNzPK2/Hp3hanz8JmpATdmmgLgSaadVREkDm+e2giHwY3ZRkyjSIDDFA==} 4387 + engines: {node: '>= 0.4'} 4054 4388 dependencies: 4055 - '@babel/runtime': 7.22.11 4056 - loose-envify: 1.4.0 4057 - resolve-pathname: 3.0.0 4058 - tiny-invariant: 1.3.1 4059 - tiny-warning: 1.0.3 4060 - value-equal: 1.0.1 4061 - dev: false 4389 + function-bind: 1.1.2 4390 + dev: true 4062 4391 4063 - /hls.js@1.4.11: 4064 - resolution: {integrity: sha512-rhPSUMACcIBbcUnwWnIcRgGXqJJt0xBRxvhzl99XpGHtnnLKjbczmmBmUuQueAQcbL3SdN7D5peAObR18VrhvQ==} 4392 + /hls.js@1.4.14: 4393 + resolution: {integrity: sha512-UppQjyvPVclg+6t2KY/Rv03h0+bA5u6zwqVoz4LAC/L0fgYmIaCD7ZCrwe8WI1Gv01be1XL0QFsRbSdIHV/Wbw==} 4065 4394 dev: false 4066 4395 4067 4396 /hoist-non-react-statics@3.3.2: ··· 4070 4399 react-is: 16.13.1 4071 4400 dev: false 4072 4401 4073 - /html-encoding-sniffer@3.0.0: 4074 - resolution: {integrity: sha512-oWv4T4yJ52iKrufjnyZPkrN0CH3QnrUqdB6In1g5Fe1mia8GmF36gnfNySxoZtxD5+NmYw1EElVXiBk93UeskA==} 4075 - engines: {node: '>=12'} 4402 + /html-encoding-sniffer@4.0.0: 4403 + resolution: {integrity: sha512-Y22oTqIU4uuPgEemfz7NDJz6OeKf12Lsu+QC+s3BVpda64lTiMYCyGwg5ki4vFxkMwQdeZDl2adZoqUgdFuTgQ==} 4404 + engines: {node: '>=18'} 4076 4405 dependencies: 4077 - whatwg-encoding: 2.0.0 4406 + whatwg-encoding: 3.1.1 4078 4407 dev: true 4079 4408 4080 4409 /html-parse-stringify@3.0.1: ··· 4092 4421 entities: 4.5.0 4093 4422 dev: false 4094 4423 4095 - /http-proxy-agent@5.0.0: 4096 - resolution: {integrity: sha512-n2hY8YdoRE1i7r6M0w9DIw5GgZN0G25P8zLCRQ8rjXtTU3vsNFBI/vWK/UIeE6g5MUUz6avwAPXmL6Fy9D/90w==} 4097 - engines: {node: '>= 6'} 4424 + /http-proxy-agent@7.0.0: 4425 + resolution: {integrity: sha512-+ZT+iBxVUQ1asugqnD6oWoRiS25AkjNfG085dKJGtGxkdwLQrMKU5wJr2bOOFAXzKcTuqq+7fZlTMgG3SRfIYQ==} 4426 + engines: {node: '>= 14'} 4098 4427 dependencies: 4099 - '@tootallnate/once': 2.0.0 4100 - agent-base: 6.0.2 4428 + agent-base: 7.1.0 4101 4429 debug: 4.3.4 4102 4430 transitivePeerDependencies: 4103 4431 - supports-color 4104 4432 dev: true 4105 4433 4106 - /https-proxy-agent@5.0.1: 4107 - resolution: {integrity: sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==} 4108 - engines: {node: '>= 6'} 4434 + /https-proxy-agent@7.0.2: 4435 + resolution: {integrity: sha512-NmLNjm6ucYwtcUmL7JQC1ZQ57LmHP4lT15FQ8D61nak1rO6DH+fz5qNK2Ap5UN4ZapYICE3/0KodcLYSPsPbaA==} 4436 + engines: {node: '>= 14'} 4109 4437 dependencies: 4110 - agent-base: 6.0.2 4438 + agent-base: 7.1.0 4111 4439 debug: 4.3.4 4112 4440 transitivePeerDependencies: 4113 4441 - supports-color 4114 4442 dev: true 4115 4443 4444 + /human-signals@2.1.0: 4445 + resolution: {integrity: sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==} 4446 + engines: {node: '>=10.17.0'} 4447 + dev: true 4448 + 4449 + /human-signals@4.3.1: 4450 + resolution: {integrity: sha512-nZXjEF2nbo7lIw3mgYjItAfgQXog3OjJogSbKa2CQIIvSGWcKgeJnQlNXip6NglNzYH45nSRiEVimMvYL8DDqQ==} 4451 + engines: {node: '>=14.18.0'} 4452 + dev: true 4453 + 4454 + /human-signals@5.0.0: 4455 + resolution: {integrity: sha512-AXcZb6vzzrFAUE61HnN4mpLqd/cSIwNQjtNWR0euPm6y0iqx3G4gOXaIDdtdDwZmhwe82LA6+zinmW4UBWVePQ==} 4456 + engines: {node: '>=16.17.0'} 4457 + dev: true 4458 + 4116 4459 /hyphenate-style-name@1.0.4: 4117 4460 resolution: {integrity: sha512-ygGZLjmXfPHj+ZWh6LwbC37l43MhfztxetbFCoYTM2VjkIUpeHgSNn7QIyVFj7YQ1Wl9Cbw5sholVJPzWvC2MQ==} 4118 4461 dev: false 4119 4462 4120 - /i18next@22.5.1: 4121 - resolution: {integrity: sha512-8TGPgM3pAD+VRsMtUMNknRz3kzqwp/gPALrWMsDnmC1mKqJwpWyooQRLMcbTwq8z8YwSmuj+ZYvc+xCuEpkssA==} 4463 + /i18next@23.7.11: 4464 + resolution: {integrity: sha512-A/vOkw8vY99YHU9A1Td3I1dcTiYaPnwBWzrpVzfXUXSYgogK3cmBcmop/0cnXPc6QpUWIyqaugKNxRUEZVk9Nw==} 4122 4465 dependencies: 4123 - '@babel/runtime': 7.22.11 4466 + '@babel/runtime': 7.23.6 4124 4467 dev: false 4125 4468 4126 4469 /iconv-lite@0.6.3: ··· 4139 4482 engines: {node: '>= 4'} 4140 4483 dev: true 4141 4484 4142 - /immer@10.0.2: 4143 - resolution: {integrity: sha512-Rx3CqeqQ19sxUtYV9CU911Vhy8/721wRFnJv3REVGWUmoAcIwzifTsdmJte/MV+0/XpM35LZdQMBGkRIoLPwQA==} 4485 + /immer@10.0.3: 4486 + resolution: {integrity: sha512-pwupu3eWfouuaowscykeckFmVTpqbzW+rXFCX8rQLkZzM9ftBmU/++Ra+o+L27mz03zJTlyV4UUr+fdKNffo4A==} 4144 4487 dev: false 4145 4488 4146 4489 /import-fresh@3.3.0: ··· 4167 4510 resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} 4168 4511 dev: true 4169 4512 4170 - /inline-style-prefixer@6.0.4: 4171 - resolution: {integrity: sha512-FwXmZC2zbeeS7NzGjJ6pAiqRhXR0ugUShSNb6GApMl6da0/XGc4MOJsoWAywia52EEWbXNSy0pzkwz/+Y+swSg==} 4513 + /inline-style-prefixer@7.0.0: 4514 + resolution: {integrity: sha512-I7GEdScunP1dQ6IM2mQWh6v0mOYdYmH3Bp31UecKdrcUgcURTcctSe1IECdUznSHKSmsHtjrT3CwCPI1pyxfUQ==} 4172 4515 dependencies: 4173 4516 css-in-js-utils: 3.1.0 4174 4517 fast-loops: 1.1.3 ··· 4201 4544 resolution: {integrity: sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==} 4202 4545 dev: true 4203 4546 4547 + /is-async-function@2.0.0: 4548 + resolution: {integrity: sha512-Y1JXKrfykRJGdlDwdKlLpLyMIiWqWvuSd17TvZk68PLAOGOoF4Xyav1z0Xhoi+gCYjZVeC5SI+hYFOfvXmGRCA==} 4549 + engines: {node: '>= 0.4'} 4550 + dependencies: 4551 + has-tostringtag: 1.0.0 4552 + dev: true 4553 + 4204 4554 /is-bigint@1.0.4: 4205 4555 resolution: {integrity: sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==} 4206 4556 dependencies: ··· 4212 4562 engines: {node: '>=8'} 4213 4563 dependencies: 4214 4564 binary-extensions: 2.2.0 4215 - dev: true 4216 4565 4217 4566 /is-boolean-object@1.1.2: 4218 4567 resolution: {integrity: sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==} ··· 4233 4582 has: 1.0.3 4234 4583 dev: true 4235 4584 4585 + /is-core-module@2.13.1: 4586 + resolution: {integrity: sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==} 4587 + dependencies: 4588 + hasown: 2.0.0 4589 + dev: true 4590 + 4236 4591 /is-date-object@1.0.5: 4237 4592 resolution: {integrity: sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==} 4238 4593 engines: {node: '>= 0.4'} ··· 4240 4595 has-tostringtag: 1.0.0 4241 4596 dev: true 4242 4597 4598 + /is-docker@2.2.1: 4599 + resolution: {integrity: sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==} 4600 + engines: {node: '>=8'} 4601 + hasBin: true 4602 + dev: true 4603 + 4604 + /is-docker@3.0.0: 4605 + resolution: {integrity: sha512-eljcgEDlEns/7AXFosB5K/2nCM4P7FQPkGc/DWLy5rmFEWvZayGrik1d9/QIY5nJ4f9YsVvBkA6kJpHn9rISdQ==} 4606 + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} 4607 + hasBin: true 4608 + dev: true 4609 + 4243 4610 /is-extglob@2.1.1: 4244 4611 resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} 4245 4612 engines: {node: '>=0.10.0'} 4613 + 4614 + /is-finalizationregistry@1.0.2: 4615 + resolution: {integrity: sha512-0by5vtUJs8iFQb5TYUHHPudOR+qXYIMKtiUzvLIZITZUjknFmziyBJuLhVRc+Ds0dREFlskDNJKYIdIzu/9pfw==} 4616 + dependencies: 4617 + call-bind: 1.0.2 4246 4618 dev: true 4247 4619 4248 4620 /is-fullwidth-code-point@3.0.0: ··· 4250 4622 engines: {node: '>=8'} 4251 4623 dev: true 4252 4624 4253 - /is-fullwidth-code-point@4.0.0: 4254 - resolution: {integrity: sha512-O4L094N2/dZ7xqVdrXhh9r1KODPJpFms8B5sGdJLPy664AgvXsreZUyCQQNItZRDlYug4xStLjNp/sz3HvBowQ==} 4255 - engines: {node: '>=12'} 4625 + /is-generator-function@1.0.10: 4626 + resolution: {integrity: sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A==} 4627 + engines: {node: '>= 0.4'} 4628 + dependencies: 4629 + has-tostringtag: 1.0.0 4256 4630 dev: true 4257 4631 4258 4632 /is-glob@4.0.3: ··· 4260 4634 engines: {node: '>=0.10.0'} 4261 4635 dependencies: 4262 4636 is-extglob: 2.1.1 4637 + 4638 + /is-inside-container@1.0.0: 4639 + resolution: {integrity: sha512-KIYLCCJghfHZxqjYBE7rEy0OBuTd5xCHS7tHVgvCLkx7StIoaxwNW3hCALgEUjFfeRk+MG/Qxmp/vtETEF3tRA==} 4640 + engines: {node: '>=14.16'} 4641 + hasBin: true 4642 + dependencies: 4643 + is-docker: 3.0.0 4644 + dev: true 4645 + 4646 + /is-map@2.0.2: 4647 + resolution: {integrity: sha512-cOZFQQozTha1f4MxLFzlgKYPTyj26picdZTx82hbc/Xf4K/tZOOXSCkMvU4pKioRXGDLJRn0GM7Upe7kR721yg==} 4263 4648 dev: true 4264 4649 4265 4650 /is-module@1.0.0: ··· 4281 4666 /is-number@7.0.0: 4282 4667 resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} 4283 4668 engines: {node: '>=0.12.0'} 4284 - dev: true 4285 4669 4286 4670 /is-obj@1.0.1: 4287 4671 resolution: {integrity: sha512-l4RyHgRqGN4Y3+9JHVrNqO+tN0rV5My76uW5/nuO4K1b6vw5G8d/cmFjP9tRfEsdhZNt0IFdZuK/c2Vr4Nb+Qg==} ··· 4310 4694 engines: {node: '>=0.10.0'} 4311 4695 dev: true 4312 4696 4697 + /is-set@2.0.2: 4698 + resolution: {integrity: sha512-+2cnTEZeY5z/iXGbLhPrOAaK/Mau5k5eXq9j14CpRTftq0pAJu2MwVRSZhyZWBzx3o6X795Lz6Bpb6R0GKf37g==} 4699 + dev: true 4700 + 4313 4701 /is-shared-array-buffer@1.0.2: 4314 4702 resolution: {integrity: sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==} 4315 4703 dependencies: ··· 4321 4709 engines: {node: '>=8'} 4322 4710 dev: true 4323 4711 4712 + /is-stream@3.0.0: 4713 + resolution: {integrity: sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==} 4714 + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} 4715 + dev: true 4716 + 4324 4717 /is-string@1.0.7: 4325 4718 resolution: {integrity: sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==} 4326 4719 engines: {node: '>= 0.4'} ··· 4342 4735 which-typed-array: 1.1.11 4343 4736 dev: true 4344 4737 4738 + /is-weakmap@2.0.1: 4739 + resolution: {integrity: sha512-NSBR4kH5oVj1Uwvv970ruUkCV7O1mzgVFO4/rev2cLRda9Tm9HrL70ZPut4rOHgY0FNrUu9BCbXA2sdQ+x0chA==} 4740 + dev: true 4741 + 4345 4742 /is-weakref@1.0.2: 4346 4743 resolution: {integrity: sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==} 4347 4744 dependencies: 4348 4745 call-bind: 1.0.2 4349 4746 dev: true 4350 4747 4351 - /isarray@0.0.1: 4352 - resolution: {integrity: sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ==} 4353 - dev: false 4748 + /is-weakset@2.0.2: 4749 + resolution: {integrity: sha512-t2yVvttHkQktwnNNmBQ98AhENLdPUTDTE21uPqAQ0ARwQfGeQKRVS0NNurH7bTf7RrvcVn1OOge45CnBeHCSmg==} 4750 + dependencies: 4751 + call-bind: 1.0.2 4752 + get-intrinsic: 1.2.1 4753 + dev: true 4754 + 4755 + /is-wsl@2.2.0: 4756 + resolution: {integrity: sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==} 4757 + engines: {node: '>=8'} 4758 + dependencies: 4759 + is-docker: 2.2.1 4760 + dev: true 4354 4761 4355 4762 /isarray@2.0.5: 4356 4763 resolution: {integrity: sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==} ··· 4365 4772 engines: {node: '>=6.0'} 4366 4773 dev: false 4367 4774 4368 - /jackspeak@2.3.1: 4369 - resolution: {integrity: sha512-4iSY3Bh1Htv+kLhiiZunUhQ+OYXIn0ze3ulq8JeWrFKmhPAJSySV2+kdtRh2pGcCeF0s6oR8Oc+pYZynJj4t8A==} 4775 + /iterator.prototype@1.1.2: 4776 + resolution: {integrity: sha512-DR33HMMr8EzwuRL8Y9D3u2BMj8+RqSE850jfGu59kS7tbmPLzGkZmVSfyCFSDxuZiEY6Rzt3T2NA/qU+NwVj1w==} 4777 + dependencies: 4778 + define-properties: 1.2.1 4779 + get-intrinsic: 1.2.1 4780 + has-symbols: 1.0.3 4781 + reflect.getprototypeof: 1.0.4 4782 + set-function-name: 2.0.1 4783 + dev: true 4784 + 4785 + /jackspeak@2.3.6: 4786 + resolution: {integrity: sha512-N3yCS/NegsOBokc8GAdM8UcmfsKiSS8cipheD/nivzr700H+nsMOxJjQnvwOcRYVuFkdH0wGUvW2WbXGmrZGbQ==} 4370 4787 engines: {node: '>=14'} 4371 4788 dependencies: 4372 4789 '@isaacs/cliui': 8.0.2 ··· 4389 4806 resolution: {integrity: sha512-KWYVV1c4i+jbMpaBC+U++4Va0cp8OisU185o73T1vo99hqi7w8tSJfUXYswwqqrjzwxa6KpRK54WhPvwf5w6PQ==} 4390 4807 engines: {node: '>= 10.13.0'} 4391 4808 dependencies: 4392 - '@types/node': 17.0.45 4809 + '@types/node': 20.10.5 4393 4810 merge-stream: 2.0.0 4394 4811 supports-color: 7.2.0 4395 4812 dev: true ··· 4413 4830 argparse: 2.0.1 4414 4831 dev: true 4415 4832 4416 - /jsdom@21.1.2: 4417 - resolution: {integrity: sha512-sCpFmK2jv+1sjff4u7fzft+pUh2KSUbUrEHYHyfSIbGTIcmnjyp83qg6qLwdJ/I3LpTXx33ACxeRL7Lsyc6lGQ==} 4418 - engines: {node: '>=14'} 4833 + /jsdom@23.0.1: 4834 + resolution: {integrity: sha512-2i27vgvlUsGEBO9+/kJQRbtqtm+191b5zAZrU/UezVmnC2dlDAFLgDYJvAEi94T4kjsRKkezEtLQTgsNEsW2lQ==} 4835 + engines: {node: '>=18'} 4419 4836 peerDependencies: 4420 - canvas: ^2.5.0 4837 + canvas: ^2.11.2 4421 4838 peerDependenciesMeta: 4422 4839 canvas: 4423 4840 optional: true 4424 4841 dependencies: 4425 - abab: 2.0.6 4426 - acorn: 8.10.0 4427 - acorn-globals: 7.0.1 4428 4842 cssstyle: 3.0.0 4429 - data-urls: 4.0.0 4843 + data-urls: 5.0.0 4430 4844 decimal.js: 10.4.3 4431 - domexception: 4.0.0 4432 - escodegen: 2.1.0 4433 4845 form-data: 4.0.0 4434 - html-encoding-sniffer: 3.0.0 4435 - http-proxy-agent: 5.0.0 4436 - https-proxy-agent: 5.0.1 4846 + html-encoding-sniffer: 4.0.0 4847 + http-proxy-agent: 7.0.0 4848 + https-proxy-agent: 7.0.2 4437 4849 is-potential-custom-element-name: 1.0.1 4438 4850 nwsapi: 2.2.7 4439 4851 parse5: 7.1.2 ··· 4441 4853 saxes: 6.0.0 4442 4854 symbol-tree: 3.2.4 4443 4855 tough-cookie: 4.1.3 4444 - w3c-xmlserializer: 4.0.0 4856 + w3c-xmlserializer: 5.0.0 4445 4857 webidl-conversions: 7.0.0 4446 - whatwg-encoding: 2.0.0 4447 - whatwg-mimetype: 3.0.0 4448 - whatwg-url: 12.0.1 4449 - ws: 8.13.0 4450 - xml-name-validator: 4.0.0 4858 + whatwg-encoding: 3.1.1 4859 + whatwg-mimetype: 4.0.0 4860 + whatwg-url: 14.0.0 4861 + ws: 8.15.1 4862 + xml-name-validator: 5.0.0 4451 4863 transitivePeerDependencies: 4452 4864 - bufferutil 4453 4865 - supports-color ··· 4463 4875 resolution: {integrity: sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==} 4464 4876 engines: {node: '>=4'} 4465 4877 hasBin: true 4466 - dev: true 4467 4878 4468 4879 /json-buffer@3.0.1: 4469 4880 resolution: {integrity: sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==} ··· 4496 4907 resolution: {integrity: sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==} 4497 4908 engines: {node: '>=6'} 4498 4909 hasBin: true 4499 - dev: true 4500 4910 4501 4911 /jsonc-parser@3.2.0: 4502 4912 resolution: {integrity: sha512-gfFQZrcTc8CnKXp6Y4/CBT3fTc0OVuDofpre4aEeEpSBPV5X5v4+Vmx+8snU7RLPrNHPKSgLxGo9YuQzz20o+w==} ··· 4519 4929 resolution: {integrity: sha512-ZZow9HBI5O6EPgSJLUb8n2NKgmVWTwCvHGwFuJlMjvLFqlGG6pjirPhtdsseaLZjSibD8eegzmYpUZwoIlj2cQ==} 4520 4930 engines: {node: '>=4.0'} 4521 4931 dependencies: 4522 - array-includes: 3.1.6 4932 + array-includes: 3.1.7 4523 4933 array.prototype.flat: 1.3.1 4524 4934 object.assign: 4.1.4 4525 4935 object.values: 1.1.7 ··· 4540 4950 json-buffer: 3.0.1 4541 4951 dev: true 4542 4952 4953 + /kleur@4.1.5: 4954 + resolution: {integrity: sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ==} 4955 + engines: {node: '>=6'} 4956 + dev: false 4957 + 4543 4958 /language-subtag-registry@0.3.22: 4544 4959 resolution: {integrity: sha512-tN0MCzyWnoz/4nHS6uxdlFWoUZT7ABptwKPQ52Ea7URk6vll88bWBVhodtnlfEuCcKWNGoc+uGbw1cwa9IKh/w==} 4545 4960 dev: true 4546 4961 4547 - /language-tags@1.0.5: 4548 - resolution: {integrity: sha512-qJhlO9cGXi6hBGKoxEG/sKZDAHD5Hnu9Hs4WbOY3pCWXDhw0N8x1NenNzm2EnNLkLkk7J2SdxAkDSbb6ftT+UQ==} 4962 + /language-tags@1.0.9: 4963 + resolution: {integrity: sha512-MbjN408fEndfiQXbFQ1vnd+1NoLDsnQW41410oQBXiyXDMYH5z505juWa4KUE1LqxRC7DgOgZDbKLxHIwm27hA==} 4964 + engines: {node: '>=0.10'} 4549 4965 dependencies: 4550 4966 language-subtag-registry: 0.3.22 4551 4967 dev: true ··· 4572 4988 resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==} 4573 4989 dev: true 4574 4990 4575 - /local-pkg@0.4.3: 4576 - resolution: {integrity: sha512-SFppqq5p42fe2qcZQqqEOiVRXl+WCP1MdT6k7BDEW1j++sp5fIY+/fdRQitvKgB5BrBcmrs5m/L0v2FrU5MY1g==} 4991 + /local-pkg@0.5.0: 4992 + resolution: {integrity: sha512-ok6z3qlYyCDS4ZEU27HaU6x/xZa9Whf8jD4ptH5UZTQYZVYeb9bnZ3ojVhiJNLiXK1Hfc0GNbLXcmZ5plLDDBg==} 4577 4993 engines: {node: '>=14'} 4994 + dependencies: 4995 + mlly: 1.4.2 4996 + pkg-types: 1.0.3 4578 4997 dev: true 4579 4998 4580 4999 /locate-path@6.0.0: ··· 4624 5043 4625 5044 /loupe@2.3.6: 4626 5045 resolution: {integrity: sha512-RaPMZKiMy8/JruncMU5Bt6na1eftNoo++R4Y+N2FrxkDVTrGvcyzFTsaGif4QTeKESheMGegbhw6iUAq+5A8zA==} 5046 + deprecated: Please upgrade to 2.3.7 which fixes GHSA-4q6p-r6v2-jvc5 4627 5047 dependencies: 4628 5048 get-func-name: 3.0.0 4629 5049 dev: true 4630 5050 5051 + /loupe@2.3.7: 5052 + resolution: {integrity: sha512-zSMINGVYkdpYSOBmLi0D1Uo7JU9nVdQKrHxC8eYlV+9YKK9WePqAlL7lSlorG/U2Fw1w0hTBmaa/jrQ3UbPHtA==} 5053 + dependencies: 5054 + get-func-name: 2.0.2 5055 + dev: true 5056 + 4631 5057 /lru-cache@10.0.1: 4632 5058 resolution: {integrity: sha512-IJ4uwUTi2qCccrioU6g9g/5rvvVl13bsdczUUcqbciD9iLr095yj8DQKdObriEvuNSx325N1rV1O0sJFszx75g==} 4633 5059 engines: {node: 14 || >=16.14} ··· 4637 5063 resolution: {integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==} 4638 5064 dependencies: 4639 5065 yallist: 3.1.1 4640 - dev: true 4641 5066 4642 5067 /lru-cache@6.0.0: 4643 5068 resolution: {integrity: sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==} ··· 4652 5077 sourcemap-codec: 1.4.8 4653 5078 dev: true 4654 5079 4655 - /magic-string@0.27.0: 4656 - resolution: {integrity: sha512-8UnnX2PeRAPZuN12svgR9j7M1uWMovg/CEnIwIG0LFkXSJJe4PdfUGiTGl8V9bsBHFUtfVINcSyYxd7q+kx9fA==} 5080 + /magic-string@0.30.5: 5081 + resolution: {integrity: sha512-7xlpfBaQaP/T6Vh8MO/EqXSW5En6INHEvEXQiuff7Gku0PWjU3uf6w/j9o7O+SpB5fOAkrI5HeoNgwjEO0pFsA==} 4657 5082 engines: {node: '>=12'} 4658 5083 dependencies: 4659 5084 '@jridgewell/sourcemap-codec': 1.4.15 ··· 4680 5105 picomatch: 2.3.1 4681 5106 dev: true 4682 5107 5108 + /million@2.6.4: 5109 + resolution: {integrity: sha512-voUkdd/jHWrG+7NS+mX49Pat+POKdgGW78V7pYMSrTaOjUitR6ySEcAci8hn17Rsx1IMI3+5w41dkADM1J1ZEg==} 5110 + hasBin: true 5111 + dependencies: 5112 + '@babel/core': 7.23.6 5113 + '@babel/generator': 7.23.6 5114 + '@babel/plugin-syntax-jsx': 7.23.3(@babel/core@7.23.6) 5115 + '@babel/plugin-syntax-typescript': 7.23.3(@babel/core@7.23.6) 5116 + '@babel/types': 7.23.6 5117 + kleur: 4.1.5 5118 + rollup: 3.29.4 5119 + unplugin: 1.5.1 5120 + transitivePeerDependencies: 5121 + - supports-color 5122 + dev: false 5123 + 4683 5124 /mime-db@1.52.0: 4684 5125 resolution: {integrity: sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==} 4685 5126 engines: {node: '>= 0.6'} ··· 4690 5131 dependencies: 4691 5132 mime-db: 1.52.0 4692 5133 5134 + /mimic-fn@2.1.0: 5135 + resolution: {integrity: sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==} 5136 + engines: {node: '>=6'} 5137 + dev: true 5138 + 5139 + /mimic-fn@4.0.0: 5140 + resolution: {integrity: sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==} 5141 + engines: {node: '>=12'} 5142 + dev: true 5143 + 4693 5144 /minimatch@3.1.2: 4694 5145 resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==} 4695 5146 dependencies: ··· 4719 5170 engines: {node: '>=16 || 14 >=14.17'} 4720 5171 dev: true 4721 5172 4722 - /mlly@1.4.1: 4723 - resolution: {integrity: sha512-SCDs78Q2o09jiZiE2WziwVBEqXQ02XkGdUy45cbJf+BpYRIjArXRJ1Wbowxkb+NaM9DWvS3UC9GiO/6eqvQ/pg==} 5173 + /mlly@1.4.2: 5174 + resolution: {integrity: sha512-i/Ykufi2t1EZ6NaPLdfnZk2AX8cs0d+mTzVKuPfqPKPatxLApaBoxJQ9x1/uckXtrS/U5oisPMDkNs0yQTaBRg==} 4724 5175 dependencies: 4725 5176 acorn: 8.10.0 4726 5177 pathe: 1.1.1 ··· 4730 5181 4731 5182 /ms@2.1.2: 4732 5183 resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==} 4733 - dev: true 4734 5184 4735 5185 /ms@2.1.3: 4736 5186 resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} ··· 4744 5194 thenify-all: 1.6.0 4745 5195 dev: true 4746 5196 4747 - /nano-css@5.3.5(react-dom@17.0.2)(react@17.0.2): 4748 - resolution: {integrity: sha512-vSB9X12bbNu4ALBu7nigJgRViZ6ja3OU7CeuiV1zMIbXOdmkLahgtPmh3GBOlDxbKY0CitqlPdOReGlBLSp+yg==} 5197 + /nano-css@5.6.1(react-dom@18.2.0)(react@18.2.0): 5198 + resolution: {integrity: sha512-T2Mhc//CepkTa3X4pUhKgbEheJHYAxD0VptuqFhDbGMUWVV2m+lkNiW/Ieuj35wrfC8Zm0l7HvssQh7zcEttSw==} 4749 5199 peerDependencies: 4750 5200 react: '*' 4751 5201 react-dom: '*' 4752 5202 dependencies: 5203 + '@jridgewell/sourcemap-codec': 1.4.15 4753 5204 css-tree: 1.1.3 4754 5205 csstype: 3.1.2 4755 5206 fastest-stable-stringify: 2.0.2 4756 - inline-style-prefixer: 6.0.4 4757 - react: 17.0.2 4758 - react-dom: 17.0.2(react@17.0.2) 5207 + inline-style-prefixer: 7.0.0 5208 + react: 18.2.0 5209 + react-dom: 18.2.0(react@18.2.0) 4759 5210 rtl-css-js: 1.16.1 4760 - sourcemap-codec: 1.4.8 4761 5211 stacktrace-js: 2.0.2 4762 5212 stylis: 4.3.0 4763 5213 dev: false ··· 4766 5216 resolution: {integrity: sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA==} 4767 5217 engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} 4768 5218 hasBin: true 5219 + dev: false 5220 + 5221 + /nanoid@3.3.7: 5222 + resolution: {integrity: sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==} 5223 + engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} 5224 + hasBin: true 5225 + dev: true 4769 5226 4770 5227 /nanoid@5.0.4: 4771 5228 resolution: {integrity: sha512-vAjmBf13gsmhXSgBrtIclinISzFFy22WwCYoyilZlsrRXNIHSwgFQ1bEdjRwMT3aoadeIF6HMuDRlOxzfXV8ig==} 4772 5229 engines: {node: ^18 || >=20} 4773 5230 hasBin: true 4774 5231 dev: false 4775 - 4776 - /natural-compare-lite@1.4.0: 4777 - resolution: {integrity: sha512-Tj+HTDSJJKaZnfiuw+iaF9skdPpTo2GtEly5JHnWV/hfv2Qj/9RKsGISQtLh2ox3l5EAGw487hnBee0sIJ6v2g==} 4778 - dev: true 4779 5232 4780 5233 /natural-compare@1.4.0: 4781 5234 resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==} ··· 4810 5263 resolution: {integrity: sha512-uYr7J37ae/ORWdZeQ1xxMJe3NtdmqMC/JZK+geofDrkLUApKRHPd18/TxtBOJ4A0/+uUIliorNrfYV6s1b02eQ==} 4811 5264 dev: true 4812 5265 5266 + /node-releases@2.0.14: 5267 + resolution: {integrity: sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==} 5268 + 4813 5269 /normalize-path@3.0.0: 4814 5270 resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==} 4815 5271 engines: {node: '>=0.10.0'} 4816 - dev: true 4817 5272 4818 5273 /normalize-range@0.1.2: 4819 5274 resolution: {integrity: sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==} ··· 4827 5282 path-key: 3.1.1 4828 5283 dev: true 4829 5284 5285 + /npm-run-path@5.2.0: 5286 + resolution: {integrity: sha512-W4/tgAXFqFA0iL7fk0+uQ3g7wkL8xJmx3XdK0VGb4cHW//eZTtKGvFBBoRKVTpY7n6ze4NL9ly7rgXcHufqXKg==} 5287 + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} 5288 + dependencies: 5289 + path-key: 4.0.0 5290 + dev: true 5291 + 4830 5292 /nth-check@2.1.1: 4831 5293 resolution: {integrity: sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==} 4832 5294 dependencies: ··· 4922 5384 wrappy: 1.0.2 4923 5385 dev: true 4924 5386 5387 + /onetime@5.1.2: 5388 + resolution: {integrity: sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==} 5389 + engines: {node: '>=6'} 5390 + dependencies: 5391 + mimic-fn: 2.1.0 5392 + dev: true 5393 + 5394 + /onetime@6.0.0: 5395 + resolution: {integrity: sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==} 5396 + engines: {node: '>=12'} 5397 + dependencies: 5398 + mimic-fn: 4.0.0 5399 + dev: true 5400 + 5401 + /open@9.1.0: 5402 + resolution: {integrity: sha512-OS+QTnw1/4vrf+9hh1jc1jnYjzSG4ttTBB8UxOwAnInG3Uo4ssetzC1ihqaIHjLJnA5GGlRl6QlZXOTQhRBUvg==} 5403 + engines: {node: '>=14.16'} 5404 + dependencies: 5405 + default-browser: 4.0.0 5406 + define-lazy-prop: 3.0.0 5407 + is-inside-container: 1.0.0 5408 + is-wsl: 2.2.0 5409 + dev: true 5410 + 4925 5411 /optionator@0.9.3: 4926 5412 resolution: {integrity: sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg==} 4927 5413 engines: {node: '>= 0.8.0'} ··· 4941 5427 yocto-queue: 0.1.0 4942 5428 dev: true 4943 5429 4944 - /p-limit@4.0.0: 4945 - resolution: {integrity: sha512-5b0R4txpzjPWVw/cXXUResoD4hb6U/x9BH08L7nw+GN1sezDzPdxeRvpc9c433fZhBan/wusjbCsqwqm4EIBIQ==} 4946 - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} 5430 + /p-limit@5.0.0: 5431 + resolution: {integrity: sha512-/Eaoq+QyLSiXQ4lyYV23f14mZRQcXnxfHrN0vCai+ak9G0pp9iEQukIIZq5NccEvwRB8PUnZT0KsOoDCINS1qQ==} 5432 + engines: {node: '>=18'} 4947 5433 dependencies: 4948 5434 yocto-queue: 1.0.0 4949 5435 dev: true ··· 4989 5475 engines: {node: '>=8'} 4990 5476 dev: true 4991 5477 5478 + /path-key@4.0.0: 5479 + resolution: {integrity: sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==} 5480 + engines: {node: '>=12'} 5481 + dev: true 5482 + 4992 5483 /path-parse@1.0.7: 4993 5484 resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==} 4994 5485 dev: true ··· 5001 5492 minipass: 7.0.3 5002 5493 dev: true 5003 5494 5004 - /path-to-regexp@1.8.0: 5005 - resolution: {integrity: sha512-n43JRhlUKUAlibEJhPeir1ncUID16QnEjNpwzNdO3Lm4ywrBpBZ5oLD0I6br9evr1Y9JTqwRtAh7JLoOzAQdVA==} 5006 - dependencies: 5007 - isarray: 0.0.1 5008 - dev: false 5009 - 5010 5495 /path-type@4.0.0: 5011 5496 resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==} 5012 5497 engines: {node: '>=8'} ··· 5022 5507 5023 5508 /picocolors@1.0.0: 5024 5509 resolution: {integrity: sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==} 5025 - dev: true 5026 5510 5027 5511 /picomatch@2.3.1: 5028 5512 resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} 5029 5513 engines: {node: '>=8.6'} 5030 - dev: true 5031 5514 5032 5515 /pify@2.3.0: 5033 5516 resolution: {integrity: sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==} ··· 5043 5526 resolution: {integrity: sha512-nN7pYi0AQqJnoLPC9eHFQ8AcyaixBUOwvqc5TDnIKCMEE6I0y8P7OKA7fPexsXGCGxQDl/cmrLAp26LhcwxZ4A==} 5044 5527 dependencies: 5045 5528 jsonc-parser: 3.2.0 5046 - mlly: 1.4.1 5529 + mlly: 1.4.2 5047 5530 pathe: 1.1.1 5048 5531 dev: true 5049 5532 5050 - /postcss-import@15.1.0(postcss@8.4.31): 5533 + /postcss-import@15.1.0(postcss@8.4.32): 5051 5534 resolution: {integrity: sha512-hpr+J05B2FVYUAXHeK1YyI267J/dDDhMU6B6civm8hSY1jYJnBXxzKDKDswzJmtLHryrjhnDjqqp/49t8FALew==} 5052 5535 engines: {node: '>=14.0.0'} 5053 5536 peerDependencies: 5054 5537 postcss: '>=8.4.31' 5055 5538 dependencies: 5056 - postcss: 8.4.31 5539 + postcss: 8.4.32 5057 5540 postcss-value-parser: 4.2.0 5058 5541 read-cache: 1.0.0 5059 5542 resolve: 1.22.4 5060 5543 dev: true 5061 5544 5062 - /postcss-js@4.0.1(postcss@8.4.31): 5545 + /postcss-js@4.0.1(postcss@8.4.32): 5063 5546 resolution: {integrity: sha512-dDLF8pEO191hJMtlHFPRa8xsizHaM82MLfNkUHdUtVEV3tgTp5oj+8qbEqYM57SLfc74KSbw//4SeJma2LRVIw==} 5064 5547 engines: {node: ^12 || ^14 || >= 16} 5065 5548 peerDependencies: 5066 5549 postcss: '>=8.4.31' 5067 5550 dependencies: 5068 5551 camelcase-css: 2.0.1 5069 - postcss: 8.4.31 5552 + postcss: 8.4.32 5070 5553 dev: true 5071 5554 5072 - /postcss-load-config@4.0.1(postcss@8.4.31): 5555 + /postcss-load-config@4.0.1(postcss@8.4.32): 5073 5556 resolution: {integrity: sha512-vEJIc8RdiBRu3oRAI0ymerOn+7rPuMvRXslTvZUKZonDHFIczxztIyJ1urxM1x9JXEikvpWWTUUqal5j/8QgvA==} 5074 5557 engines: {node: '>= 14'} 5075 5558 peerDependencies: ··· 5082 5565 optional: true 5083 5566 dependencies: 5084 5567 lilconfig: 2.1.0 5085 - postcss: 8.4.31 5568 + postcss: 8.4.32 5086 5569 yaml: 2.3.2 5087 5570 dev: true 5088 5571 5089 - /postcss-nested@6.0.1(postcss@8.4.31): 5572 + /postcss-nested@6.0.1(postcss@8.4.32): 5090 5573 resolution: {integrity: sha512-mEp4xPMi5bSWiMbsgoPfcP74lsWLHkQbZc3sY+jWYd65CUwXrUaTp0fmNpa01ZcETKlIgUdFN/MpS2xZtqL9dQ==} 5091 5574 engines: {node: '>=12.0'} 5092 5575 peerDependencies: 5093 5576 postcss: '>=8.4.31' 5094 5577 dependencies: 5095 - postcss: 8.4.31 5578 + postcss: 8.4.32 5096 5579 postcss-selector-parser: 6.0.13 5097 5580 dev: true 5098 5581 5099 - /postcss-rtl@2.0.0(postcss@8.4.31): 5582 + /postcss-rtl@2.0.0(postcss@8.4.32): 5100 5583 resolution: {integrity: sha512-vFu78CvaGY9BafWRHNgDm6OjUxzRCWWCrp+KtnyXdgwibLwb/j5ls8Z/ubvOsk9B/Q2NLwSPrXRARKMaa9RBmA==} 5101 5584 engines: {node: '>=14.0.0'} 5102 5585 peerDependencies: 5103 5586 postcss: '>=8.4.31' 5104 5587 dependencies: 5105 - postcss: 8.4.31 5588 + postcss: 8.4.32 5106 5589 rtlcss: 4.0.0 5107 5590 dev: true 5108 5591 5109 - /postcss-rtlcss@4.0.9(postcss@8.4.31): 5592 + /postcss-rtlcss@4.0.9(postcss@8.4.32): 5110 5593 resolution: {integrity: sha512-dCNKEf+FgTv+EA3XI8ysg2RnpS5s3/iZmU+9qpCNFxHU/BhK+4hz7jyCsCAfo0CLnDrMPtaQENhwb+EGm1wh7Q==} 5111 5594 engines: {node: '>=18.0.0'} 5112 5595 peerDependencies: 5113 5596 postcss: '>=8.4.31' 5114 5597 dependencies: 5115 - postcss: 8.4.31 5598 + postcss: 8.4.32 5116 5599 rtlcss: 4.1.1 5117 5600 dev: true 5118 5601 ··· 5128 5611 resolution: {integrity: sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==} 5129 5612 dev: true 5130 5613 5131 - /postcss@8.4.31: 5132 - resolution: {integrity: sha512-PS08Iboia9mts/2ygV3eLpY5ghnUcfLV/EXTOW1E2qYxJKGGBUtNjN76FYHnMs36RmARn41bC0AZmn+rR0OVpQ==} 5614 + /postcss@8.4.32: 5615 + resolution: {integrity: sha512-D/kj5JNu6oo2EIy+XL/26JEDTlIbB8hw85G8StOE6L74RQAVVP5rej6wxCNqyMbR4RkPfqvezVbPw81Ngd6Kcw==} 5133 5616 engines: {node: ^10 || ^12 || >=14} 5134 5617 dependencies: 5135 - nanoid: 3.3.6 5618 + nanoid: 3.3.7 5136 5619 picocolors: 1.0.0 5137 5620 source-map-js: 1.0.2 5138 5621 dev: true ··· 5149 5632 fast-diff: 1.3.0 5150 5633 dev: true 5151 5634 5152 - /prettier-plugin-tailwindcss@0.1.13(prettier@2.8.8): 5153 - resolution: {integrity: sha512-/EKQURUrxLu66CMUg4+1LwGdxnz8of7IDvrSLqEtDqhLH61SAlNNUSr90UTvZaemujgl3OH/VHg+fyGltrNixw==} 5154 - engines: {node: '>=12.17.0'} 5635 + /prettier-plugin-tailwindcss@0.5.9(prettier@3.1.1): 5636 + resolution: {integrity: sha512-9x3t1s2Cjbut2QiP+O0mDqV3gLXTe2CgRlQDgucopVkUdw26sQi53p/q4qvGxMLBDfk/dcTV57Aa/zYwz9l8Ew==} 5637 + engines: {node: '>=14.21.3'} 5155 5638 peerDependencies: 5156 - prettier: '>=2.2.0' 5639 + '@ianvs/prettier-plugin-sort-imports': '*' 5640 + '@prettier/plugin-pug': '*' 5641 + '@shopify/prettier-plugin-liquid': '*' 5642 + '@trivago/prettier-plugin-sort-imports': '*' 5643 + prettier: ^3.0 5644 + prettier-plugin-astro: '*' 5645 + prettier-plugin-css-order: '*' 5646 + prettier-plugin-import-sort: '*' 5647 + prettier-plugin-jsdoc: '*' 5648 + prettier-plugin-marko: '*' 5649 + prettier-plugin-organize-attributes: '*' 5650 + prettier-plugin-organize-imports: '*' 5651 + prettier-plugin-style-order: '*' 5652 + prettier-plugin-svelte: '*' 5653 + prettier-plugin-twig-melody: '*' 5654 + peerDependenciesMeta: 5655 + '@ianvs/prettier-plugin-sort-imports': 5656 + optional: true 5657 + '@prettier/plugin-pug': 5658 + optional: true 5659 + '@shopify/prettier-plugin-liquid': 5660 + optional: true 5661 + '@trivago/prettier-plugin-sort-imports': 5662 + optional: true 5663 + prettier-plugin-astro: 5664 + optional: true 5665 + prettier-plugin-css-order: 5666 + optional: true 5667 + prettier-plugin-import-sort: 5668 + optional: true 5669 + prettier-plugin-jsdoc: 5670 + optional: true 5671 + prettier-plugin-marko: 5672 + optional: true 5673 + prettier-plugin-organize-attributes: 5674 + optional: true 5675 + prettier-plugin-organize-imports: 5676 + optional: true 5677 + prettier-plugin-style-order: 5678 + optional: true 5679 + prettier-plugin-svelte: 5680 + optional: true 5681 + prettier-plugin-twig-melody: 5682 + optional: true 5157 5683 dependencies: 5158 - prettier: 2.8.8 5684 + prettier: 3.1.1 5159 5685 dev: true 5160 5686 5161 - /prettier@2.8.8: 5162 - resolution: {integrity: sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q==} 5163 - engines: {node: '>=10.13.0'} 5687 + /prettier@3.1.1: 5688 + resolution: {integrity: sha512-22UbSzg8luF4UuZtzgiUOfcGM8s4tjBv6dJRT7j275NXsy2jb4aJa4NNveul5x4eqlF1wuhuR2RElK71RvmVaw==} 5689 + engines: {node: '>=14'} 5164 5690 hasBin: true 5165 5691 dev: true 5166 5692 ··· 5174 5700 engines: {node: ^14.13.1 || >=16.0.0} 5175 5701 dev: true 5176 5702 5177 - /pretty-format@27.5.1: 5178 - resolution: {integrity: sha512-Qb1gy5OrP5+zDf2Bvnzdl3jsTf1qXVMazbvCoKhtKqVs4/YK4ozX4gKQJJVyNe+cajNPn0KoC0MC3FUmaHWEmQ==} 5179 - engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} 5703 + /pretty-format@29.7.0: 5704 + resolution: {integrity: sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==} 5705 + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} 5180 5706 dependencies: 5181 - ansi-regex: 5.0.1 5707 + '@jest/schemas': 29.6.3 5182 5708 ansi-styles: 5.2.0 5183 - react-is: 17.0.2 5709 + react-is: 18.2.0 5184 5710 dev: true 5185 5711 5186 5712 /prop-types@15.8.1: ··· 5199 5725 engines: {node: '>=6'} 5200 5726 dev: true 5201 5727 5728 + /punycode@2.3.1: 5729 + resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==} 5730 + engines: {node: '>=6'} 5731 + dev: true 5732 + 5202 5733 /querystringify@2.2.0: 5203 5734 resolution: {integrity: sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==} 5204 5735 dev: true ··· 5213 5744 safe-buffer: 5.2.1 5214 5745 dev: true 5215 5746 5216 - /react-dom@17.0.2(react@17.0.2): 5217 - resolution: {integrity: sha512-s4h96KtLDUQlsENhMn1ar8t2bEa+q/YAtj8pPPdIjPDGBDIVNsrD9aXNWqspUe6AzKCIG0C1HZZLqLV7qpOBGA==} 5747 + /react-dom@18.2.0(react@18.2.0): 5748 + resolution: {integrity: sha512-6IMTriUmvsjHUjNtEDudZfuDQUoWXVxKHhlEGSk81n4YFS+r/Kl99wXiwlVXtPBtJenozv2P+hxDsw9eA7Xo6g==} 5218 5749 peerDependencies: 5219 - react: 17.0.2 5750 + react: ^18.2.0 5220 5751 dependencies: 5221 5752 loose-envify: 1.4.0 5222 - object-assign: 4.1.1 5223 - react: 17.0.2 5224 - scheduler: 0.20.2 5753 + react: 18.2.0 5754 + scheduler: 0.23.0 5225 5755 dev: false 5226 5756 5227 5757 /react-fast-compare@3.2.2: ··· 5232 5762 resolution: {integrity: sha512-ZKS7PGNFqqMd3PJ6+C2Jtz/o1iU9ggiy8Y8nUeksgVuvNISbmrQtJiZNvC/TjDsqD0QlU5Wkgs7i+w9+OjHhhQ==} 5233 5763 dev: false 5234 5764 5235 - /react-google-recaptcha-v3@1.10.1(react-dom@17.0.2)(react@17.0.2): 5765 + /react-google-recaptcha-v3@1.10.1(react-dom@18.2.0)(react@18.2.0): 5236 5766 resolution: {integrity: sha512-K3AYzSE0SasTn+XvV2tq+6YaxM+zQypk9rbCgG4OVUt7Rh4ze9basIKefoBz9sC0CNslJj9N1uwTTgRMJQbQJQ==} 5237 5767 peerDependencies: 5238 5768 react: ^16.3 || ^17.0 || ^18.0 5239 5769 react-dom: ^17.0 || ^18.0 5240 5770 dependencies: 5241 5771 hoist-non-react-statics: 3.3.2 5242 - react: 17.0.2 5243 - react-dom: 17.0.2(react@17.0.2) 5772 + react: 18.2.0 5773 + react-dom: 18.2.0(react@18.2.0) 5244 5774 dev: false 5245 5775 5246 - /react-helmet-async@1.3.0(react-dom@17.0.2)(react@17.0.2): 5247 - resolution: {integrity: sha512-9jZ57/dAn9t3q6hneQS0wukqC2ENOBgMNVEhb/ZG9ZSxUetzVIw4iAmEU38IaVg3QGYauQPhSeUTuIUtFglWpg==} 5776 + /react-helmet-async@2.0.4(react-dom@18.2.0)(react@18.2.0): 5777 + resolution: {integrity: sha512-yxjQMWposw+akRfvpl5+8xejl4JtUlHnEBcji6u8/e6oc7ozT+P9PNTWMhCbz2y9tc5zPegw2BvKjQA+NwdEjQ==} 5248 5778 peerDependencies: 5249 5779 react: ^16.6.0 || ^17.0.0 || ^18.0.0 5250 5780 react-dom: ^16.6.0 || ^17.0.0 || ^18.0.0 5251 5781 dependencies: 5252 - '@babel/runtime': 7.22.11 5253 5782 invariant: 2.2.4 5254 - prop-types: 15.8.1 5255 - react: 17.0.2 5256 - react-dom: 17.0.2(react@17.0.2) 5783 + react: 18.2.0 5784 + react-dom: 18.2.0(react@18.2.0) 5257 5785 react-fast-compare: 3.2.2 5258 5786 shallowequal: 1.1.0 5259 5787 dev: false 5260 5788 5261 - /react-i18next@12.3.1(i18next@22.5.1)(react-dom@17.0.2)(react@17.0.2): 5262 - resolution: {integrity: sha512-5v8E2XjZDFzK7K87eSwC7AJcAkcLt5xYZ4+yTPDAW1i7C93oOY1dnr4BaQM7un4Hm+GmghuiPvevWwlca5PwDA==} 5789 + /react-i18next@14.0.0(i18next@23.7.11)(react-dom@18.2.0)(react@18.2.0): 5790 + resolution: {integrity: sha512-OCrS8rHNAmnr8ggGRDxjakzihrMW7HCbsplduTm3EuuQ6fyvWGT41ksZpqbduYoqJurBmEsEVZ1pILSUWkHZng==} 5263 5791 peerDependencies: 5264 - i18next: '>= 19.0.0' 5792 + i18next: '>= 23.2.3' 5265 5793 react: '>= 16.8.0' 5266 5794 react-dom: '*' 5267 5795 react-native: '*' ··· 5273 5801 dependencies: 5274 5802 '@babel/runtime': 7.22.11 5275 5803 html-parse-stringify: 3.0.1 5276 - i18next: 22.5.1 5277 - react: 17.0.2 5278 - react-dom: 17.0.2(react@17.0.2) 5804 + i18next: 23.7.11 5805 + react: 18.2.0 5806 + react-dom: 18.2.0(react@18.2.0) 5279 5807 dev: false 5280 5808 5281 5809 /react-is@16.13.1: 5282 5810 resolution: {integrity: sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==} 5283 5811 5284 - /react-is@17.0.2: 5285 - resolution: {integrity: sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==} 5812 + /react-is@18.2.0: 5813 + resolution: {integrity: sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==} 5286 5814 dev: true 5815 + 5816 + /react-lazy-with-preload@2.2.1: 5817 + resolution: {integrity: sha512-ONSb8gizLE5jFpdHAclZ6EAAKuFX2JydnFXPPPjoUImZlLjGtKzyBS8SJgJq7CpLgsGKh9QCZdugJyEEOVC16Q==} 5818 + dev: false 5287 5819 5288 5820 /react-refresh@0.14.0: 5289 5821 resolution: {integrity: sha512-wViHqhAd8OHeLS/IRMJjTSDHF3U9eWi62F/MledQGPdJGDhodXJ9PBLNGr6WWL7qlH12Mt3TyTpbS+hGXMjCzQ==} 5290 5822 engines: {node: '>=0.10.0'} 5291 5823 dev: true 5292 5824 5293 - /react-router-dom@5.3.4(react@17.0.2): 5294 - resolution: {integrity: sha512-m4EqFMHv/Ih4kpcBCONHbkT68KoAeHN4p3lAGoNryfHi0dMy0kCzEZakiKRsvg5wHZ/JLrLW8o8KomWiz/qbYQ==} 5825 + /react-router-dom@6.21.1(react-dom@18.2.0)(react@18.2.0): 5826 + resolution: {integrity: sha512-QCNrtjtDPwHDO+AO21MJd7yIcr41UetYt5jzaB9Y1UYaPTCnVuJq6S748g1dE11OQlCFIQg+RtAA1SEZIyiBeA==} 5827 + engines: {node: '>=14.0.0'} 5295 5828 peerDependencies: 5296 - react: '>=15' 5829 + react: '>=16.8' 5830 + react-dom: '>=16.8' 5297 5831 dependencies: 5298 - '@babel/runtime': 7.22.11 5299 - history: 4.10.1 5300 - loose-envify: 1.4.0 5301 - prop-types: 15.8.1 5302 - react: 17.0.2 5303 - react-router: 5.3.4(react@17.0.2) 5304 - tiny-invariant: 1.3.1 5305 - tiny-warning: 1.0.3 5832 + '@remix-run/router': 1.14.1 5833 + react: 18.2.0 5834 + react-dom: 18.2.0(react@18.2.0) 5835 + react-router: 6.21.1(react@18.2.0) 5306 5836 dev: false 5307 5837 5308 - /react-router@5.3.4(react@17.0.2): 5309 - resolution: {integrity: sha512-Ys9K+ppnJah3QuaRiLxk+jDWOR1MekYQrlytiXxC1RyfbdsZkS5pvKAzCCr031xHixZwpnsYNT5xysdFHQaYsA==} 5838 + /react-router@6.21.1(react@18.2.0): 5839 + resolution: {integrity: sha512-W0l13YlMTm1YrpVIOpjCADJqEUpz1vm+CMo47RuFX4Ftegwm6KOYsL5G3eiE52jnJpKvzm6uB/vTKTPKM8dmkA==} 5840 + engines: {node: '>=14.0.0'} 5310 5841 peerDependencies: 5311 - react: '>=15' 5842 + react: '>=16.8' 5312 5843 dependencies: 5313 - '@babel/runtime': 7.22.11 5314 - history: 4.10.1 5315 - hoist-non-react-statics: 3.3.2 5316 - loose-envify: 1.4.0 5317 - path-to-regexp: 1.8.0 5318 - prop-types: 15.8.1 5319 - react: 17.0.2 5320 - react-is: 16.13.1 5321 - tiny-invariant: 1.3.1 5322 - tiny-warning: 1.0.3 5844 + '@remix-run/router': 1.14.1 5845 + react: 18.2.0 5323 5846 dev: false 5324 5847 5325 - /react-sticky-el@2.1.0(react-dom@17.0.2)(react@17.0.2): 5848 + /react-sticky-el@2.1.0(react-dom@18.2.0)(react@18.2.0): 5326 5849 resolution: {integrity: sha512-oo+a2GedF4QMfCfm20e9gD+RuuQp/ngvwGMUXAXpST+h4WnmKhuv7x6MQ4X/e3AHiLYgE0zDyJo1Pzo8m51KpA==} 5327 5850 peerDependencies: 5328 5851 react: '>=16.3.0' 5329 5852 react-dom: '>=16.3.0' 5330 5853 dependencies: 5331 - react: 17.0.2 5332 - react-dom: 17.0.2(react@17.0.2) 5854 + react: 18.2.0 5855 + react-dom: 18.2.0(react@18.2.0) 5333 5856 dev: false 5334 5857 5335 - /react-turnstile@1.1.2(react-dom@17.0.2)(react@17.0.2): 5858 + /react-turnstile@1.1.2(react-dom@18.2.0)(react@18.2.0): 5336 5859 resolution: {integrity: sha512-wfhSf4JtXlmLRkfxMryU8yEeCbh401muKoInhx+TegYwP8RprUW5XPZa8WnCNZiYpMy1i6IXAb1Ar7xj5HxJag==} 5337 5860 peerDependencies: 5338 5861 react: '>= 17.0.0' 5339 5862 react-dom: '>= 17.0.0' 5340 5863 dependencies: 5341 - react: 17.0.2 5342 - react-dom: 17.0.2(react@17.0.2) 5864 + react: 18.2.0 5865 + react-dom: 18.2.0(react@18.2.0) 5343 5866 dev: false 5344 5867 5345 - /react-universal-interface@0.6.2(react@17.0.2)(tslib@2.6.2): 5868 + /react-universal-interface@0.6.2(react@18.2.0)(tslib@2.6.2): 5346 5869 resolution: {integrity: sha512-dg8yXdcQmvgR13RIlZbTRQOoUrDciFVoSBZILwjE2LFISxZZ8loVJKAkuzswl5js8BHda79bIb2b84ehU8IjXw==} 5347 5870 peerDependencies: 5348 5871 react: '*' 5349 5872 tslib: '*' 5350 5873 dependencies: 5351 - react: 17.0.2 5874 + react: 18.2.0 5352 5875 tslib: 2.6.2 5353 5876 dev: false 5354 5877 5355 - /react-use@17.4.0(react-dom@17.0.2)(react@17.0.2): 5356 - resolution: {integrity: sha512-TgbNTCA33Wl7xzIJegn1HndB4qTS9u03QUwyNycUnXaweZkE4Kq2SB+Yoxx8qbshkZGYBDvUXbXWRUmQDcZZ/Q==} 5878 + /react-use@17.4.2(react-dom@18.2.0)(react@18.2.0): 5879 + resolution: {integrity: sha512-1jPtmWLD8OJJNYCdYLJEH/HM+bPDfJuyGwCYeJFgPmWY8ttwpgZnW5QnzgM55CYUByUiTjHxsGOnEpLl6yQaoQ==} 5357 5880 peerDependencies: 5358 - react: ^16.8.0 || ^17.0.0 || ^18.0.0 5359 - react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 5881 + react: '*' 5882 + react-dom: '*' 5360 5883 dependencies: 5361 5884 '@types/js-cookie': 2.2.7 5362 5885 '@xobotyi/scrollbar-width': 1.9.5 ··· 5364 5887 fast-deep-equal: 3.1.3 5365 5888 fast-shallow-equal: 1.0.0 5366 5889 js-cookie: 2.2.1 5367 - nano-css: 5.3.5(react-dom@17.0.2)(react@17.0.2) 5368 - react: 17.0.2 5369 - react-dom: 17.0.2(react@17.0.2) 5370 - react-universal-interface: 0.6.2(react@17.0.2)(tslib@2.6.2) 5890 + nano-css: 5.6.1(react-dom@18.2.0)(react@18.2.0) 5891 + react: 18.2.0 5892 + react-dom: 18.2.0(react@18.2.0) 5893 + react-universal-interface: 0.6.2(react@18.2.0)(tslib@2.6.2) 5371 5894 resize-observer-polyfill: 1.5.1 5372 5895 screenfull: 5.2.0 5373 5896 set-harmonic-interval: 1.0.1 ··· 5376 5899 tslib: 2.6.2 5377 5900 dev: false 5378 5901 5379 - /react@17.0.2: 5380 - resolution: {integrity: sha512-gnhPt75i/dq/z3/6q/0asP78D0u592D5L1pd7M8P+dck6Fu/jJeL6iVVK23fptSUZj8Vjf++7wXA8UNclGQcbA==} 5902 + /react@18.2.0: 5903 + resolution: {integrity: sha512-/3IjMdb2L9QbBdWiW5e3P2/npwMBaU9mHCSCUzNln0ZCYbcfTsGbTJrU/kGemdH2IWmB2ioZ+zkxtmq6g09fGQ==} 5381 5904 engines: {node: '>=0.10.0'} 5382 5905 dependencies: 5383 5906 loose-envify: 1.4.0 5384 - object-assign: 4.1.1 5385 5907 dev: false 5386 5908 5387 5909 /read-cache@1.0.0: ··· 5395 5917 engines: {node: '>=8.10.0'} 5396 5918 dependencies: 5397 5919 picomatch: 2.3.1 5920 + 5921 + /reflect.getprototypeof@1.0.4: 5922 + resolution: {integrity: sha512-ECkTw8TmJwW60lOTR+ZkODISW6RQ8+2CL3COqtiJKLd6MmB45hN51HprHFziKLGkAuTGQhBb91V8cy+KHlaCjw==} 5923 + engines: {node: '>= 0.4'} 5924 + dependencies: 5925 + call-bind: 1.0.2 5926 + define-properties: 1.2.1 5927 + es-abstract: 1.22.1 5928 + get-intrinsic: 1.2.1 5929 + globalthis: 1.0.3 5930 + which-builtin-type: 1.1.3 5398 5931 dev: true 5399 5932 5400 5933 /regenerate-unicode-properties@10.1.0: ··· 5463 5996 engines: {node: '>=4'} 5464 5997 dev: true 5465 5998 5466 - /resolve-pathname@3.0.0: 5467 - resolution: {integrity: sha512-C7rARubxI8bXFNB/hqcp/4iUeIXJhJZvFPFPiSPRnhU5UPxzMFIl+2E6yY6c4k9giDJAhtV+enfA+G89N6Csng==} 5468 - dev: false 5999 + /resolve-pkg-maps@1.0.0: 6000 + resolution: {integrity: sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==} 6001 + dev: true 5469 6002 5470 6003 /resolve@1.22.4: 5471 6004 resolution: {integrity: sha512-PXNdCiPqDqeUou+w1C2eTQbNfxKSuMxqTCuvlmmMsk1NWHL5fRrhY6Pl0qEYYc6+QqGClco1Qj8XnjPego4wfg==} ··· 5503 6036 peerDependencies: 5504 6037 rollup: ^2.0.0 5505 6038 dependencies: 5506 - '@babel/code-frame': 7.22.13 6039 + '@babel/code-frame': 7.23.5 5507 6040 jest-worker: 26.6.2 5508 6041 rollup: 2.79.1 5509 6042 serialize-javascript: 4.0.0 ··· 5518 6051 fsevents: 2.3.3 5519 6052 dev: true 5520 6053 5521 - /rollup@3.28.1: 5522 - resolution: {integrity: sha512-R9OMQmIHJm9znrU3m3cpE8uhN0fGdXiawME7aZIpQqvpS/85+Vt1Hq1/yVIcYfOmaQiHjvXkQAoJukvLpau6Yw==} 6054 + /rollup@3.29.4: 6055 + resolution: {integrity: sha512-oWzmBZwvYrU0iJHtDmhsm662rC15FRXmcjCk1xD771dFDx5jJ02ufAQQTn0etB2emNk4J9EZg/yWKpsn9BWGRw==} 5523 6056 engines: {node: '>=14.18.0', npm: '>=8.0.0'} 5524 6057 hasBin: true 5525 6058 optionalDependencies: 5526 6059 fsevents: 2.3.3 6060 + dev: false 6061 + 6062 + /rollup@4.9.1: 6063 + resolution: {integrity: sha512-pgPO9DWzLoW/vIhlSoDByCzcpX92bKEorbgXuZrqxByte3JFk2xSW2JEeAcyLc9Ru9pqcNNW+Ob7ntsk2oT/Xw==} 6064 + engines: {node: '>=18.0.0', npm: '>=8.0.0'} 6065 + hasBin: true 6066 + optionalDependencies: 6067 + '@rollup/rollup-android-arm-eabi': 4.9.1 6068 + '@rollup/rollup-android-arm64': 4.9.1 6069 + '@rollup/rollup-darwin-arm64': 4.9.1 6070 + '@rollup/rollup-darwin-x64': 4.9.1 6071 + '@rollup/rollup-linux-arm-gnueabihf': 4.9.1 6072 + '@rollup/rollup-linux-arm64-gnu': 4.9.1 6073 + '@rollup/rollup-linux-arm64-musl': 4.9.1 6074 + '@rollup/rollup-linux-riscv64-gnu': 4.9.1 6075 + '@rollup/rollup-linux-x64-gnu': 4.9.1 6076 + '@rollup/rollup-linux-x64-musl': 4.9.1 6077 + '@rollup/rollup-win32-arm64-msvc': 4.9.1 6078 + '@rollup/rollup-win32-ia32-msvc': 4.9.1 6079 + '@rollup/rollup-win32-x64-msvc': 4.9.1 6080 + fsevents: 2.3.3 5527 6081 dev: true 5528 6082 5529 6083 /rrweb-cssom@0.6.0: ··· 5543 6097 dependencies: 5544 6098 escalade: 3.1.1 5545 6099 picocolors: 1.0.0 5546 - postcss: 8.4.31 6100 + postcss: 8.4.32 5547 6101 strip-json-comments: 3.1.1 5548 6102 dev: true 5549 6103 ··· 5554 6108 dependencies: 5555 6109 escalade: 3.1.1 5556 6110 picocolors: 1.0.0 5557 - postcss: 8.4.31 6111 + postcss: 8.4.32 5558 6112 strip-json-comments: 3.1.1 5559 6113 dev: true 5560 6114 6115 + /run-applescript@5.0.0: 6116 + resolution: {integrity: sha512-XcT5rBksx1QdIhlFOCtgZkB99ZEouFZ1E2Kc2LHqNW13U3/74YGdkQRmThTwxy4QIyookibDKYZOPqX//6BlAg==} 6117 + engines: {node: '>=12'} 6118 + dependencies: 6119 + execa: 5.1.1 6120 + dev: true 6121 + 5561 6122 /run-parallel@1.2.0: 5562 6123 resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} 5563 6124 dependencies: ··· 5574 6135 isarray: 2.0.5 5575 6136 dev: true 5576 6137 6138 + /safe-array-concat@1.0.1: 6139 + resolution: {integrity: sha512-6XbUAseYE2KtOuGueyeobCySj9L4+66Tn6KQMOPQJrAJEowYKW/YR/MGJZl7FdydUdaFu4LYyDZjxf4/Nmo23Q==} 6140 + engines: {node: '>=0.4'} 6141 + dependencies: 6142 + call-bind: 1.0.2 6143 + get-intrinsic: 1.2.1 6144 + has-symbols: 1.0.3 6145 + isarray: 2.0.5 6146 + dev: true 6147 + 5577 6148 /safe-buffer@5.2.1: 5578 6149 resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==} 5579 6150 dev: true ··· 5597 6168 xmlchars: 2.2.0 5598 6169 dev: true 5599 6170 5600 - /scheduler@0.20.2: 5601 - resolution: {integrity: sha512-2eWfGgAqqWFGqtdMmcL5zCMK1U8KlXv8SQFGglL3CEtd0aDVDWgeF/YoCmvln55m5zSk3J/20hTaSBeSObsQDQ==} 6171 + /scheduler@0.23.0: 6172 + resolution: {integrity: sha512-CtuThmgHNg7zIZWAXi3AsyIzA3n4xx7aNyjwC2VJldO2LMVDhFK+63xGqq6CsJH4rTAt6/M+N4GhZiDYPx9eUw==} 5602 6173 dependencies: 5603 6174 loose-envify: 1.4.0 5604 - object-assign: 4.1.1 5605 6175 dev: false 5606 6176 5607 6177 /screenfull@5.2.0: ··· 5612 6182 /semver@6.3.1: 5613 6183 resolution: {integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==} 5614 6184 hasBin: true 5615 - dev: true 5616 6185 5617 6186 /semver@7.5.4: 5618 6187 resolution: {integrity: sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==} ··· 5626 6195 resolution: {integrity: sha512-GaNA54380uFefWghODBWEGisLZFj00nS5ACs6yHa9nLqlLpVLO8ChDGeKRjZnV4Nh4n0Qi7nhYZD/9fCPzEqkw==} 5627 6196 dependencies: 5628 6197 randombytes: 2.1.0 6198 + dev: true 6199 + 6200 + /set-function-name@2.0.1: 6201 + resolution: {integrity: sha512-tMNCiqYVkXIZgc2Hnoy2IvC/f8ezc5koaRFkCjrpWzGpCd3qbZXPzVy9MAZzK1ch/X0jvSkojys3oqJN0qCmdA==} 6202 + engines: {node: '>= 0.4'} 6203 + dependencies: 6204 + define-data-property: 1.1.1 6205 + functions-have-names: 1.2.3 6206 + has-property-descriptors: 1.0.0 5629 6207 dev: true 5630 6208 5631 6209 /set-harmonic-interval@1.0.1: ··· 5659 6237 5660 6238 /siginfo@2.0.0: 5661 6239 resolution: {integrity: sha512-ybx0WO1/8bSBLEWXZvEd7gMW3Sn3JFlW3TvX1nREbDLRNQNaeNN8WK0meBwPdAaOI7TtRRRJn/Es1zhrrCHu7g==} 6240 + dev: true 6241 + 6242 + /signal-exit@3.0.7: 6243 + resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==} 5662 6244 dev: true 5663 6245 5664 6246 /signal-exit@4.1.0: ··· 5677 6259 engines: {node: '>=8'} 5678 6260 dev: true 5679 6261 5680 - /slice-ansi@5.0.0: 5681 - resolution: {integrity: sha512-FC+lgizVPfie0kkhqUScwRu1O/lF6NOgJmlCgK+/LYxDCTk8sGelYaHDhFcDN+Sn3Cv+3VSa4Byeo+IMCzpMgQ==} 5682 - engines: {node: '>=12'} 5683 - dependencies: 5684 - ansi-styles: 6.2.1 5685 - is-fullwidth-code-point: 4.0.0 5686 - dev: true 5687 - 5688 6262 /slugify@1.6.6: 5689 6263 resolution: {integrity: sha512-h+z7HKHYXj6wJU+AnS/+IH8Uh9fdcX1Lrhg1/VMdf9PwoBQXFcXiAdsy2tSK0P6gKwJLXp02r90ahUCqHk9rrw==} 5690 6264 engines: {node: '>=8.0.0'} ··· 5721 6295 /sourcemap-codec@1.4.8: 5722 6296 resolution: {integrity: sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==} 5723 6297 deprecated: Please use @jridgewell/sourcemap-codec instead 6298 + dev: true 5724 6299 5725 6300 /stack-generator@2.0.10: 5726 6301 resolution: {integrity: sha512-mwnua/hkqM6pF4k8SnmZ2zfETsRUpWXREfA/goT8SLCV4iOFa4bzOX2nDipWAZFPTjLvQB82f5yaodMVhK0yJQ==} ··· 5751 6326 stacktrace-gps: 3.1.2 5752 6327 dev: false 5753 6328 5754 - /std-env@3.4.3: 5755 - resolution: {integrity: sha512-f9aPhy8fYBuMN+sNfakZV18U39PbalgjXG3lLB9WkaYTxijru61wb57V9wxxNthXM5Sd88ETBWi29qLAsHO52Q==} 6329 + /std-env@3.7.0: 6330 + resolution: {integrity: sha512-JPbdCEQLj1w5GilpiHAx3qJvFndqybBysA3qUOnznweH4QbNYUsW/ea8QzSrnh0vNsezMMw5bcVool8lM0gwzg==} 5756 6331 dev: true 5757 6332 5758 6333 /string-width@4.2.3: ··· 5844 6419 engines: {node: '>=10'} 5845 6420 dev: true 5846 6421 6422 + /strip-final-newline@2.0.0: 6423 + resolution: {integrity: sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==} 6424 + engines: {node: '>=6'} 6425 + dev: true 6426 + 6427 + /strip-final-newline@3.0.0: 6428 + resolution: {integrity: sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==} 6429 + engines: {node: '>=12'} 6430 + dev: true 6431 + 5847 6432 /strip-json-comments@3.1.1: 5848 6433 resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==} 5849 6434 engines: {node: '>=8'} ··· 5859 6444 resolution: {integrity: sha512-E87pIogpwUsUwXw7dNyU4QDjdgVMy52m+XEOPEKUn161cCzWjjhPSQhByfd1CcNvrOLnXQ6OnnZDwnJrz/Z4YQ==} 5860 6445 dev: false 5861 6446 5862 - /subsrt-ts@2.1.1: 5863 - resolution: {integrity: sha512-E+GiLNG4L82yRDswd4ys34OUfJLNN6ZBdtefE7ftn/WJchjvyJ9dNXuXYviNglrqiCqNyayGGUZE3v9aL7zIYg==} 6447 + /subsrt-ts@2.1.2: 6448 + resolution: {integrity: sha512-45yNlK42Z0pz4lAaNYbR5P60M2jmHl+gfAaiJxDIXsXXqoE7TkDCzl/00HgWyZXKkdIU6s8FiNtRvrlOZb+5Qg==} 5864 6449 hasBin: true 5865 6450 dev: false 5866 6451 ··· 5883 6468 engines: {node: '>=4'} 5884 6469 dependencies: 5885 6470 has-flag: 3.0.0 5886 - dev: true 5887 6471 5888 6472 /supports-color@7.2.0: 5889 6473 resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==} ··· 5901 6485 resolution: {integrity: sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==} 5902 6486 dev: true 5903 6487 6488 + /synckit@0.8.6: 6489 + resolution: {integrity: sha512-laHF2savN6sMeHCjLRkheIU4wo3Zg9Ln5YOjOo7sZ5dVQW8yF5pPE5SIw1dsPhq3TRp1jisKRCdPhfs/1WMqDA==} 6490 + engines: {node: ^14.18.0 || >=16.0.0} 6491 + dependencies: 6492 + '@pkgr/utils': 2.4.2 6493 + tslib: 2.6.2 6494 + dev: true 6495 + 5904 6496 /tabbable@6.2.0: 5905 6497 resolution: {integrity: sha512-Cat63mxsVJlzYvN51JmVXIgNoUokrIaT2zLclCXjRd8boZ0004U4KCs/sToJ75C6sdlByWxpYnb5Boif1VSFew==} 5906 6498 dev: false 5907 6499 5908 - /tailwind-scrollbar@2.1.0(tailwindcss@3.3.3): 5909 - resolution: {integrity: sha512-zpvY5mDs0130YzYjZKBiDaw32rygxk5RyJ4KmeHjGnwkvbjm/PszON1m4Bbt2DkMRIXlXsfNevykAESgURN4KA==} 6500 + /tailwind-scrollbar@3.0.5(tailwindcss@3.4.0): 6501 + resolution: {integrity: sha512-0ZwxTivevqq9BY9fRP9zDjHl7Tu+J5giBGbln+0O1R/7nHtBUKnjQcA1aTIhK7Oyjp6Uc/Dj6/dn8Dq58k5Uww==} 5910 6502 engines: {node: '>=12.13.0'} 5911 6503 peerDependencies: 5912 6504 tailwindcss: 3.x 5913 6505 dependencies: 5914 - tailwindcss: 3.3.3 6506 + tailwindcss: 3.4.0 5915 6507 dev: true 5916 6508 5917 - /tailwindcss-themer@3.1.0(tailwindcss@3.3.3): 5918 - resolution: {integrity: sha512-IfgxpCxWm5rRK3Q7aTvVyhQ/7tyyn8EJl5tFak5tS+/n8oXT7OGfv8praYepR7+IsM92waAuBDZng1HgnstrYA==} 6509 + /tailwindcss-themer@4.0.0(tailwindcss@3.4.0): 6510 + resolution: {integrity: sha512-kngKDW+z36JtjvaNziX0aesO95r8f5+3FFdANVFDt1uzNHZsL6XLla1YDK6EBAYFqPichoPDbO4lrrTyB+UAbA==} 5919 6511 peerDependencies: 5920 6512 tailwindcss: ^3.1.0 5921 6513 dependencies: ··· 5923 6515 just-unique: 4.2.0 5924 6516 lodash.merge: 4.6.2 5925 6517 lodash.mergewith: 4.6.2 5926 - tailwindcss: 3.3.3 6518 + tailwindcss: 3.4.0 5927 6519 dev: true 5928 6520 5929 - /tailwindcss@3.3.3: 5930 - resolution: {integrity: sha512-A0KgSkef7eE4Mf+nKJ83i75TMyq8HqY3qmFIJSWy8bNt0v1lG7jUcpGpoTFxAwYcWOphcTBLPPJg+bDfhDf52w==} 6521 + /tailwindcss@3.4.0: 6522 + resolution: {integrity: sha512-VigzymniH77knD1dryXbyxR+ePHihHociZbXnLZHUyzf2MMs2ZVqlUrZ3FvpXP8pno9JzmILt1sZPD19M3IxtA==} 5931 6523 engines: {node: '>=14.0.0'} 5932 6524 hasBin: true 5933 6525 dependencies: ··· 5945 6537 normalize-path: 3.0.0 5946 6538 object-hash: 3.0.0 5947 6539 picocolors: 1.0.0 5948 - postcss: 8.4.31 5949 - postcss-import: 15.1.0(postcss@8.4.31) 5950 - postcss-js: 4.0.1(postcss@8.4.31) 5951 - postcss-load-config: 4.0.1(postcss@8.4.31) 5952 - postcss-nested: 6.0.1(postcss@8.4.31) 6540 + postcss: 8.4.32 6541 + postcss-import: 15.1.0(postcss@8.4.32) 6542 + postcss-js: 4.0.1(postcss@8.4.32) 6543 + postcss-load-config: 4.0.1(postcss@8.4.32) 6544 + postcss-nested: 6.0.1(postcss@8.4.32) 5953 6545 postcss-selector-parser: 6.0.13 5954 6546 resolve: 1.22.4 5955 6547 sucrase: 3.34.0 5956 6548 transitivePeerDependencies: 5957 6549 - ts-node 6550 + dev: true 6551 + 6552 + /tapable@2.2.1: 6553 + resolution: {integrity: sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==} 6554 + engines: {node: '>=6'} 5958 6555 dev: true 5959 6556 5960 6557 /temp-dir@2.0.0: ··· 5978 6575 hasBin: true 5979 6576 dependencies: 5980 6577 '@jridgewell/source-map': 0.3.5 5981 - acorn: 8.10.0 6578 + acorn: 8.11.2 5982 6579 commander: 2.20.3 5983 6580 source-map-support: 0.5.21 5984 6581 dev: true ··· 6007 6604 6008 6605 /tiny-invariant@1.3.1: 6009 6606 resolution: {integrity: sha512-AD5ih2NlSssTCwsMznbvwMZpJ1cbhkGd2uueNxzv2jDlEeZdU04JQfRnggJQ8DrcVBGjAsCKwFBbDlVNtEMlzw==} 6607 + dev: true 6010 6608 6011 - /tiny-warning@1.0.3: 6012 - resolution: {integrity: sha512-lBN9zLN/oAf68o3zNXYrdCt1kP8WsiGW8Oo2ka41b2IM5JL/S1CTyX1rW0mb/zSuJun0ZUrDxx4sqvYS2FWzPA==} 6013 - dev: false 6014 - 6015 - /tinybench@2.5.0: 6016 - resolution: {integrity: sha512-kRwSG8Zx4tjF9ZiyH4bhaebu+EDz1BOx9hOigYHlUW4xxI/wKIUQUqo018UlU4ar6ATPBsaMrdbKZ+tmPdohFA==} 6609 + /tinybench@2.5.1: 6610 + resolution: {integrity: sha512-65NKvSuAVDP/n4CqH+a9w2kTlLReS9vhsAP06MWx+/89nMinJyB2icyl58RIcqCmIggpojIGeuJGhjU1aGMBSg==} 6017 6611 dev: true 6018 6612 6019 - /tinypool@0.3.1: 6020 - resolution: {integrity: sha512-zLA1ZXlstbU2rlpA4CIeVaqvWq41MTWqLY3FfsAXgC8+f7Pk7zroaJQxDgxn1xNudKW6Kmj4808rPFShUlIRmQ==} 6613 + /tinypool@0.8.1: 6614 + resolution: {integrity: sha512-zBTCK0cCgRROxvs9c0CGK838sPkeokNGdQVUUwHAbynHFlmyJYj825f/oRs528HaIJ97lo0pLIlDUzwN+IorWg==} 6021 6615 engines: {node: '>=14.0.0'} 6022 6616 dev: true 6023 6617 6024 - /tinyspy@1.1.1: 6025 - resolution: {integrity: sha512-UVq5AXt/gQlti7oxoIg5oi/9r0WpF7DGEVwXgqWSMmyN16+e3tl5lIvTaOpJ3TAtu5xFzWccFRM4R5NaWHF+4g==} 6618 + /tinyspy@2.2.0: 6619 + resolution: {integrity: sha512-d2eda04AN/cPOR89F7Xv5bK/jrQEhmcLFe6HFldoeO9AJtps+fqEnh486vnT/8y4bw38pSyxDcTCAq+Ks2aJTg==} 6026 6620 engines: {node: '>=14.0.0'} 6027 6621 dev: true 6028 6622 6623 + /titleize@3.0.0: 6624 + resolution: {integrity: sha512-KxVu8EYHDPBdUYdKZdKtU2aj2XfEx9AfjXxE/Aj0vT06w2icA09Vus1rh6eSu1y01akYg6BjIK/hxyLJINoMLQ==} 6625 + engines: {node: '>=12'} 6626 + dev: true 6627 + 6029 6628 /to-fast-properties@2.0.0: 6030 6629 resolution: {integrity: sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==} 6031 6630 engines: {node: '>=4'} 6032 - dev: true 6033 6631 6034 6632 /to-regex-range@5.0.1: 6035 6633 resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} 6036 6634 engines: {node: '>=8.0'} 6037 6635 dependencies: 6038 6636 is-number: 7.0.0 6039 - dev: true 6040 6637 6041 6638 /toggle-selection@1.0.6: 6042 6639 resolution: {integrity: sha512-BiZS+C1OS8g/q2RRbJmy59xpyghNBqrr6k5L/uKBGRsTfxmu3ffiRnd8mlGPUVayg8pvfi5urfnu8TU7DVOkLQ==} ··· 6059 6656 /tr46@1.0.1: 6060 6657 resolution: {integrity: sha512-dTpowEjclQ7Kgx5SdBkqRzVhERQXov8/l9Ft9dVM9fmg0W0KQSVaXX9T4i6twCPNtYiZM53lpSSUAwJbFPOHxA==} 6061 6658 dependencies: 6062 - punycode: 2.3.0 6659 + punycode: 2.3.1 6063 6660 dev: true 6064 6661 6065 - /tr46@4.1.1: 6066 - resolution: {integrity: sha512-2lv/66T7e5yNyhAAC4NaKe5nVavzuGJQVVtRYLyQ2OI8tsJ61PMLlelehb0wi2Hx6+hT/OJUWZcw8MjlSRnxvw==} 6067 - engines: {node: '>=14'} 6662 + /tr46@5.0.0: 6663 + resolution: {integrity: sha512-tk2G5R2KRwBd+ZN0zaEXpmzdKyOYksXwywulIX95MBODjSzMIuQnQ3m8JxgbhnL1LeVo7lqQKsYa1O3Htl7K5g==} 6664 + engines: {node: '>=18'} 6068 6665 dependencies: 6069 - punycode: 2.3.0 6666 + punycode: 2.3.1 6667 + dev: true 6668 + 6669 + /ts-api-utils@1.0.3(typescript@5.3.3): 6670 + resolution: {integrity: sha512-wNMeqtMz5NtwpT/UZGY5alT+VoKdSsOOP/kqHFcUW1P/VRhH2wJ48+DN2WwUliNbQ976ETwDL0Ifd2VVvgonvg==} 6671 + engines: {node: '>=16.13.0'} 6672 + peerDependencies: 6673 + typescript: '>=4.2.0' 6674 + dependencies: 6675 + typescript: 5.3.3 6070 6676 dev: true 6071 6677 6072 6678 /ts-easing@0.2.0: ··· 6077 6683 resolution: {integrity: sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==} 6078 6684 dev: true 6079 6685 6080 - /tsconfig-paths@3.14.2: 6081 - resolution: {integrity: sha512-o/9iXgCYc5L/JxCHPe3Hvh8Q/2xm5Z+p18PESBU6Ff33695QnCHBEjcytY2q19ua7Mbl/DavtBOLq+oG0RCL+g==} 6686 + /tsconfig-paths@3.15.0: 6687 + resolution: {integrity: sha512-2Ac2RgzDe/cn48GvOe3M+o82pEFewD3UPbyoUHHdKasHwJKjds4fLXWf/Ux5kATBKN20oaFGu+jbElp1pos0mg==} 6082 6688 dependencies: 6083 6689 '@types/json5': 0.0.29 6084 6690 json5: 1.0.2 ··· 6086 6692 strip-bom: 3.0.0 6087 6693 dev: true 6088 6694 6089 - /tslib@1.14.1: 6090 - resolution: {integrity: sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==} 6091 - dev: true 6092 - 6093 6695 /tslib@2.6.2: 6094 6696 resolution: {integrity: sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==} 6095 - dev: false 6096 - 6097 - /tsutils@3.21.0(typescript@4.9.5): 6098 - resolution: {integrity: sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==} 6099 - engines: {node: '>= 6'} 6100 - peerDependencies: 6101 - typescript: '>=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta' 6102 - dependencies: 6103 - tslib: 1.14.1 6104 - typescript: 4.9.5 6105 - dev: true 6106 6697 6107 6698 /type-check@0.4.0: 6108 6699 resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==} ··· 6131 6722 engines: {node: '>=10'} 6132 6723 dev: true 6133 6724 6134 - /type-fest@4.3.3: 6135 - resolution: {integrity: sha512-bxhiFii6BBv6UiSDq7uKTMyADT9unXEl3ydGefndVLxFeB44LRbT4K7OJGDYSyDrKnklCC1Pre68qT2wbUl2Aw==} 6725 + /type-fest@4.8.3: 6726 + resolution: {integrity: sha512-//BaTm14Q/gHBn09xlnKNqfI8t6bmdzx2DXYfPBNofN0WUybCEUDcbCWcTa0oF09lzLjZgPphXAsvRiMK0V6Bw==} 6136 6727 engines: {node: '>=16'} 6137 6728 dev: true 6138 6729 ··· 6178 6769 resolution: {integrity: sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g==} 6179 6770 engines: {node: '>=4.2.0'} 6180 6771 hasBin: true 6772 + dev: false 6773 + 6774 + /typescript@5.3.3: 6775 + resolution: {integrity: sha512-pXWcraxM0uxAS+tN0AG/BF2TyqmHO014Z070UsJ+pFvYuRSq8KH8DmWpnbXe0pEPDHXZV3FcAbJkijJ5oNEnWw==} 6776 + engines: {node: '>=14.17'} 6777 + hasBin: true 6778 + dev: true 6181 6779 6182 6780 /ufo@1.3.0: 6183 6781 resolution: {integrity: sha512-bRn3CsoojyNStCZe0BG0Mt4Nr/4KF+rhFlnNXybgqt5pXHNFRlqinSoQaTrGyzE4X8aHplSb+TorH+COin9Yxw==} ··· 6198 6796 has-symbols: 1.0.3 6199 6797 which-boxed-primitive: 1.0.2 6200 6798 dev: true 6799 + 6800 + /undici-types@5.26.5: 6801 + resolution: {integrity: sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==} 6201 6802 6202 6803 /unicode-canonical-property-names-ecmascript@2.0.0: 6203 6804 resolution: {integrity: sha512-yY5PpDlfVIU5+y/BSCxAJRBIS1Zc2dDG3Ujq+sR0U+JjUevW2JhocOF+soROYDSaAezOzOKuyyixhD6mBknSmQ==} ··· 6243 6844 resolution: {integrity: sha512-0HTljwp8+JBdITpoHcK1LWi7X9U2BspUmWv78UWZh7NshYhbh1nec8baY/iSbe2OQTZ2bhAtVdnr6/BTD0DKVg==} 6244 6845 dev: false 6245 6846 6847 + /unplugin@1.5.1: 6848 + resolution: {integrity: sha512-0QkvG13z6RD+1L1FoibQqnvTwVBXvS4XSPwAyinVgoOCl2jAgwzdUKmEj05o4Lt8xwQI85Hb6mSyYkcAGwZPew==} 6849 + dependencies: 6850 + acorn: 8.11.2 6851 + chokidar: 3.5.3 6852 + webpack-sources: 3.2.3 6853 + webpack-virtual-modules: 0.6.1 6854 + dev: false 6855 + 6856 + /untildify@4.0.0: 6857 + resolution: {integrity: sha512-KK8xQ1mkzZeg9inewmFVDNkg3l5LUhoq9kN6iWYB/CC9YMG8HA+c1Q8HwDe6dEX7kErrEVNVBO3fWsVq5iDgtw==} 6858 + engines: {node: '>=8'} 6859 + dev: true 6860 + 6246 6861 /upath@1.2.0: 6247 6862 resolution: {integrity: sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg==} 6248 6863 engines: {node: '>=4'} ··· 6259 6874 picocolors: 1.0.0 6260 6875 dev: true 6261 6876 6877 + /update-browserslist-db@1.0.13(browserslist@4.22.2): 6878 + resolution: {integrity: sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg==} 6879 + hasBin: true 6880 + peerDependencies: 6881 + browserslist: '>= 4.21.0' 6882 + dependencies: 6883 + browserslist: 4.22.2 6884 + escalade: 3.1.1 6885 + picocolors: 1.0.0 6886 + 6262 6887 /uri-js@4.4.1: 6263 6888 resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} 6264 6889 dependencies: ··· 6272 6897 requires-port: 1.0.0 6273 6898 dev: true 6274 6899 6275 - /use-sync-external-store@1.2.0(react@17.0.2): 6900 + /use-sync-external-store@1.2.0(react@18.2.0): 6276 6901 resolution: {integrity: sha512-eEgnFxGQ1Ife9bzYs6VLi8/4X6CObHMw9Qr9tPY43iKwsPw8xE8+EFsf/2cFZ5S3esXgpWgtSCtLNS41F+sKPA==} 6277 6902 peerDependencies: 6278 6903 react: ^16.8.0 || ^17.0.0 || ^18.0.0 6279 6904 dependencies: 6280 - react: 17.0.2 6905 + react: 18.2.0 6281 6906 dev: false 6282 6907 6283 6908 /util-deprecate@1.0.2: 6284 6909 resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==} 6285 6910 dev: true 6286 6911 6287 - /value-equal@1.0.1: 6288 - resolution: {integrity: sha512-NOJ6JZCAWr0zlxZt+xqCHNTEKOsrks2HQd4MqhP1qy4z1SkbEP467eNx6TgDKXMvUOb+OENfJCZwM+16n7fRfw==} 6289 - dev: false 6290 - 6291 - /vite-node@0.28.5(@types/node@17.0.45): 6292 - resolution: {integrity: sha512-LmXb9saMGlrMZbXTvOveJKwMTBTNUH66c8rJnQ0ZPNX+myPEol64+szRzXtV5ORb0Hb/91yq+/D3oERoyAt6LA==} 6293 - engines: {node: '>=v14.16.0'} 6912 + /vite-node@1.1.0(@types/node@20.10.5): 6913 + resolution: {integrity: sha512-jV48DDUxGLEBdHCQvxL1mEh7+naVy+nhUUUaPAZLd3FJgXuxQiewHcfeZebbJ6onDqNGkP4r3MhQ342PRlG81Q==} 6914 + engines: {node: ^18.0.0 || >=20.0.0} 6294 6915 hasBin: true 6295 6916 dependencies: 6296 6917 cac: 6.7.14 6297 6918 debug: 4.3.4 6298 - mlly: 1.4.1 6299 6919 pathe: 1.1.1 6300 6920 picocolors: 1.0.0 6301 - source-map: 0.6.1 6302 - source-map-support: 0.5.21 6303 - vite: 4.4.12(@types/node@17.0.45) 6921 + vite: 5.0.10(@types/node@20.10.5) 6304 6922 transitivePeerDependencies: 6305 6923 - '@types/node' 6306 6924 - less ··· 6312 6930 - terser 6313 6931 dev: true 6314 6932 6315 - /vite-plugin-checker@0.5.6(eslint@8.48.0)(typescript@4.9.5)(vite@4.4.12): 6316 - resolution: {integrity: sha512-ftRyON0gORUHDxcDt2BErmsikKSkfvl1i2DoP6Jt2zDO9InfvM6tqO1RkXhSjkaXEhKPea6YOnhFaZxW3BzudQ==} 6933 + /vite-plugin-checker@0.6.2(eslint@8.56.0)(typescript@5.3.3)(vite@5.0.10): 6934 + resolution: {integrity: sha512-YvvvQ+IjY09BX7Ab+1pjxkELQsBd4rPhWNw8WLBeFVxu/E7O+n6VYAqNsKdK/a2luFlX/sMpoWdGFfg4HvwdJQ==} 6317 6935 engines: {node: '>=14.16'} 6318 6936 peerDependencies: 6319 6937 eslint: '>=7' ··· 6324 6942 vite: '>=2.0.0' 6325 6943 vls: '*' 6326 6944 vti: '*' 6327 - vue-tsc: '*' 6945 + vue-tsc: '>=1.3.9' 6328 6946 peerDependenciesMeta: 6329 6947 eslint: 6330 6948 optional: true ··· 6348 6966 chalk: 4.1.2 6349 6967 chokidar: 3.5.3 6350 6968 commander: 8.3.0 6351 - eslint: 8.48.0 6969 + eslint: 8.56.0 6352 6970 fast-glob: 3.3.1 6353 6971 fs-extra: 11.1.1 6354 6972 lodash.debounce: 4.0.8 6355 6973 lodash.pick: 4.4.0 6356 6974 npm-run-path: 4.0.1 6975 + semver: 7.5.4 6357 6976 strip-ansi: 6.0.1 6358 6977 tiny-invariant: 1.3.1 6359 - typescript: 4.9.5 6360 - vite: 4.4.12(@types/node@17.0.45) 6978 + typescript: 5.3.3 6979 + vite: 5.0.10(@types/node@20.10.5) 6361 6980 vscode-languageclient: 7.0.0 6362 6981 vscode-languageserver: 7.0.0 6363 6982 vscode-languageserver-textdocument: 1.0.8 6364 6983 vscode-uri: 3.0.7 6365 6984 dev: true 6366 6985 6367 - /vite-plugin-package-version@1.0.2(vite@4.4.12): 6368 - resolution: {integrity: sha512-xCJMR0KD4rqSUwINyHJlLizio2VzYzaMrRkqC9xWaVGXgw1lIrzdD+wBUf1XDM8EhL1JoQ7aykLOfKrlZd1SoQ==} 6986 + /vite-plugin-package-version@1.1.0(vite@5.0.10): 6987 + resolution: {integrity: sha512-TPoFZXNanzcaKCIrC3e2L/TVRkkRLB6l4RPN/S7KbG7rWfyLcCEGsnXvxn6qR7fyZwXalnnSN/I9d6pSFjHpEA==} 6369 6988 peerDependencies: 6370 6989 vite: '>=2.0.0-beta.69' 6371 6990 dependencies: 6372 - vite: 4.4.12(@types/node@17.0.45) 6991 + vite: 5.0.10(@types/node@20.10.5) 6373 6992 dev: true 6374 6993 6375 - /vite-plugin-pwa@0.16.5(vite@4.4.12)(workbox-build@7.0.0)(workbox-window@7.0.0): 6376 - resolution: {integrity: sha512-Ahol4dwhMP2UHPQXkllSlXbihOaDFnvBIDPmAxoSZ1EObBUJGP4CMRyCyAVkIHjd6/H+//vH0DM2ON+XxHr81g==} 6994 + /vite-plugin-pwa@0.17.4(vite@5.0.10)(workbox-build@7.0.0)(workbox-window@7.0.0): 6995 + resolution: {integrity: sha512-j9iiyinFOYyof4Zk3Q+DtmYyDVBDAi6PuMGNGq6uGI0pw7E+LNm9e+nQ2ep9obMP/kjdWwzilqUrlfVRj9OobA==} 6377 6996 engines: {node: '>=16.0.0'} 6378 6997 peerDependencies: 6379 - vite: ^3.1.0 || ^4.0.0 6998 + vite: ^3.1.0 || ^4.0.0 || ^5.0.0 6380 6999 workbox-build: ^7.0.0 6381 7000 workbox-window: ^7.0.0 6382 7001 dependencies: 6383 7002 debug: 4.3.4 6384 - fast-glob: 3.3.1 7003 + fast-glob: 3.3.2 6385 7004 pretty-bytes: 6.1.1 6386 - vite: 4.4.12(@types/node@17.0.45) 7005 + vite: 5.0.10(@types/node@20.10.5) 6387 7006 workbox-build: 7.0.0 6388 7007 workbox-window: 7.0.0 6389 7008 transitivePeerDependencies: 6390 7009 - supports-color 6391 7010 dev: true 6392 7011 6393 - /vite-plugin-static-copy@0.16.0(vite@4.4.12): 6394 - resolution: {integrity: sha512-dMVEg5Z2SwYRgQnHZaeokvSKB4p/TOTf65JU4sP3U6ccSBsukqdtDOjpmT+xzTFHAA8WJjcS31RMLjUdWQCBzw==} 6395 - engines: {node: ^14.18.0 || >=16.0.0} 7012 + /vite-plugin-static-copy@1.0.0(vite@5.0.10): 7013 + resolution: {integrity: sha512-kMlrB3WDtC5GzFedNIPkpjnOAr8M11PfWOiUaONrUZ3AqogTsOmIhTt6w7Fh311wl8pN81ld7sfuOEogFJ9N8A==} 7014 + engines: {node: ^18.0.0 || >=20.0.0} 6396 7015 peerDependencies: 6397 - vite: ^3.0.0 || ^4.0.0 7016 + vite: ^5.0.0 6398 7017 dependencies: 6399 7018 chokidar: 3.5.3 6400 7019 fast-glob: 3.3.1 6401 7020 fs-extra: 11.1.1 6402 7021 picocolors: 1.0.0 6403 - vite: 4.4.12(@types/node@17.0.45) 7022 + vite: 5.0.10(@types/node@20.10.5) 6404 7023 dev: true 6405 7024 6406 - /vite@4.4.12(@types/node@17.0.45): 6407 - resolution: {integrity: sha512-KtPlUbWfxzGVul8Nut8Gw2Qe8sBzWY+8QVc5SL8iRFnpnrcoCaNlzO40c1R6hPmcdTwIPEDkq0Y9+27a5tVbdQ==} 6408 - engines: {node: ^14.18.0 || >=16.0.0} 7025 + /vite@5.0.10(@types/node@20.10.5): 7026 + resolution: {integrity: sha512-2P8J7WWgmc355HUMlFrwofacvr98DAjoE52BfdbwQtyLH06XKwaL/FMnmKM2crF0iX4MpmMKoDlNCB1ok7zHCw==} 7027 + engines: {node: ^18.0.0 || >=20.0.0} 6409 7028 hasBin: true 6410 7029 peerDependencies: 6411 - '@types/node': '>= 14' 7030 + '@types/node': ^18.0.0 || >=20.0.0 6412 7031 less: '*' 6413 7032 lightningcss: ^1.21.0 6414 7033 sass: '*' ··· 6431 7050 terser: 6432 7051 optional: true 6433 7052 dependencies: 6434 - '@types/node': 17.0.45 6435 - esbuild: 0.18.20 6436 - postcss: 8.4.31 6437 - rollup: 3.28.1 7053 + '@types/node': 20.10.5 7054 + esbuild: 0.19.10 7055 + postcss: 8.4.32 7056 + rollup: 4.9.1 6438 7057 optionalDependencies: 6439 7058 fsevents: 2.3.3 6440 7059 dev: true 6441 7060 6442 - /vitest@0.28.5(jsdom@21.1.2): 6443 - resolution: {integrity: sha512-pyCQ+wcAOX7mKMcBNkzDwEHRGqQvHUl0XnoHR+3Pb1hytAHISgSxv9h0gUiSiYtISXUU3rMrKiKzFYDrI6ZIHA==} 6444 - engines: {node: '>=v14.16.0'} 7061 + /vitest@1.1.0(@types/node@20.10.5)(jsdom@23.0.1): 7062 + resolution: {integrity: sha512-oDFiCrw7dd3Jf06HoMtSRARivvyjHJaTxikFxuqJjO76U436PqlVw1uLn7a8OSPrhSfMGVaRakKpA2lePdw79A==} 7063 + engines: {node: ^18.0.0 || >=20.0.0} 6445 7064 hasBin: true 6446 7065 peerDependencies: 6447 7066 '@edge-runtime/vm': '*' 6448 - '@vitest/browser': '*' 6449 - '@vitest/ui': '*' 7067 + '@types/node': ^18.0.0 || >=20.0.0 7068 + '@vitest/browser': ^1.0.0 7069 + '@vitest/ui': ^1.0.0 6450 7070 happy-dom: '*' 6451 7071 jsdom: '*' 6452 7072 peerDependenciesMeta: 6453 7073 '@edge-runtime/vm': 7074 + optional: true 7075 + '@types/node': 6454 7076 optional: true 6455 7077 '@vitest/browser': 6456 7078 optional: true ··· 6461 7083 jsdom: 6462 7084 optional: true 6463 7085 dependencies: 6464 - '@types/chai': 4.3.5 6465 - '@types/chai-subset': 1.3.3 6466 - '@types/node': 17.0.45 6467 - '@vitest/expect': 0.28.5 6468 - '@vitest/runner': 0.28.5 6469 - '@vitest/spy': 0.28.5 6470 - '@vitest/utils': 0.28.5 6471 - acorn: 8.10.0 6472 - acorn-walk: 8.2.0 7086 + '@types/node': 20.10.5 7087 + '@vitest/expect': 1.1.0 7088 + '@vitest/runner': 1.1.0 7089 + '@vitest/snapshot': 1.1.0 7090 + '@vitest/spy': 1.1.0 7091 + '@vitest/utils': 1.1.0 7092 + acorn-walk: 8.3.1 6473 7093 cac: 6.7.14 6474 - chai: 4.3.8 7094 + chai: 4.3.10 6475 7095 debug: 4.3.4 6476 - jsdom: 21.1.2 6477 - local-pkg: 0.4.3 7096 + execa: 8.0.1 7097 + jsdom: 23.0.1 7098 + local-pkg: 0.5.0 7099 + magic-string: 0.30.5 6478 7100 pathe: 1.1.1 6479 7101 picocolors: 1.0.0 6480 - source-map: 0.6.1 6481 - std-env: 3.4.3 7102 + std-env: 3.7.0 6482 7103 strip-literal: 1.3.0 6483 - tinybench: 2.5.0 6484 - tinypool: 0.3.1 6485 - tinyspy: 1.1.1 6486 - vite: 4.4.12(@types/node@17.0.45) 6487 - vite-node: 0.28.5(@types/node@17.0.45) 7104 + tinybench: 2.5.1 7105 + tinypool: 0.8.1 7106 + vite: 5.0.10(@types/node@20.10.5) 7107 + vite-node: 1.1.0(@types/node@20.10.5) 6488 7108 why-is-node-running: 2.2.2 6489 7109 transitivePeerDependencies: 6490 7110 - less ··· 6541 7161 resolution: {integrity: sha512-eOpPHogvorZRobNqJGhapa0JdwaxpjVvyBp0QIUMRMSf8ZAlqOdEquKuRmw9Qwu0qXtJIWqFtMkmvJjUZmMjVA==} 6542 7162 dev: true 6543 7163 6544 - /w3c-xmlserializer@4.0.0: 6545 - resolution: {integrity: sha512-d+BFHzbiCx6zGfz0HyQ6Rg69w9k19nviJspaj4yNscGjrHu94sVP+aRm75yEbCh+r2/yR+7q6hux9LVtbuTGBw==} 6546 - engines: {node: '>=14'} 7164 + /w3c-xmlserializer@5.0.0: 7165 + resolution: {integrity: sha512-o8qghlI8NZHU1lLPrpi2+Uq7abh4GGPpYANlalzWxyWteJOCsr/P+oPBA49TOLu5FTZO4d3F9MnWJfiMo4BkmA==} 7166 + engines: {node: '>=18'} 6547 7167 dependencies: 6548 - xml-name-validator: 4.0.0 7168 + xml-name-validator: 5.0.0 6549 7169 dev: true 6550 7170 6551 7171 /webidl-conversions@3.0.1: ··· 6561 7181 engines: {node: '>=12'} 6562 7182 dev: true 6563 7183 6564 - /whatwg-encoding@2.0.0: 6565 - resolution: {integrity: sha512-p41ogyeMUrw3jWclHWTQg1k05DSVXPLcVxRTYsXUk+ZooOCZLcoYgPZ/HL/D/N+uQPOtcp1me1WhBEaX02mhWg==} 6566 - engines: {node: '>=12'} 7184 + /webpack-sources@3.2.3: 7185 + resolution: {integrity: sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==} 7186 + engines: {node: '>=10.13.0'} 7187 + dev: false 7188 + 7189 + /webpack-virtual-modules@0.6.1: 7190 + resolution: {integrity: sha512-poXpCylU7ExuvZK8z+On3kX+S8o/2dQ/SVYueKA0D4WEMXROXgY8Ez50/bQEUmvoSMMrWcrJqCHuhAbsiwg7Dg==} 7191 + dev: false 7192 + 7193 + /whatwg-encoding@3.1.1: 7194 + resolution: {integrity: sha512-6qN4hJdMwfYBtE3YBTTHhoeuUrDBPZmbQaxWAqSALV/MeEnR5z1xd8UKud2RAkFoPkmB+hli1TZSnyi84xz1vQ==} 7195 + engines: {node: '>=18'} 6567 7196 dependencies: 6568 7197 iconv-lite: 0.6.3 6569 7198 dev: true 6570 7199 6571 - /whatwg-mimetype@3.0.0: 6572 - resolution: {integrity: sha512-nt+N2dzIutVRxARx1nghPKGv1xHikU7HKdfafKkLNLindmPU/ch3U31NOCGGA/dmPcmb1VlofO0vnKAcsm0o/Q==} 6573 - engines: {node: '>=12'} 7200 + /whatwg-mimetype@4.0.0: 7201 + resolution: {integrity: sha512-QaKxh0eNIi2mE9p2vEdzfagOKHCcj1pJ56EEHGQOVxp8r9/iszLUUV7v89x9O1p/T+NlTM5W7jW6+cz4Fq1YVg==} 7202 + engines: {node: '>=18'} 6574 7203 dev: true 6575 7204 6576 - /whatwg-url@12.0.1: 6577 - resolution: {integrity: sha512-Ed/LrqB8EPlGxjS+TrsXcpUond1mhccS3pchLhzSgPCnTimUCKj3IZE75pAs5m6heB2U2TMerKFUXheyHY+VDQ==} 6578 - engines: {node: '>=14'} 7205 + /whatwg-url@14.0.0: 7206 + resolution: {integrity: sha512-1lfMEm2IEr7RIV+f4lUNPOqfFL+pO+Xw3fJSqmjX9AbXcXcYOkCe1P6+9VBZB6n94af16NfZf+sSk0JCBZC9aw==} 7207 + engines: {node: '>=18'} 6579 7208 dependencies: 6580 - tr46: 4.1.1 7209 + tr46: 5.0.0 6581 7210 webidl-conversions: 7.0.0 6582 7211 dev: true 6583 7212 ··· 6606 7235 is-symbol: 1.0.4 6607 7236 dev: true 6608 7237 7238 + /which-builtin-type@1.1.3: 7239 + resolution: {integrity: sha512-YmjsSMDBYsM1CaFiayOVT06+KJeXf0o5M/CAd4o1lTadFAtacTUM49zoYxr/oroopFDfhvN6iEcBxUyc3gvKmw==} 7240 + engines: {node: '>= 0.4'} 7241 + dependencies: 7242 + function.prototype.name: 1.1.6 7243 + has-tostringtag: 1.0.0 7244 + is-async-function: 2.0.0 7245 + is-date-object: 1.0.5 7246 + is-finalizationregistry: 1.0.2 7247 + is-generator-function: 1.0.10 7248 + is-regex: 1.1.4 7249 + is-weakref: 1.0.2 7250 + isarray: 2.0.5 7251 + which-boxed-primitive: 1.0.2 7252 + which-collection: 1.0.1 7253 + which-typed-array: 1.1.11 7254 + dev: true 7255 + 7256 + /which-collection@1.0.1: 7257 + resolution: {integrity: sha512-W8xeTUwaln8i3K/cY1nGXzdnVZlidBcagyNFtBdD5kxnb4TvGKR7FfSIS3mYpwWS1QUCutfKz8IY8RjftB0+1A==} 7258 + dependencies: 7259 + is-map: 2.0.2 7260 + is-set: 2.0.2 7261 + is-weakmap: 2.0.1 7262 + is-weakset: 2.0.2 7263 + dev: true 7264 + 6609 7265 /which-typed-array@1.1.11: 6610 7266 resolution: {integrity: sha512-qe9UWWpkeG5yzZ0tNYxDmd7vo58HDBc39mZ0xWWpolAGADdFOzkfamWLDxkOWcvHQKVmdTyQdLD4NOfjLWTKew==} 6611 7267 engines: {node: '>= 0.4'} ··· 6656 7312 engines: {node: '>=16.0.0'} 6657 7313 dependencies: 6658 7314 '@apideck/better-ajv-errors': 0.3.6(ajv@8.12.0) 6659 - '@babel/core': 7.22.11 6660 - '@babel/preset-env': 7.22.14(@babel/core@7.22.11) 6661 - '@babel/runtime': 7.22.11 6662 - '@rollup/plugin-babel': 5.3.1(@babel/core@7.22.11)(rollup@2.79.1) 7315 + '@babel/core': 7.23.6 7316 + '@babel/preset-env': 7.23.6(@babel/core@7.23.6) 7317 + '@babel/runtime': 7.23.6 7318 + '@rollup/plugin-babel': 5.3.1(@babel/core@7.23.6)(rollup@2.79.1) 6663 7319 '@rollup/plugin-node-resolve': 11.2.1(rollup@2.79.1) 6664 7320 '@rollup/plugin-replace': 2.4.2(rollup@2.79.1) 6665 7321 '@surma/rollup-plugin-off-main-thread': 2.2.3 ··· 6806 7462 resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==} 6807 7463 dev: true 6808 7464 6809 - /ws@8.13.0: 6810 - resolution: {integrity: sha512-x9vcZYTrFPC7aSIbj7sRCYo7L/Xb8Iy+pW0ng0wt2vCJv7M9HOMy0UoN3rr+IFC7hb7vXoqS+P9ktyLLLhO+LA==} 7465 + /ws@8.15.1: 7466 + resolution: {integrity: sha512-W5OZiCjXEmk0yZ66ZN82beM5Sz7l7coYxpRkzS+p9PP+ToQry8szKh+61eNktr7EA9DOwvFGhfC605jDHbP6QQ==} 6811 7467 engines: {node: '>=10.0.0'} 6812 7468 peerDependencies: 6813 7469 bufferutil: ^4.0.1 ··· 6819 7475 optional: true 6820 7476 dev: true 6821 7477 6822 - /xml-name-validator@4.0.0: 6823 - resolution: {integrity: sha512-ICP2e+jsHvAj2E2lIHxa5tjXRlKDJo4IdvPvCXbXQGdzSfmSpNVyIKMvoZHjDY9DP0zV17iI85o90vRFXNccRw==} 6824 - engines: {node: '>=12'} 7478 + /xml-name-validator@5.0.0: 7479 + resolution: {integrity: sha512-EvGK8EJ3DhaHfbRlETOWAS5pO9MZITeauHKJyb8wyajUfQUenkIg2MvLDTZ4T/TgIcm3HU0TFBgWWboAZ30UHg==} 7480 + engines: {node: '>=18'} 6825 7481 dev: true 6826 7482 6827 7483 /xmlchars@2.2.0: ··· 6830 7486 6831 7487 /yallist@3.1.1: 6832 7488 resolution: {integrity: sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==} 6833 - dev: true 6834 7489 6835 7490 /yallist@4.0.0: 6836 7491 resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==} ··· 6851 7506 engines: {node: '>=12.20'} 6852 7507 dev: true 6853 7508 6854 - /zustand@4.4.1(@types/react@17.0.65)(immer@10.0.2)(react@17.0.2): 6855 - resolution: {integrity: sha512-QCPfstAS4EBiTQzlaGP1gmorkh/UL1Leaj2tdj+zZCZ/9bm0WS7sI2wnfD5lpOszFqWJ1DcPnGoY8RDL61uokw==} 7509 + /zustand@4.4.7(@types/react@18.2.45)(immer@10.0.3)(react@18.2.0): 7510 + resolution: {integrity: sha512-QFJWJMdlETcI69paJwhSMJz7PPWjVP8Sjhclxmxmxv/RYI7ZOvR5BHX+ktH0we9gTWQMxcne8q1OY8xxz604gw==} 6856 7511 engines: {node: '>=12.7.0'} 6857 7512 peerDependencies: 6858 7513 '@types/react': '>=16.8' ··· 6866 7521 react: 6867 7522 optional: true 6868 7523 dependencies: 6869 - '@types/react': 17.0.65 6870 - immer: 10.0.2 6871 - react: 17.0.2 6872 - use-sync-external-store: 1.2.0(react@17.0.2) 7524 + '@types/react': 18.2.45 7525 + immer: 10.0.3 7526 + react: 18.2.0 7527 + use-sync-external-store: 1.2.0(react@18.2.0) 6873 7528 dev: false
+1 -1
src/backend/accounts/auth.ts
··· 22 22 export async function accountLogin( 23 23 url: string, 24 24 id: string, 25 - deviceName: string 25 + deviceName: string, 26 26 ): Promise<LoginResponse> { 27 27 return ofetch<LoginResponse>("/auth/login", { 28 28 method: "POST",
+5 -5
src/backend/accounts/bookmarks.ts
··· 19 19 20 20 export function bookmarkMediaToInput( 21 21 tmdbId: string, 22 - item: BookmarkMediaItem 22 + item: BookmarkMediaItem, 23 23 ): BookmarkInput { 24 24 return { 25 25 meta: { ··· 35 35 export async function addBookmark( 36 36 url: string, 37 37 account: AccountWithToken, 38 - input: BookmarkInput 38 + input: BookmarkInput, 39 39 ) { 40 40 return ofetch<BookmarkResponse>( 41 41 `/users/${account.userId}/bookmarks/${input.tmdbId}`, ··· 44 44 headers: getAuthHeaders(account.token), 45 45 baseURL: url, 46 46 body: input, 47 - } 47 + }, 48 48 ); 49 49 } 50 50 51 51 export async function removeBookmark( 52 52 url: string, 53 53 account: AccountWithToken, 54 - id: string 54 + id: string, 55 55 ) { 56 56 return ofetch<{ tmdbId: string }>( 57 57 `/users/${account.userId}/bookmarks/${id}`, ··· 59 59 method: "DELETE", 60 60 headers: getAuthHeaders(account.token), 61 61 baseURL: url, 62 - } 62 + }, 63 63 ); 64 64 }
+4 -4
src/backend/accounts/crypto.ts
··· 41 41 42 42 export async function signCode( 43 43 code: string, 44 - privateKey: Uint8Array 44 + privateKey: Uint8Array, 45 45 ): Promise<Uint8Array> { 46 46 return forge.pki.ed25519.sign({ 47 47 encoding: "utf8", ··· 91 91 92 92 const cipher = forge.cipher.createCipher( 93 93 "AES-GCM", 94 - forge.util.createBuffer(secret) 94 + forge.util.createBuffer(secret), 95 95 ); 96 96 cipher.start({ 97 97 iv, ··· 104 104 const tag = cipher.mode.tag; 105 105 106 106 return `${forge.util.encode64(iv)}.${stringBufferToBase64( 107 - encryptedData 107 + encryptedData, 108 108 )}.${stringBufferToBase64(tag)}` as const; 109 109 } 110 110 ··· 115 115 116 116 const decipher = forge.cipher.createDecipher( 117 117 "AES-GCM", 118 - forge.util.createBuffer(secret) 118 + forge.util.createBuffer(secret), 119 119 ); 120 120 decipher.start({ 121 121 iv: base64ToStringBuffer(iv),
+2 -2
src/backend/accounts/import.ts
··· 9 9 export function importProgress( 10 10 url: string, 11 11 account: AccountWithToken, 12 - progressItems: ProgressInput[] 12 + progressItems: ProgressInput[], 13 13 ) { 14 14 return ofetch<void>(`/users/${account.userId}/progress/import`, { 15 15 method: "PUT", ··· 22 22 export function importBookmarks( 23 23 url: string, 24 24 account: AccountWithToken, 25 - bookmarks: BookmarkInput[] 25 + bookmarks: BookmarkInput[], 26 26 ) { 27 27 return ofetch<void>(`/users/${account.userId}/bookmarks`, { 28 28 method: "PUT",
+2 -2
src/backend/accounts/login.ts
··· 8 8 9 9 export async function getLoginChallengeToken( 10 10 url: string, 11 - publicKey: string 11 + publicKey: string, 12 12 ): Promise<ChallengeTokenResponse> { 13 13 return ofetch<ChallengeTokenResponse>("/auth/login/start", { 14 14 method: "POST", ··· 35 35 36 36 export async function loginAccount( 37 37 url: string, 38 - data: LoginInput 38 + data: LoginInput, 39 39 ): Promise<LoginResponse> { 40 40 return ofetch<LoginResponse>("/auth/login/complete", { 41 41 method: "POST",
+5 -5
src/backend/accounts/progress.ts
··· 23 23 } 24 24 25 25 export function progressUpdateItemToInput( 26 - item: ProgressUpdateItem 26 + item: ProgressUpdateItem, 27 27 ): ProgressInput { 28 28 return { 29 29 duration: item.progress?.duration ?? 0, ··· 44 44 45 45 export function progressMediaItemToInputs( 46 46 tmdbId: string, 47 - item: ProgressMediaItem 47 + item: ProgressMediaItem, 48 48 ): ProgressInput[] { 49 49 if (item.type === "show") { 50 50 return Object.entries(item.episodes).flatMap(([_, episode]) => ({ ··· 83 83 export async function setProgress( 84 84 url: string, 85 85 account: AccountWithToken, 86 - input: ProgressInput 86 + input: ProgressInput, 87 87 ) { 88 88 return ofetch<ProgressResponse>( 89 89 `/users/${account.userId}/progress/${input.tmdbId}`, ··· 92 92 headers: getAuthHeaders(account.token), 93 93 baseURL: url, 94 94 body: input, 95 - } 95 + }, 96 96 ); 97 97 } 98 98 ··· 101 101 account: AccountWithToken, 102 102 id: string, 103 103 episodeId?: string, 104 - seasonId?: string 104 + seasonId?: string, 105 105 ) { 106 106 await ofetch(`/users/${account.userId}/progress/${id}`, { 107 107 method: "DELETE",
+2 -2
src/backend/accounts/register.ts
··· 9 9 10 10 export async function getRegisterChallengeToken( 11 11 url: string, 12 - captchaToken?: string 12 + captchaToken?: string, 13 13 ): Promise<ChallengeTokenResponse> { 14 14 return ofetch<ChallengeTokenResponse>("/auth/register/start", { 15 15 method: "POST", ··· 42 42 43 43 export async function registerAccount( 44 44 url: string, 45 - data: RegisterInput 45 + data: RegisterInput, 46 46 ): Promise<RegisterResponse> { 47 47 return ofetch<RegisterResponse>("/auth/register/complete", { 48 48 method: "POST",
+2 -2
src/backend/accounts/sessions.ts
··· 26 26 export async function updateSession( 27 27 url: string, 28 28 account: AccountWithToken, 29 - update: SessionUpdate 29 + update: SessionUpdate, 30 30 ) { 31 31 return ofetch<SessionResponse[]>(`/sessions/${account.sessionId}`, { 32 32 method: "PATCH", ··· 39 39 export async function removeSession( 40 40 url: string, 41 41 token: string, 42 - sessionId: string 42 + sessionId: string, 43 43 ) { 44 44 return ofetch<SessionResponse[]>(`/sessions/${sessionId}`, { 45 45 method: "DELETE",
+1 -1
src/backend/accounts/settings.ts
··· 18 18 export function updateSettings( 19 19 url: string, 20 20 account: AccountWithToken, 21 - settings: SettingsInput 21 + settings: SettingsInput, 22 22 ) { 23 23 return ofetch<SettingsResponse>(`/users/${account.userId}/settings`, { 24 24 method: "PUT",
+5 -5
src/backend/accounts/user.ts
··· 119 119 120 120 export async function getUser( 121 121 url: string, 122 - token: string 122 + token: string, 123 123 ): Promise<{ user: UserResponse; session: SessionResponse }> { 124 124 return ofetch<{ user: UserResponse; session: SessionResponse }>( 125 125 "/users/@me", 126 126 { 127 127 headers: getAuthHeaders(token), 128 128 baseURL: url, 129 - } 129 + }, 130 130 ); 131 131 } 132 132 133 133 export async function editUser( 134 134 url: string, 135 135 account: AccountWithToken, 136 - object: UserEdit 136 + object: UserEdit, 137 137 ): Promise<{ user: UserResponse; session: SessionResponse }> { 138 138 return ofetch<{ user: UserResponse; session: SessionResponse }>( 139 139 `/users/${account.userId}`, ··· 142 142 headers: getAuthHeaders(account.token), 143 143 body: object, 144 144 baseURL: url, 145 - } 145 + }, 146 146 ); 147 147 } 148 148 149 149 export async function deleteUser( 150 150 url: string, 151 - account: AccountWithToken 151 + account: AccountWithToken, 152 152 ): Promise<UserResponse> { 153 153 return ofetch<UserResponse>(`/users/${account.userId}`, { 154 154 headers: getAuthHeaders(account.token),
+1 -1
src/backend/helpers/fetch.ts
··· 25 25 export async function singularProxiedFetch<T>( 26 26 proxyUrl: string, 27 27 url: string, 28 - ops: P<T>[1] = {} 28 + ops: P<T>[1] = {}, 29 29 ): R<T> { 30 30 let combinedUrl = ops?.baseURL ?? ""; 31 31 if (
+1 -1
src/backend/helpers/providerApi.ts
··· 96 96 97 97 export async function connectServerSideEvents<T>( 98 98 url: string, 99 - endEvents: string[] 99 + endEvents: string[], 100 100 ) { 101 101 const apiToken = await getApiToken(); 102 102
+3 -3
src/backend/helpers/report.ts
··· 58 58 providerId: string, 59 59 embedId: string | null, 60 60 status: ProviderMetric["status"], 61 - err: unknown | null 61 + err: unknown | null, 62 62 ): ProviderMetric { 63 63 const episodeId = media.episode?.tmdbId; 64 64 const seasonId = media.season?.tmdbId; ··· 82 82 export function scrapeSegmentToProviderMetric( 83 83 media: ScrapeMedia, 84 84 providerId: string, 85 - segment: ScrapingSegment 85 + segment: ScrapingSegment, 86 86 ): ProviderMetric | null { 87 87 const status = segmentStatusMap[segment.status]; 88 88 if (!status) return null; ··· 112 112 export function scrapePartsToProviderMetric( 113 113 media: ScrapeMedia, 114 114 order: ScrapingItems[], 115 - sources: Record<string, ScrapingSegment> 115 + sources: Record<string, ScrapingSegment>, 116 116 ): ProviderMetric[] { 117 117 const output: ProviderMetric[] = []; 118 118
+1 -1
src/backend/helpers/subs.ts
··· 14 14 * Always returns SRT 15 15 */ 16 16 export async function downloadCaption( 17 - caption: CaptionListItem 17 + caption: CaptionListItem, 18 18 ): Promise<string> { 19 19 const cached = downloadCache.get(caption.url); 20 20 if (cached) return cached;
+10 -12
src/backend/metadata/getmeta.ts
··· 34 34 35 35 export function formatTMDBMetaResult( 36 36 details: TMDBShowData | TMDBMovieData, 37 - type: MWMediaType 37 + type: MWMediaType, 38 38 ): TMDBMediaResult { 39 39 if (type === MWMediaType.MOVIE) { 40 40 const movie = details as TMDBMovieData; ··· 68 68 export async function getMetaFromId( 69 69 type: MWMediaType, 70 70 id: string, 71 - seasonId?: string 71 + seasonId?: string, 72 72 ): Promise<DetailedMeta | null> { 73 73 const details = await getMediaDetails(id, mediaTypeToTMDB(type)); 74 74 ··· 89 89 if (selectedSeason) { 90 90 const episodes = await getEpisodes( 91 91 details.id.toString(), 92 - selectedSeason.season_number 92 + selectedSeason.season_number, 93 93 ); 94 94 95 95 seasonData = { ··· 116 116 export async function getLegacyMetaFromId( 117 117 type: MWMediaType, 118 118 id: string, 119 - seasonId?: string 119 + seasonId?: string, 120 120 ): Promise<DetailedMeta | null> { 121 121 const queryType = mediaTypeToJW(type); 122 122 ··· 135 135 throw err; 136 136 } 137 137 138 - let imdbId = data.external_ids.find( 139 - (v) => v.provider === "imdb_latest" 140 - )?.external_id; 138 + let imdbId = data.external_ids.find((v) => v.provider === "imdb_latest") 139 + ?.external_id; 141 140 if (!imdbId) 142 141 imdbId = data.external_ids.find((v) => v.provider === "imdb")?.external_id; 143 142 144 - let tmdbId = data.external_ids.find( 145 - (v) => v.provider === "tmdb_latest" 146 - )?.external_id; 143 + let tmdbId = data.external_ids.find((v) => v.provider === "tmdb_latest") 144 + ?.external_id; 147 145 if (!tmdbId) 148 146 tmdbId = data.external_ids.find((v) => v.provider === "tmdb")?.external_id; 149 147 ··· 175 173 } 176 174 177 175 export async function convertLegacyUrl( 178 - url: string 176 + url: string, 179 177 ): Promise<string | undefined> { 180 178 if (!isLegacyUrl(url)) return undefined; 181 179 ··· 191 189 return `/media/${TMDBIdToUrlId( 192 190 MWMediaType.SERIES, 193 191 details.id.toString(), 194 - details.name 192 + details.name, 195 193 )}${suffix}`; 196 194 } 197 195
+3 -3
src/backend/metadata/justwatch.ts
··· 20 20 21 21 export function formatJWMeta( 22 22 media: JWMediaResult, 23 - season?: JWSeasonMetaResult 23 + season?: JWSeasonMetaResult, 24 24 ): MWMediaMeta { 25 25 const type = JWMediaToMediaType(media.object_type); 26 26 let seasons: undefined | MWSeasonMeta[]; ··· 32 32 id: v.id.toString(), 33 33 number: v.season_number, 34 34 title: v.title, 35 - }) 35 + }), 36 36 ); 37 37 } 38 38 ··· 67 67 } 68 68 69 69 export function decodeJWId( 70 - paramId: string 70 + paramId: string, 71 71 ): { id: string; type: MWMediaType } | null { 72 72 const [prefix, type, id] = paramId.split("-", 3); 73 73 if (prefix !== "JW") return null;
+16 -16
src/backend/metadata/tmdb.ts
··· 38 38 } 39 39 40 40 export function TMDBMediaToMediaItemType( 41 - type: TMDBContentTypes 41 + type: TMDBContentTypes, 42 42 ): MediaItem["type"] { 43 43 if (type === TMDBContentTypes.MOVIE) return "movie"; 44 44 if (type === TMDBContentTypes.TV) return "show"; ··· 47 47 48 48 export function formatTMDBMeta( 49 49 media: TMDBMediaResult, 50 - season?: TMDBSeasonMetaResult 50 + season?: TMDBSeasonMetaResult, 51 51 ): MWMediaMeta { 52 52 const type = TMDBMediaToMediaType(media.object_type); 53 53 let seasons: undefined | MWSeasonMeta[]; ··· 59 59 title: v.title, 60 60 id: v.id.toString(), 61 61 number: v.season_number, 62 - }) 62 + }), 63 63 ); 64 64 } 65 65 ··· 102 102 export function TMDBIdToUrlId( 103 103 type: MWMediaType, 104 104 tmdbId: string, 105 - title: string 105 + title: string, 106 106 ) { 107 107 return [ 108 108 "tmdb", ··· 120 120 return TMDBIdToUrlId( 121 121 mediaItemTypeToMediaType(media.type), 122 122 media.id, 123 - media.title 123 + media.title, 124 124 ); 125 125 } 126 126 127 127 export function decodeTMDBId( 128 - paramId: string 128 + paramId: string, 129 129 ): { id: string; type: MWMediaType } | null { 130 130 const [prefix, type, id] = paramId.split("-", 3); 131 131 if (prefix !== "tmdb") return null; ··· 160 160 } 161 161 162 162 export async function multiSearch( 163 - query: string 163 + query: string, 164 164 ): Promise<(TMDBMovieSearchResult | TMDBShowSearchResult)[]> { 165 165 const data = await get<TMDBSearchResult>("search/multi", { 166 166 query, ··· 172 172 const results = data.results.filter( 173 173 (r) => 174 174 r.media_type === TMDBContentTypes.MOVIE || 175 - r.media_type === TMDBContentTypes.TV 175 + r.media_type === TMDBContentTypes.TV, 176 176 ); 177 177 return results; 178 178 } 179 179 180 180 export async function generateQuickSearchMediaUrl( 181 - query: string 181 + query: string, 182 182 ): Promise<string | undefined> { 183 183 const data = await multiSearch(query); 184 184 if (data.length === 0) return undefined; ··· 189 189 return `/media/${TMDBIdToUrlId( 190 190 TMDBMediaToMediaType(result.media_type), 191 191 result.id.toString(), 192 - title 192 + title, 193 193 )}`; 194 194 } 195 195 ··· 198 198 T extends TMDBContentTypes.MOVIE 199 199 ? TMDBMovieData 200 200 : T extends TMDBContentTypes.TV 201 - ? TMDBShowData 202 - : never; 201 + ? TMDBShowData 202 + : never; 203 203 204 204 export function getMediaDetails< 205 205 T extends TMDBContentTypes, 206 - TReturn = MediaDetailReturn<T> 206 + TReturn = MediaDetailReturn<T>, 207 207 >(id: string, type: T): Promise<TReturn> { 208 208 if (type === TMDBContentTypes.MOVIE) { 209 209 return get<TReturn>(`/movie/${id}`, { append_to_response: "external_ids" }); ··· 220 220 221 221 export async function getEpisodes( 222 222 id: string, 223 - season: number 223 + season: number, 224 224 ): Promise<TMDBEpisodeShort[]> { 225 225 const data = await get<TMDBSeason>(`/tv/${id}/season/${season}`); 226 226 return data.episodes.map((e) => ({ ··· 231 231 } 232 232 233 233 export async function getMovieFromExternalId( 234 - imdbId: string 234 + imdbId: string, 235 235 ): Promise<string | undefined> { 236 236 const data = await get<ExternalIdMovieSearchResult>(`/find/${imdbId}`, { 237 237 external_source: "imdb_id", ··· 245 245 246 246 export function formatTMDBSearchResult( 247 247 result: TMDBMovieSearchResult | TMDBShowSearchResult, 248 - mediatype: TMDBContentTypes 248 + mediatype: TMDBContentTypes, 249 249 ): TMDBMediaResult { 250 250 const type = TMDBMediaToMediaType(mediatype); 251 251 if (type === MWMediaType.SERIES) {
+2 -2
src/components/Avatar.tsx
··· 20 20 <div 21 21 className={classNames( 22 22 props.sizeClass, 23 - "rounded-full overflow-hidden flex items-center justify-center text-white" 23 + "rounded-full overflow-hidden flex items-center justify-center text-white", 24 24 )} 25 25 style={{ 26 26 background: `linear-gradient(to bottom right, ${props.profile.colorA}, ${props.profile.colorB})`, ··· 53 53 auth.account && auth.account.seed 54 54 ? base64ToBuffer(auth.account.seed) 55 55 : null, 56 - [auth] 56 + [auth], 57 57 ); 58 58 59 59 if (!auth.account || auth.account === null) return null;
+1 -1
src/components/FlagIcon.tsx
··· 51 51 <span 52 52 className={classNames( 53 53 "!w-8 h-6 rounded overflow-hidden bg-video-context-flagBg bg-cover bg-center block fi", 54 - props.countryCode ? `fi-${countryCode}` : undefined 54 + props.countryCode ? `fi-${countryCode}` : undefined, 55 55 )} 56 56 /> 57 57 );
+6 -6
src/components/LinksDropdown.tsx
··· 1 1 import classNames from "classnames"; 2 2 import { useCallback, useEffect, useMemo, useState } from "react"; 3 3 import { useTranslation } from "react-i18next"; 4 - import { useHistory } from "react-router-dom"; 4 + import { useNavigate } from "react-router-dom"; 5 5 6 6 import { base64ToBuffer, decryptData } from "@/backend/accounts/crypto"; 7 7 import { UserAvatar } from "@/components/Avatar"; ··· 21 21 className?: string; 22 22 onClick?: () => void; 23 23 }) { 24 - const history = useHistory(); 24 + const navigate = useNavigate(); 25 25 26 26 const goTo = (href: string) => { 27 27 if (href.startsWith("http")) window.open(href, "_blank"); 28 - else history.push(href); 28 + else navigate(href); 29 29 }; 30 30 31 31 return ( ··· 61 61 props.highlight 62 62 ? "text-dropdown-highlight hover:text-dropdown-highlightHover" 63 63 : "text-dropdown-text hover:text-white", 64 - props.className 64 + props.className, 65 65 )} 66 66 > 67 67 {props.icon ? <Icon icon={props.icon} className="text-xl" /> : null} ··· 88 88 const seed = useAuthStore((s) => s.account?.seed); 89 89 const bufferSeed = useMemo( 90 90 () => (seed ? base64ToBuffer(seed) : null), 91 - [seed] 91 + [seed], 92 92 ); 93 93 const { logout } = useAuth(); 94 94 ··· 118 118 <Icon 119 119 className={classNames( 120 120 "text-xl transition-transform duration-100", 121 - open ? "rotate-180" : "" 121 + open ? "rotate-180" : "", 122 122 )} 123 123 icon={Icons.CHEVRON_DOWN} 124 124 />
+7 -7
src/components/buttons/Button.tsx
··· 1 1 import classNames from "classnames"; 2 2 import { ReactNode, useCallback } from "react"; 3 - import { useHistory } from "react-router-dom"; 3 + import { useNavigate } from "react-router-dom"; 4 4 5 5 import { Icon, Icons } from "@/components/Icon"; 6 6 import { Spinner } from "@/components/layout/Spinner"; ··· 19 19 } 20 20 21 21 export function Button(props: Props) { 22 - const history = useHistory(); 22 + const navigate = useNavigate(); 23 23 const { onClick, href, loading } = props; 24 24 const cb = useCallback(() => { 25 25 if (loading) return; 26 - if (href) history.push(href); 26 + if (href) navigate(href); 27 27 else onClick?.(); 28 - }, [onClick, href, history, loading]); 28 + }, [onClick, href, navigate, loading]); 29 29 30 30 let colorClasses = "bg-white hover:bg-gray-200 text-black"; 31 31 if (props.theme === "purple") ··· 41 41 props.padding ?? "px-4 py-3", 42 42 props.className, 43 43 colorClasses, 44 - props.disabled ? "cursor-not-allowed bg-opacity-60 text-opacity-60" : null 44 + props.disabled ? "cursor-not-allowed bg-opacity-60 text-opacity-60" : null, 45 45 ); 46 46 47 47 if (props.disabled) ··· 49 49 .split(" ") 50 50 .filter( 51 51 (className) => 52 - !className.startsWith("hover:") && !className.startsWith("active:") 52 + !className.startsWith("hover:") && !className.startsWith("active:"), 53 53 ) 54 54 .join(" "); 55 55 ··· 120 120 "cursor-pointer inline-flex items-center justify-center rounded-lg font-medium transition-[transform,background-color] duration-100 active:scale-105 md:px-8", 121 121 "px-4 py-3", 122 122 props.className, 123 - colorClasses 123 + colorClasses, 124 124 ); 125 125 126 126 return (
+2 -2
src/components/buttons/Toggle.tsx
··· 7 7 onClick={props.onClick} 8 8 className={classNames( 9 9 "w-11 h-6 p-1 rounded-full grid transition-colors duration-100 group/toggle tabbable", 10 - props.enabled ? "bg-buttons-toggle" : "bg-buttons-toggleDisabled" 10 + props.enabled ? "bg-buttons-toggle" : "bg-buttons-toggleDisabled", 11 11 )} 12 12 > 13 13 <div className="relative w-full h-full"> 14 14 <div 15 15 className={classNames( 16 16 "scale-90 group-hover/toggle:scale-100 h-full aspect-square rounded-full bg-white absolute transition-all duration-100", 17 - props.enabled ? "left-full transform -translate-x-full" : "left-0" 17 + props.enabled ? "left-full transform -translate-x-full" : "left-0", 18 18 )} 19 19 /> 20 20 </div>
+1 -1
src/components/form/ColorPicker.tsx
··· 24 24 tabIndex={0} 25 25 className={classNames( 26 26 "w-full h-10 rounded flex justify-center items-center text-white pointer border-2 border-opacity-10 cursor-pointer", 27 - props.value === color ? "border-white" : "border-transparent" 27 + props.value === color ? "border-white" : "border-transparent", 28 28 )} 29 29 onClick={() => props.onInput(color)} 30 30 style={{ backgroundColor: color }}
+1 -1
src/components/form/IconPicker.tsx
··· 32 32 "w-full h-10 rounded flex justify-center items-center text-white pointer border-2 border-opacity-10 cursor-pointer", 33 33 props.value === icon 34 34 ? "bg-buttons-purple border-white" 35 - : "bg-authentication-inputBg border-transparent" 35 + : "bg-authentication-inputBg border-transparent", 36 36 )} 37 37 onClick={() => props.onInput(icon)} 38 38 key={icon}
+1 -1
src/components/form/SearchBar.tsx
··· 60 60 </Flare.Child> 61 61 </Flare.Base> 62 62 ); 63 - } 63 + }, 64 64 );
+1 -1
src/components/layout/BrandPill.tsx
··· 17 17 props.backgroundClass ?? "bg-pill-background bg-opacity-50", 18 18 props.clickable 19 19 ? "transition-[transform,background-color] hover:scale-105 hover:bg-pill-backgroundHover hover:text-type-logo active:scale-95" 20 - : "" 20 + : "", 21 21 )} 22 22 > 23 23 <Icon className="text-xl" icon={Icons.MOVIE_WEB} />
+5 -5
src/components/layout/Footer.tsx
··· 1 1 import { useCallback } from "react"; 2 2 import { useTranslation } from "react-i18next"; 3 - import { useHistory } from "react-router-dom"; 3 + import { useNavigate } from "react-router-dom"; 4 4 import type { RequireExactlyOne } from "type-fest"; 5 5 6 6 import { Icon, Icons } from "@/components/Icon"; ··· 21 21 >; 22 22 23 23 function FooterLink(props: FooterLinkProps) { 24 - const history = useHistory(); 24 + const navigate = useNavigate(); 25 25 26 26 const navigateTo = useCallback(() => { 27 27 if (!props.to) return; 28 28 29 - history.push(props.to); 30 - }, [history, props.to]); 29 + navigate(props.to); 30 + }, [navigate, props.to]); 31 31 32 32 return ( 33 33 <a ··· 99 99 return ( 100 100 <div 101 101 className={["flex min-h-screen flex-col", props.className || ""].join( 102 - " " 102 + " ", 103 103 )} 104 104 > 105 105 <div style={{ flex: "1 0 auto" }}>{props.children}</div>
+1 -1
src/components/layout/Navigation.tsx
··· 51 51 "fixed left-0 right-0 h-20 flex items-center", 52 52 props.doBackground 53 53 ? "bg-background-main border-b border-utils-divider border-opacity-50" 54 - : null 54 + : null, 55 55 )} 56 56 > 57 57 {props.doBackground ? (
+2 -2
src/components/layout/SettingsCard.tsx
··· 10 10 className={classNames( 11 11 "w-full rounded-lg bg-settings-card-background bg-opacity-[0.15] border border-settings-card-border", 12 12 props.paddingClass ?? "px-8 py-6", 13 - props.className 13 + props.className, 14 14 )} 15 15 > 16 16 {props.children} ··· 28 28 className={classNames( 29 29 "w-full rounded-lg bg-settings-card-altBackground bg-opacity-50", 30 30 props.paddingClass ?? "px-8 py-6", 31 - props.className 31 + props.className, 32 32 )} 33 33 > 34 34 {props.children}
+2 -2
src/components/layout/Sidebar.tsx
··· 31 31 "tabbable w-full px-3 py-2 flex items-center space-x-3 cursor-pointer rounded my-2", 32 32 props.active 33 33 ? "bg-settings-sidebar-activeLink text-settings-sidebar-type-activated" 34 - : null 34 + : null, 35 35 )} 36 36 > 37 37 <Icon 38 38 className={classNames( 39 39 "text-2xl text-settings-sidebar-type-icon", 40 - props.active ? "text-settings-sidebar-type-iconActivated" : null 40 + props.active ? "text-settings-sidebar-type-iconActivated" : null, 41 41 )} 42 42 icon={props.icon} 43 43 />
+3 -3
src/components/media/MediaCard.tsx
··· 66 66 "relative mb-4 pb-[150%] w-full overflow-hidden rounded-xl bg-mediaCard-hoverBackground bg-cover bg-center transition-[border-radius] duration-100", 67 67 { 68 68 "group-hover:rounded-lg": !closable, 69 - } 69 + }, 70 70 )} 71 71 style={{ 72 72 backgroundImage: media.poster ? `url(${media.poster})` : undefined, ··· 152 152 link += `/${encodeURIComponent(props.series.seasonId)}`; 153 153 } else { 154 154 link += `/${encodeURIComponent( 155 - props.series.seasonId 155 + props.series.seasonId, 156 156 )}/${encodeURIComponent(props.series.episodeId)}`; 157 157 } 158 158 } ··· 164 164 tabIndex={-1} 165 165 className={classNames( 166 166 "tabbable", 167 - props.closable ? "hover:cursor-default" : "" 167 + props.closable ? "hover:cursor-default" : "", 168 168 )} 169 169 > 170 170 {content}
+1 -1
src/components/media/MediaGrid.tsx
··· 14 14 {props.children} 15 15 </div> 16 16 ); 17 - } 17 + }, 18 18 );
+1 -1
src/components/media/WatchedMediaCard.tsx
··· 32 32 }, [progressItems, props.media]); 33 33 const itemToDisplay = useMemo( 34 34 () => (item ? shouldShowProgress(item) : null), 35 - [item] 35 + [item], 36 36 ); 37 37 const percentage = itemToDisplay?.show 38 38 ? (itemToDisplay.progress.watched / itemToDisplay.progress.duration) * 100
+1 -1
src/components/overlays/OverlayDisplay.tsx
··· 80 80 </div> 81 81 </FocusTrap> 82 82 </Transition>, 83 - portalElement 83 + portalElement, 84 84 ) 85 85 : null} 86 86 </div>
+2 -2
src/components/overlays/OverlayRouter.tsx
··· 21 21 const router = useInternalOverlayRouter(props.id); 22 22 const routeMeta = useMemo( 23 23 () => routes[router.currentRoute ?? ""], 24 - [routes, router] 24 + [routes, router], 25 25 ); 26 26 27 27 const [dimensions, api] = useSpring( ··· 34 34 easing: easings.linear, 35 35 }, 36 36 }), 37 - [] 37 + [], 38 38 ); 39 39 40 40 const currentState = useRef<null | string>(null);
+3 -3
src/components/overlays/positions/OverlayAnchorPosition.tsx
··· 25 25 setLeft( 26 26 Math.min( 27 27 buttonCenter - card.width / 2, 28 - window.innerWidth - card.width - 30 29 - ) 28 + window.innerWidth - card.width - 30, 29 + ), 30 30 ); 31 31 }, 32 - [] 32 + [], 33 33 ); 34 34 35 35 useEffect(() => {
+1 -1
src/components/player/atoms/Chromecast.tsx
··· 18 18 const isVisible = (tag.getAttribute("style") ?? "").includes("inline"); 19 19 setHidden(!isVisible); 20 20 }, 21 - [setHidden] 21 + [setHidden], 22 22 ); 23 23 24 24 useEffect(() => {
+4 -4
src/components/player/atoms/Episodes.tsx
··· 54 54 const meta = usePlayerStore((s) => s.meta); 55 55 const [loadingState, seasons] = useSeasonData( 56 56 meta?.tmdbId ?? "", 57 - selectedSeason 57 + selectedSeason, 58 58 ); 59 59 60 60 let content: ReactNode = null; ··· 120 120 // player already switches route after meta change 121 121 router.close(true); 122 122 }, 123 - [setPlayerMeta, loadingState, router, onChange] 123 + [setPlayerMeta, loadingState, router, onChange], 124 124 ); 125 125 126 126 if (!meta?.tmdbId) return null; ··· 175 175 "p-0.5 px-2 rounded inline bg-video-context-hoverColor", 176 176 ep.id === meta?.episode?.tmdbId 177 177 ? "text-white bg-opacity-100" 178 - : "bg-opacity-50" 178 + : "bg-opacity-50", 179 179 )} 180 180 > 181 181 {t("player.menus.episodes.episodeBadge", { ··· 226 226 setSelectedSeason(seasonId); 227 227 router.navigate("/episodes"); 228 228 }, 229 - [router] 229 + [router], 230 230 ); 231 231 232 232 return (
+4 -4
src/components/player/atoms/NextEpisodeButton.tsx
··· 10 10 11 11 function shouldShowNextEpisodeButton( 12 12 time: number, 13 - duration: number 13 + duration: number, 14 14 ): "always" | "hover" | "none" { 15 15 const percentage = time / duration; 16 16 const secondsFromEnd = duration - time; ··· 28 28 <button 29 29 className={classNames( 30 30 "font-bold rounded h-10 w-40 scale-95 hover:scale-100 transition-all duration-200", 31 - props.className 31 + props.className, 32 32 )} 33 33 type="button" 34 34 onClick={props.onClick} ··· 53 53 const showingState = shouldShowNextEpisodeButton(time, duration); 54 54 const status = usePlayerStore((s) => s.status); 55 55 const setShouldStartFromBeginning = usePlayerStore( 56 - (s) => s.setShouldStartFromBeginning 56 + (s) => s.setShouldStartFromBeginning, 57 57 ); 58 58 59 59 let show = false; ··· 69 69 : "bottom-[calc(3rem+env(safe-area-inset-bottom))]"; 70 70 71 71 const nextEp = meta?.episodes?.find( 72 - (v) => v.number === (meta?.episode?.number ?? 0) + 1 72 + (v) => v.number === (meta?.episode?.number ?? 0) + 1, 73 73 ); 74 74 75 75 const loadNextEpisode = useCallback(() => {
+7 -7
src/components/player/atoms/ProgressBar.tsx
··· 58 58 <p className="text-center mt-1"> 59 59 {formatSeconds( 60 60 Math.max(props.at, 0), 61 - durationExceedsHour(props.at) 61 + durationExceedsHour(props.at), 62 62 )} 63 63 </p> 64 64 </div> ··· 79 79 const pos = (e.pageX - rect.left) / barRef.current.offsetWidth; 80 80 setMousePos(pos * 100); 81 81 }, 82 - [setMousePos, barRef] 82 + [setMousePos, barRef], 83 83 ); 84 84 85 85 const mouseLeave = useCallback(() => { ··· 97 97 const { isSeeking } = usePlayerStore((s) => s.interface); 98 98 99 99 const commitTime = useCallback( 100 - (percentage) => { 100 + (percentage: number) => { 101 101 display?.setTime(percentage * duration); 102 102 }, 103 - [duration, display] 103 + [duration, display], 104 104 ); 105 105 106 106 const ref = useRef<HTMLDivElement>(null); ··· 108 108 109 109 const { dragging, dragPercentage, dragMouseDown } = useProgressBar( 110 110 ref, 111 - commitTime 111 + commitTime, 112 112 ); 113 113 useEffect(() => { 114 114 setSeeking(dragging); ··· 165 165 0, 166 166 Math.min( 167 167 1, 168 - dragging ? dragPercentage / 100 : time / duration 169 - ) 168 + dragging ? dragPercentage / 100 : time / duration, 169 + ), 170 170 ) * 100 171 171 }%`, 172 172 }}
+3 -3
src/components/player/atoms/Time.tsx
··· 22 22 setTimeFormat( 23 23 timeFormat === VideoPlayerTimeFormat.REGULAR 24 24 ? VideoPlayerTimeFormat.REMAINING 25 - : VideoPlayerTimeFormat.REGULAR 25 + : VideoPlayerTimeFormat.REGULAR, 26 26 ); 27 27 } 28 28 29 29 const currentTime = Math.min( 30 30 Math.max(isSeeking ? draggingTime : time, 0), 31 - timeDuration 31 + timeDuration, 32 32 ); 33 33 const secondsRemaining = Math.abs(currentTime - timeDuration); 34 34 35 35 const timeLeft = formatSeconds( 36 36 secondsRemaining, 37 - durationExceedsHour(secondsRemaining) 37 + durationExceedsHour(secondsRemaining), 38 38 ); 39 39 const timeWatched = formatSeconds(currentTime, hasHours); 40 40 const timeFinished = new Date(Date.now() + secondsRemaining * 1e3);
+3 -3
src/components/player/atoms/Volume.tsx
··· 23 23 const { setVolume, toggleMute } = useVolume(); 24 24 25 25 const commitVolume = useCallback( 26 - (percentage) => { 26 + (percentage: number) => { 27 27 setVolume(percentage); 28 28 }, 29 - [setVolume] 29 + [setVolume], 30 30 ); 31 31 32 32 const { dragging, dragPercentage, dragMouseDown } = useProgressBar( 33 33 ref, 34 34 commitVolume, 35 - true 35 + true, 36 36 ); 37 37 38 38 const handleClick = useCallback(() => {
+13 -11
src/components/player/atoms/settings/CaptionSettingsView.tsx
··· 19 19 type="button" 20 20 className={classNames( 21 21 "tabbable p-1.5 bg-video-context-buttonFocus rounded transition-colors duration-100", 22 - props.active ? "bg-opacity-100" : "bg-opacity-0 cursor-pointer" 22 + props.active ? "bg-opacity-100" : "bg-opacity-0 cursor-pointer", 23 23 )} 24 24 onClick={props.onClick} 25 25 > ··· 50 50 51 51 const currentPercentage = (props.value - props.min) / (props.max - props.min); 52 52 const commit = useCallback( 53 - (percentage) => { 53 + (percentage: number) => { 54 54 const range = props.max - props.min; 55 55 const newPercentage = Math.min(Math.max(percentage, 0), 1); 56 56 props.onChange?.(props.min + range * newPercentage); 57 57 }, 58 - [props] 58 + [props], 59 59 ); 60 60 61 61 const { dragging, dragPercentage, dragMouseDown } = useProgressBar( 62 62 ref, 63 63 commit, 64 - true 64 + true, 65 65 ); 66 66 67 67 const [isFocused, setIsFocused] = useState(false); ··· 112 112 0, 113 113 Math.min( 114 114 1, 115 - dragging ? dragPercentage / 100 : currentPercentage 116 - ) 115 + dragging ? dragPercentage / 100 : currentPercentage, 116 + ), 117 117 ) * 100 118 118 }%`, 119 119 }} ··· 141 141 const num = Number((e.target as HTMLInputElement).value); 142 142 if (!Number.isNaN(num)) 143 143 props.onChange?.( 144 - (props.decimalsAllowed ?? 0) === 0 ? Math.round(num) : num 144 + (props.decimalsAllowed ?? 0) === 0 ? Math.round(num) : num, 145 145 ); 146 146 }} 147 147 ref={inputRef} ··· 163 163 <button 164 164 className={classNames( 165 165 inputClasses, 166 - props.controlButtons ? "relative" : undefined 166 + props.controlButtons ? "relative" : undefined, 167 167 )} 168 168 type="button" 169 169 tabIndex={0} 170 170 > 171 171 {textTransformer( 172 - props.value.toFixed(props.decimalsAllowed ?? 0) 172 + props.value.toFixed(props.decimalsAllowed ?? 0), 173 173 )} 174 174 </button> 175 175 {props.controlButtons ? ( ··· 180 180 onClick={ 181 181 () => 182 182 props.onChange?.( 183 - props.value - 1 / 10 ** (props.decimalsAllowed ?? 0) 183 + props.value - 184 + 1 / 10 ** (props.decimalsAllowed ?? 0), 184 185 ) // Remove depending on the decimalsAllowed. If there's 1 decimal allowed, add 0.1. For 2, add 0.01, etc. 185 186 } 186 187 className={arrowButtonClasses} ··· 194 195 onClick={ 195 196 () => 196 197 props.onChange?.( 197 - props.value + 1 / 10 ** (props.decimalsAllowed ?? 0) 198 + props.value + 199 + 1 / 10 ** (props.decimalsAllowed ?? 0), 198 200 ) // Add depending on the decimalsAllowed. If there's 1 decimal allowed, add 0.1. For 2, add 0.01, etc. 199 201 } 200 202 className={arrowButtonClasses}
+4 -2
src/components/player/atoms/settings/CaptionsView.tsx
··· 127 127 setCurrentlyDownloading(language); 128 128 return selectLanguage(language); 129 129 }, 130 - [selectLanguage, setCurrentlyDownloading] 130 + [selectLanguage, setCurrentlyDownloading], 131 131 ); 132 132 133 133 const content = subtitleList.map((v, i) => { ··· 141 141 loading={v.language === currentlyDownloading && downloadReq.loading} 142 142 error={ 143 143 v.language === currentlyDownloading && downloadReq.error 144 - ? downloadReq.error 144 + ? downloadReq.error.toString() 145 145 : undefined 146 146 } 147 147 onClick={() => startDownload(v.language)} ··· 182 182 </> 183 183 ); 184 184 } 185 + 186 + export default CaptionsView;
+1 -1
src/components/player/atoms/settings/Downloads.tsx
··· 48 48 selectedCaption 49 49 ? convertSubtitlesToSrtDataurl(selectedCaption?.srtData) 50 50 : null, 51 - [selectedCaption] 51 + [selectedCaption], 52 52 ); 53 53 54 54 if (!downloadUrl) return null;
+2 -2
src/components/player/atoms/settings/PlaybackSettingsView.tsx
··· 21 21 "w-full px-2 py-1 rounded-md tabbable", 22 22 props.selected === option 23 23 ? "bg-video-context-buttons-active text-white" 24 - : null 24 + : null, 25 25 )} 26 26 onClick={() => props.onClick(option)} 27 27 key={option} ··· 44 44 (v: number) => { 45 45 display?.setPlaybackRate(v); 46 46 }, 47 - [display] 47 + [display], 48 48 ); 49 49 50 50 const options = [0.25, 0.5, 1, 1.5, 2];
+2 -2
src/components/player/atoms/settings/QualityView.tsx
··· 43 43 const currentQuality = usePlayerStore((s) => s.currentQuality); 44 44 const switchQuality = usePlayerStore((s) => s.switchQuality); 45 45 const enableAutomaticQuality = usePlayerStore( 46 - (s) => s.enableAutomaticQuality 46 + (s) => s.enableAutomaticQuality, 47 47 ); 48 48 const setAutomaticQuality = useQualityStore((s) => s.setAutomaticQuality); 49 49 const setLastChosenQuality = useQualityStore((s) => s.setLastChosenQuality); ··· 56 56 switchQuality(q); 57 57 router.close(); 58 58 }, 59 - [router, switchQuality, setLastChosenQuality, setAutomaticQuality] 59 + [router, switchQuality, setLastChosenQuality, setAutomaticQuality], 60 60 ); 61 61 62 62 const changeAutomatic = useCallback(() => {
+3 -3
src/components/player/atoms/settings/SettingsMenu.tsx
··· 17 17 const router = useOverlayRouter(id); 18 18 const currentQuality = usePlayerStore((s) => s.currentQuality); 19 19 const selectedCaptionLanguage = usePlayerStore( 20 - (s) => s.caption.selected?.language 20 + (s) => s.caption.selected?.language, 21 21 ); 22 22 const subtitlesEnabled = useSubtitleStore((s) => s.enabled); 23 23 const currentSourceId = usePlayerStore((s) => s.sourceId); 24 24 const sourceName = useMemo(() => { 25 25 if (!currentSourceId) return "..."; 26 26 const source = getCachedMetadata().find( 27 - (src) => src.id === currentSourceId 27 + (src) => src.id === currentSourceId, 28 28 ); 29 29 return source?.name ?? "..."; 30 30 }, [currentSourceId]); ··· 59 59 clickable 60 60 onClick={() => 61 61 router.navigate( 62 - source?.type === "file" ? "/download" : "/download/unable" 62 + source?.type === "file" ? "/download" : "/download/unable", 63 63 ) 64 64 } 65 65 rightSide={<Icon className="text-xl" icon={Icons.DOWNLOAD} />}
+1 -1
src/components/player/atoms/settings/SourceSelectingView.tsx
··· 41 41 props.routerId, 42 42 props.sourceId, 43 43 props.url, 44 - props.embedId 44 + props.embedId, 45 45 ); 46 46 47 47 return (
+3 -3
src/components/player/base/BackLink.tsx
··· 1 1 import { useTranslation } from "react-i18next"; 2 - import { useHistory } from "react-router-dom"; 2 + import { useNavigate } from "react-router-dom"; 3 3 4 4 import { Icon, Icons } from "@/components/Icon"; 5 5 6 6 export function BackLink(props: { url: string }) { 7 7 const { t } = useTranslation(); 8 - const history = useHistory(); 8 + const navigate = useNavigate(); 9 9 10 10 return ( 11 11 <div className="flex items-center"> 12 12 <button 13 13 type="button" 14 - onClick={() => history.push(props.url)} 14 + onClick={() => navigate(props.url)} 15 15 className="py-1 -my-1 px-2 -mx-2 tabbable rounded-lg flex items-center cursor-pointer text-type-secondary hover:text-white transition-colors duration-200 font-medium" 16 16 > 17 17 <Icon className="mr-2" icon={Icons.ARROW_LEFT} />
+1 -1
src/components/player/base/BottomControls.tsx
··· 8 8 children: React.ReactNode; 9 9 }) { 10 10 const setHoveringAnyControls = usePlayerStore( 11 - (s) => s.setHoveringAnyControls 11 + (s) => s.setHoveringAnyControls, 12 12 ); 13 13 14 14 useEffect(() => {
+1 -1
src/components/player/base/Container.tsx
··· 21 21 function useHovering(containerEl: RefObject<HTMLDivElement>) { 22 22 const timeoutRef = useRef<ReturnType<typeof setTimeout> | null>(null); 23 23 const updateInterfaceHovering = usePlayerStore( 24 - (s) => s.updateInterfaceHovering 24 + (s) => s.updateInterfaceHovering, 25 25 ); 26 26 const hovering = usePlayerStore((s) => s.interface.hovering); 27 27
+1 -1
src/components/player/base/LeftSideControls.tsx
··· 8 8 className?: string; 9 9 }) { 10 10 const setHoveringLeftControls = usePlayerStore( 11 - (s) => s.setHoveringLeftControls 11 + (s) => s.setHoveringLeftControls, 12 12 ); 13 13 14 14 const mouseLeave = useCallback(() => {
+3 -3
src/components/player/base/SubtitleView.tsx
··· 79 79 80 80 const parsedCaptions = useMemo( 81 81 () => (srtData ? parseSubtitles(srtData, language) : []), 82 - [srtData, language] 82 + [srtData, language], 83 83 ); 84 84 85 85 const visibileCaptions = useMemo( 86 86 () => 87 87 parsedCaptions.filter(({ start, end }) => 88 - captionIsVisible(start, end, delay, videoTime) 88 + captionIsVisible(start, end, delay, videoTime), 89 89 ), 90 - [parsedCaptions, videoTime, delay] 90 + [parsedCaptions, videoTime, delay], 91 91 ); 92 92 93 93 return (
+1 -1
src/components/player/base/TopControls.tsx
··· 11 11 }) { 12 12 const bannerSize = useBannerSize("player"); 13 13 const setHoveringAnyControls = usePlayerStore( 14 - (s) => s.setHoveringAnyControls 14 + (s) => s.setHoveringAnyControls, 15 15 ); 16 16 17 17 useEffect(() => {
+7 -7
src/components/player/display/base.ts
··· 36 36 37 37 function qualityToHlsLevel(quality: SourceQuality): number | null { 38 38 const found = Object.entries(levelConversionMap).find( 39 - (entry) => entry[1] === quality 39 + (entry) => entry[1] === quality, 40 40 ); 41 41 return found ? +found[0] : null; 42 42 } ··· 83 83 }); 84 84 if (availableQuality) { 85 85 const levelIndex = hls.levels.findIndex( 86 - (v) => v.height === qualityToHlsLevel(availableQuality) 86 + (v) => v.height === qualityToHlsLevel(availableQuality), 87 87 ); 88 88 if (levelIndex !== -1) { 89 89 hls.currentLevel = levelIndex; ··· 182 182 videoElement.addEventListener("canplay", () => emit("loading", false)); 183 183 videoElement.addEventListener("waiting", () => emit("loading", true)); 184 184 videoElement.addEventListener("volumechange", () => 185 - emit("volumechange", videoElement?.muted ? 0 : videoElement?.volume ?? 0) 185 + emit("volumechange", videoElement?.muted ? 0 : videoElement?.volume ?? 0), 186 186 ); 187 187 videoElement.addEventListener("timeupdate", () => 188 - emit("time", videoElement?.currentTime ?? 0) 188 + emit("time", videoElement?.currentTime ?? 0), 189 189 ); 190 190 videoElement.addEventListener("loadedmetadata", () => { 191 191 if ( ··· 202 202 if (videoElement) 203 203 emit( 204 204 "buffered", 205 - handleBuffered(videoElement.currentTime, videoElement.buffered) 205 + handleBuffered(videoElement.currentTime, videoElement.buffered), 206 206 ); 207 207 }); 208 208 videoElement.addEventListener("webkitendfullscreen", () => { ··· 216 216 if (e.availability === "available") { 217 217 emit("canairplay", true); 218 218 } 219 - } 219 + }, 220 220 ); 221 221 videoElement.addEventListener("ratechange", () => { 222 222 if (videoElement) emit("playbackrate", videoElement.playbackRate); ··· 368 368 webkitPlayer.webkitSetPresentationMode( 369 369 webkitPlayer.webkitPresentationMode === "picture-in-picture" 370 370 ? "inline" 371 - : "picture-in-picture" 371 + : "picture-in-picture", 372 372 ); 373 373 } 374 374 if (canPictureInPicture()) {
+3 -3
src/components/player/display/chromecast.ts
··· 28 28 */ 29 29 30 30 export function makeChromecastDisplayInterface( 31 - ops: ChromeCastDisplayInterfaceOptions 31 + ops: ChromeCastDisplayInterfaceOptions, 32 32 ): DisplayInterface { 33 33 const { emit, on, off } = makeEmitter<DisplayInterfaceEvents>(); 34 34 let isPaused = false; ··· 89 89 }; 90 90 ops.controller?.addEventListener( 91 91 cast.framework.RemotePlayerEventType.ANY_CHANGE, 92 - listen 92 + listen, 93 93 ); 94 94 return () => { 95 95 ops.controller?.removeEventListener( 96 96 cast.framework.RemotePlayerEventType.ANY_CHANGE, 97 - listen 97 + listen, 98 98 ); 99 99 }; 100 100 }
+1 -1
src/components/player/display/displayInterface.ts
··· 54 54 load(ops: qualityChangeOptions): void; 55 55 changeQuality( 56 56 automaticQuality: boolean, 57 - preferredQuality: SourceQuality | null 57 + preferredQuality: SourceQuality | null, 58 58 ): void; 59 59 processVideoElement(video: HTMLVideoElement): void; 60 60 processContainerElement(container: HTMLElement): void;
+2 -2
src/components/player/hooks/useCaptions.ts
··· 8 8 const setLanguage = useSubtitleStore((s) => s.setLanguage); 9 9 const enabled = useSubtitleStore((s) => s.enabled); 10 10 const resetSubtitleSpecificSettings = useSubtitleStore( 11 - (s) => s.resetSubtitleSpecificSettings 11 + (s) => s.resetSubtitleSpecificSettings, 12 12 ); 13 13 const setCaption = usePlayerStore((s) => s.setCaption); 14 14 const lastSelectedLanguage = useSubtitleStore((s) => s.lastSelectedLanguage); ··· 27 27 resetSubtitleSpecificSettings(); 28 28 setLanguage(language); 29 29 }, 30 - [setLanguage, captionList, setCaption, resetSubtitleSpecificSettings] 30 + [setLanguage, captionList, setCaption, resetSubtitleSpecificSettings], 31 31 ); 32 32 33 33 const disable = useCallback(async () => {
+1 -1
src/components/player/hooks/useInitializePlayer.ts
··· 22 22 const source = usePlayerStore((s) => s.source); 23 23 const sourceIdentifier = useMemo( 24 24 () => (source ? JSON.stringify(source) : null), 25 - [source] 25 + [source], 26 26 ); 27 27 const { selectLastUsedLanguageIfEnabled } = useCaptions(); 28 28
+4 -4
src/components/player/hooks/usePlayer.ts
··· 16 16 17 17 function getProgress( 18 18 items: Record<string, ProgressMediaItem>, 19 - meta: PlayerMeta | null 19 + meta: PlayerMeta | null, 20 20 ): number { 21 21 const item = items[meta?.tmdbId ?? ""]; 22 22 if (!item || !meta) return 0; ··· 38 38 const setSourceId = usePlayerStore((s) => s.setSourceId); 39 39 const status = usePlayerStore((s) => s.status); 40 40 const shouldStartFromBeginning = usePlayerStore( 41 - (s) => s.interface.shouldStartFromBeginning 41 + (s) => s.interface.shouldStartFromBeginning, 42 42 ); 43 43 const setShouldStartFromBeginning = usePlayerStore( 44 - (s) => s.setShouldStartFromBeginning 44 + (s) => s.setShouldStartFromBeginning, 45 45 ); 46 46 const reset = usePlayerStore((s) => s.reset); 47 47 const meta = usePlayerStore((s) => s.meta); ··· 61 61 source: SourceSliceSource, 62 62 captions: CaptionListItem[], 63 63 sourceId: string | null, 64 - startAtOverride?: number 64 + startAtOverride?: number, 65 65 ) { 66 66 const start = startAtOverride ?? getProgress(progressStore.items, meta); 67 67 setCaption(null);
+3 -3
src/components/player/hooks/usePlayerMeta.ts
··· 13 13 const { meta, setMeta } = usePlayer(); 14 14 const scrapeMedia = useMemo( 15 15 () => (meta ? metaToScrapeMedia(meta) : null), 16 - [meta] 16 + [meta], 17 17 ); 18 18 19 19 const setDirectMeta = useCallback( 20 20 (m: PlayerMeta) => { 21 21 setMeta(m, playerStatus.SCRAPING); 22 22 }, 23 - [setMeta] 23 + [setMeta], 24 24 ); 25 25 26 26 const setPlayerMeta = useCallback( ··· 65 65 setDirectMeta(playerMeta); 66 66 return playerMeta; 67 67 }, 68 - [setDirectMeta] 68 + [setDirectMeta], 69 69 ); 70 70 71 71 return {
+2 -2
src/components/player/hooks/useShouldShowControls.tsx
··· 4 4 export function useShouldShowControls() { 5 5 const hovering = usePlayerStore((s) => s.interface.hovering); 6 6 const lastHoveringState = usePlayerStore( 7 - (s) => s.interface.lastHoveringState 7 + (s) => s.interface.lastHoveringState, 8 8 ); 9 9 const isPaused = usePlayerStore((s) => s.mediaPlaying.isPaused); 10 10 const hasOpenOverlay = usePlayerStore((s) => s.interface.hasOpenOverlay); 11 11 const isHoveringControls = usePlayerStore( 12 - (s) => s.interface.isHoveringControls 12 + (s) => s.interface.isHoveringControls, 13 13 ); 14 14 15 15 const isUsingTouch = lastHoveringState === PlayerHoverState.MOBILE_TAPPED;
+11 -11
src/components/player/hooks/useSourceSelection.ts
··· 24 24 routerId: string, 25 25 sourceId: string, 26 26 url: string, 27 - embedId: string 27 + embedId: string, 28 28 ) { 29 29 const setSource = usePlayerStore((s) => s.setSource); 30 30 const setCaption = usePlayerStore((s) => s.setCaption); ··· 43 43 const baseUrlMaker = makeProviderUrl(providerApiUrl); 44 44 const conn = await connectServerSideEvents<EmbedOutput>( 45 45 baseUrlMaker.scrapeEmbed(embedId, url), 46 - ["completed", "noOutput"] 46 + ["completed", "noOutput"], 47 47 ); 48 48 result = await conn.promise(); 49 49 } else { ··· 62 62 sourceId, 63 63 embedId, 64 64 status, 65 - err 65 + err, 66 66 ), 67 67 ]); 68 68 throw err; ··· 75 75 setSource( 76 76 convertRunoutputToSource({ stream: result.stream }), 77 77 convertProviderCaption(result.stream.captions), 78 - progress 78 + progress, 79 79 ); 80 80 router.close(); 81 81 }, [embedId, sourceId, meta, router, report, setCaption]); ··· 107 107 const baseUrlMaker = makeProviderUrl(providerApiUrl); 108 108 const conn = await connectServerSideEvents<SourcererOutput>( 109 109 baseUrlMaker.scrapeSource(sourceId, scrapeMedia), 110 - ["completed", "noOutput"] 110 + ["completed", "noOutput"], 111 111 ); 112 112 result = await conn.promise(); 113 113 } else { ··· 134 134 setSource( 135 135 convertRunoutputToSource({ stream: result.stream }), 136 136 convertProviderCaption(result.stream.captions), 137 - progress 137 + progress, 138 138 ); 139 139 setSourceId(sourceId); 140 140 router.close(); ··· 149 149 const conn = await connectServerSideEvents<EmbedOutput>( 150 150 baseUrlMaker.scrapeEmbed( 151 151 result.embeds[0].embedId, 152 - result.embeds[0].url 152 + result.embeds[0].url, 153 153 ), 154 - ["completed", "noOutput"] 154 + ["completed", "noOutput"], 155 155 ); 156 156 embedResult = await conn.promise(); 157 157 } else { ··· 170 170 sourceId, 171 171 result.embeds[0].embedId, 172 172 status, 173 - err 173 + err, 174 174 ), 175 175 ]); 176 176 throw err; ··· 181 181 sourceId, 182 182 result.embeds[0].embedId, 183 183 "success", 184 - null 184 + null, 185 185 ), 186 186 ]); 187 187 setSourceId(sourceId); ··· 189 189 setSource( 190 190 convertRunoutputToSource({ stream: embedResult.stream }), 191 191 convertProviderCaption(embedResult.stream.captions), 192 - progress 192 + progress, 193 193 ); 194 194 router.close(); 195 195 }
+2 -2
src/components/player/internals/CastingInternal.tsx
··· 102 102 } 103 103 newControlller.addEventListener( 104 104 cast.framework.RemotePlayerEventType.IS_CONNECTED_CHANGED, 105 - connectionChanged 105 + connectionChanged, 106 106 ); 107 107 108 108 return () => { 109 109 newControlller.removeEventListener( 110 110 cast.framework.RemotePlayerEventType.IS_CONNECTED_CHANGED, 111 - connectionChanged 111 + connectionChanged, 112 112 ); 113 113 }; 114 114 }, [available, setPlayer, setController, setInstance, setIsCasting]);
+2 -2
src/components/player/internals/ContextMenu/Sections.tsx
··· 9 9 <h3 10 10 className={classNames( 11 11 "uppercase font-bold text-video-context-type-secondary text-xs pt-8 pl-1 pb-2.5 border-b border-video-context-border", 12 - props.className 12 + props.className, 13 13 )} 14 14 > 15 15 {props.children} ··· 47 47 48 48 scrollingContainer.current?.scrollTo( 49 49 0, 50 - activeYPos - boxRect.height / 2 + activeLinkRect.height / 2 50 + activeYPos - boxRect.height / 2 + activeLinkRect.height / 2, 51 51 ); 52 52 }, [props.loaded]); 53 53
+2 -2
src/components/player/internals/KeyboardEvents.tsx
··· 75 75 } 76 76 if (k === "ArrowUp") 77 77 dataRef.current.setVolume( 78 - (dataRef.current.mediaPlaying?.volume || 0) + 0.15 78 + (dataRef.current.mediaPlaying?.volume || 0) + 0.15, 79 79 ); 80 80 if (k === "ArrowDown") 81 81 dataRef.current.setVolume( 82 - (dataRef.current.mediaPlaying?.volume || 0) - 0.15 82 + (dataRef.current.mediaPlaying?.volume || 0) - 0.15, 83 83 ); 84 84 if (k === "m") dataRef.current.toggleMute(); 85 85
+2 -2
src/components/player/internals/StatusCircle.tsx
··· 15 15 } 16 16 17 17 function statusIsLoading( 18 - props: StatusCircle | StatusCircleLoading 18 + props: StatusCircle | StatusCircleLoading, 19 19 ): props is StatusCircleLoading { 20 20 return props.type === "loading"; 21 21 } ··· 25 25 () => ({ 26 26 percentage: statusIsLoading(props) ? props.percentage : 0, 27 27 }), 28 - [props] 28 + [props], 29 29 ); 30 30 31 31 return (
+1 -1
src/components/player/internals/ThumbnailScraper.tsx
··· 95 95 0, 96 96 0, 97 97 this.canvasEl.width, 98 - this.canvasEl.height 98 + this.canvasEl.height, 99 99 ); 100 100 const imgUrl = this.canvasEl.toDataURL(); 101 101
+2 -2
src/components/player/internals/VideoClickTarget.tsx
··· 10 10 const display = usePlayerStore((s) => s.display); 11 11 const isPaused = usePlayerStore((s) => s.mediaPlaying.isPaused); 12 12 const updateInterfaceHovering = usePlayerStore( 13 - (s) => s.updateInterfaceHovering 13 + (s) => s.updateInterfaceHovering, 14 14 ); 15 15 const hovering = usePlayerStore((s) => s.interface.hovering); 16 16 ··· 33 33 updateInterfaceHovering(PlayerHoverState.MOBILE_TAPPED); 34 34 else updateInterfaceHovering(PlayerHoverState.NOT_HOVERING); 35 35 }, 36 - [display, isPaused, hovering, updateInterfaceHovering] 36 + [display, isPaused, hovering, updateInterfaceHovering], 37 37 ); 38 38 39 39 if (!show) return null;
+1 -1
src/components/player/internals/VideoContainer.tsx
··· 70 70 const language = usePlayerStore((s) => s.caption.selected?.language); 71 71 const trackObjectUrl = useObjectUrl( 72 72 () => (srtData ? convertSubtitlesToObjectUrl(srtData) : null), 73 - [srtData] 73 + [srtData], 74 74 ); 75 75 76 76 // report video element to display interface
+5 -5
src/components/player/utils/captions.ts
··· 12 12 start: number, 13 13 end: number, 14 14 delay: number, 15 - currentTime: number 15 + currentTime: number, 16 16 ) { 17 17 const delayedStart = start / 1000 + delay; 18 18 const delayedEnd = end / 1000 + delay; ··· 52 52 53 53 export function parseSubtitles( 54 54 text: string, 55 - _language?: string 55 + _language?: string, 56 56 ): CaptionCueType[] { 57 57 const vtt = convertSubtitlesToVtt(text); 58 58 return parse(vtt).filter((cue) => cue.type === "caption") as CaptionCueType[]; ··· 64 64 65 65 export function convertSubtitlesToSrtDataurl(text: string): string { 66 66 return `data:application/x-subrip;base64,${stringToBase64( 67 - convertSubtitlesToSrt(text) 67 + convertSubtitlesToSrt(text), 68 68 )}`; 69 69 } 70 70 ··· 72 72 return URL.createObjectURL( 73 73 new Blob([convertSubtitlesToVtt(text)], { 74 74 type: "text/vtt", 75 - }) 75 + }), 76 76 ); 77 77 } 78 78 79 79 export function convertProviderCaption( 80 - captions: RunOutput["stream"]["captions"] 80 + captions: RunOutput["stream"]["captions"], 81 81 ): CaptionListItem[] { 82 82 return captions.map((v) => ({ 83 83 language: v.language,
+1 -1
src/components/player/utils/mediaErrorDetails.ts
··· 18 18 }; 19 19 20 20 export function getMediaErrorDetails( 21 - err: MediaError | null 21 + err: MediaError | null, 22 22 ): (typeof mediaErrorMap)[number] { 23 23 const item = mediaErrorMap[err?.code ?? -1]; 24 24 if (!item) {
+2 -2
src/components/text-inputs/TextInputControl.tsx
··· 36 36 onFocus, 37 37 passwordToggleable, 38 38 }, 39 - ref 39 + ref, 40 40 ) => { 41 41 let inputType = "text"; 42 42 const [showPassword, setShowPassword] = useState(true); ··· 81 81 } 82 82 83 83 return input; 84 - } 84 + }, 85 85 );
+1 -1
src/components/text/Paragraph.tsx
··· 8 8 <p 9 9 className={classNames( 10 10 "text-errors-type-secondary", 11 - props.marginClass ?? "mt-6" 11 + props.marginClass ?? "mt-6", 12 12 )} 13 13 > 14 14 {props.children}
+1 -1
src/components/text/Title.tsx
··· 8 8 <h2 9 9 className={classNames( 10 10 "text-white text-3xl font-bold text-opacity-100 mt-6", 11 - props.className 11 + props.className, 12 12 )} 13 13 > 14 14 {props.children}
+1 -1
src/components/utils/Divider.tsx
··· 5 5 <hr 6 6 className={classNames( 7 7 "w-full h-px border-0 bg-utils-divider bg-opacity-50", 8 - props.marginClass ?? "my-8" 8 + props.marginClass ?? "my-8", 9 9 )} 10 10 /> 11 11 );
+4 -4
src/components/utils/Flare.tsx
··· 46 46 const halfSize = size / 2; 47 47 outerRef.current.style.setProperty( 48 48 "--bg-x", 49 - `${(e.clientX - rect.left - halfSize).toFixed(0)}px` 49 + `${(e.clientX - rect.left - halfSize).toFixed(0)}px`, 50 50 ); 51 51 outerRef.current.style.setProperty( 52 52 "--bg-y", 53 - `${(e.clientY - rect.top - halfSize).toFixed(0)}px` 53 + `${(e.clientY - rect.top - halfSize).toFixed(0)}px`, 54 54 ); 55 55 } 56 56 document.addEventListener("mousemove", mouseMove); ··· 66 66 props.className, 67 67 { 68 68 "!opacity-100": props.enabled ?? false, 69 - } 69 + }, 70 70 )} 71 71 style={{ 72 72 backgroundImage: `radial-gradient(circle at center, rgba(var(${cssVar}), 1), rgba(var(${cssVar}), 0) 70%)`, ··· 79 79 className={c( 80 80 "absolute inset-[1px] overflow-hidden", 81 81 props.className, 82 - props.backgroundClass 82 + props.backgroundClass, 83 83 )} 84 84 > 85 85 <div
+2 -2
src/components/utils/Lightbar.tsx
··· 33 33 options: LightbarOptions = { 34 34 horizontalMotion: false, 35 35 sizeRange: [10, 10], 36 - } 36 + }, 37 37 ) { 38 38 if (options.imgSrc) { 39 39 this.image = new Image(); ··· 117 117 this.radius * 1.5, 118 118 this.direction, 119 119 0, 120 - Math.PI * 2 120 + Math.PI * 2, 121 121 ); 122 122 ctx.fillStyle = "white"; 123 123 ctx.fill();
+1 -1
src/components/utils/Ol.tsx
··· 8 8 <li 9 9 className={classNames( 10 10 "grid grid-cols-[auto,1fr] gap-6", 11 - i !== props.items.length - 1 ? "pb-12" : undefined 11 + i !== props.items.length - 1 ? "pb-12" : undefined, 12 12 )} 13 13 > 14 14 <div className="relative z-0">
+1 -1
src/components/utils/Transition.tsx
··· 24 24 25 25 function getClasses( 26 26 animation: TransitionAnimations, 27 - duration: string 27 + duration: string, 28 28 ): TransitionClasses { 29 29 if (animation === "slide-down") { 30 30 return {
+11 -11
src/hooks/auth/useAuth.ts
··· 67 67 const publicKeyBase64Url = bytesToBase64Url(keys.publicKey); 68 68 const { challenge } = await getLoginChallengeToken( 69 69 backendUrl, 70 - publicKeyBase64Url 70 + publicKeyBase64Url, 71 71 ); 72 72 const signature = await signChallenge(keys, challenge); 73 73 const loginResult = await loginAccount(backendUrl, { ··· 83 83 const seedBase64 = bytesToBase64(keys.seed); 84 84 return userDataLogin(loginResult, user.user, user.session, seedBase64); 85 85 }, 86 - [userDataLogin, backendUrl] 86 + [userDataLogin, backendUrl], 87 87 ); 88 88 89 89 const logout = useCallback(async () => { ··· 92 92 await removeSession( 93 93 backendUrl, 94 94 currentAccount.token, 95 - currentAccount.sessionId 95 + currentAccount.sessionId, 96 96 ); 97 97 } catch { 98 98 // we dont care about failing to delete session ··· 104 104 async (registerData: RegistrationData) => { 105 105 const { challenge } = await getRegisterChallengeToken( 106 106 backendUrl, 107 - registerData.recaptchaToken 107 + registerData.recaptchaToken, 108 108 ); 109 109 const keys = await keysFromMnemonic(registerData.mnemonic); 110 110 const signature = await signChallenge(keys, challenge); ··· 122 122 registerResult, 123 123 registerResult.user, 124 124 registerResult.session, 125 - bytesToBase64(keys.seed) 125 + bytesToBase64(keys.seed), 126 126 ); 127 127 }, 128 - [backendUrl, userDataLogin] 128 + [backendUrl, userDataLogin], 129 129 ); 130 130 131 131 const importData = useCallback( 132 132 async ( 133 133 account: AccountWithToken, 134 134 progressItems: Record<string, ProgressMediaItem>, 135 - bookmarks: Record<string, BookmarkMediaItem> 135 + bookmarks: Record<string, BookmarkMediaItem>, 136 136 ) => { 137 137 if ( 138 138 Object.keys(progressItems).length === 0 && ··· 142 142 } 143 143 144 144 const progressInputs = Object.entries(progressItems).flatMap( 145 - ([tmdbId, item]) => progressMediaItemToInputs(tmdbId, item) 145 + ([tmdbId, item]) => progressMediaItemToInputs(tmdbId, item), 146 146 ); 147 147 148 148 const bookmarkInputs = Object.entries(bookmarks).map(([tmdbId, item]) => 149 - bookmarkMediaToInput(tmdbId, item) 149 + bookmarkMediaToInput(tmdbId, item), 150 150 ); 151 151 152 152 await importProgress(backendUrl, account, progressInputs); 153 153 await importBookmarks(backendUrl, account, bookmarkInputs); 154 154 }, 155 - [backendUrl] 155 + [backendUrl], 156 156 ); 157 157 158 158 const restore = useCallback( ··· 180 180 181 181 syncData(user.user, user.session, progress, bookmarks, settings); 182 182 }, 183 - [backendUrl, syncData, logout] 183 + [backendUrl, syncData, logout], 184 184 ); 185 185 186 186 return {
+5 -5
src/hooks/auth/useAuthData.ts
··· 25 25 const setTheme = useThemeStore((s) => s.setTheme); 26 26 const setAppLanguage = useLanguageStore((s) => s.setLanguage); 27 27 const importSubtitleLanguage = useSubtitleStore( 28 - (s) => s.importSubtitleLanguage 28 + (s) => s.importSubtitleLanguage, 29 29 ); 30 30 31 31 const replaceBookmarks = useBookmarkStore((s) => s.replaceBookmarks); ··· 36 36 loginResponse: LoginResponse, 37 37 user: UserResponse, 38 38 session: SessionResponse, 39 - seed: string 39 + seed: string, 40 40 ) => { 41 41 const account = { 42 42 token: loginResponse.token, ··· 49 49 setAccount(account); 50 50 return account; 51 51 }, 52 - [setAccount] 52 + [setAccount], 53 53 ); 54 54 55 55 const logout = useCallback(async () => { ··· 64 64 _session: SessionResponse, 65 65 progress: ProgressResponse[], 66 66 bookmarks: BookmarkResponse[], 67 - settings: SettingsResponse 67 + settings: SettingsResponse, 68 68 ) => { 69 69 replaceBookmarks(bookmarkResponsesToEntries(bookmarks)); 70 70 replaceItems(progressResponsesToEntries(progress)); ··· 87 87 setAppLanguage, 88 88 importSubtitleLanguage, 89 89 setTheme, 90 - ] 90 + ], 91 91 ); 92 92 93 93 return {
+3 -3
src/hooks/useOverlayRouter.ts
··· 17 17 const setAnchorPoint = useOverlayStore((s) => s.setAnchorPoint); 18 18 const routerActive = useMemo( 19 19 () => !!route && route.startsWith(`/${id}`), 20 - [route, id] 20 + [route, id], 21 21 ); 22 22 23 23 const update = useCallback(() => { ··· 96 96 if (route && !preventRouteClear) setRoute(null); 97 97 setTransition(null); 98 98 }, 99 - [setRoute, route, setTransition] 99 + [setRoute, route, setTransition], 100 100 ); 101 101 102 102 const open = useCallback( ··· 104 104 setTransition(null); 105 105 setRoute(joinPath(splitPath(defaultRoute, id))); 106 106 }, 107 - [id, setRoute, setTransition] 107 + [id, setRoute, setTransition], 108 108 ); 109 109 110 110 const activeRoute = routerActive
+3 -3
src/hooks/useProgressBar.ts
··· 13 13 } 14 14 15 15 function isClickEvent( 16 - evt: ActivityEvent 16 + evt: ActivityEvent, 17 17 ): evt is React.MouseEvent<HTMLElement> | MouseEvent { 18 18 return ( 19 19 evt.type === "mousedown" || ··· 29 29 export function useProgressBar( 30 30 barRef: RefObject<HTMLElement>, 31 31 commit: (percentage: number) => void, 32 - commitImmediately = false 32 + commitImmediately = false, 33 33 ) { 34 34 const [mouseDown, setMouseDown] = useState<boolean>(false); 35 35 const [progress, setProgress] = useState<number>(0); ··· 78 78 ((getEventX(ev) - rect.left) / barRef.current.offsetWidth) * 100; 79 79 setProgress(pos); 80 80 }, 81 - [setProgress, barRef] 81 + [setProgress, barRef], 82 82 ); 83 83 84 84 return {
+7 -7
src/hooks/useProviderScrape.tsx
··· 54 54 .reduce<Record<string, ScrapingSegment>>((a, v) => { 55 55 a[v.id] = v; 56 56 return a; 57 - }, {}) 57 + }, {}), 58 58 ); 59 59 setSourceOrder(evt.sourceIds.map((v) => ({ id: v, children: [] }))); 60 60 }, []); ··· 85 85 setSources((s) => { 86 86 evt.embeds.forEach((v) => { 87 87 const source = getCachedMetadata().find( 88 - (src) => src.id === v.embedScraperId 88 + (src) => src.id === v.embedScraperId, 89 89 ); 90 90 if (!source) throw new Error("invalid source id"); 91 91 const out: ScrapingSegment = { ··· 106 106 return [...s]; 107 107 }); 108 108 }, 109 - [] 109 + [], 110 110 ); 111 111 112 112 const startScrape = useCallback(() => { ··· 158 158 const baseUrlMaker = makeProviderUrl(providerApiUrl); 159 159 const conn = await connectServerSideEvents<RunOutput | "">( 160 160 baseUrlMaker.scrapeAll(media), 161 - ["completed", "noOutput"] 161 + ["completed", "noOutput"], 162 162 ); 163 163 conn.on("init", initEvent); 164 164 conn.on("start", startEvent); ··· 189 189 discoverEmbedsEvent, 190 190 getResult, 191 191 startScrape, 192 - ] 192 + ], 193 193 ); 194 194 195 195 return { ··· 204 204 containerRef: RefObject<HTMLDivElement | null>, 205 205 listRef: RefObject<HTMLDivElement | null>, 206 206 sourceOrder: ScrapingItems[], 207 - currentSource: string | undefined 207 + currentSource: string | undefined, 208 208 ) { 209 209 const [renderedOnce, setRenderedOnce] = useState(false); 210 210 ··· 217 217 ] as HTMLDivElement[]; 218 218 219 219 const currentIndex = elements.findIndex( 220 - (e) => e.getAttribute("data-source-id") === currentSource 220 + (e) => e.getAttribute("data-source-id") === currentSource, 221 221 ); 222 222 223 223 const currentElement = elements[currentIndex];
+6 -6
src/hooks/useQueryParams.ts
··· 1 1 import { useCallback, useMemo } from "react"; 2 - import { useHistory, useLocation } from "react-router-dom"; 2 + import { useLocation, useNavigate } from "react-router-dom"; 3 3 4 4 export function useQueryParams() { 5 5 const loc = useLocation(); 6 6 7 7 const queryParams = useMemo(() => { 8 8 const obj: Record<string, string> = Object.fromEntries( 9 - new URLSearchParams(loc.search).entries() 9 + new URLSearchParams(loc.search).entries(), 10 10 ); 11 11 12 12 return obj; ··· 16 16 } 17 17 18 18 export function useQueryParam( 19 - param: string 19 + param: string, 20 20 ): [string | null, (a: string | null) => void] { 21 21 const params = useQueryParams(); 22 22 const location = useLocation(); 23 - const router = useHistory(); 23 + const navigate = useNavigate(); 24 24 const currentValue = params[param] ?? null; 25 25 26 26 const set = useCallback( ··· 28 28 const parsed = new URLSearchParams(location.search); 29 29 if (value) parsed.set(param, value); 30 30 else parsed.delete(param); 31 - router.push({ 31 + navigate({ 32 32 search: parsed.toString(), 33 33 }); 34 34 }, 35 - [param, location.search, router] 35 + [param, location.search, navigate], 36 36 ); 37 37 38 38 return [currentValue, set];
+1 -1
src/hooks/useRandomTranslation.ts
··· 22 22 23 23 return typeof keys === "string" ? keys : defaultTitle; 24 24 }, 25 - [t, seed, shouldJoke] 25 + [t, seed, shouldJoke], 26 26 ); 27 27 28 28 return { t: getRandomTranslation };
+7 -6
src/hooks/useSearchQuery.ts
··· 1 1 import { useEffect, useState } from "react"; 2 - import { generatePath, useHistory, useParams } from "react-router-dom"; 2 + import { generatePath, useNavigate, useParams } from "react-router-dom"; 3 3 4 4 function decode(query: string | null | undefined) { 5 5 return query ? decodeURIComponent(query) : ""; ··· 8 8 export function useSearchQuery(): [ 9 9 string, 10 10 (inp: string, force?: boolean) => void, 11 - () => void 11 + () => void, 12 12 ] { 13 - const history = useHistory(); 13 + const navigate = useNavigate(); 14 14 const params = useParams<{ query: string }>(); 15 15 const [search, setSearch] = useState(decode(params.query)); 16 16 ··· 22 22 setSearch(inp); 23 23 if (!commitToUrl) return; 24 24 if (inp.length === 0) { 25 - history.replace("/"); 25 + navigate("/", { replace: true }); 26 26 return; 27 27 } 28 - history.replace( 28 + navigate( 29 29 generatePath("/browse/:query", { 30 30 query: inp, 31 - }) 31 + }), 32 + { replace: true }, 32 33 ); 33 34 }; 34 35
+4 -4
src/hooks/useSettingsState.ts
··· 11 11 import { SubtitleStyling } from "@/stores/subtitles"; 12 12 13 13 export function useDerived<T>( 14 - initial: T 14 + initial: T, 15 15 ): [T, Dispatch<SetStateAction<T>>, () => void, boolean] { 16 16 const [overwrite, setOverwrite] = useState<T | undefined>(undefined); 17 17 useEffect(() => { ··· 19 19 }, [initial]); 20 20 const changed = useMemo( 21 21 () => !isEqual(overwrite, initial) && overwrite !== undefined, 22 - [overwrite, initial] 22 + [overwrite, initial], 23 23 ); 24 24 const setter = useCallback<Dispatch<SetStateAction<T>>>( 25 25 (inp) => { 26 26 if (!(inp instanceof Function)) setOverwrite(inp); 27 27 else setOverwrite((s) => inp(s !== undefined ? s : initial)); 28 28 }, 29 - [initial, setOverwrite] 29 + [initial, setOverwrite], 30 30 ); 31 31 const data = overwrite === undefined ? initial : overwrite; 32 32 ··· 48 48 colorB: string; 49 49 icon: string; 50 50 } 51 - | undefined 51 + | undefined, 52 52 ) { 53 53 const [proxyUrlsState, setProxyUrls, resetProxyUrls, proxyUrlsChanged] = 54 54 useDerived(proxyUrls);
+21 -21
src/index.tsx
··· 6 6 7 7 import React, { Suspense, useCallback } from "react"; 8 8 import type { ReactNode } from "react"; 9 - import ReactDOM from "react-dom"; 9 + import { createRoot } from "react-dom/client"; 10 10 import { HelmetProvider } from "react-helmet-async"; 11 11 import { useTranslation } from "react-i18next"; 12 12 import { BrowserRouter, HashRouter } from "react-router-dom"; ··· 114 114 {t( 115 115 isCustomUrl 116 116 ? "screens.loadingUserError.textWithReset" 117 - : "screens.loadingUserError.text" 117 + : "screens.loadingUserError.text", 118 118 )} 119 119 </ErrorScreen> 120 120 ); ··· 141 141 return <HashRouter>{props.children}</HashRouter>; 142 142 } 143 143 144 - ReactDOM.render( 145 - <React.StrictMode> 146 - <ErrorBoundary> 147 - <TurnstileProvider /> 148 - <HelmetProvider> 149 - <Suspense fallback={<LoadingScreen type="lazy" />}> 150 - <ThemeProvider applyGlobal> 151 - <ProgressSyncer /> 152 - <BookmarkSyncer /> 153 - <SettingsSyncer /> 154 - <TheRouter> 155 - <MigrationRunner /> 156 - </TheRouter> 157 - </ThemeProvider> 158 - </Suspense> 159 - </HelmetProvider> 160 - </ErrorBoundary> 161 - </React.StrictMode>, 162 - document.getElementById("root") 144 + const container = document.getElementById("root"); 145 + const root = createRoot(container!); 146 + 147 + root.render( 148 + <ErrorBoundary> 149 + <TurnstileProvider /> 150 + <HelmetProvider> 151 + <Suspense fallback={<LoadingScreen type="lazy" />}> 152 + <ThemeProvider applyGlobal> 153 + <ProgressSyncer /> 154 + <BookmarkSyncer /> 155 + <SettingsSyncer /> 156 + <TheRouter> 157 + <MigrationRunner /> 158 + </TheRouter> 159 + </ThemeProvider> 160 + </Suspense> 161 + </HelmetProvider> 162 + </ErrorBoundary>, 163 163 );
+3 -3
src/pages/Login.tsx
··· 1 - import { useHistory } from "react-router-dom"; 1 + import { useNavigate } from "react-router-dom"; 2 2 3 3 import { SubPageLayout } from "@/pages/layouts/SubPageLayout"; 4 4 import { LoginFormPart } from "@/pages/parts/auth/LoginFormPart"; 5 5 import { PageTitle } from "@/pages/parts/util/PageTitle"; 6 6 7 7 export function LoginPage() { 8 - const history = useHistory(); 8 + const navigate = useNavigate(); 9 9 10 10 return ( 11 11 <SubPageLayout> 12 12 <PageTitle subpage k="global.pages.login" /> 13 13 <LoginFormPart 14 14 onLogin={() => { 15 - history.push("/"); 15 + navigate("/"); 16 16 }} 17 17 /> 18 18 </SubPageLayout>
+10 -8
src/pages/PlayerView.tsx
··· 1 1 import { RunOutput } from "@movie-web/providers"; 2 2 import { useCallback, useEffect, useState } from "react"; 3 - import { useHistory, useParams } from "react-router-dom"; 3 + import { useNavigate, useParams } from "react-router-dom"; 4 4 5 5 import { usePlayer } from "@/components/player/hooks/usePlayer"; 6 6 import { usePlayerMeta } from "@/components/player/hooks/usePlayerMeta"; ··· 18 18 import { parseTimestamp } from "@/utils/timestamp"; 19 19 20 20 export function PlayerView() { 21 - const history = useHistory(); 21 + const navigate = useNavigate(); 22 22 const params = useParams<{ 23 23 media: string; 24 24 episode?: string; ··· 52 52 const metaChange = useCallback( 53 53 (meta: PlayerMeta) => { 54 54 if (meta?.type === "show") 55 - history.push( 56 - `/media/${params.media}/${meta.season?.tmdbId}/${meta.episode?.tmdbId}` 55 + navigate( 56 + `/media/${params.media}/${meta.season?.tmdbId}/${meta.episode?.tmdbId}`, 57 57 ); 58 - else history.push(`/media/${params.media}`); 58 + else navigate(`/media/${params.media}`); 59 59 }, 60 - [history, params] 60 + [navigate, params], 61 61 ); 62 62 63 63 const playAfterScrape = useCallback( ··· 71 71 convertRunoutputToSource(out), 72 72 convertProviderCaption(out.stream.captions), 73 73 out.sourceId, 74 - shouldStartFromBeginning ? 0 : startAt 74 + shouldStartFromBeginning ? 0 : startAt, 75 75 ); 76 76 setShouldStartFromBeginning(false); 77 77 }, ··· 80 80 startAtParam, 81 81 shouldStartFromBeginning, 82 82 setShouldStartFromBeginning, 83 - ] 83 + ], 84 84 ); 85 85 86 86 return ( ··· 108 108 </PlayerPart> 109 109 ); 110 110 } 111 + 112 + export default PlayerView;
+4 -4
src/pages/Register.tsx
··· 1 1 import { useState } from "react"; 2 2 import { GoogleReCaptchaProvider } from "react-google-recaptcha-v3"; 3 - import { useHistory } from "react-router-dom"; 3 + import { useNavigate } from "react-router-dom"; 4 4 5 5 import { MetaResponse } from "@/backend/accounts/meta"; 6 6 import { SubPageLayout } from "@/pages/layouts/SubPageLayout"; ··· 26 26 } 27 27 28 28 export function RegisterPage() { 29 - const history = useHistory(); 29 + const navigate = useNavigate(); 30 30 const [step, setStep] = useState(0); 31 31 const [mnemonic, setMnemonic] = useState<null | string>(null); 32 32 const [account, setAccount] = useState<null | AccountProfile>(null); ··· 42 42 setSiteKey( 43 43 meta.hasCaptcha && meta.captchaClientKey 44 44 ? meta.captchaClientKey 45 - : null 45 + : null, 46 46 ); 47 47 setStep(1); 48 48 }} ··· 70 70 mnemonic={mnemonic} 71 71 userData={account} 72 72 onNext={() => { 73 - history.push("/"); 73 + navigate("/"); 74 74 }} 75 75 /> 76 76 ) : null}
+5 -3
src/pages/Settings.tsx
··· 45 45 <div 46 46 className={classNames( 47 47 "grid gap-12", 48 - isMobile ? "grid-cols-1" : "lg:grid-cols-[280px,1fr]" 48 + isMobile ? "grid-cols-1" : "lg:grid-cols-[280px,1fr]", 49 49 )} 50 50 > 51 51 <SidebarPart /> ··· 135 135 decryptedName, 136 136 proxySet, 137 137 backendUrlSetting, 138 - account?.profile 138 + account?.profile, 139 139 ); 140 140 141 141 const saveChanges = useCallback(async () => { ··· 149 149 if (state.deviceName.changed) { 150 150 const newDeviceName = await encryptData( 151 151 state.deviceName.state, 152 - base64ToBuffer(account.seed) 152 + base64ToBuffer(account.seed), 153 153 ); 154 154 await updateSession(backendUrl, account, { 155 155 deviceName: newDeviceName, ··· 270 270 </SubPageLayout> 271 271 ); 272 272 } 273 + 274 + export default SettingsPage;
+1 -1
src/pages/developer/VideoTesterView.tsx
··· 54 54 setMeta(testMeta); 55 55 playMedia(source, [], null); 56 56 }, 57 - [playMedia, setMeta] 57 + [playMedia, setMeta], 58 58 ); 59 59 60 60 return (
+1 -1
src/pages/layouts/ErrorLayout.tsx
··· 9 9 <div 10 10 className={classNames( 11 11 "w-full p-6 text-center flex flex-col items-center", 12 - props.maxWidth ?? "max-w-[28rem]" 12 + props.maxWidth ?? "max-w-[28rem]", 13 13 )} 14 14 > 15 15 {props.children}
+2 -2
src/pages/layouts/SubPageLayout.tsx
··· 10 10 <div 11 11 className={classNames( 12 12 props.positionClass ?? "fixed", 13 - "top-0 -right-48 rotate-[32deg] w-[50rem] h-[15rem] rounded-[70rem] bg-background-accentA blur-[100px] pointer-events-none opacity-25" 13 + "top-0 -right-48 rotate-[32deg] w-[50rem] h-[15rem] rounded-[70rem] bg-background-accentA blur-[100px] pointer-events-none opacity-25", 14 14 )} 15 15 /> 16 16 <div 17 17 className={classNames( 18 18 props.positionClass ?? "fixed", 19 - "top-0 right-48 rotate-[32deg] w-[50rem] h-[15rem] rounded-[70rem] bg-background-accentB blur-[100px] pointer-events-none opacity-25" 19 + "top-0 right-48 rotate-[32deg] w-[50rem] h-[15rem] rounded-[70rem] bg-background-accentB blur-[100px] pointer-events-none opacity-25", 20 20 )} 21 21 /> 22 22 </>
+3 -3
src/pages/parts/admin/WorkerTestPart.tsx
··· 23 23 props.errored 24 24 ? Icons.WARNING 25 25 : props.success 26 - ? Icons.CIRCLE_CHECK 27 - : Icons.EYE_SLASH 26 + ? Icons.CIRCLE_CHECK 27 + : Icons.EYE_SLASH 28 28 } 29 29 className={classNames({ 30 30 "text-xl mr-2 mt-0.5": true, ··· 72 72 await singularProxiedFetch( 73 73 worker.url, 74 74 "https://postman-echo.com/get", 75 - {} 75 + {}, 76 76 ); 77 77 updateWorker(worker.id, { 78 78 id: worker.id,
+1 -1
src/pages/parts/auth/LoginFormPart.tsx
··· 58 58 59 59 props.onLogin?.(); 60 60 }, 61 - [props, login, restore, t] 61 + [props, login, restore, t], 62 62 ); 63 63 64 64 return (
+6 -6
src/pages/parts/auth/TrustBackendPart.tsx
··· 1 1 import { useMemo } from "react"; 2 2 import { Trans, useTranslation } from "react-i18next"; 3 - import { useHistory } from "react-router-dom"; 3 + import { useNavigate } from "react-router-dom"; 4 4 import { useAsync } from "react-use"; 5 5 6 6 import { MetaResponse, getBackendMeta } from "@/backend/accounts/meta"; ··· 21 21 } 22 22 23 23 export function TrustBackendPart(props: TrustBackendPartProps) { 24 - const history = useHistory(); 24 + const navigate = useNavigate(); 25 25 const backendUrl = useBackendUrl(); 26 26 const hostname = useMemo(() => new URL(backendUrl).hostname, [backendUrl]); 27 27 const result = useAsync(() => { ··· 54 54 title={t("auth.trust.title")} 55 55 icon={<Icon icon={Icons.CIRCLE_EXCLAMATION} />} 56 56 > 57 - <Trans i18nKey="auth.trust.host"> 58 - <span className="text-white">{{ hostname }}</span> 59 - </Trans> 57 + <span className="text-white"> 58 + <Trans i18nKey="auth.trust.host">{{ hostname }}</Trans> 59 + </span> 60 60 </LargeCardText> 61 61 62 62 <div className="border border-authentication-border rounded-xl px-4 py-8 flex flex-col items-center space-y-2 my-8"> 63 63 {cardContent} 64 64 </div> 65 65 <LargeCardButtons> 66 - <Button theme="secondary" onClick={() => history.push("/")}> 66 + <Button theme="secondary" onClick={() => navigate("/")}> 67 67 {t("auth.trust.no")} 68 68 </Button> 69 69 <Button
+2 -2
src/pages/parts/auth/VerifyPassphrasePart.tsx
··· 36 36 37 37 const applicationLanguage = useLanguageStore((store) => store.language); 38 38 const defaultSubtitleLanguage = useSubtitleStore( 39 - (store) => store.lastSelectedLanguage 39 + (store) => store.lastSelectedLanguage, 40 40 ); 41 41 const applicationTheme = useThemeStore((store) => store.theme); 42 42 ··· 80 80 81 81 props.onNext?.(); 82 82 }, 83 - [props, register, restore] 83 + [props, register, restore], 84 84 ); 85 85 86 86 return (
+1 -1
src/pages/parts/errors/ErrorCard.tsx
··· 12 12 }) { 13 13 const [hasCopied, setHasCopied] = useState(false); 14 14 const hasCopiedUnsetDebounce = useRef<ReturnType<typeof setTimeout> | null>( 15 - null 15 + null, 16 16 ); 17 17 const { t } = useTranslation(); 18 18
+2 -2
src/pages/parts/home/HeroPart.tsx
··· 31 31 const [, setShowBg] = useState(false); 32 32 const bannerSize = useBannerSize(); 33 33 const stickStateChanged = useCallback( 34 - (isFixed) => { 34 + (isFixed: boolean) => { 35 35 setShowBg(isFixed); 36 36 setIsSticky(isFixed); 37 37 }, 38 - [setShowBg, setIsSticky] 38 + [setShowBg, setIsSticky], 39 39 ); 40 40 41 41 const { width: windowWidth } = useWindowSize();
+7 -7
src/pages/parts/player/MetaPart.tsx
··· 1 1 import { useTranslation } from "react-i18next"; 2 - import { useHistory, useParams } from "react-router-dom"; 2 + import { useNavigate, useParams } from "react-router-dom"; 3 3 import { useAsync } from "react-use"; 4 4 import type { AsyncReturnType } from "type-fest"; 5 5 ··· 38 38 episode?: string; 39 39 season?: string; 40 40 }>(); 41 - const history = useHistory(); 41 + const navigate = useNavigate(); 42 42 43 43 const { error, value, loading } = useAsync(async () => { 44 44 const providerApiUrl = getLoadbalancedProviderApiUrl(); ··· 53 53 54 54 let data: ReturnType<typeof decodeTMDBId> = null; 55 55 try { 56 - data = decodeTMDBId(params.media); 56 + data = decodeTMDBId(params.media as string); 57 57 } catch { 58 58 // error dont matter, itll just be a 404 59 59 } ··· 76 76 let epId = params.episode; 77 77 if (meta.meta.type === MWMediaType.SERIES) { 78 78 let ep = meta.meta.seasonData.episodes.find( 79 - (v) => v.id === params.episode 79 + (v) => v.id === params.episode, 80 80 ); 81 81 if (!ep) ep = meta.meta.seasonData.episodes[0]; 82 82 epId = ep.id; ··· 84 84 params.season !== meta.meta.seasonData.id || 85 85 params.episode !== ep.id 86 86 ) { 87 - history.replace( 88 - `/media/${params.media}/${meta.meta.seasonData.id}/${ep.id}` 89 - ); 87 + navigate(`/media/${params.media}/${meta.meta.seasonData.id}/${ep.id}`, { 88 + replace: true, 89 + }); 90 90 } 91 91 } 92 92
+1 -1
src/pages/parts/player/ScrapeErrorPart.tsx
··· 26 26 const error = useMemo(() => { 27 27 const data = props.data; 28 28 const amountError = Object.values(data.sources).filter( 29 - (v) => v.status === "failure" 29 + (v) => v.status === "failure", 30 30 ); 31 31 if (amountError.length === 0) return null; 32 32 let str = "";
+8 -8
src/pages/parts/player/ScrapingPart.tsx
··· 24 24 onGetStream?: (stream: AsyncReturnType<ProviderControls["runAll"]>) => void; 25 25 onResult?: ( 26 26 sources: Record<string, ScrapingSegment>, 27 - sourceOrder: ScrapingItems[] 27 + sourceOrder: ScrapingItems[], 28 28 ) => void; 29 29 } 30 30 ··· 39 39 containerRef, 40 40 listRef, 41 41 sourceOrder, 42 - currentSource 42 + currentSource, 43 43 ); 44 44 45 45 const resultRef = useRef({ ··· 62 62 if (!isMounted()) return; 63 63 props.onResult?.( 64 64 resultRef.current.sources, 65 - resultRef.current.sourceOrder 65 + resultRef.current.sourceOrder, 66 66 ); 67 67 report( 68 68 scrapePartsToProviderMetric( 69 69 props.media, 70 70 resultRef.current.sourceOrder, 71 - resultRef.current.sources 72 - ) 71 + resultRef.current.sources, 72 + ), 73 73 ); 74 74 props.onGetStream?.(output); 75 75 })(); 76 76 }, [startScraping, props, report, isMounted]); 77 77 78 78 const currentProvider = sourceOrder.find( 79 - (s) => sources[s.id].status === "pending" 79 + (s) => sources[s.id].status === "pending", 80 80 ); 81 81 let currentProviderIndex = sourceOrder.findIndex( 82 - (provider) => currentProvider?.id === provider.id 82 + (provider) => currentProvider?.id === provider.id, 83 83 ); 84 84 if (currentProviderIndex === -1) 85 85 currentProviderIndex = sourceOrder.length - 1; ··· 101 101 const source = sources[order.id]; 102 102 const distance = Math.abs( 103 103 sourceOrder.findIndex((t) => t.id === order.id) - 104 - currentProviderIndex 104 + currentProviderIndex, 105 105 ); 106 106 return ( 107 107 <div
+2 -2
src/pages/parts/settings/ConnectionsPart.tsx
··· 34 34 }), 35 35 ]); 36 36 }, 37 - [setProxyUrls] 37 + [setProxyUrls], 38 38 ); 39 39 40 40 const removeItem = useCallback( 41 41 (index: number) => { 42 42 setProxyUrls((s) => [...(s ?? []).filter((v, i) => i !== index)]); 43 43 }, 44 - [setProxyUrls] 44 + [setProxyUrls], 45 45 ); 46 46 47 47 return (
+3 -3
src/pages/parts/settings/RegisterCalloutPart.tsx
··· 1 1 import { useTranslation } from "react-i18next"; 2 - import { useHistory } from "react-router-dom"; 2 + import { useNavigate } from "react-router-dom"; 3 3 4 4 import { Button } from "@/components/buttons/Button"; 5 5 import { SolidSettingsCard } from "@/components/layout/SettingsCard"; 6 6 import { Heading3 } from "@/components/utils/Text"; 7 7 8 8 export function RegisterCalloutPart() { 9 - const history = useHistory(); 9 + const navigate = useNavigate(); 10 10 const { t } = useTranslation(); 11 11 12 12 return ( ··· 22 22 </p> 23 23 </div> 24 24 <div className="flex justify-end items-center"> 25 - <Button theme="purple" onClick={() => history.push("/register")}> 25 + <Button theme="purple" onClick={() => navigate("/register")}> 26 26 {t("settings.account.register.cta")} 27 27 </Button> 28 28 </div>
+1 -1
src/pages/parts/settings/SidebarPart.tsx
··· 23 23 {t( 24 24 secure 25 25 ? "settings.sidebar.info.secure" 26 - : "settings.sidebar.info.insecure" 26 + : "settings.sidebar.info.insecure", 27 27 )} 28 28 </div> 29 29 );
+3 -3
src/pages/parts/settings/ThemePart.tsx
··· 44 44 "tabbable scroll-mt-32 w-full h-32 relative rounded-lg border bg-gradient-to-br from-themePreview-primary/20 to-themePreview-secondary/10 bg-clip-content transition-colors duration-150", 45 45 props.active 46 46 ? "border-themePreview-primary" 47 - : "border-transparent group-hover:border-white/20" 47 + : "border-transparent group-hover:border-white/20", 48 48 )} 49 49 > 50 50 {/* Dots */} ··· 57 57 icon={Icons.CHECKMARK} 58 58 className={classNames( 59 59 "absolute top-3 right-3 text-xs text-white transition-opacity duration-150", 60 - props.active ? "opacity-100" : "opacity-0" 60 + props.active ? "opacity-100" : "opacity-0", 61 61 )} 62 62 /> 63 63 {/* Mini movie-web. So Kawaiiiii! */} ··· 105 105 <span 106 106 className={classNames( 107 107 "inline-block px-3 text-sm transition-opacity duration-150 rounded-full bg-[#27182F] text-white", 108 - props.active ? "opacity-100" : "opacity-0 pointer-events-none" 108 + props.active ? "opacity-100" : "opacity-0 pointer-events-none", 109 109 )} 110 110 > 111 111 {t("settings.appearance.activeTheme")}
+79 -55
src/setup/App.tsx
··· 1 - import { ReactElement, lazy, useEffect } from "react"; 1 + import { ReactElement, Suspense, lazy, useEffect } from "react"; 2 + import { lazyWithPreload } from "react-lazy-with-preload"; 2 3 import { 3 - Redirect, 4 + Navigate, 4 5 Route, 5 - Switch, 6 - useHistory, 6 + Routes, 7 7 useLocation, 8 + useNavigate, 8 9 useParams, 9 10 } from "react-router-dom"; 10 11 ··· 18 19 import { NotFoundPage } from "@/pages/errors/NotFoundPage"; 19 20 import { HomePage } from "@/pages/HomePage"; 20 21 import { LoginPage } from "@/pages/Login"; 21 - import { PlayerView } from "@/pages/PlayerView"; 22 22 import { RegisterPage } from "@/pages/Register"; 23 - import { SettingsPage } from "@/pages/Settings"; 24 23 import { Layout } from "@/setup/Layout"; 25 24 import { useHistoryListener } from "@/stores/history"; 26 25 import { LanguageProvider } from "@/stores/language"; 27 26 27 + const DeveloperPage = lazy(() => import("@/pages/DeveloperPage")); 28 + const TestView = lazy(() => import("@/pages/developer/TestView")); 29 + const PlayerView = lazyWithPreload(() => import("@/pages/PlayerView")); 30 + const SettingsPage = lazyWithPreload(() => import("@/pages/Settings")); 31 + 32 + PlayerView.preload(); 33 + SettingsPage.preload(); 34 + 28 35 function LegacyUrlView({ children }: { children: ReactElement }) { 29 36 const location = useLocation(); 30 - const { replace } = useHistory(); 37 + const navigate = useNavigate(); 31 38 32 39 useEffect(() => { 33 40 const url = location.pathname; 34 41 if (!isLegacyUrl(url)) return; 35 42 convertLegacyUrl(location.pathname).then((convertedUrl) => { 36 - replace(convertedUrl ?? "/"); 43 + navigate(convertedUrl ?? "/", { replace: true }); 37 44 }); 38 - }, [location.pathname, replace]); 45 + }, [location.pathname, navigate]); 39 46 40 47 if (isLegacyUrl(location.pathname)) return null; 41 48 return children; ··· 43 50 44 51 function QuickSearch() { 45 52 const { query } = useParams<{ query: string }>(); 46 - const { replace } = useHistory(); 53 + const navigate = useNavigate(); 47 54 48 55 useEffect(() => { 49 56 if (query) { 50 57 generateQuickSearchMediaUrl(query).then((url) => { 51 - replace(url ?? "/"); 58 + navigate(url ?? "/", { replace: true }); 52 59 }); 53 60 } else { 54 - replace("/"); 61 + navigate("/", { replace: true }); 62 + } 63 + }, [query, navigate]); 64 + 65 + return null; 66 + } 67 + 68 + function QueryView() { 69 + const { query } = useParams<{ query: string }>(); 70 + const navigate = useNavigate(); 71 + 72 + useEffect(() => { 73 + if (query) { 74 + navigate(`/browse/${query}`, { replace: true }); 75 + } else { 76 + navigate("/", { replace: true }); 55 77 } 56 - }, [query, replace]); 78 + }, [query, navigate]); 57 79 58 80 return null; 59 81 } ··· 65 87 return ( 66 88 <Layout> 67 89 <LanguageProvider /> 68 - <Switch> 90 + <Routes> 69 91 {/* functional routes */} 70 - <Route exact path="/s/:query"> 71 - <QuickSearch /> 72 - </Route> 73 - <Route exact path="/search/:type"> 74 - <Redirect to="/browse" push={false} /> 75 - </Route> 76 - <Route exact path="/search/:type/:query?"> 77 - {({ match }) => { 78 - if (match?.params.query) 79 - return ( 80 - <Redirect to={`/browse/${match?.params.query}`} push={false} /> 81 - ); 82 - return <Redirect to="/browse" push={false} />; 83 - }} 84 - </Route> 92 + <Route path="/s/:query" element={<QuickSearch />} /> 93 + <Route path="/search/:type" element={<Navigate to="/browse" />} /> 94 + <Route path="/search/:type/:query?" element={<QueryView />} /> 85 95 86 96 {/* pages */} 87 - <Route exact path={["/media/:media", "/media/:media/:season/:episode"]}> 88 - <LegacyUrlView> 89 - <PlayerView /> 90 - </LegacyUrlView> 91 - </Route> 92 - <Route exact path={["/browse/:query?", "/"]} component={HomePage} /> 93 - <Route exact path="/register" component={RegisterPage} /> 94 - <Route exact path="/login" component={LoginPage} /> 95 - <Route exact path="/about" component={AboutPage} /> 97 + <Route 98 + path="/media/:media" 99 + element={ 100 + <LegacyUrlView> 101 + <Suspense fallback={null}> 102 + <PlayerView /> 103 + </Suspense> 104 + </LegacyUrlView> 105 + } 106 + /> 107 + <Route 108 + path="/media/:media/:season/:episode" 109 + element={ 110 + <LegacyUrlView> 111 + <Suspense fallback={null}> 112 + <PlayerView /> 113 + </Suspense> 114 + </LegacyUrlView> 115 + } 116 + /> 117 + <Route path="/browse/:query?" element={<HomePage />} /> 118 + <Route path="/" element={<HomePage />} /> 119 + <Route path="/register" element={<RegisterPage />} /> 120 + <Route path="/login" element={<LoginPage />} /> 121 + <Route path="/about" element={<AboutPage />} /> 96 122 97 123 {shouldHaveDmcaPage() ? ( 98 - <Route exact path="/dmca" component={DmcaPage} /> 124 + <Route path="/dmca" element={<DmcaPage />} /> 99 125 ) : null} 100 126 101 127 {/* Settings page */} 102 - <Route exact path="/settings" component={SettingsPage} /> 128 + <Route 129 + path="/settings" 130 + element={ 131 + <Suspense fallback={null}> 132 + <SettingsPage /> 133 + </Suspense> 134 + } 135 + /> 103 136 104 137 {/* admin routes */} 105 - <Route exact path="/admin" component={AdminPage} /> 138 + <Route path="/admin" element={<AdminPage />} /> 106 139 107 140 {/* other */} 108 - <Route 109 - exact 110 - path="/dev" 111 - component={lazy(() => import("@/pages/DeveloperPage"))} 112 - /> 113 - <Route path="/dev/video"> 114 - <VideoTesterView /> 115 - </Route> 141 + <Route path="/dev" element={<DeveloperPage />} /> 142 + <Route path="/dev/video" element={<VideoTesterView />} /> 116 143 {/* developer routes that can abuse workers are disabled in production */} 117 144 {process.env.NODE_ENV === "development" ? ( 118 - <Route 119 - path="/dev/test" 120 - component={lazy(() => import("@/pages/developer/TestView"))} 121 - /> 145 + <Route path="/dev/test" element={<TestView />} /> 122 146 ) : null} 123 - <Route path="*" component={NotFoundPage} /> 124 - </Switch> 147 + <Route path="*" element={<NotFoundPage />} /> 148 + </Routes> 125 149 </Layout> 126 150 ); 127 151 }
+1 -1
src/setup/i18n.ts
··· 7 7 // Languages 8 8 const langCodes = Object.keys(locales); 9 9 const resources = Object.fromEntries( 10 - Object.entries(locales).map((entry) => [entry[0], { translation: entry[1] }]) 10 + Object.entries(locales).map((entry) => [entry[0], { translation: entry[1] }]), 11 11 ); 12 12 i18n.use(initReactI18next).init({ 13 13 fallbackLng: "en",
+2 -2
src/stores/__old/migrations.ts
··· 47 47 if (version.migrate) { 48 48 localStorage.setItem( 49 49 `BACKUP-v${version.version}-${internal.key}`, 50 - JSON.stringify(mostRecentData) 50 + JSON.stringify(mostRecentData), 51 51 ); 52 52 mostRecentData = await version.migrate(mostRecentData); 53 53 } ··· 121 121 122 122 function assertStore(store: InternalStoreData) { 123 123 const versionListSorted = store.versions.sort( 124 - (a, b) => a.version - b.version 124 + (a, b) => a.version - b.version, 125 125 ); 126 126 versionListSorted.forEach((v, i, arr) => { 127 127 if (i === 0) return;
+1 -1
src/stores/__old/settings/store.ts
··· 53 53 subtitleStore.importSubtitleLanguage( 54 54 old.captionSettings.language === "none" 55 55 ? null 56 - : old.captionSettings.language 56 + : old.captionSettings.language, 57 57 ); 58 58 59 59 return {};
+9 -9
src/stores/__old/watched/migrations/v2.ts
··· 36 36 37 37 async function getMetas( 38 38 uniqueMedias: Record<string, any>, 39 - oldData?: OldData 39 + oldData?: OldData, 40 40 ): Promise<Record<string, Record<string, DetailedMeta | null>> | undefined> { 41 41 const yearsAreClose = (a: number, b: number) => { 42 42 return Math.abs(a - b) <= 1; ··· 53 53 const relevantItem = data.find( 54 54 (res) => 55 55 yearsAreClose(Number(res.year), year) && 56 - compareTitle(res.title, item.title) 56 + compareTitle(res.title, item.title), 57 57 ); 58 58 if (!relevantItem) { 59 59 console.error(`No item found for migration: ${item.title}`); ··· 63 63 id: item.mediaId, 64 64 data: relevantItem, 65 65 }; 66 - }) 66 + }), 67 67 ); 68 68 69 69 for (const item of relevantItems.filter(Boolean)) { ··· 79 79 ? oldData.items 80 80 .filter((watchedEntry: any) => watchedEntry.mediaId === item.id) 81 81 .map((watchedEntry: any) => watchedEntry.seasonId) 82 - : ["0"] 82 + : ["0"], 83 83 ), 84 84 ]; 85 85 const seasons = seasonNumbers.map((num) => ({ ··· 98 98 mediaMetas[item.id][key] = await getMetaFromId( 99 99 mediaItemTypeToMediaType(item.data.type), 100 100 item.data.id, 101 - id === "0" || id === null ? undefined : id 101 + id === "0" || id === null ? undefined : id, 102 102 ); 103 - }) 103 + }), 104 104 ); 105 105 } 106 106 ··· 166 166 }; 167 167 168 168 oldData.items = oldData.items.filter( 169 - (item) => JSON.stringify(item) !== JSON.stringify(oldWatched) 169 + (item) => JSON.stringify(item) !== JSON.stringify(oldWatched), 170 170 ); 171 171 newData.items.push(newItem); 172 172 } else if (oldWatched.mediaType === "series") { ··· 201 201 newData.items.find( 202 202 (item) => 203 203 item.item.meta.id === newItem.item.meta.id && 204 - item.item.series?.episodeId === newItem.item.series?.episodeId 204 + item.item.series?.episodeId === newItem.item.series?.episodeId, 205 205 ) 206 206 ) 207 207 continue; 208 208 209 209 oldData.items = oldData.items.filter( 210 - (item) => JSON.stringify(item) !== JSON.stringify(oldWatched) 210 + (item) => JSON.stringify(item) !== JSON.stringify(oldWatched), 211 211 ); 212 212 newData.items.push(newItem); 213 213 }
+7 -7
src/stores/__old/watched/migrations/v3.ts
··· 13 13 14 14 async function migrateId( 15 15 id: string, 16 - type: MWMediaType 16 + type: MWMediaType, 17 17 ): Promise<string | undefined> { 18 18 const meta = await getLegacyMetaFromId(type, id); 19 19 ··· 44 44 } 45 45 46 46 export async function migrateV3Videos( 47 - old: WatchedStoreData 47 + old: WatchedStoreData, 48 48 ): Promise<WatchedStoreData> { 49 49 const updatedItems = await Promise.all( 50 50 old.items.map(async (progress) => { 51 51 try { 52 52 const migratedId = await migrateId( 53 53 progress.item.meta.id, 54 - progress.item.meta.type 54 + progress.item.meta.type, 55 55 ); 56 56 57 57 if (!migratedId) return null; ··· 62 62 const series = clone.item.series; 63 63 const details = await getMediaDetails( 64 64 migratedId, 65 - TMDBContentTypes.TV 65 + TMDBContentTypes.TV, 66 66 ); 67 67 68 68 const season = details.seasons.find( 69 - (v) => v.season_number === series.season 69 + (v) => v.season_number === series.season, 70 70 ); 71 71 if (!season) return null; 72 72 73 73 const episodes = await getEpisodes(migratedId, season.season_number); 74 74 const episode = episodes.find( 75 - (v) => v.episode_number === series.episode 75 + (v) => v.episode_number === series.episode, 76 76 ); 77 77 if (!episode) return null; 78 78 ··· 84 84 } catch (err) { 85 85 return null; 86 86 } 87 - }) 87 + }), 88 88 ); 89 89 90 90 return {
+2 -2
src/stores/__old/watched/migrations/v4.ts
··· 29 29 ) { 30 30 // Find episode ID (barely ever works) 31 31 const episodeTitle = oldItem.item.meta.seasonData.episodes.find( 32 - (ep) => ep.number === oldItem.item.series?.episode 32 + (ep) => ep.number === oldItem.item.series?.episode, 33 33 )?.title; 34 34 35 35 // Add season to season data ··· 38 38 number: oldItem.item.series.season, 39 39 title: 40 40 oldItem.item.meta.seasons.find( 41 - (s) => s.number === oldItem.item.series?.season 41 + (s) => s.number === oldItem.item.series?.season, 42 42 )?.title || "Unknown season", 43 43 }; 44 44
+2 -2
src/stores/auth/index.ts
··· 82 82 })), 83 83 { 84 84 name: "__MW::auth", 85 - } 86 - ) 85 + }, 86 + ), 87 87 );
+1 -1
src/stores/banner/index.ts
··· 54 54 if (found) found.height = height; 55 55 }); 56 56 }, 57 - })) 57 + })), 58 58 ); 59 59 60 60 export function useBannerSize(location?: string) {
+3 -3
src/stores/bookmarks/BookmarkSyncer.tsx
··· 11 11 items: BookmarkUpdateItem[], 12 12 finish: (id: string) => void, 13 13 url: string, 14 - account: AccountWithToken | null 14 + account: AccountWithToken | null, 15 15 ) { 16 16 for (const item of items) { 17 17 // complete it beforehand so it doesn't get handled while in progress ··· 40 40 } catch (err) { 41 41 console.error( 42 42 `Failed to sync bookmark: ${item.tmdbId} - ${item.action}`, 43 - err 43 + err, 44 44 ); 45 45 } 46 46 } ··· 66 66 state.updateQueue, 67 67 removeUpdateItem, 68 68 url, 69 - user.account 69 + user.account, 70 70 ); 71 71 })(); 72 72 }, syncIntervalMs);
+2 -2
src/stores/bookmarks/index.ts
··· 97 97 })), 98 98 { 99 99 name: "__MW::bookmarks", 100 - } 101 - ) 100 + }, 101 + ), 102 102 );
+8 -13
src/stores/history/index.ts
··· 1 1 import { useEffect, useMemo } from "react"; 2 - import { useHistory, useLocation } from "react-router-dom"; 2 + import { useLocation } from "react-router-dom"; 3 3 import { useEffectOnce } from "react-use"; 4 4 import { create } from "zustand"; 5 5 import { immer } from "zustand/middleware/immer"; ··· 21 21 s.routes.push(route); 22 22 }); 23 23 }, 24 - })) 24 + })), 25 25 ); 26 26 27 27 export function useHistoryListener() { 28 - const history = useHistory(); 29 - const loc = useLocation(); 28 + const location = useLocation(); 30 29 const registerRoute = useHistoryStore((s) => s.registerRoute); 31 - useEffect( 32 - () => 33 - history.listen((a) => { 34 - registerRoute({ path: a.pathname }); 35 - }), 36 - [history, registerRoute] 37 - ); 30 + useEffect(() => { 31 + registerRoute({ path: location.pathname }); 32 + }, [location.pathname, registerRoute]); 38 33 39 34 useEffectOnce(() => { 40 - registerRoute({ path: loc.pathname }); 35 + registerRoute({ path: location.pathname }); 41 36 }); 42 37 } 43 38 ··· 51 46 (v) => 52 47 !v.path.startsWith("/media") && // cannot be a player link 53 48 location.pathname !== v.path && // cannot be current link 54 - !v.path.startsWith("/s/") // cannot be a quick search link 49 + !v.path.startsWith("/s/"), // cannot be a quick search link 55 50 ); 56 51 return route?.path ?? "/"; 57 52 }, [routes, location]);
+2 -2
src/stores/language/index.tsx
··· 22 22 }); 23 23 }, 24 24 })), 25 - { name: "__MW::locale" } 26 - ) 25 + { name: "__MW::locale" }, 26 + ), 27 27 ); 28 28 29 29 export function LanguageProvider() {
+1 -1
src/stores/overlay/store.ts
··· 48 48 s.anchorPoint = point; 49 49 }); 50 50 }, 51 - })) 51 + })), 52 52 );
+8 -8
src/stores/player/slices/display.ts
··· 26 26 set((s) => { 27 27 s.mediaPlaying.isPaused = true; 28 28 s.mediaPlaying.isPlaying = false; 29 - }) 29 + }), 30 30 ); 31 31 newDisplay.on("play", () => 32 32 set((s) => { 33 33 s.mediaPlaying.hasPlayedOnce = true; 34 34 s.mediaPlaying.isPaused = false; 35 35 s.mediaPlaying.isPlaying = true; 36 - }) 36 + }), 37 37 ); 38 38 newDisplay.on("fullscreen", (isFullscreen) => 39 39 set((s) => { 40 40 s.interface.isFullscreen = isFullscreen; 41 - }) 41 + }), 42 42 ); 43 43 newDisplay.on("time", (time) => 44 44 set((s) => { 45 45 s.progress.time = time; 46 - }) 46 + }), 47 47 ); 48 48 newDisplay.on("volumechange", (vol) => 49 49 set((s) => { 50 50 s.mediaPlaying.volume = vol; 51 - }) 51 + }), 52 52 ); 53 53 newDisplay.on("duration", (duration) => 54 54 set((s) => { 55 55 s.progress.duration = duration; 56 - }) 56 + }), 57 57 ); 58 58 newDisplay.on("buffered", (buffered) => 59 59 set((s) => { 60 60 s.progress.buffered = buffered; 61 - }) 61 + }), 62 62 ); 63 63 newDisplay.on("loading", (isLoading) => 64 64 set((s) => { 65 65 s.mediaPlaying.isLoading = isLoading; 66 - }) 66 + }), 67 67 ); 68 68 newDisplay.on("qualities", (qualities) => { 69 69 set((s) => {
+2 -2
src/stores/player/slices/source.ts
··· 69 69 setSource( 70 70 stream: SourceSliceSource, 71 71 captions: CaptionListItem[], 72 - startAt: number 72 + startAt: number, 73 73 ): void; 74 74 switchQuality(quality: SourceQuality): void; 75 75 setMeta(meta: PlayerMeta, status?: PlayerStatus): void; ··· 141 141 setSource( 142 142 stream: SourceSliceSource, 143 143 captions: CaptionListItem[], 144 - startAt: number 144 + startAt: number, 145 145 ) { 146 146 let qualities: string[] = []; 147 147 if (stream.type === "file") qualities = Object.keys(stream.qualities);
+2 -2
src/stores/player/slices/thumbnails.ts
··· 24 24 */ 25 25 export function nearestImageAt( 26 26 images: ThumbnailImage[], 27 - at: number 27 + at: number, 28 28 ): ThumbnailImagePosition | null { 29 29 // no images, early return 30 30 if (images.length === 0) return null; ··· 82 82 addImage(img) { 83 83 const store = get(); 84 84 const exactOrPastImageIndex = store.thumbnails.images.findIndex( 85 - (v) => v.at >= img.at 85 + (v) => v.at >= img.at, 86 86 ); 87 87 88 88 // not found past or exact, so just append to the end
+1 -1
src/stores/player/store.ts
··· 19 19 ...createDisplaySlice(...a), 20 20 ...createCastingSlice(...a), 21 21 ...createThumbnailSlice(...a), 22 - })) 22 + })), 23 23 );
+3 -3
src/stores/player/utils/qualities.ts
··· 37 37 38 38 export function getPreferredQuality( 39 39 availableQualites: SourceQuality[], 40 - qualityPreferences: QualityStore["quality"] 40 + qualityPreferences: QualityStore["quality"], 41 41 ) { 42 42 if ( 43 43 qualityPreferences.automaticQuality || ··· 48 48 49 49 // get preferred quality - not automatic or unknown 50 50 const chosenQualityIndex = sortedQualities.indexOf( 51 - qualityPreferences.lastChosenQuality 51 + qualityPreferences.lastChosenQuality, 52 52 ); 53 53 let nearestChoseQuality: undefined | SourceQuality; 54 54 ··· 73 73 74 74 export function selectQuality( 75 75 source: SourceSliceSource, 76 - qualityPreferences: QualityStore["quality"] 76 + qualityPreferences: QualityStore["quality"], 77 77 ): { 78 78 stream: LoadableSource; 79 79 quality: null | SourceQuality;
+4 -4
src/stores/progress/ProgressSyncer.tsx
··· 15 15 items: ProgressUpdateItem[], 16 16 finish: (id: string) => void, 17 17 url: string, 18 - account: AccountWithToken | null 18 + account: AccountWithToken | null, 19 19 ) { 20 20 for (const item of items) { 21 21 // complete it beforehand so it doesn't get handled while in progress ··· 30 30 account, 31 31 item.tmdbId, 32 32 item.seasonId, 33 - item.episodeId 33 + item.episodeId, 34 34 ); 35 35 continue; 36 36 } ··· 42 42 } catch (err) { 43 43 console.error( 44 44 `Failed to sync progress: ${item.tmdbId} - ${item.action}`, 45 - err 45 + err, 46 46 ); 47 47 } 48 48 } ··· 68 68 state.updateQueue, 69 69 removeUpdateItem, 70 70 url, 71 - user.account 71 + user.account, 72 72 ); 73 73 })(); 74 74 }, syncIntervalMs);
+2 -2
src/stores/progress/index.ts
··· 176 176 })), 177 177 { 178 178 name: "__MW::progress", 179 - } 180 - ) 179 + }, 180 + ), 181 181 );
+3 -3
src/stores/progress/utils.ts
··· 47 47 } 48 48 49 49 export function shouldShowProgress( 50 - item: ProgressMediaItem 50 + item: ProgressMediaItem, 51 51 ): ShowProgressResult { 52 52 // non shows just hide or show depending on acceptable ranges 53 53 if (item.type !== "show") { 54 54 return { 55 55 show: progressIsAcceptableRange( 56 56 item.progress?.duration ?? 0, 57 - item.progress?.watched ?? 0 57 + item.progress?.watched ?? 0, 58 58 ), 59 59 progress: item.progress ?? defaultProgress, 60 60 }; ··· 66 66 .sort((a, b) => b.updatedAt - a.updatedAt) 67 67 .filter( 68 68 (epi) => 69 - !progressIsNotStarted(epi.progress.duration, epi.progress.watched) 69 + !progressIsNotStarted(epi.progress.duration, epi.progress.watched), 70 70 )[0]; 71 71 const season = item.seasons[ep?.seasonId]; 72 72 if (!ep || !season)
+2 -2
src/stores/quality/index.ts
··· 33 33 })), 34 34 { 35 35 name: "__MW::quality", 36 - } 37 - ) 36 + }, 37 + ), 38 38 );
+1 -1
src/stores/subtitles/SettingsSyncer.tsx
··· 9 9 10 10 export function SettingsSyncer() { 11 11 const importSubtitleLanguage = useSubtitleStore( 12 - (s) => s.importSubtitleLanguage 12 + (s) => s.importSubtitleLanguage, 13 13 ); 14 14 const url = useBackendUrl(); 15 15
+2 -2
src/stores/subtitles/index.ts
··· 99 99 })), 100 100 { 101 101 name: "__MW::subtitles", 102 - } 103 - ) 102 + }, 103 + ), 104 104 );
+2 -2
src/stores/theme/index.tsx
··· 21 21 })), 22 22 { 23 23 name: "__MW::theme", 24 - } 25 - ) 24 + }, 25 + ), 26 26 ); 27 27 28 28 export function ThemeProvider(props: {
+1 -1
src/stores/turnstile/index.tsx
··· 42 42 s.turnstile = v; 43 43 }); 44 44 }, 45 - })) 45 + })), 46 46 ); 47 47 48 48 export function getTurnstile() {
+3 -3
src/stores/volume/index.ts
··· 24 24 })), 25 25 { 26 26 name: "__MW::volume", 27 - } 28 - ) 27 + }, 28 + ), 29 29 ); 30 30 31 31 export const useEmpheralVolumeStore = create( ··· 36 36 s.showVolume = bool; 37 37 }); 38 38 }, 39 - })) 39 + })), 40 40 );
+2 -2
src/utils/cache.ts
··· 49 49 public get(key: Key): Value | undefined { 50 50 if (!this._compare) throw new Error("Compare function not set"); 51 51 const foundValue = this._storage.find( 52 - (item) => this._compare && this._compare(item.key, key) 52 + (item) => this._compare && this._compare(item.key, key), 53 53 ); 54 54 if (!foundValue) return undefined; 55 55 return foundValue.value; ··· 61 61 public set(key: Key, value: Value, expirySeconds: number): void { 62 62 if (!this._compare) throw new Error("Compare function not set"); 63 63 const foundValue = this._storage.find( 64 - (item) => this._compare && this._compare(item.key, key) 64 + (item) => this._compare && this._compare(item.key, key), 65 65 ); 66 66 const expiry = new Date(new Date().getTime() + expirySeconds * 1000); 67 67
+1 -1
src/utils/detectFeatures.ts
··· 2 2 import Hls from "hls.js"; 3 3 4 4 export const isSafari = /^((?!chrome|android).)*safari/i.test( 5 - navigator.userAgent 5 + navigator.userAgent, 6 6 ); 7 7 8 8 let cachedVolumeResult: boolean | null = null;
+3 -3
src/utils/providers.ts
··· 29 29 30 30 async function fetchButWithApiTokens( 31 31 input: RequestInfo | URL, 32 - init?: RequestInit | undefined 32 + init?: RequestInit | undefined, 33 33 ): Promise<Response> { 34 34 const apiToken = await getApiToken(); 35 35 const headers = new Headers(init?.headers); ··· 41 41 ...init, 42 42 headers, 43 43 } 44 - : undefined 44 + : undefined, 45 45 ); 46 46 const newApiToken = response.headers.get("X-Token"); 47 47 if (newApiToken) setApiToken(newApiToken); ··· 52 52 const fetcher: ProviderBuilderOptions["fetcher"] = async (a, b) => { 53 53 const currentFetcher = makeSimpleProxyFetcher( 54 54 getLoadbalancedProxyUrl(), 55 - fetchButWithApiTokens 55 + fetchButWithApiTokens, 56 56 ); 57 57 return currentFetcher(a, b); 58 58 };
+20 -2
vite.config.ts vite.config.mts
··· 4 4 import { VitePWA } from "vite-plugin-pwa"; 5 5 import checker from "vite-plugin-checker"; 6 6 import path from "path"; 7 + import million from 'million/compiler'; 7 8 import { handlebars } from "./plugins/handlebars"; 8 - import { loadEnv } from "vite"; 9 + import { loadEnv, splitVendorChunkPlugin } from "vite"; 9 10 10 11 import tailwind from "tailwindcss"; 11 12 import rtl from "postcss-rtlcss"; ··· 14 15 const env = loadEnv(mode, process.cwd()); 15 16 return { 16 17 plugins: [ 18 + million.vite({ auto: true }), 17 19 handlebars({ 18 20 vars: { 19 21 opensearchEnabled: env.VITE_OPENSEARCH_ENABLED === "true", ··· 34 36 modules: false, 35 37 useBuiltIns: "entry", 36 38 corejs: { 37 - version: "3.29", 39 + version: "3.34", 38 40 }, 39 41 }, 40 42 ], ··· 103 105 }, 104 106 }, 105 107 }), 108 + splitVendorChunkPlugin() 106 109 ], 107 110 108 111 build: { 109 112 sourcemap: true, 113 + rollupOptions: { 114 + output: { 115 + manualChunks(id: string) { 116 + if (id.includes("@sozialhelden+ietf-language-tags")) { 117 + return "ietf-language-tags"; 118 + } 119 + if (id.includes("hls.js")) { 120 + return "hls"; 121 + } 122 + if (id.includes("node-forge")) { 123 + return "node-forge"; 124 + } 125 + } 126 + } 127 + } 110 128 }, 111 129 css: { 112 130 postcss: {