From abd8c38f7057ee94d885f0594bc13abdf8323300 Mon Sep 17 00:00:00 2001 From: Lovi <62809003+Lovi-0@users.noreply.github.com> Date: Fri, 6 Dec 2024 10:53:44 +0100 Subject: [PATCH] v.0.1 --- .gitignore | 62 - LICENSE | 674 - MANIFEST.in | 6 - Makefile | 5 - README.md | 404 +- .../__pycache__/js_parser.cpython-312.pyc | Bin 0 -> 5611 bytes .../__pycache__/js_parser.cpython-39.pyc | Bin 0 -> 3025 bytes .../Vixcloud/__pycache__/util.cpython-312.pyc | Bin 0 -> 11589 bytes .../Vixcloud/__pycache__/util.cpython-39.pyc | Bin 0 -> 7974 bytes .../Player/__pycache__/ddl.cpython-312.pyc | Bin 0 -> 3348 bytes .../Api/Player/__pycache__/ddl.cpython-39.pyc | Bin 0 -> 2530 bytes .../__pycache__/maxstream.cpython-312.pyc | Bin 0 -> 6532 bytes .../__pycache__/maxstream.cpython-39.pyc | Bin 0 -> 3965 bytes .../__pycache__/supervideo.cpython-312.pyc | Bin 0 -> 7108 bytes .../__pycache__/supervideo.cpython-39.pyc | Bin 0 -> 5220 bytes .../__pycache__/vixcloud.cpython-312.pyc | Bin 0 -> 9315 bytes .../__pycache__/vixcloud.cpython-39.pyc | Bin 0 -> 6131 bytes .../Api/Site/1337xx/__init__.py | 50 - StreamingCommunity/Api/Site/1337xx/costant.py | 15 - StreamingCommunity/Api/Site/1337xx/site.py | 84 - StreamingCommunity/Api/Site/1337xx/title.py | 66 - .../Api/Site/altadefinizione/__init__.py | 50 - .../Api/Site/altadefinizione/costant.py | 15 - .../Api/Site/altadefinizione/film.py | 69 - .../Api/Site/altadefinizione/site.py | 86 - .../Api/Site/animeunity/__init__.py | 50 - .../Api/Site/animeunity/costant.py | 15 - .../Api/Site/animeunity/film_serie.py | 130 - .../Api/Site/animeunity/site.py | 165 - .../Api/Site/animeunity/util/ScrapeSerie.py | 97 - .../Api/Site/bitsearch/__init__.py | 51 - .../Api/Site/bitsearch/costant.py | 15 - StreamingCommunity/Api/Site/bitsearch/site.py | 84 - .../Api/Site/bitsearch/title.py | 47 - .../Api/Site/cb01new/__init__.py | 51 - .../Api/Site/cb01new/costant.py | 15 - StreamingCommunity/Api/Site/cb01new/film.py | 69 - StreamingCommunity/Api/Site/cb01new/site.py | 74 - .../Api/Site/ddlstreamitaly/__init__.py | 57 - .../Api/Site/ddlstreamitaly/costant.py | 16 - .../Api/Site/ddlstreamitaly/series.py | 141 - .../Api/Site/ddlstreamitaly/site.py | 93 - .../Site/ddlstreamitaly/util/ScrapeSerie.py | 85 - .../Api/Site/guardaserie/__init__.py | 52 - .../Api/Site/guardaserie/costant.py | 15 - .../Api/Site/guardaserie/series.py | 195 - .../Api/Site/guardaserie/site.py | 84 - .../Api/Site/guardaserie/util/ScrapeSerie.py | 110 - .../Api/Site/mostraguarda/__init__.py | 48 - .../Api/Site/mostraguarda/costant.py | 15 - .../Api/Site/mostraguarda/film.py | 94 - .../Api/Site/piratebays/__init__.py | 50 - .../Api/Site/piratebays/costant.py | 15 - .../Api/Site/piratebays/site.py | 89 - .../Api/Site/piratebays/title.py | 45 - .../__pycache__/__init__.cpython-312.pyc | Bin 0 -> 1664 bytes .../__pycache__/__init__.cpython-39.pyc | Bin 0 -> 1257 bytes .../__pycache__/api.cpython-39.pyc | Bin 0 -> 3680 bytes .../__pycache__/costant.cpython-312.pyc | Bin 0 -> 791 bytes .../__pycache__/costant.cpython-39.pyc | Bin 0 -> 551 bytes .../__pycache__/film.cpython-312.pyc | Bin 0 -> 2973 bytes .../__pycache__/film.cpython-39.pyc | Bin 0 -> 1694 bytes .../__pycache__/series.cpython-312.pyc | Bin 0 -> 8189 bytes .../__pycache__/series.cpython-39.pyc | Bin 0 -> 4940 bytes .../__pycache__/site.cpython-312.pyc | Bin 0 -> 4467 bytes .../__pycache__/site.cpython-39.pyc | Bin 0 -> 3244 bytes .../Api/Site/streamingcommunity/api.py | 159 + .../Api/Site/streamingcommunity/film.py | 10 +- .../Api/Site/streamingcommunity/series.py | 10 +- .../streamingcommunity/util/ScrapeSerie.py | 16 +- .../__pycache__/ScrapeSerie.cpython-312.pyc | Bin 0 -> 5075 bytes .../__pycache__/ScrapeSerie.cpython-39.pyc | Bin 0 -> 3467 bytes .../__pycache__/SearchType.cpython-312.pyc | Bin 0 -> 4188 bytes .../__pycache__/SearchType.cpython-39.pyc | Bin 0 -> 3446 bytes .../Util/__pycache__/__init__.cpython-312.pyc | Bin 0 -> 456 bytes .../Util/__pycache__/__init__.cpython-39.pyc | Bin 0 -> 440 bytes .../__pycache__/get_domain.cpython-312.pyc | Bin 0 -> 5449 bytes .../__pycache__/get_domain.cpython-39.pyc | Bin 0 -> 3669 bytes .../__pycache__/manage_ep.cpython-312.pyc | Bin 0 -> 5924 bytes .../Util/__pycache__/manage_ep.cpython-39.pyc | Bin 0 -> 4510 bytes .../__pycache__/recall_search.cpython-312.pyc | Bin 0 -> 1555 bytes .../__pycache__/recall_search.cpython-39.pyc | Bin 0 -> 1088 bytes .../__pycache__/__init__.cpython-312.pyc | Bin 0 -> 247 bytes .../__pycache__/__init__.cpython-39.pyc | Bin 0 -> 236 bytes .../Template/__pycache__/site.cpython-312.pyc | Bin 0 -> 2978 bytes .../Template/__pycache__/site.cpython-39.pyc | Bin 0 -> 1689 bytes .../__pycache__/downloader.cpython-312.pyc | Bin 0 -> 44031 bytes .../HLS/__pycache__/downloader.cpython-39.pyc | Bin 0 -> 25487 bytes .../HLS/__pycache__/proxyes.cpython-312.pyc | Bin 0 -> 5160 bytes .../HLS/__pycache__/proxyes.cpython-39.pyc | Bin 0 -> 3664 bytes .../HLS/__pycache__/segments.cpython-312.pyc | Bin 0 -> 23827 bytes .../HLS/__pycache__/segments.cpython-39.pyc | Bin 0 -> 12516 bytes .../Lib/Downloader/HLS/segments.py | 2 +- .../__pycache__/downloader.cpython-312.pyc | Bin 0 -> 7996 bytes .../MP4/__pycache__/downloader.cpython-39.pyc | Bin 0 -> 4363 bytes .../__pycache__/downloader.cpython-312.pyc | Bin 0 -> 11046 bytes .../TOR/__pycache__/downloader.cpython-39.pyc | Bin 0 -> 6255 bytes .../__pycache__/__init__.cpython-312.pyc | Bin 0 -> 365 bytes .../__pycache__/__init__.cpython-39.pyc | Bin 0 -> 352 bytes StreamingCommunity/Lib/Driver/driver_1.py | 76 - .../__pycache__/__init__.cpython-312.pyc | Bin 0 -> 375 bytes .../__pycache__/__init__.cpython-39.pyc | Bin 0 -> 357 bytes .../__pycache__/capture.cpython-312.pyc | Bin 0 -> 7117 bytes .../FFmpeg/__pycache__/capture.cpython-39.pyc | Bin 0 -> 4179 bytes .../__pycache__/command.cpython-312.pyc | Bin 0 -> 11627 bytes .../FFmpeg/__pycache__/command.cpython-39.pyc | Bin 0 -> 6559 bytes .../FFmpeg/__pycache__/util.cpython-312.pyc | Bin 0 -> 9903 bytes .../FFmpeg/__pycache__/util.cpython-39.pyc | Bin 0 -> 7102 bytes .../M3U8/__pycache__/__init__.cpython-312.pyc | Bin 0 -> 409 bytes .../M3U8/__pycache__/__init__.cpython-39.pyc | Bin 0 -> 395 bytes .../__pycache__/decryptor.cpython-312.pyc | Bin 0 -> 6260 bytes .../M3U8/__pycache__/decryptor.cpython-39.pyc | Bin 0 -> 4489 bytes .../__pycache__/estimator.cpython-312.pyc | Bin 0 -> 8556 bytes .../M3U8/__pycache__/estimator.cpython-39.pyc | Bin 0 -> 5651 bytes .../M3U8/__pycache__/parser.cpython-312.pyc | Bin 0 -> 26722 bytes .../M3U8/__pycache__/parser.cpython-39.pyc | Bin 0 -> 19852 bytes .../__pycache__/url_fixer.cpython-312.pyc | Bin 0 -> 2096 bytes .../M3U8/__pycache__/url_fixer.cpython-39.pyc | Bin 0 -> 1735 bytes StreamingCommunity/Lib/TMBD/__init__.py | 2 - StreamingCommunity/Lib/TMBD/obj_tmbd.py | 39 - StreamingCommunity/Lib/TMBD/tmdb.py | 346 - StreamingCommunity/Upload/update.py | 68 - StreamingCommunity/Upload/version.py | 5 - .../__pycache__/_jsonConfig.cpython-312.pyc | Bin 0 -> 9627 bytes .../__pycache__/_jsonConfig.cpython-39.pyc | Bin 0 -> 7002 bytes .../__pycache__/call_stack.cpython-312.pyc | Bin 0 -> 1779 bytes .../__pycache__/call_stack.cpython-39.pyc | Bin 0 -> 1366 bytes .../Util/__pycache__/color.cpython-312.pyc | Bin 0 -> 784 bytes .../Util/__pycache__/color.cpython-39.pyc | Bin 0 -> 708 bytes .../Util/__pycache__/console.cpython-312.pyc | Bin 0 -> 477 bytes .../Util/__pycache__/console.cpython-39.pyc | Bin 0 -> 434 bytes .../ffmpeg_installer.cpython-312.pyc | Bin 0 -> 12541 bytes .../ffmpeg_installer.cpython-39.pyc | Bin 0 -> 7346 bytes .../Util/__pycache__/headers.cpython-312.pyc | Bin 0 -> 4758 bytes .../Util/__pycache__/headers.cpython-39.pyc | Bin 0 -> 3798 bytes .../Util/__pycache__/logger.cpython-312.pyc | Bin 0 -> 2824 bytes .../Util/__pycache__/logger.cpython-39.pyc | Bin 0 -> 1656 bytes .../Util/__pycache__/message.cpython-312.pyc | Bin 0 -> 2185 bytes .../Util/__pycache__/message.cpython-39.pyc | Bin 0 -> 1732 bytes .../Util/__pycache__/os.cpython-312.pyc | Bin 0 -> 22997 bytes .../Util/__pycache__/os.cpython-39.pyc | Bin 0 -> 15833 bytes .../Util/__pycache__/table.cpython-312.pyc | Bin 0 -> 6584 bytes .../Util/__pycache__/table.cpython-39.pyc | Bin 0 -> 4919 bytes StreamingCommunity/Util/os.py | 2 +- .../__pycache__/run.cpython-312.pyc | Bin 0 -> 8877 bytes .../__pycache__/run.cpython-39.pyc | Bin 0 -> 5507 bytes StreamingCommunity/run.py | 202 - Test/Download/HLS.py | 23 - Test/Download/MP4.py | 23 - Test/Download/TOR.py | 25 - Test/Player/helper/vixcloud.py | 40 - Test/Player/maxtream.py | 22 - Test/Player/supervideo.py | 22 - Test/Player/vixcloud.py | 26 - Test/big_search.py | 116 - client/dashboard/.eslintrc.json | 7 + client/dashboard/Dockerfile | 18 + client/dashboard/package-lock.json | 19762 ++++++++++++++++ client/dashboard/package.json | 57 + client/dashboard/public/favicon.ico | Bin 0 -> 3870 bytes client/dashboard/public/index.html | 43 + client/dashboard/public/logo192.png | Bin 0 -> 5347 bytes client/dashboard/public/logo512.png | Bin 0 -> 9664 bytes client/dashboard/public/manifest.json | 25 + client/dashboard/public/robots.txt | 3 + client/dashboard/src/App.css | 37 + client/dashboard/src/App.js | 27 + client/dashboard/src/components/Dashboard.js | 41 + client/dashboard/src/components/Downloads.js | 195 + client/dashboard/src/components/Navbar.js | 28 + client/dashboard/src/components/SearchBar.js | 48 + .../dashboard/src/components/SearchResult.js | 95 + .../dashboard/src/components/TitleDetail.js | 407 + client/dashboard/src/components/Watchlist.js | 163 + client/dashboard/src/index.css | 20 + client/dashboard/src/index.js | 15 + client/dashboard/src/reportWebVitals.js | 13 + client/package-lock.json | 6 + config.json | 38 +- dockerfile | 20 - requirements.txt | 6 +- server.py | 594 + setup.py | 33 - test_run.py | 5 - unix_install.sh | 200 - update.py | 195 - win_install.bat | 134 - 187 files changed, 21802 insertions(+), 5320 deletions(-) delete mode 100644 .gitignore delete mode 100644 LICENSE delete mode 100644 MANIFEST.in delete mode 100644 Makefile create mode 100644 StreamingCommunity/Api/Player/Helper/Vixcloud/__pycache__/js_parser.cpython-312.pyc create mode 100644 StreamingCommunity/Api/Player/Helper/Vixcloud/__pycache__/js_parser.cpython-39.pyc create mode 100644 StreamingCommunity/Api/Player/Helper/Vixcloud/__pycache__/util.cpython-312.pyc create mode 100644 StreamingCommunity/Api/Player/Helper/Vixcloud/__pycache__/util.cpython-39.pyc create mode 100644 StreamingCommunity/Api/Player/__pycache__/ddl.cpython-312.pyc create mode 100644 StreamingCommunity/Api/Player/__pycache__/ddl.cpython-39.pyc create mode 100644 StreamingCommunity/Api/Player/__pycache__/maxstream.cpython-312.pyc create mode 100644 StreamingCommunity/Api/Player/__pycache__/maxstream.cpython-39.pyc create mode 100644 StreamingCommunity/Api/Player/__pycache__/supervideo.cpython-312.pyc create mode 100644 StreamingCommunity/Api/Player/__pycache__/supervideo.cpython-39.pyc create mode 100644 StreamingCommunity/Api/Player/__pycache__/vixcloud.cpython-312.pyc create mode 100644 StreamingCommunity/Api/Player/__pycache__/vixcloud.cpython-39.pyc delete mode 100644 StreamingCommunity/Api/Site/1337xx/__init__.py delete mode 100644 StreamingCommunity/Api/Site/1337xx/costant.py delete mode 100644 StreamingCommunity/Api/Site/1337xx/site.py delete mode 100644 StreamingCommunity/Api/Site/1337xx/title.py delete mode 100644 StreamingCommunity/Api/Site/altadefinizione/__init__.py delete mode 100644 StreamingCommunity/Api/Site/altadefinizione/costant.py delete mode 100644 StreamingCommunity/Api/Site/altadefinizione/film.py delete mode 100644 StreamingCommunity/Api/Site/altadefinizione/site.py delete mode 100644 StreamingCommunity/Api/Site/animeunity/__init__.py delete mode 100644 StreamingCommunity/Api/Site/animeunity/costant.py delete mode 100644 StreamingCommunity/Api/Site/animeunity/film_serie.py delete mode 100644 StreamingCommunity/Api/Site/animeunity/site.py delete mode 100644 StreamingCommunity/Api/Site/animeunity/util/ScrapeSerie.py delete mode 100644 StreamingCommunity/Api/Site/bitsearch/__init__.py delete mode 100644 StreamingCommunity/Api/Site/bitsearch/costant.py delete mode 100644 StreamingCommunity/Api/Site/bitsearch/site.py delete mode 100644 StreamingCommunity/Api/Site/bitsearch/title.py delete mode 100644 StreamingCommunity/Api/Site/cb01new/__init__.py delete mode 100644 StreamingCommunity/Api/Site/cb01new/costant.py delete mode 100644 StreamingCommunity/Api/Site/cb01new/film.py delete mode 100644 StreamingCommunity/Api/Site/cb01new/site.py delete mode 100644 StreamingCommunity/Api/Site/ddlstreamitaly/__init__.py delete mode 100644 StreamingCommunity/Api/Site/ddlstreamitaly/costant.py delete mode 100644 StreamingCommunity/Api/Site/ddlstreamitaly/series.py delete mode 100644 StreamingCommunity/Api/Site/ddlstreamitaly/site.py delete mode 100644 StreamingCommunity/Api/Site/ddlstreamitaly/util/ScrapeSerie.py delete mode 100644 StreamingCommunity/Api/Site/guardaserie/__init__.py delete mode 100644 StreamingCommunity/Api/Site/guardaserie/costant.py delete mode 100644 StreamingCommunity/Api/Site/guardaserie/series.py delete mode 100644 StreamingCommunity/Api/Site/guardaserie/site.py delete mode 100644 StreamingCommunity/Api/Site/guardaserie/util/ScrapeSerie.py delete mode 100644 StreamingCommunity/Api/Site/mostraguarda/__init__.py delete mode 100644 StreamingCommunity/Api/Site/mostraguarda/costant.py delete mode 100644 StreamingCommunity/Api/Site/mostraguarda/film.py delete mode 100644 StreamingCommunity/Api/Site/piratebays/__init__.py delete mode 100644 StreamingCommunity/Api/Site/piratebays/costant.py delete mode 100644 StreamingCommunity/Api/Site/piratebays/site.py delete mode 100644 StreamingCommunity/Api/Site/piratebays/title.py create mode 100644 StreamingCommunity/Api/Site/streamingcommunity/__pycache__/__init__.cpython-312.pyc create mode 100644 StreamingCommunity/Api/Site/streamingcommunity/__pycache__/__init__.cpython-39.pyc create mode 100644 StreamingCommunity/Api/Site/streamingcommunity/__pycache__/api.cpython-39.pyc create mode 100644 StreamingCommunity/Api/Site/streamingcommunity/__pycache__/costant.cpython-312.pyc create mode 100644 StreamingCommunity/Api/Site/streamingcommunity/__pycache__/costant.cpython-39.pyc create mode 100644 StreamingCommunity/Api/Site/streamingcommunity/__pycache__/film.cpython-312.pyc create mode 100644 StreamingCommunity/Api/Site/streamingcommunity/__pycache__/film.cpython-39.pyc create mode 100644 StreamingCommunity/Api/Site/streamingcommunity/__pycache__/series.cpython-312.pyc create mode 100644 StreamingCommunity/Api/Site/streamingcommunity/__pycache__/series.cpython-39.pyc create mode 100644 StreamingCommunity/Api/Site/streamingcommunity/__pycache__/site.cpython-312.pyc create mode 100644 StreamingCommunity/Api/Site/streamingcommunity/__pycache__/site.cpython-39.pyc create mode 100644 StreamingCommunity/Api/Site/streamingcommunity/api.py create mode 100644 StreamingCommunity/Api/Site/streamingcommunity/util/__pycache__/ScrapeSerie.cpython-312.pyc create mode 100644 StreamingCommunity/Api/Site/streamingcommunity/util/__pycache__/ScrapeSerie.cpython-39.pyc create mode 100644 StreamingCommunity/Api/Template/Class/__pycache__/SearchType.cpython-312.pyc create mode 100644 StreamingCommunity/Api/Template/Class/__pycache__/SearchType.cpython-39.pyc create mode 100644 StreamingCommunity/Api/Template/Util/__pycache__/__init__.cpython-312.pyc create mode 100644 StreamingCommunity/Api/Template/Util/__pycache__/__init__.cpython-39.pyc create mode 100644 StreamingCommunity/Api/Template/Util/__pycache__/get_domain.cpython-312.pyc create mode 100644 StreamingCommunity/Api/Template/Util/__pycache__/get_domain.cpython-39.pyc create mode 100644 StreamingCommunity/Api/Template/Util/__pycache__/manage_ep.cpython-312.pyc create mode 100644 StreamingCommunity/Api/Template/Util/__pycache__/manage_ep.cpython-39.pyc create mode 100644 StreamingCommunity/Api/Template/Util/__pycache__/recall_search.cpython-312.pyc create mode 100644 StreamingCommunity/Api/Template/Util/__pycache__/recall_search.cpython-39.pyc create mode 100644 StreamingCommunity/Api/Template/__pycache__/__init__.cpython-312.pyc create mode 100644 StreamingCommunity/Api/Template/__pycache__/__init__.cpython-39.pyc create mode 100644 StreamingCommunity/Api/Template/__pycache__/site.cpython-312.pyc create mode 100644 StreamingCommunity/Api/Template/__pycache__/site.cpython-39.pyc create mode 100644 StreamingCommunity/Lib/Downloader/HLS/__pycache__/downloader.cpython-312.pyc create mode 100644 StreamingCommunity/Lib/Downloader/HLS/__pycache__/downloader.cpython-39.pyc create mode 100644 StreamingCommunity/Lib/Downloader/HLS/__pycache__/proxyes.cpython-312.pyc create mode 100644 StreamingCommunity/Lib/Downloader/HLS/__pycache__/proxyes.cpython-39.pyc create mode 100644 StreamingCommunity/Lib/Downloader/HLS/__pycache__/segments.cpython-312.pyc create mode 100644 StreamingCommunity/Lib/Downloader/HLS/__pycache__/segments.cpython-39.pyc create mode 100644 StreamingCommunity/Lib/Downloader/MP4/__pycache__/downloader.cpython-312.pyc create mode 100644 StreamingCommunity/Lib/Downloader/MP4/__pycache__/downloader.cpython-39.pyc create mode 100644 StreamingCommunity/Lib/Downloader/TOR/__pycache__/downloader.cpython-312.pyc create mode 100644 StreamingCommunity/Lib/Downloader/TOR/__pycache__/downloader.cpython-39.pyc create mode 100644 StreamingCommunity/Lib/Downloader/__pycache__/__init__.cpython-312.pyc create mode 100644 StreamingCommunity/Lib/Downloader/__pycache__/__init__.cpython-39.pyc delete mode 100644 StreamingCommunity/Lib/Driver/driver_1.py create mode 100644 StreamingCommunity/Lib/FFmpeg/__pycache__/__init__.cpython-312.pyc create mode 100644 StreamingCommunity/Lib/FFmpeg/__pycache__/__init__.cpython-39.pyc create mode 100644 StreamingCommunity/Lib/FFmpeg/__pycache__/capture.cpython-312.pyc create mode 100644 StreamingCommunity/Lib/FFmpeg/__pycache__/capture.cpython-39.pyc create mode 100644 StreamingCommunity/Lib/FFmpeg/__pycache__/command.cpython-312.pyc create mode 100644 StreamingCommunity/Lib/FFmpeg/__pycache__/command.cpython-39.pyc create mode 100644 StreamingCommunity/Lib/FFmpeg/__pycache__/util.cpython-312.pyc create mode 100644 StreamingCommunity/Lib/FFmpeg/__pycache__/util.cpython-39.pyc create mode 100644 StreamingCommunity/Lib/M3U8/__pycache__/__init__.cpython-312.pyc create mode 100644 StreamingCommunity/Lib/M3U8/__pycache__/__init__.cpython-39.pyc create mode 100644 StreamingCommunity/Lib/M3U8/__pycache__/decryptor.cpython-312.pyc create mode 100644 StreamingCommunity/Lib/M3U8/__pycache__/decryptor.cpython-39.pyc create mode 100644 StreamingCommunity/Lib/M3U8/__pycache__/estimator.cpython-312.pyc create mode 100644 StreamingCommunity/Lib/M3U8/__pycache__/estimator.cpython-39.pyc create mode 100644 StreamingCommunity/Lib/M3U8/__pycache__/parser.cpython-312.pyc create mode 100644 StreamingCommunity/Lib/M3U8/__pycache__/parser.cpython-39.pyc create mode 100644 StreamingCommunity/Lib/M3U8/__pycache__/url_fixer.cpython-312.pyc create mode 100644 StreamingCommunity/Lib/M3U8/__pycache__/url_fixer.cpython-39.pyc delete mode 100644 StreamingCommunity/Lib/TMBD/__init__.py delete mode 100644 StreamingCommunity/Lib/TMBD/obj_tmbd.py delete mode 100644 StreamingCommunity/Lib/TMBD/tmdb.py delete mode 100644 StreamingCommunity/Upload/update.py delete mode 100644 StreamingCommunity/Upload/version.py create mode 100644 StreamingCommunity/Util/__pycache__/_jsonConfig.cpython-312.pyc create mode 100644 StreamingCommunity/Util/__pycache__/_jsonConfig.cpython-39.pyc create mode 100644 StreamingCommunity/Util/__pycache__/call_stack.cpython-312.pyc create mode 100644 StreamingCommunity/Util/__pycache__/call_stack.cpython-39.pyc create mode 100644 StreamingCommunity/Util/__pycache__/color.cpython-312.pyc create mode 100644 StreamingCommunity/Util/__pycache__/color.cpython-39.pyc create mode 100644 StreamingCommunity/Util/__pycache__/console.cpython-312.pyc create mode 100644 StreamingCommunity/Util/__pycache__/console.cpython-39.pyc create mode 100644 StreamingCommunity/Util/__pycache__/ffmpeg_installer.cpython-312.pyc create mode 100644 StreamingCommunity/Util/__pycache__/ffmpeg_installer.cpython-39.pyc create mode 100644 StreamingCommunity/Util/__pycache__/headers.cpython-312.pyc create mode 100644 StreamingCommunity/Util/__pycache__/headers.cpython-39.pyc create mode 100644 StreamingCommunity/Util/__pycache__/logger.cpython-312.pyc create mode 100644 StreamingCommunity/Util/__pycache__/logger.cpython-39.pyc create mode 100644 StreamingCommunity/Util/__pycache__/message.cpython-312.pyc create mode 100644 StreamingCommunity/Util/__pycache__/message.cpython-39.pyc create mode 100644 StreamingCommunity/Util/__pycache__/os.cpython-312.pyc create mode 100644 StreamingCommunity/Util/__pycache__/os.cpython-39.pyc create mode 100644 StreamingCommunity/Util/__pycache__/table.cpython-312.pyc create mode 100644 StreamingCommunity/Util/__pycache__/table.cpython-39.pyc create mode 100644 StreamingCommunity/__pycache__/run.cpython-312.pyc create mode 100644 StreamingCommunity/__pycache__/run.cpython-39.pyc delete mode 100644 StreamingCommunity/run.py delete mode 100644 Test/Download/HLS.py delete mode 100644 Test/Download/MP4.py delete mode 100644 Test/Download/TOR.py delete mode 100644 Test/Player/helper/vixcloud.py delete mode 100644 Test/Player/maxtream.py delete mode 100644 Test/Player/supervideo.py delete mode 100644 Test/Player/vixcloud.py delete mode 100644 Test/big_search.py create mode 100644 client/dashboard/.eslintrc.json create mode 100644 client/dashboard/Dockerfile create mode 100644 client/dashboard/package-lock.json create mode 100644 client/dashboard/package.json create mode 100644 client/dashboard/public/favicon.ico create mode 100644 client/dashboard/public/index.html create mode 100644 client/dashboard/public/logo192.png create mode 100644 client/dashboard/public/logo512.png create mode 100644 client/dashboard/public/manifest.json create mode 100644 client/dashboard/public/robots.txt create mode 100644 client/dashboard/src/App.css create mode 100644 client/dashboard/src/App.js create mode 100644 client/dashboard/src/components/Dashboard.js create mode 100644 client/dashboard/src/components/Downloads.js create mode 100644 client/dashboard/src/components/Navbar.js create mode 100644 client/dashboard/src/components/SearchBar.js create mode 100644 client/dashboard/src/components/SearchResult.js create mode 100644 client/dashboard/src/components/TitleDetail.js create mode 100644 client/dashboard/src/components/Watchlist.js create mode 100644 client/dashboard/src/index.css create mode 100644 client/dashboard/src/index.js create mode 100644 client/dashboard/src/reportWebVitals.js create mode 100644 client/package-lock.json delete mode 100644 dockerfile create mode 100644 server.py delete mode 100644 setup.py delete mode 100644 test_run.py delete mode 100644 unix_install.sh delete mode 100644 update.py delete mode 100644 win_install.bat diff --git a/.gitignore b/.gitignore deleted file mode 100644 index be7663d..0000000 --- a/.gitignore +++ /dev/null @@ -1,62 +0,0 @@ -# Byte-compiled / optimized / DLL files -__pycache__/ -*.py[cod] -*$py.class - -# C extensions -*.so - -# Distribution / packaging -.Python -build/ -develop-eggs/ -dist/ -downloads/ -eggs/ -.eggs/ -parts/ -sdist/ -var/ -wheels/ -share/python-wheels/ -*.egg-info/ -.installed.cfg -*.egg -MANIFEST - -# PyInstaller -*.manifest -*.spec - -# Installer logs -pip-log.txt -pip-delete-this-directory.txt - -# Translations -*.mo -*.pot - -# Django stuff: -*.log -local_settings.py -db.sqlite3 -db.sqlite3-journal - -# Jupyter Notebook -.ipynb_checkpoints - -# Environments -.env -.venv -env/ -venv/ -ENV/ -env.bak/ -venv.bak/ - -# Other -Video -note.txt -list_proxy.txt -cmd.txt -downloaded_files \ No newline at end of file diff --git a/LICENSE b/LICENSE deleted file mode 100644 index f288702..0000000 --- a/LICENSE +++ /dev/null @@ -1,674 +0,0 @@ - GNU GENERAL PUBLIC LICENSE - Version 3, 29 June 2007 - - Copyright (C) 2007 Free Software Foundation, Inc. - Everyone is permitted to copy and distribute verbatim copies - of this license document, but changing it is not allowed. - - Preamble - - The GNU General Public License is a free, copyleft license for -software and other kinds of works. - - The licenses for most software and other practical works are designed -to take away your freedom to share and change the works. By contrast, -the GNU General Public License is intended to guarantee your freedom to -share and change all versions of a program--to make sure it remains free -software for all its users. We, the Free Software Foundation, use the -GNU General Public License for most of our software; it applies also to -any other work released this way by its authors. You can apply it to -your programs, too. - - When we speak of free software, we are referring to freedom, not -price. Our General Public Licenses are designed to make sure that you -have the freedom to distribute copies of free software (and charge for -them if you wish), that you receive source code or can get it if you -want it, that you can change the software or use pieces of it in new -free programs, and that you know you can do these things. - - To protect your rights, we need to prevent others from denying you -these rights or asking you to surrender the rights. Therefore, you have -certain responsibilities if you distribute copies of the software, or if -you modify it: responsibilities to respect the freedom of others. - - For example, if you distribute copies of such a program, whether -gratis or for a fee, you must pass on to the recipients the same -freedoms that you received. You must make sure that they, too, receive -or can get the source code. And you must show them these terms so they -know their rights. - - Developers that use the GNU GPL protect your rights with two steps: -(1) assert copyright on the software, and (2) offer you this License -giving you legal permission to copy, distribute and/or modify it. - - For the developers' and authors' protection, the GPL clearly explains -that there is no warranty for this free software. For both users' and -authors' sake, the GPL requires that modified versions be marked as -changed, so that their problems will not be attributed erroneously to -authors of previous versions. - - Some devices are designed to deny users access to install or run -modified versions of the software inside them, although the manufacturer -can do so. This is fundamentally incompatible with the aim of -protecting users' freedom to change the software. The systematic -pattern of such abuse occurs in the area of products for individuals to -use, which is precisely where it is most unacceptable. Therefore, we -have designed this version of the GPL to prohibit the practice for those -products. If such problems arise substantially in other domains, we -stand ready to extend this provision to those domains in future versions -of the GPL, as needed to protect the freedom of users. - - Finally, every program is threatened constantly by software patents. -States should not allow patents to restrict development and use of -software on general-purpose computers, but in those that do, we wish to -avoid the special danger that patents applied to a free program could -make it effectively proprietary. To prevent this, the GPL assures that -patents cannot be used to render the program non-free. - - The precise terms and conditions for copying, distribution and -modification follow. - - TERMS AND CONDITIONS - - 0. Definitions. - - "This License" refers to version 3 of the GNU General Public License. - - "Copyright" also means copyright-like laws that apply to other kinds of -works, such as semiconductor masks. - - "The Program" refers to any copyrightable work licensed under this -License. Each licensee is addressed as "you". "Licensees" and -"recipients" may be individuals or organizations. - - To "modify" a work means to copy from or adapt all or part of the work -in a fashion requiring copyright permission, other than the making of an -exact copy. The resulting work is called a "modified version" of the -earlier work or a work "based on" the earlier work. - - A "covered work" means either the unmodified Program or a work based -on the Program. - - To "propagate" a work means to do anything with it that, without -permission, would make you directly or secondarily liable for -infringement under applicable copyright law, except executing it on a -computer or modifying a private copy. Propagation includes copying, -distribution (with or without modification), making available to the -public, and in some countries other activities as well. - - To "convey" a work means any kind of propagation that enables other -parties to make or receive copies. Mere interaction with a user through -a computer network, with no transfer of a copy, is not conveying. - - An interactive user interface displays "Appropriate Legal Notices" -to the extent that it includes a convenient and prominently visible -feature that (1) displays an appropriate copyright notice, and (2) -tells the user that there is no warranty for the work (except to the -extent that warranties are provided), that licensees may convey the -work under this License, and how to view a copy of this License. If -the interface presents a list of user commands or options, such as a -menu, a prominent item in the list meets this criterion. - - 1. Source Code. - - The "source code" for a work means the preferred form of the work -for making modifications to it. "Object code" means any non-source -form of a work. - - A "Standard Interface" means an interface that either is an official -standard defined by a recognized standards body, or, in the case of -interfaces specified for a particular programming language, one that -is widely used among developers working in that language. - - The "System Libraries" of an executable work include anything, other -than the work as a whole, that (a) is included in the normal form of -packaging a Major Component, but which is not part of that Major -Component, and (b) serves only to enable use of the work with that -Major Component, or to implement a Standard Interface for which an -implementation is available to the public in source code form. A -"Major Component", in this context, means a major essential component -(kernel, window system, and so on) of the specific operating system -(if any) on which the executable work runs, or a compiler used to -produce the work, or an object code interpreter used to run it. - - The "Corresponding Source" for a work in object code form means all -the source code needed to generate, install, and (for an executable -work) run the object code and to modify the work, including scripts to -control those activities. However, it does not include the work's -System Libraries, or general-purpose tools or generally available free -programs which are used unmodified in performing those activities but -which are not part of the work. For example, Corresponding Source -includes interface definition files associated with source files for -the work, and the source code for shared libraries and dynamically -linked subprograms that the work is specifically designed to require, -such as by intimate data communication or control flow between those -subprograms and other parts of the work. - - The Corresponding Source need not include anything that users -can regenerate automatically from other parts of the Corresponding -Source. - - The Corresponding Source for a work in source code form is that -same work. - - 2. Basic Permissions. - - All rights granted under this License are granted for the term of -copyright on the Program, and are irrevocable provided the stated -conditions are met. This License explicitly affirms your unlimited -permission to run the unmodified Program. The output from running a -covered work is covered by this License only if the output, given its -content, constitutes a covered work. This License acknowledges your -rights of fair use or other equivalent, as provided by copyright law. - - You may make, run and propagate covered works that you do not -convey, without conditions so long as your license otherwise remains -in force. You may convey covered works to others for the sole purpose -of having them make modifications exclusively for you, or provide you -with facilities for running those works, provided that you comply with -the terms of this License in conveying all material for which you do -not control copyright. Those thus making or running the covered works -for you must do so exclusively on your behalf, under your direction -and control, on terms that prohibit them from making any copies of -your copyrighted material outside their relationship with you. - - Conveying under any other circumstances is permitted solely under -the conditions stated below. Sublicensing is not allowed; section 10 -makes it unnecessary. - - 3. Protecting Users' Legal Rights From Anti-Circumvention Law. - - No covered work shall be deemed part of an effective technological -measure under any applicable law fulfilling obligations under article -11 of the WIPO copyright treaty adopted on 20 December 1996, or -similar laws prohibiting or restricting circumvention of such -measures. - - When you convey a covered work, you waive any legal power to forbid -circumvention of technological measures to the extent such circumvention -is effected by exercising rights under this License with respect to -the covered work, and you disclaim any intention to limit operation or -modification of the work as a means of enforcing, against the work's -users, your or third parties' legal rights to forbid circumvention of -technological measures. - - 4. Conveying Verbatim Copies. - - You may convey verbatim copies of the Program's source code as you -receive it, in any medium, provided that you conspicuously and -appropriately publish on each copy an appropriate copyright notice; -keep intact all notices stating that this License and any -non-permissive terms added in accord with section 7 apply to the code; -keep intact all notices of the absence of any warranty; and give all -recipients a copy of this License along with the Program. - - You may charge any price or no price for each copy that you convey, -and you may offer support or warranty protection for a fee. - - 5. Conveying Modified Source Versions. - - You may convey a work based on the Program, or the modifications to -produce it from the Program, in the form of source code under the -terms of section 4, provided that you also meet all of these conditions: - - a) The work must carry prominent notices stating that you modified - it, and giving a relevant date. - - b) The work must carry prominent notices stating that it is - released under this License and any conditions added under section - 7. This requirement modifies the requirement in section 4 to - "keep intact all notices". - - c) You must license the entire work, as a whole, under this - License to anyone who comes into possession of a copy. This - License will therefore apply, along with any applicable section 7 - additional terms, to the whole of the work, and all its parts, - regardless of how they are packaged. This License gives no - permission to license the work in any other way, but it does not - invalidate such permission if you have separately received it. - - d) If the work has interactive user interfaces, each must display - Appropriate Legal Notices; however, if the Program has interactive - interfaces that do not display Appropriate Legal Notices, your - work need not make them do so. - - A compilation of a covered work with other separate and independent -works, which are not by their nature extensions of the covered work, -and which are not combined with it such as to form a larger program, -in or on a volume of a storage or distribution medium, is called an -"aggregate" if the compilation and its resulting copyright are not -used to limit the access or legal rights of the compilation's users -beyond what the individual works permit. Inclusion of a covered work -in an aggregate does not cause this License to apply to the other -parts of the aggregate. - - 6. Conveying Non-Source Forms. - - You may convey a covered work in object code form under the terms -of sections 4 and 5, provided that you also convey the -machine-readable Corresponding Source under the terms of this License, -in one of these ways: - - a) Convey the object code in, or embodied in, a physical product - (including a physical distribution medium), accompanied by the - Corresponding Source fixed on a durable physical medium - customarily used for software interchange. - - b) Convey the object code in, or embodied in, a physical product - (including a physical distribution medium), accompanied by a - written offer, valid for at least three years and valid for as - long as you offer spare parts or customer support for that product - model, to give anyone who possesses the object code either (1) a - copy of the Corresponding Source for all the software in the - product that is covered by this License, on a durable physical - medium customarily used for software interchange, for a price no - more than your reasonable cost of physically performing this - conveying of source, or (2) access to copy the - Corresponding Source from a network server at no charge. - - c) Convey individual copies of the object code with a copy of the - written offer to provide the Corresponding Source. This - alternative is allowed only occasionally and noncommercially, and - only if you received the object code with such an offer, in accord - with subsection 6b. - - d) Convey the object code by offering access from a designated - place (gratis or for a charge), and offer equivalent access to the - Corresponding Source in the same way through the same place at no - further charge. You need not require recipients to copy the - Corresponding Source along with the object code. If the place to - copy the object code is a network server, the Corresponding Source - may be on a different server (operated by you or a third party) - that supports equivalent copying facilities, provided you maintain - clear directions next to the object code saying where to find the - Corresponding Source. Regardless of what server hosts the - Corresponding Source, you remain obligated to ensure that it is - available for as long as needed to satisfy these requirements. - - e) Convey the object code using peer-to-peer transmission, provided - you inform other peers where the object code and Corresponding - Source of the work are being offered to the general public at no - charge under subsection 6d. - - A separable portion of the object code, whose source code is excluded -from the Corresponding Source as a System Library, need not be -included in conveying the object code work. - - A "User Product" is either (1) a "consumer product", which means any -tangible personal property which is normally used for personal, family, -or household purposes, or (2) anything designed or sold for incorporation -into a dwelling. In determining whether a product is a consumer product, -doubtful cases shall be resolved in favor of coverage. For a particular -product received by a particular user, "normally used" refers to a -typical or common use of that class of product, regardless of the status -of the particular user or of the way in which the particular user -actually uses, or expects or is expected to use, the product. A product -is a consumer product regardless of whether the product has substantial -commercial, industrial or non-consumer uses, unless such uses represent -the only significant mode of use of the product. - - "Installation Information" for a User Product means any methods, -procedures, authorization keys, or other information required to install -and execute modified versions of a covered work in that User Product from -a modified version of its Corresponding Source. The information must -suffice to ensure that the continued functioning of the modified object -code is in no case prevented or interfered with solely because -modification has been made. - - If you convey an object code work under this section in, or with, or -specifically for use in, a User Product, and the conveying occurs as -part of a transaction in which the right of possession and use of the -User Product is transferred to the recipient in perpetuity or for a -fixed term (regardless of how the transaction is characterized), the -Corresponding Source conveyed under this section must be accompanied -by the Installation Information. But this requirement does not apply -if neither you nor any third party retains the ability to install -modified object code on the User Product (for example, the work has -been installed in ROM). - - The requirement to provide Installation Information does not include a -requirement to continue to provide support service, warranty, or updates -for a work that has been modified or installed by the recipient, or for -the User Product in which it has been modified or installed. Access to a -network may be denied when the modification itself materially and -adversely affects the operation of the network or violates the rules and -protocols for communication across the network. - - Corresponding Source conveyed, and Installation Information provided, -in accord with this section must be in a format that is publicly -documented (and with an implementation available to the public in -source code form), and must require no special password or key for -unpacking, reading or copying. - - 7. Additional Terms. - - "Additional permissions" are terms that supplement the terms of this -License by making exceptions from one or more of its conditions. -Additional permissions that are applicable to the entire Program shall -be treated as though they were included in this License, to the extent -that they are valid under applicable law. If additional permissions -apply only to part of the Program, that part may be used separately -under those permissions, but the entire Program remains governed by -this License without regard to the additional permissions. - - When you convey a copy of a covered work, you may at your option -remove any additional permissions from that copy, or from any part of -it. (Additional permissions may be written to require their own -removal in certain cases when you modify the work.) You may place -additional permissions on material, added by you to a covered work, -for which you have or can give appropriate copyright permission. - - Notwithstanding any other provision of this License, for material you -add to a covered work, you may (if authorized by the copyright holders of -that material) supplement the terms of this License with terms: - - a) Disclaiming warranty or limiting liability differently from the - terms of sections 15 and 16 of this License; or - - b) Requiring preservation of specified reasonable legal notices or - author attributions in that material or in the Appropriate Legal - Notices displayed by works containing it; or - - c) Prohibiting misrepresentation of the origin of that material, or - requiring that modified versions of such material be marked in - reasonable ways as different from the original version; or - - d) Limiting the use for publicity purposes of names of licensors or - authors of the material; or - - e) Declining to grant rights under trademark law for use of some - trade names, trademarks, or service marks; or - - f) Requiring indemnification of licensors and authors of that - material by anyone who conveys the material (or modified versions of - it) with contractual assumptions of liability to the recipient, for - any liability that these contractual assumptions directly impose on - those licensors and authors. - - All other non-permissive additional terms are considered "further -restrictions" within the meaning of section 10. If the Program as you -received it, or any part of it, contains a notice stating that it is -governed by this License along with a term that is a further -restriction, you may remove that term. If a license document contains -a further restriction but permits relicensing or conveying under this -License, you may add to a covered work material governed by the terms -of that license document, provided that the further restriction does -not survive such relicensing or conveying. - - If you add terms to a covered work in accord with this section, you -must place, in the relevant source files, a statement of the -additional terms that apply to those files, or a notice indicating -where to find the applicable terms. - - Additional terms, permissive or non-permissive, may be stated in the -form of a separately written license, or stated as exceptions; -the above requirements apply either way. - - 8. Termination. - - You may not propagate or modify a covered work except as expressly -provided under this License. Any attempt otherwise to propagate or -modify it is void, and will automatically terminate your rights under -this License (including any patent licenses granted under the third -paragraph of section 11). - - However, if you cease all violation of this License, then your -license from a particular copyright holder is reinstated (a) -provisionally, unless and until the copyright holder explicitly and -finally terminates your license, and (b) permanently, if the copyright -holder fails to notify you of the violation by some reasonable means -prior to 60 days after the cessation. - - Moreover, your license from a particular copyright holder is -reinstated permanently if the copyright holder notifies you of the -violation by some reasonable means, this is the first time you have -received notice of violation of this License (for any work) from that -copyright holder, and you cure the violation prior to 30 days after -your receipt of the notice. - - Termination of your rights under this section does not terminate the -licenses of parties who have received copies or rights from you under -this License. If your rights have been terminated and not permanently -reinstated, you do not qualify to receive new licenses for the same -material under section 10. - - 9. Acceptance Not Required for Having Copies. - - You are not required to accept this License in order to receive or -run a copy of the Program. Ancillary propagation of a covered work -occurring solely as a consequence of using peer-to-peer transmission -to receive a copy likewise does not require acceptance. However, -nothing other than this License grants you permission to propagate or -modify any covered work. These actions infringe copyright if you do -not accept this License. Therefore, by modifying or propagating a -covered work, you indicate your acceptance of this License to do so. - - 10. Automatic Licensing of Downstream Recipients. - - Each time you convey a covered work, the recipient automatically -receives a license from the original licensors, to run, modify and -propagate that work, subject to this License. You are not responsible -for enforcing compliance by third parties with this License. - - An "entity transaction" is a transaction transferring control of an -organization, or substantially all assets of one, or subdividing an -organization, or merging organizations. If propagation of a covered -work results from an entity transaction, each party to that -transaction who receives a copy of the work also receives whatever -licenses to the work the party's predecessor in interest had or could -give under the previous paragraph, plus a right to possession of the -Corresponding Source of the work from the predecessor in interest, if -the predecessor has it or can get it with reasonable efforts. - - You may not impose any further restrictions on the exercise of the -rights granted or affirmed under this License. For example, you may -not impose a license fee, royalty, or other charge for exercise of -rights granted under this License, and you may not initiate litigation -(including a cross-claim or counterclaim in a lawsuit) alleging that -any patent claim is infringed by making, using, selling, offering for -sale, or importing the Program or any portion of it. - - 11. Patents. - - A "contributor" is a copyright holder who authorizes use under this -License of the Program or a work on which the Program is based. The -work thus licensed is called the contributor's "contributor version". - - A contributor's "essential patent claims" are all patent claims -owned or controlled by the contributor, whether already acquired or -hereafter acquired, that would be infringed by some manner, permitted -by this License, of making, using, or selling its contributor version, -but do not include claims that would be infringed only as a -consequence of further modification of the contributor version. For -purposes of this definition, "control" includes the right to grant -patent sublicenses in a manner consistent with the requirements of -this License. - - Each contributor grants you a non-exclusive, worldwide, royalty-free -patent license under the contributor's essential patent claims, to -make, use, sell, offer for sale, import and otherwise run, modify and -propagate the contents of its contributor version. - - In the following three paragraphs, a "patent license" is any express -agreement or commitment, however denominated, not to enforce a patent -(such as an express permission to practice a patent or covenant not to -sue for patent infringement). To "grant" such a patent license to a -party means to make such an agreement or commitment not to enforce a -patent against the party. - - If you convey a covered work, knowingly relying on a patent license, -and the Corresponding Source of the work is not available for anyone -to copy, free of charge and under the terms of this License, through a -publicly available network server or other readily accessible means, -then you must either (1) cause the Corresponding Source to be so -available, or (2) arrange to deprive yourself of the benefit of the -patent license for this particular work, or (3) arrange, in a manner -consistent with the requirements of this License, to extend the patent -license to downstream recipients. "Knowingly relying" means you have -actual knowledge that, but for the patent license, your conveying the -covered work in a country, or your recipient's use of the covered work -in a country, would infringe one or more identifiable patents in that -country that you have reason to believe are valid. - - If, pursuant to or in connection with a single transaction or -arrangement, you convey, or propagate by procuring conveyance of, a -covered work, and grant a patent license to some of the parties -receiving the covered work authorizing them to use, propagate, modify -or convey a specific copy of the covered work, then the patent license -you grant is automatically extended to all recipients of the covered -work and works based on it. - - A patent license is "discriminatory" if it does not include within -the scope of its coverage, prohibits the exercise of, or is -conditioned on the non-exercise of one or more of the rights that are -specifically granted under this License. You may not convey a covered -work if you are a party to an arrangement with a third party that is -in the business of distributing software, under which you make payment -to the third party based on the extent of your activity of conveying -the work, and under which the third party grants, to any of the -parties who would receive the covered work from you, a discriminatory -patent license (a) in connection with copies of the covered work -conveyed by you (or copies made from those copies), or (b) primarily -for and in connection with specific products or compilations that -contain the covered work, unless you entered into that arrangement, -or that patent license was granted, prior to 28 March 2007. - - Nothing in this License shall be construed as excluding or limiting -any implied license or other defenses to infringement that may -otherwise be available to you under applicable patent law. - - 12. No Surrender of Others' Freedom. - - If conditions are imposed on you (whether by court order, agreement or -otherwise) that contradict the conditions of this License, they do not -excuse you from the conditions of this License. If you cannot convey a -covered work so as to satisfy simultaneously your obligations under this -License and any other pertinent obligations, then as a consequence you may -not convey it at all. For example, if you agree to terms that obligate you -to collect a royalty for further conveying from those to whom you convey -the Program, the only way you could satisfy both those terms and this -License would be to refrain entirely from conveying the Program. - - 13. Use with the GNU Affero General Public License. - - Notwithstanding any other provision of this License, you have -permission to link or combine any covered work with a work licensed -under version 3 of the GNU Affero General Public License into a single -combined work, and to convey the resulting work. The terms of this -License will continue to apply to the part which is the covered work, -but the special requirements of the GNU Affero General Public License, -section 13, concerning interaction through a network will apply to the -combination as such. - - 14. Revised Versions of this License. - - The Free Software Foundation may publish revised and/or new versions of -the GNU General Public License from time to time. Such new versions will -be similar in spirit to the present version, but may differ in detail to -address new problems or concerns. - - Each version is given a distinguishing version number. If the -Program specifies that a certain numbered version of the GNU General -Public License "or any later version" applies to it, you have the -option of following the terms and conditions either of that numbered -version or of any later version published by the Free Software -Foundation. If the Program does not specify a version number of the -GNU General Public License, you may choose any version ever published -by the Free Software Foundation. - - If the Program specifies that a proxy can decide which future -versions of the GNU General Public License can be used, that proxy's -public statement of acceptance of a version permanently authorizes you -to choose that version for the Program. - - Later license versions may give you additional or different -permissions. However, no additional obligations are imposed on any -author or copyright holder as a result of your choosing to follow a -later version. - - 15. Disclaimer of Warranty. - - THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY -APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT -HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY -OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, -THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM -IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF -ALL NECESSARY SERVICING, REPAIR OR CORRECTION. - - 16. Limitation of Liability. - - IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING -WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS -THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY -GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE -USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF -DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD -PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), -EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF -SUCH DAMAGES. - - 17. Interpretation of Sections 15 and 16. - - If the disclaimer of warranty and limitation of liability provided -above cannot be given local legal effect according to their terms, -reviewing courts shall apply local law that most closely approximates -an absolute waiver of all civil liability in connection with the -Program, unless a warranty or assumption of liability accompanies a -copy of the Program in return for a fee. - - END OF TERMS AND CONDITIONS - - How to Apply These Terms to Your New Programs - - If you develop a new program, and you want it to be of the greatest -possible use to the public, the best way to achieve this is to make it -free software which everyone can redistribute and change under these terms. - - To do so, attach the following notices to the program. It is safest -to attach them to the start of each source file to most effectively -state the exclusion of warranty; and each file should have at least -the "copyright" line and a pointer to where the full notice is found. - - - Copyright (C) - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see . - -Also add information on how to contact you by electronic and paper mail. - - If the program does terminal interaction, make it output a short -notice like this when it starts in an interactive mode: - - Copyright (C) - This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'. - This is free software, and you are welcome to redistribute it - under certain conditions; type `show c' for details. - -The hypothetical commands `show w' and `show c' should show the appropriate -parts of the General Public License. Of course, your program's commands -might be different; for a GUI interface, you would use an "about box". - - You should also get your employer (if you work as a programmer) or school, -if any, to sign a "copyright disclaimer" for the program, if necessary. -For more information on this, and how to apply and follow the GNU GPL, see -. - - The GNU General Public License does not permit incorporating your program -into proprietary programs. If your program is a subroutine library, you -may consider it more useful to permit linking proprietary applications with -the library. If this is what you want to do, use the GNU Lesser General -Public License instead of this License. But first, please read -. diff --git a/MANIFEST.in b/MANIFEST.in deleted file mode 100644 index 5e000f6..0000000 --- a/MANIFEST.in +++ /dev/null @@ -1,6 +0,0 @@ -include README.md -include LICENSE -include requirements.txt -include config.py -recursive-include Test/ * -recursive-include StreamingCommunity/ *.py diff --git a/Makefile b/Makefile deleted file mode 100644 index acc4a1d..0000000 --- a/Makefile +++ /dev/null @@ -1,5 +0,0 @@ -build-container: - docker build -t streaming-community-api . - -run-container: - docker run --rm -it -p 8000:8000 -v ${LOCAL_DIR}:/app/Video -v ./config.json:/app/config.json streaming-community-api \ No newline at end of file diff --git a/README.md b/README.md index a9be866..3924c15 100644 --- a/README.md +++ b/README.md @@ -1,388 +1,16 @@ -# StreamingCommunity Downloader 🎬 - -![Project Logo](https://i.ibb.co/f4h5Y2m/min-logo.png) - -A versatile script designed to download films and series from various supported streaming platforms. - -# 🤝 Join our Community - -Chat, contribute, and have fun in our **Git_StreamingCommunity** Discord [Server](https://discord.com/invite/8vV68UGRc7) - -# 📋 Table of Contents - -- [Website available](#website-status) -- [Installation](#installation) - - [PyPI Installation](#1-pypi-installation) - - [Automatic Installation](#2-automatic-installation) - - [Manual Installation](#3-manual-installation) - - [Win 7](https://github.com/Ghost6446/StreamingCommunity_api/wiki/Installation#win-7) - - [Termux](https://github.com/Ghost6446/StreamingCommunity_api/wiki/Termux) -- [Configuration](#configuration) - - [Default](#default-settings) - - [Request](#requests-settings) - - [Browser](#browser-settings) - - [Download](#m3u8_download-settings) - - [Parser](#m3u8_parser-settings) -- [Docker](#docker) -- [Tutorial](#tutorials) -- [To Do](#to-do) - - - -# Installation - -## 1. PyPI Installation - -Install directly from PyPI: - -```bash -pip install StreamingCommunity -``` - -### Creating a Run Script - -Create `run_streaming.py`: - -```python -from StreamingCommunity.run import main - -if __name__ == "__main__": - main() -``` - -Run the script: -```bash -python run_streaming.py -``` - -## Updating via PyPI - -```bash -pip install --upgrade StreamingCommunity -``` - -## 2. Automatic Installation - -### Supported Operating Systems 💿 - -| OS | Automatic Installation Support | -|:----------------|:------------------------------:| -| Windows 10/11 | ✔️ | -| Windows 7 | ❌ | -| Debian Linux | ✔️ | -| Arch Linux | ✔️ | -| CentOS Stream 9 | ✔️ | -| FreeBSD | ⏳ | -| MacOS | ✔️ | -| Termux | ❌ | - -### Installation Steps - -#### On Windows: - -```powershell -.\win_install.bat -``` - -#### On Linux/MacOS/BSD: - -```bash -sudo chmod +x unix_install.sh && ./unix_install.sh -``` - -### Usage - -#### On Windows: - -```powershell -python .\test_run.py -``` - -or - -```powershell -source .venv/bin/activate && python test_run.py && deactivate -``` - -#### On Linux/MacOS/BSD: - -```bash -./test_run.py -``` - -## 3. Manual Installation - -### Requirements 📋 - -Prerequisites: -* [Python](https://www.python.org/downloads/) > 3.8 -* [FFmpeg](https://www.gyan.dev/ffmpeg/builds/) - -### Install Python Dependencies - -```bash -pip install -r requirements.txt -``` - -### Usage - -#### On Windows: - -```powershell -python test_run.py -``` - -#### On Linux/MacOS: - -```bash -python3 test_run.py -``` - -## Update - -Keep your script up to date with the latest features by running: - -### On Windows: - -```powershell -python update.py -``` - -### On Linux/MacOS: - -```bash -python3 update.py -``` - -
- -# Configuration - -You can change some behaviors by tweaking the configuration file. - -The configuration file is divided into several main sections: - -## DEFAULT Settings - -```json -{ - "root_path": "Video", - "movie_folder_name": "Movie", - "serie_folder_name": "TV", - "map_episode_name": "%(tv_name)_S%(season)E%(episode)_%(episode_name)", - "not_close": false, - "show_trending": false -} -``` - -- `root_path`: Directory where all videos will be saved - - ### Path examples: - * Windows: `C:\\MyLibrary\\Folder` or `\\\\MyServer\\MyLibrary` (if you want to use a network folder) - * Linux/MacOS: `Desktop/MyLibrary/Folder` - `

` - -- `movie_folder_name`: The name of the subdirectory where movies will be stored. -- `serie_folder_name`: The name of the subdirectory where TV series will be stored. - -- `map_episode_name`: Template for TV series episode filenames - - ### Episode name usage: - - You can choose different vars: - - - * `%(tv_name)` : Is the name of TV Show - * `%(season)` : Is the number of the season - * `%(episode)` : Is the number of the episode - * `%(episode_name)` : Is the name of the episode - `

` - -- `not_close`: If true, continues running after downloading -- `show_trending`: Display trending content on startup - - ### qBittorrent Configuration - - ```json - { - "config_qbit_tor": { - "host": "192.168.1.59", - "port": "8080", - "user": "admin", - "pass": "adminadmin" - } - } - ``` - - To enable qBittorrent integration, follow the setup guide [here](https://github.com/lgallard/qBittorrent-Controller/wiki/How-to-enable-the-qBittorrent-Web-UI). - -
- -## REQUESTS Settings - -```json -{ - "timeout": 20, - "max_retry": 3 -} -``` - -- `timeout`: Maximum timeout (in seconds) for each request -- `max_retry`: Number of retry attempts per segment during M3U8 index download - -
- -## BROWSER Settings - -```json -{ - "headless": false -} -``` - -- `headless`: Controls whether to run browser in headless mode - -
- -## M3U8_DOWNLOAD Settings - -```json -{ - "tqdm_delay": 0.01, - "tqdm_use_large_bar": true, - "default_video_workser": 12, - "default_audio_workser": 12, - "cleanup_tmp_folder": true -} -``` - -- `tqdm_delay`: Delay between progress bar updates -- `tqdm_use_large_bar`: Use detailed progress bar (recommended for desktop) set to false for mobile -- `default_video_workser`: Number of threads for video download -- `default_audio_workser`: Number of threads for audio download -- `cleanup_tmp_folder`: Remove temporary .ts files after download - - -
- -### Language Settings - -The following codes can be used for `specific_list_audio` and `specific_list_subtitles`: - -``` -ara - Arabic eng - English ita - Italian por - Portuguese -baq - Basque fil - Filipino jpn - Japanese rum - Romanian -cat - Catalan fin - Finnish kan - Kannada rus - Russian -chi - Chinese fre - French kor - Korean spa - Spanish -cze - Czech ger - German mal - Malayalam swe - Swedish -dan - Danish glg - Galician may - Malay tam - Tamil -dut - Dutch gre - Greek nob - Norw. Bokm tel - Telugu - heb - Hebrew nor - Norwegian tha - Thai -forced-ita hin - Hindi pol - Polish tur - Turkish - hun - Hungarian ukr - Ukrainian - ind - Indonesian vie - Vietnamese -``` - -> [!IMPORTANT] -> Language code availability may vary by site. Some platforms might: -> -> - Use different language codes -> - Support only a subset of these languages -> - Offer additional languages not listed here -> -> Check the specific site's available options if downloads fail. - -> [!TIP] -> You can configure multiple languages by adding them to the lists: -> -> ```json -> "specific_list_audio": ["ita", "eng", "spa"], -> "specific_list_subtitles": ["ita", "eng", "spa"] -> ``` - -## M3U8_PARSER Settings - -```json -{ - "force_resolution": -1, - "get_only_link": false -} -``` - -- `force_resolution`: Force specific resolution (-1 for best available, or specify 1080, 720, 360) -- `get_only_link`: Return M3U8 playlist/index URL instead of downloading - -
- -# Docker - -You can run the script in a docker container, to build the image just run - -``` -docker build -t streaming-community-api . -``` - -and to run it use - -``` -docker run -it -p 8000:8000 streaming-community-api -``` - -By default the videos will be saved in `/app/Video` inside the container, if you want to to save them in your machine instead of the container just run - -``` -docker run -it -p 8000:8000 -v /path/to/download:/app/Video streaming-community-api -``` - -### Docker quick setup with Make - -Inside the Makefile (install `make`) are already configured two commands to build and run the container: - -``` -make build-container - -# set your download directory as ENV variable -make LOCAL_DIR=/path/to/download run-container -``` - -The `run-container` command mounts also the `config.json` file, so any change to the configuration file is reflected immediately without having to rebuild the image. - -# Website Status - -| Website | Status | -|:-------------------|:------:| -| 1337xx | ✅ | -| Altadefinizione | ✅ | -| AnimeUnity | ✅ | -| BitSearch | ✅ | -| CB01New | ✅ | -| DDLStreamItaly | ✅ | -| GuardaSerie | ✅ | -| MostraGuarda | ✅ | -| PirateBays | ✅ | -| StreamingCommunity | ✅ | - -# Tutorials - -- [Windows Tutorial](https://www.youtube.com/watch?v=mZGqK4wdN-k) -- [Linux Tutorial](https://www.youtube.com/watch?v=0qUNXPE_mTg) -- [Pypy Tutorial](https://www.youtube.com/watch?v=C6m9ZKOK0p4) -- [Compiled .exe Tutorial](https://www.youtube.com/watch?v=pm4lqsxkTVo) - -# To Do - -- Create website API - -# Contributing - -Contributions are welcome! Steps: -1. Fork the repository -2. Create feature branch (`git checkout -b feature/AmazingFeature`) -3. Commit changes (`git commit -m 'Add some AmazingFeature'`) -4. Push to branch (`git push origin feature/AmazingFeature`) -5. Open Pull Request - - -# Disclaimer - -This software is provided "as is", without warranty of any kind, express or implied, including but not limited to the warranties of merchantability, fitness for a particular purpose, and noninfringement. In no event shall the authors or copyright holders be liable for any claim, damages, or other liability, whether in an action of contract, tort, or otherwise, arising from, out of, or in connection with the software or the use or other dealings in the software. +Per testare + +1. Installare requirements +2. Inserire url per mongodb e creare database +3. Runnare server.py + +4. Spostarsi su client\dashboard +5. Eseguire npm install, npm run build, npm install -g serve + +Cosa da fare +- Aggiungere documentazione +- Bottone download intera stagione +- Messaggio con richiesta se scaricare le nuove stagione quando si fa il check in watchlist +- Migliore player in case watch con bottone +- Coda di download con bottone aggiungere alla coda (complessa) +... \ No newline at end of file diff --git a/StreamingCommunity/Api/Player/Helper/Vixcloud/__pycache__/js_parser.cpython-312.pyc b/StreamingCommunity/Api/Player/Helper/Vixcloud/__pycache__/js_parser.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..b13ca88c51c610199b62c624f08f7842f4c240a5 GIT binary patch literal 5611 zcmbtYO>7&-6`mz``A?A|Mahz>U+Tw{Y&o|47s-huOLAn{wF3C3u|=7nxoev=MJcmO z%c7S^3gke+229ySrJx0(00olPIr!F`iqttYX$w>|9gtb*pw_wg#>530ffBNnk#3|&Av^d@3; z?;}=!U#D8idF`b<^d#F<$`Ro}8;^qVB-MCf|xbQnkGgttPN=Wv*+QcVwS@_+VQsFsn4 z-lG6vOeJaT$gv+}Q zC2JD#NO+dzc5!?-G{+@%9X)z+%FJCJBcF!*h|qTd~jr zhXdnWYz`jhA~(XZ*#sMi^1(Uz-23MiB+KQrF+nyO6mf;C2BXEsu6Q@u~3+U zrapmV$_ZmD%$1B}Q$R~@)7&nM)Bzjc3KiLFO?n9Sx=~Ym=i1`6m9ABHuBI!kFF0Ij z3$_E#a~mKACvV_WPF4a5nA;G57I}vW95O6wF zN`*75I}fh8iJPI&dH4~hokutH=g~Z+KK-Us5`9$=<|KyHyhO(nv6w^)IKiEfn9HFU z&mHrdFtJcfG{6Q@xuBAm*z7!qC4D3=NS1Suk$A`?AiyPsVc2y=i8{TKmh>E1r87vewqsgP(>Ubls0; zeTUZFzP!6H>n3dOy=%6;8&+rfwcm`aGQXb4dv|8NJ9FOt2i=dnhrq7a!M+o>2J_bK zS?l(kwRyGvk+nyQ-tfq}qu}0Fqzz`zy1PD;xHq_FYyM%~(fB>0&7Pu8Z}+S>cvsHe z6CXK!Kdif(zekka^Nq7^!%>&E6^+pOv1kO=A9>>44_hrqd(p#Q^N3sjaGzy_(mi~g zg7z1bdBnkdVUgQ46lptXpg-qkWt{lE>}Fdbgo@)@_@SD43Pn(g63THTN@Q;;tPTuI z#TuQc8%5K117mXP!G!iL@lnfyB%~bOEj;TOT$Mlh@ z!2EQd()0)T-a+{9n7X+0W@@@myg79-HQk#M15;BM1Jl#JfoU<&1I-?2_J|!*7dxhV zJNy!LQ=+E)W=w!g(qWFEdz=l$Viix7EW8lH0zV%Su1Yq=wPr6xxv(IW+%SZ3XaTo? z2tOkkVT=Ss$$&XN5fdcGHEu!iR0x|9%u9M8;AY_F2{5*iB1ab71>I!x7T&BZxsOcy z3@QjMuEynEOS@L-oU1GE>dU(Na;{xz<3_DJZCG#ee%Sj#?^@S8YkV@-bTjRE(&S&9 zNRMPZ>#mNxYgg8_>yvQKwKqLdsB2t4v2^0z&(dSyX?aI$*3r7Ef9&X7Z|Tps3}st} zJ{!xm9L*Rq{9S9Iwmx6mo~>kz!~AMV|6J=HB&T8rx+Hc3?c%j3xdNLMI*~x zN7yMcJi{7NjA%?5;%3nx8s*qgnZfW!fmfj#M4B}v!DUi({2)-xGOt2ykf}R?YLTfu zz^lZ*4pFBWxAj^(RQI5|AO)#rN`HGw)Qd)WW&Q0CxWP;3;@1CfMH!kT*pEpxy-Y`W zyd2fx{z`>4s@mf&km;f}qI%BYHt0Sjt|L(?iP|X{LSZ3tox?u4HUT-1ITA0uQAn0| z60-sq6c*+4VTqRct1xvYB!sWxUZRGKsl+5?Of6Lkv~~k^%S1`W?{VPZSK)-V zMAia9)(y8OZ7MW0rfr4#hO`yXGi@$-8q=01b=%XU1&2G6%sSe?X=p37b!Lti+Pjt} z3ZB;0eUCgng|;r4l9~92+Y33;%D~;BLS5_Xo@`y`(g_f+R2ZUwLfX^Q6uT+PWK-2bTu#9ZrvKINW#MU3_f9*V4sBK(1L$LqsC+tVl>m8jR`#z|znW8Od-v@F&|;#&9T3 zzEvC>A62=@OyJ!OY?7ri?6=5Rg?)r>7@a&beDb86`zeSfgBgJe8NKiU(mDv0-ze$B zF@hhz=$eB?@82D1{jT@T@4JT$|}I3&4X)gXLBSO{Le$_8bW;)&r@!;-|v z>148AJLeODo&O3dcz3Jcwj5oGuC)(;{_5W@{XOzkBv=17zz>0>C#}7Ulj-pcw`D3< z@O9^X16kj|gRz`%5E8W;kDP7K=W@XE@sW>?JlLP}y;@?}c#%}BMQwfmszWVpAD;i< z{94b%m&bF>=hjS3-&mVV64nOB@&hNb11G*5&JCQ(`6koHGKT@1HXNQ(_IJu}l}thT zsDeSs5)97FvWXZ6ZCfz-P9hW|he&#mcMFm53@2QjWtEp^^1iIxP5G)MYd8jXQQ|rd z48KEilBobc@oza&k+bI)pn4w_nA-1jX2$hQj|{FNX+d&oaDAs^7vi#dHuA}O|N2HeL{TDA1tN#E1 literal 0 HcmV?d00001 diff --git a/StreamingCommunity/Api/Player/Helper/Vixcloud/__pycache__/js_parser.cpython-39.pyc b/StreamingCommunity/Api/Player/Helper/Vixcloud/__pycache__/js_parser.cpython-39.pyc new file mode 100644 index 0000000000000000000000000000000000000000..0a28b8ec2ca447d01b035619381dc20d03a5922d GIT binary patch literal 3025 zcmZ`*&2k&Z5uTa-#R8;h#g)iEN@P?j6lh6KRZ_7_R_r)tWG3ZeTp^>BfrU`3ofQdr z34pT;(u8Jnkxn`JkOu&7$t9;eKn{M2x%#B4JOK}hznP?C3RW_!AOc6z42?w(|6 zDPnk9cQ$tJzRK9QG+2Bb41R-Fyn#+K$#d3apE4<=^Mpy~vFLKiw^+x03OUT*?MwSkOr?Cm1ft1`Ptb~6=rr~*WvV6F7ArA&%q#SB?Bkfvg%rp27I4g%SL4pe>yBTruXBmQf0{=M4ycJ_OM!c^fK1R zlVSXMo*ZQ=-pKL^K6i&-rTKU&6TtqFAqGbN3kV{!*w73llrn@?7v@=>a;=cs_U&8EmmxRC=_^UjP=DmHyGcIHPyA zTn07YXJ4Gj{!z=mU?cH!aH+Q-3pb6sTb2{!QC}E$G|hA4mTH=98}C7q7ulUos08+> zD0mg2TaiPJmyZuKWt`!tG|}B8pJu;PYOF9TA15VF-8&%W^XJ~QI2l+O`Lk%FV4;4A@c--8YT!hM!_{?6)$b@!55+uTCB5v z9E-}S+|rr5nnKahuGMz&^(Z*iUC4ax9&^pLbDQnAtpsB=fh1UzU>q)vH6<+%(0o+Q zet)eOueSRi_2R?+J2lyfi?v&5*LwG^KdSog=tsSKRe!D0aj$nT?)TT?zK&Nxu7X_E z?cTk1f34jy{Lu;TbsEaY7L8CDL3$*UJb&gc6BT8m%HnWX?wVG8VB`A_v$Qm)en^x` zj@0Y;MaSy~kWt_oUuDHKFT1aNnH|-xLU<2VVH_~jWoSR=R`nC`eu-9)kcnmC!f7oV z?2!%n6|o{_SH8!IwM`ei*urmUXEwgJkytN!aR**RLkg{sJS$hal_y!{YX)!rwF-0~ zy#uDUwO6c5zw&fY`J)x>>j3eyeXi{lb7&Ipp>}2X9;@8ZufS=5qlxoAaefL;1kM~B ziqp9kh;@e$a?CjjRORfiX-5Z`Zz+d+#KzCs4T&wn+abBnz27-fO8 z{cmJbhsYlPlP&sw&DDpcH}~a|4uRN)Zh*6?8*>ybU^TMTGN`6SUK2_275bCra^-cV zBcS!0(>1W_*%}s=uL705zF~?g*PV_y;q4Q?x~-@JKP8^w)d|0D{3I=h2bo#|Yjz13 z26{Vj`xapqknKFB41vNFKm9+RGf?`;WRi`f`Z0txC0y)gFc={9a z7Lc#Kxr5wBUzaWw>bHm%jDP`TGWh?pl~5jwA@MIr7_!%bCe{k2t2vP7YhQg0{XqNk zhJ+6NPx`l+c97A6&DoVhWSsF~eDhj-2s{*PzpnGx2Y|!}A6XQsH(~$m>X~AijOYq+ zXJh?Ln`T1yXHYZIGjS)fI8j%K@2~%H`{U0(v#G8|lLgXM$SiWy4We$M>jcJ0^TIT6 zBdM<--DXl0!<~@@lEqawJV?}FlLN@R;wfG a(WvVvDxq&2Aok#ER`me&xYt*AFR*9Gc>cWZD#| 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 literal 0 HcmV?d00001 diff --git a/StreamingCommunity/Api/Player/Helper/Vixcloud/__pycache__/util.cpython-39.pyc b/StreamingCommunity/Api/Player/Helper/Vixcloud/__pycache__/util.cpython-39.pyc new file mode 100644 index 0000000000000000000000000000000000000000..676936491e6502d5cc6cf95bb2810e73f2297376 GIT binary patch literal 7974 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 N4dq$9T^fxu{{=FsiE01< literal 0 HcmV?d00001 diff --git a/StreamingCommunity/Api/Player/__pycache__/ddl.cpython-312.pyc b/StreamingCommunity/Api/Player/__pycache__/ddl.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..083f62269cd042c1c5ae7d59d38ac53d6f6e2165 GIT binary patch literal 3348 zcmb_e-ESMm5#Qt8@k2aPwkb!XBgYF%YRn>G`e7%HYNeHJ*>V$o)RKdk5O6s2meNu8 z!R+l>B0(8J-~uX;BGyY)qbRJR1?s|m$iLt`1?Y2)csw_#LDt z+A^gkTKG@VcvhS7_Y zlW$%f_2bt@e|~**dS=>>F~cH`$4YyrK&XA)A&{;ig7_7S5k0Ppcch}IOGMHIJyMo* z8OCxrCK8OJFosLqLB&`tl27=_w+)>*a6DQfev}gCQG22!bZjO9&%fRC!Ctz++S-TB z-wdIF)V7qhPKQ9sX9f*+6YE#IaI;;t4Q6PjQ70~D^8|Ms13Nb>q{Q%|!RE0}%9>{~ zd`mMu;uhNT>s_8p=*wV5n@!{;D#IpztZ7IZ<)diHaTW{$R+U_0mR){8{Pad?X!bfx zb!TUY%M5#N_L5WbELg^!y<)I2@8;|@qeQbnbmh?H;-_1ey9@>ec+~6M<{$OqNo?VeXP@X*3w<7&2xeH33fh{mP|jsdfV8r<4k9yAEJNd1GhU8V_hu~!XjdW*XjyMb>*YjR6hslydIzJBek zLRWj@ltwj+FfhzeTgH9$GKS;eGcKd~Av^=~VH$SI2R7Jq4MaZ8z}fN<+6^S&U493Q z=@B5l>_V7T>qk3{6o^iO)=feO7D}U@Ua(1=@=HHs4({9_AfE!Wh7xEmAS<0_11)dd zT$Of6hO$78Dtx7Vjm2AnzX%VTvz8-`NQED3Uu%WGfIzS8Q^If>^&^&U$p;WUy)3e$ zt#O54Y+utO4e__=caeupFbU`eWUFQIwpbHGx+pB7CGiGY6!KF2pKVW#YYPNxHXfUq znZj2_XD}u20$vzqPT;Bkhtpvxi*Lh&Xm9zB5V{s*j|1@op%X?9C2rNRU4kJCG5{Pl z%GmWvCE~h}B45H2j!m!w%hN@}C3^t{@aFMEQ_%Ub5Y;Z_j;d!yY)mM1D0WIEk5Zx! z;fZ{gFV8bpUGhc9uE8|Q-QXuJZAoqBQ~wCnU>CLQP}OA`^ITtIWQqBS(WMfpGQ+X` znCZ;TK_2ksU=KJ)JD~k|>o&d!N|%QUhf5gY3OAJ6G*Ug=8R(sw@4zH?0Xm5H9wqVG zlit3y+G=gPr*}KscVD@uaFV>2e3I?|Dj{dnD`PtfN*&))1|KVfe^XxkJoEh8@aph} zg8%!E?(COHfF+d7hvUB--{^bgBk_T^apK&T^6G~2>gU~=uXkdgf9hsozxPL!k#6*; zJ25gOKFVfC&WVrC$-qC8_<2eVaP~GtBgYxwsGa0N*K8m?1a++lUKSbx9bqAs=m7EmqrE&s}${~o}w z{4KMi4fz0uW6Sbwxfas{+JWJCeYJ~+4Q~J+YLHvaf>?#pVj6&8o^Q+4u@1?&ol~K1 zA3z>tS(Aj=v#MvYY1j)Kb7jY~^>2n-Jvq-TC}!-Vnz=>nb;!HwF0Z{LI0o_gT`c=6&q%*A|bfL)lmns(s0 zj?>c+1z|Gak?Bii!`3OUsq_Wjo#Gv@BKc?t)jr^%{KM;u4sbROc2Kz;e1W(;{RftB zp_aeJT6TXHwVj%u!Zi2S(D5pDEHNc)XL`3X1CKKU>ob3P=lAbyW(q5pzUa<8=>@@q z;mzLH?@HUbllOD?a_c|Z%)N9s`b8$UeQNN2{a*dS;O43C-5uM0zW?szS5b7lZ*6>a zeB<=xPkXMw@Mv}|wVK*^VeHc*S6c|5650^|*(cxsq<`bY#FjGoSeg8KM-<>NPhEb| z_eatr!|2h`Q$-TeH>>wcP zJ-eLj9Lvf*>*5Xq@<80>WcO@No)W_K_)_^)=vSVzeDS7xmIiL`Klnl`TxW(^P%Exu zUku*ZRN`|^ebb+2+<9(bG{STBB*+f4uXz2twQmjq!-_!0#q*yDfNt0pD@ literal 0 HcmV?d00001 diff --git a/StreamingCommunity/Api/Player/__pycache__/ddl.cpython-39.pyc b/StreamingCommunity/Api/Player/__pycache__/ddl.cpython-39.pyc new file mode 100644 index 0000000000000000000000000000000000000000..d40892c95e09572df4305d1c3345cda47f7dfc35 GIT binary patch literal 2530 zcmb_eOK%iM5bmD$uGfwcBq1n|R*(=Yg%ygp#6k#g%tL@fymkP5XnB~FU>Vlr2K^_hg9|0%Q}WzM(W<`>Q~iQUsr87Ki?+s{rJ_LQPLvh z4;;*X77VUJlix!ZlbEK&Z+@vyVQi#EX8I;Yotavh?b}+mQYUkLSIc(lWi7u&3Agv! zu@k%dhCg?c#9rKbN#fQE!|%kjPrB{D;106drS<%E9+oN@mTA8z$DmkD?ngrs>7&U zU|clJ@ zdiIF_2phVs+4KVl)j37BD59_hT-q`fF!*O{*O(Z4_CBFxVr)4NNS|0lxjQ~3yYOVI zkCnIAij9f+EBVdXr<6P(58)Z_n$OL=-TYo87eNE4TGgLZAnt{aISX@kYkmDbyScK? z1b+g=Q%n^ai2nmqI4Z+yFh*~VpNY_#eq+bN1CeP0Be)zFx#SE|hXUfVWXNP0MO;eA zD_^kHBIm4tC-`^f&-M!!QJvSbfj%ii(-TRAII?w&sd=6jOz3(w`R8i7A#Q=AIRsFtR2Vl1|xsPHZ8; z^0t=khHUvIO~;>rj!-p#j=0X5*hlE-?%L07priiPbaa7^UiHhAj=%(w@TUh!atzrf zO@NH}GKZqb-tsnQw?d*mMk08ODQ{?$jW4k@$sZ$qhDDjj?`BRlx2ZD7aiM_BSvyUp zsZA-O>hsltU2YUtmTih2TbOT%kSFts&I@>rZg4X=Ns2g!bEL8 zl9z-==Irsh*4t1?+6%U1kuU4NA;QExpS^44VS&XY?SJ`}RZtXr{Y3E|ltl0Y%cu&| tonBNxZpc+rnO%e?ff1UoEuQgByQ)ivce#P-3fd%5KuOij{1?R literal 0 HcmV?d00001 diff --git a/StreamingCommunity/Api/Player/__pycache__/maxstream.cpython-312.pyc b/StreamingCommunity/Api/Player/__pycache__/maxstream.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..bac5268197cdfadd8cd548642edc068e6fd892bd GIT binary patch literal 6532 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 literal 0 HcmV?d00001 diff --git a/StreamingCommunity/Api/Player/__pycache__/supervideo.cpython-312.pyc b/StreamingCommunity/Api/Player/__pycache__/supervideo.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..c5fde8a5cd5aedb5ad5a4e7245d4edfdee7fab14 GIT binary patch literal 7108 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 literal 0 HcmV?d00001 diff --git a/StreamingCommunity/Api/Player/__pycache__/supervideo.cpython-39.pyc b/StreamingCommunity/Api/Player/__pycache__/supervideo.cpython-39.pyc new file mode 100644 index 0000000000000000000000000000000000000000..e8e0f23a14f4289db9aa7ff1f0d55c125e83bb41 GIT binary patch literal 5220 zcmb_gUvJ#T5$BRT9*=jDFLs*PMPoCv5$J5`WV8j^s7)KicI=>zpjuLcUX-%b?cRwp zk38=#ZHc|hL+w5m@I&9?0McV$`T_bu`oPx!0rC}s7U<0K{_rFVHj19W<^JRB?#yp~ zGb?{?&e7oam-m0u{q}85`vx1up9zf*;Ssw~P>qsMYvpg!BC4&oboDk`2E6sq?3G$2 zf^&?}>Xln%RX0PsS7}v<#>z(yEm7-OZ&mMVv`p=18nvJ5tr{hpTBGtEtfQ?rNH+Ho z^Aj0#l5jIl`p_}oj-yV{^?H8fcNvGCYL`iGkNK2wk=YOK{C4}!=GJCbmO+ojiEN{& z;?ID_hw!MwFbxmT(wRXC)nDk;pyo5PWikVLunn7pb_v=REkoO;6=;{KL#xlUmQ8DP z4&D_yPtU>Ifv@T>2z`T|hgns1mZY9CxP5^DeL%2DBZ_?m@v_FCIZ%^^yG`Z7J|tM_u~ zN8JP@r_Q!ue0iG05OsHM$L*vC--?~PfxMUO?rciV{2mP5ihI2T>~r|CuC;!!vl04- zjPHn~&$!ZQvwxV`o)^GJo(GPpi5e7|trMM?|FKIBN#873xH+CW11dZqy0-!qI&k{l zK-<^$2|{RJr$hqM|7s5PfqrBjYeXC9`=!scO+ccw4tIz)G>Dd7mgOUx8Uy1i?Q8v* z5bZPV_Zl^a#+TqRo1@xI?IzR|B)^^D;8Xu0bN$G@x3#t5-o3Nsa`p%?CtVpU^z?a* zhoy+90uVQR?)R7k)xHK0K~xWyLC8s;tB~ zk2!4P90*i<$?WlIGQt#0^WqI$v4(nr4Js472R-5<6k1g$7J>>M{oj^l6I-7rb&_5z z!mIcxctZ^x*&8X0S3t_yxVsOdXX)=52*k&b3FKtr|Cj)UVHCpOodd~z@GWKVJm?gIkzjyG3jT}q;Rewx zE@o^niiicvZJbFus33Q7=5q*yYqO{thgi<~;DSISh&zQ#L`ZJy!fI#WWI{@>INXvO z^PHFfHc>3yPMkz^%1xP-E8#oP9#DB3!dSz|$>R#tTjl&C zaS8~SX60iKV4lE`s5uUh#Jrx)fM7cDY!D#S2HFt-VFZGU&;l4JqhkuF``3#`#~>nH zzd-J}`TMLLbb>s1K#-xi2jti&dR9T}XWRHC84mbVhspNdgiAU+?iGZcVZs@l{7*0$ zFF0f5VtB(?0*PDh6E1kU&ffv0auU3aN#8Oms*xHnm3%RYdOZ6%D-szT<=QC}Z*@ zLZh$8lr{H-E80Bh1I)n$ul8!BLk`h3V2|_IfJsLD+DXR$&ELm{d^Kn$eh;^neo{E+ z?DjB+^QD8jqpGIzENC_6(yt~Qb31+#g|Sb; zC39yw?TNEF{7cz!0`tNRl8z(;k>`?MHxYVgn)~EDJwy8IX<=ODCNsHFGrgLJSh2bz zuJ3%l^Cx(9AVtUK!s6$DSoq>bV}UOK1k?I@JkBZdFqmjJy1yHu|8jS%k!EV)l~k;zS5K}tl{Vp+^uk)? zstbV|x7!Jai^!_mn9CyrMuTborve3EhQ3VaEVBgjd3!G_bvdSjcr)OOSlqw@Q^!U% z&k`_Uj} zd}$V1L$W|Ug@KTNh7E`fD73N(yaLe*a#1IL8;)+1nr@PLbJQ~)fxh}^?mT{h56rIV z7Rz8-x)XXn=5C{9Q`X~^p6qLLJ&#*16&NZ_p*Iw_Ahgd{0c=2JP+I; MO?XJntl?w)7haEU2><{9 literal 0 HcmV?d00001 diff --git a/StreamingCommunity/Api/Player/__pycache__/vixcloud.cpython-312.pyc b/StreamingCommunity/Api/Player/__pycache__/vixcloud.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..c5cb430d2c1bab695278e5bfba3fbd43c44a33d2 GIT binary patch literal 9315 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 0: - - # Select title from list - select_title = run_get_select_title() - - # Download title - download_title(select_title) - - else: - console.print(f"\n[red]Nothing matching was found for[white]: [purple]{string_to_search}") - - # Retry - search() diff --git a/StreamingCommunity/Api/Site/1337xx/costant.py b/StreamingCommunity/Api/Site/1337xx/costant.py deleted file mode 100644 index c4bd929..0000000 --- a/StreamingCommunity/Api/Site/1337xx/costant.py +++ /dev/null @@ -1,15 +0,0 @@ -# 09.06.24 - -import os - - -# Internal utilities -from StreamingCommunity.Util._jsonConfig import config_manager - - -SITE_NAME = os.path.basename(os.path.dirname(os.path.abspath(__file__))) -ROOT_PATH = config_manager.get('DEFAULT', 'root_path') -DOMAIN_NOW = config_manager.get_dict('SITE', SITE_NAME)['domain'] - -SERIES_FOLDER = config_manager.get('DEFAULT', 'serie_folder_name') -MOVIE_FOLDER = config_manager.get('DEFAULT', 'movie_folder_name') \ No newline at end of file diff --git a/StreamingCommunity/Api/Site/1337xx/site.py b/StreamingCommunity/Api/Site/1337xx/site.py deleted file mode 100644 index 92f6fd4..0000000 --- a/StreamingCommunity/Api/Site/1337xx/site.py +++ /dev/null @@ -1,84 +0,0 @@ -# 02.07.24 - -# External libraries -import httpx -from bs4 import BeautifulSoup - - -# Internal utilities -from StreamingCommunity.Util.console import console -from StreamingCommunity.Util._jsonConfig import config_manager -from StreamingCommunity.Util.headers import get_headers -from StreamingCommunity.Util.table import TVShowManager - - -# Logic class -from StreamingCommunity.Api.Template import get_select_title -from StreamingCommunity.Api.Template.Util import search_domain -from StreamingCommunity.Api.Template.Class.SearchType import MediaManager - - -# Variable -from .costant import SITE_NAME -media_search_manager = MediaManager() -table_show_manager = TVShowManager() - - -def title_search(word_to_search: str) -> int: - """ - Search for titles based on a search query. - - Parameters: - - title_search (str): The title to search for. - - Returns: - - int: The number of titles found. - """ - - # Find new domain if prev dont work - max_timeout = config_manager.get_int("REQUESTS", "timeout") - domain_to_use, _ = search_domain(SITE_NAME, f"https://{SITE_NAME}") - - # Construct the full site URL and load the search page - try: - response = httpx.get( - url=f"https://{SITE_NAME}.{domain_to_use}/search/{word_to_search}/1/", - headers={'user-agent': get_headers()}, - follow_redirects=True, - timeout=max_timeout - ) - response.raise_for_status() - - except Exception as e: - console.print(f"Site: {SITE_NAME}, request search error: {e}") - - # Create soup and find table - soup = BeautifulSoup(response.text, "html.parser") - - # Scrape div film in table on single page - for tr in soup.find_all('tr'): - try: - - title_info = { - 'name': tr.find_all("a")[1].get_text(strip=True), - 'url': tr.find_all("a")[1].get("href"), - 'seader': tr.find_all("td")[-5].get_text(strip=True), - 'leacher': tr.find_all("td")[-4].get_text(strip=True), - 'date': tr.find_all("td")[-3].get_text(strip=True).replace("'", ""), - 'size': tr.find_all("td")[-2].get_text(strip=True) - } - - media_search_manager.add_media(title_info) - - except: - continue - - # Return the number of titles found - return media_search_manager.get_length() - - -def run_get_select_title(): - """ - Display a selection of titles and prompt the user to choose one. - """ - return get_select_title(table_show_manager, media_search_manager) \ No newline at end of file diff --git a/StreamingCommunity/Api/Site/1337xx/title.py b/StreamingCommunity/Api/Site/1337xx/title.py deleted file mode 100644 index 1af2b8f..0000000 --- a/StreamingCommunity/Api/Site/1337xx/title.py +++ /dev/null @@ -1,66 +0,0 @@ -# 02.07.24 - -import os - - -# External libraries -import httpx -from bs4 import BeautifulSoup - - -# Internal utilities -from StreamingCommunity.Util.console import console -from StreamingCommunity.Util.os import os_manager -from StreamingCommunity.Util.message import start_message -from StreamingCommunity.Util.headers import get_headers -from StreamingCommunity.Lib.Downloader import TOR_downloader - - -# Logic class -from StreamingCommunity.Api.Template.Class.SearchType import MediaItem - - -# Config -from .costant import ROOT_PATH, DOMAIN_NOW, SITE_NAME, MOVIE_FOLDER - - -def download_title(select_title: MediaItem): - """ - Downloads a media item and saves it as an MP4 file. - - Parameters: - - select_title (MediaItem): The media item to be downloaded. This should be an instance of the MediaItem class, containing attributes like `name` and `url`. - """ - - start_message() - console.print(f"[yellow]Download: [red]{select_title.name} \n") - print() - - # Define output path - title_name = os_manager.get_sanitize_file(select_title.name) - mp4_path = os_manager.get_sanitize_path( - os.path.join(ROOT_PATH, SITE_NAME, MOVIE_FOLDER, title_name.replace(".mp4", "")) - ) - - # Create output folder - os_manager.create_path(mp4_path) - - # Make request to page with magnet - full_site_name = f"{SITE_NAME}.{DOMAIN_NOW}" - response = httpx.get( - url="https://" + full_site_name + select_title.url, - headers={ - 'user-agent': get_headers() - }, - follow_redirects=True - ) - - # Create soup and find table - soup = BeautifulSoup(response.text, "html.parser") - final_url = soup.find("a", class_="torrentdown1").get("href") - - # Tor manager - manager = TOR_downloader() - manager.add_magnet_link(final_url) - manager.start_download() - manager.move_downloaded_files(mp4_path) diff --git a/StreamingCommunity/Api/Site/altadefinizione/__init__.py b/StreamingCommunity/Api/Site/altadefinizione/__init__.py deleted file mode 100644 index a044fdb..0000000 --- a/StreamingCommunity/Api/Site/altadefinizione/__init__.py +++ /dev/null @@ -1,50 +0,0 @@ -# 26.05.24 - -from unidecode import unidecode - - -# Internal utilities -from StreamingCommunity.Util.console import console, msg - - -# Logic class -from .site import title_search, run_get_select_title, media_search_manager -from .film import download_film - - -# Variable -indice = 2 -_useFor = "film" -_deprecate = False -_priority = 2 -_engineDownload = "hls" - - -def search(string_to_search: str = None, get_onylDatabase: bool = False): - """ - Main function of the application for film and series. - """ - - if string_to_search is None: - string_to_search = msg.ask("\n[purple]Insert word to search in all site").strip() - - # Search on database - len_database = title_search(unidecode(string_to_search)) - - # Return list of elements - if get_onylDatabase: - return media_search_manager - - if len_database > 0: - - # Select title from list - select_title = run_get_select_title() - - # Download only film - download_film(select_title) - - else: - console.print(f"\n[red]Nothing matching was found for[white]: [purple]{string_to_search}") - - # Retry - search() diff --git a/StreamingCommunity/Api/Site/altadefinizione/costant.py b/StreamingCommunity/Api/Site/altadefinizione/costant.py deleted file mode 100644 index 5bac8f6..0000000 --- a/StreamingCommunity/Api/Site/altadefinizione/costant.py +++ /dev/null @@ -1,15 +0,0 @@ -# 26.05.24 - -import os - - -# Internal utilities -from StreamingCommunity.Util._jsonConfig import config_manager - - -SITE_NAME = os.path.basename(os.path.dirname(os.path.abspath(__file__))) -ROOT_PATH = config_manager.get('DEFAULT', 'root_path') -DOMAIN_NOW = config_manager.get_dict('SITE', SITE_NAME)['domain'] - -SERIES_FOLDER = config_manager.get('DEFAULT', 'serie_folder_name') -MOVIE_FOLDER = config_manager.get('DEFAULT', 'movie_folder_name') \ No newline at end of file diff --git a/StreamingCommunity/Api/Site/altadefinizione/film.py b/StreamingCommunity/Api/Site/altadefinizione/film.py deleted file mode 100644 index 0cbf1aa..0000000 --- a/StreamingCommunity/Api/Site/altadefinizione/film.py +++ /dev/null @@ -1,69 +0,0 @@ -# 26.05.24 - -import os -import time - - -# Internal utilities -from StreamingCommunity.Util.console import console, msg -from StreamingCommunity.Util.os import os_manager -from StreamingCommunity.Util.message import start_message -from StreamingCommunity.Util.call_stack import get_call_stack -from StreamingCommunity.Lib.Downloader import HLS_Downloader - - -# Logic class -from StreamingCommunity.Api.Template.Util import execute_search -from StreamingCommunity.Api.Template.Class.SearchType import MediaItem - - -# Player -from StreamingCommunity.Api.Player.supervideo import VideoSource - - -# Config -from .costant import ROOT_PATH, SITE_NAME, MOVIE_FOLDER - - -def download_film(select_title: MediaItem): - """ - Downloads a film using the provided film ID, title name, and domain. - - Parameters: - - title_name (str): The name of the film title. - - url (str): The url of the video - """ - - # Start message and display film information - start_message() - console.print(f"[yellow]Download: [red]{select_title.name} \n") - - # Set domain and media ID for the video source - video_source = VideoSource(select_title.url) - - # Define output path - title_name = os_manager.get_sanitize_file(select_title.name) + ".mp4" - mp4_path = os_manager.get_sanitize_path( - os.path.join(ROOT_PATH, SITE_NAME, MOVIE_FOLDER, title_name.replace(".mp4", "")) - ) - - # Get m3u8 master playlist - master_playlist = video_source.get_playlist() - - # Download the film using the m3u8 playlist, and output filename - r_proc = HLS_Downloader( - m3u8_playlist=master_playlist, - output_filename=os.path.join(mp4_path, title_name) - ).start() - - if r_proc == 404: - time.sleep(2) - - # Re call search function - if msg.ask("[green]Do you want to continue [white]([red]y[white])[green] or return at home[white]([red]n[white]) ", choices=['y', 'n'], default='y', show_choices=True) == "n": - frames = get_call_stack() - execute_search(frames[-4]) - - if r_proc != None: - console.print("[green]Result: ") - console.print(r_proc) diff --git a/StreamingCommunity/Api/Site/altadefinizione/site.py b/StreamingCommunity/Api/Site/altadefinizione/site.py deleted file mode 100644 index b06ee7b..0000000 --- a/StreamingCommunity/Api/Site/altadefinizione/site.py +++ /dev/null @@ -1,86 +0,0 @@ -# 26.05.24 - -# External libraries -import httpx -from bs4 import BeautifulSoup - - -# Internal utilities -from StreamingCommunity.Util.console import console -from StreamingCommunity.Util._jsonConfig import config_manager -from StreamingCommunity.Util.headers import get_headers -from StreamingCommunity.Util.table import TVShowManager - - -# Logic class -from StreamingCommunity.Api.Template import get_select_title -from StreamingCommunity.Api.Template.Util import search_domain -from StreamingCommunity.Api.Template.Class.SearchType import MediaManager - - -# Variable -from .costant import SITE_NAME, DOMAIN_NOW -media_search_manager = MediaManager() -table_show_manager = TVShowManager() - - -def title_search(title_search: str) -> int: - """ - Search for titles based on a search query. - - Parameters: - - title_search (str): The title to search for. - - Returns: - int: The number of titles found. - """ - client = httpx.Client() - - # Find new domain if prev dont work - max_timeout = config_manager.get_int("REQUESTS", "timeout") - #domain_to_use, _ = search_domain(SITE_NAME, f"https://{SITE_NAME}") - - # Send request to search for title - try: - response = client.get( - url=f"https://{SITE_NAME}.{DOMAIN_NOW}/?story={title_search.replace(' ', '+')}&do=search&subaction=search&titleonly=3", - headers={ - 'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8', - 'accept-language': 'it-IT,it;q=0.9,en-US;q=0.8,en;q=0.7', - 'User-Agent': get_headers() - }, - timeout=max_timeout - ) - response.raise_for_status() - - except Exception as e: - console.print(f"Site: {SITE_NAME}, request search error: {e}") - raise - - # Create soup and find table - soup = BeautifulSoup(response.text, "html.parser") - table_content = soup.find('div', id="dle-content") - - # Scrape div film in table on single page - for film_div in table_content.find_all('div', class_='col-lg-3'): - title = film_div.find('h2', class_='titleFilm').get_text(strip=True) - link = film_div.find('h2', class_='titleFilm').find('a')['href'] - imdb_rating = film_div.find('div', class_='imdb-rate').get_text(strip=True).split(":")[-1] - - film_info = { - 'name': title, - 'url': link, - 'score': imdb_rating - } - - media_search_manager.add_media(film_info) - - # Return the number of titles found - return media_search_manager.get_length() - - -def run_get_select_title(): - """ - Display a selection of titles and prompt the user to choose one. - """ - return get_select_title(table_show_manager, media_search_manager) diff --git a/StreamingCommunity/Api/Site/animeunity/__init__.py b/StreamingCommunity/Api/Site/animeunity/__init__.py deleted file mode 100644 index 4ceb359..0000000 --- a/StreamingCommunity/Api/Site/animeunity/__init__.py +++ /dev/null @@ -1,50 +0,0 @@ -# 21.05.24 - -from unidecode import unidecode - - -# Internal utilities -from StreamingCommunity.Util.console import console, msg - - -# Logic class -from .site import title_search, run_get_select_title, media_search_manager -from .film_serie import download_film, download_series - - -# Variable -indice = 1 -_useFor = "anime" -_deprecate = False -_priority = 2 -_engineDownload = "mp4" - - -def search(string_to_search: str = None, get_onylDatabase: bool = False): - - if string_to_search is None: - string_to_search = msg.ask("\n[purple]Insert word to search in all site").strip() - - # Search on database - len_database = title_search(unidecode(string_to_search)) - - # Return list of elements - if get_onylDatabase: - return media_search_manager - - if len_database > 0: - - # Select title from list (type: TV \ Movie \ OVA) - select_title = run_get_select_title() - - if select_title.type == 'Movie' or select_title.type == 'OVA': - download_film(select_title) - - else: - download_series(select_title) - - else: - console.print(f"\n[red]Nothing matching was found for[white]: [purple]{string_to_search}") - - # Retry - search() diff --git a/StreamingCommunity/Api/Site/animeunity/costant.py b/StreamingCommunity/Api/Site/animeunity/costant.py deleted file mode 100644 index 5bac8f6..0000000 --- a/StreamingCommunity/Api/Site/animeunity/costant.py +++ /dev/null @@ -1,15 +0,0 @@ -# 26.05.24 - -import os - - -# Internal utilities -from StreamingCommunity.Util._jsonConfig import config_manager - - -SITE_NAME = os.path.basename(os.path.dirname(os.path.abspath(__file__))) -ROOT_PATH = config_manager.get('DEFAULT', 'root_path') -DOMAIN_NOW = config_manager.get_dict('SITE', SITE_NAME)['domain'] - -SERIES_FOLDER = config_manager.get('DEFAULT', 'serie_folder_name') -MOVIE_FOLDER = config_manager.get('DEFAULT', 'movie_folder_name') \ No newline at end of file diff --git a/StreamingCommunity/Api/Site/animeunity/film_serie.py b/StreamingCommunity/Api/Site/animeunity/film_serie.py deleted file mode 100644 index 64230db..0000000 --- a/StreamingCommunity/Api/Site/animeunity/film_serie.py +++ /dev/null @@ -1,130 +0,0 @@ -# 11.03.24 - -import os -import sys -import logging - - -# Internal utilities -from StreamingCommunity.Util.console import console, msg -from StreamingCommunity.Util.os import os_manager -from StreamingCommunity.Util.message import start_message -from StreamingCommunity.Lib.Downloader import MP4_downloader - - -# Logic class -from .util.ScrapeSerie import ScrapeSerieAnime -from StreamingCommunity.Api.Template.Util import manage_selection -from StreamingCommunity.Api.Template.Class.SearchType import MediaItem - - -# Player -from StreamingCommunity.Api.Player.vixcloud import VideoSourceAnime - - -# Variable -from .costant import ROOT_PATH, SITE_NAME, SERIES_FOLDER, MOVIE_FOLDER - - - -def download_episode(index_select: int, scrape_serie: ScrapeSerieAnime, video_source: VideoSourceAnime): - """ - Downloads the selected episode. - - Parameters: - - index_select (int): Index of the episode to download. - """ - - # Get information about the selected episode - obj_episode = scrape_serie.get_info_episode(index_select) - - if obj_episode is not None: - - start_message() - console.print(f"[yellow]Download: [red]EP_{obj_episode.number} \n") - - # Collect mp4 url - video_source.get_embed(obj_episode.id) - - # Create output path - title_name = f"{obj_episode.number}.mp4" - - if scrape_serie.is_series: - mp4_path = os_manager.get_sanitize_path( - os.path.join(ROOT_PATH, SITE_NAME, SERIES_FOLDER, scrape_serie.series_name) - ) - else: - mp4_path = os_manager.get_sanitize_path( - os.path.join(ROOT_PATH, SITE_NAME, MOVIE_FOLDER, scrape_serie.series_name) - ) - - # Create output folder - os_manager.create_path(mp4_path) - - # Start downloading - r_proc = MP4_downloader( - url = str(video_source.src_mp4).strip(), - path = os.path.join(mp4_path, title_name) - ) - - if r_proc != None: - console.print("[green]Result: ") - console.print(r_proc) - - else: - logging.error(f"Skip index: {index_select} cant find info with api.") - - -def download_series(select_title: MediaItem): - """ - Function to download episodes of a TV series. - - Parameters: - - tv_id (int): The ID of the TV series. - - tv_name (str): The name of the TV series. - """ - scrape_serie = ScrapeSerieAnime(SITE_NAME) - video_source = VideoSourceAnime(SITE_NAME) - - # Set up video source - scrape_serie.setup(None, select_title.id, select_title.slug) - - # Get the count of episodes for the TV series - episoded_count = scrape_serie.get_count_episodes() - console.print(f"[cyan]Episodes find: [red]{episoded_count}") - - # Prompt user to select an episode index - last_command = msg.ask("\n[cyan]Insert media [red]index [yellow]or [red](*) [cyan]to download all media [yellow]or [red][1-2] [cyan]or [red][3-*] [cyan]for a range of media") - - # Manage user selection - list_episode_select = manage_selection(last_command, episoded_count) - - # Download selected episodes - if len(list_episode_select) == 1 and last_command != "*": - download_episode(list_episode_select[0]-1, scrape_serie, video_source) - - # Download all other episodes selecter - else: - for i_episode in list_episode_select: - download_episode(i_episode-1, scrape_serie, video_source) - - -def download_film(select_title: MediaItem): - """ - Function to download a film. - - Parameters: - - id_film (int): The ID of the film. - - title_name (str): The title of the film. - """ - - # Init class - scrape_serie = ScrapeSerieAnime(SITE_NAME) - video_source = VideoSourceAnime(SITE_NAME) - - # Set up video source - scrape_serie.setup(None, select_title.id, select_title.slug) - scrape_serie.is_series = False - - # Start download - download_episode(0, scrape_serie, video_source) \ No newline at end of file diff --git a/StreamingCommunity/Api/Site/animeunity/site.py b/StreamingCommunity/Api/Site/animeunity/site.py deleted file mode 100644 index 39b595b..0000000 --- a/StreamingCommunity/Api/Site/animeunity/site.py +++ /dev/null @@ -1,165 +0,0 @@ -# 10.12.23 - -import logging - - -# External libraries -import httpx -from bs4 import BeautifulSoup - - -# Internal utilities -from StreamingCommunity.Util.console import console -from StreamingCommunity.Util._jsonConfig import config_manager -from StreamingCommunity.Util.table import TVShowManager - - -# Logic class -from StreamingCommunity.Api.Template import get_select_title -from StreamingCommunity.Api.Template.Util import search_domain -from StreamingCommunity.Api.Template.Class.SearchType import MediaManager - - -# Variable -from .costant import SITE_NAME -media_search_manager = MediaManager() -table_show_manager = TVShowManager() - - - -def get_token(site_name: str, domain: str) -> dict: - """ - Function to retrieve session tokens from a specified website. - - Parameters: - - site_name (str): The name of the site. - - domain (str): The domain of the site. - - Returns: - - dict: A dictionary containing session tokens. The keys are 'XSRF_TOKEN', 'animeunity_session', and 'csrf_token'. - """ - - # Send a GET request to the specified URL composed of the site name and domain - response = httpx.get(f"https://www.{site_name}.{domain}") - response.raise_for_status() - - # Initialize variables to store CSRF token - find_csrf_token = None - - # Parse the HTML response using BeautifulSoup - soup = BeautifulSoup(response.text, "html.parser") - - # Loop through all meta tags in the HTML response - for html_meta in soup.find_all("meta"): - - # Check if the meta tag has a 'name' attribute equal to "csrf-token" - if html_meta.get('name') == "csrf-token": - - # If found, retrieve the content of the meta tag, which is the CSRF token - find_csrf_token = html_meta.get('content') - - logging.info(f"Extract: ('animeunity_session': {response.cookies['animeunity_session']}, 'csrf_token': {find_csrf_token})") - return { - 'animeunity_session': response.cookies['animeunity_session'], - 'csrf_token': find_csrf_token - } - - -def get_real_title(record): - """ - Get the real title from a record. - - This function takes a record, which is assumed to be a dictionary representing a row of JSON data. - It looks for a title in the record, prioritizing English over Italian titles if available. - - Parameters: - - record (dict): A dictionary representing a row of JSON data. - - Returns: - - str: The title found in the record. If no title is found, returns None. - """ - - if record['title'] is not None: - return record['title'] - - elif record['title_eng'] is not None: - return record['title_eng'] - - else: - return record['title_it'] - - -def title_search(title: str) -> int: - """ - Function to perform an anime search using a provided title. - - Parameters: - - title_search (str): The title to search for. - - Returns: - - int: A number containing the length of media search manager. - """ - - # Get token and session value from configuration - max_timeout = config_manager.get_int("REQUESTS", "timeout") - domain_to_use, _ = search_domain(SITE_NAME, f"https://www.{SITE_NAME}") - - data = get_token(SITE_NAME, domain_to_use) - - # Prepare cookies to be used in the request - cookies = { - 'animeunity_session': data.get('animeunity_session') - } - - # Prepare headers for the request - headers = { - 'accept': 'application/json, text/plain, */*', - 'accept-language': 'it-IT,it;q=0.9,en-US;q=0.8,en;q=0.7', - 'content-type': 'application/json;charset=UTF-8', - 'x-csrf-token': data.get('csrf_token') - } - - # Prepare JSON data to be sent in the request - json_data = { - 'title': title # Use the provided title for the search - } - - # Send a POST request to the API endpoint for live search - try: - response = httpx.post( - url=f'https://www.{SITE_NAME}.{domain_to_use}/livesearch', - cookies=cookies, - headers=headers, - json=json_data, - timeout=max_timeout - ) - response.raise_for_status() - - except Exception as e: - console.print(f"Site: {SITE_NAME}, request search error: {e}") - - # Process each record returned in the response - for dict_title in response.json()['records']: - - # Rename keys for consistency - dict_title['name'] = get_real_title(dict_title) - - # Add the record to media search manager if the name is not None - media_search_manager.add_media({ - 'id': dict_title.get('id'), - 'slug': dict_title.get('slug'), - 'name': dict_title.get('name'), - 'type': dict_title.get('type'), - 'score': dict_title.get('score'), - 'episodes_count': dict_title.get('episodes_count') - }) - - # Return the length of media search manager - return media_search_manager.get_length() - - -def run_get_select_title(): - """ - Display a selection of titles and prompt the user to choose one. - """ - return get_select_title(table_show_manager, media_search_manager) \ No newline at end of file diff --git a/StreamingCommunity/Api/Site/animeunity/util/ScrapeSerie.py b/StreamingCommunity/Api/Site/animeunity/util/ScrapeSerie.py deleted file mode 100644 index f4b411f..0000000 --- a/StreamingCommunity/Api/Site/animeunity/util/ScrapeSerie.py +++ /dev/null @@ -1,97 +0,0 @@ -# 01.03.24 - -import logging - - -# External libraries -import httpx - - -# Internal utilities -from StreamingCommunity.Util.headers import get_headers -from StreamingCommunity.Util._jsonConfig import config_manager -from StreamingCommunity.Api.Player.Helper.Vixcloud.util import EpisodeManager, Episode - - -# Variable -max_timeout = config_manager.get_int("REQUESTS", "timeout") - - - -class ScrapeSerieAnime(): - def __init__(self, site_name: str): - """ - Initialize the media scraper for a specific website. - - Args: - site_name (str): Name of the streaming site to scrape - """ - self.is_series = False - self.headers = {'user-agent': get_headers()} - self.base_name = site_name - self.domain = config_manager.get_dict('SITE', self.base_name)['domain'] - - def setup(self, version: str = None, media_id: int = None, series_name: str = None): - self.version = version - self.media_id = media_id - - if series_name is not None: - self.is_series = True - self.series_name = series_name - self.obj_episode_manager: EpisodeManager = EpisodeManager() - - def get_count_episodes(self): - """ - Retrieve total number of episodes for the selected media. - - Returns: - int: Total episode count - """ - try: - - response = httpx.get( - url=f"https://www.{self.base_name}.{self.domain}/info_api/{self.media_id}/", - headers=self.headers, - timeout=max_timeout - ) - response.raise_for_status() - - # Parse JSON response and return episode count - return response.json()["episodes_count"] - - except Exception as e: - logging.error(f"Error fetching episode count: {e}") - return None - - def get_info_episode(self, index_ep: int) -> Episode: - """ - Fetch detailed information for a specific episode. - - Args: - index_ep (int): Zero-based index of the target episode - - Returns: - Episode: Detailed episode information - """ - try: - - params = { - "start_range": index_ep, - "end_range": index_ep + 1 - } - - response = httpx.get( - url=f"https://www.{self.base_name}.{self.domain}/info_api/{self.media_id}/{index_ep}", - headers=self.headers, - params=params, - timeout=max_timeout - ) - response.raise_for_status() - - # Return information about the episode - json_data = response.json()["episodes"][-1] - return Episode(json_data) - - except Exception as e: - logging.error(f"Error fetching episode information: {e}") - return None diff --git a/StreamingCommunity/Api/Site/bitsearch/__init__.py b/StreamingCommunity/Api/Site/bitsearch/__init__.py deleted file mode 100644 index ec43294..0000000 --- a/StreamingCommunity/Api/Site/bitsearch/__init__.py +++ /dev/null @@ -1,51 +0,0 @@ -# 01.07.24 - -from unidecode import unidecode - - -# Internal utilities -from StreamingCommunity.Util.console import console, msg - - -# Logic class -from .site import title_search, run_get_select_title, media_search_manager -from .title import download_title - - -# Variable -indice = 7 -_useFor = "film_serie" -_deprecate = False -_priority = 2 -_engineDownload = "tor" - - -def search(string_to_search: str = None, get_onylDatabase:bool = False): - """ - Main function of the application for film and series. - """ - - if string_to_search is None: - string_to_search = msg.ask("\n[purple]Insert word to search in all site").strip() - - # Search on database - len_database = title_search(unidecode(string_to_search)) - - # Return list of elements - if get_onylDatabase: - return media_search_manager - - if len_database > 0: - - # Select title from list - select_title = run_get_select_title() - - # Download title - download_title(select_title) - - - else: - console.print(f"\n[red]Nothing matching was found for[white]: [purple]{string_to_search}") - - # Retry - search() diff --git a/StreamingCommunity/Api/Site/bitsearch/costant.py b/StreamingCommunity/Api/Site/bitsearch/costant.py deleted file mode 100644 index 1e55dba..0000000 --- a/StreamingCommunity/Api/Site/bitsearch/costant.py +++ /dev/null @@ -1,15 +0,0 @@ -# 01.07.24 - -import os - - -# Internal utilities -from StreamingCommunity.Util._jsonConfig import config_manager - - -SITE_NAME = os.path.basename(os.path.dirname(os.path.abspath(__file__))) -ROOT_PATH = config_manager.get('DEFAULT', 'root_path') -DOMAIN_NOW = config_manager.get_dict('SITE', SITE_NAME)['domain'] - -SERIES_FOLDER = config_manager.get('DEFAULT', 'serie_folder_name') -MOVIE_FOLDER = config_manager.get('DEFAULT', 'movie_folder_name') diff --git a/StreamingCommunity/Api/Site/bitsearch/site.py b/StreamingCommunity/Api/Site/bitsearch/site.py deleted file mode 100644 index 797058f..0000000 --- a/StreamingCommunity/Api/Site/bitsearch/site.py +++ /dev/null @@ -1,84 +0,0 @@ -# 01.07.24 - -# External libraries -import httpx -from bs4 import BeautifulSoup - - -# Internal utilities -from StreamingCommunity.Util.console import console -from StreamingCommunity.Util._jsonConfig import config_manager -from StreamingCommunity.Util.headers import get_headers -from StreamingCommunity.Util.table import TVShowManager - - -# Logic class -from StreamingCommunity.Api.Template import get_select_title -from StreamingCommunity.Api.Template.Util import search_domain -from StreamingCommunity.Api.Template.Class.SearchType import MediaManager - - -# Variable -from .costant import SITE_NAME -media_search_manager = MediaManager() -table_show_manager = TVShowManager() - - -def title_search(word_to_search: str) -> int: - """ - Search for titles based on a search query. - - Parameters: - - title_search (str): The title to search for. - - Returns: - - int: The number of titles found. - """ - - # Find new domain if prev dont work - max_timeout = config_manager.get_int("REQUESTS", "timeout") - domain_to_use, _ = search_domain(SITE_NAME, f"https://{SITE_NAME}") - - # Construct the full site URL and load the search page - try: - response = httpx.get( - url=f"https://{SITE_NAME}.{domain_to_use}/search?q={word_to_search}&category=1&subcat=2&page=1", - headers={'user-agent': get_headers()}, - timeout=max_timeout - ) - response.raise_for_status() - - except Exception as e: - console.print(f"Site: {SITE_NAME}, request search error: {e}") - - # Create soup and find table - soup = BeautifulSoup(response.text, "html.parser") - - for title_div in soup.find_all("li", class_ = "card"): - try: - div_stats = title_div.find("div", class_ = "stats") - - title_info = { - 'name': title_div.find("a").get_text(strip=True), - 'url': title_div.find_all("a")[-1].get("href"), - #'nDownload': div_stats.find_all("div")[0].get_text(strip=True), - 'size': div_stats.find_all("div")[1].get_text(strip=True), - 'seader': div_stats.find_all("div")[2].get_text(strip=True), - 'leacher': div_stats.find_all("div")[3].get_text(strip=True), - 'date': div_stats.find_all("div")[4].get_text(strip=True) - } - - media_search_manager.add_media(title_info) - - except: - pass - - # Return the number of titles found - return media_search_manager.get_length() - - -def run_get_select_title(): - """ - Display a selection of titles and prompt the user to choose one. - """ - return get_select_title(table_show_manager, media_search_manager) diff --git a/StreamingCommunity/Api/Site/bitsearch/title.py b/StreamingCommunity/Api/Site/bitsearch/title.py deleted file mode 100644 index af5556d..0000000 --- a/StreamingCommunity/Api/Site/bitsearch/title.py +++ /dev/null @@ -1,47 +0,0 @@ -# 01.07.24 - -import os - - -# Internal utilities -from StreamingCommunity.Util.console import console -from StreamingCommunity.Util.message import start_message -from StreamingCommunity.Util.os import os_manager -from StreamingCommunity.Lib.Downloader import TOR_downloader - - -# Logic class -from StreamingCommunity.Api.Template.Class.SearchType import MediaItem - - -# Config -from .costant import ROOT_PATH, SITE_NAME, MOVIE_FOLDER - - -def download_title(select_title: MediaItem): - """ - Downloads a media item and saves it as an MP4 file. - - Parameters: - - select_title (MediaItem): The media item to be downloaded. This should be an instance of the MediaItem class, containing attributes like `name` and `url`. - """ - - start_message() - - console.print(f"[yellow]Download: [red]{select_title.name} \n") - print() - - # Define output path - title_name = os_manager.get_sanitize_file(select_title.name.replace("-", "_") + ".mp4") - mp4_path = os_manager.get_sanitize_path( - os.path.join(ROOT_PATH, SITE_NAME, MOVIE_FOLDER, title_name.replace(".mp4", "")) - ) - - # Create output folder - os_manager.create_path(mp4_path) - - # Tor manager - manager = TOR_downloader() - manager.add_magnet_link(select_title.url) - manager.start_download() - manager.move_downloaded_files(mp4_path) diff --git a/StreamingCommunity/Api/Site/cb01new/__init__.py b/StreamingCommunity/Api/Site/cb01new/__init__.py deleted file mode 100644 index d927778..0000000 --- a/StreamingCommunity/Api/Site/cb01new/__init__.py +++ /dev/null @@ -1,51 +0,0 @@ -# 09.06.24 - -from unidecode import unidecode - - -# Internal utilities -from StreamingCommunity.Util.console import console, msg - - -# Logic class -from .site import title_search, run_get_select_title, media_search_manager -from .film import download_film - - -# Variable -indice = 9 -_useFor = "film" -_deprecate = False -_priority = 2 -_engineDownload = "mp4" - - -def search(string_to_search: str = None, get_onylDatabase: bool = False): - """ - Main function of the application for film and series. - """ - - if string_to_search is None: - string_to_search = msg.ask("\n[purple]Insert word to search in all site").strip() - - # Search on database - len_database = title_search(unidecode(string_to_search)) - - # Return list of elements - if get_onylDatabase: - return media_search_manager - - if len_database > 0: - - # Select title from list - select_title = run_get_select_title() - - # !!! ADD TYPE DONT WORK FOR SERIE - download_film(select_title) - - - else: - console.print(f"\n[red]Nothing matching was found for[white]: [purple]{string_to_search}") - - # Retry - search() diff --git a/StreamingCommunity/Api/Site/cb01new/costant.py b/StreamingCommunity/Api/Site/cb01new/costant.py deleted file mode 100644 index 6edd9ae..0000000 --- a/StreamingCommunity/Api/Site/cb01new/costant.py +++ /dev/null @@ -1,15 +0,0 @@ -# 03.07.24 - -import os - - -# Internal utilities -from StreamingCommunity.Util._jsonConfig import config_manager - - -SITE_NAME = os.path.basename(os.path.dirname(os.path.abspath(__file__))) -ROOT_PATH = config_manager.get('DEFAULT', 'root_path') -DOMAIN_NOW = config_manager.get_dict('SITE', SITE_NAME)['domain'] - -SERIES_FOLDER = config_manager.get('DEFAULT', 'serie_folder_name') -MOVIE_FOLDER = config_manager.get('DEFAULT', 'movie_folder_name') diff --git a/StreamingCommunity/Api/Site/cb01new/film.py b/StreamingCommunity/Api/Site/cb01new/film.py deleted file mode 100644 index 08e3845..0000000 --- a/StreamingCommunity/Api/Site/cb01new/film.py +++ /dev/null @@ -1,69 +0,0 @@ -# 03.07.24 - -import os -import time - - -# Internal utilities -from StreamingCommunity.Util.console import console, msg -from StreamingCommunity.Util.os import os_manager -from StreamingCommunity.Util.message import start_message -from StreamingCommunity.Util.call_stack import get_call_stack -from StreamingCommunity.Lib.Downloader import HLS_Downloader - - -# Logic class -from StreamingCommunity.Api.Template.Util import execute_search -from StreamingCommunity.Api.Template.Class.SearchType import MediaItem - - -# Player -from StreamingCommunity.Api.Player.maxstream import VideoSource - - -# Config -from .costant import ROOT_PATH, SITE_NAME, MOVIE_FOLDER - - -def download_film(select_title: MediaItem): - """ - Downloads a film using the provided obj. - - Parameters: - - select_title (MediaItem): The media item to be downloaded. This should be an instance of the MediaItem class, containing attributes like `name` and `url`. - """ - - # Start message and display film information - start_message() - console.print(f"[yellow]Download: [red]{select_title.name} \n") - - # Setup api manger - print(select_title.url) - video_source = VideoSource(select_title.url) - - # Define output path - title_name = os_manager.get_sanitize_file(select_title.name) +".mp4" - mp4_path = os_manager.get_sanitize_path( - os.path.join(ROOT_PATH, SITE_NAME, MOVIE_FOLDER, title_name.replace(".mp4", "")) - ) - - # Get m3u8 master playlist - master_playlist = video_source.get_playlist() - - # Download the film using the m3u8 playlist, and output filename - r_proc = HLS_Downloader( - m3u8_playlist=master_playlist, - output_filename=os.path.join(mp4_path, title_name) - ).start() - - if r_proc == 404: - time.sleep(2) - - # Re call search function - if msg.ask("[green]Do you want to continue [white]([red]y[white])[green] or return at home[white]([red]n[white]) ", choices=['y', 'n'], default='y', show_choices=True) == "n": - frames = get_call_stack() - execute_search(frames[-4]) - - if r_proc != None: - console.print("[green]Result: ") - console.print(r_proc) diff --git a/StreamingCommunity/Api/Site/cb01new/site.py b/StreamingCommunity/Api/Site/cb01new/site.py deleted file mode 100644 index 68842c2..0000000 --- a/StreamingCommunity/Api/Site/cb01new/site.py +++ /dev/null @@ -1,74 +0,0 @@ -# 03.07.24 - -# External libraries -import httpx -from bs4 import BeautifulSoup - - -# Internal utilities -from StreamingCommunity.Util._jsonConfig import config_manager -from StreamingCommunity.Util.headers import get_headers -from StreamingCommunity.Util.table import TVShowManager - - -# Logic class -from StreamingCommunity.Api.Template import get_select_title -from StreamingCommunity.Api.Template.Util import search_domain -from StreamingCommunity.Api.Template.Class.SearchType import MediaManager - - -# Variable -from .costant import SITE_NAME -media_search_manager = MediaManager() -table_show_manager = TVShowManager() - - -def title_search(word_to_search: str) -> int: - """ - Search for titles based on a search query. - - Parameters: - - title_search (str): The title to search for. - - Returns: - - int: The number of titles found. - """ - - # Find new domain if prev dont work - max_timeout = config_manager.get_int("REQUESTS", "timeout") - domain_to_use, _ = search_domain(SITE_NAME, f"https://{SITE_NAME}") - - response = httpx.get( - url=f"https://{SITE_NAME}.{domain_to_use}/?s={word_to_search}", - headers={'user-agent': get_headers()}, - timeout=max_timeout - ) - response.raise_for_status() - - # Create soup and find table - soup = BeautifulSoup(response.text, "html.parser") - - # For all element in table - for div in soup.find_all("div", class_ = "card-content"): - - url = div.find("h3").find("a").get("href") - title = div.find("h3").find("a").get_text(strip=True) - desc = div.find("p").find("strong").text - - title_info = { - 'name': title, - 'desc': desc, - 'url': url - } - - media_search_manager.add_media(title_info) - - # Return the number of titles found - return media_search_manager.get_length() - - -def run_get_select_title(): - """ - Display a selection of titles and prompt the user to choose one. - """ - return get_select_title(table_show_manager, media_search_manager) diff --git a/StreamingCommunity/Api/Site/ddlstreamitaly/__init__.py b/StreamingCommunity/Api/Site/ddlstreamitaly/__init__.py deleted file mode 100644 index 123371e..0000000 --- a/StreamingCommunity/Api/Site/ddlstreamitaly/__init__.py +++ /dev/null @@ -1,57 +0,0 @@ -# 09.06.24 - -import logging -from unidecode import unidecode - - -# Internal utilities -from StreamingCommunity.Util.console import console, msg - - -# Logic class -from .site import title_search, run_get_select_title, media_search_manager -from .series import download_thread - - -# Variable -indice = 3 -_useFor = "serie" -_deprecate = False -_priority = 2 -_engineDownload = "mp4" - - -def search(string_to_search: str = None, get_onylDatabase: bool = False): - """ - Main function of the application for film and series. - """ - - if string_to_search is None: - - # Make request to site to get content that corrsisponde to that string - string_to_search = msg.ask("\n[purple]Insert word to search in all site").strip() - - # Search on database - len_database = title_search(unidecode(string_to_search)) - - # Return list of elements - if get_onylDatabase: - return media_search_manager - - if len_database > 0: - - # Select title from list - select_title = run_get_select_title() - - # Download only film - if "Serie TV" in str(select_title.type): - download_thread(select_title) - - else: - logging.error(f"Not supported: {select_title.type}") - - else: - console.print(f"\n[red]Nothing matching was found for[white]: [purple]{string_to_search}") - - # Retry - search() diff --git a/StreamingCommunity/Api/Site/ddlstreamitaly/costant.py b/StreamingCommunity/Api/Site/ddlstreamitaly/costant.py deleted file mode 100644 index e2f7a5e..0000000 --- a/StreamingCommunity/Api/Site/ddlstreamitaly/costant.py +++ /dev/null @@ -1,16 +0,0 @@ -# 09.06.24 - -import os - - -# Internal utilities -from StreamingCommunity.Util._jsonConfig import config_manager - - -SITE_NAME = os.path.basename(os.path.dirname(os.path.abspath(__file__))) -ROOT_PATH = config_manager.get('DEFAULT', 'root_path') -DOMAIN_NOW = config_manager.get_dict('SITE', SITE_NAME)['domain'] -COOKIE = config_manager.get_dict('SITE', SITE_NAME)['cookie'] - -SERIES_FOLDER = config_manager.get('DEFAULT', 'serie_folder_name') -MOVIE_FOLDER = config_manager.get('DEFAULT', 'movie_folder_name') diff --git a/StreamingCommunity/Api/Site/ddlstreamitaly/series.py b/StreamingCommunity/Api/Site/ddlstreamitaly/series.py deleted file mode 100644 index cb74083..0000000 --- a/StreamingCommunity/Api/Site/ddlstreamitaly/series.py +++ /dev/null @@ -1,141 +0,0 @@ -# 13.06.24 - -import os -import sys -from urllib.parse import urlparse - - -# Internal utilities -from StreamingCommunity.Util.console import console -from StreamingCommunity.Util.message import start_message -from StreamingCommunity.Util.os import os_manager -from StreamingCommunity.Util.table import TVShowManager -from StreamingCommunity.Lib.Downloader import MP4_downloader - - -# Logic class -from StreamingCommunity.Api.Template.Class.SearchType import MediaItem -from StreamingCommunity.Api.Template.Util import manage_selection, map_episode_title, validate_episode_selection - - -# Player -from .util.ScrapeSerie import GetSerieInfo -from StreamingCommunity.Api.Player.ddl import VideoSource - - -# Variable -from .costant import ROOT_PATH, SITE_NAME, SERIES_FOLDER -table_show_manager = TVShowManager() - - - -def download_video(index_episode_selected: int, scape_info_serie: GetSerieInfo, video_source: VideoSource) -> None: - """ - Download a single episode video. - - Parameters: - - tv_name (str): Name of the TV series. - - index_episode_selected (int): Index of the selected episode. - """ - - start_message() - - # Get info about episode - obj_episode = scape_info_serie.list_episodes[index_episode_selected - 1] - console.print(f"[yellow]Download: [red]{obj_episode.get('name')}") - print() - - # Define filename and path for the downloaded video - title_name = os_manager.get_sanitize_file( - f"{map_episode_title(scape_info_serie.tv_name, None, index_episode_selected, obj_episode.get('name'))}.mp4" - ) - mp4_path = os.path.join(ROOT_PATH, SITE_NAME, SERIES_FOLDER, scape_info_serie.tv_name) - - # Create output folder - os_manager.create_path(mp4_path) - - # Setup video source - video_source.setup(obj_episode.get('url')) - - # Get m3u8 master playlist - master_playlist = video_source.get_playlist() - - # Parse start page url - parsed_url = urlparse(obj_episode.get('url')) - - # Start download - r_proc = MP4_downloader( - url = master_playlist, - path = os.path.join(mp4_path, title_name), - referer = f"{parsed_url.scheme}://{parsed_url.netloc}/", - ) - - if r_proc != None: - console.print("[green]Result: ") - console.print(r_proc) - - -def download_thread(dict_serie: MediaItem): - """ - Download all episode of a thread - """ - - # Start message and set up video source - start_message() - - # Init class - scape_info_serie = GetSerieInfo(dict_serie) - video_source = VideoSource() - - # Collect information about thread - list_dict_episode = scape_info_serie.get_episode_number() - episodes_count = len(list_dict_episode) - - # Display episodes list and manage user selection - last_command = display_episodes_list(scape_info_serie.list_episodes) - list_episode_select = manage_selection(last_command, episodes_count) - - try: - list_episode_select = validate_episode_selection(list_episode_select, episodes_count) - except ValueError as e: - console.print(f"[red]{str(e)}") - return - - # Download selected episodes - for i_episode in list_episode_select: - download_video(i_episode, scape_info_serie, video_source) - - -def display_episodes_list(obj_episode_manager) -> str: - """ - Display episodes list and handle user input. - - Returns: - last_command (str): Last command entered by the user. - """ - - # Set up table for displaying episodes - table_show_manager.set_slice_end(10) - - # Add columns to the table - column_info = { - "Index": {'color': 'red'}, - "Name": {'color': 'magenta'}, - } - table_show_manager.add_column(column_info) - - # Populate the table with episodes information - for i, media in enumerate(obj_episode_manager): - table_show_manager.add_tv_show({ - 'Index': str(i+1), - 'Name': media.get('name'), - }) - - # Run the table and handle user input - last_command = table_show_manager.run() - - if last_command == "q": - console.print("\n[red]Quit [white]...") - sys.exit(0) - - return last_command diff --git a/StreamingCommunity/Api/Site/ddlstreamitaly/site.py b/StreamingCommunity/Api/Site/ddlstreamitaly/site.py deleted file mode 100644 index 1fb38f5..0000000 --- a/StreamingCommunity/Api/Site/ddlstreamitaly/site.py +++ /dev/null @@ -1,93 +0,0 @@ -# 09.06.24 - -import logging - - -# External libraries -import httpx -from bs4 import BeautifulSoup - - -# Internal utilities -from StreamingCommunity.Util.console import console -from StreamingCommunity.Util._jsonConfig import config_manager -from StreamingCommunity.Util.headers import get_headers -from StreamingCommunity.Util.table import TVShowManager - - -# Logic class -from StreamingCommunity.Api.Template import get_select_title -from StreamingCommunity.Api.Template.Util import search_domain -from StreamingCommunity.Api.Template.Class.SearchType import MediaManager - - -# Variable -from .costant import SITE_NAME -media_search_manager = MediaManager() -table_show_manager = TVShowManager() - - -def title_search(word_to_search: str) -> int: - """ - Search for titles based on a search query. - - Parameters: - - title_search (str): The title to search for. - - Returns: - - int: The number of titles found. - """ - - # Find new domain if prev dont work - max_timeout = config_manager.get_int("REQUESTS", "timeout") - domain_to_use, _ = search_domain(SITE_NAME, f"https://{SITE_NAME}") - - # Send request to search for titles - try: - response = httpx.get( - url=f"https://{SITE_NAME}.{domain_to_use}/search/?&q={word_to_search}&quick=1&type=videobox_video&nodes=11", - headers={'user-agent': get_headers()}, - timeout=max_timeout - ) - response.raise_for_status() - - except Exception as e: - console.print(f"Site: {SITE_NAME}, request search error: {e}") - - # Create soup and find table - soup = BeautifulSoup(response.text, "html.parser") - table_content = soup.find('ol', class_="ipsStream") - - if table_content: - for title_div in table_content.find_all('li', class_='ipsStreamItem'): - try: - - title_type = title_div.find("p", class_="ipsType_reset").find_all("a")[-1].get_text(strip=True) - name = title_div.find("span", class_="ipsContained").find("a").get_text(strip=True) - link = title_div.find("span", class_="ipsContained").find("a").get("href") - - title_info = { - 'name': name, - 'url': link, - 'type': title_type - } - - media_search_manager.add_media(title_info) - - except Exception as e: - logging.error(f"Error processing title div: {e}") - - return media_search_manager.get_length() - - else: - logging.error("No table content found.") - return -999 - - return -9999 - - -def run_get_select_title(): - """ - Display a selection of titles and prompt the user to choose one. - """ - return get_select_title(table_show_manager, media_search_manager) \ No newline at end of file diff --git a/StreamingCommunity/Api/Site/ddlstreamitaly/util/ScrapeSerie.py b/StreamingCommunity/Api/Site/ddlstreamitaly/util/ScrapeSerie.py deleted file mode 100644 index a3b4ad4..0000000 --- a/StreamingCommunity/Api/Site/ddlstreamitaly/util/ScrapeSerie.py +++ /dev/null @@ -1,85 +0,0 @@ -# 13.06.24 - -import sys -import logging -from typing import List, Dict - - -# External libraries -import httpx -from bs4 import BeautifulSoup - - -# Internal utilities -from StreamingCommunity.Util._jsonConfig import config_manager -from StreamingCommunity.Util.headers import get_headers - - -# Logic class -from StreamingCommunity.Api.Template.Class.SearchType import MediaItem - - -# Variable -from ..costant import COOKIE -max_timeout = config_manager.get_int("REQUESTS", "timeout") - - -class GetSerieInfo: - def __init__(self, dict_serie: MediaItem) -> None: - """ - Initializes the GetSerieInfo object with default values. - - Parameters: - - dict_serie (MediaItem): Dictionary containing series information (optional). - """ - self.headers = {'user-agent': get_headers()} - self.cookies = COOKIE - self.url = dict_serie.url - self.tv_name = None - self.list_episodes = None - - def get_episode_number(self) -> List[Dict[str, str]]: - """ - Retrieves the number of episodes for a specific season. - - Parameters: - n_season (int): The season number. - - Returns: - List[Dict[str, str]]: List of dictionaries containing episode information. - """ - - try: - response = httpx.get(f"{self.url}?area=online", cookies=self.cookies, headers=self.headers, timeout=max_timeout) - response.raise_for_status() - - except Exception as e: - logging.error(f"Insert value for [ips4_device_key, ips4_member_id, ips4_login_key] in config.json file SITE \\ ddlstreamitaly \\ cookie. Use browser debug and cookie request with a valid account, filter by DOC. Error: {e}") - sys.exit(0) - - # Parse HTML content of the page - soup = BeautifulSoup(response.text, "html.parser") - - # Get tv name - self.tv_name = soup.find("span", class_= "ipsType_break").get_text(strip=True) - - # Find the container of episodes for the specified season - table_content = soup.find('div', class_='ipsMargin_bottom:half') - list_dict_episode = [] - - for episode_div in table_content.find_all('a', href=True): - - # Get text of episode - part_name = episode_div.get_text(strip=True) - - if part_name: - obj_episode = { - 'name': part_name, - 'url': episode_div['href'] - } - - list_dict_episode.append(obj_episode) - - self.list_episodes = list_dict_episode - return list_dict_episode - \ No newline at end of file diff --git a/StreamingCommunity/Api/Site/guardaserie/__init__.py b/StreamingCommunity/Api/Site/guardaserie/__init__.py deleted file mode 100644 index 059ccb6..0000000 --- a/StreamingCommunity/Api/Site/guardaserie/__init__.py +++ /dev/null @@ -1,52 +0,0 @@ -# 09.06.24 - -from unidecode import unidecode - - -# Internal utilities -from StreamingCommunity.Util.console import console, msg - - -# Logic class -from .site import title_search, run_get_select_title, media_search_manager -from .series import download_series - - -# Variable -indice = 4 -_useFor = "serie" -_deprecate = False -_priority = 2 -_engineDownload = "hls" - - -def search(string_to_search: str = None, get_onylDatabase: bool = False): - """ - Main function of the application for film and series. - """ - - if string_to_search is None: - - # Make request to site to get content that corrsisponde to that string - string_to_search = msg.ask("\n[purple]Insert word to search in all site").strip() - - # Search on database - len_database = title_search(unidecode(string_to_search)) - - # Return list of elements - if get_onylDatabase: - return media_search_manager - - if len_database > 0: - - # Select title from list - select_title = run_get_select_title() - - # Download only film - download_series(select_title) - - else: - console.print(f"\n[red]Nothing matching was found for[white]: [purple]{string_to_search}") - - # Retry - search() diff --git a/StreamingCommunity/Api/Site/guardaserie/costant.py b/StreamingCommunity/Api/Site/guardaserie/costant.py deleted file mode 100644 index c7012aa..0000000 --- a/StreamingCommunity/Api/Site/guardaserie/costant.py +++ /dev/null @@ -1,15 +0,0 @@ -# 09.06.24 - -import os - - -# Internal utilities -from StreamingCommunity.Util._jsonConfig import config_manager - - -SITE_NAME = os.path.basename(os.path.dirname(os.path.abspath(__file__))) -ROOT_PATH = config_manager.get('DEFAULT', 'root_path') -DOMAIN_NOW = config_manager.get_dict('SITE', SITE_NAME)['domain'] - -SERIES_FOLDER = config_manager.get('DEFAULT', 'serie_folder_name') -MOVIE_FOLDER = config_manager.get('DEFAULT', 'movie_folder_name') diff --git a/StreamingCommunity/Api/Site/guardaserie/series.py b/StreamingCommunity/Api/Site/guardaserie/series.py deleted file mode 100644 index b57bae0..0000000 --- a/StreamingCommunity/Api/Site/guardaserie/series.py +++ /dev/null @@ -1,195 +0,0 @@ -# 13.06.24 - -import os -import sys -import time - - -# Internal utilities -from StreamingCommunity.Util.console import console, msg -from StreamingCommunity.Util.message import start_message -from StreamingCommunity.Util.call_stack import get_call_stack -from StreamingCommunity.Util.table import TVShowManager -from StreamingCommunity.Lib.Downloader import HLS_Downloader - - -# Logic class -from StreamingCommunity.Api.Template.Util import manage_selection, map_episode_title, validate_selection, validate_episode_selection, execute_search -from StreamingCommunity.Api.Template.Class.SearchType import MediaItem - - -# Player -from .util.ScrapeSerie import GetSerieInfo -from StreamingCommunity.Api.Player.supervideo import VideoSource - - -# Variable -from .costant import ROOT_PATH, SITE_NAME, SERIES_FOLDER -table_show_manager = TVShowManager() - - - -def download_video(index_season_selected: int, index_episode_selected: int, scape_info_serie: GetSerieInfo) -> None: - """ - Download a single episode video. - - Parameters: - - tv_name (str): Name of the TV series. - - index_season_selected (int): Index of the selected season. - - index_episode_selected (int): Index of the selected episode. - """ - - start_message() - - # Get info about episode - obj_episode = scape_info_serie.list_episodes[index_episode_selected - 1] - console.print(f"[yellow]Download: [red]{index_season_selected}:{index_episode_selected} {obj_episode.get('name')}") - print() - - # Define filename and path for the downloaded video - mp4_name = f"{map_episode_title(scape_info_serie.tv_name, index_season_selected, index_episode_selected, obj_episode.get('name'))}.mp4" - mp4_path = os.path.join(ROOT_PATH, SITE_NAME, SERIES_FOLDER, scape_info_serie.tv_name, f"S{index_season_selected}") - - # Setup video source - video_source = VideoSource(obj_episode.get('url')) - - # Get m3u8 master playlist - master_playlist = video_source.get_playlist() - - # Download the film using the m3u8 playlist, and output filename - r_proc = HLS_Downloader( - m3u8_playlist=master_playlist, - output_filename=os.path.join(mp4_path, mp4_name) - ).start() - - if r_proc == 404: - time.sleep(2) - - # Re call search function - if msg.ask("[green]Do you want to continue [white]([red]y[white])[green] or return at home[white]([red]n[white]) ", choices=['y', 'n'], default='y', show_choices=True) == "n": - frames = get_call_stack() - execute_search(frames[-4]) - - if r_proc != None: - console.print("[green]Result: ") - console.print(r_proc) - - - -def download_episode(scape_info_serie: GetSerieInfo, index_season_selected: int, download_all: bool = False) -> None: - """ - Download all episodes of a season. - - Parameters: - - tv_name (str): Name of the TV series. - - index_season_selected (int): Index of the selected season. - - download_all (bool): Download all seasons episodes - """ - - # Start message and collect information about episodes - start_message() - list_dict_episode = scape_info_serie.get_episode_number(index_season_selected) - episodes_count = len(list_dict_episode) - - if download_all: - - # Download all episodes without asking - for i_episode in range(1, episodes_count + 1): - download_video(index_season_selected, i_episode, scape_info_serie) - console.print(f"\n[red]End downloaded [yellow]season: [red]{index_season_selected}.") - - else: - - # Display episodes list and manage user selection - last_command = display_episodes_list(scape_info_serie.list_episodes) - list_episode_select = manage_selection(last_command, episodes_count) - - try: - list_episode_select = validate_episode_selection(list_episode_select, episodes_count) - except ValueError as e: - console.print(f"[red]{str(e)}") - return - - # Download selected episodes - for i_episode in list_episode_select: - download_video(index_season_selected, i_episode, scape_info_serie) - - -def download_series(dict_serie: MediaItem) -> None: - """ - Download all episodes of a TV series. - - Parameters: - - dict_serie (MediaItem): obj with url name type and score - """ - - # Start message and set up video source - start_message() - - # Init class - scape_info_serie = GetSerieInfo(dict_serie) - - # Collect information about seasons - seasons_count = scape_info_serie.get_seasons_number() - - # Prompt user for season selection and download episodes - console.print(f"\n[green]Seasons found: [red]{seasons_count}") - index_season_selected = msg.ask( - "\n[cyan]Insert season number [yellow](e.g., 1), [red]* [cyan]to download all seasons, " - "[yellow](e.g., 1-2) [cyan]for a range of seasons, or [yellow](e.g., 3-*) [cyan]to download from a specific season to the end" - ) - - # Manage and validate the selection - list_season_select = manage_selection(index_season_selected, seasons_count) - - try: - list_season_select = validate_selection(list_season_select, seasons_count) - except ValueError as e: - console.print(f"[red]{str(e)}") - return - - # Loop through the selected seasons and download episodes - for i_season in list_season_select: - if len(list_season_select) > 1 or index_season_selected == "*": - - # Download all episodes if multiple seasons are selected or if '*' is used - download_episode(scape_info_serie, i_season, download_all=True) - else: - - # Otherwise, let the user select specific episodes for the single season - download_episode(scape_info_serie, i_season, download_all=False) - - -def display_episodes_list(obj_episode_manager) -> str: - """ - Display episodes list and handle user input. - - Returns: - last_command (str): Last command entered by the user. - """ - - # Set up table for displaying episodes - table_show_manager.set_slice_end(10) - - # Add columns to the table - column_info = { - "Index": {'color': 'red'}, - "Name": {'color': 'magenta'}, - } - table_show_manager.add_column(column_info) - - # Populate the table with episodes information - for media in obj_episode_manager: - table_show_manager.add_tv_show({ - 'Index': str(media.get('number')), - 'Name': media.get('name'), - }) - - # Run the table and handle user input - last_command = table_show_manager.run() - - if last_command == "q": - console.print("\n[red]Quit [white]...") - sys.exit(0) - - return last_command diff --git a/StreamingCommunity/Api/Site/guardaserie/site.py b/StreamingCommunity/Api/Site/guardaserie/site.py deleted file mode 100644 index ee5da04..0000000 --- a/StreamingCommunity/Api/Site/guardaserie/site.py +++ /dev/null @@ -1,84 +0,0 @@ -# 09.06.24 - -# External libraries -import httpx -from bs4 import BeautifulSoup - - -# Internal utilities -from StreamingCommunity.Util.console import console -from StreamingCommunity.Util._jsonConfig import config_manager -from StreamingCommunity.Util.headers import get_headers -from StreamingCommunity.Util.table import TVShowManager - - -# Logic class -from StreamingCommunity.Api.Template import get_select_title -from StreamingCommunity.Api.Template.Util import search_domain -from StreamingCommunity.Api.Template.Class.SearchType import MediaManager - - -# Variable -from .costant import SITE_NAME -media_search_manager = MediaManager() -table_show_manager = TVShowManager() - - -def title_search(word_to_search: str) -> int: - """ - Search for titles based on a search query. - - Parameters: - - title_search (str): The title to search for. - - Returns: - - int: The number of titles found. - """ - - # Find new domain if prev dont work - max_timeout = config_manager.get_int("REQUESTS", "timeout") - domain_to_use, _ = search_domain(SITE_NAME, f"https://{SITE_NAME}") - - # Send request to search for titles - try: - response = httpx.get( - url=f"https://guardaserie.{domain_to_use}/?story={word_to_search}&do=search&subaction=search", - headers={'user-agent': get_headers()}, - timeout=max_timeout - ) - response.raise_for_status() - - except Exception as e: - console.print(f"Site: {SITE_NAME}, request search error: {e}") - - # Create soup and find table - soup = BeautifulSoup(response.text, "html.parser") - table_content = soup.find('div', class_="mlnew-list") - - for serie_div in table_content.find_all('div', class_='mlnew'): - - try: - title = serie_div.find('div', class_='mlnh-2').find("h2").get_text(strip=True) - link = serie_div.find('div', class_='mlnh-2').find('a')['href'] - imdb_rating = serie_div.find('span', class_='mlnh-imdb').get_text(strip=True) - - serie_info = { - 'name': title, - 'url': link, - 'score': imdb_rating - } - - media_search_manager.add_media(serie_info) - - except: - pass - - # Return the number of titles found - return media_search_manager.get_length() - - -def run_get_select_title(): - """ - Display a selection of titles and prompt the user to choose one. - """ - return get_select_title(table_show_manager, media_search_manager) diff --git a/StreamingCommunity/Api/Site/guardaserie/util/ScrapeSerie.py b/StreamingCommunity/Api/Site/guardaserie/util/ScrapeSerie.py deleted file mode 100644 index f7b195f..0000000 --- a/StreamingCommunity/Api/Site/guardaserie/util/ScrapeSerie.py +++ /dev/null @@ -1,110 +0,0 @@ -# 13.06.24 - -import logging -from typing import List, Dict - - -# External libraries -import httpx -from bs4 import BeautifulSoup - - -# Internal utilities -from StreamingCommunity.Util.headers import get_headers - - -# Logic class -from StreamingCommunity.Api.Template .Class.SearchType import MediaItem - - -class GetSerieInfo: - def __init__(self, dict_serie: MediaItem) -> None: - """ - Initializes the GetSerieInfo object with default values. - - Parameters: - dict_serie (MediaItem): Dictionary containing series information (optional). - """ - self.headers = {'user-agent': get_headers()} - self.url = dict_serie.url - self.tv_name = None - self.list_episodes = None - - def get_seasons_number(self) -> int: - """ - Retrieves the number of seasons of a TV series. - - Returns: - int: Number of seasons of the TV series. - """ - try: - - # Make an HTTP request to the series URL - response = httpx.get(self.url, headers=self.headers, timeout=15) - response.raise_for_status() - - # Parse HTML content of the page - soup = BeautifulSoup(response.text, "html.parser") - - # Find the container of seasons - table_content = soup.find('div', class_="tt_season") - - # Count the number of seasons - seasons_number = len(table_content.find_all("li")) - - # Extract the name of the series - self.tv_name = soup.find("h1", class_="front_title").get_text(strip=True) - - return seasons_number - - except Exception as e: - logging.error(f"Error parsing HTML page: {e}") - - return -999 - - def get_episode_number(self, n_season: int) -> List[Dict[str, str]]: - """ - Retrieves the number of episodes for a specific season. - - Parameters: - n_season (int): The season number. - - Returns: - List[Dict[str, str]]: List of dictionaries containing episode information. - """ - try: - - # Make an HTTP request to the series URL - response = httpx.get(self.url, headers=self.headers, timeout=15) - response.raise_for_status() - - # Parse HTML content of the page - soup = BeautifulSoup(response.text, "html.parser") - - # Find the container of episodes for the specified season - table_content = soup.find('div', class_="tab-pane", id=f"season-{n_season}") - - # Extract episode information - episode_content = table_content.find_all("li") - list_dict_episode = [] - - for episode_div in episode_content: - index = episode_div.find("a").get("data-num") - link = episode_div.find("a").get("data-link") - name = episode_div.find("a").get("data-title") - - obj_episode = { - 'number': index, - 'name': name, - 'url': link - } - - list_dict_episode.append(obj_episode) - - self.list_episodes = list_dict_episode - return list_dict_episode - - except Exception as e: - logging.error(f"Error parsing HTML page: {e}") - - return [] diff --git a/StreamingCommunity/Api/Site/mostraguarda/__init__.py b/StreamingCommunity/Api/Site/mostraguarda/__init__.py deleted file mode 100644 index a2f87d9..0000000 --- a/StreamingCommunity/Api/Site/mostraguarda/__init__.py +++ /dev/null @@ -1,48 +0,0 @@ -# 26.05.24 - -from unidecode import unidecode - - -# Internal utilities -from StreamingCommunity.Util.console import console, msg - - -# Logic class -from StreamingCommunity.Lib.TMBD import tmdb, Json_film -from .film import download_film - - -# Variable -indice = 9 -_useFor = "film" -_deprecate = False -_priority = 2 -_engineDownload = "hls" - - -def search(string_to_search: str = None, get_onylDatabase: bool = False): - """ - Main function of the application for film and series. - """ - - if string_to_search is None: - string_to_search = msg.ask("\n[purple]Insert word to search in all site").strip() - - # Not available for the moment - if get_onylDatabase: - return 0 - - # Search on database - movie_id = tmdb.search_movie(unidecode(string_to_search)) - - if movie_id is not None: - movie_details: Json_film = tmdb.get_movie_details(tmdb_id=movie_id) - - # Download only film - download_film(movie_details) - - else: - console.print(f"\n[red]Nothing matching was found for[white]: [purple]{string_to_search}") - - # Retry - search() diff --git a/StreamingCommunity/Api/Site/mostraguarda/costant.py b/StreamingCommunity/Api/Site/mostraguarda/costant.py deleted file mode 100644 index 5bac8f6..0000000 --- a/StreamingCommunity/Api/Site/mostraguarda/costant.py +++ /dev/null @@ -1,15 +0,0 @@ -# 26.05.24 - -import os - - -# Internal utilities -from StreamingCommunity.Util._jsonConfig import config_manager - - -SITE_NAME = os.path.basename(os.path.dirname(os.path.abspath(__file__))) -ROOT_PATH = config_manager.get('DEFAULT', 'root_path') -DOMAIN_NOW = config_manager.get_dict('SITE', SITE_NAME)['domain'] - -SERIES_FOLDER = config_manager.get('DEFAULT', 'serie_folder_name') -MOVIE_FOLDER = config_manager.get('DEFAULT', 'movie_folder_name') \ No newline at end of file diff --git a/StreamingCommunity/Api/Site/mostraguarda/film.py b/StreamingCommunity/Api/Site/mostraguarda/film.py deleted file mode 100644 index 1615292..0000000 --- a/StreamingCommunity/Api/Site/mostraguarda/film.py +++ /dev/null @@ -1,94 +0,0 @@ -# 17.09.24 - -import os -import sys -import time -import logging - - -# External libraries -import httpx -from bs4 import BeautifulSoup - - -# Internal utilities -from StreamingCommunity.Util.console import console, msg -from StreamingCommunity.Util.os import os_manager -from StreamingCommunity.Util.message import start_message -from StreamingCommunity.Util.call_stack import get_call_stack -from StreamingCommunity.Util.headers import get_headers -from StreamingCommunity.Lib.Downloader import HLS_Downloader - - -# Logic class -from StreamingCommunity.Api.Template.Util import execute_search - - -# Player -from StreamingCommunity.Api.Player.supervideo import VideoSource - - -# TMBD -from StreamingCommunity.Lib.TMBD import Json_film - - -# Config -from .costant import ROOT_PATH, SITE_NAME, DOMAIN_NOW, MOVIE_FOLDER - - -def download_film(movie_details: Json_film): - """ - Downloads a film using the provided tmbd id. - - Parameters: - - movie_details (Json_film): Class with info about film title. - """ - - # Start message and display film information - start_message() - console.print(f"[yellow]Download: [red]{movie_details.title} \n") - - # Make request to main site - try: - url = f"https://{SITE_NAME}.{DOMAIN_NOW}/set-movie-a/{movie_details.imdb_id}" - response = httpx.get(url, headers={'User-Agent': get_headers()}) - response.raise_for_status() - - except: - logging.error(f"Not found in the server. Dict: {movie_details}") - raise - - # Extract supervideo url - soup = BeautifulSoup(response.text, "html.parser") - player_links = soup.find("ul", class_ = "_player-mirrors").find_all("li") - supervideo_url = "https:" + player_links[0].get("data-link") - - - # Set domain and media ID for the video source - video_source = VideoSource() - video_source.setup(supervideo_url) - - # Define output path - title_name = os_manager.get_sanitize_file(movie_details.title) + ".mp4" - mp4_path = os.path.join(ROOT_PATH, SITE_NAME, MOVIE_FOLDER, title_name.replace(".mp4", "")) - - # Get m3u8 master playlist - master_playlist = video_source.get_playlist() - - # Download the film using the m3u8 playlist, and output filename - r_proc = HLS_Downloader( - m3u8_playlist=master_playlist, - output_filename=os.path.join(mp4_path, title_name) - ).start() - - if r_proc == 404: - time.sleep(2) - - # Re call search function - if msg.ask("[green]Do you want to continue [white]([red]y[white])[green] or return at home[white]([red]n[white]) ", choices=['y', 'n'], default='y', show_choices=True) == "n": - frames = get_call_stack() - execute_search(frames[-4]) - - if r_proc != None: - console.print("[green]Result: ") - console.print(r_proc) diff --git a/StreamingCommunity/Api/Site/piratebays/__init__.py b/StreamingCommunity/Api/Site/piratebays/__init__.py deleted file mode 100644 index b3631cb..0000000 --- a/StreamingCommunity/Api/Site/piratebays/__init__.py +++ /dev/null @@ -1,50 +0,0 @@ -# 02.07.24 - -from unidecode import unidecode - - -# Internal utilities -from StreamingCommunity.Util.console import console, msg - - -# Logic class -from .site import title_search, run_get_select_title, media_search_manager -from .title import download_title - - -# Variable -indice = 8 -_useFor = "film_serie" -_deprecate = False -_priority = 2 -_engineDownload = "tor" - - -def search(string_to_search: str = None, get_onylDatabase: bool = False): - """ - Main function of the application for film and series. - """ - - if string_to_search is None: - string_to_search = msg.ask("\n[purple]Insert word to search in all site").strip() - - # Search on database - len_database = title_search(unidecode(string_to_search)) - - # Return list of elements - if get_onylDatabase: - return media_search_manager - - if len_database > 0: - - # Select title from list - select_title = run_get_select_title() - - # Download title - download_title(select_title) - - else: - console.print(f"\n[red]Nothing matching was found for[white]: [purple]{string_to_search}") - - # Retry - search() diff --git a/StreamingCommunity/Api/Site/piratebays/costant.py b/StreamingCommunity/Api/Site/piratebays/costant.py deleted file mode 100644 index c4bd929..0000000 --- a/StreamingCommunity/Api/Site/piratebays/costant.py +++ /dev/null @@ -1,15 +0,0 @@ -# 09.06.24 - -import os - - -# Internal utilities -from StreamingCommunity.Util._jsonConfig import config_manager - - -SITE_NAME = os.path.basename(os.path.dirname(os.path.abspath(__file__))) -ROOT_PATH = config_manager.get('DEFAULT', 'root_path') -DOMAIN_NOW = config_manager.get_dict('SITE', SITE_NAME)['domain'] - -SERIES_FOLDER = config_manager.get('DEFAULT', 'serie_folder_name') -MOVIE_FOLDER = config_manager.get('DEFAULT', 'movie_folder_name') \ No newline at end of file diff --git a/StreamingCommunity/Api/Site/piratebays/site.py b/StreamingCommunity/Api/Site/piratebays/site.py deleted file mode 100644 index c1779c7..0000000 --- a/StreamingCommunity/Api/Site/piratebays/site.py +++ /dev/null @@ -1,89 +0,0 @@ -# 02.07.24 - -# External libraries -import httpx -from bs4 import BeautifulSoup - - -# Internal utilities -from StreamingCommunity.Util.console import console -from StreamingCommunity.Util._jsonConfig import config_manager -from StreamingCommunity.Util.headers import get_headers -from StreamingCommunity.Util.table import TVShowManager - - -# Logic class -from StreamingCommunity.Api.Template import get_select_title -from StreamingCommunity.Api.Template.Class.SearchType import MediaManager - - -# Variable -from .costant import SITE_NAME, DOMAIN_NOW -media_search_manager = MediaManager() -table_show_manager = TVShowManager() - - -def title_search(word_to_search: str) -> int: - """ - Search for titles based on a search query. - - Parameters: - - title_search (str): The title to search for. - - Returns: - - int: The number of titles found. - """ - - # Find new domain if prev dont work - max_timeout = config_manager.get_int("REQUESTS", "timeout") - - # Construct the full site URL and load the search page - try: - response = httpx.get( - url=f"https://1.{SITE_NAME}.{DOMAIN_NOW}/s/?q={word_to_search}&video=on", - headers={ - 'accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7', - 'accept-language': 'it-IT,it;q=0.9,en-US;q=0.8,en;q=0.7', - 'referer': 'https://wwv.thepiratebay3.co/', - 'user-agent': get_headers() - }, - follow_redirects=True, - timeout=max_timeout - ) - response.raise_for_status() - - except Exception as e: - console.print(f"Site: {SITE_NAME}, request search error: {e}") - - # Create soup and find table - soup = BeautifulSoup(response.text, "html.parser") - table = soup.find("tbody") - - # Scrape div film in table on single page - for tr in table.find_all('tr'): - try: - - title_info = { - 'name': tr.find_all("a")[1].get_text(strip=True), - 'url': tr.find_all("td")[3].find("a").get("href"), - 'upload': tr.find_all("td")[2].get_text(strip=True), - 'size': tr.find_all("td")[4].get_text(strip=True), - 'seader': tr.find_all("td")[5].get_text(strip=True), - 'leacher': tr.find_all("td")[6].get_text(strip=True), - 'by': tr.find_all("td")[7].get_text(strip=True), - } - - media_search_manager.add_media(title_info) - - except: - continue - - # Return the number of titles found - return media_search_manager.get_length() - - -def run_get_select_title(): - """ - Display a selection of titles and prompt the user to choose one. - """ - return get_select_title(table_show_manager, media_search_manager) \ No newline at end of file diff --git a/StreamingCommunity/Api/Site/piratebays/title.py b/StreamingCommunity/Api/Site/piratebays/title.py deleted file mode 100644 index 94dd377..0000000 --- a/StreamingCommunity/Api/Site/piratebays/title.py +++ /dev/null @@ -1,45 +0,0 @@ -# 02.07.24 - -import os -import sys - - -# Internal utilities -from StreamingCommunity.Util.console import console -from StreamingCommunity.Util.message import start_message -from StreamingCommunity.Util.os import os_manager -from StreamingCommunity.Lib.Downloader import TOR_downloader - - -# Logic class -from StreamingCommunity.Api.Template.Class.SearchType import MediaItem - - -# Config -from .costant import ROOT_PATH, DOMAIN_NOW, SITE_NAME, MOVIE_FOLDER - - -def download_title(select_title: MediaItem): - """ - Downloads a media item and saves it as an MP4 file. - - Parameters: - - select_title (MediaItem): The media item to be downloaded. This should be an instance of the MediaItem class, containing attributes like `name` and `url`. - """ - - start_message() - console.print(f"[yellow]Download: [red]{select_title.name} \n") - print() - - # Define output path - title_name = os_manager.get_sanitize_file(select_title.name.replace("-", "_") + ".mp4") - mp4_path = os.path.join(ROOT_PATH, SITE_NAME, MOVIE_FOLDER, title_name.replace(".mp4", "")) - - # Create output folder - os_manager.create_path(mp4_path) - - # Tor manager - manager = TOR_downloader() - manager.add_magnet_link(select_title.url) - manager.start_download() - manager.move_downloaded_files(mp4_path) diff --git a/StreamingCommunity/Api/Site/streamingcommunity/__pycache__/__init__.cpython-312.pyc b/StreamingCommunity/Api/Site/streamingcommunity/__pycache__/__init__.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..c023ad1cca7ec039e519b16c31237d0c04287bad GIT binary patch literal 1664 zcmZux-)kdP6uy(0OeT}0>9*ZAm}&+pYRcM&RViCV5ldC9QR%LW)0A;K_a>coeuO(W zEh#DFK|vqHecOsGiuj=PAK3rFmvp0SxpZN{r+w?v6~QOZoo3nvy)gHl`<-*{Irn_$ z&ToZ+j$nLw?Stl>G(vxhO)_8~kJD{fZX=AaFL)wHQx(SzkBxSXRB9pEvWu-z?yaIf6B_h-GsWXU$7^1n0;Y&Xe(mf(u`y z&54d)Ej|({R3)Bm2QDT~h)FfYGfo&pp+~svN6kl)uu%A9lQ3(W(8vt~%MP%GL*I4- zo@Xxeh!qi=Ivad~wgXF8M#LiyvtlKm@CkP9p^fF+f!!n&q84zt6L_JGt%mFQ02I%G zh)|bATo(#(gv}C{H@v9EM}RariG(W|VOpvmcb>27*+G(j&`tZcmm9tAd@VBK^#mBf%xM`D*R zG)WdQK9%5`r9`?|ak`7XM|aMvAt6>yv`J3ll&ZS>mTtiK5cn4+ zTP@FZ>=I>PX6=ETB|9T|dpo@tt}Wyfa(YpymHx&ws=}} zQ;P~JsU{}TDpb5$DoErC>$C_J3{gQPRRoxBK?gFfp5<0mso;tVYIt5`n7k9NCXd7; zfrW?N2{unXjz|SJQ9Z->Cv+C-H{kYB{W^&lT&cboI&Gf>EULfjviI8S^%X{m?Stx_ z(D&idvd;fOZ@1j~3M5j8+nt#^=jN8>f}3T{wK`PrA5Vh*=qH$Z=tM_ash_DFm!JD# z{=519%*TWBC-=)Y56d?P<4}P_uMWzu94e*W@~sz+$16W)`?CuJQt^kHuLN9A7b`QvD8#r;sJ8rfN&o%Q0EJ^52@w-C(Xa zH~fvooSjjw#Qk$YwxBpBn=7I(V~Pc>;@=aK&Q&+Su0wdnYDZ)#q+GW!X;A_lO?cLV zMhGd8z>5|Mnr=WAhkrCKL+QD)9)@0A;9n7aRs@@diED58A#Qu*O*#u(@w17RVLFi| zN%~7glJU2Oq-$bwqybugfGQ8r%!!8dTu(jHCwrNr!dOo~$`^Xsqp_)8@v&NwF72ow0{9Gf3tA_ literal 0 HcmV?d00001 diff --git a/StreamingCommunity/Api/Site/streamingcommunity/__pycache__/__init__.cpython-39.pyc b/StreamingCommunity/Api/Site/streamingcommunity/__pycache__/__init__.cpython-39.pyc new file mode 100644 index 0000000000000000000000000000000000000000..100bb03390282f65da7200963e22b6fa31efcd71 GIT binary patch literal 1257 zcmZvbPjA~c6u?Q5l5Iu)(=`pcU8bvd$gKlb4DE^r*@j`cWW6X31VyB6Eu^TDRDuNd zF5W)HRvS$vA7;|~xUO|cuab;Wq87@r2NSE|}5 z!5xui@d0}a>JAp%=2u*sO4WH$vz#eeRJBWNWd+X-FLb$d`?{@jZ)v#TrOmrTw=X%X zik(d^i@I2F4N-?oUDrYtET30Gf@1tpVYsfiaj`!DN7x)YvJ~b7?l&=3SM?&d>OSnm zhg9{AI4W#$Q5aqZKC#`1;NR1J4b%JrVgo8oq7N%@J_cx z4m;12+b`m?rqzw$=ik?GV$*A-S!xxS`9h@d)QX;06Q!d$x0vv0IVs(W5|(0brSAB3a!rr~ST%dev03Q@F$oGTWM$AIv{uFK-P$R@%im*-;I1^} z?Z!E;7gf!Vb`Q=G$kx#dr9^k(j_Cv8b9DW$rDCn%FMJWrK8S=)=u@2FghJZeANdCd CHe{~= literal 0 HcmV?d00001 diff --git a/StreamingCommunity/Api/Site/streamingcommunity/__pycache__/api.cpython-39.pyc b/StreamingCommunity/Api/Site/streamingcommunity/__pycache__/api.cpython-39.pyc new file mode 100644 index 0000000000000000000000000000000000000000..e11c638317e3c56a6be8cba03b37379e0109d1c9 GIT binary patch literal 3680 zcmb7HOOG4J5$<_#I3$PMr`Fn)Ee({&5FIbqjuIu<$d+VDa1_`=qLmPsT7ej`XSuVQ zA*r6Gq+JY8%E6ZaKI9O@D`4qUbjj}s0{9Q~)hGRcAi)L!@>S1>TFLSuGhj`3RX?h_ zs=h7;^?H@zS^4&Ny?-t+_8oPOJ|%Q6;g|jugfni$EMaYCP}_`+#B7_1)wXositV-y zz8#kmr|oE7DJ~~&+f6F%itamcHL100x?PUFq~5OUwi`E+nf46YmG*2nht~|PWyY)f z7O!#d4|aQAbLV&+oCco(X91i=;_}&jo6qri@Q!h7gEbePLtEA~l*>US)UxF)n2# z^s5s?{6*FdysX5la6xTi?$pOl-{#)fiP*TTN7aj2?~PsFIHK!J=37jKeCgoW@)E8ngpHp0A>JbNTYVOEx}u zoS6uMmEZ!7v+Cp7(0&M0e`_FoI97&z>5tN=-}8gMfBCo9{d++ga(~eG17EuieD3FN zYgP3cmqjmK*DYG{sDJ&lsT9q1|JHU`OqK&bcRg*`noi2sJ374J47PlU$)rdcNvtyP zAB;k=TWoz(hs}}QDU$C{Am72x@B1Kr=0|;b_wKrX*^eRhu_VU;gl8ZkSWZ?WK*{8& z53Q1bWPWgOFp_%nt-%N;7l)JUyytF9IZW5r)|AoOYpeysXf3zv;)9Qr;U5}5IjoM- zP^=|Ml)I8J@wA#2VE%1~7n;V=%mp(>G1 zkClb|7X*%~mIRMGg`sLz1W_7xaK4>X26B`NhsKnK0^U)zoCmcyRNsM$f}lXTaNv-Z z5T~i@1jAw2=go@n&=qyf%eB`!DOZH)5cY+tN_IMHnOyTp1+Es2|DQ&CA1Ra|3a? z2|aUJcPc|nw1&HijvP>ztCFr@r}P2{tJ$V$oHT92G+e{{uj6>8W6T>>bJ3_8i>3|9 ztZ^2!I(_e9pfrpgz~hoV!EKe9+}yVS zn8uEoF+irp?Hnq1EMB^Aer1S10|@O2a$s1G9tnwLI27t|KfS=2% zkj@vNS<$@(4VwGKx{J%KXhD~vb!^&Nnzk0Et+&u}GB>O6zVR@=Y@w1L_I@OzAfj<%iXF-x#sgq4BuG}x)@Y(}g~DHtS6&WB zIU1=llntRR&@tCgm2`qCQ$AE)JU~IhH#B}JHylPOup(7Xf0Wz{1?riR(7@ev^8K#T zE_zeF-!IYXpLz7 z;$z|&J#mpnX^8v)t+pl7p>lE~1tp*|LRBtw*Qk?|pOR>S3MaaOHh@-Ld5fUya|qI# zAj~45AefjnJ;MVmc*ZQ~qOqdsS?eWCRB5DP{>$;^G0HYw0LzQlKXlv%IJPA|!>UbN zo2csfDNPA8cFONNpw+0C61NZRG0x%bn%3O%H+<( z04-~Zf@JIicDUa82XEHOMh#{*P9r;E=$;eTmdz}9UU#jT>O z$*=t%9EA#s{zvGGUzD+``q2+9*dZIQ=>HkQ#mM&gH;lyP+oH?2_5I5i00vj1!l9UL zpZh;2Q>7{B|B85*w6w6kzH)WSC<_IPKCL4TpaMeZEOsv>13rqwkLm2vB@iU4?b@J* O2kP0jwRCR&SN{V)nzG#h literal 0 HcmV?d00001 diff --git a/StreamingCommunity/Api/Site/streamingcommunity/__pycache__/costant.cpython-312.pyc b/StreamingCommunity/Api/Site/streamingcommunity/__pycache__/costant.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..445030acdc1fefd4c7a3784ed00ae9f1fab2513f GIT binary patch literal 791 zcmZ`$zi-n(6h1qNW2bhD7^sj+GB8Dm3=EY(2oyEW57ERZP6)EBo*erc9L09A8n?2Repp zbdXPz1-Y1S?l-95dme#(gS?_~wbGDjqUyb|5lyJbw^4SJvL2>)RpKMVvE9y|=Qsn` zCc|8l*u5O=V$a>XYVF5@Q8a$liEkSixrT#i(z5*}Fxq&@L3n8Q5QJ0+=fPUOD$`g8 z5h~Obr2(Jk8)cd*DAjzW25U--idE%BMTSLXzaZDCq{{V*tX`)Rum~^w>6(x9CPqHi z8witNPrcxo0|&VT>m{3%2W|b|6aH7q_ibIZ3DR+Nu^C;gn;s^HOLF}oXds-(HX;;g$Jf8QSwzIZ(z^ms`9SJ<5*pw7#HxWs#Pieb+WXkhu#etu|qxaYp*BLXup4t`lBuoy#g zTuHHEHR4#{nzqKD#@EqmmYYEkJd0d<*+A@kZvLUoZ0&`lNaQXD_XnbrO zsm#|*w-j?G>MP0lPB8sES!vcx(4&&#s+VjXYr%NELa@e)c3&Ewu=btcwR+znv|$ZJ z$P79kXc5h075y6@iK`sbe+zo@zR9z^m`KTyEo9D zTG<|ci|VXg*;J~`snXVLIhECpQ=wIP!}RTLUH+frvr)8VWyUlu)ko~=BX(IyrLoYH c?XwBaxg@)WUbxnR3M~X)=zf7A44n}E0Z7NHmH+?% literal 0 HcmV?d00001 diff --git a/StreamingCommunity/Api/Site/streamingcommunity/__pycache__/film.cpython-312.pyc b/StreamingCommunity/Api/Site/streamingcommunity/__pycache__/film.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..a94d8c7012da49292476871d9741b9fd39d72be7 GIT binary patch literal 2973 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 literal 0 HcmV?d00001 diff --git a/StreamingCommunity/Api/Site/streamingcommunity/__pycache__/site.cpython-312.pyc b/StreamingCommunity/Api/Site/streamingcommunity/__pycache__/site.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..bd8b91dbbe99ef33ccf38855fbbc148f036db5bd GIT binary patch literal 4467 zcmai1U2Gf25#Hk+$s;LBGDXRXY+0w+aZTHz?KE|2H%g*N@=sF`a*#Qq+T7MK!XB#Qz9EMoR`k* z@hHZz;RU%nx3fDtyF1^^>_6l2D1q|9vDas#t%Up+Kl~D^6PxQmED?=pf=M!7D`W)z z9moWDD`rG!1EypJGeH5zh-SzNXTqG8OxcQLBAgDIQ7e{-aXMtSSn*7p(_ypKYRj~7 zS~lCQZJBMHj+hCnBhvwNREwEOt25InkO0v;Zq(Jwbir4=@wHuR(Yx~jE&jfgc}8n} zpJaNpHoaSGhyONxM?Rz_fU{HU08a0`kV<}wa>i4F8-Gn#%go4^%?Z0)f{t*`E;_cU z1KA2>-k8l=YEhllDfGlOiZH8XOxFyxKIvNl6oJmj#OcY=?D){ws4Fr363bz~U&26$@ZbC&R7)g6Sc6-E z3%U{T1}+K=NAXgSd}^z$2nCe%NYMhCs7XdcN+I&d0Ql5`H|i_;trmI)`WFM0zy#S% z7&j=Kw};SOiz167jimqv_Gr<<74cK@r+_a@Any@PUKHOIFA5jQC2@*e6jG6e2T=ve z=p{zg9CH*lrz;oW+zq>^W>Ta zxURrL&nTrJp{|Efob}J?xH6uSDcXc96&$PAK{<@6GRLv_QZ zJv$4t-Jp*0QWC{mbR`FXK@&&{x`Sqg8+!P5?)db1(9fBk)Ex%Xrbp~t+0u*5nLcT- zQ{|cI2}X6*0@ko?S>>X^<{#HJR5GR~45m-R!Ft1Ujo}XTr%Ur5?&{m6y`aK#@OLOw zm&ry~JlJ|KMB00oCszh*ZAY$1@YS(>Y5&#z%afl?eKNIDzRqr*zi!ofUs~&Zb+z}^ zTRUpKW3|NiKjv2xQ&++pFnRlx)(79jlHZd+u=TFo_Q&`i;??fwZyve1yV`a1j{M@f z9RFb>2+W60H!SVO4c z30pLWM4dAY?IHm{2YqR*0o?-1eWX+bEx=-ar|%aH;d9Y<4uuwclvlbaz}J~i|UItN;=Oex&0Z&`|3)D+L7A@UG5{H{FUP0kr$)a7Ch?Mf->6b#(* z5S+J7)4qr{>M*_31gimM1fdG%0)RkyIU82YF@F_iD`iLbpi*B=nVDBS=Zf+WM5^MH z^qi45atZ)nRhT;KK?+TFKslka++0I^k>Q4#vSpEk8(+OyJvwoxXL7A)YPDyo)|$C|@;|Y}M`P7k ze^u(=1aZV|;ob^@8U`^pdOJp?jEw3bEbUFpNWdu>y0kX-mCiin=zM(Ozk%(ff_;iDLcL&4VQv&iAT4n3e7rh3U#b2|5YZaY;CaB^^* zS%;~t>`=rO#mvGDmMG3g!*P=q=E?Po@sn^jqH0=}bKEE{XX?dSHkS&~pP`U_I5B3a zmmvM-2jlD%GMm59F%^h?!XhwAh>q$T{=iu+a>jS-MH|gkKOYB=s?7QA` zbE=kjDbj{>xrIg$CeMQoL#xFGIzcB#q`?X+10_b)pO^ozsuAH z->AMcU2T7Jy|e!>zxwlFHF;z`*>^82C8Jm5jVOt1Ta)`&<^DVJ?u{0*y>H37YJF_4 ziEjhT5|sr>CV2Tx30dma1$jAZlcA#%$uXuZJ5a=8nT%+KH@_4Wx zh~{{(mGUqg!;9~+Aq5c@e$7EMVmM$m^Bl_fqQYDPqqT<f7h#jMT+E_TH9z6#Fz^@P@1RwJ zMaZOO=bfGDJBLSVvC*nD$_1o$xuP@gaLc6_0XPO+amIPUOThbnnhmGVGs8^R-=zwIc@o7l9alsL!NHCfLtn#c z>k8$UEL$s^`pfhTFaW~D!Mg+F6@<+Y5n}%)@N30b8GYZ$qoUM|?hTJW*ew5oJ(0qTiO?Y-=&vU}Sva>;;xjxLB Ro5P#p+w`l^PQ2UOg?^3IqrLb_?+PV+ z_k#4U@+Q>Z;@4Q?C1p*v@wwBx&NkWB=cIRoUxVLGw*As(J8TzbZm~Uf1!itD+99p0 zU&D#WqZZZ8pK?D};UJGXX`aDAIY<+kMjW~u&>e)se(WdykP8^854q}(xX-wdDBS&B zXOzBpcsaj?^O8qAP<<6DqopaiFM?5@rLi9-Ak}!tS?Di?zNTOZ3|2e8=$`Z+ef01I zJ{-l*Re&?Af}y}*9m8KnP)!aMnLcbL1N3(88@$;_Hs zpO6l5h;qjRN@g}ClRK(3FSGL0{*ruUEhr_Qkx$6)39HQPPwk{uw1?ynM!;Rw$v4Io(vu8e`*(L&C?G3!zVZiyudr2?rm^WH!7 zOq8UDF^$56OK*@0Po>Nsw~d{X`bfo5JM)F)Lfb5SuC0)1+t0E|mHEow$3yD!(tyd0 z6Cpsu(vC10uKaZ5J!(~i1)4P-LW1c8^`twkIoS&U`l;D00 zQ^#o>=Sir>ZyNe23r{ z0Edo$7m~un1)v~8{+t`+1-TG#+?A_6KVe>xZU{xhkukqOVs{iml=CD&M|&9;5b?Nx z^dOC*^aTb@DxR(3Y~Oo;*aZ&)LQr3j!j6Gj?V?gIm%PBvayRd6>=l`h`VdvVCo>*| zgD~(Q6MRqk!vbRn%6;!=Tm_>`^@+j*tyvGCT%pQXutI#8p#44`rqK4PGExeRKR9?* z1Ea(~;4@LcD&-Y%l|=<&AnI6Qth9>~=VA{BFir++En7DWC-zm^2Ti(i=1bnsMPv|Y zz*kf^QOQ;0zNJ-th`^HYK7=`0f{N7k>>HMN2YR5oVG<9x61h>Aij8zhm<$gvO;!bE zFRAZu@S(^Yz{9MCHM1u7mG#tSwsO8C48Q}mJ0)|Ml~{RU0lZ4AqDly-sl}>a*fV=- z&&vx!f$owcpv21fGoVBVDDm5>I$LWkds;e7FI>krE9%4b~P?X94$2gaMl61%$PNS<;XV@h_O}r zz0Sm8f}9H2PxAPT3xnL^1cNkBSh0_;JU;pDlao%jqsuCcd73M68zQP{d$MuhXW>C% z*-xH*psDwYeox$iSwM@8pt}owaSy6V30dmMn_PR(6CC^@)#^xwErDvagWN2ToU|jO ze5joS?jN{W#~IhIg#6_#*UXDH>OH{f5Ucm0YHbRoy!e-aS-mQB)n}}4W^@g=i+D0rqgF}0 zi%O7Vbv^da;XPp-rYnNW4BjYQT*tW@3s;Yg|H??C;4!R`--U`a8n#6pdW%-5_3x6~ z0Iq(|-hz?J>i4f&)yM?6e7)dFj^Qsc50SeSur|P!PJU_7@F0}njh+HD&k(-wuv+;@;GMB{I=uFTA)P&u zCw=tV`lD+C)6!6gBR+tB>yEbNSehV+t0?P1rR_8M{o+Et`@i>N`-uvp_VO)Qgz}xY zt?J`_er(=~1#I4`Z^^&~Y;M0zpK*Xd-qUZ=1lM%C%VY33TuH`d@4i9P`YLl6L;Cvg z|1CX^d@0)n5p^M1L>29TS1~{vfNU-e6OQ}Fhf)c1hZtVhHe%i27XALlh*j>#Da#}N gV+57NwFZAqg*Kc9H9yzXPQxkDlCyEMva@sVKgSn{F#rGn literal 0 HcmV?d00001 diff --git a/StreamingCommunity/Api/Site/streamingcommunity/api.py b/StreamingCommunity/Api/Site/streamingcommunity/api.py new file mode 100644 index 0000000..d829833 --- /dev/null +++ b/StreamingCommunity/Api/Site/streamingcommunity/api.py @@ -0,0 +1,159 @@ +# 02.12.24 + +from datetime import datetime +from typing import List, Dict + + +# External +import httpx + + +# Util +from StreamingCommunity.Util.headers import get_headers +from StreamingCommunity.Util.console import console, msg +from StreamingCommunity.Util._jsonConfig import config_manager + + +# Internal +from StreamingCommunity.Api.Site.streamingcommunity.costant import SITE_NAME +from StreamingCommunity.Api.Site.streamingcommunity.site import get_version_and_domain + + +# Variable +max_timeout = 10 + + +def search_titles(title_search: str, domain: str) -> List[Dict]: + """ + Searches for content using an API based on a title and domain. + + Args: + title_search (str): The title to search for. + domain (str): The domain of the API site to query. + + Returns: + List[Dict[str, str | int]]: A list of dictionaries containing information about the found content. + """ + titles = [] + + try: + url = f"https://{SITE_NAME}.{domain}/api/search?q={title_search.replace(' ', '+')}" + + response = httpx.get( + url=url, + headers={'user-agent': get_headers()}, + timeout=max_timeout + ) + + response.raise_for_status() + + except: + console.print(f"[red]Error: {response.status_code}") + return [] + + for dict_title in response.json().get('data', []): + if dict_title.get('last_air_date'): + release_year = datetime.strptime(dict_title['last_air_date'], '%Y-%m-%d').year + else: + release_year = '' + + images = {} + for dict_image in dict_title.get('images', []): + images[dict_image.get('type')] = f"https://cdn.{SITE_NAME}.{domain}/images/{dict_image.get('filename')}" + + titles.append({ + 'id': dict_title.get("id", ""), + 'slug': dict_title.get("slug", ""), + 'name': dict_title.get("name", ""), + 'type': dict_title.get("type", ""), + 'seasons_count': dict_title.get("seasons_count", 0), + 'year': release_year, + 'images': images, + 'url': f"https://{SITE_NAME}.{domain}/titles/{dict_title.get('id')}-{dict_title.get('slug')}" + }) + + return titles + +def get_infoSelectTitle(url_title: str, domain: str, version: str): + + headers = { + 'user-agent': get_headers(), + 'x-inertia': 'true', + 'x-inertia-version': version + } + + response = httpx.get(url_title, headers=headers, timeout=10) + + if response.status_code == 200: + json_response = response.json()['props'] + + generes = [] + for g in json_response["genres"]: + generes.append(g["name"]) + + trailer = None + if len(json_response['title']['trailers']) > 0: + trailer = f"https://www.youtube.com/watch?v={json_response['title']['trailers'][0]['youtube_id']}" + + images = {} + for dict_image in json_response['title'].get('images', []): + images[dict_image.get('type')] = f"https://cdn.{SITE_NAME}.{domain}/images/{dict_image.get('filename')}" + + rsp = { + 'id': json_response['title']['id'], + 'name': json_response['title']['name'], + 'slug': json_response['title']['slug'], + 'plot': json_response['title']['plot'], + 'type': json_response['title']['type'], + 'season_count': json_response['title']['seasons_count'], + 'generes': generes, + 'trailer': trailer, + 'image': images + } + + if json_response['title']['type'] == 'tv': + season = json_response["loadedSeason"]["episodes"] + episodes = [] + + for e in season: + episode = { + "id": e["id"], + "number": e["number"], + "name": e["name"], + "plot": e["plot"], + "duration": e["duration"], + "image": f"https://cdn.{SITE_NAME}.{domain}/images/{e['images'][0]['filename']}" + } + episodes.append(episode) + + rsp["episodes"] = episodes + + return rsp + + else: + return [] + +def get_infoSelectSeason(url_title: str, number_season: int, domain: str, version: str): + + headers = { + 'user-agent': get_headers(), + 'x-inertia': 'true', + 'x-inertia-version': version + } + + response = httpx.get(f"{url_title}/stagione-{number_season}", headers=headers, timeout=10) + + json_response = response.json().get('props').get('loadedSeason').get('episodes') + json_episodes = [] + + for json_ep in json_response: + + json_episodes.append({ + 'id': json_ep.get('id'), + 'number': json_ep.get('number'), + 'name': json_ep.get('name'), + 'plot': json_ep.get('plot'), + 'image': f"https://cdn.{SITE_NAME}.{domain}/images/{json_ep.get('images')[0]['filename']}" + }) + + return json_episodes diff --git a/StreamingCommunity/Api/Site/streamingcommunity/film.py b/StreamingCommunity/Api/Site/streamingcommunity/film.py index a8db695..fd66d1f 100644 --- a/StreamingCommunity/Api/Site/streamingcommunity/film.py +++ b/StreamingCommunity/Api/Site/streamingcommunity/film.py @@ -57,14 +57,8 @@ def download_film(select_title: MediaItem): output_filename=os.path.join(mp4_path, title_name) ).start() - if r_proc == 404: - time.sleep(2) - - # Re call search function - if msg.ask("[green]Do you want to continue [white]([red]y[white])[green] or return at home[white]([red]n[white]) ", choices=['y', 'n'], default='y', show_choices=True) == "n": - frames = get_call_stack() - execute_search(frames[-4]) - if r_proc != None: console.print("[green]Result: ") console.print(r_proc) + + return os.path.join(mp4_path, title_name) diff --git a/StreamingCommunity/Api/Site/streamingcommunity/series.py b/StreamingCommunity/Api/Site/streamingcommunity/series.py index 7be3b97..cd2f9a0 100644 --- a/StreamingCommunity/Api/Site/streamingcommunity/series.py +++ b/StreamingCommunity/Api/Site/streamingcommunity/series.py @@ -61,18 +61,12 @@ def download_video(tv_name: str, index_season_selected: int, index_episode_selec output_filename=os.path.join(mp4_path, mp4_name) ).start() - if r_proc == 404: - time.sleep(2) - - # Re call search function - if msg.ask("[green]Do you want to continue [white]([red]y[white])[green] or return at home[white]([red]n[white]) ", choices=['y', 'n'], default='y', show_choices=True) == "n": - frames = get_call_stack() - execute_search(frames[-4]) - if r_proc != None: console.print("[green]Result: ") console.print(r_proc) + return os.path.join(mp4_path, mp4_name) + def download_episode(tv_name: str, index_season_selected: int, scrape_serie: ScrapeSerie, video_source: VideoSource, download_all: bool = False) -> None: """ Download episodes of a selected season. diff --git a/StreamingCommunity/Api/Site/streamingcommunity/util/ScrapeSerie.py b/StreamingCommunity/Api/Site/streamingcommunity/util/ScrapeSerie.py index 1f73f3e..6b00a93 100644 --- a/StreamingCommunity/Api/Site/streamingcommunity/util/ScrapeSerie.py +++ b/StreamingCommunity/Api/Site/streamingcommunity/util/ScrapeSerie.py @@ -26,7 +26,7 @@ class ScrapeSerie: site_name (str): Name of the streaming site to scrape from """ self.is_series = False - self.headers = {'user-agent': get_headers()} + self.headers = {} self.base_name = site_name self.domain = config_manager.get_dict('SITE', self.base_name)['domain'] @@ -48,6 +48,13 @@ class ScrapeSerie: self.series_name = series_name self.obj_season_manager: SeasonManager = SeasonManager() self.obj_episode_manager: EpisodeManager = EpisodeManager() + + # Create headers + self.headers = { + 'user-agent': get_headers(), + 'x-inertia': 'true', + 'x-inertia-version': self.version, + } def collect_info_seasons(self) -> None: """ @@ -56,12 +63,6 @@ class ScrapeSerie: Raises: Exception: If there's an error fetching season information """ - self.headers = { - 'user-agent': get_headers(), - 'x-inertia': 'true', - 'x-inertia-version': self.version, - } - try: response = httpx.get( @@ -93,7 +94,6 @@ class ScrapeSerie: Exception: If there's an error fetching episode information """ try: - response = httpx.get( url=f'https://{self.base_name}.{self.domain}/titles/{self.media_id}-{self.series_name}/stagione-{number_season}', headers=self.headers, diff --git a/StreamingCommunity/Api/Site/streamingcommunity/util/__pycache__/ScrapeSerie.cpython-312.pyc b/StreamingCommunity/Api/Site/streamingcommunity/util/__pycache__/ScrapeSerie.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..877660d0ecf539e4268344e1a716948092c0c7c0 GIT binary patch literal 5075 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 L?CILMGqryKdJ^t< literal 0 HcmV?d00001 diff --git a/StreamingCommunity/Api/Template/Util/__pycache__/__init__.cpython-312.pyc b/StreamingCommunity/Api/Template/Util/__pycache__/__init__.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..8fed2fd002c2593bfa94b877370d275cea9777ae GIT binary patch literal 456 zcmZutyH3L}6t$aYD~0FA&JYGBCR8CIkm$q$T_Q`CNv?t`JBb_z(TUIC8~7DinIa(u zCN`vsg^3$T%fcOw&pr2XY(GWOh+y1}C;20uZ(XvCK~EM3NbX5SGOCEC38ft$sDXA8 z=Z8DW)n4LhKk;>t1UgJYO6G3ty;B^GX}boukTw>04Z@_?s6@YvXQdXhh~0KWi$dgG zhl13~vS>H8s5n%zE;Ha(S_SRSjZiWZxM->WwQsFzEA2cUwvmBUDAhX~2QSo)a5~QZddY4sgC-&D(IS%dAmwWY*ES`^9=2;lrVne)@#& Py^!5kGJ7U76QTYMnSG0W literal 0 HcmV?d00001 diff --git a/StreamingCommunity/Api/Template/Util/__pycache__/__init__.cpython-39.pyc b/StreamingCommunity/Api/Template/Util/__pycache__/__init__.cpython-39.pyc new file mode 100644 index 0000000000000000000000000000000000000000..072aa83cb82ed586a808fb4ef9d73615954d36c5 GIT binary patch literal 440 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 Z*2;vJ_a0-I%`@?3g5zxeLt`{f_z%9EQ;h%s literal 0 HcmV?d00001 diff --git a/StreamingCommunity/Api/Template/Util/__pycache__/get_domain.cpython-39.pyc b/StreamingCommunity/Api/Template/Util/__pycache__/get_domain.cpython-39.pyc new file mode 100644 index 0000000000000000000000000000000000000000..3dd52c5d9fe52a2e82c22fb725c5f671e73326e3 GIT binary patch literal 3669 zcma)9&2!tv6~_V~2!bF*%eE3VX|t0!wU~)%_2OwY9#36IPTRC(xT1=csQhsE2OPg?^RU&$M2H)tCdnO}@mJSp9E0b6Mk=*=sS<)!NOM zaI&`5Cb^x8VC;#6L*GicCk6-5tB<(sA8?Oxk+k)^I*6kr4tQ>a$q1&K@ICZL{m_fN z5f=l3(#i)fXTtjc-ee6Lsbz3Qra#wbM3Rg!<3yk7nV#H``l-RpGeWdX2c;_0|2Pz$ z&$$@JBBUPuG>%6Br-fS7ix?GLrXr&9fYYHb5(xuI8pw{LcHS4GWJC2(&L2`PCUh;4 zqP;=4VMi&a7?&~S$9#}VPUEONsTA`_9kL(^L=+N=Gaoc0Y*+X~-j) z?0)LYpQrn~T`9O1!qkH}4AaP$lkXb3KlVXHI1W6?cOOeX*hR#!IQ0CeGoIv)k#b$X zPzr)TOH@qMUBl5$;^?9YV*?$U`C~x`*C^op6*|*xsT~rAkkO@nqWJ)w=f+>w5Im9R*Vds2Fs)8sDK|chgCITv7c*b*fdq%m zvEYN%d@rDglS`nD<`YB71@(g9T*7yvxD?ihI9=4rW9R6= zmwa!7D#TCU`Ir{-T!>g)oNU+f%7K*Q_;94a)RG$jw!9@gKjD2y6@9RROq1LI z;dyQIc)-Wfk0TW)0wLA5di4c6=Jn7!?$7nK21;^nLnw|R&+)uA^ua1<@tklKI7QRI zvsV!4#e(^zapg^zOAzOptCP2hLu})QZs|?3Lc|YX6tZY7fou08FXXws?}6&D?Lq`# zNPHUs|AZ_dwNt=9)6XDbN*%rohPc<6xvHH2`lsvCJgj5{&|Aq2K(E0pXniS~j-7NFmLK_?5_Zk=gT=tjU(1X|q~ZlX_;K5Rm4`=HU`+sTjMGIT&MX znOz;}&|Z6PoVLz1w)|8FX?HRQBK`_9R)I2BA=>Vu1(sEOJLN5LzcJLGXcoq(i!s{O zB3J2g9d-Sa7CGu`1;11zt5uOxtj0K&S3x`T@S4)Ep4AVp&)m!fOH@irG_nSBQvy2u zBWt`-r$(t$qtFR*!&_bmZd2)@tGE=x2ZEe_;RQaUMS4_2NMIxX3m#Df1w~M(07hJ3 z-Y5h2b5FnwB#H$xx}~-#94#gUB_bXcWP~y?I}|$LVdrNTBn13OZ_zmn7X{5#Kmo}6 zQltY3JxKPT2`ZN?ig-N%(6#+I4v=x7nD-b_Dv-^wf&D<*Po0E=Mg3;}^Auu@A648R*D{}kgH}Fi? zcSeHqXz!saCs0F`#|!>K3l0u0=A^Bu=j`mq0izR+46xTtMqM$!w~PLb`l_z{#aW%fNkp-|>hMTP9&g*SN@8my=wuz(m3i6TRt5df~f3QO9? zmiPeHh!3HGTO-5fR>Wlx5AsSf4t%H?#9KJ(sJf3~8WQj07Az4KGF=mE4R0`~bq=!$ zlC(x_Vv*^G1-j;>e-{q$g5+N3;;!i(mE}K)=_F3+krzqCm6t-3ju})Bh%u-oJBJCB zVYleb(jC)x)V`Yqw-w$5#wg5_lSxh@RhS;c{(vWWmGPkmh2ZpOg=?^Aa(?YaDG=<0 z4i3C%1QBr_2YyjQ{<8aOnh<&KXir6jr_7cG^>}#)xDp)74B11rJ zmKzW|xvdH#e;~zGm=xEsK@t-y*u0Gma)+vi&KXN_hCplQhL=3eD*!Yua;q>_?j8x` zlHyDGSh-aE5H_@%;yn~dv023io!eWQ(;F}*!d84Ar|LKbdZ4fz!BvjQg-Dxd)BbbjdYcH{K^ry#>r@la_8lDd+&2^lxm# zuDJR~#xk)@YBL_7yPdB*|UCY~b&Alq$vj(Yigi2;1WPqGW#W zazWd{g0)kYCq+f^##NXB;Xj|kGs+(yyh&gmA^bq0SplJNDU!dqjSXI4!Bi^RR7qjq b4P%xD{2oTRDk5y+n)te;MO?$aZh!B;KW_r- literal 0 HcmV?d00001 diff --git a/StreamingCommunity/Api/Template/Util/__pycache__/manage_ep.cpython-312.pyc b/StreamingCommunity/Api/Template/Util/__pycache__/manage_ep.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..1d2d586ee998190b10e58b357b78095006189a1e GIT binary patch literal 5924 zcmdT|O>7&-72ZGoh_oolqHIx&-ED0nqHW2)Nnlk;Oh=02M0SiwmSb5qyV_k+t1Ne! z*`;MMB&r$-Dx(IXBt@e%4x-*{_@dsNn-4j-=w)fDk+E<91NET+dSI&b(46{a|498s z?y(E(% zlBNn`O5w7iNh+oviFzI>JZaCo+9bm7$g!jhd)9rJg=%K%jp`+u}VHWCL(rhisb}BQZi5_ zi=0&|h)89nG%M+>q(QBwvHCctu*bSB9YfEQj@ou4U*fNErzRBPsRuIXSPfsv@$Mv9yYu4l72opH)E>nv^ur z>T8b&iCIokY%3Zpn>}7j&sh#Zg)Snk$NI+3=wcPNQ&RLq4~ysIctlrOFbZC(>;0Cs z^eei;RPAndV>~}c0Zfx~JuxYPo7Q@^&JF8%_&Xe<-{H-YpiNp96_W;Yrmv8eWH~{h zAV^G~HD?Wn9n1ch=6goZX)wLfAyLC?G1{l{`K+ku+UQA1e=R>YI;bNN)FS=f|4?UX%dv=v6t46oJ;$uv=ICxQ(# zhp%0E)ZF^}SLVo1Ui~CI$9>dv-S?zcG2?p@j?BFKyXQabz1}LZGZ3cH8M&+|qhL z3ZrOo<+WV!#_59WD9o=!mzX;Hv^$p)U1WZ8F5$Xfo@RwClAy2EwW_zdr6TCFJ?2{X zEKy1VAkX(sCwM5fUSENBy}eG~u)f{30mp~464%I0RxwbdVC5*cJ**rB5EtYcT!=eu zVLO|L&BJP}z;0^4GMA4wOpnr*$%jANWrpwbGW9=6c9pB1fdLA=_-BD@Vvvdbj*7NVz= zE1WFhw$5Y#{0fbhe*4VpVG~=-fUIURfF33zDQVSgkTi&W5lOu1=W;pFZPG9@lZLYs zVUA$>z)w;RvYagGCWGf<`VgmNL^CwZ$$7CKAr&Qj2p9^1@P0ERxKVAwSOo_VK!bJ- zpK{o%EW#mz&uDyx*BYZ|p?WvG+CLxx4BAF)Yo9*zhzb98;5P$C>#q6N=X-CJ?q0ax z^3|ogZyGHFi_Gb&p9pSU3dGBS_+ntk!{D~1;Er-|$4!2I@8{~@g54kwHO_|04IPi# z+Hbag8T%|Y|N7GIqvhR47X~Z4k5$@wu7_rPGa3NhZ2u=veAuz$%dXG5ZXUS7&+fW0 zersxmeiGYpQ=IR=b!4IC_6wDrM=G(S*CSYSbXI!+nk{j1ern;+pGuXT&sAd2UyuCY zCz@hL>_8=Q&*fC4B?111Ns%4r!?Al3|_%o-Hdo7 z#yaiIE#5aAhCBmZ-Nz3F3rwP!|?)FMG>6B&ycl+p#uZt>bI%ux*X&^uWV#z#1D+ z5ztMAlUdB@-SIg}HUeOPFq`E8s^tJEl$I>$T+ zJX34-#$s~VI4@L^VkMp~LkmxVEqS|=yikdcSbf{(q7ML;y%qzDC(avhJK9(DwIvrS zCq^pqi&o#(S^YsE?)5c}_J3ViI?0z$@`jMBoP4(uN6^keR-?7sIPkL3ecWhCE;1(` zhT{ekx3P7rb0%Rxbxs?z(V-IS@KO&*uYtGlm9UTakm9Kf!Bdw2t4jbtMfko-y#vdH z{6!My8hN8hfs4076{(M?8*L0`cT|zqVl_78a#50~T>>$i1x`zU;laZ-vPchtEfU@m zHAy5GF6jn59J-PKv>xs!zyvs9BCo;i3*SXN4&ls;9pg0E?ZBI`)T1dbgZfFPwANkh z2E4^)W1eleiehV+xYdHW%e85{+5-$#$AN5P0+67MhPZ}Nby>X0;!r(o(sBVz6ptAr zg3W_gAd$nUEW%WH!=*|dC$rJPn}h2=4gtdCbxjiN`)O@_76D>A4|V-WCAx1@rY{F! zucKYCTM`U93>i8CiRrghnT^(%oC96c@R?mBL0c^$ENLAL>VXznc(ox&rit%6h>AaDj zG-6jPktriM^*G#aFzx^OR};~8nOw%#&kve=nLh-28MD<|ZwKSt_;7iL_J0u|!~a8o zI1|-2iV#=6d5ElZ+4?c!YO4k420`LBeA*~++q?f>?9H~(Dfl!&<7jkZaz)e(Y!)@% zXr3Z$&~vc+(DRT$xZuAH=tW4(fTP2V*zw}3Too`KUcfjF>H;STdOm8OQH#u&e1WG0QtDI->>MBX!k z?>)9?Iu4y}0*QVJsuRuDF>U(wsT`d62vcfv*WjAJGu`;_OLuAl&Yf4R-Ubb^Sy^N*R z*T^UtyLEJdzJ07pK=Iz7mE9jQ-a7Y}3(L5wdN2xB`tG*=`4pCQ+y}*w8Rst=qp9-w LU;Ti;tSSE&n{69t literal 0 HcmV?d00001 diff --git a/StreamingCommunity/Api/Template/Util/__pycache__/manage_ep.cpython-39.pyc b/StreamingCommunity/Api/Template/Util/__pycache__/manage_ep.cpython-39.pyc new file mode 100644 index 0000000000000000000000000000000000000000..5c742a74574bf724f37caf9c32d4cd6bad22b3fe GIT binary patch literal 4510 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 literal 0 HcmV?d00001 diff --git a/StreamingCommunity/Api/Template/Util/__pycache__/recall_search.cpython-39.pyc b/StreamingCommunity/Api/Template/Util/__pycache__/recall_search.cpython-39.pyc new file mode 100644 index 0000000000000000000000000000000000000000..50573bc452938653b8797b5a2f3346546a3c5e71 GIT binary patch literal 1088 zcmZvb&1(}u6u@V8H|Zv6i?#^1dKf&2ff9PuAYy6j2VxOwDTY9q?o84NyEDt|Z0RnE zm+D=-7NI@*U-); zJcXOw1;G%*A?j5c_b_vq`vLVFhWAn1`w0Zv3$Rtw0~wLczYRC}4Z@%izI4WrXANE9 z2_9qPj_@hg_pQG4#`p?jls{yaao5lV`r=F+Q)AxPxj?K2-g@cv&Ve)a%09>E2%|$J zKYPe5WS=maxR7Pt_-tY9+8mZXMDGyuC+>S!jw-#0fNx~qX86WjzB|J=vtKiOb1vV! z<~N}t?534}ZxT2=nWT{jXc%ThM6uE)AyhKL&v=j;4hBhL9*BY9j0{p47@;H?Xca*u zQY;NQVSFGYgoPyLgo7F=!bC|@opqXJp*K|1h#RhxZfV=%CHcUj?Jn7x`3(t_G*n0- zhh@rtg`ru#K?W*hTyK<(PJ6JabVO};oicx~UQzj-eWN+dD2LlBic%>|*4c_hXI~iJ zYgN$EF->@0E62+H=^{wsU)RlVy)H-HQ|6gUCEL|n=`PvJmtK}To7(y6mL%N9hzf#K zYtFi)-6|ZF6kbftNwL6$wlfrNk|jl*#xa+y@a(ohp3<;bol~i(#ac*Hv}URmjoq_= z$9CYhS9o^*-eRoPhzI7VtktSkQyG|lMfxVZ_dlbc+doL)f9SvEiGj8BcT|u@T$-f+ zT$mT>asU5~&2zyLAw?92)bRd+5n*3*`;d+jPIYk7iL+vP`i!Qoy8YJBw}}^B s$63a=-4&4crdO{*wC!pal(u~7C_A4KD-bCB$JKyOESuO5+sD517tXOa1ONa4 literal 0 HcmV?d00001 diff --git a/StreamingCommunity/Api/Template/__pycache__/__init__.cpython-312.pyc b/StreamingCommunity/Api/Template/__pycache__/__init__.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..e095a8beb819acd78c6b83fde8d3af8ae6923b8c GIT binary patch literal 247 zcmZusF$%&!5WG!9L=gOgRT{At5kx^N8?}*xLz5*O+$G^|Q>5}4zQMQngS1w5f?#3g z2DEdVotYhGcdxx(S8$yst8~Qu){tKXU-0ZRIEzFiV1$J|fT)5fyaUS-)cq7mc{CW4 zB25O@QBb$MCUhY?F5=nbypwn=cOIRWTlA!}R4($kw3v~XOHHftC^zKrV0kpptt~T6 x)nCcQa#m=Lv4uGhN~JV=l^PaR-I>@tDGg3thnF@N`sTq$2mr6PfPrf>{Q%B5MeP6p literal 0 HcmV?d00001 diff --git a/StreamingCommunity/Api/Template/__pycache__/__init__.cpython-39.pyc b/StreamingCommunity/Api/Template/__pycache__/__init__.cpython-39.pyc new file mode 100644 index 0000000000000000000000000000000000000000..a2d82424c9e78a12047ab33901bf979846914b3a GIT binary patch literal 236 zcmZuqu?oU45KY<+A{6=?UBp>LlnQoosV))-wK+;4X-je)I{7{RQdcKuHz%)74nBDA z@!lPGWgO2L;kM4}CHZ3tzX&L7i9R7wOmV|3zi`e}P_Q(7a;j54CN-e+V4y;Y8VwxN zV2r#*aMOi5a}n8B-YQ#(vj^wJ2|Vhi7W=m9Ei~xGL1W%uMS%`VOQWo{wr?~Je=Aps fU8m`c?M#Uvq|~%4<)RzL+1j?MH?Rrm@r%el0Tx0s literal 0 HcmV?d00001 diff --git a/StreamingCommunity/Api/Template/__pycache__/site.cpython-312.pyc b/StreamingCommunity/Api/Template/__pycache__/site.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..27e6e02b624fac7697e36c0673fba70b55401b65 GIT binary patch literal 2978 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 N*!>a^p+Q<{|1X%Id8hyY literal 0 HcmV?d00001 diff --git a/StreamingCommunity/Lib/Downloader/HLS/__pycache__/downloader.cpython-39.pyc b/StreamingCommunity/Lib/Downloader/HLS/__pycache__/downloader.cpython-39.pyc new file mode 100644 index 0000000000000000000000000000000000000000..778cc01308e5f31e34026eefa172b087050d0938 GIT binary patch literal 25487 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 F{C_5Yhp+$u literal 0 HcmV?d00001 diff --git a/StreamingCommunity/Lib/Downloader/HLS/__pycache__/proxyes.cpython-312.pyc b/StreamingCommunity/Lib/Downloader/HLS/__pycache__/proxyes.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..6b353c2b8cc21f02eb76d4035ae59823fe36ee2b GIT binary patch literal 5160 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 literal 0 HcmV?d00001 diff --git a/StreamingCommunity/Lib/Downloader/HLS/__pycache__/proxyes.cpython-39.pyc b/StreamingCommunity/Lib/Downloader/HLS/__pycache__/proxyes.cpython-39.pyc new file mode 100644 index 0000000000000000000000000000000000000000..23615037168b9d30a2e524f467381a8fb549a9e3 GIT binary patch literal 3664 zcmai1&2JmW6`z^?;BrOLhN`%U`;iUOCSj1!3R(oPY8U}z$0_OxZfMsCp>(n44yBcs zyY$R35*N!JD)nd>y%h)yNXG#E8+z`cf5Dsr6ey5$Z#nh7*(F8EcDuyP&dkod_vX#- z{oXKIUG)h(f4=^k-RrA_{0lqFj|H7ipvZlwViMDo^s6`RQ`2XC25**HBfD?Y>YLMd zV9ZM0QKR25V|MC|n*F9}JE=cf>90_7hs18&I3{u9i1k~s7dMYde>J8(((%6oePp{s z_1gVC!K3(Io~O4D`Cy`Q0i*3fo(+@Ta1>?HF2|9TU9Q4Cn8}5NuAj^K#{r63eiobR z!YC)W5!i$uv)DSOeJi$O2Mn<*<6tY5VXiT3MYryW{BZi)O7Zpph0Pyq+fcTk$oHTs z>Db*RB?*bCsbVKqOk;M+V9YMDc474)!7Q|eSZ6Q4{rDF_jIFPx7~5Ik2Y62_2sX)NQMcI!+IkE zy{DUajKegKl<=@`O+?zUv@Ll$6ipZrEvUXBq7AR_`CxPBfrQQN+z0(&^v6iuBlxtHk46)4?et|scaul3^dJMp0HB@E?)G+!tz34;Q|*Oe0xQFC z9h6G6i+DbDX`2?W-CIIKcRp{xa8CWW@Wv=JsQ5QDN_qm3bP70lgPhP)GGitC8sg&<^eY+(44itzS)i@#vjlHMV%r5PHfazltL*#OQXi;{<=2j#4vUH*v3zitp}eqTWSkYqP(qE@EgQZjQW zDSif0Tk)!q+Af{1$#WYeKO|p(oSE}SCvNrX)&|*t7GU~P@$CXaTYG%)I7o(oUkPWC z@)|jb3=VSf7>0sJ(_j>tRx}4xpz`2Op2PI6zYz6*5WQIiO$}m{@Q4QkRL|oxA)j+K z5!nkdVGeV?6s)an`yklPGalq>kBfsu@`Wwm(@jC)L-9e?n6I_n-Oma=R3CF6sgo|3Cak+`@>02-& zUx$kLYt*ML#^_~wmHBjye$3kR3N79+Tdz5_yS#RQ?wvmvRTzCHl1gYOh#!n3N)%Jp ziG2#0=qY{n&WtJtqRfRjX+ZH#*%1Y#g)E$jeC<0A4D(Mvj({xwsjcBOWj%&nUb2X-`E0NvuBX ziXaCOo=Lac#T++^4ntfGjJN%QXOKU8P$aSx=9@2DGg?vsZ1NZO#O_s`X$}eS$+{aN zfQc7R&cA^vVUUl;H_^@ifkKLF=gy}B^qjZ5H`06%rSc{;<|~UI8iyp6@c~LpAqjPZ z;k)g0CRa$C0Y|5MXnLhl*IPY(<$0h6w=3Os%ldg={MD z_9Ac>mG9n!mbTszZ%WE_z}e^J|5yv()=3EUnU-)26QF)8egj-gw!X4%^=D zG%z)0aKQ*e?T6tgk0&X%TVeQQ5~bA_aT#qi$F_m3Utopld#OUw5SS=`0L7T%QGeCD z>aCd3a|eJ7uwa3|Lno#X@4y5lFoD=nm_gYQd-ghJ(-RBws|9fnxv$E8Chk8z7x!@G zJ0_)tQ9rXF+n)6xug)B0mymIf*vu{66Xz82qtW4lj`u+atow3()&N~@*)SYo4*toX zUeNltWvw8qaS8$3@wSUL!n-2Nt~ykjigP>0h(H4GLAem!C*+hYMK_RygV(q5H%z<> zvo%Y`7v20GjQ;_O=s;DxJ&KYnRFGq8{VxgUR~vH$L>Q`R&)^n~*MsM*GN(g}24*Bk zhm`@>QRUgOn-fPL*3LR@XOrOZWF+c?l~CF3xPV@O|;%l<0dV@Huv5Dv*$8fMXr z`hSJk1i2TC)|W1L%$&+qm`Iq-e5*y@vD&n4*$_t_^gOy@2_%b7TfC3rKEev=POrhg zn88E{$k*NB1a2g-H9Tv9$x^@l;?=eLKqYB6+?RQ_W&QwFm*zKLHM727RN4RPt7hfW oxV-WzTDr7jb6_T=dpD}^zKP@~*P!xXZys&gp53DGv)Z5h7jt2tHvj+t literal 0 HcmV?d00001 diff --git a/StreamingCommunity/Lib/Downloader/HLS/__pycache__/segments.cpython-312.pyc b/StreamingCommunity/Lib/Downloader/HLS/__pycache__/segments.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..a57d8876864df17c8ddb53254da1b586e192bfe3 GIT binary patch literal 23827 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 E1NRV6FaQ7m literal 0 HcmV?d00001 diff --git a/StreamingCommunity/Lib/Downloader/HLS/segments.py b/StreamingCommunity/Lib/Downloader/HLS/segments.py index a44e9d3..6c47fea 100644 --- a/StreamingCommunity/Lib/Downloader/HLS/segments.py +++ b/StreamingCommunity/Lib/Downloader/HLS/segments.py @@ -224,7 +224,7 @@ class M3U8_Segments: if threading.current_thread() is threading.main_thread(): signal.signal(signal.SIGINT, interrupt_handler) else: - print("Signal handler must be set in the main thread") + console.log("[red]Signal handler must be set in the main thread !!") def make_requests_stream(self, ts_url: str, index: int, progress_bar: tqdm, backoff_factor: float = 1.5) -> None: """ diff --git a/StreamingCommunity/Lib/Downloader/MP4/__pycache__/downloader.cpython-312.pyc b/StreamingCommunity/Lib/Downloader/MP4/__pycache__/downloader.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..3af9ee0734e73a60fc2771fc0be3fd0a2afe715a GIT binary patch literal 7996 zcmbt3TW}Lsmbdk`UbbZUiGVgX!SX|3AORd8F}5+rPh>k_VWPxJ>0`TZ90-<*hg(!kSUa2L# zgxFVkRbs35s>N30)rhUutA$p@=ps6=j=(Z%MjtVF4I->zN+L$DQG~UODPs1TBNnek z?CTh7q|{p~!g{7GV)NPnHc%yuJyPy17x4t+@H$k8c7&T`XO$MPElN*@!fqK-+B+~V z{16Cqm4**Uy^U|mNSW@aB#gI44

Ve>hvq17u3D(bt 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 literal 0 HcmV?d00001 diff --git a/StreamingCommunity/Lib/Downloader/MP4/__pycache__/downloader.cpython-39.pyc b/StreamingCommunity/Lib/Downloader/MP4/__pycache__/downloader.cpython-39.pyc new file mode 100644 index 0000000000000000000000000000000000000000..c9099b12f5914d80303e88f8fbb7ba64a130df07 GIT binary patch literal 4363 zcmahM$#NUVbv7&<0w4%N)Gm!AFQjBqvgOz^qu8cJXo)FGCc!Wqku^0yH^HH1fqELE zFdXQjq$-sv#!L>bN@7)kmsB~QkwXr-CC5JG;9TNcF1a{~o!5;43E5T|sF{BI>wf*- z>mECw*CqJ<{GAUQe?2To|KP~rFAd21@Pz+_7m|?dN@j1AOCkPUfN8{Tt{^?Ue?SCSaXLw-P8q~a)-T~ne*~yUf^lB;Ek9g0?xQaZ`2$GIE#kd zk~e0K3A*f-%`z@`58?9W_~zj~S(flf_XyI_@Sb8G1^5`sp*+CH0X~5WXawMs30wsD z6e{D>;%}hQPc>9RV?RroXOO%oO&+6l%nHPOnk7A(7sT?JTS^l0xS!)h)tcqx2Ron zu{nI_%FpI$ARy*E!XiMn0djQy}LX=cXwviEb-}Ctq@zTO&Zv$*@R^m zDjzLX7ORU)e}sv%-nPQfWf|&tIB3yHjj1i-GOcOT4VEEz9TN;n$=a;C#+RP_#$bFE zp6l?0?*fNPq!7z7ihuSu~=NUU`;v5@g~ntdt(XXu)=Ecv%Ii4L{@EK8k~ zEJc@v4?Rvj=VO@TeILux3i#=yo}{?99&}l{EbS`MF4Z@Od5)mMj?zg3mW$!t%|oWh zsJNr-${+u&lZi8%1vDDN9Owut?Px&#w3Cgq-Qu1Es~U~7o2Bj;8bjqh<*D2miic47 z0qBydSn(mg(q-_hNt*Oj{WiQP(K6_a(?gr%Fz>@K9)|G~ht zBB7szk?WmG@Y67IIU~W(B>b}pehx-%_oW1XIpM#O;IBSAizXl@ljuCUu#@TN^!Vlp zcusat#WKVtk6znRVBM!<8C`s;eBA5|$NI-V?&MIplZRLsXbN50k!Pi~iB2Id>?-7Z zJls7K7xv`NNSu#H-j+Zv2m1?AmSGeT-^2gQ zAYZKREMMKON^S`3oLFo5fhH)Bx%4G;nZDe8<$${4|^vP&q2_Rug+A-N3?dux?NQ4_wp0K*^-022^>U9MpA#y6qZ*y0rnl zQ&{OMVk8W%J1&NqyRK2gMrc36XwYKPbA{2@jG)O|zwIVd>oa@(*mz{SEj*~)@6*Nv za_aOs_3IELh+ZOLtV68$3JHGL!XfP$nN-LKG;>mbSCrYHv^jn0Qk3OD$f5jgA6zy1?Rm!V{Y(3td6rq|9V3yx6k>95rh$DL9j%D%Y7*SE;h1amCkAHE z9hiNg(2XjbuIb(h#!`HOZ!}=i@SA@hI75`!e%K5MC3&DR^=5@DWRlejV#JSP3Uj&W zV!uH*2qd2rT{v()A0%l9sex?|Le}!p)WFhOL!j~bC%^vuliz&)$uFYxeMpxz<4bvh zr9{3)Dr{R++HPV}2S0G$PfxwE-g()G(%WzrcZ^86Z$z1G-&*%*CsK_|MwHv80kvI0 z0sfj1>D$<~n;}MA{u-Ac*s~oUg2pMa5tX;$hJc02b~6a+y7RaL(^xYV=L2)NUrQk0 z_}y>$@3Z$NGb|K9}9BAvnkVBzC)SL-&P3ejG2aTSZBi?cM8P=IRMv_ zEPm{SaQk?`l&zWrZH3=i^!i52e_(}9gri%%P&Nq0{#t()Mm_MFE|efTlSHz|*YDTc zw!e0R*9O;~HV!r-Iy(^bL~u5_6(w?Ou)D*2mc$Vi!}0{v7V$0EJ6L#>=~-Bdv?;Io zCX-l7xCN~gbto(`R|^PS-$1_Y;^?gd=lc_1w_$F`fVvR{?1TpPnzTKb5YeGq)#|;Z z69x5pi$HBa3XC6^69OWwfj+X(tG=EF5RM)Q_E~+|vr9gH+{AT=T;c#OhP-h4-38Q7 z9H+byAiZyq8{zH~>gDtq-=^?cV4S6qR88>J&z$!~&UY{hzt0yHc zqAcBNBFHnsucvIN^0s{OiyOR(!e(z8spceP~cUKz2GyORrSs=I$=D)bg#{)e6(DuguId zb)hoLGIwTfR_3cSObJ4k_3Q^2IV2SAjAa1yq3<&-Xkwq~4lKf|wJ8o+YKs8I(ju2b zmH~G>`w0KCAzALS*sBVQZ@S29!oP`Fwq}P|7=>GM)3xiEjqm_0iWP{Evs|)=0-GEY zZMD~6i`@JufALkCdao~85OZ>fTTj<}!OId1UCf8Jd7P7TO%g!fhM~C1YkW#fg~~Pc zeiC5BQlbQz#@7KicW8~=t_jn8$N?tf&m^)8=DyshPp|Tp9IjU32!LH*oeketU?=H-JcMdYPMMcNY(*q0=$QRf|oR` z$+~(%F3KfYQx#c*e^%AxoKjE0PW5z^f2T*rRqza+(qJ=flIa+#fbkvVHK4E*cjqm*R$^p3qqG6;JWk-l-m zYvM+)4l;0ga-G^0Rzyz7KTxeLoA9$KWIFD*h>(rnh9ri5h?A07?g_Ch|A4IpflDrM z-@N`TD1KI|el&Z>T3W1Fb2AG!E7k`y3v7rp*Wp@7S)t!Ueo|SuePe}O<;rSE2^>{$ x@e!LMa(v+RQ!bOe<^`zb;&*wB!&l&yg>4sqEi31=oScJgg}0UiydZFn{U2j>2{`}& literal 0 HcmV?d00001 diff --git a/StreamingCommunity/Lib/Downloader/TOR/__pycache__/downloader.cpython-312.pyc b/StreamingCommunity/Lib/Downloader/TOR/__pycache__/downloader.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..56422b7d954be79a4eff89b1cef3d12defc7aae8 GIT binary patch literal 11046 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 literal 0 HcmV?d00001 diff --git a/StreamingCommunity/Lib/Downloader/TOR/__pycache__/downloader.cpython-39.pyc b/StreamingCommunity/Lib/Downloader/TOR/__pycache__/downloader.cpython-39.pyc new file mode 100644 index 0000000000000000000000000000000000000000..7fff3c512ad28c1942fb69b2faa0e7214c38621f GIT binary patch literal 6255 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 literal 0 HcmV?d00001 diff --git a/StreamingCommunity/Lib/Downloader/__pycache__/__init__.cpython-312.pyc b/StreamingCommunity/Lib/Downloader/__pycache__/__init__.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..1d6c9d74a00567da23b8b78f9673eca4efe562a1 GIT binary patch literal 365 zcmX@j%ge<81obu^=@WqTV-N=hn4pZ$8bHQ$h7^Vr#vF!R#wbQc5SuB7DVI5l8O&zR zVaa8UVr68gWYJ`O$p}=g$#{#;!zVc2CBHl`CqFSIwFo5Q8(g`kf_fW|^a()vF^Gc%pR-vNg7@y1}pmvyVV&da7fvV%< b^$IF)aoFVMrCiey~H zc*>$ak+W(h(<;SijEm$A!*~&g`Lz~`-U!BZSZsCenb0=mTVs9WgzI?`h2>y`a+G;f zJE0YIb<^{(?6~{B{@1bRMHaGFOIa&sVpwF72{S-Qyc4}iC!YZx&<2P;oA!WQS#B)3 znNvLaBgBO818`?37Y7 h-}57r!^-Ic>@MIv#u$I32$#?3@CB7ms5A@6zW_qNZs7m` literal 0 HcmV?d00001 diff --git a/StreamingCommunity/Lib/FFmpeg/__pycache__/__init__.cpython-39.pyc b/StreamingCommunity/Lib/FFmpeg/__pycache__/__init__.cpython-39.pyc new file mode 100644 index 0000000000000000000000000000000000000000..138e9a969176cae5f4682d2f445fa9cc458fcdbc GIT binary patch literal 357 zcmZvWJ5B>J5Qg`eK+tx32)5w>C_+ddEFMfrD|eIf4s=2QNie#CEozJ>|hN4@OhZ1}S1Y z34i+jJ8_TQGA>7>6w}-$gSJdkp~Nb9khV^|K>5h*d8(6q51VW9?1XjXNjMLBB6nsC zN@(xMJ@{Q1$lhDQ6pl7{K4|cVe_M7W4=|AJR?T7}lmc#2dNm*7*;*MMq_|0zTr$_@ EKe?D^V*mgE literal 0 HcmV?d00001 diff --git a/StreamingCommunity/Lib/FFmpeg/__pycache__/capture.cpython-312.pyc b/StreamingCommunity/Lib/FFmpeg/__pycache__/capture.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..fd1fe9bb6d44ddb112844d0c59eb0cf1f0e3be0f GIT binary patch literal 7117 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 N8g&bQ38OHN{{Rr_olgJ& literal 0 HcmV?d00001 diff --git a/StreamingCommunity/Lib/FFmpeg/__pycache__/capture.cpython-39.pyc b/StreamingCommunity/Lib/FFmpeg/__pycache__/capture.cpython-39.pyc new file mode 100644 index 0000000000000000000000000000000000000000..00340b95cf4c9a168c7f9e180f3b841eef9d067c GIT binary patch literal 4179 zcmb_f-)|d99iN%qwbzd0{Ak)HxmGL%t})k!3Z2klwdkr#bDUa2bxo4bQI|Kc7-yzxTc5JEz#1jlz~*NNShqLWx_=f}?X z`<%) ze6wxUEUah@KiAIJ@)$8Pu!qPkFk`>SrYNT7GlN<*_t>nJ*c6+l`DcXMv;gxmEz+sS zs5Zl9HDw7Xr)e2h<|w{{Dl^aF9B8A0Wxf#xQRp)m&U%4hJYb^Ub_2J?c*T(U4i6hF zisTe!QGeOdz1oZ;r#&K=ohf^l*I2n#qsA9_lZCW+Q<8Zl1F3> zJ;giE`Ub51G%*Io5cQ43h~B-24wi*EuqezvMW2x&hU=Rmml%)mA>w-?Kd`Bl&K1{) zMid6cA>t43Aq4_5Jvnc{-c;u+FPK zQG5Zkvq;Y z6V8KW*!z1K@82hQmtV&_xocb!O9|*p-yoGjdhbn0dFy{k3D#dL<>;$PxdK`NS3eg& zFFNq7cY}sY&)(Kb$2trUoC3p+b(z845A~d z>bVkl8CZ2}I4fiHx5Ew#DphB5kBy0O9_)n?8|~snqZ828F>zxN1|kIqDQhP|=Y&m1 zfY3(RhVZ1$F7twx!yd9mSFlVD#}IrH#nbESKe~P6L&x_5R&{D7=OK@$w>YCa=}Og! zt;mbnHHi;ezyr_U{#3JWsc+I$ZES4QcO<^z{nbDyUfSw0-wz+`Y^|@iJFK>&Uf^lK zC4&Vte(Q$1gwt_(r0$*BE4|ANkN^P+mhgq%~CV%Zt$sl28ixXEq}io30b)Du)$K`wwThQoI5#5cDqWEs~p8GCAtWL>L8~j z_N1xLV^UYRHFaRHMa@>*)$g-jt+3k@>F%`|kObzB;7*_m&;e$@Mf@F*_hP3}-M$+^ z@N93gNa=KYEo^k#ED+K5ho1OhcX#`a09}I0TOWXXcLPuKUiayix4WG>;C2?mtDT-K zXX8wR^RQ*~F*L}w4U;Tj6Wj2bWY#F*MZ?B6DPm&S#KsG_gf9@sv~lrEli2^Zjk2*w zX7LqxFTuNF5TJnmUun-TgVYM)E70*AGz}GSqsNAU%7Qur{ssnd%|m^hpaCR&3Yi3Y zgPPFeA?lL^GU3j5Rqh)=Dj!0Y5+pGp(^&TjzmS+Tw}c=&LGFS+m*f(hSXa@(g#_P2 zcM#yS(fc(ZA`}Mk+d6OB3FJgtNb;l1;6WD1sq9ef=a2GtvR-8eS_EXAiobXT8MP~F zoEeKSjg#!5;BG@WocZj~1;|t`t~?Mh^^GX0gD}H0g^J^X0gLsHnShUVSuuvO)N6>U zbKOxr?Bntt;9nqIF926bS?T0K6f(!ead=)CfLwDVzV=+jpvK1M%3krpB$lWHRvli3 zrHx8X<~i&5ZbJoi$M*#Px?=vOYEG%KLca%FP(qi1ur4JTi_)ayyToP1|}t{K1r)9o&RwkA7RMhy4Sv;3PdCR)hoVn z3>p&|((#&(CoV<~M7Hlcyc;OnywM}RLf!-iIo>wSl^gN-br&#?sziRgHips`m?HFj zY2JtPylgmpe8Yxo@Q1%!-3O|o+ z^8zL!vqt=TLH3OV?6D7VzHcc+cw$2Bm)p+^I{~XS2{oP&jRyr~zqk{Z5~6BbZOaX? z@=8@avgI3nXwn+aitj}t zE4xM&68J|}9yuxX|F_uMtQcJV;nC#)R4qmxmJbp#yN5O2xLOBsvUBqEvQfC_*r!xtKl=3%i>ARBQ0H)O7r$d zw{OVYoz1l$-`$i2v8M_ch*p`~)I*)$R57EV%zWT_P@LRkz1`5|^dt4>kas)c1O|0* zL6xI!w;y^z#o|>sKpGmVoTyEwU|&yndL0bP#ZmT7uTxi^QCFVv7z9KYpg|>@5aWz7 z51HE}CBVlrAma*T^5U1a9`l<(Rhj4Kp-Ydqrbh2WBfs`)X|Z}2plUVyKXjx+}O8vGUROZ#d&q+Or=K$UUP V0yGNl;b#Kin6|O7HtX2s{{Sj=eC_}M literal 0 HcmV?d00001 diff --git a/StreamingCommunity/Lib/FFmpeg/__pycache__/command.cpython-312.pyc b/StreamingCommunity/Lib/FFmpeg/__pycache__/command.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..b06af0eb64d2c250c31a6c98434772c4fbc0e979 GIT binary patch literal 11627 zcmdT~TTC2Rny#jAMc=qL&<4A?83P929h>;Fn466aI2e25#-vqr6}WL=qqcy}gmUJHJ<0}Hnzlp=qmFI^vPyEWp9 zx&v-V+jx7#6Ds&!6(@=o6M0rU_< zz$(lLfvFRHB`pG ztR&0VfMf%$U7K4DwC#P%5@?(=wfMin#)n!86w8&cC@Gena7bz~DV|U~HW{7@M!6U_ zB@ifg#6|5*DH0PiGei)@U_2qsB(Q=VDv0rj@RbSlfp}R=5cr@J4^GBONWg?7Dy5;@ zLg-GAPY_ND$78|SAO}^eLfnj$AVP3*GCCtn1&P2#f>Jmte1&ra1RR6MuAd5a$9W;7 z*n4{Wx~^XtRjj-)k(g4f0wHmt6saP^LpORyu3Z`)QVJ8I5Dd{O4ouD((wv%hV*W%} zg3btv9bcwq5{icxCb>jJ3gQ3-NpVxnJ;Q%HbY-}!M=6zlz(<299O1|m)aQuem<{tn zJUGKiw-pvFqNc30m5>$`7OP#*roTydhaE_)+X3K_q>8{HC?Ys=}*2i39I233}5z6fwA>GTFOC7 zqh4D}<K+{F4 zq&6)*eNap3&v`TN`*4qTQka<7nAD+_l1k}_mIk>RT}nEp<$sV#K+SWze9v0L_dKz^ z{s{(lo0n(}PJQ@i=nqMYiN7teKNcIiEX>=llu%hUwEIKbIv&%m?Mm6 zx?5mkZo;Td%){V4^G)V1oS)q9p>qyDgn@WCCi=y2Y$_u7CDBh01^;9i-{Su0%yBA3 zqpKX@qJkt4v6H@I^>(!aJv;mdM2WO?`bTdIemqrBfdpw?Wrv}jcH-o!C33USJXBQ= zYT6xRUG-Qr)>PY|XBRdLCtZiXM?Dfn%xDh9XXcuXI@IITsDn%J;kbVX9UK?hq9St& z8+B+|fFI}pRGnZKfs1bI(UH?f?`%<*!5pIhz(hPA0Ymm72+5dFGw6f>A4QmgFU5)e za13CKI;iKZgJBUrqnfE19lD|76Bt))7Cs#Sm=1#HwqjEYp0n+@?{cA#5K%0l1kWYw z$B4j>t8LQ;va_LCZMnH4S0v+=h%GG#Cp# zZ>IXXxtIisV!S`|@z6re(=hvj)J9@6t;&5zJoBA$iBELSe)ZpgOcc`{s65fhK^HR?C$Nb zB#e)37tG|3`#U;1{!3l=Uz|@K(QKcYubCO2%lK-09WAv4A(7%xu_dlIFl2mc3cesg zsG^v~IZ?3)_rj85zkaPZ*njo9ViWF3LX0PfkqAqrppH_A<=w+Qz1@lflQ-0KG3|y5 zCxbCqx@u`xrj(l9Sn9;O7cPyCbdB~ZZnd%oG~KGS_FB=`H+Z$TKbV2F!K)*^*Lp`4 zM^EpC>;1t&=!)VH6B9Ee9s<0rm`Nh0l#agEGZ@4+u5^v`LrYyF1Yw+Fogv|vMC_Qh zAc9t`Vnh&TTC8Lb4iwP=sl`%925X0+ykb-5k%$-*cOw7u@lfZj>mtnYTcd&~fgx}8 z#6yXw5R=4P{bA{1V&c{{2^S(1b;qO8L@X@L<;uDep17sXgIghx<6?Zr%$(w&la-o< zyatUT2oQs?lpZkO)G#jZhSQ&N`j>ra=fNjz(cA7tx9q);X1kxT&bQe`_EE`0=TjR~ zw&#)W!N9jRhArA;OE=i+6kEO2xjZZTI@0W+Zy*f7l7z*a){b$z8&wg24`E%z_opMd@dU4+$ zi@ck~zK!C#RB_$%$(1v5{i$^EX&8jdo7Ha=II+>zm1^sf>o2Sqck7zcpvmdo1XHT5GDbYU>|FvIwqUo) zbc>x%?|)VHompqkev!5J>E%h;*PdoOr~x0HS{jv0>r<9`^~01tVN2ikEP5U#SIR$S zJ5b-=C$7fjfPADo?do~rD)~u2d?^9LEIq`|EF7Ty9h&ngvb8h}bzr?X^D%Y_RBD{tEZPjgGzw~?<3O~ZT^hV?Mx z62shr^?cuU-@XgUweK>H%y>vco?hGMchO)R)5F1C03y4aHlQVi?_{kEKycQ=K+h^Q zE9g(&p?wQeJ_)BTA>kbk4ZKUjy_yEyro1Z&IoekR3pb;6|FC`)q78@0zOcIkboVK!thO~LlLZG$v62RY=+ zGvv8q8+p#H#S2=pH%4yiOmJ)U~}nCFC#B8efn93_a@BG*0(uDgDVe7~0P4$_$h9 z;xfCh>`KTR4LV<(kk`-E=OyG#+)tr%4ur8PA*Uz2Up?Xdcf&xYIgQdGHBV5cr(#r< z|IxbNFGDw?4F7=$T(pnzaL+ylZ1$iZqVaLys9k<6@W&_pSO)BpBVj>AwkdJpn94_i zyG7~Mxu2T=hU7O6PN(EJ_+Bn_TURva7jMTC5nj_q8Fe!<;b#9GVNSIRUK42K7}Kh9 zBviWUcDzW)dqS^{-o2-!}$F` z-hg^q+N0debMxWOS%Q-#SHx8EGc&-56)WLlQ-WfS2r+_QDuVkI`5TOoCllOY2<|=P0!FxJ5Zo?EFGhV3 zDVA^yCTc&vU&QDVMgtfj04J9*0#wbAD;Nzz)WWI+bp$hXmRhY+XF9;32)sM%IwC_L zshGlwQ!P~2H+B#wKL&CYC7hIMQW=qOkn=Q1Gdr*-NkEswnyd^fmyW3B0oy!Y(7>)e;FvbP5p2j!afl{>$RzaM`*xz^DuxA%Q? zNA``ZyRJPgWcD0=>d|TKWZF`@Y4K#bBBU)fU%E>l9r;;k>EN2Td8IDpZTr-HaKWS# zzWr&oPJerCse6em9av`@fK_?g|KtF2{Qpaf|7alHf0d;8YaqN$$W2{~F1g}RnmwE~ z=O;eA(fF%j&A%_N94<8fTcLHh)UJ5oLP`ot5kU;%k+sFeiR&6x7xU~Wu<5@vZ|2Rs z1^BA@KDb(dGu;HvWZ8v}TBfsH8%B`{yj8;~+LJiJy<(XM*C-M<&585yr~#AWt>m`A z+va!C54_C2gll3 zgRFor(b_UtHtX=!+u%#*&A(ubjMm`%t_pOu=q|g9z z6$Z52pyhAD?+9dQn9j0EEeGycyqX2Ub%s!d2CY8D?=R6BUy1(=J!;c5=46IdhPF*v zNw}ri9_C*hzgHV{A|#_>w;vwNRnArB#qU1upP+LNJi%4`p51G{7w~TMFd4Bf1sdP+ zj%C}X``q`6+_S26Y>i|79$>qsS#>tSmAeY|(QUB}>|+-44FvmIExkMccc`y|d|VM^ z6ryA~#rIlE{tU$T0K^x>SaSyDw^+z^tZ@S)OeF#Eb7~$=F+lxdvbY`GryS2oT&D>C z-n^e=>49|i&HD-)0RWqTUoExRRCYiCKdv?k{i$IHYkA?2-?$Wfq+tz7$LAv z7H51|8Q%psWL2nNW^iU{!%3dp-SMT#<^cT1U&8UFsp)8`+y(Q$jzfWC4}FxBI;xN! zu|FBdXlIbF1O9Dr-KN6z2~1$l@IrQ6q9||*IhRNH&--J-26%D;gsd@g8=~RzJ}#< zpH?4TbT60}UIz^KXm+__#q@6Ta`j66(hp^CM~dxOa6o}v*|Jf2I8}LgwQQ~O#Aiha>?Pe<;b@z!|vc~=}Wu%xBFVIrd=ajd@Td%;>$1RYq^qU2Y2?h z{7Y5kMYs85xAmge-eMYRX;SGZrG1p5B0W@W(%cL>YY{dQK#h#j@Llg>$8{+j=?G4X z@mM$gX(F+rq%WUjTvV3^PF!VQKB>%)7F7?hB>_#S9$_cevS)smsQOkd_&Y%2!2%XY zbP#`8K$nl=Qhl|mBiF#0yFgau$CPl>wb(}$V|{egA}0p-v_z;Il=4%$EZ%3HK?$Q$ zSoTab&L<+mIdTv3@Z=W9A%1E$nM^SKP0l|s@Za+XrsQ*`7G{F!{O8Pt&zNJMGp9de z+CO7zpR$anY2l3xcVo)kxO{WfzUDsl!13?C#>KlU%@16gu7-u74Oc_T)gU*XSbcNN z)%~Dw)7_}mkeg0EcCER4A2@Png6`Ocrzz!WlJ~#zxOUCc|G>HFs9WgRaMYz7b#nc& z)thUM^AGHsRjo^&jjGmERjb@~Mm{&RRy8a$70^BJ!AEawRJ5fk+E#|;v#+gHjL1ys z*S4D`Q~A=drwl$<8r0|N^fUVY^}PZCi@TpP_*{`zdmfiP4n3~=^-$_iCi7!aEtJQE tXH@FxRr5Kh6MD+PWA*rB%j0VwH9UU(x1Q9oewrs=yYUT{k-K2#{{c3*>>>aF literal 0 HcmV?d00001 diff --git a/StreamingCommunity/Lib/FFmpeg/__pycache__/command.cpython-39.pyc b/StreamingCommunity/Lib/FFmpeg/__pycache__/command.cpython-39.pyc new file mode 100644 index 0000000000000000000000000000000000000000..301e2bb24ab464bb7e0d41abfe54623b57561f76 GIT binary patch literal 6559 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 literal 0 HcmV?d00001 diff --git a/StreamingCommunity/Lib/FFmpeg/__pycache__/util.cpython-39.pyc b/StreamingCommunity/Lib/FFmpeg/__pycache__/util.cpython-39.pyc new file mode 100644 index 0000000000000000000000000000000000000000..5534c85eead46e317cf5819309ad488f6e2aefab GIT binary patch literal 7102 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 N&785$SyR^3{{Y6{WB>pF literal 0 HcmV?d00001 diff --git a/StreamingCommunity/Lib/M3U8/__pycache__/__init__.cpython-312.pyc b/StreamingCommunity/Lib/M3U8/__pycache__/__init__.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..b094edb0d209b7ea1b22841dcff598c8e3e6a4af GIT binary patch literal 409 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 literal 0 HcmV?d00001 diff --git a/StreamingCommunity/Lib/M3U8/__pycache__/decryptor.cpython-39.pyc b/StreamingCommunity/Lib/M3U8/__pycache__/decryptor.cpython-39.pyc new file mode 100644 index 0000000000000000000000000000000000000000..74e38c8ace353103f31471edd5567837402a326c GIT binary patch literal 4489 zcmb_f&2JmW72nx!E-6Z~B!A_@)3mk4)MOpUab2YdTuX9lM3x0hc969UX2lsvD=&AM z*`;g|R1R_4oBx420;pSk@3}y)J@>S?wm<>@3q%inZ+0n4vfv^>Nz9wCH*aR%y!U=@ zy^#?|f#27EUD$YhPEr1aox?v9Iya%j{|3SoMgqmnYT^>vS6x-snyblLcMYi3z-(Hs zMHFsq*}VeO_KE9ohmkgMi@Yelwob7Eb2e0HO<-Zg7uwb&Q=X{ql$2OPiC-!qtj9kaai_jgLiLKmr{ceJ zt9P1}k%KF}Gfcr2>@qssg^^{YGWHtosw`GWYBi!TjsotQvtp-}M4gE_-hkE)ZO43u zW`n?|{dRsCDx)2?Jl4R~hkpiiZbFH#0pSYj4Rl6ajqC6?n98&tbfz=od)+m0jF~^E z^6t88F%?c!NJsB}{NP4C+dc84u(R#Z{5KnTaZJ}EL76;U;)fd)*=Z~Ab^IQe(Wjd{q{$}FuS1&=YX_YAG4-}RKk(K9UOU)q@s*xxPxwx%`rE15 zl2}`XeU#vYU&~n?X1g#dXPLpw->c`4s|d4%SuaqI z6JC?NHt_!G1m2S5E#$m*GQynaGax8!sE&eU4e%<^f)j#R6erfuS)&xqbvNup*;Dd z+i(Q1hv_>HD<`eao{dh&iFk9zZ1U)`RK4;nRfGo5*tfuZsvljwvG{rnx)ma994+Rf z)!CK%=m}vIHhBNNJK;8{icvUBJB-_{RwNS6XtqbCEG$?n1*94rCN-oMQfpmA%}xF+ zwFCznZg5dRKHNUlLjKgX@7|l6ug}lkO3jAf+TOt|hED)t&5|fn3Br!Dys6#%$qV~@ov!~i% z=_@sLvb!eySt2lMH&m3A|4>7yP3docfkvYA$iA`*-m(S320aa0=xb!3>}rY8)e>{d zdamy3A(cET_{ZEK9zC=Zn`!6^xh$h=bk(!UuGux2{*JP1L2W>7CxxEFObn;8Wud&6 z${u)gK4Nz*R(Pp1r)#q!)TKS+U~VKScJ=4vrNYX4024&%>fm{!{r?poc5A@>;=^AS;R_r^oQPjX6-KZvGDG>Evz-2J``hbQ>DH1EvEa|0QQ zJL++t;oC}!7iDaruZdGYUf;Yms=QYI_Qy{<7anB*M04F>Fkj*Vkf7;-_dV|0cV&E@ zq5bhgEGvE!u&b}tuC4bC+KlNmw6CxCH5ym?=W|9l*K7_N3q0INHerQHvmjMU^#o+3 zqb=C1-iX=&E}|aBnU|t@r&fMFfiRFcuCo?IjVJXO0;hmX19*aHV*?y2)%|ciO0|H8 zm4bK&7yJb0jX3c{;+At!oYk3^c!_Xn*=`fu@CC3P_ zHqo`oa{|X)D{ApDj)TOwJunVD2r=FD@@H-0r-1BshD# z$bIl6L0dZj>md#NHQ|Y!8R*MoA!1RJ(-2~Lz7dV1_2j81WU}Cg@LoZ{S&c3Q+>2o_ z8=<+>DC9I+M+a`!=zZ=n3K5kxd9BIlqx<}uwl6q_+{d*B+~&yd|ByjR6?Ni+K=7lp zrhA}V(A8Vgr7%iPOqm2e)EmhW25cFuU17Ow0%^8wx{iC;UhS3?qst6*=buE`HHgxoux6xdY?XQ=c+x${d%q)J zDqq1f?Hb=2As{E#SClJ*I|9B+oV5To%ZRT~k3wBY%DquGCXo|c<9PZ5oW+q-fUgsP zuan&Zn}Yguj)gB*sD9GW@XBPQ)!-pMP}8 z%yu2VNI00S_$i+HXE;qC4O}xf?Bh5nevZ5skz7JDjiiF)LnOaIav4ZvTvV}LLn2KY ztv=Nt6O}n?23t zYUZpaU_`{Y82Ze|cmQVze*!-i-D3VC^+uBkgrt;kaUE*$DPwc@Ya>m`cu*G4kOXSSDtGTYQRSC~)Y*7=|~Y43TH7auzc8oj6mRyv=Q3NXvc` zQ++^?T08NBv~bW*FT9ya*B$^*4G_ z5<#}YpZUp2>PhY2WDx(EhB`vc%S-{Y1-+z~AZO4)|0PmV$8M|SeNu)`07u0!NBu7= Ctcbq= literal 0 HcmV?d00001 diff --git a/StreamingCommunity/Lib/M3U8/__pycache__/estimator.cpython-312.pyc b/StreamingCommunity/Lib/M3U8/__pycache__/estimator.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..29c3c37a605f9d35e556cb64f3bbd3f2a293f3ce GIT binary patch literal 8556 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 literal 0 HcmV?d00001 diff --git a/StreamingCommunity/Lib/M3U8/__pycache__/estimator.cpython-39.pyc b/StreamingCommunity/Lib/M3U8/__pycache__/estimator.cpython-39.pyc new file mode 100644 index 0000000000000000000000000000000000000000..49365cb778e980d1245440e22e6b181fe8c1d0c1 GIT binary patch literal 5651 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

+ + + diff --git a/client/dashboard/public/logo192.png b/client/dashboard/public/logo192.png new file mode 100644 index 0000000000000000000000000000000000000000..fc44b0a3796c0e0a64c3d858ca038bd4570465d9 GIT binary patch literal 5347 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 b{|{}U^kRn2wo}j7|0ATu<;8xA7zX}7|B6mN literal 0 HcmV?d00001 diff --git a/client/dashboard/public/manifest.json b/client/dashboard/public/manifest.json new file mode 100644 index 0000000..080d6c7 --- /dev/null +++ b/client/dashboard/public/manifest.json @@ -0,0 +1,25 @@ +{ + "short_name": "React App", + "name": "Create React App Sample", + "icons": [ + { + "src": "favicon.ico", + "sizes": "64x64 32x32 24x24 16x16", + "type": "image/x-icon" + }, + { + "src": "logo192.png", + "type": "image/png", + "sizes": "192x192" + }, + { + "src": "logo512.png", + "type": "image/png", + "sizes": "512x512" + } + ], + "start_url": ".", + "display": "standalone", + "theme_color": "#000000", + "background_color": "#ffffff" +} diff --git a/client/dashboard/public/robots.txt b/client/dashboard/public/robots.txt new file mode 100644 index 0000000..e9e57dc --- /dev/null +++ b/client/dashboard/public/robots.txt @@ -0,0 +1,3 @@ +# https://www.robotstxt.org/robotstxt.html +User-agent: * +Disallow: diff --git a/client/dashboard/src/App.css b/client/dashboard/src/App.css new file mode 100644 index 0000000..2075d00 --- /dev/null +++ b/client/dashboard/src/App.css @@ -0,0 +1,37 @@ +.search-results-container { + padding: 20px; +} + +.results-grid { + display: grid; + grid-template-columns: repeat(auto-fill, minmax(200px, 1fr)); + gap: 20px; +} + +.search-result-item { + cursor: pointer; + transition: transform 0.3s ease; + border-radius: 10px; + overflow: hidden; + box-shadow: 0 4px 6px rgba(0,0,0,0.1); +} + +.search-result-item:hover { + transform: scale(1.05); +} + +.result-image { + width: 100%; + height: 300px; + object-fit: cover; +} + +.result-info { + padding: 10px; + background-color: #f4f4f4; +} + +.result-info h2 { + margin: 0 0 10px 0; + font-size: 1.2rem; +} \ No newline at end of file diff --git a/client/dashboard/src/App.js b/client/dashboard/src/App.js new file mode 100644 index 0000000..b8243f1 --- /dev/null +++ b/client/dashboard/src/App.js @@ -0,0 +1,27 @@ +import React from 'react'; +import { BrowserRouter as Router, Routes, Route } from 'react-router-dom'; +import 'bootstrap/dist/css/bootstrap.min.css'; + +import Navbar from './components/Navbar.js'; +import Dashboard from './components/Dashboard.js'; +import SearchResults from './components/SearchResult.js'; +import TitleDetail from './components/TitleDetail.js'; +import Watchlist from './components/Watchlist.js'; +import Downloads from './components/Downloads.js'; + +function App() { + return ( + + + + } /> + } /> + } /> + } /> + } /> + + + ); +} + +export default App; \ No newline at end of file diff --git a/client/dashboard/src/components/Dashboard.js b/client/dashboard/src/components/Dashboard.js new file mode 100644 index 0000000..cb0fa55 --- /dev/null +++ b/client/dashboard/src/components/Dashboard.js @@ -0,0 +1,41 @@ +import React, { useState, useEffect } from 'react'; +import axios from 'axios'; +import { Container, Button, Form, InputGroup } from 'react-bootstrap'; + +import SearchBar from './SearchBar.js'; + +const API_BASE_URL = "http://127.0.0.1:1234"; + +const Dashboard = () => { + const [items, setItems] = useState([]); + + useEffect(() => { + fetchItems(); + }, []); + + const fetchItems = async (filter = '') => { + try { + const response = await axios.get(`${API_BASE_URL}/api/items?filter=${filter}`); + setItems(response.data); + } catch (error) { + console.error("Error fetching items:", error); + } + }; + + const handleSearch = (query) => { + fetchItems(query); + }; + + return ( + +

Dashboard

+ +
+ +
+ +
+ ); +}; + +export default Dashboard; \ No newline at end of file diff --git a/client/dashboard/src/components/Downloads.js b/client/dashboard/src/components/Downloads.js new file mode 100644 index 0000000..54d98bc --- /dev/null +++ b/client/dashboard/src/components/Downloads.js @@ -0,0 +1,195 @@ +import React, { useState, useEffect } from 'react'; +import axios from 'axios'; +import { Container, Row, Col, Card, Button, Badge, Modal } from 'react-bootstrap'; +import { FaTrash, FaPlay } from 'react-icons/fa'; +import { Link } from 'react-router-dom'; + +const API_BASE_URL = "http://127.0.0.1:1234"; + +const Downloads = () => { + const [downloads, setDownloads] = useState([]); + const [loading, setLoading] = useState(true); + const [showPlayer, setShowPlayer] = useState(false); + const [currentVideo, setCurrentVideo] = useState(""); + + // Fetch all downloads + const fetchDownloads = async () => { + try { + const response = await axios.get(`${API_BASE_URL}/downloads`); + setDownloads(response.data); + setLoading(false); + } catch (error) { + console.error("Error fetching downloads:", error); + setLoading(false); + } + }; + + // Delete a TV episode + const handleDeleteEpisode = async (id, season, episode) => { + try { + await axios.delete(`${API_BASE_URL}/deleteEpisode`, { + params: { id, season, episode } + }); + fetchDownloads(); // Refresh the list + } catch (error) { + console.error("Error deleting episode:", error); + } + }; + + // Delete a movie + const handleDeleteMovie = async (id) => { + try { + await axios.delete(`${API_BASE_URL}/deleteMovie`, { + params: { id } + }); + fetchDownloads(); // Refresh the list + } catch (error) { + console.error("Error deleting movie:", error); + } + }; + + // Watch video + const handleWatchVideo = (videoPath) => { + setCurrentVideo(videoPath); + setShowPlayer(true); + }; + + // Initial fetch of downloads + useEffect(() => { + fetchDownloads(); + }, []); + + if (loading) { + return
Loading...
; + } + + // Separate movies and TV shows + const movies = downloads.filter(item => item.type === 'movie'); + const tvShows = downloads.filter(item => item.type === 'tv'); + + // Group TV shows by slug + const groupedTvShows = tvShows.reduce((acc, show) => { + if (!acc[show.slug]) { + acc[show.slug] = []; + } + acc[show.slug].push(show); + return acc; + }, {}); + + return ( + + +

My Downloads

+ + {/* Movies Section */} +

Movies

+ {movies.length === 0 ? ( +

No movies downloaded.

+ ) : ( + + {movies.map((movie) => ( + + + +
+ {movie.slug.replace(/-/g, ' ')} + +
+ + Downloaded on: {new Date(movie.timestamp).toLocaleString()} + + + + View Details + +
+
+ + ))} +
+ )} + + {/* TV Shows Section */} +

TV Shows

+ {Object.keys(groupedTvShows).length === 0 ? ( +

No TV shows downloaded.

+ ) : ( + Object.entries(groupedTvShows).map(([slug, episodes]) => ( +
+

{slug.replace(/-/g, ' ')}

+ + {episodes.map((episode) => ( + + + +
+ + S{episode.n_s} E{episode.n_ep} + + +
+ + Downloaded on: {new Date(episode.timestamp).toLocaleString()} + + + + View Details + +
+
+ + ))} +
+
+ )) + )} +
+ + {/* Modal Video Player */} + setShowPlayer(false)} size="lg" centered> + + + +
+ ); +}; + +export default Downloads; \ No newline at end of file diff --git a/client/dashboard/src/components/Navbar.js b/client/dashboard/src/components/Navbar.js new file mode 100644 index 0000000..898e9a7 --- /dev/null +++ b/client/dashboard/src/components/Navbar.js @@ -0,0 +1,28 @@ +import React from 'react'; +import { Link } from 'react-router-dom'; +import 'bootstrap/dist/css/bootstrap.min.css'; + +const Navbar = () => { + return ( + + ); +}; + +export default Navbar; diff --git a/client/dashboard/src/components/SearchBar.js b/client/dashboard/src/components/SearchBar.js new file mode 100644 index 0000000..ef414a8 --- /dev/null +++ b/client/dashboard/src/components/SearchBar.js @@ -0,0 +1,48 @@ +import React, { useState } from 'react'; +import PropTypes from 'prop-types'; // Add this import +import { useNavigate } from 'react-router-dom'; +import { Form, InputGroup, Button } from 'react-bootstrap'; +import { FaSearch } from 'react-icons/fa'; + +const SearchBar = ({ onSearch }) => { + const [searchQuery, setSearchQuery] = useState(''); + const navigate = useNavigate(); + + const handleSearch = (e) => { + e.preventDefault(); + if (searchQuery.trim()) { + // If onSearch prop is provided, call it + if (onSearch) { + onSearch(searchQuery); + } + + // Navigate to search results page + navigate(`/search?q=${encodeURIComponent(searchQuery)}`); + } + }; + + return ( +
+ + setSearchQuery(e.target.value)} + /> + + +
+ ); +}; + +// Add PropTypes validation +SearchBar.propTypes = { + onSearch: PropTypes.func // If onSearch is optional + // or + // onSearch: PropTypes.func.isRequired // If onSearch is required +}; + +export default SearchBar; \ No newline at end of file diff --git a/client/dashboard/src/components/SearchResult.js b/client/dashboard/src/components/SearchResult.js new file mode 100644 index 0000000..9fb8642 --- /dev/null +++ b/client/dashboard/src/components/SearchResult.js @@ -0,0 +1,95 @@ +import React, { useState, useEffect } from 'react'; +import { useLocation, useNavigate } from 'react-router-dom'; +import axios from 'axios'; +import { Container, Row, Col, Card, Spinner } from 'react-bootstrap'; + +import SearchBar from './SearchBar.js'; + +const API_BASE_URL = "http://127.0.0.1:1234"; + +const SearchResults = () => { + const [results, setResults] = useState([]); + const [loading, setLoading] = useState(true); + const location = useLocation(); + const navigate = useNavigate(); + + useEffect(() => { + const searchParams = new URLSearchParams(location.search); + const query = searchParams.get('q'); + + const fetchSearchResults = async () => { + try { + setLoading(true); + const response = await axios.get(`${API_BASE_URL}/api/search`, { + params: { q: query } + }); + setResults(response.data); + setLoading(false); + } catch (error) { + console.error("Error fetching search results:", error); + setLoading(false); + } + }; + + if (query) { + fetchSearchResults(); + } + }, [location.search]); + + const handleItemClick = (item) => { + navigate(`/title/${item.id}-${item.slug}`, { + state: { + url: item.url // Pass the full URL to the TitleDetail component + } + }); + }; + + return ( + +
+ +
+ +

Search Results

+ + {loading ? ( +
+ + Loading... + +
+ ) : ( + + {results.map((item) => ( + + handleItemClick(item)} + style={{ cursor: 'pointer' }} + > + + + {item.name} + + {item.year} • {item.type === 'tv' ? 'TV Series' : 'Movie'} + {item.type === 'tv' && ` • ${item.seasons_count} Seasons`} + + + + + ))} + + )} +
+ ); +}; + +export default SearchResults; \ No newline at end of file diff --git a/client/dashboard/src/components/TitleDetail.js b/client/dashboard/src/components/TitleDetail.js new file mode 100644 index 0000000..8dd814c --- /dev/null +++ b/client/dashboard/src/components/TitleDetail.js @@ -0,0 +1,407 @@ +import React, { useState, useEffect } from 'react'; +import { useLocation } from 'react-router-dom'; +import axios from 'axios'; +import { Container, Row, Col, Image, Button, Dropdown, Modal, Alert } from 'react-bootstrap'; +import { FaDownload, FaPlay, FaPlus, FaTrash } from 'react-icons/fa'; + +import SearchBar from './SearchBar.js'; + +const API_BASE_URL = "http://127.0.0.1:1234"; + +const TitleDetail = () => { + const [titleDetails, setTitleDetails] = useState(null); + const [loading, setLoading] = useState(true); + const [selectedSeason, setSelectedSeason] = useState(1); + const [episodes, setEpisodes] = useState([]); + const [hoveredEpisode, setHoveredEpisode] = useState(null); + const [isInWatchlist, setIsInWatchlist] = useState(false); + const [downloadStatus, setDownloadStatus] = useState({}); + const [showPlayer, setShowPlayer] = useState(false); + const [currentVideo, setCurrentVideo] = useState(""); + const location = useLocation(); + + useEffect(() => { + const fetchTitleDetails = async () => { + try { + setLoading(true); + const titleUrl = location.state?.url || location.pathname.split('/title/')[1]; + + // Fetch title information + const response = await axios.get(`${API_BASE_URL}/api/getInfo`, { + params: { url: titleUrl } + }); + + const titleData = response.data; + setTitleDetails(titleData); + + // Check download status + await checkDownloadStatus(titleData); + + // Check watchlist status + await checkWatchlistStatus(titleData.slug); + + // For TV shows, fetch first season episodes directly + if (titleData.type === 'tv') { + setEpisodes(titleData.episodes || []); + } + + setLoading(false); + } catch (error) { + console.error("Error fetching title details:", error); + setLoading(false); + } + }; + + fetchTitleDetails(); + }, [location]); + + // Check if the movie/series is already downloaded + const checkDownloadStatus = async (titleData) => { + try { + if (titleData.type === 'movie') { + const response = await axios.get(`${API_BASE_URL}/downloads`); + const downloadedMovie = response.data.find( + download => download.type === 'movie' && download.slug === titleData.slug + ); + setDownloadStatus({ + movie: { + downloaded: !!downloadedMovie, + path: downloadedMovie ? downloadedMovie.path : null + } + }); + } else if (titleData.type === 'tv') { + const response = await axios.get(`${API_BASE_URL}/downloads`); + const downloadedEpisodes = response.data.filter( + download => download.type === 'tv' && download.slug === titleData.slug + ); + + const episodeStatus = {}; + downloadedEpisodes.forEach(episode => { + episodeStatus[`S${episode.n_s}E${episode.n_ep}`] = { + downloaded: true, + path: episode.path + }; + }); + setDownloadStatus({ tv: episodeStatus }); + } + } catch (error) { + console.error("Error checking download status:", error); + } + }; + + // Check watchlist status + const checkWatchlistStatus = async (slug) => { + try { + const response = await axios.get(`${API_BASE_URL}/api/getWatchlist`); + const inWatchlist = response.data.some(item => item.name === slug); + setIsInWatchlist(inWatchlist); + } catch (error) { + console.error("Error checking watchlist status:", error); + } + }; + + const handleSeasonSelect = async (seasonNumber) => { + if (titleDetails.type === 'tv') { + try { + setLoading(true); + const seasonResponse = await axios.get(`${API_BASE_URL}/api/getInfoSeason`, { + params: { + url: location.state?.url, + n: seasonNumber + } + }); + + setSelectedSeason(seasonNumber); + setEpisodes(seasonResponse.data); + setLoading(false); + } catch (error) { + console.error("Error fetching season details:", error); + setLoading(false); + } + } + }; + + const handleDownloadFilm = async () => { + try { + const response = await axios.get(`${API_BASE_URL}/downloadFilm`, { + params: { + id: titleDetails.id, + slug: titleDetails.slug + } + }); + const videoPath = response.data.path; + + // Update download status + setDownloadStatus({ + movie: { + downloaded: true, + path: videoPath + } + }); + } catch (error) { + console.error("Error downloading film:", error); + alert("Error downloading film. Please try again."); + } + }; + + const handleDownloadEpisode = async (seasonNumber, episodeNumber) => { + try { + const response = await axios.get(`${API_BASE_URL}/downloadEpisode`, { + params: { + n_s: seasonNumber, + n_ep: episodeNumber + } + }); + const videoPath = response.data.path; + + // Update download status for this specific episode + setDownloadStatus(prev => ({ + tv: { + ...prev.tv, + [`S${seasonNumber}E${episodeNumber}`]: { + downloaded: true, + path: videoPath + } + } + })); + } catch (error) { + console.error("Error downloading episode:", error); + alert("Error downloading episode. Please try again."); + } + }; + + const handleWatchVideo = async (videoPath) => { + if (!videoPath) { + // If no path provided, attempt to get path from downloads + try { + let path; + if (titleDetails.type === 'movie') { + const response = await axios.get(`${API_BASE_URL}/moviePath`, { + params: { id: titleDetails.id } + }); + path = response.data.path; + } else { + alert("Please select a specific episode to watch."); + return; + } + + setCurrentVideo(path); + } catch (error) { + alert("Please download the content first."); + return; + } + } else { + setCurrentVideo(videoPath); + } + setShowPlayer(true); + }; + + const handleAddToWatchlist = async () => { + try { + await axios.post(`${API_BASE_URL}/api/addWatchlist`, { + name: titleDetails.slug, + url: location.state?.url || location.pathname.split('/title/')[1], + season: titleDetails.season_count + }); + setIsInWatchlist(true); + } catch (error) { + console.error("Error adding to watchlist:", error); + alert("Error adding to watchlist. Please try again."); + } + }; + + const handleRemoveFromWatchlist = async () => { + try { + await axios.post(`${API_BASE_URL}/api/removeWatchlist`, { + name: titleDetails.slug + }); + setIsInWatchlist(false); + } catch (error) { + console.error("Error removing from watchlist:", error); + alert("Error removing from watchlist. Please try again."); + } + }; + + if (loading) { + return
Loading...
; + } + + if (!titleDetails) { + return Title not found; + } + + return ( + + + + {/* Background Image */} +
+
+

{titleDetails.name}

+ + {/* Watchlist Button */} + {titleDetails.type === 'tv' && ( +
+ {isInWatchlist ? ( + + ) : ( + + )} +
+ )} +
+
+ + + {/* Plot */} + + +

{titleDetails.plot}

+ +
+ + {/* Download/Watch Button for Movies */} + {titleDetails.type === 'movie' && ( + + + {downloadStatus.movie?.downloaded ? ( + + ) : ( + + )} + + + )} + + {/* TV Show Seasons and Episodes */} + {titleDetails.type === 'tv' && ( + <> + + + + + Season {selectedSeason} + + + + {[...Array(titleDetails.season_count)].map((_, index) => ( + handleSeasonSelect(index + 1)} + > + Season {index + 1} + + ))} + + + + + + + {episodes.map((episode) => { + const episodeKey = `S${selectedSeason}E${episode.number}`; + const isDownloaded = downloadStatus.tv?.[episodeKey]?.downloaded; + + return ( + +
+ {`Episode +
+ Ep {episode.number} +
+
{episode.name}
+ + {isDownloaded ? ( + + ) : ( + + )} +
+ + ); + })} +
+ + )} +
+ + {/* Modal Video Player */} + setShowPlayer(false)} size="lg" centered> + + + +
+ ); +}; + +export default TitleDetail; \ No newline at end of file diff --git a/client/dashboard/src/components/Watchlist.js b/client/dashboard/src/components/Watchlist.js new file mode 100644 index 0000000..755f487 --- /dev/null +++ b/client/dashboard/src/components/Watchlist.js @@ -0,0 +1,163 @@ +import React, { useState, useEffect } from 'react'; +import axios from 'axios'; +import { Container, Row, Col, Card, Button, Badge, Alert } from 'react-bootstrap'; +import { Link } from 'react-router-dom'; +import { FaTrash } from 'react-icons/fa'; + +const API_BASE_URL = "http://127.0.0.1:1234"; + +const Watchlist = () => { + const [watchlistItems, setWatchlistItems] = useState([]); + const [newSeasons, setNewSeasons] = useState([]); + const [loading, setLoading] = useState(true); + const [newSeasonsMessage, setNewSeasonsMessage] = useState(""); // Stato per il messaggio delle nuove stagioni + + // Funzione per recuperare i dati della watchlist + const fetchWatchlistData = async () => { + try { + const watchlistResponse = await axios.get(`${API_BASE_URL}/api/getWatchlist`); + setWatchlistItems(watchlistResponse.data); + setLoading(false); + } catch (error) { + console.error("Error fetching watchlist:", error); + setLoading(false); + } + }; + + // Funzione per controllare se ci sono nuove stagioni (attivata dal bottone) + const checkNewSeasons = async () => { + try { + const newSeasonsResponse = await axios.get(`${API_BASE_URL}/api/checkWatchlist`); + + if (Array.isArray(newSeasonsResponse.data)) { + setNewSeasons(newSeasonsResponse.data); + + // Crea un messaggio per i titoli con nuove stagioni + const titlesWithNewSeasons = newSeasonsResponse.data.map(season => season.name); + if (titlesWithNewSeasons.length > 0) { + setNewSeasonsMessage(`Nuove stagioni disponibili per: ${titlesWithNewSeasons.join(", ")}`); + + // Dopo aver mostrato il messaggio, aggiorniamo i titoli con le nuove stagioni + updateTitlesWithNewSeasons(newSeasonsResponse.data); + } else { + setNewSeasonsMessage("Nessuna nuova stagione disponibile."); + } + } else { + setNewSeasons([]); // In caso contrario, non ci sono nuove stagioni + setNewSeasonsMessage("Nessuna nuova stagione disponibile."); + } + } catch (error) { + console.error("Error fetching new seasons:", error); + } + }; + + // Funzione per inviare la richiesta POST per aggiornare il titolo nella watchlist + const updateTitlesWithNewSeasons = async (newSeasonsList) => { + try { + for (const season of newSeasonsList) { + // Manda una richiesta POST per ogni titolo con nuove stagioni + console.log(`Updated watchlist for ${season.name} with new season ${season.nNewSeason}, url: ${season.title_url}`); + + await axios.post(`${API_BASE_URL}/api/updateTitleWatchlist`, { + url: season.title_url, + season: season.season + }); + + } + } catch (error) { + console.error("Error updating title watchlist:", error); + } + }; + + // Funzione per rimuovere un elemento dalla watchlist + const handleRemoveFromWatchlist = async (serieName) => { + try { + await axios.post(`${API_BASE_URL}/api/removeWatchlist`, { name: serieName }); + + // Aggiorna lo stato locale per rimuovere l'elemento dalla watchlist + setWatchlistItems((prev) => prev.filter((item) => item.name !== serieName)); + } catch (error) { + console.error("Error removing from watchlist:", error); + } + }; + + // Carica inizialmente la watchlist + useEffect(() => { + fetchWatchlistData(); + }, []); + + if (loading) { + return
Loading...
; + } + + return ( + + +

My Watchlist

+ + + + {/* Mostra il messaggio sulle nuove stagioni */} + {newSeasonsMessage && ( + + {newSeasonsMessage} + + )} + + {watchlistItems.length === 0 ? ( +

Your watchlist is empty.

+ ) : ( + + {watchlistItems.map((item) => { + const hasNewSeason = newSeasons && Array.isArray(newSeasons) && newSeasons.some( + (season) => season.name === item.name + ); + + return ( + + + +
+ + {item.name.replace(/-/g, ' ')} + {hasNewSeason && ( + New Season + )} + + +
+ + + Added on: {new Date(item.added_on).toLocaleDateString()} + +
+ Seasons: {item.season} +
+ + View Details + +
+
+ + ); + })} +
+ )} +
+
+ ); +}; + +export default Watchlist; diff --git a/client/dashboard/src/index.css b/client/dashboard/src/index.css new file mode 100644 index 0000000..2246934 --- /dev/null +++ b/client/dashboard/src/index.css @@ -0,0 +1,20 @@ +body { + margin: 0; + font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Roboto', 'Oxygen', + 'Ubuntu', 'Cantarell', 'Fira Sans', 'Droid Sans', 'Helvetica Neue', + sans-serif; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; +} + +code { + font-family: source-code-pro, Menlo, Monaco, Consolas, 'Courier New', + monospace; +} + +.contenitore{ + text-align: center; + justify-content: center; + background-color: #f5f5f5; +} + diff --git a/client/dashboard/src/index.js b/client/dashboard/src/index.js new file mode 100644 index 0000000..a0b718f --- /dev/null +++ b/client/dashboard/src/index.js @@ -0,0 +1,15 @@ +import React from 'react'; +import ReactDOM from 'react-dom/client'; +import './index.css'; +import App from './App'; +import reportWebVitals from './reportWebVitals'; +import 'bootstrap/dist/css/bootstrap.min.css'; // Importa Bootstrap CSS + +const root = ReactDOM.createRoot(document.getElementById('root')); +root.render( + + + +); + +reportWebVitals(); diff --git a/client/dashboard/src/reportWebVitals.js b/client/dashboard/src/reportWebVitals.js new file mode 100644 index 0000000..5253d3a --- /dev/null +++ b/client/dashboard/src/reportWebVitals.js @@ -0,0 +1,13 @@ +const reportWebVitals = onPerfEntry => { + if (onPerfEntry && onPerfEntry instanceof Function) { + import('web-vitals').then(({ getCLS, getFID, getFCP, getLCP, getTTFB }) => { + getCLS(onPerfEntry); + getFID(onPerfEntry); + getFCP(onPerfEntry); + getLCP(onPerfEntry); + getTTFB(onPerfEntry); + }); + } +}; + +export default reportWebVitals; diff --git a/client/package-lock.json b/client/package-lock.json new file mode 100644 index 0000000..ac6f59a --- /dev/null +++ b/client/package-lock.json @@ -0,0 +1,6 @@ +{ + "name": "client", + "lockfileVersion": 3, + "requires": true, + "packages": {} +} diff --git a/config.json b/config.json index e6f1c75..5b0fe49 100644 --- a/config.json +++ b/config.json @@ -20,7 +20,7 @@ }, "REQUESTS": { "timeout": 20, - "max_retry": 5, + "max_retry": 8, "verify_ssl": true, "proxy_start_min": 0.1, "proxy_start_max": 0.5, @@ -63,38 +63,10 @@ "SITE": { "streamingcommunity": { "domain": "asia" - }, - "altadefinizione": { - "domain": "now" - }, - "guardaserie": { - "domain": "academy" - }, - "mostraguarda": { - "domain": "stream" - }, - "ddlstreamitaly": { - "domain": "co", - "cookie": { - "ips4_device_key": "", - "ips4_member_id": "", - "ips4_login_key": "" - } - }, - "animeunity": { - "domain": "to" - }, - "cb01new": { - "domain": "club" - }, - "bitsearch": { - "domain": "to" - }, - "1337xx": { - "domain": "to" - }, - "piratebays": { - "domain": "to" } + }, + "EXTRA": { + "mongodb": "mongodb://....", + "database": "StreamingCommunity" } } \ No newline at end of file diff --git a/dockerfile b/dockerfile deleted file mode 100644 index 6ca85d0..0000000 --- a/dockerfile +++ /dev/null @@ -1,20 +0,0 @@ -FROM python:3.11-slim - -COPY . /app -WORKDIR /app - -ENV TEMP /tmp -RUN mkdir -p $TEMP - -RUN apt-get update && apt-get install -y \ - ffmpeg \ - build-essential \ - libssl-dev \ - libffi-dev \ - python3-dev \ - libxml2-dev \ - libxslt1-dev - -RUN pip install --no-cache-dir -r requirements.txt - -CMD ["python", "test_run.py"] \ No newline at end of file diff --git a/requirements.txt b/requirements.txt index 51162b4..760434a 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,4 +1,4 @@ -httpx +httpx bs4 rich tqdm @@ -11,4 +11,6 @@ pycryptodome fake-useragent==1.1.3 qbittorrent-api python-qbittorrent -googlesearch-python \ No newline at end of file +googlesearch-python +pymongo +flask \ No newline at end of file diff --git a/server.py b/server.py new file mode 100644 index 0000000..37dbec8 --- /dev/null +++ b/server.py @@ -0,0 +1,594 @@ +import os +import logging +import shutil +import datetime +from urllib.parse import urlparse +from pymongo import MongoClient +from urllib.parse import unquote +from flask_cors import CORS +from flask import Flask, jsonify, request +from flask import send_from_directory + +# Util +from StreamingCommunity.Util._jsonConfig import config_manager + +# Internal +from StreamingCommunity.Api.Template.Class.SearchType import MediaItem +from StreamingCommunity.Api.Site.streamingcommunity.api import get_version_and_domain, search_titles, get_infoSelectTitle, get_infoSelectSeason +from StreamingCommunity.Api.Site.streamingcommunity.film import download_film +from StreamingCommunity.Api.Site.streamingcommunity.series import download_video +from StreamingCommunity.Api.Site.streamingcommunity.util.ScrapeSerie import ScrapeSerie + +# Player +from StreamingCommunity.Api.Player.vixcloud import VideoSource + +# Variable +app = Flask(__name__) +CORS(app) + +version, domain = get_version_and_domain() +season_name = None +scrape_serie = ScrapeSerie("streamingcommunity") +video_source = VideoSource("streamingcommunity", True) +DOWNLOAD_DIRECTORY = os.getcwd() + + +client = MongoClient(config_manager.get("EXTRA", "mongodb")) +db = client[config_manager.get("EXTRA", "database")] +watchlist_collection = db['watchlist'] +downloads_collection = db['downloads'] + + + +# ---------- SITE API ------------ +@app.route('/') +def index(): + """ + Health check endpoint to confirm server is operational. + + Returns: + str: Operational status message + """ + logging.info("Health check endpoint accessed") + return 'Server is operational' + +@app.route('/api/search', methods=['GET']) +def get_list_search(): + """ + Search for titles based on query parameter. + + Returns: + JSON response with search results or error message + """ + try: + query = request.args.get('q') + + if not query: + logging.warning("Search request without query parameter") + return jsonify({'error': 'Missing query parameter'}), 400 + + result = search_titles(query, domain) + logging.info(f"Search performed for query: {query}") + return jsonify(result), 200 + + except Exception as e: + logging.error(f"Error in search: {str(e)}", exc_info=True) + return jsonify({'error': 'Internal server error'}), 500 + +@app.route('/api/getInfo', methods=['GET']) +def get_info_title(): + """ + Retrieve information for a specific title. + + Returns: + JSON response with title information or error message + """ + try: + title_url = request.args.get('url') + + if not title_url: + logging.warning("GetInfo request without URL parameter") + return jsonify({'error': 'Missing URL parameter'}), 400 + + result = get_infoSelectTitle(title_url, domain, version) + + if result.get('type') == "tv": + global season_name, scrape_serie, video_source + season_name = result.get('slug') + scrape_serie.setup( + version=version, + media_id=int(result.get('id')), + series_name=result.get('slug') + ) + video_source.setup(result.get('id')) + + logging.info(f"TV series info retrieved: {season_name}") + + return jsonify(result), 200 + + except Exception as e: + logging.error(f"Error retrieving title info: {str(e)}", exc_info=True) + return jsonify({'error': 'Failed to retrieve title information'}), 500 + +@app.route('/api/getInfoSeason', methods=['GET']) +def get_info_season(): + """ + Retrieve season information for a specific title. + + Returns: + JSON response with season information or error message + """ + try: + title_url = request.args.get('url') + number_season = request.args.get('n') + + if not title_url or not number_season: + logging.warning("GetInfoSeason request with missing parameters") + return jsonify({'error': 'Missing URL or season number'}), 400 + + result = get_infoSelectSeason(title_url, number_season, domain, version) + logging.info(f"Season info retrieved for season {number_season}") + return jsonify(result), 200 + + except Exception as e: + logging.error(f"Error retrieving season info: {str(e)}", exc_info=True) + return jsonify({'error': 'Failed to retrieve season information'}), 500 + +@app.route('/api/getdomain', methods=['GET']) +def get_domain(): + """ + Retrieve current domain and version. + + Returns: + JSON response with domain and version + """ + try: + global version, domain + version, domain = get_version_and_domain() + logging.info(f"Domain retrieved: {domain}, Version: {version}") + return jsonify({'domain': domain, 'version': version}), 200 + + except Exception as e: + logging.error(f"Error retrieving domain: {str(e)}", exc_info=True) + return jsonify({'error': 'Failed to retrieve domain information'}), 500 + + + +# ---------- DOWNLOAD API ------------ +@app.route('/downloadFilm', methods=['GET']) +def call_download_film(): + """ + Download a film by its ID and slug. + + Returns: + JSON response with download path or error message + """ + try: + film_id = request.args.get('id') + slug = request.args.get('slug') + + if not film_id or not slug: + logging.warning("Download film request with missing parameters") + return jsonify({'error': 'Missing film ID or slug'}), 400 + + item_media = MediaItem(**{'id': film_id, 'slug': slug}) + path_download = download_film(item_media) + + download_data = { + 'type': 'movie', + 'id': film_id, + 'slug': slug, + 'path': path_download, + 'timestamp': datetime.datetime.now(datetime.timezone.utc) + } + downloads_collection.insert_one(download_data) + + logging.info(f"Film downloaded: {slug}") + return jsonify({'path': path_download}), 200 + + except Exception as e: + logging.error(f"Error downloading film: {str(e)}", exc_info=True) + return jsonify({'error': 'Failed to download film'}), 500 + +@app.route('/downloadEpisode', methods=['GET']) +def call_download_episode(): + """ + Download a specific TV series episode. + + Returns: + JSON response with download path or error message + """ + try: + season_number = request.args.get('n_s') + episode_number = request.args.get('n_ep') + + if not season_number or not episode_number: + logging.warning("Download episode request with missing parameters") + return jsonify({'error': 'Missing season or episode number'}), 400 + + season_number = int(season_number) + episode_number = int(episode_number) + + scrape_serie.collect_title_season(season_number) + path_download = download_video( + season_name, + season_number, + episode_number, + scrape_serie, + video_source + ) + + download_data = { + 'type': 'tv', + 'id': scrape_serie.media_id, + 'slug': scrape_serie.series_name, + 'n_s': season_number, + 'n_ep': episode_number, + 'path': path_download, + 'timestamp': datetime.datetime.now(datetime.timezone.utc) + } + downloads_collection.insert_one(download_data) + + logging.info(f"Episode downloaded: S{season_number}E{episode_number}") + return jsonify({'path': path_download}), 200 + + except ValueError: + logging.error("Invalid season or episode number format") + return jsonify({'error': 'Invalid season or episode number'}), 400 + + except Exception as e: + logging.error(f"Error downloading episode: {str(e)}", exc_info=True) + return jsonify({'error': 'Failed to download episode'}), 500 + +@app.route('/downloaded/', methods=['GET']) +def serve_downloaded_file(filename): + """ + Serve downloaded files with proper URL decoding and error handling. + + Returns: + Downloaded file or error message + """ + try: + # URL decode the filename + decoded_filename = unquote(filename) + logging.debug(f"Requested file: {decoded_filename}") + + # Construct full file path + file_path = os.path.join(DOWNLOAD_DIRECTORY, decoded_filename) + logging.debug(f"Full file path: {file_path}") + + # Verify file exists + if not os.path.isfile(file_path): + logging.warning(f"File not found: {decoded_filename}") + return jsonify({'error': 'File not found'}), 404 + + # Serve the file + return send_from_directory(DOWNLOAD_DIRECTORY, decoded_filename, as_attachment=False) + + except Exception as e: + logging.error(f"Error serving file: {str(e)}", exc_info=True) + return jsonify({'error': 'Internal server error'}), 500 + + + +# ---------- WATCHLIST MONGO ------------ +@app.route('/api/addWatchlist', methods=['POST']) +def add_to_watchlist(): + title_name = request.json.get('name') + title_url = request.json.get('url') + season = request.json.get('season') + + if title_url and season: + + existing_item = watchlist_collection.find_one({'name': title_name, 'url': title_url, 'season': season}) + if existing_item: + return jsonify({'message': 'Il titolo è già nella watchlist'}), 400 + + watchlist_collection.insert_one({ + 'name': title_name, + 'title_url': title_url, + 'season': season, + 'added_on': datetime.datetime.utcnow() + }) + return jsonify({'message': 'Titolo aggiunto alla watchlist'}), 200 + else: + return jsonify({'message': 'Missing title_url or season'}), 400 + +@app.route('/api/updateTitleWatchlist', methods=['POST']) +def update_title_watchlist(): + print(request.json) + + title_url = request.json.get('url') + new_season = request.json.get('season') + + if title_url is not None and new_season is not None: + result = watchlist_collection.update_one( + {'title_url': title_url}, + {'$set': {'season': new_season}} + ) + + if result.matched_count == 0: + return jsonify({'message': 'Titolo non trovato nella watchlist'}), 404 + + if result.modified_count == 0: + return jsonify({'message': 'La stagione non è cambiata'}), 200 + + return jsonify({'message': 'Stagione aggiornata con successo'}), 200 + + else: + return jsonify({'message': 'Missing title_url or season'}), 400 + +@app.route('/api/removeWatchlist', methods=['POST']) +def remove_from_watchlist(): + title_name = request.json.get('name') + + if title_name: + result = watchlist_collection.delete_one({'name': title_name}) + + if result.deleted_count == 1: + return jsonify({'message': 'Titolo rimosso dalla watchlist'}), 200 + else: + return jsonify({'message': 'Titolo non trovato nella watchlist'}), 404 + else: + return jsonify({'message': 'Missing title_url or season'}), 400 + +@app.route('/api/getWatchlist', methods=['GET']) +def get_watchlist(): + watchlist_items = list(watchlist_collection.find({}, {'_id': 0})) + + if watchlist_items: + return jsonify(watchlist_items), 200 + else: + return jsonify({'message': 'La watchlist è vuota'}), 200 + +@app.route('/api/checkWatchlist', methods=['GET']) +def get_newSeason(): + title_newSeasons = [] + watchlist_items = list(watchlist_collection.find({}, {'_id': 0})) + + if not watchlist_items: + return jsonify({'message': 'La watchlist è vuota'}), 200 + + for item in watchlist_items: + title_url = item.get('title_url') + if not title_url: + continue + + try: + parsed_url = urlparse(title_url) + hostname = parsed_url.hostname + domain_part = hostname.split('.')[1] + new_url = title_url.replace(domain_part, domain) + + result = get_infoSelectTitle(new_url, domain, version) + + if not result or 'season_count' not in result: + continue + + number_season = result.get("season_count") + + if number_season > item.get("season"): + title_newSeasons.append({ + 'title_url': item.get('title_url'), + 'name': item.get('name'), + 'season': int(number_season), + 'nNewSeason': int(number_season) - int(item.get("season")) + }) + + except Exception as e: + print(f"Errore nel recuperare informazioni per {item.get('title_url')}: {e}") + + if title_newSeasons: + return jsonify(title_newSeasons), 200 + else: + return jsonify({'message': 'Nessuna nuova stagione disponibile'}), 200 + + + +# ---------- DOWNLOAD MONGO ------------ +def ensure_collections_exist(db): + """ + Ensures that the required collections exist in the database. + If they do not exist, they are created. + + Args: + db: The MongoDB database object. + """ + required_collections = ['watchlist', 'downloads'] + existing_collections = db.list_collection_names() + + for collection_name in required_collections: + if collection_name not in existing_collections: + # Creazione della collezione + db.create_collection(collection_name) + logging.info(f"Created missing collection: {collection_name}") + else: + logging.info(f"Collection already exists: {collection_name}") + +@app.route('/downloads', methods=['GET']) +def fetch_all_downloads(): + """ + Endpoint to fetch all downloads. + """ + try: + downloads = list(downloads_collection.find({}, {'_id': 0})) + return jsonify(downloads), 200 + + except Exception as e: + logging.error(f"Error fetching all downloads: {str(e)}") + return [] + +@app.route('/deleteEpisode', methods=['DELETE']) +def remove_episode(): + """ + Endpoint to delete a specific episode and its file. + """ + try: + series_id = request.args.get('id') + season_number = request.args.get('season') + episode_number = request.args.get('episode') + + if not series_id or not season_number or not episode_number: + return jsonify({'error': 'Missing parameters (id, season, episode)'}), 400 + + try: + series_id = int(series_id) + season_number = int(season_number) + episode_number = int(episode_number) + except ValueError: + return jsonify({'error': 'Invalid season or episode number'}), 400 + + # Trova il percorso del file + episode = downloads_collection.find_one({ + 'type': 'tv', + 'id': series_id, + 'n_s': season_number, + 'n_ep': episode_number + }, {'_id': 0, 'path': 1}) + + if not episode or 'path' not in episode: + return jsonify({'error': 'Episode not found'}), 404 + + file_path = episode['path'] + + # Elimina il file fisico + try: + if os.path.exists(file_path): + os.remove(file_path) + logging.info(f"Deleted episode file: {file_path}") + else: + logging.warning(f"Episode file not found: {file_path}") + except Exception as e: + logging.error(f"Error deleting episode file: {str(e)}") + + # Rimuovi l'episodio dal database + result = downloads_collection.delete_one({ + 'type': 'tv', + 'id': series_id, + 'n_s': season_number, + 'n_ep': episode_number + }) + + if result.deleted_count > 0: + return jsonify({'success': True}), 200 + else: + return jsonify({'error': 'Failed to delete episode from database'}), 500 + + except Exception as e: + logging.error(f"Error deleting episode: {str(e)}") + return jsonify({'error': 'Failed to delete episode'}), 500 + +@app.route('/deleteMovie', methods=['DELETE']) +def remove_movie(): + """ + Endpoint to delete a specific movie, its file, and its parent folder if empty. + """ + try: + movie_id = request.args.get('id') + + if not movie_id: + return jsonify({'error': 'Missing movie ID'}), 400 + + # Trova il percorso del file + movie = downloads_collection.find_one({'type': 'movie', 'id': movie_id}, {'_id': 0, 'path': 1}) + + if not movie or 'path' not in movie: + return jsonify({'error': 'Movie not found'}), 404 + + file_path = movie['path'] + parent_folder = os.path.dirname(file_path) + + # Elimina il file fisico + try: + if os.path.exists(file_path): + os.remove(file_path) + logging.info(f"Deleted movie file: {file_path}") + else: + logging.warning(f"Movie file not found: {file_path}") + except Exception as e: + logging.error(f"Error deleting movie file: {str(e)}") + + # Elimina la cartella superiore se vuota + try: + if os.path.exists(parent_folder) and not os.listdir(parent_folder): + os.rmdir(parent_folder) + logging.info(f"Deleted empty parent folder: {parent_folder}") + except Exception as e: + logging.error(f"Error deleting parent folder: {str(e)}") + + # Rimuovi il film dal database + result = downloads_collection.delete_one({'type': 'movie', 'id': movie_id}) + + if result.deleted_count > 0: + return jsonify({'success': True}), 200 + else: + return jsonify({'error': 'Failed to delete movie from database'}), 500 + + except Exception as e: + logging.error(f"Error deleting movie: {str(e)}") + return jsonify({'error': 'Failed to delete movie'}), 500 + +@app.route('/moviePath', methods=['GET']) +def fetch_movie_path(): + """ + Endpoint to fetch the path of a specific movie. + """ + try: + movie_id = int(request.args.get('id')) + + if not movie_id: + return jsonify({'error': 'Missing movie ID'}), 400 + + movie = downloads_collection.find_one({'type': 'movie', 'id': movie_id}, {'_id': 0, 'path': 1}) + + if movie and 'path' in movie: + return jsonify({'path': movie['path']}), 200 + else: + return jsonify({'error': 'Movie not found'}), 404 + + except Exception as e: + logging.error(f"Error fetching movie path: {str(e)}") + return jsonify({'error': 'Failed to fetch movie path'}), 500 + +@app.route('/episodePath', methods=['GET']) +def fetch_episode_path(): + """ + Endpoint to fetch the path of a specific episode. + """ + try: + series_id = request.args.get('id') + season_number = request.args.get('season') + episode_number = request.args.get('episode') + + if not series_id or not season_number or not episode_number: + return jsonify({'error': 'Missing parameters (id, season, episode)'}), 400 + + try: + series_id = int(series_id) + season_number = int(season_number) + episode_number = int(episode_number) + except ValueError: + return jsonify({'error': 'Invalid season or episode number'}), 400 + + episode = downloads_collection.find_one({ + 'type': 'tv', + 'id': series_id, + 'n_s': season_number, + 'n_ep': episode_number + }, {'_id': 0, 'path': 1}) + + if episode and 'path' in episode: + return jsonify({'path': episode['path']}), 200 + else: + return jsonify({'error': 'Episode not found'}), 404 + + except Exception as e: + logging.error(f"Error fetching episode path: {str(e)}") + return jsonify({'error': 'Failed to fetch episode path'}), 500 + + + + +if __name__ == '__main__': + ensure_collections_exist(db) + app.run(debug=True, port=1234, threaded=True) diff --git a/setup.py b/setup.py deleted file mode 100644 index 7029c54..0000000 --- a/setup.py +++ /dev/null @@ -1,33 +0,0 @@ -from setuptools import setup - - -def read_readme(): - with open("README.md", "r", encoding="utf-8") as fh: - return fh.read() - -with open("requirements.txt", "r", encoding="utf-8-sig") as f: - required_packages = f.read().splitlines() - print(required_packages) - -setup( - name="StreamingCommunity", - version="1.9.1", - long_description=read_readme(), - long_description_content_type="text/markdown", - author="Lovi-0", - url="https://github.com/Lovi-0/StreamingCommunity", - packages=["StreamingCommunity"], - install_requires=required_packages, - python_requires='>=3.8', - entry_points={ - "console_scripts": [ - "streamingcommunity=StreamingCommunity.run:main", - ], - }, - include_package_data=True, - keywords="streaming community", - project_urls={ - "Bug Reports": "https://github.com/Lovi-0/StreamingCommunity/issues", - "Source": "https://github.com/Lovi-0/StreamingCommunity", - } -) diff --git a/test_run.py b/test_run.py deleted file mode 100644 index 74806a1..0000000 --- a/test_run.py +++ /dev/null @@ -1,5 +0,0 @@ -# 26.11.24 - -from StreamingCommunity.run import main - -main() \ No newline at end of file diff --git a/unix_install.sh b/unix_install.sh deleted file mode 100644 index 8382b51..0000000 --- a/unix_install.sh +++ /dev/null @@ -1,200 +0,0 @@ -#!/bin/sh - -# Function to check if a command exists -command_exists() { - command -v "$1" > /dev/null 2>&1 -} - -# Install on Debian/Ubuntu-based systems -install_on_debian() { - echo "Installing $1..." - sudo apt update - sudo apt install -y "$1" -} - -# Install on Red Hat/CentOS/Fedora-based systems -install_on_redhat() { - echo "Installing $1..." - sudo yum install -y "$1" -} - -# Install on Arch-based systems -install_on_arch() { - echo "Installing $1..." - sudo pacman -Sy --noconfirm "$1" -} - -# Install on BSD-based systems -install_on_bsd() { - echo "Installing $1..." - env ASSUME_ALWAYS_YES=yes sudo pkg install -y "$1" -} - -# Install on macOS -install_on_macos() { - echo "Installing $1..." - if command_exists brew; then - brew install "$1" - else - echo "Homebrew is not installed. Installing Homebrew first..." - /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)" - brew install "$1" - fi -} - -set -e - - -# Check and install Python3 -# if command_exists python3 > /dev/null 2>&1; then -# echo "Checking Python..." -# else -# # Detect the platform and install Python3 accordingly -# if [[ "$OSTYPE" == "linux-gnu"* ]]; then -# # Detect the package manager -# if command_exists apt; then -# install_on_debian "python3" -# elif command_exists yum; then -# install_on_redhat "python3" -# elif command_exists pacman; then -# install_on_arch "python-pip" -# else -# echo "Unsupported Linux distribution." -# exit 1 -# fi -# elif [[ "$OSTYPE" == "bsd"* ]]; then -# echo "Detected BSD-based system." -# install_on_bsd "python39" -# elif [[ "$OSTYPE" == "darwin"* ]]; then -# install_on_macos "python" -# else -# echo "Unsupported operating system." -# exit 1 -# fi -# fi - -# Get the Python version -PYTHON_VERSION=$(python3 -c 'import sys; print(".".join(map(str, sys.version_info[:3])))') - -# Compare the Python version with 3.8 -REQUIRED_VERSION="3.8" - -if [ "$(echo -e "$PYTHON_VERSION\n$REQUIRED_VERSION" | sort -V | head -n1)" = "$REQUIRED_VERSION" ]; then - echo "Python version $PYTHON_VERSION is >= $REQUIRED_VERSION. Continuing..." -else - echo "ERROR: Python version $PYTHON_VERSION is < $REQUIRED_VERSION. Exiting..." - exit 1 -fi - -if [ -d ".venv/" ]; then - echo ".venv exists. Installing requirements.txt..." - .venv/bin/pip install -r requirements.txt -else - echo "Making .venv and installing requirements.txt..." - - if [ "$(uname)" = "Linux" ]; then - # Detect the package manager for venv installation check. - if command_exists apt; then - echo "Detected Debian-based system. Checking python3-venv." - if dpkg -l | grep -q "python3-venv"; then - echo "python3-venv found." - else - echo "python3-venv not found, installing..." - install_on_debian "python3-venv" - fi - fi - fi - - python3 -m venv .venv - .venv/bin/pip install -r requirements.txt - -fi - -if command_exists ffmpeg; then - echo "ffmpeg exists." -else - echo "ffmpeg does not exist." - - # Detect the platform and install ffmpeg accordingly. - case "$(uname)" in - Linux) - if command_exists apt; then - echo "Detected Debian-based system." - install_on_debian "ffmpeg" - elif command_exists yum; then - echo "Detected Red Hat-based system." - echo "Installing needed repos for ffmpeg..." - sudo yum config-manager --set-enabled crb > /dev/null 2>&1 || true - sudo yum install -y https://dl.fedoraproject.org/pub/epel/epel-release-latest-$(rpm -E %rhel).noarch.rpm https://dl.fedoraproject.org/pub/epel/epel-next-release-latest-$(rpm -E %rhel).noarch.rpm > /dev/null 2>&1 || true - sudo yum install -y --nogpgcheck https://mirrors.rpmfusion.org/free/el/rpmfusion-free-release-$(rpm -E %rhel).noarch.rpm https://mirrors.rpmfusion.org/nonfree/el/rpmfusion-nonfree-release-$(rpm -E %rhel).noarch.rpm > /dev/null 2>&1 || true - install_on_redhat "ffmpeg" - elif command_exists pacman; then - echo "Detected Arch-based system." - install_on_arch "ffmpeg" - else - echo "Unsupported Linux distribution." - exit 1 - fi - ;; - FreeBSD|NetBSD|OpenBSD) - echo "Detected BSD-based system." - install_on_bsd "ffmpeg" - ;; - Darwin) - echo "Detected macOS." - install_on_macos "ffmpeg" - ;; - *) - echo "Unsupported operating system." - exit 1 - ;; - esac -fi - -if command_exists openssl || .venv/bin/pip list | grep -q pycryptodome; then - echo "openssl or pycryptodome exists." -else - echo "Please choose an option:" - echo "1) openssl" - echo "2) pycryptodome" - read -p "Enter your choice (1): " choice - - case "$choice" in - 2) - echo "Installing pycryptodome." - .venv/bin/pip install pycryptodome - ;; - *) - # Detect the platform and install OpenSSL accordingly. - case "$(uname)" in - Linux) - if command_exists apt; then - install_on_debian openssl - elif command_exists yum; then - install_on_redhat openssl - elif command_exists pacman; then - install_on_arch openssl - else - echo "Unsupported Linux distribution." - exit 1 - fi - ;; - FreeBSD|NetBSD|OpenBSD) - install_on_bsd openssl - ;; - Darwin) - install_on_macos openssl - ;; - *) - echo "Unsupported operating system." - exit 1 - ;; - esac - ;; - esac -fi - -sed -i.bak '1s|.*|#!.venv/bin/python3|' test_run.py -sudo chmod +x test_run.py -echo 'Everything is installed!' -echo 'Run StreamingCommunity with "./test_run.py"' diff --git a/update.py b/update.py deleted file mode 100644 index 1cb533a..0000000 --- a/update.py +++ /dev/null @@ -1,195 +0,0 @@ -# 15.06.24 - -import os -import shutil -from io import BytesIO -from zipfile import ZipFile -from datetime import datetime - - -# External library -import httpx -from rich.console import Console -from rich.prompt import Prompt -from rich.panel import Panel -from rich.table import Table - - -# Variable -max_timeout = 20 -console = Console() -local_path = os.path.join(".") -from StreamingCommunity.Upload.version import __author__, __title__ - - -def move_content(source: str, destination: str): - """ - Move all content from the source folder to the destination folder. - - Parameters: - - source (str): The path to the source folder. - - destination (str): The path to the destination folder. - """ - os.makedirs(destination, exist_ok=True) - - # Iterate through all elements in the source folder - for element in os.listdir(source): - source_path = os.path.join(source, element) - destination_path = os.path.join(destination, element) - - # If it's a directory, recursively call the function - if os.path.isdir(source_path): - move_content(source_path, destination_path) - else: - shutil.move(source_path, destination_path) - - -def keep_specific_items(directory: str, keep_folder: str, keep_file: str): - """ - Delete all items in the directory except for the specified folder and file. - - Parameters: - - directory (str): The path to the directory. - - keep_folder (str): The name of the folder to keep. - - keep_file (str): The name of the file to keep. - """ - try: - if not os.path.exists(directory) or not os.path.isdir(directory): - raise ValueError(f"Error: '{directory}' is not a valid directory.") - - # Iterate through items in the directory - for item in os.listdir(directory): - item_path = os.path.join(directory, item) - - # Check if the item is the specified folder or file - if os.path.isdir(item_path) and item != keep_folder: - shutil.rmtree(item_path) - - elif os.path.isfile(item_path) and item != keep_file: - os.remove(item_path) - - except PermissionError as pe: - console.print(f"[red]PermissionError: {pe}. Check permissions and try again.") - - except Exception as e: - console.print(f"[red]Error: {e}") - - -def print_commit_info(commit_info: dict): - """ - Print detailed information about the commit in a formatted table. - - Parameters: - - commit_info (dict): The commit information from GitHub API - """ - - # Create a table for commit information - table = Table(title=f"[bold green]Latest Commit Information - {__title__}", show_header=False) - table.add_column("Field", style="cyan") - table.add_column("Value", style="yellow") - - # Basic commit info - commit = commit_info['commit'] - commit_date = datetime.strptime(commit['author']['date'], "%Y-%m-%dT%H:%M:%SZ") - formatted_date = commit_date.strftime("%Y-%m-%d %H:%M:%S") - - # Add rows to the table - table.add_row("Repository", f"{__author__}/{__title__}") - table.add_row("Commit SHA", commit_info['sha'][:8]) - table.add_row("Author", f"{commit['author']['name']} <{commit['author']['email']}>") - table.add_row("Date", formatted_date) - table.add_row("Committer", f"{commit['committer']['name']} <{commit['committer']['email']}>") - table.add_row("Message", commit['message']) - - # Add stats if available - if 'stats' in commit_info: - stats = commit_info['stats'] - table.add_row("Changes", f"+{stats['additions']} -[red]{stats['deletions']}[/red] ({stats['total']} total)") - - # Add URL info - table.add_row("HTML URL", commit_info['html_url']) - - # Print the table in a panel - console.print(Panel.fit(table)) - -def download_and_extract_latest_commit(): - """ - Download and extract the latest commit from a GitHub repository. - """ - try: - - # Get the latest commit information using GitHub API - api_url = f'https://api.github.com/repos/{__author__}/{__title__}/commits?per_page=1' - console.log("[green]Requesting latest commit from GitHub repository...") - - headers = { - 'Accept': 'application/vnd.github.v3+json', - 'User-Agent': f'{__title__}-updater' - } - response = httpx.get(api_url, headers=headers, timeout=max_timeout) - - if response.status_code == 200: - commit_info = response.json()[0] - commit_sha = commit_info['sha'] - - # Print detailed commit information - print_commit_info(commit_info) - - zipball_url = f'https://github.com/{__author__}/{__title__}/archive/{commit_sha}.zip' - console.log("[green]Downloading latest commit zip file...") - - # Download the zipball - response = httpx.get(zipball_url, follow_redirects=True, timeout=max_timeout) - temp_path = os.path.join(os.path.dirname(os.getcwd()), 'temp_extracted') - - # Extract the content of the zipball into a temporary folder - with ZipFile(BytesIO(response.content)) as zip_ref: - zip_ref.extractall(temp_path) - console.log("[green]Extracting files...") - - # Move files from the temporary folder to the current folder - for item in os.listdir(temp_path): - item_path = os.path.join(temp_path, item) - destination_path = os.path.join(local_path, item) - shutil.move(item_path, destination_path) - - # Remove the temporary folder - shutil.rmtree(temp_path) - - # Move all folder to main folder - new_folder_name = f"{__title__}-{commit_sha}" - move_content(new_folder_name, ".") - shutil.rmtree(new_folder_name) - - console.log("[cyan]Latest commit downloaded and extracted successfully.") - else: - console.log(f"[red]Failed to fetch commit information. Status code: {response.status_code}") - - except httpx.RequestError as e: - console.print(f"[red]Request failed: {e}") - - except Exception as e: - console.print(f"[red]An unexpected error occurred: {e}") - - -def main_upload(): - """ - Main function to upload the latest commit of a GitHub repository. - """ - cmd_insert = Prompt.ask( - "[bold red]Are you sure you want to delete all files? (Only 'Video' folder and 'update_version.py' will remain)", - choices=['y', 'n'], - default='y', - show_choices=True - ) - - if cmd_insert.lower().strip() == 'y' or cmd_insert.lower().strip() == 'yes': - console.print("[red]Deleting all files except 'Video' folder and 'update_version.py'...") - keep_specific_items(".", "Video", "upload.py") - download_and_extract_latest_commit() - else: - console.print("[red]Operation cancelled.") - - -if __name__ == "__main__": - main_upload() \ No newline at end of file diff --git a/win_install.bat b/win_install.bat deleted file mode 100644 index acc4d5a..0000000 --- a/win_install.bat +++ /dev/null @@ -1,134 +0,0 @@ -@echo off -:: Check if the script is running as administrator -net session >nul 2>&1 -if %errorlevel% neq 0 ( - echo Running as administrator... - :: Restart the script with administrator privileges - powershell -Command "Start-Process '%~f0' -Verb RunAs" - exit /b -) - -chcp 65001 > nul -SETLOCAL ENABLEDELAYEDEXPANSION - -echo Script starting... - -:: Check if Chocolatey is already installed -:check_choco -echo Checking if Chocolatey is installed... -choco --version >nul 2>&1 -IF %ERRORLEVEL% EQU 0 ( - echo Chocolatey is already installed. Skipping installation. - goto install_python -) ELSE ( - echo Installing Chocolatey... - @"%SystemRoot%\System32\WindowsPowerShell\v1.0\powershell.exe" -NoProfile -InputFormat None -ExecutionPolicy Bypass -Command "iex ((New-Object System.Net.WebClient).DownloadString('https://chocolatey.org/install.ps1'))" || ( - echo Error during Chocolatey installation. - exit /b 1 - ) - echo Chocolatey installed successfully. - call choco --version - echo. -) - -:: Check if Python is already installed -:install_python -echo Checking if Python is installed... -python -V >nul 2>&1 -IF %ERRORLEVEL% EQU 0 ( - echo Python is already installed. Skipping installation. - goto install_openssl -) ELSE ( - echo Installing Python... - choco install python --confirm --params="'/NoStore'" --allow-downgrade || ( - echo Error during Python installation. - exit /b 1 - ) - echo Python installed successfully. - call python -V - echo. -) - -:: Ask to restart the terminal -echo Please restart the terminal to continue... -pause -exit /b - -:: Check if OpenSSL is already installed -:install_openssl -echo Checking if OpenSSL is installed... -openssl version -a >nul 2>&1 -IF %ERRORLEVEL% EQU 0 ( - echo OpenSSL is already installed. Skipping installation. - goto install_ffmpeg -) ELSE ( - echo Installing OpenSSL... - choco install openssl --confirm || ( - echo Error during OpenSSL installation. - exit /b 1 - ) - echo OpenSSL installed successfully. - call openssl version -a - echo. -) - -:: Check if FFmpeg is already installed -:install_ffmpeg -echo Checking if FFmpeg is installed... -ffmpeg -version >nul 2>&1 -IF %ERRORLEVEL% EQU 0 ( - echo FFmpeg is already installed. Skipping installation. - goto create_venv -) ELSE ( - echo Installing FFmpeg... - choco install ffmpeg --confirm || ( - echo Error during FFmpeg installation. - exit /b 1 - ) - echo FFmpeg installed successfully. - call ffmpeg -version - echo. -) - -:: Verify installations -:verifica_installazioni -echo Verifying installations... -call choco --version -call python -V -call openssl version -a -call ffmpeg -version - -echo All programs have been successfully installed and verified. - -:: Create a virtual environment .venv -:create_venv -echo Checking if the .venv virtual environment already exists... -if exist .venv ( - echo The .venv virtual environment already exists. Skipping creation. -) ELSE ( - echo Creating the .venv virtual environment... - python -m venv .venv || ( - echo Error during virtual environment creation. - exit /b 1 - ) - echo Virtual environment created successfully. -) - -:: Activate the virtual environment and install requirements -echo Installing requirements... -call .venv\Scripts\activate.bat -pip install -r requirements.txt || ( - echo Error during requirements installation. - exit /b 1 -) - -:: Run run.py -echo Running test_run.py... -call .venv\Scripts\python .\test_run.py || ( - echo Error during run.py execution. - exit /b 1 -) - -echo End of script. - -ENDLOCAL

4cYLtq(e#;2jz%Kv#V)(WuHodWtm!f{6wFPUSD+3RTLEN%Z* zg1quhg_gY>@(L01SF#g{>eM92x;mqy%)BtZ5fBGX!-T9|==nlTP=%F1!-Sh&T;08CgErSXq( z6s7nX0S6Tu)6{jU&Z2^?nG!Ds-0W7CxY{0N3|>k4CS5hQViN(T7x*~IL^{nL~U zFNS2oREA1zltC za9&XFvSysG>*2H~8|1mc4HPFgNLW%ChmhD6L{uX=utZ!muE83CYZ$BL%7igm_g-)c z0ftMoYrq(y5n)CyBCRN~(tBlWbdo0!;;y>mly3m`>OTtDPlHS(EqprqrvkB~shYff z7bXP<|1YIyt@iq!zhFVj;lG7YZSA@1(f*|9!P^MnqtF!jPZXjyu;!_aK$$srNi>p$ z=(hU*EXpUAhU}zHs_7Q3q}DOV96h5zQDM>&cdvSn`=H&QF;=fWO6=jEv!HU#q;ioR z=7spqXtkA9`WA1cLX~eHFlK6M>7>K&Jem~TlvSL0hG@hyBMyQ>!RA)s7C5)gz@J0u zncaD}stJw4_?I|vtL$u#t(LTIrnk>twb!|at?$F@GF@sqdGaKkI;<1c8-UO0j_v#N zaf6+B;_0U!t0!F*yB+LRdh@X_!iVzBRV#nJK635P-MZjhJD-rR zN#FHlwAyj&F=;q;_IZ6RDY88SOT!1;VKk`3^%(3MsaTYd)@)FcC-}c{^wm&b4|RWu zRMly3VSB5R;If&cr1nAn2Fk}e0LNW8p@y2ne`6I5LCSC$og)G&lx=Tu6JDdFA|cf7 z#s51oP5lvLptdhXQ#qF-;)m<{`T9L$E$_6?g;V$^EJ3@asI{`xu)d;Cg(k`?5cw}spXHCM9Ck3O s-Nz?clFwd84Nb^>vr;mk>h1dbp;^nM{mA@5=}={|HmohzPSh^_FV@BN?f?J) literal 0 HcmV?d00001 diff --git a/StreamingCommunity/Lib/M3U8/__pycache__/url_fixer.cpython-312.pyc b/StreamingCommunity/Lib/M3U8/__pycache__/url_fixer.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..fae26aa4f86896a3ad302760ec676b516c48df37 GIT binary patch literal 2096 zcmbVN&2Jk;6rcU@2Z_@(ahs2}fl<{ebrswIjTA!FODYni#!Z?ABxAJN?2esv*SqfQ zY-ub|kd%zJNk-uLhM zyS~021naXK^QEui2)*P?wA41yngn7SnaGrEl;@{xOBFdUSCqUWAsNjfQ`tnO`a}+2 zX9G;RN1v0Bm6GhV{N8&6Nqg@P+l@oUN)1aOcYZwrJ`!8 zo3Xsw#m6?)e9VmVd!oR70{A!>eJ$u+cxPo=TcP&*)}vgYfWaV63G=CAw7nDNIIY01 zH7JbMr8?5Y1>ZoCT>G{Mx7P=b#Vp;nYQ)33gS!l1ceP9mhCj8~8fI$*SE>8ZGKq<+ zw!Us#9>XhlZ)bZtsup#sR|q52o9W27l{Yasim!N#PGGmnEZ5QP%nZHK3%T!&;k+H(6+kOE~|p@b} zEO@19wKH8A%SO^9_a+6~=csuKUA(-d{+JwX0gwJ;ogQ>TUnWeXiJSZX1!$-J1SRcu zz&Xk>L%H+qe9}`u2Pu!RPTFfD-BEYn4DffI$j7jVoSqgMcm^r)T%Q``NFF#AMZdlP zVjI;_8P4O&lv$A%dHQmk@>;Ya|dDL;`yRzhDO#@j-ylXXVlZpd}H%!_tx?Ev=S zMof{TS33ygJkDcl2YsV%D6Bsc*Oj^yO^ywrMz*1xM!@93JKy4VYX`oYE@@zly_1lM*HBP zY5rMS%yhHU@fw&6l05Mt#ogeP#|ON?P6(5M$Wbl&qBhnQP4;is=it5P!v>>b1f@l_%1sfpFS9$e)jsijpX@e91UMR z9GW~BnrxhX>uI_%HGepD=V0niT)#&FPe;J@9qAeWO50DerB{|5@l5Z2L&)5Ybck zlSN_^_z~*m zDxorG;Si(WwpO#EHlm!OaG}|Y+%_LHVIh(?!WeGSOCaMj!5fCHsYsI4iX*B2IlB6L Nd_o%e4Z$WJ{t3Gg5Jvz2 literal 0 HcmV?d00001 diff --git a/StreamingCommunity/Lib/M3U8/__pycache__/url_fixer.cpython-39.pyc b/StreamingCommunity/Lib/M3U8/__pycache__/url_fixer.cpython-39.pyc new file mode 100644 index 0000000000000000000000000000000000000000..6d83db91f8554f0a6da75004130eefbf34870188 GIT binary patch literal 1735 zcmbVMO>f&a7$zy%RupGTyP@j_4B&AdTKBNaU=&4x6io+o#?Uku&4WNow8M;&T#{-V z!$EJuG0ukzF$M)HSM_U?Jc!gr95%MR?-$J@+ z-{iswCdHC#%5vI*r^WP`Cx*Td=7^djP8X_pE>fP-g=8mEXhRR5JRXJ()OSp=j2o`> zs9Cd7Zc|8-exZ%JMT>tAvr8JtFf{u%v4;!@c1+Mx4 z7S|bEkjmFw&Qu2~yg+IjUVpN^(d1A=8k4778b~_(X?bD5?OcOpmfq;jok5_i(5s#-=5yez>TsnB zrL6F)u1=14#;b15jVzMNUodl|JlGm^l>PIl521@ba{tM+(Nqi}tH2V!9@#YP=zSqx zs}qgu6Q2Q`{s21E4{?Zz7kW3nkSsrM6*>IdR|7mA^sI4n_({ca6~=K^q@}duejGn5 zncVDnK(pEbcx8jAPi*(j9d2YTqO6pyf3y{PfUj@uZn-rmdly!m8>E;HUEz)^$BH|1 U6<`(IU1xO9lBX?vfOoyW0DgMHk^lez literal 0 HcmV?d00001 diff --git a/StreamingCommunity/Lib/TMBD/__init__.py b/StreamingCommunity/Lib/TMBD/__init__.py deleted file mode 100644 index c73b5f1..0000000 --- a/StreamingCommunity/Lib/TMBD/__init__.py +++ /dev/null @@ -1,2 +0,0 @@ -from .tmdb import tmdb -from .obj_tmbd import Json_film \ No newline at end of file diff --git a/StreamingCommunity/Lib/TMBD/obj_tmbd.py b/StreamingCommunity/Lib/TMBD/obj_tmbd.py deleted file mode 100644 index bf9467c..0000000 --- a/StreamingCommunity/Lib/TMBD/obj_tmbd.py +++ /dev/null @@ -1,39 +0,0 @@ -# 17.09.24 - -from typing import Dict - - -class Json_film: - def __init__(self, data: Dict): - self.adult = data.get('adult', False) - self.backdrop_path = data.get('backdrop_path') - self.budget = data.get('budget', 0) - self.homepage = data.get('homepage') - self.id = data.get('id', 0) - self.imdb_id = data.get('imdb_id') - self.origin_country = data.get('origin_country', []) - self.original_language = data.get('original_language') - self.original_title = data.get('original_title') - self.overview = data.get('overview') - self.popularity = data.get('popularity', 0.0) - self.poster_path = data.get('poster_path') - self.release_date = data.get('release_date') - self.revenue = data.get('revenue', 0) - self.runtime = data.get('runtime', 0) - self.status = data.get('status') - self.tagline = data.get('tagline') - self.title = data.get('title') - self.video = data.get('video', False) - self.vote_average = data.get('vote_average', 0.0) - self.vote_count = data.get('vote_count', 0) - - def __repr__(self): - return (f"Film(adult={self.adult}, backdrop_path='{self.backdrop_path}', " - f"budget={self.budget}, " - f"homepage='{self.homepage}', id={self.id}, " - f"imdb_id='{self.imdb_id}', origin_country={self.origin_country}, " - f"original_language='{self.original_language}', original_title='{self.original_title}', " - f"overview='{self.overview}', popularity={self.popularity}, poster_path='{self.poster_path}', " - f"release_date='{self.release_date}', revenue={self.revenue}, runtime={self.runtime}, " - f"status='{self.status}', tagline='{self.tagline}', " - f"title='{self.title}', video={self.video}, vote_average={self.vote_average}, vote_count={self.vote_count})") diff --git a/StreamingCommunity/Lib/TMBD/tmdb.py b/StreamingCommunity/Lib/TMBD/tmdb.py deleted file mode 100644 index 271bcc3..0000000 --- a/StreamingCommunity/Lib/TMBD/tmdb.py +++ /dev/null @@ -1,346 +0,0 @@ -# 24.08.24 - -import sys -from typing import Dict - - -# External libraries -import httpx -from rich.console import Console - - -# Internal utilities -from .obj_tmbd import Json_film -from StreamingCommunity.Util.table import TVShowManager - - -# Variable -table_show_manager = TVShowManager() -api_key = "a800ed6c93274fb857ea61bd9e7256c5" - - - -def get_select_title(table_show_manager, generic_obj): - """ - Display a selection of titles and prompt the user to choose one. - - Returns: - dict: The selected media item. - """ - - # Set up table for displaying titles - table_show_manager.set_slice_end(10) - - # Check if the generic_obj list is empty - if not generic_obj: - Console.print("\n[red]No media items available.") - return None - - # Example of available colors for columns - available_colors = ['red', 'magenta', 'yellow', 'cyan', 'green', 'blue', 'white'] - - # Retrieve the keys of the first item as column headers - first_item = generic_obj[0] - column_info = {"Index": {'color': available_colors[0]}} # Always include Index with a fixed color - - # Assign colors to the remaining keys dynamically - color_index = 1 - for key in first_item.keys(): - if key in ('name', 'date', 'number'): # Custom prioritization of colors - if key == 'name': - column_info["Name"] = {'color': 'magenta'} - elif key == 'date': - column_info["Date"] = {'color': 'cyan'} - elif key == 'number': - column_info["Number"] = {'color': 'yellow'} - - else: - column_info[key.capitalize()] = {'color': available_colors[color_index % len(available_colors)]} - color_index += 1 - - table_show_manager.add_column(column_info) - - # Populate the table with title information - for i, item in enumerate(generic_obj): - item_dict = {'Index': str(i)} - - for key in item.keys(): - # Ensure all values are strings for rich add table - item_dict[key.capitalize()] = str(item[key]) - - table_show_manager.add_tv_show(item_dict) - - # Run the table and handle user input - last_command = table_show_manager.run(force_int_input=True, max_int_input=len(generic_obj)) - table_show_manager.clear() - - # Handle user's quit command - if last_command == "q": - Console.print("\n[red]Quit [white]...") - sys.exit(0) - - # Check if the selected index is within range - if 0 <= int(last_command) < len(generic_obj): - return generic_obj[int(last_command)] - - else: - Console.print("\n[red]Wrong index") - sys.exit(0) - - -class TheMovieDB: - def __init__(self, api_key): - """ - Initialize the class with the API key. - - Parameters: - - api_key (str): The API key for authenticating requests to TheMovieDB. - """ - self.api_key = api_key - self.base_url = "https://api.themoviedb.org/3" - self.console = Console() - #self.genres = self._fetch_genres() - - def _make_request(self, endpoint, params=None): - """ - Make a request to the given API endpoint with optional parameters. - - Parameters: - - endpoint (str): The API endpoint to hit. - - params (dict): Additional parameters for the request. - - Returns: - dict: JSON response as a dictionary. - """ - if params is None: - params = {} - - params['api_key'] = self.api_key - url = f"{self.base_url}/{endpoint}" - response = httpx.get(url, params=params) - response.raise_for_status() - - return response.json() - - def _fetch_genres(self) -> Dict[int, str]: - """ - Fetch and return the genre names from TheMovieDB. - - Returns: - Dict[int, str]: A dictionary mapping genre IDs to genre names. - """ - genres = self._make_request("genre/movie/list") - return {genre['id']: genre['name'] for genre in genres.get('genres', [])} - - def _process_and_add_tv_shows(self, data, columns): - """ - Process TV show data and add it to the TV show manager. - - Parameters: - - data (list): List of dictionaries containing the data to process. - - columns (list): A list of tuples, where each tuple contains the column name and the key to fetch the data from the dictionary. - """ - # Define column styles with colors - tv_show_manager = TVShowManager() - column_info = { - col[0]: {'color': col[2] if len(col) > 2 else 'white'} - for col in columns - } - tv_show_manager.add_column(column_info) - - # Add each item to the TV show manager, including rank - for index, item in enumerate(data): - - # Convert genre IDs to genre names - genre_names = [self.genres.get(genre_id, 'Unknown') for genre_id in item.get('genre_ids', [])] - tv_show = { - col[0]: str(item.get(col[1], 'N/A')) if col[1] != 'genre_ids' else ', '.join(genre_names) - for col in columns - } - - tv_show_manager.add_tv_show(tv_show) - - # Display the processed TV show data - tv_show_manager.display_data(tv_show_manager.tv_shows[tv_show_manager.slice_start:tv_show_manager.slice_end]) - - def _display_with_title(self, title: str, data, columns): - """ - Display data with a title. - - Parameters: - - title (str): The title to display. - - data (list): List of dictionaries containing the data to process. - - columns (list): A list of tuples, where each tuple contains the column name and the key to fetch the data from the dictionary. - """ - self.console.print(f"\n{title}", style="bold underline") - self._process_and_add_tv_shows(data, columns) - - def display_trending_tv_shows(self): - """ - Fetch and display the trending TV shows of the week. - """ - data = self._make_request("trending/tv/week").get("results", []) - columns = [ - ("Title", "name", 'cyan'), - ("First Air Date", "first_air_date", 'green'), - ("Popularity", "popularity", 'magenta'), - ("Genres", "genre_ids", 'blue'), - ("Origin Country", "origin_country", 'red'), - ("Vote Average", "vote_average", 'yellow') - ] - self._display_with_title("Trending TV Shows of the Week", data, columns) - - def display_trending_films(self): - """ - Fetch and display the trending films of the week. - """ - data = self._make_request("trending/movie/week").get("results", []) - columns = [ - ("Title", "title", 'cyan'), - ("Release Date", "release_date", 'green'), - ("Popularity", "popularity", 'magenta'), - ("Genres", "genre_ids", 'blue'), - ("Vote Average", "vote_average", 'yellow') - ] - self._display_with_title("Trending Films of the Week", data, columns) - - def search_movie(self, movie_name: str): - """ - Search for a movie by name and return its TMDB ID. - - Parameters: - - movie_name (str): The name of the movie to search for. - - Returns: - int: The TMDB ID of the selected movie. - """ - generic_obj = [] - data = self._make_request("search/movie", {"query": movie_name}).get("results", []) - if not data: - self.console.print("No movies found with that name.", style="red") - return None - - self.console.print("\nSelect a Movie:") - for i, movie in enumerate(data, start=1): - generic_obj.append({ - 'name': movie['title'], - 'date': movie.get('release_date', 'N/A'), - 'id': movie['id'] - }) - - choice = get_select_title(table_show_manager, generic_obj) - return choice["id"] - - def get_movie_details(self, tmdb_id: int) -> Json_film: - """ - Fetch and display details for a specific movie using its TMDB ID. - - Parameters: - - tmdb_id (int): The TMDB ID of the movie. - - Returns: - - Json_film: The movie details as a class. - """ - movie = self._make_request(f"movie/{tmdb_id}") - if not movie: - self.console.print("Movie not found.", style="red") - return None - - return Json_film(movie) - - def search_tv_show(self, tv_name: str): - """ - Search for a TV show by name and return its TMDB ID. - - Parameters: - - tv_name (str): The name of the TV show to search for. - - Returns: - int: The TMDB ID of the selected TV show. - """ - data = self._make_request("search/tv", {"query": tv_name}).get("results", []) - if not data: - self.console.print("No TV shows found with that name.", style="red") - return None - - self.console.print("\nSelect a TV Show:") - for i, show in enumerate(data, start=1): - self.console.print(f"{i}. {show['name']} (First Air Date: {show.get('first_air_date', 'N/A')})") - - choice = int(input("Enter the number of the show you want: ")) - 1 - selected_show = data[choice] - return selected_show["id"] # Return the TMDB ID of the selected TV show - - def get_seasons(self, tv_show_id: int): - """ - Get seasons for a given TV show. - - Parameters: - - tv_show_id (int): The TMDB ID of the TV show. - - Returns: - int: The season number selected by the user. - """ - data = self._make_request(f"tv/{tv_show_id}").get("seasons", []) - if not data: - self.console.print("No seasons found for this TV show.", style="red") - return None - - self.console.print("\nSelect a Season:") - for i, season in enumerate(data, start=1): - self.console.print(f"{i}. {season['name']} (Episodes: {season['episode_count']})") - - choice = int(input("Enter the number of the season you want: ")) - 1 - return data[choice]["season_number"] - - def get_episodes(self, tv_show_id: int, season_number: int): - """ - Get episodes for a given season of a TV show. - - Parameters: - - tv_show_id (int): The TMDB ID of the TV show. - - season_number (int): The season number. - - Returns: - dict: The details of the selected episode. - """ - data = self._make_request(f"tv/{tv_show_id}/season/{season_number}").get("episodes", []) - if not data: - self.console.print("No episodes found for this season.", style="red") - return None - - self.console.print("\nSelect an Episode:") - for i, episode in enumerate(data, start=1): - self.console.print(f"{i}. {episode['name']} (Air Date: {episode.get('air_date', 'N/A')})") - - choice = int(input("Enter the number of the episode you want: ")) - 1 - return data[choice] - - - -# Output -tmdb = TheMovieDB(api_key) - - -""" -Example: - - -@ movie -movie_name = "Interstellar" -movie_id = tmdb.search_movie(movie_name) - -if movie_id: - movie_details = tmdb.get_movie_details(tmdb_id=movie_id) - print(movie_details) - - -@ series -tv_name = "Game of Thrones" -tv_show_id = tmdb.search_tv_show(tv_name) -if tv_show_id: - season_number = tmdb.get_seasons(tv_show_id=tv_show_id) - if season_number: - episode = tmdb.get_episodes(tv_show_id=tv_show_id, season_number=season_number) - print(episode) -""" \ No newline at end of file diff --git a/StreamingCommunity/Upload/update.py b/StreamingCommunity/Upload/update.py deleted file mode 100644 index d84ce56..0000000 --- a/StreamingCommunity/Upload/update.py +++ /dev/null @@ -1,68 +0,0 @@ -# 01.03.2023 - -import os -import sys -import time - - -# Internal utilities -from .version import __version__, __author__, __title__ -from StreamingCommunity.Util.console import console - - -# External library -import httpx - - -# Variable -if getattr(sys, 'frozen', False): # Modalità PyInstaller - base_path = os.path.join(sys._MEIPASS, "StreamingCommunity") -else: - base_path = os.path.dirname(__file__) - - -def update(): - """ - Check for updates on GitHub and display relevant information. - """ - - console.print("[green]Checking GitHub version [white]...") - - # Make the GitHub API requests and handle potential errors - try: - response_reposity = httpx.get(f"https://api.github.com/repos/{__author__}/{__title__}").json() - response_releases = httpx.get(f"https://api.github.com/repos/{__author__}/{__title__}/releases").json() - - except Exception as e: - console.print(f"[red]Error accessing GitHub API: {e}") - return - - # Get stargazers count from the repository - stargazers_count = response_reposity.get('stargazers_count', 0) - - # Calculate total download count from all releases - total_download_count = sum(asset['download_count'] for release in response_releases for asset in release.get('assets', [])) - - # Get latest version name - if response_releases: - last_version = response_releases[0].get('name', 'Unknown') - else: - last_version = 'Unknown' - - # Calculate percentual of stars based on download count - if total_download_count > 0 and stargazers_count > 0: - percentual_stars = round(stargazers_count / total_download_count * 100, 2) - else: - percentual_stars = 0 - - # Check installed version - if __version__ != last_version: - console.print(f"[red]New version available: [yellow]{last_version}") - else: - console.print(f"[red]Everything is up to date") - - console.print("\n") - console.print(f"[red]{__title__} has been downloaded [yellow]{total_download_count} [red]times, but only [yellow]{percentual_stars}% [red]of users have starred it.\n\ - [cyan]Help the repository grow today by leaving a [yellow]star [cyan]and [yellow]sharing [cyan]it with others online!") - - time.sleep(3) diff --git a/StreamingCommunity/Upload/version.py b/StreamingCommunity/Upload/version.py deleted file mode 100644 index 54a54d2..0000000 --- a/StreamingCommunity/Upload/version.py +++ /dev/null @@ -1,5 +0,0 @@ -__title__ = 'StreamingCommunity' -__version__ = '1.9.0' -__author__ = 'Lovi-0' -__description__ = 'A command-line program to download film' -__copyright__ = 'Copyright 2024' diff --git a/StreamingCommunity/Util/__pycache__/_jsonConfig.cpython-312.pyc b/StreamingCommunity/Util/__pycache__/_jsonConfig.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..c0181fde1be0c30fbc2340397db1b0a2f37d3eac GIT binary patch literal 9627 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 jj|u2g-%uod#Y&a!`C!k_iH9hT9 literal 0 HcmV?d00001 diff --git a/StreamingCommunity/Util/__pycache__/_jsonConfig.cpython-39.pyc b/StreamingCommunity/Util/__pycache__/_jsonConfig.cpython-39.pyc new file mode 100644 index 0000000000000000000000000000000000000000..0fcc86067c1b44d6c1b85300131cbf87ce3160e2 GIT binary patch literal 7002 zcmds6&2JmW6`$D;lAwV)E9@}VtIBt7&L2atNpp+NtI_SC;&uLX+wSQKqh0|okfvrCH9hhrb(C3be^ z&6}^^yf^dSqdPHCWOzQg^zQQQ6O8?p3d4_y!WF#HbtE41c#GB2FRyW3Hfo0cnl%$& zqh+=2n%&OTa-6-xJkzrtGSAvDYI%|0V6}oMY>sU)j-GC^iv1Y9vc-y#m~RGaiS?cz zsRogTpBxHT@J4?}A{Y&eAzv1zXL#l#!?Qg5pF zWO+qz99)HrQhH>16J8mdW11`P9ROw0I|xcqQ^qxA$~y!~X^3*zI|9mtrj#|$w09Jg z1DY}^%o(Ps$GjO(4{GX^rX2T9fO1Gv@|f*O%<3E7H$gj`&HW|MLFtHR0Gd(tO&V8p-wao{W8ZTYcq)QWIMhOHKhPWD`PrP~%t$Y_2*qpGvcU?$G#NXau!*in8M zxUI^(^FBJHIXWuTou`ZFN|!iv!>V&lG~I4XIez5K4lQ!FIv8fLVoDN&B$w7FcEfF~ z2%um^qSe%OUotrkmM8Uv`K1pc%yQ{{5h*`dUb+@Gx@{4tXz3kaz1zLBbW=&;wo$bZ zw%c8-er->ZY%G1C{MJ&PAWu=LcGi+Yz3!t;y-veLG%c3P@f?q*Q=V+Ys(rQ!mwE6s zIB{kVwIapSyYnGxKI8E*#WuNzU0O9hXI~gwoHJ#vTAMaewzynTIm&s)hVkjib*}Q8 zg&yCcT^+jxMYEX2HcZZf$@46_aSkd*zuS0qzZUfu{88s^%6qwWLlrm2x7eq@TsM2> zW~ql!)~%kkI^pF%GUVT~@e1j9J-%5+-2rO5YrH>?jF;b>OgU+8dc-k3`V{g9y&{d! zU*SkkQ|Ez0R37f@77H#~Oig{p*RFH6ZgUo&)V+-N?Cm~oWBu#)$97OmzvtLFP@qMn z_~Z@Ydi#l9T&7wGf|kU2C*g82o=vxLSVo;z=z79)qHd!hqNv$zwbrWf`8^oDP()4; zDn~rPSq9k-?+4TvV^piv_|}S2ooIe;PP+H2%f4Fa-swVC8)2Xzpw&j$o_jC6=bt?{ zw_8T%q-aKSE0}OJ*LMA24y|xL=mX*LUm#2gzaO98b57|TumCr}BHVkztHu}Jc5#3J zn$YpGNjhnd!z-^kHC1YauNr`yJX;~P9 zU_Amt^ePf&SbWMX^D=*(m#iYUj3O`MMcF9xl6ldX|{!5X^N;tCG>P`hwrH=s>u~<#`4940t!?4G%0tkYNb zdWrRHs8Y^VIHyQo9M{1@oTd!h`zhA5+!`4w`p(F1iayB?_U+gidd}*3(4CXDr)fc+ z?+7iR+xG{xIqM97cTN-hyY4CRpo5KqN)V$%EKbXnyA~si>^J@4vA1WR@M>Jtz+)cJLHnmz=4^ayRv$FYunVOI zVtw#tpYT~o|3Qe4oT6lm60KUr4`~Tng_9#B=roJE3hM)CGPRMfP#Y3|`7I>Ln7(i8 z7(cP~YIdp))C#JD`tO20I*f#km-(dDm1Fo$8zpGX&MUIt2-o|!(L#@vYK2KXWDn&@ zOBV1(caZc9#c)AQDoFbV>`0V3%8ufLvVrnX6r^9_x|A1t;PSXOdt1# zbtep4xK~h@6#d8#aD@a7+#XS<<)fPP8*)dN#E|fjO}Bj`$O?+&`9!2htXSav-zi?g zO%T8G3=_p5+uEcp!F`3BZXq1Obch>UmLae$?@;d-U{(zEEq?0_bgzuy75_B2bM|Po2 z9M6gPzxs$bVa=%*1#i8W6!D>T?ZP{;b?u&rj}hX!dVL7O z6xeAwDe5B&+l9Nlu%Db42z6@wt0B;Lc=vsl=fwOU*>O(S(u)E(ttAC~dsVy9Cc|(~ z8P{l2%ild6ZDM&&wEvf(?fKdPbLHBLf;p`y#eC=5b|Ifw#Iis1RJ-+b=!vCb4Vf|8 zTGzG=nS%XiB&tR3Yy37v9aq^sE~hExxC+Y#?xdOKW?;CZG~(jwI^MHDXPX8EiV*?2 zj0ljq_Arb8yaw0R(5@@Yd+oqdBq+DRi5HO|JBtMAuZ{$1_ci|aO`)9Bb$yC|IWS-L zH{$z_){q(BCq1QOGUfZvQykYwsO=pj{6&SJ&ZzM}RTlada#WFZmx5_(GPj>HAO+fURY@j5u<%arUi9WXMv zhkrm_YD^alPJt8(tQ2_(-*|^9k+m3cKFE+Gi(MOUF*5O0IDu>xaZ^MoPa!I5AmqVT z5!66T-TV#Wp@=YABeBtoJK~FPK)UQT1UJ?VL>G^%oM-ERi!qQWYu)(RKx|QewM3DN zn2TS%MS-Y2LKT^pNOAG1oWwLAlbXOE%K3qZpw?nPjz;j(el)bdGaPtB94#*?Zm*+f z@+fjp1gqT)|@Bf^at2JpUsH$FaUL=0~+H7OS+(KNghlfDO^gyxJ+#$+Tp%q MIBAwYVOMkf{}R;tqyPW_ literal 0 HcmV?d00001 diff --git a/StreamingCommunity/Util/__pycache__/call_stack.cpython-312.pyc b/StreamingCommunity/Util/__pycache__/call_stack.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..bfd2ed324b851e73c4e815e0140a42e104dcf48d GIT binary patch literal 1779 zcmbVM&x<2P6t2#XPETjElFizi*(j7F2E*zocpDZ$TyYUr!JWMfSwl~EC8=zuJ5*IW z277Q09-!{lRn3+M>eal<}edFVWRC(fV0*>3>8oa~qL1sI9@zM|xC>jHu{p4~tnY4SoHv zfFkWSYUS)7KxPv|`Hj_rAv3){Je52)y4mk67B9NYUrC@`^| zzH-?%6~=C#a@-AlN6^5>)aN7Oh<^mMeHSw#LgoV=_9z!P=wg?uXdB4z*A(hOpD>c- zI@=s$C-8v^gg#BlUglTasjuo$C8R8&Qkio{fy>fm>K**fdJ1WgNjB>D6kIp(yx>5t z?ve2dl03EkSZfFGf}p-VB(gjyZl=)o8G|$~@La<1N|Z|(C>XFY9@(IN8qXa@ zM{qXhIHkI;NA2v}oUB5t^(w2UbDc*?bFOe(jZJsE)Pt+@-)MQ%2R_snsX%J&hr@kP zAUm|A&gA@8g~M>oT+#&uH{sbT#zv-Uti$Pmj&V5|RpqgsP>c&QPs@x;>Ftb*>S{3g zegFm(AnS^C>E;J2ecxZl1l7_o=2^=>d6hCUVJwI=4Y?+EI(mvpyBX5wzAO8-zBlHJG zmCN7Ux_|4dkB;7(S8GQfJh2)Rb6($?)vrzK*Cv&D?ZsKGIjuD(#=P2?Rkxy1e{wal#M)M`HZ{KR_eyzR3S>&;2|SL4#m*qj=h^ZF}u>!o?4 zDf`P;e=q9|^G~F2luxVZ$_u9$U9f&CJih>%sFi0G7?_k!Rq#Dxn{s{yy4bir4BXHo fZ?gt0<-5%799%57w^&utC)`y|eJLUj|pW3SB=cL+JP0zV$~XzT7JPGA#RLRQ4GD*1N(OecUZA z7mxk`;xU2tjvFQTC$5Q^bCMKFacM|Gvy5m%lXG$*%$zW8sK_*-)4VW*(`4?J?8Oe_ zWG*yG3z-;^OCqFR^2GcTkV-}rH-(abM>3%e$y36Fi>5$EKXa%TbFO%k>w0oUl3W56 z2)#*(Zt^?sLb`ff2`x*g)aD#Ia9g@fJtVL0rqCAIWD|1c;L<$H@(VjU=c^8qMSH$s z@KhT$7?KkZRMG{v-XhS9*NHwShA?KFpJ10k>0+Ukh_oOvlGYak_x1gM6_l zq%f;HT`C!$8j+1RJolEX`u>cY$;Q=(ocakEv>V~Ti*V?kdl()sz~1`#6G!S1tQz=g g8$Qa$IfrB2F%My)j`kNhD>DAVhmp3mMmX~S0vXhloB#j- literal 0 HcmV?d00001 diff --git a/StreamingCommunity/Util/__pycache__/color.cpython-312.pyc b/StreamingCommunity/Util/__pycache__/color.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..860fe39fcd549aaf99b1e8fc3eae8bc427f6f155 GIT binary patch literal 784 zcmZuv%Wl(95WSA=JRCdkmeK(GY^p+e$f!bc6XS%q0i}te+*-0iu2n^f6R@2{*kGjo zL%#v>Dg1zSH!S!8L>5S_xb`?ZW-;f?%spoobH6K!gjjq&@81025c(Mx`w&vHJ7VMx zWsrdgxXd`pTy?%*{PerV}K_B zX8=zDo&h`uc#(h#Iu&#(=v2_Dpi@Dof=*>Rp?Q7k4q6SGx9!!;b!?kTw(YLTW*KwY zwm)uW%XA`Mm|D9}`JvvSqA}F<0nJWz(|kLj!i723Y3@=p^ub7@LVKzWsATqx?#MQV z+LRVL+OVHeXvZ$a{fpR3h9Y%L#fh&1lf8R7N_L2oZf~Shaj0MEqpxTeU+M33{?Z!z zj^|q=#}5{(8>_RPZ(L^;_?EEz^cvgO;kA!dyr}m!hTeL7@AQs zXgmrpfhAV*!57`Tzuz=yaj-W2uh2ebjONebPOrQsE8`#Pms$G7a~$_4TjdUaBbE}u EKabtiga7~l literal 0 HcmV?d00001 diff --git a/StreamingCommunity/Util/__pycache__/color.cpython-39.pyc b/StreamingCommunity/Util/__pycache__/color.cpython-39.pyc new file mode 100644 index 0000000000000000000000000000000000000000..04b5acee7f64e1d0c33414355ac1d5a41cdf6c10 GIT binary patch literal 708 zcmah{OK;Oa5MIZ2;y7_1DYxFZ<$?<3A)^Z6I+jz_800vrGPSfyGgcKTj=_&Zxp06# z!(Z}+13!TqCw4ul011g%&3yCN?_0~eOUp8uuuo^x+iwbE-(~TqsiJr-yc~((Gi0cI z5&pRY3_CM6R#&3`mkAYOyc0>vKtTo_R6xZJXsCjY8gx;I9(KXN9`w-w6Z!9lk+UcdL#28=O60jh9;n&2abE$ zsF61T-H$vkgzmx%g11+oodAi7$FN__~+=UZ@8C>|&nER2lfd0gZE_W%lrOM!b zhtwKUu~XcUr7l=BxmVwf+B5X4=|$`{dgRT#_$w<6aX)SNxo}@5^D-^UBu>j}y}eB) z`Kr#+ZB-`zx|-HE$*d~UWhO>$o@MoRUETe&RjiVEwcaEvc}I`l-xcyT$Tw6z6v0rm d|EzX@I96Kx{e_hEg+ybV(Jy}`ReuO)zW~15sMP=f literal 0 HcmV?d00001 diff --git a/StreamingCommunity/Util/__pycache__/console.cpython-312.pyc b/StreamingCommunity/Util/__pycache__/console.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..18e1a68df8a4ac5c98ccd51481fb17668f67b4be GIT binary patch literal 477 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 literal 0 HcmV?d00001 diff --git a/StreamingCommunity/Util/__pycache__/headers.cpython-312.pyc b/StreamingCommunity/Util/__pycache__/headers.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..f046ddea63ba81f806e4cb1bb5e5ceff37911554 GIT binary patch literal 4758 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 B>e>JR literal 0 HcmV?d00001 diff --git a/StreamingCommunity/Util/__pycache__/logger.cpython-312.pyc b/StreamingCommunity/Util/__pycache__/logger.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..cd1d1df49dafe4a8ffb0dab335c517311b1882a2 GIT binary patch literal 2824 zcmb_eO>7fK6rNqLow3;@rnq2Y0){G(O^5|iR2l@0LSh0cb)-OwWI|VtcVp~&y>xcn z;wTY4P${Y^^$3-aN~KCAA`%=q_Rw1|EHPR%N>A;DTSRCpaq64>u~WrrTD2qX%$xT! z^JeCI@9j_R?GXg+^Wpaj^KA(I!X|zbJYwS=AZ{ZCDO?$4*~phUjnDENqXXrDCS(N; z@n`}m!Y!l(AMmbaHdy1N&meq5)ic(eyusia4Wv*C|wOl1v zP)Xjkb$ia6Z0rZ(Hd0ZRQ&5&yxLYV2P;V}CP+aVx}X=>3ceLHW`_vCxA7x5 zbsL!tS;=#fDfvy|6yA4!0m%)GZLI>Etk`Z&TR^3dPd7)hd(&#T$@eMnLGV|rz-hsc zpf5AqeX7*qQ_T@B-aB1sXOrtwrsz|pH+-r&`j#BpW{;4s`Cs;coAJTbbODjcZT4>a zhkM61E$WfJB?tG}@>Rxwzo&(r$Kp_B@PG0y-eMQ;-5l={E#wU^YDmHv+BTj(J34*g z5)CTqY_&jll=Xsa>hc@}7R7AhP{C`adHn{(Y{=_Gr2^4)Q|ch>@+mH;raY_bWf~bz zpP8PJ-=7>$6P6BW07PU5quOAx0)#9L1IrCBiVYyuPt-DPyF5CTIiH!JL1zWJ+YRL^ zQ5^?l-#D0_nwp%VJDXxpvdmGzP|I@$yMW~D5Ar8xrVW)CGnZ6@Wr~?`Jzv$-ifPPD z6wPzh*_n$bQF9uI#&k`qR*Gh=6>HiomS@-=DoI_hQ7p?vP?hERPWKEcpTUB{ScmR2 z^eTiBlHGOO>N@^NdVG1cE4?Iq*|`S1#GsWJd^G%6TTNV866!eqJbm6yPd`mh-|evD zeOA2h{_vwxJwE#6iVQaGzv50C@3rvWJ4aUWAshEwxPN8h;pFmU9iLij2>VuXkBw6n zPOW_U@aFQ(Iv!caNQ{0p^2NxSxXTv1EwTH~+^X1Piz!QFT8qnzb@B9i2t{Ld=Ygl4 z2c82F?YE-+&!PjbFlvwetyQ?)#``V2{~1nhz?o6&Oql`6cA3&-=1yxB$qKj9$fF#p z1tekqXe8;iF(=&vMv?#rLocgI4-Bb>%InKldU_dzD>+S-jFUaRJDUkcQ@TqUFqt6d)`e(jBuo zqnLMnBfEh^x}bA$N%pb%Ug+lI9)7kU`7qNy0384cqj1#52@5B_JM#U&w*!E$;VJ%i zgu)kj!YbKc?ww_Kr$U7w2sYn4WTZv~0v)fh8nqI5;8mGLZhVvO?klCm_r4}`& znGH=S`fe*ZKLY;D9ib9=nQ4)SeHzuLskOlS8c;c!YyIo$w7@mjsfDDr`Ju>Gyf8%g zU`ZC|k^qm{vZ^$3Q$*+e^k9brdKN_NrIHZ|45jyD|E6P zVFkm1f%Eb-eAdB+sS+weu4~N5E@m6aDT@F15+E#FQ;~TlUvqzHXxN1om>X;hIEM=$ zR$k`2w*bho^+Mn%s2B=#fT9SB_un6SczXHt52v17{jk1AUJ{?X*3efp;g>%<6aB*-rx5OzwJOVBZXLc zWWgfKG$PBIu2kVLG8JX{<7&rgdJlUImYg}7}N;sSj8|{G~Gfk`FQZ) z%ON3nk>3!*!4s}JQ<6e%z(xJ2_pZ%w-h;liHNmG?Hc!bVL$7%8DZo0;j^sF_SV%dp sP<+aD|6MW!JceC^#qN55r~m)} literal 0 HcmV?d00001 diff --git a/StreamingCommunity/Util/__pycache__/logger.cpython-39.pyc b/StreamingCommunity/Util/__pycache__/logger.cpython-39.pyc new file mode 100644 index 0000000000000000000000000000000000000000..0f9d7ce86777f4c0e1c5607b163f030c47954d4c GIT binary patch literal 1656 zcmZ`(-H#hJ5V!X$n_TXCq)?6`q)1S7E0qXUyig(3_P&ZJsdVj8X$i76v6F7tkHhw& zUX)5ml*hjC2cX zhYQRdAax5SPB_g-jDIJixf44S*KX$KUhGkFK)A>K7liwNII+*^BN7F#VIS#7)LcC* zb)wT^vY%$+ep2vENDyy~%3_>OSe_KgM92}EUmOlFcYxGqFbNV;WI@r-sWT_csX5nj?wm|r*#nse7T&2- zIGli$uY*N{`=@jf>R{SDrIc7na8Uw#9r?SJH)?qcEv?VL=47#UN+>BhZ&|dL7K?S% zae}w#o5t?m{@tSokB!g8u$q{)teh}ivM~T?LS*d9f2#HIGZW%(R7znyS(ZB5keE9Y zPK0K|vdrSv?%utl1NOti-8~7ZCdLJo3~|)}XA?+`X@Y18o(UB!#cv`rjVE^x```5s zjBh=dYs-{XQrH8q)n~DUpp|5xE87-uyVaJvdTAs=;HSup|b% z<*3RCa?vj6`|c^`aeGNnMa>Rw{WyO1AmcC*#3$Br#wz@rOS zS7j!;^~HNUEu-RSF*3^gcilD3Hhdpo)!vQ>5y0W$X@ASH61jUM=&pNT2Drw? za?*?>0P|LC>#6U?3Gqe(F91IoP^l<> zQ1JpK{zfL)V&w;DwuGjJL(!0N*m!NR!#NB-5bsY7a+6H2p)>|S1J1Zs9PqoG!RSyA zx!u$fnB!O+$l*4yOnBJb?{@4sj$oF$1MQLeEP%!wEl!OQs7^(a+5l)nIjd<ec1NCD+oG(6B6b?NP^EBOsA$! zyVX@2w&JT-&EVSVk~$Z_mTXumxwgIPm_ax!G#{9jnjAhWVI;HTD7hfK_dxDAJbn{i zO>!XRasg4nm_$_Y}fYkqyLDxeR^zD z-jE;4t!it2d*s|6Js*d*PkypTKYLL){_E8TH-5RXQ+WSApP*^$L`!JRZI2Y6(vJ>u zgy!3@2U3*0cVP1HV2;LKFLDAanuxEvPB%Y145cmmu2W(cr-zqXL~BN%ExE4c$*6&q zvljeDypw2;FwhsatFKzdCGQNlc#-+j@H*f*j%#NKC;dr|y`qHs^e=MhfRe0ozwnHX p?a;AS_Q}*P{k$nW7e|}x&&1Ikar9yMWMWsm&`h^8XSj1r<$v1G?Ro$J literal 0 HcmV?d00001 diff --git a/StreamingCommunity/Util/__pycache__/message.cpython-39.pyc b/StreamingCommunity/Util/__pycache__/message.cpython-39.pyc new file mode 100644 index 0000000000000000000000000000000000000000..1dc35b261819ad31bb016e814db49d0987dc32a5 GIT binary patch literal 1732 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 literal 0 HcmV?d00001 diff --git a/StreamingCommunity/Util/__pycache__/os.cpython-39.pyc b/StreamingCommunity/Util/__pycache__/os.cpython-39.pyc new file mode 100644 index 0000000000000000000000000000000000000000..f7c866acb5676eaf9e606b93a71d87547ab11365 GIT binary patch literal 15833 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 BBSruK literal 0 HcmV?d00001 diff --git a/StreamingCommunity/Util/__pycache__/table.cpython-39.pyc b/StreamingCommunity/Util/__pycache__/table.cpython-39.pyc new file mode 100644 index 0000000000000000000000000000000000000000..bbea41ae2a9120706f6b6ffc71f3c476118fa6c6 GIT binary patch literal 4919 zcmd5=&2JmW72nxUa!JaHtvLQ@+C|aEq9GGb(l)MZ7!K?>F_5Z;r345ifmv}z(#p$S zYIbOu1ce^#q8~sC_f`}>NV)lsX#aqodngv@sVAQc^w3NDd$S}Z$~NFOm##2RGjG1$ z_j|*zR`U&fKfm_L=EJuPYK6Iv6`0dTe017nvU+< zvD@*Qp6)wwsZ(y2JATveRGJmwT<*oyPOVvE#>WOP@$zGXmmitU8SXC`^~!VHW7Jvh z-At1#jRm^Sa=5NL?p>L7x{6Rsst=Tv+qa^&%I#01Oy$;xN&h)3w%0NhO4aI!EDJY9 zn+`qtIT+kP%boxTqsh3@G&$quW20#an_Jv|YI29WkL{)-T;b{FZJ1{bYMA#hPsH2J zlAbGTy#JK(3awYB|;-&!YGN7&GD@XPR|wswIw1+xKv^k zCOp{gWh&Z;+9QI-JV_GIb5ieO-IFAz+{3A4NqI>Zl;}14>In*6eZiMpQ$KbRb4 zp#FeISvL;*q@d-`11-$gGKL9(!F-e`D18|>02w?8iwGwBZ#4>pn;MHQIC|QVYB(OhC zDEyGW+(*bHCyV~y{A97tG}~i|Y7rchs2_6PDtzGr*w3_0d4n_4!aQ6=QG4WKF9?$I zh>lp={)}y7pAFdoLp~_%@99KRB+hVbU4crq1;&W)WR3ro(T!+18hwx37}r>6-vaKq8CFOhqnj@uk=of8r8ZgxvH3hyVPU*ek}Kf=7mcKs z{RTimUfleO?IFHzvwicxxMi$eSvB{pJ$q>HTa>sC%spr5$ScYoI^4lpH?g_B=MK$n zXJ`#w%D`VCYwyer8Fs((YvY&32Ghx`q)&C})JJU3!wzrg{no(RdzdNhmxrd-nT?p? z5B@mO*{vchjMWnmJ4hJNBcfX`4kdXwa>r}MibGih^OV&94$R+~J0v!iQ?oXO!jWd2?hlQ%}UXeu%O68sj$W{s%WnHkNKwb#Pi5cMQZ-0LMe zoR9spQ`ENs!YT@~*RL&)DSv)FO=Ebx}sC5ywLPRb2GPve} zcqrOEh4Ok`fEy94qiDQObyeEap^eI+I8D2U0ZYCE(;YN@f2A+tINe=axwCltXKTUA zrW7JsyDRb5309=wYada>8sl*~Dy@eq=;A2>(O`nsT-doVUIA8idXZ`j{_L-``(d(n zCqad)f{x%3g>fz(2ID*DMPswE5WHJoD2}-p6k905rn^a;hREJ=T;D_}$=R*Xv57os!Of=lH4R6y$JT-{@c z0f+!aWY!@IG1!8xo|$qU%W@VSOYf2%Tp60Y1Tgsibfl8K7T=Sx`06vc6^letX(g$^mhTgw=TA}cQy!A<5+Lp6R+!z-9c?nX3yVf2mOF3+ zA&bX>SEQ;R(1srZG%G4qVcgOwFR#XMKa{iD{c;N#PyU2fPE(j$P~tN1*{1+T#b>tV zT4yX@rzo45|90IuHe=2*+pIFzEU{Vq`K)BQHYGB>!W*xc!3rM_INx&3!5c3a%anMh z-t{C6{c6YWEL1d5IikgM3KPdkcG|HB<=2=gN^~|jHGP$yubZRfIZH21DmYrL+;6oy zDeuM9ueMq{y)Z6jBz_En#1TB@Il7XH8~FhNDi|acrt;eaD6eY0UR-O3(7T>M0D6EevUI@333FI z31edSwr8aC{LXj2@0_#W>wIOg7!jn;kDm>{y#t~D#0@3s3zdy#0-;-oMl``9f4(IA zgxps7RdT8JtL0MT*T|*Tua!%kUniG(zg{j$KMAFZHN=d5BY|xUpOm1sgTg>ja%XJ;=h?V=Da$V25Vs5`%u9IvCj?>)&j-VdMCa*c^ocwr%uh*Oa`%?wB45rJXHsRTzQ z;vr@qMKhy$5}{2ABMfyd$R-&oF-$!|r`ISWJ|EfFk@b-gBcDcS%JsXJA*9GFv5urOdba?;{GZ=%R_Czd}gnb;}t_yQGIxd-^3@8+F zE?A@vuT~A&1bSdYq-)h$_6M_Vx^rEP%4`pG$Y6O_w*kW_gfk^!;UHgylm=ggFv_3^ z$`AsabUq2ii$fE%>N5-ri8~+wd_F~WO085z4W+tLD`AStB1!4bm$X{>ATz3X!&9(Z z9-WI@f>r7JtU!B4^%N}I(3n=y8d|GxnNbUN1#1+a=9ct-z^|rtv|hnqq*RmEbf7DL zi%>@U6rAN-NPy;3W^A)pX|1xdQf71lzC&_~x|Ld~q{+1Icj&fCfhUjw30PjrDGG{Z zYoZO0&dBIXcPg!y#dP5=Wk{h`nf(ZinYKK(Q-((%taOF@)Bek!O65BbQ!44=rU$l2X=yX-d1HS|Ia;e6>q#X zZ3X&NX(DYo34}}^2kM9c)PMv^p{o(Txr|9@P}tgi6BkI5_FPfs5q#PRw`BVI0`Rd@L~jBNe8Mb z5@I+k+9YEDR20XAKo4J#^noPLbS5}So4~3eRXfNr^p(zFgk@+f=p(Vw1ScqqrBtm{ zs3<7`8Agb|&1sD!@nFd&CVL9-LrdEBHpC*%@&k`2a&=-{c;ZWee6 z@Jx^kjTFT@?>)&TLZD(!K_w5^57T%OvI#Wzn|b?R3LO4u0kQfjGY(wjF-W?6nL4=@ZfiNuE!k|Do~Y-C8XNT%0=P=&;vwicsK`7nWWFpSh0hwlfa5NGC zIwhlgZ7`WUkb$odu1lsomVivH8X6pyNRm0imoA5-hpQ17hPy$)9Slh3!ki!*3G!0e z)-%Hv0JdH>rTk&Lwmo9*MS$NAf8GR_XacQTZ4+Iq6;-0f`A~<*vT1&{dyZMwH?BF| zx4Le2-SXY^eO&%Y%||ujf%crUW6JPtVc^`&b02r-ockvY-&$=m;i>QpJH^f&pJx^> z=B$S&y4LKjTU9r!K6v)SmiJpeJo)~~1^r_AVk}qPk+YwfcyU9A+|;B27Okkd6}}l> zaW`e%O&@cgjD0lr$&HV0ERN@Px8>X~Oq$lnvKjM~S*-9Z>|Ll8T`kMxv2~5bFhG3k zs9te+vJQ{9uY0L_$s#si%sF0}YzL(7+PQ)GJqv9)mv^#rt-AhW{epVo@}0vu>iJxC z+oW#|07CP}7s5IB(aEm=D6e0&Rot@Pw9cCrE-tnBaK{d4+t9jb1ctDO&v72Zkny2fl6CSdvUnqMNUzG*(Ra4c7M zc=8;~J#gyIn7F@7G}p{szGrS;uLa!eO~_m$YN~&Hcm&z1zDERbx@In)>7D8oYmVR9 zd#Cp9(7%>1^?&7FBE=p3E9RH(nP2+Tx*Eg%>7lnUXSg)Sw=}raD_$C0z8nx=3+65l ziGv|=2fbouvSvn}I86M^AA(EqMMYa(7peMv)!uHk>PynljkI6d8@ogC5m)_=0_h0}iQ1SsC@j!ChuqYIIx}0nhLnxJKBCJVpJ=+u}WRRMyR@dKvT# z$ALRJ77<1$EIYA37KTQ0$m?-(_;PdjCQAAsKOPT75|SExBgp~kD*&2HU}6D2?^#Ra zC>s<&g2zBH$|I7#urAk((O`2>G8ekQ!T?ZN@u)$6NgC#QM39WIav<-ubH_2bWuW`q zD}f6yo$2f7>FeUKXCt}k2oFn*7u|ELWn#Qk^;o}fEr9)a9yGTx!7GGrwhd&B6#*ra zVz^%e@+kcIuOOR1AkVapx6VP~sD7_{;>9(M>Fu*`o}D$W*!E{_`*XGf%bJ5QO4{DO z@#c-3zH+YTo_^Ot!{1b{9BRuRYResJ&o;NOk;WOrlwsDpOzy%@9NhL0QTd$fxvSMh>v_j9{rie-|s&ib9UI!7q*HHk2(bHV#1CWzC9bS zfup%ueBrIwnv@F;;tS7_Q?ZXIi8Q4TF1r#1D@H%SaV(0qZC%w(?(vgoNTU>72XGct zw>Jx;qC*zlM!?bP&x>YyMonw6yGWC?fi`}i&1ll9Xwe~6xI;y{!BOc0M+JmgMl0vK zj6RK{bfz6BS`=B2&&!Z$ZN`vRM~g0C35GVON$mL1mb5`G!R1P8qeTI+3DTyB1=@~{ zUf|ntTMe!h{z4%^OzAwhHR@>5ZOr%MTsaMJuAai-jCRH}qYG&wD5Sb#dW2h3Mwiy6 zP4B6uEgA%lnkl1&9`jRn48kVzURl7+!O;^rrHyHe;+*lsba_dLmmDerI2uQqO~U-i zv@5&Qfo7})F0?Wiu$M9g)=eh|ya+ps)L50dGIv$LU75_C6`+bL;LloJH=_^bR|g^X z*y?a^wq5;yb?(syh3-75!BQfC|)yRyrf@{$7`#UauyiLOkS zKN<|7tLPoua$$Q47tR@1fs1DfTsSkXv=b<-PHWOGx(0tNg|EpCZRN|VczpCW3A{AQ zytpz>g_jh}r)zPZaSMADMxy(aTB%ICg#$_}ZHr>Fb4yZAQNc~u(e-rw=hSBfLos7d z+tX!Wnw4$(Udqxk&B`47%{*myca~s)?S+gA`b6c`z{T7zmQ!h>8q7D06mYPfE3q zN~v3^K@KiEN|A+rk3<~o^l0F@WF!Gm86F}E`Ovy#mftv(?tH5-mU0)YNO(?&(8aa9 zo@#hKf$if!Hz3(yl09qgS=_|8Ng{(>cr?ht6N>nH@4MvD()JhmM+MMXAO^AQqF zEEtJ%e*s|cz@L8|47myPt=TryGu89X*@-h?rIxwg8G%rS#`=~IT9x~A6<&yxU;`Ke z0%Cc?#~q*aeAM$-XBT&68(YMNV|P@d{lv27Bmi68E0)HrrBOUIvTTV=bb`0;@my=1%P(%T5&aJUCrOP z_DvZk)sq+2Ope*ZbLC%~YS+w_bIxUR-5<;jSj)Ztp&4}$y@c3%Wu-Ti?G5F6ndSE3 zZz{vt_Tg;v>4lxy{ihe0zrM6c-)Z}xe6Ig@?s@0?HDdd)sBz^g!?3$if+v6tf#^{E zH!faOJ;)auxbUeSf(JwNs{RWhS05h2jchNo)So@ii2WC{uhQZrzj!(H+krXzdl%=J z53jy|b)g|w=UwP z$!tK#_795v7sQK$lkJm7X4SJjbIg3(`y*NBZn1n1thsBE_;k<0j>TseBX_lTga1fo zkM@X1UR>IF&)^dS!aXv%p;oo(9w3!l_wS_RfmY=%pXhsNM7Hvov8l1yH$E2@dshy3 zW)FAf4tM7c^oRo&MJ6hazp-3)W1<^qBW+@NV;16sq*HV?&0o*D4t`A@`WE~x%alcQ zgO_)p=*Ycm`sv|mRPi$L(+>_*H3EeW@8VAoN~^m@{Ip?2hHC_m9~QsR*nAf9pLf^z zoW|cbo$}Qfm-LOkM&rLU@AfsDJw&Icq2xkyNtnSM#MybA$+C9<*RJ6VYjQ~^jE{mN z&tWG`s^2DB|FRHay@j`Q*~$N9sKS$NUdqY>w&9l$2BLf--Y!4GbJ*{bsO=y}v2yno zynGyG=PqH`9oxZTG82400#UsUfG;xSz0mtYM?Nx8w+)2MDUOgcoUFAZ5{EA2NVuil zcW&TJp#5Cmz&YO;&W}ksiZkq~%XC6_tB~QsO>&FcpvS%j}EPq$i8RRx?d_yg)op5Kfu!{{cWsMz#O| literal 0 HcmV?d00001 diff --git a/StreamingCommunity/__pycache__/run.cpython-39.pyc b/StreamingCommunity/__pycache__/run.cpython-39.pyc new file mode 100644 index 0000000000000000000000000000000000000000..46e997178909ad1c2682d8b918e290800f597c00 GIT binary patch literal 5507 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 literal 0 HcmV?d00001 diff --git a/StreamingCommunity/run.py b/StreamingCommunity/run.py deleted file mode 100644 index 0b2c0ad..0000000 --- a/StreamingCommunity/run.py +++ /dev/null @@ -1,202 +0,0 @@ -# 10.12.23 - -import os -import sys -import time -import glob -import logging -import platform -import argparse -import importlib -from typing import Callable - - -# Internal utilities -from StreamingCommunity.Util.message import start_message -from StreamingCommunity.Util.console import console, msg -from StreamingCommunity.Util._jsonConfig import config_manager -from StreamingCommunity.Upload.update import update as git_update -from StreamingCommunity.Util.os import OsSummary -from StreamingCommunity.Lib.TMBD import tmdb -from StreamingCommunity.Util.logger import Logger - - -# Config -CLOSE_CONSOLE = config_manager.get_bool('DEFAULT', 'not_close') -SHOW_TRENDING = config_manager.get_bool('DEFAULT', 'show_trending') - - -def run_function(func: Callable[..., None], close_console: bool = False) -> None: - """ - Run a given function indefinitely or once, depending on the value of close_console. - - Parameters: - func (Callable[..., None]): The function to run. - close_console (bool, optional): Whether to close the console after running the function once. Defaults to False. - """ - if close_console: - while 1: - func() - else: - func() - - -def load_search_functions(): - modules = [] - loaded_functions = {} - - # Find api home directory - if getattr(sys, 'frozen', False): # Modalità PyInstaller - base_path = os.path.join(sys._MEIPASS, "StreamingCommunity") - else: - base_path = os.path.dirname(__file__) - - api_dir = os.path.join(base_path, 'Api', 'Site') - init_files = glob.glob(os.path.join(api_dir, '*', '__init__.py')) - - # Retrieve modules and their indices - for init_file in init_files: - - # Get folder name as module name - module_name = os.path.basename(os.path.dirname(init_file)) - logging.info(f"Load module name: {module_name}") - - try: - # Dynamically import the module - mod = importlib.import_module(f'StreamingCommunity.Api.Site.{module_name}') - - # Get 'indice' from the module - indice = getattr(mod, 'indice', 0) - is_deprecate = bool(getattr(mod, '_deprecate', True)) - use_for = getattr(mod, '_useFor', 'other') - - if not is_deprecate: - modules.append((module_name, indice, use_for)) - - except Exception as e: - console.print(f"[red]Failed to import module {module_name}: {str(e)}") - - # Sort modules by 'indice' - modules.sort(key=lambda x: x[1]) - - # Load search functions in the sorted order - for module_name, _, use_for in modules: - - # Construct a unique alias for the module - module_alias = f'{module_name}_search' - - try: - - # Dynamically import the module - mod = importlib.import_module(f'StreamingCommunity.Api.Site.{module_name}') - - # Get the search function from the module (assuming the function is named 'search' and defined in __init__.py) - search_function = getattr(mod, 'search') - - # Add the function to the loaded functions dictionary - loaded_functions[module_alias] = (search_function, use_for) - - except Exception as e: - console.print(f"[red]Failed to load search function from module {module_name}: {str(e)}") - - return loaded_functions - - -def initialize(): - - # Get start message - start_message() - - # Get system info - os_summary = OsSummary() - os_summary.get_system_summary() - - # Set terminal size for win 7 - if platform.system() == "Windows" and "7" in platform.version(): - os.system('mode 120, 40') - - # Check python version - if sys.version_info < (3, 7): - console.log("[red]Install python version > 3.7.16") - sys.exit(0) - - # Attempting GitHub update - try: - git_update() - print() - except: - console.log("[red]Error with loading github.") - - # Show trending film and series - if SHOW_TRENDING: - tmdb.display_trending_films() - print() - tmdb.display_trending_tv_shows() - print() - - -def main(): - - start = time.time() - - # Create logger - log_not = Logger() - initialize() - - # Load search functions - search_functions = load_search_functions() - logging.info(f"Load module in: {time.time() - start} s") - - # Create dynamic argument parser - parser = argparse.ArgumentParser(description='Script to download film and series from the internet.') - - color_map = { - "anime": "red", - "film_serie": "yellow", - "film": "blue", - "serie": "green", - "other": "white" - } - - # Add dynamic arguments based on loaded search modules - for alias, (_, use_for) in search_functions.items(): - short_option = alias[:3].upper() - long_option = alias - parser.add_argument(f'-{short_option}', f'--{long_option}', action='store_true', help=f'Search for {alias.split("_")[0]} on streaming platforms.') - - # Parse command line arguments - args = parser.parse_args() - - # Mapping command-line arguments to functions - arg_to_function = {alias: func for alias, (func, _) in search_functions.items()} - - # Check which argument is provided and run the corresponding function - for arg, func in arg_to_function.items(): - if getattr(args, arg): - run_function(func) - return - - # Mapping user input to functions - input_to_function = {str(i): func for i, (alias, (func, _)) in enumerate(search_functions.items())} - - # Create dynamic prompt message and choices - choice_labels = {str(i): (alias.split("_")[0].capitalize(), use_for) for i, (alias, (_, use_for)) in enumerate(search_functions.items())} - - # Display the category legend in a single line - legend_text = " | ".join([f"[{color}]{category.capitalize()}[/{color}]" for category, color in color_map.items()]) - console.print(f"\n[bold green]Category Legend:[/bold green] {legend_text}") - - # Construct the prompt message with color-coded site names - prompt_message = "[green]Insert category [white](" + ", ".join( - [f"{key}: [{color_map[label[1]]}]{label[0]}[/{color_map[label[1]]}]" for key, label in choice_labels.items()] - ) + "[white])" - - # Ask the user for input - category = msg.ask(prompt_message, choices=list(choice_labels.keys()), default="0", show_choices=False, show_default=False) - - # Run the corresponding function based on user input - if category in input_to_function: - run_function(input_to_function[category]) - else: - console.print("[red]Invalid category.") - sys.exit(0) diff --git a/Test/Download/HLS.py b/Test/Download/HLS.py deleted file mode 100644 index 5601d95..0000000 --- a/Test/Download/HLS.py +++ /dev/null @@ -1,23 +0,0 @@ -# 23.06.24 - -# Fix import -import sys -import os -src_path = os.path.abspath(os.path.join(os.path.dirname(__file__), '..', '..')) -sys.path.append(src_path) - - - -# Import -from StreamingCommunity.Util.message import start_message -from StreamingCommunity.Util.logger import Logger -from StreamingCommunity.Lib.Downloader import HLS_Downloader - - -# Test -start_message() -logger = Logger() -print("Return: ", HLS_Downloader( - output_filename="", - m3u8_index="" -).start()) \ No newline at end of file diff --git a/Test/Download/MP4.py b/Test/Download/MP4.py deleted file mode 100644 index ecb125b..0000000 --- a/Test/Download/MP4.py +++ /dev/null @@ -1,23 +0,0 @@ -# 23.06.24 - -# Fix import -import sys -import os -src_path = os.path.abspath(os.path.join(os.path.dirname(__file__), '..', '..')) -sys.path.append(src_path) - - - -# Import -from StreamingCommunity.Util.message import start_message -from StreamingCommunity.Util.logger import Logger -from StreamingCommunity.Lib.Downloader import MP4_downloader - - -# Test -start_message() -logger = Logger() -print("Return: ", MP4_downloader( - "", - ".\Video\undefined.mp4" -)) diff --git a/Test/Download/TOR.py b/Test/Download/TOR.py deleted file mode 100644 index a822e1b..0000000 --- a/Test/Download/TOR.py +++ /dev/null @@ -1,25 +0,0 @@ -# 23.06.24 - -# Fix import -import sys -import os -src_path = os.path.abspath(os.path.join(os.path.dirname(__file__), '..', '..')) -sys.path.append(src_path) - - - -# Import -from StreamingCommunity.Util.message import start_message -from StreamingCommunity.Util.logger import Logger -from StreamingCommunity.Lib.Downloader import TOR_downloader - - -# Test -start_message() -logger = Logger() -manager = TOR_downloader() - -magnet_link = "magnet:?x" -manager.add_magnet_link(magnet_link) -manager.start_download() -manager.move_downloaded_files() diff --git a/Test/Player/helper/vixcloud.py b/Test/Player/helper/vixcloud.py deleted file mode 100644 index 3c1cf78..0000000 --- a/Test/Player/helper/vixcloud.py +++ /dev/null @@ -1,40 +0,0 @@ -# Fix import -import sys -import os -src_path = os.path.abspath(os.path.join(os.path.dirname(__file__), '..', '..', '..')) -sys.path.append(src_path) - - -# Import -import json -from StreamingCommunity.Api.Player.Helper.Vixcloud.js_parser import JavaScriptParser -from StreamingCommunity.Api.Player.Helper.Vixcloud.util import WindowVideo, WindowParameter, StreamsCollection - - -# Data -script_text = ''' - window.video = {"id":271977,"name":"Smile 2","filename":"Smile.2.2024.1080p.WEB-DL.DDP5.1.H.264-FHC.mkv","size":10779891,"quality":1080,"duration":7758,"views":0,"is_viewable":1,"status":"public","fps":24,"legacy":0,"folder_id":"301e469a-786f-493a-ad2b-302248aa2d23","created_at_diff":"4 giorni fa"}; - window.streams = [{"name":"Server1","active":false,"url":"https:\/\/vixcloud.co\/playlist\/271977?b=1\u0026ub=1"},{"name":"Server2","active":1,"url":"https:\/\/vixcloud.co\/playlist\/271977?b=1\u0026ab=1"}]; - window.masterPlaylist = { - params: { - 'token': '890a3e7db7f1c8213a11007947362b21', - 'expires': '1737812156', - }, - url: 'https://vixcloud.co/playlist/271977?b=1', - } - window.canPlayFHD = true -''' - - -# Test -converter = JavaScriptParser.parse(js_string=str(script_text)) -json_string = json.dumps(converter, indent=2) -print("Converted json: ", json_string, "\n") - -window_video = WindowVideo(converter.get('video')) -window_streams = StreamsCollection(converter.get('streams')) -window_parameter = WindowParameter(converter.get('masterPlaylist')) - -print(window_video) -print(window_streams) -print(window_parameter) \ No newline at end of file diff --git a/Test/Player/maxtream.py b/Test/Player/maxtream.py deleted file mode 100644 index cc529bd..0000000 --- a/Test/Player/maxtream.py +++ /dev/null @@ -1,22 +0,0 @@ -# 23.11.24 - -# Fix import -import sys -import os -src_path = os.path.abspath(os.path.join(os.path.dirname(__file__), '..', '..')) -sys.path.append(src_path) - - - -# Import -from StreamingCommunity.Util.message import start_message -from StreamingCommunity.Util.logger import Logger -from StreamingCommunity.Api.Player.maxstream import VideoSource - - -# Test -start_message() -logger = Logger() -video_source = VideoSource("https://cb01new.biz/what-the-waters-left-behind-scars-hd-2023") -master_playlist = video_source.get_playlist() -print(master_playlist) diff --git a/Test/Player/supervideo.py b/Test/Player/supervideo.py deleted file mode 100644 index 301b054..0000000 --- a/Test/Player/supervideo.py +++ /dev/null @@ -1,22 +0,0 @@ -# 23.11.24 - -# Fix import -import sys -import os -src_path = os.path.abspath(os.path.join(os.path.dirname(__file__), '..', '..')) -sys.path.append(src_path) - - - -# Import -from StreamingCommunity.Util.message import start_message -from StreamingCommunity.Util.logger import Logger -from StreamingCommunity.Api.Player.supervideo import VideoSource - - -# Test -start_message() -logger = Logger() -video_source = VideoSource("https://supervideo.tv/78np7kfiyklu") -master_playlist = video_source.get_playlist() -print(master_playlist) diff --git a/Test/Player/vixcloud.py b/Test/Player/vixcloud.py deleted file mode 100644 index 2a3a88f..0000000 --- a/Test/Player/vixcloud.py +++ /dev/null @@ -1,26 +0,0 @@ -# 23.11.24 - -# Fix import -import sys -import os -src_path = os.path.abspath(os.path.join(os.path.dirname(__file__), '..', '..')) -sys.path.append(src_path) - - - -# Import -from StreamingCommunity.Util.message import start_message -from StreamingCommunity.Util.logger import Logger -from StreamingCommunity.Api.Player.vixcloud import VideoSource - - -# Test -start_message() -logger = Logger() -video_source = VideoSource("streamingcommunity") -video_source.setup("1171b9202c71489193f5fed2bc7b43bb", "computer", 778) -video_source.get_iframe() -video_source.get_content() -master_playlist = video_source.get_playlist() - -print(master_playlist) diff --git a/Test/big_search.py b/Test/big_search.py deleted file mode 100644 index 86010f3..0000000 --- a/Test/big_search.py +++ /dev/null @@ -1,116 +0,0 @@ -# 12.11.24 - -# Fix import -import os -import sys -src_path = os.path.abspath(os.path.join(os.path.dirname(__file__), '..')) -sys.path.append(src_path) - - -# Other -import glob -import logging -import importlib -from rich.console import Console - - -# Other import -from StreamingCommunity.Api.Template.Class.SearchType import MediaManager - - -# Variable -console = Console() - - -def load_search_functions(): - modules = [] - loaded_functions = {} - - # Traverse the Api directory - api_dir = os.path.join(os.path.dirname(__file__), '..', 'StreamingCommunity', 'Api', 'Site') - init_files = glob.glob(os.path.join(api_dir, '*', '__init__.py')) - - logging.info(f"Base folder path: {api_dir}") - logging.info(f"Api module path: {init_files}") - - # Retrieve modules and their indices - for init_file in init_files: - - # Get folder name as module name - module_name = os.path.basename(os.path.dirname(init_file)) - logging.info(f"Load module name: {module_name}") - - try: - # Dynamically import the module - mod = importlib.import_module(f'StreamingCommunity.Api.Site.{module_name}') - - # Get 'indice' from the module - indice = getattr(mod, 'indice', 0) - is_deprecate = bool(getattr(mod, '_deprecate', True)) - use_for = getattr(mod, '_useFor', 'other') - - if not is_deprecate: - modules.append((module_name, indice, use_for)) - - except Exception as e: - console.print(f"[red]Failed to import module {module_name}: {str(e)}") - - # Sort modules by 'indice' - modules.sort(key=lambda x: x[1]) - - # Load search functions in the sorted order - for module_name, _, use_for in modules: - - # Construct a unique alias for the module - module_alias = f'{module_name}_search' - logging.info(f"Module alias: {module_alias}") - - try: - # Dynamically import the module - mod = importlib.import_module(f'StreamingCommunity.Api.Site.{module_name}') - - # Get the search function from the module (assuming the function is named 'search' and defined in __init__.py) - search_function = getattr(mod, 'search') - - # Add the function to the loaded functions dictionary - loaded_functions[module_alias] = (search_function, use_for) - - except Exception as e: - console.print(f"[red]Failed to load search function from module {module_name}: {str(e)}") - - return loaded_functions - - -def search_all_sites(loaded_functions, search_string, max_sites=10): - total_len_database = 0 - site_count = 0 - - for module_alias, (search_function, use_for) in loaded_functions.items(): - if max_sites is not None and site_count >= max_sites: - break - - console.print(f"\n[blue]Searching in module: {module_alias} [white](Use for: {use_for})") - - try: - database: MediaManager = search_function(search_string, get_onylDatabase=True) - len_database = len(database.media_list) - - for element in database.media_list: - print(element.__dict__) - - console.print(f"[green]Database length for {module_alias}: {len_database}") - total_len_database += len_database - site_count += 1 - - except Exception as e: - console.print(f"[red]Error while executing search function for {module_alias}: {str(e)}") - - return total_len_database - - -# Main -search_string = "cars" -loaded_functions = load_search_functions() - -total_len = search_all_sites(loaded_functions, search_string) -console.print(f"\n[cyan]Total number of results from all sites: {total_len}") diff --git a/client/dashboard/.eslintrc.json b/client/dashboard/.eslintrc.json new file mode 100644 index 0000000..ce85272 --- /dev/null +++ b/client/dashboard/.eslintrc.json @@ -0,0 +1,7 @@ +{ + "extends": ["react-app", "plugin:react/recommended"], + "rules": { + // Aggiungi qui le tue regole personalizzate + } + } + \ No newline at end of file diff --git a/client/dashboard/Dockerfile b/client/dashboard/Dockerfile new file mode 100644 index 0000000..546d85a --- /dev/null +++ b/client/dashboard/Dockerfile @@ -0,0 +1,18 @@ +# Usa un'immagine di base con Node.js +FROM node:14-alpine + +# Imposta la directory di lavoro +WORKDIR /app + +# Copia i file necessari +COPY . . + +# Installa le dipendenze e builda il frontend React +RUN npm install && npm run build && npm install -g serve + +# Espone la porta su cui il server React ascolterà +EXPOSE 3000 + +# Comando per avviare il server React +CMD ["serve", "-s", "build", "-l", "3000"] + diff --git a/client/dashboard/package-lock.json b/client/dashboard/package-lock.json new file mode 100644 index 0000000..3901b55 --- /dev/null +++ b/client/dashboard/package-lock.json @@ -0,0 +1,19762 @@ +{ + "name": "dashboard", + "version": "0.1.0", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "dashboard", + "version": "0.1.0", + "dependencies": { + "@fortawesome/fontawesome-svg-core": "^6.5.2", + "@fortawesome/free-brands-svg-icons": "^6.5.2", + "@fortawesome/free-regular-svg-icons": "^6.5.2", + "@fortawesome/free-solid-svg-icons": "^6.5.2", + "@fortawesome/react-fontawesome": "^0.2.0", + "@testing-library/jest-dom": "^5.17.0", + "@testing-library/react": "^13.4.0", + "@testing-library/user-event": "^13.5.0", + "axios": "^1.7.9", + "bootstrap": "^5.3.3", + "dashboard": "file:", + "prop-types": "^15.8.1", + "react": "^18.2.0", + "react-bootstrap": "^2.10.6", + "react-bootstrap-typeahead": "^6.3.2", + "react-data-table-component": "^7.6.2", + "react-dom": "^18.2.0", + "react-icons": "^5.4.0", + "react-router-dom": "^7.0.2", + "react-scripts": "5.0.1", + "react-toastify": "^10.0.4", + "styled-components": "^6.1.8", + "web-vitals": "^2.1.4" + }, + "devDependencies": { + "@babel/plugin-proposal-private-property-in-object": "^7.21.11" + } + }, + "node_modules/@adobe/css-tools": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/@adobe/css-tools/-/css-tools-4.4.1.tgz", + "integrity": "sha512-12WGKBQzjUAI4ayyF4IAtfw2QR/IDoqk6jTddXDhtYTJF9ASmoE1zst7cVtP0aL/F1jUJL5r+JxKXKEgHNbEUQ==", + "license": "MIT" + }, + "node_modules/@alloc/quick-lru": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/@alloc/quick-lru/-/quick-lru-5.2.0.tgz", + "integrity": "sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==", + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@ampproject/remapping": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.3.0.tgz", + "integrity": "sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==", + "license": "Apache-2.0", + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.24" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/code-frame": { + "version": "7.26.2", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.26.2.tgz", + "integrity": "sha512-RJlIHRueQgwWitWgF8OdFYGZX328Ax5BCemNGlqHfplnRT9ESi8JkFlvaVYbS+UubVY6dpv87Fs2u5M29iNFVQ==", + "license": "MIT", + "dependencies": { + "@babel/helper-validator-identifier": "^7.25.9", + "js-tokens": "^4.0.0", + "picocolors": "^1.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/compat-data": { + "version": "7.26.2", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.26.2.tgz", + "integrity": "sha512-Z0WgzSEa+aUcdiJuCIqgujCshpMWgUpgOxXotrYPSA53hA3qopNaqcJpyr0hVb1FeWdnqFA35/fUtXgBK8srQg==", + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/core": { + "version": "7.26.0", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.26.0.tgz", + "integrity": "sha512-i1SLeK+DzNnQ3LL/CswPCa/E5u4lh1k6IAEphON8F+cXt0t9euTshDru0q7/IqMa1PMPz5RnHuHscF8/ZJsStg==", + "license": "MIT", + "dependencies": { + "@ampproject/remapping": "^2.2.0", + "@babel/code-frame": "^7.26.0", + "@babel/generator": "^7.26.0", + "@babel/helper-compilation-targets": "^7.25.9", + "@babel/helper-module-transforms": "^7.26.0", + "@babel/helpers": "^7.26.0", + "@babel/parser": "^7.26.0", + "@babel/template": "^7.25.9", + "@babel/traverse": "^7.25.9", + "@babel/types": "^7.26.0", + "convert-source-map": "^2.0.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.2", + "json5": "^2.2.3", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/babel" + } + }, + "node_modules/@babel/core/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/eslint-parser": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/eslint-parser/-/eslint-parser-7.25.9.tgz", + "integrity": "sha512-5UXfgpK0j0Xr/xIdgdLEhOFxaDZ0bRPWJJchRpqOSur/3rZoPbqqki5mm0p4NE2cs28krBEiSM2MB7//afRSQQ==", + "license": "MIT", + "dependencies": { + "@nicolo-ribaudo/eslint-scope-5-internals": "5.1.1-v1", + "eslint-visitor-keys": "^2.1.0", + "semver": "^6.3.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || >=14.0.0" + }, + "peerDependencies": { + "@babel/core": "^7.11.0", + "eslint": "^7.5.0 || ^8.0.0 || ^9.0.0" + } + }, + "node_modules/@babel/eslint-parser/node_modules/eslint-visitor-keys": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", + "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==", + "license": "Apache-2.0", + "engines": { + "node": ">=10" + } + }, + "node_modules/@babel/eslint-parser/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/generator": { + "version": "7.26.2", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.26.2.tgz", + "integrity": "sha512-zevQbhbau95nkoxSq3f/DC/SC+EEOUZd3DYqfSkMhY2/wfSeaHV1Ew4vk8e+x8lja31IbyuUa2uQ3JONqKbysw==", + "license": "MIT", + "dependencies": { + "@babel/parser": "^7.26.2", + "@babel/types": "^7.26.0", + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.25", + "jsesc": "^3.0.2" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-annotate-as-pure": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.25.9.tgz", + "integrity": "sha512-gv7320KBUFJz1RnylIg5WWYPRXKZ884AGkYpgpWW02TH66Dl+HaC1t1CKd0z3R4b6hdYEcmrNZHUmfCP+1u3/g==", + "license": "MIT", + "dependencies": { + "@babel/types": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-builder-binary-assignment-operator-visitor": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.25.9.tgz", + "integrity": "sha512-C47lC7LIDCnz0h4vai/tpNOI95tCd5ZT3iBt/DBH5lXKHZsyNQv18yf1wIIg2ntiQNgmAvA+DgZ82iW8Qdym8g==", + "license": "MIT", + "dependencies": { + "@babel/traverse": "^7.25.9", + "@babel/types": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-compilation-targets": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.25.9.tgz", + "integrity": "sha512-j9Db8Suy6yV/VHa4qzrj9yZfZxhLWQdVnRlXxmKLYlhWUVB1sB2G5sxuWYXk/whHD9iW76PmNzxZ4UCnTQTVEQ==", + "license": "MIT", + "dependencies": { + "@babel/compat-data": "^7.25.9", + "@babel/helper-validator-option": "^7.25.9", + "browserslist": "^4.24.0", + "lru-cache": "^5.1.1", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-compilation-targets/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/helper-create-class-features-plugin": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.25.9.tgz", + "integrity": "sha512-UTZQMvt0d/rSz6KI+qdu7GQze5TIajwTS++GUozlw8VBJDEOAqSXwm1WvmYEZwqdqSGQshRocPDqrt4HBZB3fQ==", + "license": "MIT", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.25.9", + "@babel/helper-member-expression-to-functions": "^7.25.9", + "@babel/helper-optimise-call-expression": "^7.25.9", + "@babel/helper-replace-supers": "^7.25.9", + "@babel/helper-skip-transparent-expression-wrappers": "^7.25.9", + "@babel/traverse": "^7.25.9", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-create-class-features-plugin/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/helper-create-regexp-features-plugin": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.25.9.tgz", + "integrity": "sha512-ORPNZ3h6ZRkOyAa/SaHU+XsLZr0UQzRwuDQ0cczIA17nAzZ+85G5cVkOJIj7QavLZGSe8QXUmNFxSZzjcZF9bw==", + "license": "MIT", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.25.9", + "regexpu-core": "^6.1.1", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-create-regexp-features-plugin/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/helper-define-polyfill-provider": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.6.3.tgz", + "integrity": "sha512-HK7Bi+Hj6H+VTHA3ZvBis7V/6hu9QuTrnMXNybfUf2iiuU/N97I8VjB+KbhFF8Rld/Lx5MzoCwPCpPjfK+n8Cg==", + "license": "MIT", + "dependencies": { + "@babel/helper-compilation-targets": "^7.22.6", + "@babel/helper-plugin-utils": "^7.22.5", + "debug": "^4.1.1", + "lodash.debounce": "^4.0.8", + "resolve": "^1.14.2" + }, + "peerDependencies": { + "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" + } + }, + "node_modules/@babel/helper-member-expression-to-functions": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.25.9.tgz", + "integrity": "sha512-wbfdZ9w5vk0C0oyHqAJbc62+vet5prjj01jjJ8sKn3j9h3MQQlflEdXYvuqRWjHnM12coDEqiC1IRCi0U/EKwQ==", + "license": "MIT", + "dependencies": { + "@babel/traverse": "^7.25.9", + "@babel/types": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-imports": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.25.9.tgz", + "integrity": "sha512-tnUA4RsrmflIM6W6RFTLFSXITtl0wKjgpnLgXyowocVPrbYrLUXSBXDgTs8BlbmIzIdlBySRQjINYs2BAkiLtw==", + "license": "MIT", + "dependencies": { + "@babel/traverse": "^7.25.9", + "@babel/types": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-transforms": { + "version": "7.26.0", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.26.0.tgz", + "integrity": "sha512-xO+xu6B5K2czEnQye6BHA7DolFFmS3LB7stHZFaOLb1pAwO1HWLS8fXA+eh0A2yIvltPVmx3eNNDBJA2SLHXFw==", + "license": "MIT", + "dependencies": { + "@babel/helper-module-imports": "^7.25.9", + "@babel/helper-validator-identifier": "^7.25.9", + "@babel/traverse": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-optimise-call-expression": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.25.9.tgz", + "integrity": "sha512-FIpuNaz5ow8VyrYcnXQTDRGvV6tTjkNtCK/RYNDXGSLlUD6cBuQTSw43CShGxjvfBTfcUA/r6UhUCbtYqkhcuQ==", + "license": "MIT", + "dependencies": { + "@babel/types": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-plugin-utils": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.25.9.tgz", + "integrity": "sha512-kSMlyUVdWe25rEsRGviIgOWnoT/nfABVWlqt9N19/dIPWViAOW2s9wznP5tURbs/IDuNk4gPy3YdYRgH3uxhBw==", + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-remap-async-to-generator": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.25.9.tgz", + "integrity": "sha512-IZtukuUeBbhgOcaW2s06OXTzVNJR0ybm4W5xC1opWFFJMZbwRj5LCk+ByYH7WdZPZTt8KnFwA8pvjN2yqcPlgw==", + "license": "MIT", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.25.9", + "@babel/helper-wrap-function": "^7.25.9", + "@babel/traverse": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-replace-supers": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.25.9.tgz", + "integrity": "sha512-IiDqTOTBQy0sWyeXyGSC5TBJpGFXBkRynjBeXsvbhQFKj2viwJC76Epz35YLU1fpe/Am6Vppb7W7zM4fPQzLsQ==", + "license": "MIT", + "dependencies": { + "@babel/helper-member-expression-to-functions": "^7.25.9", + "@babel/helper-optimise-call-expression": "^7.25.9", + "@babel/traverse": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-simple-access": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.25.9.tgz", + "integrity": "sha512-c6WHXuiaRsJTyHYLJV75t9IqsmTbItYfdj99PnzYGQZkYKvan5/2jKJ7gu31J3/BJ/A18grImSPModuyG/Eo0Q==", + "license": "MIT", + "dependencies": { + "@babel/traverse": "^7.25.9", + "@babel/types": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-skip-transparent-expression-wrappers": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.25.9.tgz", + "integrity": "sha512-K4Du3BFa3gvyhzgPcntrkDgZzQaq6uozzcpGbOO1OEJaI+EJdqWIMTLgFgQf6lrfiDFo5FU+BxKepI9RmZqahA==", + "license": "MIT", + "dependencies": { + "@babel/traverse": "^7.25.9", + "@babel/types": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-string-parser": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.25.9.tgz", + "integrity": "sha512-4A/SCr/2KLd5jrtOMFzaKjVtAei3+2r/NChoBNoZ3EyP/+GlhoaEGoWOZUmFmoITP7zOJyHIMm+DYRd8o3PvHA==", + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-identifier": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.25.9.tgz", + "integrity": "sha512-Ed61U6XJc3CVRfkERJWDz4dJwKe7iLmmJsbOGu9wSloNSFttHV0I8g6UAgb7qnK5ly5bGLPd4oXZlxCdANBOWQ==", + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-option": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.25.9.tgz", + "integrity": "sha512-e/zv1co8pp55dNdEcCynfj9X7nyUKUXoUEwfXqaZt0omVOmDe9oOTdKStH4GmAw6zxMFs50ZayuMfHDKlO7Tfw==", + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-wrap-function": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.25.9.tgz", + "integrity": "sha512-ETzz9UTjQSTmw39GboatdymDq4XIQbR8ySgVrylRhPOFpsd+JrKHIuF0de7GCWmem+T4uC5z7EZguod7Wj4A4g==", + "license": "MIT", + "dependencies": { + "@babel/template": "^7.25.9", + "@babel/traverse": "^7.25.9", + "@babel/types": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helpers": { + "version": "7.26.0", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.26.0.tgz", + "integrity": "sha512-tbhNuIxNcVb21pInl3ZSjksLCvgdZy9KwJ8brv993QtIVKJBBkYXz4q4ZbAv31GdnC+R90np23L5FbEBlthAEw==", + "license": "MIT", + "dependencies": { + "@babel/template": "^7.25.9", + "@babel/types": "^7.26.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/parser": { + "version": "7.26.2", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.26.2.tgz", + "integrity": "sha512-DWMCZH9WA4Maitz2q21SRKHo9QXZxkDsbNZoVD62gusNtNBBqDg9i7uOhASfTfIGNzW+O+r7+jAlM8dwphcJKQ==", + "license": "MIT", + "dependencies": { + "@babel/types": "^7.26.0" + }, + "bin": { + "parser": "bin/babel-parser.js" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/plugin-bugfix-firefox-class-in-computed-class-key": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-firefox-class-in-computed-class-key/-/plugin-bugfix-firefox-class-in-computed-class-key-7.25.9.tgz", + "integrity": "sha512-ZkRyVkThtxQ/J6nv3JFYv1RYY+JT5BvU0y3k5bWrmuG4woXypRa4PXmm9RhOwodRkYFWqC0C0cqcJ4OqR7kW+g==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.9", + "@babel/traverse": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-bugfix-safari-class-field-initializer-scope": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-class-field-initializer-scope/-/plugin-bugfix-safari-class-field-initializer-scope-7.25.9.tgz", + "integrity": "sha512-MrGRLZxLD/Zjj0gdU15dfs+HH/OXvnw/U4jJD8vpcP2CJQapPEv1IWwjc/qMg7ItBlPwSv1hRBbb7LeuANdcnw==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.25.9.tgz", + "integrity": "sha512-2qUwwfAFpJLZqxd02YW9btUCZHl+RFvdDkNfZwaIJrvB8Tesjsk8pEQkTvGwZXLqXUx/2oyY3ySRhm6HOXuCug==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.25.9.tgz", + "integrity": "sha512-6xWgLZTJXwilVjlnV7ospI3xi+sl8lN8rXXbBD6vYn3UYDlGsag8wrZkKcSI8G6KgqKP7vNFaDgeDnfAABq61g==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.9", + "@babel/helper-skip-transparent-expression-wrappers": "^7.25.9", + "@babel/plugin-transform-optional-chaining": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.13.0" + } + }, + "node_modules/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly/-/plugin-bugfix-v8-static-class-fields-redefine-readonly-7.25.9.tgz", + "integrity": "sha512-aLnMXYPnzwwqhYSCyXfKkIkYgJ8zv9RK+roo9DkTXz38ynIhd9XCbN08s3MGvqL2MYGVUGdRQLL/JqBIeJhJBg==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.9", + "@babel/traverse": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-proposal-class-properties": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.18.6.tgz", + "integrity": "sha512-cumfXOF0+nzZrrN8Rf0t7M+tF6sZc7vhQwYQck9q1/5w2OExlD+b4v4RpMJFaV1Z7WcDRgO6FqvxqxGlwo+RHQ==", + "deprecated": "This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-class-properties instead.", + "license": "MIT", + "dependencies": { + "@babel/helper-create-class-features-plugin": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-decorators": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-decorators/-/plugin-proposal-decorators-7.25.9.tgz", + "integrity": "sha512-smkNLL/O1ezy9Nhy4CNosc4Va+1wo5w4gzSZeLe6y6dM4mmHfYOCPolXQPHQxonZCF+ZyebxN9vqOolkYrSn5g==", + "license": "MIT", + "dependencies": { + "@babel/helper-create-class-features-plugin": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9", + "@babel/plugin-syntax-decorators": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-nullish-coalescing-operator": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.18.6.tgz", + "integrity": "sha512-wQxQzxYeJqHcfppzBDnm1yAY0jSRkUXR2z8RePZYrKwMKgMlE8+Z6LUno+bd6LvbGh8Gltvy74+9pIYkr+XkKA==", + "deprecated": "This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-nullish-coalescing-operator instead.", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.6", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-numeric-separator": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.18.6.tgz", + "integrity": "sha512-ozlZFogPqoLm8WBr5Z8UckIoE4YQ5KESVcNudyXOR8uqIkliTEgJ3RoketfG6pmzLdeZF0H/wjE9/cCEitBl7Q==", + "deprecated": "This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-numeric-separator instead.", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.6", + "@babel/plugin-syntax-numeric-separator": "^7.10.4" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-optional-chaining": { + "version": "7.21.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.21.0.tgz", + "integrity": "sha512-p4zeefM72gpmEe2fkUr/OnOXpWEf8nAgk7ZYVqqfFiyIG7oFfVZcCrU64hWn5xp4tQ9LkV4bTIa5rD0KANpKNA==", + "deprecated": "This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-optional-chaining instead.", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.20.2", + "@babel/helper-skip-transparent-expression-wrappers": "^7.20.0", + "@babel/plugin-syntax-optional-chaining": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-private-methods": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.18.6.tgz", + "integrity": "sha512-nutsvktDItsNn4rpGItSNV2sz1XwS+nfU0Rg8aCx3W3NOKVzdMjJRu0O5OkgDp3ZGICSTbgRpxZoWsxoKRvbeA==", + "deprecated": "This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-private-methods instead.", + "license": "MIT", + "dependencies": { + "@babel/helper-create-class-features-plugin": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-private-property-in-object": { + "version": "7.21.11", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.21.11.tgz", + "integrity": "sha512-0QZ8qP/3RLDVBwBFoWAwCtgcDZJVwA5LUJRZU8x2YFfKNuFq161wK3cuGrALu5yiPu+vzwTAg/sMWVNeWeNyaw==", + "deprecated": "This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-private-property-in-object instead.", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.18.6", + "@babel/helper-create-class-features-plugin": "^7.21.0", + "@babel/helper-plugin-utils": "^7.20.2", + "@babel/plugin-syntax-private-property-in-object": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-async-generators": { + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz", + "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-bigint": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-bigint/-/plugin-syntax-bigint-7.8.3.tgz", + "integrity": "sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-class-properties": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz", + "integrity": "sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.12.13" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-class-static-block": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-static-block/-/plugin-syntax-class-static-block-7.14.5.tgz", + "integrity": "sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-decorators": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-decorators/-/plugin-syntax-decorators-7.25.9.tgz", + "integrity": "sha512-ryzI0McXUPJnRCvMo4lumIKZUzhYUO/ScI+Mz4YVaTLt04DHNSjEUjKVvbzQjZFLuod/cYEc07mJWhzl6v4DPg==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-flow": { + "version": "7.26.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-flow/-/plugin-syntax-flow-7.26.0.tgz", + "integrity": "sha512-B+O2DnPc0iG+YXFqOxv2WNuNU97ToWjOomUQ78DouOENWUaM5sVrmet9mcomUGQFwpJd//gvUagXBSdzO1fRKg==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-import-assertions": { + "version": "7.26.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.26.0.tgz", + "integrity": "sha512-QCWT5Hh830hK5EQa7XzuqIkQU9tT/whqbDz7kuaZMHFl1inRRg7JnuAEOQ0Ur0QUl0NufCk1msK2BeY79Aj/eg==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-import-attributes": { + "version": "7.26.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.26.0.tgz", + "integrity": "sha512-e2dttdsJ1ZTpi3B9UYGLw41hifAubg19AtCu/2I/F1QNVclOBr1dYpTdmdyZ84Xiz43BS/tCUkMAZNLv12Pi+A==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-import-meta": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz", + "integrity": "sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-json-strings": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz", + "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-jsx": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.25.9.tgz", + "integrity": "sha512-ld6oezHQMZsZfp6pWtbjaNDF2tiiCYYDqQszHt5VV437lewP9aSi2Of99CK0D0XB21k7FLgnLcmQKyKzynfeAA==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-logical-assignment-operators": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz", + "integrity": "sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-nullish-coalescing-operator": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz", + "integrity": "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-numeric-separator": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz", + "integrity": "sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-object-rest-spread": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz", + "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-optional-catch-binding": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz", + "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-optional-chaining": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz", + "integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-private-property-in-object": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-private-property-in-object/-/plugin-syntax-private-property-in-object-7.14.5.tgz", + "integrity": "sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-top-level-await": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz", + "integrity": "sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-typescript": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.25.9.tgz", + "integrity": "sha512-hjMgRy5hb8uJJjUcdWunWVcoi9bGpJp8p5Ol1229PoN6aytsLwNMgmdftO23wnCLMfVmTwZDWMPNq/D1SY60JQ==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-unicode-sets-regex": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-unicode-sets-regex/-/plugin-syntax-unicode-sets-regex-7.18.6.tgz", + "integrity": "sha512-727YkEAPwSIQTv5im8QHz3upqp92JTWhidIC81Tdx4VJYIte/VndKf1qKrfnnhPLiPghStWfvC/iFaMCQu7Nqg==", + "license": "MIT", + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-transform-arrow-functions": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.25.9.tgz", + "integrity": "sha512-6jmooXYIwn9ca5/RylZADJ+EnSxVUS5sjeJ9UPk6RWRzXCmOJCy6dqItPJFpw2cuCangPK4OYr5uhGKcmrm5Qg==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-async-generator-functions": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.25.9.tgz", + "integrity": "sha512-RXV6QAzTBbhDMO9fWwOmwwTuYaiPbggWQ9INdZqAYeSHyG7FzQ+nOZaUUjNwKv9pV3aE4WFqFm1Hnbci5tBCAw==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.9", + "@babel/helper-remap-async-to-generator": "^7.25.9", + "@babel/traverse": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-async-to-generator": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.25.9.tgz", + "integrity": "sha512-NT7Ejn7Z/LjUH0Gv5KsBCxh7BH3fbLTV0ptHvpeMvrt3cPThHfJfst9Wrb7S8EvJ7vRTFI7z+VAvFVEQn/m5zQ==", + "license": "MIT", + "dependencies": { + "@babel/helper-module-imports": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9", + "@babel/helper-remap-async-to-generator": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-block-scoped-functions": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.25.9.tgz", + "integrity": "sha512-toHc9fzab0ZfenFpsyYinOX0J/5dgJVA2fm64xPewu7CoYHWEivIWKxkK2rMi4r3yQqLnVmheMXRdG+k239CgA==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-block-scoping": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.25.9.tgz", + "integrity": "sha512-1F05O7AYjymAtqbsFETboN1NvBdcnzMerO+zlMyJBEz6WkMdejvGWw9p05iTSjC85RLlBseHHQpYaM4gzJkBGg==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-class-properties": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-properties/-/plugin-transform-class-properties-7.25.9.tgz", + "integrity": "sha512-bbMAII8GRSkcd0h0b4X+36GksxuheLFjP65ul9w6C3KgAamI3JqErNgSrosX6ZPj+Mpim5VvEbawXxJCyEUV3Q==", + "license": "MIT", + "dependencies": { + "@babel/helper-create-class-features-plugin": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-class-static-block": { + "version": "7.26.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-static-block/-/plugin-transform-class-static-block-7.26.0.tgz", + "integrity": "sha512-6J2APTs7BDDm+UMqP1useWqhcRAXo0WIoVj26N7kPFB6S73Lgvyka4KTZYIxtgYXiN5HTyRObA72N2iu628iTQ==", + "license": "MIT", + "dependencies": { + "@babel/helper-create-class-features-plugin": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.12.0" + } + }, + "node_modules/@babel/plugin-transform-classes": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.25.9.tgz", + "integrity": "sha512-mD8APIXmseE7oZvZgGABDyM34GUmK45Um2TXiBUt7PnuAxrgoSVf123qUzPxEr/+/BHrRn5NMZCdE2m/1F8DGg==", + "license": "MIT", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.25.9", + "@babel/helper-compilation-targets": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9", + "@babel/helper-replace-supers": "^7.25.9", + "@babel/traverse": "^7.25.9", + "globals": "^11.1.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-computed-properties": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.25.9.tgz", + "integrity": "sha512-HnBegGqXZR12xbcTHlJ9HGxw1OniltT26J5YpfruGqtUHlz/xKf/G2ak9e+t0rVqrjXa9WOhvYPz1ERfMj23AA==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.9", + "@babel/template": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-destructuring": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.25.9.tgz", + "integrity": "sha512-WkCGb/3ZxXepmMiX101nnGiU+1CAdut8oHyEOHxkKuS1qKpU2SMXE2uSvfz8PBuLd49V6LEsbtyPhWC7fnkgvQ==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-dotall-regex": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.25.9.tgz", + "integrity": "sha512-t7ZQ7g5trIgSRYhI9pIJtRl64KHotutUJsh4Eze5l7olJv+mRSg4/MmbZ0tv1eeqRbdvo/+trvJD/Oc5DmW2cA==", + "license": "MIT", + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-duplicate-keys": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.25.9.tgz", + "integrity": "sha512-LZxhJ6dvBb/f3x8xwWIuyiAHy56nrRG3PeYTpBkkzkYRRQ6tJLu68lEF5VIqMUZiAV7a8+Tb78nEoMCMcqjXBw==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-duplicate-named-capturing-groups-regex": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-named-capturing-groups-regex/-/plugin-transform-duplicate-named-capturing-groups-regex-7.25.9.tgz", + "integrity": "sha512-0UfuJS0EsXbRvKnwcLjFtJy/Sxc5J5jhLHnFhy7u4zih97Hz6tJkLU+O+FMMrNZrosUPxDi6sYxJ/EA8jDiAog==", + "license": "MIT", + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-transform-dynamic-import": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dynamic-import/-/plugin-transform-dynamic-import-7.25.9.tgz", + "integrity": "sha512-GCggjexbmSLaFhqsojeugBpeaRIgWNTcgKVq/0qIteFEqY2A+b9QidYadrWlnbWQUrW5fn+mCvf3tr7OeBFTyg==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-exponentiation-operator": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.25.9.tgz", + "integrity": "sha512-KRhdhlVk2nObA5AYa7QMgTMTVJdfHprfpAk4DjZVtllqRg9qarilstTKEhpVjyt+Npi8ThRyiV8176Am3CodPA==", + "license": "MIT", + "dependencies": { + "@babel/helper-builder-binary-assignment-operator-visitor": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-export-namespace-from": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-export-namespace-from/-/plugin-transform-export-namespace-from-7.25.9.tgz", + "integrity": "sha512-2NsEz+CxzJIVOPx2o9UsW1rXLqtChtLoVnwYHHiB04wS5sgn7mrV45fWMBX0Kk+ub9uXytVYfNP2HjbVbCB3Ww==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-flow-strip-types": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-flow-strip-types/-/plugin-transform-flow-strip-types-7.25.9.tgz", + "integrity": "sha512-/VVukELzPDdci7UUsWQaSkhgnjIWXnIyRpM02ldxaVoFK96c41So8JcKT3m0gYjyv7j5FNPGS5vfELrWalkbDA==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.9", + "@babel/plugin-syntax-flow": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-for-of": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.25.9.tgz", + "integrity": "sha512-LqHxduHoaGELJl2uhImHwRQudhCM50pT46rIBNvtT/Oql3nqiS3wOwP+5ten7NpYSXrrVLgtZU3DZmPtWZo16A==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.9", + "@babel/helper-skip-transparent-expression-wrappers": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-function-name": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.25.9.tgz", + "integrity": "sha512-8lP+Yxjv14Vc5MuWBpJsoUCd3hD6V9DgBon2FVYL4jJgbnVQ9fTgYmonchzZJOVNgzEgbxp4OwAf6xz6M/14XA==", + "license": "MIT", + "dependencies": { + "@babel/helper-compilation-targets": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9", + "@babel/traverse": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-json-strings": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-json-strings/-/plugin-transform-json-strings-7.25.9.tgz", + "integrity": "sha512-xoTMk0WXceiiIvsaquQQUaLLXSW1KJ159KP87VilruQm0LNNGxWzahxSS6T6i4Zg3ezp4vA4zuwiNUR53qmQAw==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-literals": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.25.9.tgz", + "integrity": "sha512-9N7+2lFziW8W9pBl2TzaNht3+pgMIRP74zizeCSrtnSKVdUl8mAjjOP2OOVQAfZ881P2cNjDj1uAMEdeD50nuQ==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-logical-assignment-operators": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-logical-assignment-operators/-/plugin-transform-logical-assignment-operators-7.25.9.tgz", + "integrity": "sha512-wI4wRAzGko551Y8eVf6iOY9EouIDTtPb0ByZx+ktDGHwv6bHFimrgJM/2T021txPZ2s4c7bqvHbd+vXG6K948Q==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-member-expression-literals": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.25.9.tgz", + "integrity": "sha512-PYazBVfofCQkkMzh2P6IdIUaCEWni3iYEerAsRWuVd8+jlM1S9S9cz1dF9hIzyoZ8IA3+OwVYIp9v9e+GbgZhA==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-modules-amd": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.25.9.tgz", + "integrity": "sha512-g5T11tnI36jVClQlMlt4qKDLlWnG5pP9CSM4GhdRciTNMRgkfpo5cR6b4rGIOYPgRRuFAvwjPQ/Yk+ql4dyhbw==", + "license": "MIT", + "dependencies": { + "@babel/helper-module-transforms": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-modules-commonjs": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.25.9.tgz", + "integrity": "sha512-dwh2Ol1jWwL2MgkCzUSOvfmKElqQcuswAZypBSUsScMXvgdT8Ekq5YA6TtqpTVWH+4903NmboMuH1o9i8Rxlyg==", + "license": "MIT", + "dependencies": { + "@babel/helper-module-transforms": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9", + "@babel/helper-simple-access": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-modules-systemjs": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.25.9.tgz", + "integrity": "sha512-hyss7iIlH/zLHaehT+xwiymtPOpsiwIIRlCAOwBB04ta5Tt+lNItADdlXw3jAWZ96VJ2jlhl/c+PNIQPKNfvcA==", + "license": "MIT", + "dependencies": { + "@babel/helper-module-transforms": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9", + "@babel/helper-validator-identifier": "^7.25.9", + "@babel/traverse": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-modules-umd": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.25.9.tgz", + "integrity": "sha512-bS9MVObUgE7ww36HEfwe6g9WakQ0KF07mQF74uuXdkoziUPfKyu/nIm663kz//e5O1nPInPFx36z7WJmJ4yNEw==", + "license": "MIT", + "dependencies": { + "@babel/helper-module-transforms": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-named-capturing-groups-regex": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.25.9.tgz", + "integrity": "sha512-oqB6WHdKTGl3q/ItQhpLSnWWOpjUJLsOCLVyeFgeTktkBSCiurvPOsyt93gibI9CmuKvTUEtWmG5VhZD+5T/KA==", + "license": "MIT", + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-transform-new-target": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.25.9.tgz", + "integrity": "sha512-U/3p8X1yCSoKyUj2eOBIx3FOn6pElFOKvAAGf8HTtItuPyB+ZeOqfn+mvTtg9ZlOAjsPdK3ayQEjqHjU/yLeVQ==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-nullish-coalescing-operator": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-nullish-coalescing-operator/-/plugin-transform-nullish-coalescing-operator-7.25.9.tgz", + "integrity": "sha512-ENfftpLZw5EItALAD4WsY/KUWvhUlZndm5GC7G3evUsVeSJB6p0pBeLQUnRnBCBx7zV0RKQjR9kCuwrsIrjWog==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-numeric-separator": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-numeric-separator/-/plugin-transform-numeric-separator-7.25.9.tgz", + "integrity": "sha512-TlprrJ1GBZ3r6s96Yq8gEQv82s8/5HnCVHtEJScUj90thHQbwe+E5MLhi2bbNHBEJuzrvltXSru+BUxHDoog7Q==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-object-rest-spread": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.25.9.tgz", + "integrity": "sha512-fSaXafEE9CVHPweLYw4J0emp1t8zYTXyzN3UuG+lylqkvYd7RMrsOQ8TYx5RF231be0vqtFC6jnx3UmpJmKBYg==", + "license": "MIT", + "dependencies": { + "@babel/helper-compilation-targets": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9", + "@babel/plugin-transform-parameters": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-object-super": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.25.9.tgz", + "integrity": "sha512-Kj/Gh+Rw2RNLbCK1VAWj2U48yxxqL2x0k10nPtSdRa0O2xnHXalD0s+o1A6a0W43gJ00ANo38jxkQreckOzv5A==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.9", + "@babel/helper-replace-supers": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-optional-catch-binding": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-catch-binding/-/plugin-transform-optional-catch-binding-7.25.9.tgz", + "integrity": "sha512-qM/6m6hQZzDcZF3onzIhZeDHDO43bkNNlOX0i8n3lR6zLbu0GN2d8qfM/IERJZYauhAHSLHy39NF0Ctdvcid7g==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-optional-chaining": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.25.9.tgz", + "integrity": "sha512-6AvV0FsLULbpnXeBjrY4dmWF8F7gf8QnvTEoO/wX/5xm/xE1Xo8oPuD3MPS+KS9f9XBEAWN7X1aWr4z9HdOr7A==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.9", + "@babel/helper-skip-transparent-expression-wrappers": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-parameters": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.25.9.tgz", + "integrity": "sha512-wzz6MKwpnshBAiRmn4jR8LYz/g8Ksg0o80XmwZDlordjwEk9SxBzTWC7F5ef1jhbrbOW2DJ5J6ayRukrJmnr0g==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-private-methods": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-methods/-/plugin-transform-private-methods-7.25.9.tgz", + "integrity": "sha512-D/JUozNpQLAPUVusvqMxyvjzllRaF8/nSrP1s2YGQT/W4LHK4xxsMcHjhOGTS01mp9Hda8nswb+FblLdJornQw==", + "license": "MIT", + "dependencies": { + "@babel/helper-create-class-features-plugin": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-private-property-in-object": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-property-in-object/-/plugin-transform-private-property-in-object-7.25.9.tgz", + "integrity": "sha512-Evf3kcMqzXA3xfYJmZ9Pg1OvKdtqsDMSWBDzZOPLvHiTt36E75jLDQo5w1gtRU95Q4E5PDttrTf25Fw8d/uWLw==", + "license": "MIT", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.25.9", + "@babel/helper-create-class-features-plugin": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-property-literals": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.25.9.tgz", + "integrity": "sha512-IvIUeV5KrS/VPavfSM/Iu+RE6llrHrYIKY1yfCzyO/lMXHQ+p7uGhonmGVisv6tSBSVgWzMBohTcvkC9vQcQFA==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-react-constant-elements": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-constant-elements/-/plugin-transform-react-constant-elements-7.25.9.tgz", + "integrity": "sha512-Ncw2JFsJVuvfRsa2lSHiC55kETQVLSnsYGQ1JDDwkUeWGTL/8Tom8aLTnlqgoeuopWrbbGndrc9AlLYrIosrow==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-react-display-name": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.25.9.tgz", + "integrity": "sha512-KJfMlYIUxQB1CJfO3e0+h0ZHWOTLCPP115Awhaz8U0Zpq36Gl/cXlpoyMRnUWlhNUBAzldnCiAZNvCDj7CrKxQ==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-react-jsx": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.25.9.tgz", + "integrity": "sha512-s5XwpQYCqGerXl+Pu6VDL3x0j2d82eiV77UJ8a2mDHAW7j9SWRqQ2y1fNo1Z74CdcYipl5Z41zvjj4Nfzq36rw==", + "license": "MIT", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.25.9", + "@babel/helper-module-imports": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9", + "@babel/plugin-syntax-jsx": "^7.25.9", + "@babel/types": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-react-jsx-development": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-development/-/plugin-transform-react-jsx-development-7.25.9.tgz", + "integrity": "sha512-9mj6rm7XVYs4mdLIpbZnHOYdpW42uoiBCTVowg7sP1thUOiANgMb4UtpRivR0pp5iL+ocvUv7X4mZgFRpJEzGw==", + "license": "MIT", + "dependencies": { + "@babel/plugin-transform-react-jsx": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-react-pure-annotations": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-pure-annotations/-/plugin-transform-react-pure-annotations-7.25.9.tgz", + "integrity": "sha512-KQ/Takk3T8Qzj5TppkS1be588lkbTp5uj7w6a0LeQaTMSckU/wK0oJ/pih+T690tkgI5jfmg2TqDJvd41Sj1Cg==", + "license": "MIT", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-regenerator": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.25.9.tgz", + "integrity": "sha512-vwDcDNsgMPDGP0nMqzahDWE5/MLcX8sv96+wfX7as7LoF/kr97Bo/7fI00lXY4wUXYfVmwIIyG80fGZ1uvt2qg==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.9", + "regenerator-transform": "^0.15.2" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-regexp-modifiers": { + "version": "7.26.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regexp-modifiers/-/plugin-transform-regexp-modifiers-7.26.0.tgz", + "integrity": "sha512-vN6saax7lrA2yA/Pak3sCxuD6F5InBjn9IcrIKQPjpsLvuHYLVroTxjdlVRHjjBWxKOqIwpTXDkOssYT4BFdRw==", + "license": "MIT", + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-transform-reserved-words": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.25.9.tgz", + "integrity": "sha512-7DL7DKYjn5Su++4RXu8puKZm2XBPHyjWLUidaPEkCUBbE7IPcsrkRHggAOOKydH1dASWdcUBxrkOGNxUv5P3Jg==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-runtime": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.25.9.tgz", + "integrity": "sha512-nZp7GlEl+yULJrClz0SwHPqir3lc0zsPrDHQUcxGspSL7AKrexNSEfTbfqnDNJUO13bgKyfuOLMF8Xqtu8j3YQ==", + "license": "MIT", + "dependencies": { + "@babel/helper-module-imports": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9", + "babel-plugin-polyfill-corejs2": "^0.4.10", + "babel-plugin-polyfill-corejs3": "^0.10.6", + "babel-plugin-polyfill-regenerator": "^0.6.1", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-runtime/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/plugin-transform-shorthand-properties": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.25.9.tgz", + "integrity": "sha512-MUv6t0FhO5qHnS/W8XCbHmiRWOphNufpE1IVxhK5kuN3Td9FT1x4rx4K42s3RYdMXCXpfWkGSbCSd0Z64xA7Ng==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-spread": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.25.9.tgz", + "integrity": "sha512-oNknIB0TbURU5pqJFVbOOFspVlrpVwo2H1+HUIsVDvp5VauGGDP1ZEvO8Nn5xyMEs3dakajOxlmkNW7kNgSm6A==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.9", + "@babel/helper-skip-transparent-expression-wrappers": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-sticky-regex": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.25.9.tgz", + "integrity": "sha512-WqBUSgeVwucYDP9U/xNRQam7xV8W5Zf+6Eo7T2SRVUFlhRiMNFdFz58u0KZmCVVqs2i7SHgpRnAhzRNmKfi2uA==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-template-literals": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.25.9.tgz", + "integrity": "sha512-o97AE4syN71M/lxrCtQByzphAdlYluKPDBzDVzMmfCobUjjhAryZV0AIpRPrxN0eAkxXO6ZLEScmt+PNhj2OTw==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-typeof-symbol": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.25.9.tgz", + "integrity": "sha512-v61XqUMiueJROUv66BVIOi0Fv/CUuZuZMl5NkRoCVxLAnMexZ0A3kMe7vvZ0nulxMuMp0Mk6S5hNh48yki08ZA==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-typescript": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.25.9.tgz", + "integrity": "sha512-7PbZQZP50tzv2KGGnhh82GSyMB01yKY9scIjf1a+GfZCtInOWqUH5+1EBU4t9fyR5Oykkkc9vFTs4OHrhHXljQ==", + "license": "MIT", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.25.9", + "@babel/helper-create-class-features-plugin": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9", + "@babel/helper-skip-transparent-expression-wrappers": "^7.25.9", + "@babel/plugin-syntax-typescript": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-unicode-escapes": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.25.9.tgz", + "integrity": "sha512-s5EDrE6bW97LtxOcGj1Khcx5AaXwiMmi4toFWRDP9/y0Woo6pXC+iyPu/KuhKtfSrNFd7jJB+/fkOtZy6aIC6Q==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-unicode-property-regex": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-property-regex/-/plugin-transform-unicode-property-regex-7.25.9.tgz", + "integrity": "sha512-Jt2d8Ga+QwRluxRQ307Vlxa6dMrYEMZCgGxoPR8V52rxPyldHu3hdlHspxaqYmE7oID5+kB+UKUB/eWS+DkkWg==", + "license": "MIT", + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-unicode-regex": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.25.9.tgz", + "integrity": "sha512-yoxstj7Rg9dlNn9UQxzk4fcNivwv4nUYz7fYXBaKxvw/lnmPuOm/ikoELygbYq68Bls3D/D+NBPHiLwZdZZ4HA==", + "license": "MIT", + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-unicode-sets-regex": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-sets-regex/-/plugin-transform-unicode-sets-regex-7.25.9.tgz", + "integrity": "sha512-8BYqO3GeVNHtx69fdPshN3fnzUNLrWdHhk/icSwigksJGczKSizZ+Z6SBCxTs723Fr5VSNorTIK7a+R2tISvwQ==", + "license": "MIT", + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/preset-env": { + "version": "7.26.0", + "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.26.0.tgz", + "integrity": "sha512-H84Fxq0CQJNdPFT2DrfnylZ3cf5K43rGfWK4LJGPpjKHiZlk0/RzwEus3PDDZZg+/Er7lCA03MVacueUuXdzfw==", + "license": "MIT", + "dependencies": { + "@babel/compat-data": "^7.26.0", + "@babel/helper-compilation-targets": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9", + "@babel/helper-validator-option": "^7.25.9", + "@babel/plugin-bugfix-firefox-class-in-computed-class-key": "^7.25.9", + "@babel/plugin-bugfix-safari-class-field-initializer-scope": "^7.25.9", + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.25.9", + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.25.9", + "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": "^7.25.9", + "@babel/plugin-proposal-private-property-in-object": "7.21.0-placeholder-for-preset-env.2", + "@babel/plugin-syntax-import-assertions": "^7.26.0", + "@babel/plugin-syntax-import-attributes": "^7.26.0", + "@babel/plugin-syntax-unicode-sets-regex": "^7.18.6", + "@babel/plugin-transform-arrow-functions": "^7.25.9", + "@babel/plugin-transform-async-generator-functions": "^7.25.9", + "@babel/plugin-transform-async-to-generator": "^7.25.9", + "@babel/plugin-transform-block-scoped-functions": "^7.25.9", + "@babel/plugin-transform-block-scoping": "^7.25.9", + "@babel/plugin-transform-class-properties": "^7.25.9", + "@babel/plugin-transform-class-static-block": "^7.26.0", + "@babel/plugin-transform-classes": "^7.25.9", + "@babel/plugin-transform-computed-properties": "^7.25.9", + "@babel/plugin-transform-destructuring": "^7.25.9", + "@babel/plugin-transform-dotall-regex": "^7.25.9", + "@babel/plugin-transform-duplicate-keys": "^7.25.9", + "@babel/plugin-transform-duplicate-named-capturing-groups-regex": "^7.25.9", + "@babel/plugin-transform-dynamic-import": "^7.25.9", + "@babel/plugin-transform-exponentiation-operator": "^7.25.9", + "@babel/plugin-transform-export-namespace-from": "^7.25.9", + "@babel/plugin-transform-for-of": "^7.25.9", + "@babel/plugin-transform-function-name": "^7.25.9", + "@babel/plugin-transform-json-strings": "^7.25.9", + "@babel/plugin-transform-literals": "^7.25.9", + "@babel/plugin-transform-logical-assignment-operators": "^7.25.9", + "@babel/plugin-transform-member-expression-literals": "^7.25.9", + "@babel/plugin-transform-modules-amd": "^7.25.9", + "@babel/plugin-transform-modules-commonjs": "^7.25.9", + "@babel/plugin-transform-modules-systemjs": "^7.25.9", + "@babel/plugin-transform-modules-umd": "^7.25.9", + "@babel/plugin-transform-named-capturing-groups-regex": "^7.25.9", + "@babel/plugin-transform-new-target": "^7.25.9", + "@babel/plugin-transform-nullish-coalescing-operator": "^7.25.9", + "@babel/plugin-transform-numeric-separator": "^7.25.9", + "@babel/plugin-transform-object-rest-spread": "^7.25.9", + "@babel/plugin-transform-object-super": "^7.25.9", + "@babel/plugin-transform-optional-catch-binding": "^7.25.9", + "@babel/plugin-transform-optional-chaining": "^7.25.9", + "@babel/plugin-transform-parameters": "^7.25.9", + "@babel/plugin-transform-private-methods": "^7.25.9", + "@babel/plugin-transform-private-property-in-object": "^7.25.9", + "@babel/plugin-transform-property-literals": "^7.25.9", + "@babel/plugin-transform-regenerator": "^7.25.9", + "@babel/plugin-transform-regexp-modifiers": "^7.26.0", + "@babel/plugin-transform-reserved-words": "^7.25.9", + "@babel/plugin-transform-shorthand-properties": "^7.25.9", + "@babel/plugin-transform-spread": "^7.25.9", + "@babel/plugin-transform-sticky-regex": "^7.25.9", + "@babel/plugin-transform-template-literals": "^7.25.9", + "@babel/plugin-transform-typeof-symbol": "^7.25.9", + "@babel/plugin-transform-unicode-escapes": "^7.25.9", + "@babel/plugin-transform-unicode-property-regex": "^7.25.9", + "@babel/plugin-transform-unicode-regex": "^7.25.9", + "@babel/plugin-transform-unicode-sets-regex": "^7.25.9", + "@babel/preset-modules": "0.1.6-no-external-plugins", + "babel-plugin-polyfill-corejs2": "^0.4.10", + "babel-plugin-polyfill-corejs3": "^0.10.6", + "babel-plugin-polyfill-regenerator": "^0.6.1", + "core-js-compat": "^3.38.1", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/preset-env/node_modules/@babel/plugin-proposal-private-property-in-object": { + "version": "7.21.0-placeholder-for-preset-env.2", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.21.0-placeholder-for-preset-env.2.tgz", + "integrity": "sha512-SOSkfJDddaM7mak6cPEpswyTRnuRltl429hMraQEglW+OkovnCzsiszTmsrlY//qLFjCpQDFRvjdm2wA5pPm9w==", + "license": "MIT", + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/preset-env/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/preset-modules": { + "version": "0.1.6-no-external-plugins", + "resolved": "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.6-no-external-plugins.tgz", + "integrity": "sha512-HrcgcIESLm9aIR842yhJ5RWan/gebQUJ6E/E5+rf0y9o6oj7w0Br+sWuL6kEQ/o/AdfvR1Je9jG18/gnpwjEyA==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/types": "^7.4.4", + "esutils": "^2.0.2" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0 || ^8.0.0-0 <8.0.0" + } + }, + "node_modules/@babel/preset-react": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/preset-react/-/preset-react-7.25.9.tgz", + "integrity": "sha512-D3to0uSPiWE7rBrdIICCd0tJSIGpLaaGptna2+w7Pft5xMqLpA1sz99DK5TZ1TjGbdQ/VI1eCSZ06dv3lT4JOw==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.9", + "@babel/helper-validator-option": "^7.25.9", + "@babel/plugin-transform-react-display-name": "^7.25.9", + "@babel/plugin-transform-react-jsx": "^7.25.9", + "@babel/plugin-transform-react-jsx-development": "^7.25.9", + "@babel/plugin-transform-react-pure-annotations": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/preset-typescript": { + "version": "7.26.0", + "resolved": "https://registry.npmjs.org/@babel/preset-typescript/-/preset-typescript-7.26.0.tgz", + "integrity": "sha512-NMk1IGZ5I/oHhoXEElcm+xUnL/szL6xflkFZmoEU9xj1qSJXpiS7rsspYo92B4DRCDvZn2erT5LdsCeXAKNCkg==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.9", + "@babel/helper-validator-option": "^7.25.9", + "@babel/plugin-syntax-jsx": "^7.25.9", + "@babel/plugin-transform-modules-commonjs": "^7.25.9", + "@babel/plugin-transform-typescript": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/runtime": { + "version": "7.26.0", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.26.0.tgz", + "integrity": "sha512-FDSOghenHTiToteC/QRlv2q3DhPZ/oOXTBoirfWNx1Cx3TMVcGWQtMMmQcSvb/JjpNeGzx8Pq/b4fKEJuWm1sw==", + "license": "MIT", + "dependencies": { + "regenerator-runtime": "^0.14.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/template": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.25.9.tgz", + "integrity": "sha512-9DGttpmPvIxBb/2uwpVo3dqJ+O6RooAFOS+lB+xDqoE2PVCE8nfoHMdZLpfCQRLwvohzXISPZcgxt80xLfsuwg==", + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.25.9", + "@babel/parser": "^7.25.9", + "@babel/types": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/traverse": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.25.9.tgz", + "integrity": "sha512-ZCuvfwOwlz/bawvAuvcj8rrithP2/N55Tzz342AkTvq4qaWbGfmCk/tKhNaV2cthijKrPAA8SRJV5WWe7IBMJw==", + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.25.9", + "@babel/generator": "^7.25.9", + "@babel/parser": "^7.25.9", + "@babel/template": "^7.25.9", + "@babel/types": "^7.25.9", + "debug": "^4.3.1", + "globals": "^11.1.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/types": { + "version": "7.26.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.26.0.tgz", + "integrity": "sha512-Z/yiTPj+lDVnF7lWeKCIJzaIkI0vYO87dMpZ4bg4TDrFe4XXLFWL1TbXU27gBP3QccxV9mZICCrnjnYlJjXHOA==", + "license": "MIT", + "dependencies": { + "@babel/helper-string-parser": "^7.25.9", + "@babel/helper-validator-identifier": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@bcoe/v8-coverage": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz", + "integrity": "sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==", + "license": "MIT" + }, + "node_modules/@csstools/normalize.css": { + "version": "12.1.1", + "resolved": "https://registry.npmjs.org/@csstools/normalize.css/-/normalize.css-12.1.1.tgz", + "integrity": "sha512-YAYeJ+Xqh7fUou1d1j9XHl44BmsuThiTr4iNrgCQ3J27IbhXsxXDGZ1cXv8Qvs99d4rBbLiSKy3+WZiet32PcQ==", + "license": "CC0-1.0" + }, + "node_modules/@csstools/postcss-cascade-layers": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@csstools/postcss-cascade-layers/-/postcss-cascade-layers-1.1.1.tgz", + "integrity": "sha512-+KdYrpKC5TgomQr2DlZF4lDEpHcoxnj5IGddYYfBWJAKfj1JtuHUIqMa+E1pJJ+z3kvDViWMqyqPlG4Ja7amQA==", + "license": "CC0-1.0", + "dependencies": { + "@csstools/selector-specificity": "^2.0.2", + "postcss-selector-parser": "^6.0.10" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.2" + } + }, + "node_modules/@csstools/postcss-color-function": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@csstools/postcss-color-function/-/postcss-color-function-1.1.1.tgz", + "integrity": "sha512-Bc0f62WmHdtRDjf5f3e2STwRAl89N2CLb+9iAwzrv4L2hncrbDwnQD9PCq0gtAt7pOI2leIV08HIBUd4jxD8cw==", + "license": "CC0-1.0", + "dependencies": { + "@csstools/postcss-progressive-custom-properties": "^1.1.0", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.2" + } + }, + "node_modules/@csstools/postcss-font-format-keywords": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@csstools/postcss-font-format-keywords/-/postcss-font-format-keywords-1.0.1.tgz", + "integrity": "sha512-ZgrlzuUAjXIOc2JueK0X5sZDjCtgimVp/O5CEqTcs5ShWBa6smhWYbS0x5cVc/+rycTDbjjzoP0KTDnUneZGOg==", + "license": "CC0-1.0", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.2" + } + }, + "node_modules/@csstools/postcss-hwb-function": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@csstools/postcss-hwb-function/-/postcss-hwb-function-1.0.2.tgz", + "integrity": "sha512-YHdEru4o3Rsbjmu6vHy4UKOXZD+Rn2zmkAmLRfPet6+Jz4Ojw8cbWxe1n42VaXQhD3CQUXXTooIy8OkVbUcL+w==", + "license": "CC0-1.0", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.2" + } + }, + "node_modules/@csstools/postcss-ic-unit": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@csstools/postcss-ic-unit/-/postcss-ic-unit-1.0.1.tgz", + "integrity": "sha512-Ot1rcwRAaRHNKC9tAqoqNZhjdYBzKk1POgWfhN4uCOE47ebGcLRqXjKkApVDpjifL6u2/55ekkpnFcp+s/OZUw==", + "license": "CC0-1.0", + "dependencies": { + "@csstools/postcss-progressive-custom-properties": "^1.1.0", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.2" + } + }, + "node_modules/@csstools/postcss-is-pseudo-class": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/@csstools/postcss-is-pseudo-class/-/postcss-is-pseudo-class-2.0.7.tgz", + "integrity": "sha512-7JPeVVZHd+jxYdULl87lvjgvWldYu+Bc62s9vD/ED6/QTGjy0jy0US/f6BG53sVMTBJ1lzKZFpYmofBN9eaRiA==", + "license": "CC0-1.0", + "dependencies": { + "@csstools/selector-specificity": "^2.0.0", + "postcss-selector-parser": "^6.0.10" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.2" + } + }, + "node_modules/@csstools/postcss-nested-calc": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@csstools/postcss-nested-calc/-/postcss-nested-calc-1.0.0.tgz", + "integrity": "sha512-JCsQsw1wjYwv1bJmgjKSoZNvf7R6+wuHDAbi5f/7MbFhl2d/+v+TvBTU4BJH3G1X1H87dHl0mh6TfYogbT/dJQ==", + "license": "CC0-1.0", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.2" + } + }, + "node_modules/@csstools/postcss-normalize-display-values": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@csstools/postcss-normalize-display-values/-/postcss-normalize-display-values-1.0.1.tgz", + "integrity": "sha512-jcOanIbv55OFKQ3sYeFD/T0Ti7AMXc9nM1hZWu8m/2722gOTxFg7xYu4RDLJLeZmPUVQlGzo4jhzvTUq3x4ZUw==", + "license": "CC0-1.0", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.2" + } + }, + "node_modules/@csstools/postcss-oklab-function": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@csstools/postcss-oklab-function/-/postcss-oklab-function-1.1.1.tgz", + "integrity": "sha512-nJpJgsdA3dA9y5pgyb/UfEzE7W5Ka7u0CX0/HIMVBNWzWemdcTH3XwANECU6anWv/ao4vVNLTMxhiPNZsTK6iA==", + "license": "CC0-1.0", + "dependencies": { + "@csstools/postcss-progressive-custom-properties": "^1.1.0", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.2" + } + }, + "node_modules/@csstools/postcss-progressive-custom-properties": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/@csstools/postcss-progressive-custom-properties/-/postcss-progressive-custom-properties-1.3.0.tgz", + "integrity": "sha512-ASA9W1aIy5ygskZYuWams4BzafD12ULvSypmaLJT2jvQ8G0M3I8PRQhC0h7mG0Z3LI05+agZjqSR9+K9yaQQjA==", + "license": "CC0-1.0", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "peerDependencies": { + "postcss": "^8.3" + } + }, + "node_modules/@csstools/postcss-stepped-value-functions": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@csstools/postcss-stepped-value-functions/-/postcss-stepped-value-functions-1.0.1.tgz", + "integrity": "sha512-dz0LNoo3ijpTOQqEJLY8nyaapl6umbmDcgj4AD0lgVQ572b2eqA1iGZYTTWhrcrHztWDDRAX2DGYyw2VBjvCvQ==", + "license": "CC0-1.0", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.2" + } + }, + "node_modules/@csstools/postcss-text-decoration-shorthand": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@csstools/postcss-text-decoration-shorthand/-/postcss-text-decoration-shorthand-1.0.0.tgz", + "integrity": "sha512-c1XwKJ2eMIWrzQenN0XbcfzckOLLJiczqy+YvfGmzoVXd7pT9FfObiSEfzs84bpE/VqfpEuAZ9tCRbZkZxxbdw==", + "license": "CC0-1.0", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.2" + } + }, + "node_modules/@csstools/postcss-trigonometric-functions": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@csstools/postcss-trigonometric-functions/-/postcss-trigonometric-functions-1.0.2.tgz", + "integrity": "sha512-woKaLO///4bb+zZC2s80l+7cm07M7268MsyG3M0ActXXEFi6SuhvriQYcb58iiKGbjwwIU7n45iRLEHypB47Og==", + "license": "CC0-1.0", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.2" + } + }, + "node_modules/@csstools/postcss-unset-value": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@csstools/postcss-unset-value/-/postcss-unset-value-1.0.2.tgz", + "integrity": "sha512-c8J4roPBILnelAsdLr4XOAR/GsTm0GJi4XpcfvoWk3U6KiTCqiFYc63KhRMQQX35jYMp4Ao8Ij9+IZRgMfJp1g==", + "license": "CC0-1.0", + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.2" + } + }, + "node_modules/@csstools/selector-specificity": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@csstools/selector-specificity/-/selector-specificity-2.2.0.tgz", + "integrity": "sha512-+OJ9konv95ClSTOJCmMZqpd5+YGsB2S+x6w3E1oaM8UuR5j8nTNHYSz8c9BEPGDOCMQYIEEGlVPj/VY64iTbGw==", + "license": "CC0-1.0", + "engines": { + "node": "^14 || ^16 || >=18" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss-selector-parser": "^6.0.10" + } + }, + "node_modules/@emotion/is-prop-valid": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/@emotion/is-prop-valid/-/is-prop-valid-1.2.2.tgz", + "integrity": "sha512-uNsoYd37AFmaCdXlg6EYD1KaPOaRWRByMCYzbKUX4+hhMfrxdVSelShywL4JVaAeM/eHUOSprYBQls+/neX3pw==", + "license": "MIT", + "dependencies": { + "@emotion/memoize": "^0.8.1" + } + }, + "node_modules/@emotion/memoize": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/@emotion/memoize/-/memoize-0.8.1.tgz", + "integrity": "sha512-W2P2c/VRW1/1tLox0mVUalvnWXxavmv/Oum2aPsRcoDJuob75FC3Y8FbpfLwUegRcxINtGUMPq0tFCvYNTBXNA==", + "license": "MIT" + }, + "node_modules/@emotion/unitless": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/@emotion/unitless/-/unitless-0.8.1.tgz", + "integrity": "sha512-KOEGMu6dmJZtpadb476IsZBclKvILjopjUii3V+7MnXIQCYh8W3NgNcgwo21n9LXZX6EDIKvqfjYxXebDwxKmQ==", + "license": "MIT" + }, + "node_modules/@eslint-community/eslint-utils": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.1.tgz", + "integrity": "sha512-s3O3waFUrMV8P/XaF/+ZTp1X9XBZW1a4B97ZnjQF2KYWaFD2A8KyFBsrsfSjEmjn3RGWAIuvlneuZm3CUK3jbA==", + "license": "MIT", + "dependencies": { + "eslint-visitor-keys": "^3.4.3" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + }, + "peerDependencies": { + "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0" + } + }, + "node_modules/@eslint-community/regexpp": { + "version": "4.12.1", + "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.12.1.tgz", + "integrity": "sha512-CCZCDJuduB9OUkFkY2IgppNZMi2lBQgD2qzwXkEia16cge2pijY/aXi96CJMquDMn3nJdlPV1A5KrJEXwfLNzQ==", + "license": "MIT", + "engines": { + "node": "^12.0.0 || ^14.0.0 || >=16.0.0" + } + }, + "node_modules/@eslint/eslintrc": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.4.tgz", + "integrity": "sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==", + "license": "MIT", + "dependencies": { + "ajv": "^6.12.4", + "debug": "^4.3.2", + "espree": "^9.6.0", + "globals": "^13.19.0", + "ignore": "^5.2.0", + "import-fresh": "^3.2.1", + "js-yaml": "^4.1.0", + "minimatch": "^3.1.2", + "strip-json-comments": "^3.1.1" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/@eslint/eslintrc/node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "license": "Python-2.0" + }, + "node_modules/@eslint/eslintrc/node_modules/globals": { + "version": "13.24.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz", + "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==", + "license": "MIT", + "dependencies": { + "type-fest": "^0.20.2" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@eslint/eslintrc/node_modules/js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "license": "MIT", + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/@eslint/eslintrc/node_modules/type-fest": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", + "license": "(MIT OR CC0-1.0)", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@eslint/js": { + "version": "8.57.1", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.57.1.tgz", + "integrity": "sha512-d9zaMRSTIKDLhctzH12MtXvJKSSUhaHcjV+2Z+GK+EEY7XKpP5yR4x+N3TAcHTcu963nIr+TMcCb4DBCYX1z6Q==", + "license": "MIT", + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + } + }, + "node_modules/@fortawesome/fontawesome-common-types": { + "version": "6.7.1", + "resolved": "https://registry.npmjs.org/@fortawesome/fontawesome-common-types/-/fontawesome-common-types-6.7.1.tgz", + "integrity": "sha512-gbDz3TwRrIPT3i0cDfujhshnXO9z03IT1UKRIVi/VEjpNHtSBIP2o5XSm+e816FzzCFEzAxPw09Z13n20PaQJQ==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/@fortawesome/fontawesome-svg-core": { + "version": "6.7.1", + "resolved": "https://registry.npmjs.org/@fortawesome/fontawesome-svg-core/-/fontawesome-svg-core-6.7.1.tgz", + "integrity": "sha512-8dBIHbfsKlCk2jHQ9PoRBg2Z+4TwyE3vZICSnoDlnsHA6SiMlTwfmW6yX0lHsRmWJugkeb92sA0hZdkXJhuz+g==", + "license": "MIT", + "dependencies": { + "@fortawesome/fontawesome-common-types": "6.7.1" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/@fortawesome/free-brands-svg-icons": { + "version": "6.7.1", + "resolved": "https://registry.npmjs.org/@fortawesome/free-brands-svg-icons/-/free-brands-svg-icons-6.7.1.tgz", + "integrity": "sha512-nJR76eqPzCnMyhbiGf6X0aclDirZriTPRcFm1YFvuupyJOGwlNF022w3YBqu+yrHRhnKRpzFX+8wJKqiIjWZkA==", + "license": "(CC-BY-4.0 AND MIT)", + "dependencies": { + "@fortawesome/fontawesome-common-types": "6.7.1" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/@fortawesome/free-regular-svg-icons": { + "version": "6.7.1", + "resolved": "https://registry.npmjs.org/@fortawesome/free-regular-svg-icons/-/free-regular-svg-icons-6.7.1.tgz", + "integrity": "sha512-e13cp+bAx716RZOTQ59DhqikAgETA9u1qTBHO3e3jMQQ+4H/N1NC1ZVeFYt1V0m+Th68BrEL1/X6XplISutbXg==", + "license": "(CC-BY-4.0 AND MIT)", + "dependencies": { + "@fortawesome/fontawesome-common-types": "6.7.1" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/@fortawesome/free-solid-svg-icons": { + "version": "6.7.1", + "resolved": "https://registry.npmjs.org/@fortawesome/free-solid-svg-icons/-/free-solid-svg-icons-6.7.1.tgz", + "integrity": "sha512-BTKc0b0mgjWZ2UDKVgmwaE0qt0cZs6ITcDgjrti5f/ki7aF5zs+N91V6hitGo3TItCFtnKg6cUVGdTmBFICFRg==", + "license": "(CC-BY-4.0 AND MIT)", + "dependencies": { + "@fortawesome/fontawesome-common-types": "6.7.1" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/@fortawesome/react-fontawesome": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/@fortawesome/react-fontawesome/-/react-fontawesome-0.2.2.tgz", + "integrity": "sha512-EnkrprPNqI6SXJl//m29hpaNzOp1bruISWaOiRtkMi/xSvHJlzc2j2JAYS7egxt/EbjSNV/k6Xy0AQI6vB2+1g==", + "license": "MIT", + "dependencies": { + "prop-types": "^15.8.1" + }, + "peerDependencies": { + "@fortawesome/fontawesome-svg-core": "~1 || ~6", + "react": ">=16.3" + } + }, + "node_modules/@humanwhocodes/config-array": { + "version": "0.13.0", + "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.13.0.tgz", + "integrity": "sha512-DZLEEqFWQFiyK6h5YIeynKx7JlvCYWL0cImfSRXZ9l4Sg2efkFGTuFf6vzXjK1cq6IYkU+Eg/JizXw+TD2vRNw==", + "deprecated": "Use @eslint/config-array instead", + "license": "Apache-2.0", + "dependencies": { + "@humanwhocodes/object-schema": "^2.0.3", + "debug": "^4.3.1", + "minimatch": "^3.0.5" + }, + "engines": { + "node": ">=10.10.0" + } + }, + "node_modules/@humanwhocodes/module-importer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", + "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==", + "license": "Apache-2.0", + "engines": { + "node": ">=12.22" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/nzakas" + } + }, + "node_modules/@humanwhocodes/object-schema": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-2.0.3.tgz", + "integrity": "sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA==", + "deprecated": "Use @eslint/object-schema instead", + "license": "BSD-3-Clause" + }, + "node_modules/@isaacs/cliui": { + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz", + "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==", + "license": "ISC", + "dependencies": { + "string-width": "^5.1.2", + "string-width-cjs": "npm:string-width@^4.2.0", + "strip-ansi": "^7.0.1", + "strip-ansi-cjs": "npm:strip-ansi@^6.0.1", + "wrap-ansi": "^8.1.0", + "wrap-ansi-cjs": "npm:wrap-ansi@^7.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/@isaacs/cliui/node_modules/ansi-regex": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.1.0.tgz", + "integrity": "sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==", + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, + "node_modules/@isaacs/cliui/node_modules/ansi-styles": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", + "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/@isaacs/cliui/node_modules/string-width": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", + "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", + "license": "MIT", + "dependencies": { + "eastasianwidth": "^0.2.0", + "emoji-regex": "^9.2.2", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@isaacs/cliui/node_modules/strip-ansi": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", + "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", + "license": "MIT", + "dependencies": { + "ansi-regex": "^6.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } + }, + "node_modules/@isaacs/cliui/node_modules/wrap-ansi": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz", + "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==", + "license": "MIT", + "dependencies": { + "ansi-styles": "^6.1.0", + "string-width": "^5.0.1", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/@istanbuljs/load-nyc-config": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz", + "integrity": "sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==", + "license": "ISC", + "dependencies": { + "camelcase": "^5.3.1", + "find-up": "^4.1.0", + "get-package-type": "^0.1.0", + "js-yaml": "^3.13.1", + "resolve-from": "^5.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@istanbuljs/load-nyc-config/node_modules/camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/@istanbuljs/schema": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.3.tgz", + "integrity": "sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/@jest/console": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/@jest/console/-/console-27.5.1.tgz", + "integrity": "sha512-kZ/tNpS3NXn0mlXXXPNuDZnb4c0oZ20r4K5eemM2k30ZC3G0T02nXUvyhf5YdbXWHPEJLc9qGLxEZ216MdL+Zg==", + "license": "MIT", + "dependencies": { + "@jest/types": "^27.5.1", + "@types/node": "*", + "chalk": "^4.0.0", + "jest-message-util": "^27.5.1", + "jest-util": "^27.5.1", + "slash": "^3.0.0" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/@jest/console/node_modules/@jest/types": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-27.5.1.tgz", + "integrity": "sha512-Cx46iJ9QpwQTjIdq5VJu2QTMMs3QlEjI0x1QbBP5W1+nMzyc2XmimiRR/CbX9TO0cPTeUlxWMOu8mslYsJ8DEw==", + "license": "MIT", + "dependencies": { + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^3.0.0", + "@types/node": "*", + "@types/yargs": "^16.0.0", + "chalk": "^4.0.0" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/@jest/console/node_modules/@types/yargs": { + "version": "16.0.9", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-16.0.9.tgz", + "integrity": "sha512-tHhzvkFXZQeTECenFoRljLBYPZJ7jAVxqqtEI0qTLOmuultnFp4I9yKE17vTuhf7BkhCu7I4XuemPgikDVuYqA==", + "license": "MIT", + "dependencies": { + "@types/yargs-parser": "*" + } + }, + "node_modules/@jest/console/node_modules/jest-message-util": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-27.5.1.tgz", + "integrity": "sha512-rMyFe1+jnyAAf+NHwTclDz0eAaLkVDdKVHHBFWsBWHnnh5YeJMNWWsv7AbFYXfK3oTqvL7VTWkhNLu1jX24D+g==", + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.12.13", + "@jest/types": "^27.5.1", + "@types/stack-utils": "^2.0.0", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.9", + "micromatch": "^4.0.4", + "pretty-format": "^27.5.1", + "slash": "^3.0.0", + "stack-utils": "^2.0.3" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/@jest/console/node_modules/jest-util": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-27.5.1.tgz", + "integrity": "sha512-Kv2o/8jNvX1MQ0KGtw480E/w4fBCDOnH6+6DmeKi6LZUIlKA5kwY0YNdlzaWTiVgxqAqik11QyxDOKk543aKXw==", + "license": "MIT", + "dependencies": { + "@jest/types": "^27.5.1", + "@types/node": "*", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "graceful-fs": "^4.2.9", + "picomatch": "^2.2.3" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/@jest/core": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/@jest/core/-/core-27.5.1.tgz", + "integrity": "sha512-AK6/UTrvQD0Cd24NSqmIA6rKsu0tKIxfiCducZvqxYdmMisOYAsdItspT+fQDQYARPf8XgjAFZi0ogW2agH5nQ==", + "license": "MIT", + "dependencies": { + "@jest/console": "^27.5.1", + "@jest/reporters": "^27.5.1", + "@jest/test-result": "^27.5.1", + "@jest/transform": "^27.5.1", + "@jest/types": "^27.5.1", + "@types/node": "*", + "ansi-escapes": "^4.2.1", + "chalk": "^4.0.0", + "emittery": "^0.8.1", + "exit": "^0.1.2", + "graceful-fs": "^4.2.9", + "jest-changed-files": "^27.5.1", + "jest-config": "^27.5.1", + "jest-haste-map": "^27.5.1", + "jest-message-util": "^27.5.1", + "jest-regex-util": "^27.5.1", + "jest-resolve": "^27.5.1", + "jest-resolve-dependencies": "^27.5.1", + "jest-runner": "^27.5.1", + "jest-runtime": "^27.5.1", + "jest-snapshot": "^27.5.1", + "jest-util": "^27.5.1", + "jest-validate": "^27.5.1", + "jest-watcher": "^27.5.1", + "micromatch": "^4.0.4", + "rimraf": "^3.0.0", + "slash": "^3.0.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + }, + "peerDependencies": { + "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" + }, + "peerDependenciesMeta": { + "node-notifier": { + "optional": true + } + } + }, + "node_modules/@jest/core/node_modules/@jest/types": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-27.5.1.tgz", + "integrity": "sha512-Cx46iJ9QpwQTjIdq5VJu2QTMMs3QlEjI0x1QbBP5W1+nMzyc2XmimiRR/CbX9TO0cPTeUlxWMOu8mslYsJ8DEw==", + "license": "MIT", + "dependencies": { + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^3.0.0", + "@types/node": "*", + "@types/yargs": "^16.0.0", + "chalk": "^4.0.0" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/@jest/core/node_modules/@types/yargs": { + "version": "16.0.9", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-16.0.9.tgz", + "integrity": "sha512-tHhzvkFXZQeTECenFoRljLBYPZJ7jAVxqqtEI0qTLOmuultnFp4I9yKE17vTuhf7BkhCu7I4XuemPgikDVuYqA==", + "license": "MIT", + "dependencies": { + "@types/yargs-parser": "*" + } + }, + "node_modules/@jest/core/node_modules/jest-message-util": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-27.5.1.tgz", + "integrity": "sha512-rMyFe1+jnyAAf+NHwTclDz0eAaLkVDdKVHHBFWsBWHnnh5YeJMNWWsv7AbFYXfK3oTqvL7VTWkhNLu1jX24D+g==", + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.12.13", + "@jest/types": "^27.5.1", + "@types/stack-utils": "^2.0.0", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.9", + "micromatch": "^4.0.4", + "pretty-format": "^27.5.1", + "slash": "^3.0.0", + "stack-utils": "^2.0.3" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/@jest/core/node_modules/jest-util": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-27.5.1.tgz", + "integrity": "sha512-Kv2o/8jNvX1MQ0KGtw480E/w4fBCDOnH6+6DmeKi6LZUIlKA5kwY0YNdlzaWTiVgxqAqik11QyxDOKk543aKXw==", + "license": "MIT", + "dependencies": { + "@jest/types": "^27.5.1", + "@types/node": "*", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "graceful-fs": "^4.2.9", + "picomatch": "^2.2.3" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/@jest/environment": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-27.5.1.tgz", + "integrity": "sha512-/WQjhPJe3/ghaol/4Bq480JKXV/Rfw8nQdN7f41fM8VDHLcxKXou6QyXAh3EFr9/bVG3x74z1NWDkP87EiY8gA==", + "license": "MIT", + "dependencies": { + "@jest/fake-timers": "^27.5.1", + "@jest/types": "^27.5.1", + "@types/node": "*", + "jest-mock": "^27.5.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/@jest/environment/node_modules/@jest/types": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-27.5.1.tgz", + "integrity": "sha512-Cx46iJ9QpwQTjIdq5VJu2QTMMs3QlEjI0x1QbBP5W1+nMzyc2XmimiRR/CbX9TO0cPTeUlxWMOu8mslYsJ8DEw==", + "license": "MIT", + "dependencies": { + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^3.0.0", + "@types/node": "*", + "@types/yargs": "^16.0.0", + "chalk": "^4.0.0" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/@jest/environment/node_modules/@types/yargs": { + "version": "16.0.9", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-16.0.9.tgz", + "integrity": "sha512-tHhzvkFXZQeTECenFoRljLBYPZJ7jAVxqqtEI0qTLOmuultnFp4I9yKE17vTuhf7BkhCu7I4XuemPgikDVuYqA==", + "license": "MIT", + "dependencies": { + "@types/yargs-parser": "*" + } + }, + "node_modules/@jest/expect-utils": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/expect-utils/-/expect-utils-29.7.0.tgz", + "integrity": "sha512-GlsNBWiFQFCVi9QVSx7f5AgMeLxe9YCCs5PuP2O2LdjDAA8Jh9eX7lA1Jq/xdXw3Wb3hyvlFNfZIfcRetSzYcA==", + "license": "MIT", + "dependencies": { + "jest-get-type": "^29.6.3" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/fake-timers": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-27.5.1.tgz", + "integrity": "sha512-/aPowoolwa07k7/oM3aASneNeBGCmGQsc3ugN4u6s4C/+s5M64MFo/+djTdiwcbQlRfFElGuDXWzaWj6QgKObQ==", + "license": "MIT", + "dependencies": { + "@jest/types": "^27.5.1", + "@sinonjs/fake-timers": "^8.0.1", + "@types/node": "*", + "jest-message-util": "^27.5.1", + "jest-mock": "^27.5.1", + "jest-util": "^27.5.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/@jest/fake-timers/node_modules/@jest/types": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-27.5.1.tgz", + "integrity": "sha512-Cx46iJ9QpwQTjIdq5VJu2QTMMs3QlEjI0x1QbBP5W1+nMzyc2XmimiRR/CbX9TO0cPTeUlxWMOu8mslYsJ8DEw==", + "license": "MIT", + "dependencies": { + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^3.0.0", + "@types/node": "*", + "@types/yargs": "^16.0.0", + "chalk": "^4.0.0" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/@jest/fake-timers/node_modules/@types/yargs": { + "version": "16.0.9", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-16.0.9.tgz", + "integrity": "sha512-tHhzvkFXZQeTECenFoRljLBYPZJ7jAVxqqtEI0qTLOmuultnFp4I9yKE17vTuhf7BkhCu7I4XuemPgikDVuYqA==", + "license": "MIT", + "dependencies": { + "@types/yargs-parser": "*" + } + }, + "node_modules/@jest/fake-timers/node_modules/jest-message-util": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-27.5.1.tgz", + "integrity": "sha512-rMyFe1+jnyAAf+NHwTclDz0eAaLkVDdKVHHBFWsBWHnnh5YeJMNWWsv7AbFYXfK3oTqvL7VTWkhNLu1jX24D+g==", + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.12.13", + "@jest/types": "^27.5.1", + "@types/stack-utils": "^2.0.0", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.9", + "micromatch": "^4.0.4", + "pretty-format": "^27.5.1", + "slash": "^3.0.0", + "stack-utils": "^2.0.3" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/@jest/fake-timers/node_modules/jest-util": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-27.5.1.tgz", + "integrity": "sha512-Kv2o/8jNvX1MQ0KGtw480E/w4fBCDOnH6+6DmeKi6LZUIlKA5kwY0YNdlzaWTiVgxqAqik11QyxDOKk543aKXw==", + "license": "MIT", + "dependencies": { + "@jest/types": "^27.5.1", + "@types/node": "*", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "graceful-fs": "^4.2.9", + "picomatch": "^2.2.3" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/@jest/globals": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/@jest/globals/-/globals-27.5.1.tgz", + "integrity": "sha512-ZEJNB41OBQQgGzgyInAv0UUfDDj3upmHydjieSxFvTRuZElrx7tXg/uVQ5hYVEwiXs3+aMsAeEc9X7xiSKCm4Q==", + "license": "MIT", + "dependencies": { + "@jest/environment": "^27.5.1", + "@jest/types": "^27.5.1", + "expect": "^27.5.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/@jest/globals/node_modules/@jest/types": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-27.5.1.tgz", + "integrity": "sha512-Cx46iJ9QpwQTjIdq5VJu2QTMMs3QlEjI0x1QbBP5W1+nMzyc2XmimiRR/CbX9TO0cPTeUlxWMOu8mslYsJ8DEw==", + "license": "MIT", + "dependencies": { + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^3.0.0", + "@types/node": "*", + "@types/yargs": "^16.0.0", + "chalk": "^4.0.0" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/@jest/globals/node_modules/@types/yargs": { + "version": "16.0.9", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-16.0.9.tgz", + "integrity": "sha512-tHhzvkFXZQeTECenFoRljLBYPZJ7jAVxqqtEI0qTLOmuultnFp4I9yKE17vTuhf7BkhCu7I4XuemPgikDVuYqA==", + "license": "MIT", + "dependencies": { + "@types/yargs-parser": "*" + } + }, + "node_modules/@jest/globals/node_modules/diff-sequences": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-27.5.1.tgz", + "integrity": "sha512-k1gCAXAsNgLwEL+Y8Wvl+M6oEFj5bgazfZULpS5CneoPPXRaCCW7dm+q21Ky2VEE5X+VeRDBVg1Pcvvsr4TtNQ==", + "license": "MIT", + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/@jest/globals/node_modules/expect": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/expect/-/expect-27.5.1.tgz", + "integrity": "sha512-E1q5hSUG2AmYQwQJ041nvgpkODHQvB+RKlB4IYdru6uJsyFTRyZAP463M+1lINorwbqAmUggi6+WwkD8lCS/Dw==", + "license": "MIT", + "dependencies": { + "@jest/types": "^27.5.1", + "jest-get-type": "^27.5.1", + "jest-matcher-utils": "^27.5.1", + "jest-message-util": "^27.5.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/@jest/globals/node_modules/jest-diff": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-27.5.1.tgz", + "integrity": "sha512-m0NvkX55LDt9T4mctTEgnZk3fmEg3NRYutvMPWM/0iPnkFj2wIeF45O1718cMSOFO1vINkqmxqD8vE37uTEbqw==", + "license": "MIT", + "dependencies": { + "chalk": "^4.0.0", + "diff-sequences": "^27.5.1", + "jest-get-type": "^27.5.1", + "pretty-format": "^27.5.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/@jest/globals/node_modules/jest-get-type": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-27.5.1.tgz", + "integrity": "sha512-2KY95ksYSaK7DMBWQn6dQz3kqAf3BB64y2udeG+hv4KfSOb9qwcYQstTJc1KCbsix+wLZWZYN8t7nwX3GOBLRw==", + "license": "MIT", + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/@jest/globals/node_modules/jest-matcher-utils": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-27.5.1.tgz", + "integrity": "sha512-z2uTx/T6LBaCoNWNFWwChLBKYxTMcGBRjAt+2SbP929/Fflb9aa5LGma654Rz8z9HLxsrUaYzxE9T/EFIL/PAw==", + "license": "MIT", + "dependencies": { + "chalk": "^4.0.0", + "jest-diff": "^27.5.1", + "jest-get-type": "^27.5.1", + "pretty-format": "^27.5.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/@jest/globals/node_modules/jest-message-util": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-27.5.1.tgz", + "integrity": "sha512-rMyFe1+jnyAAf+NHwTclDz0eAaLkVDdKVHHBFWsBWHnnh5YeJMNWWsv7AbFYXfK3oTqvL7VTWkhNLu1jX24D+g==", + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.12.13", + "@jest/types": "^27.5.1", + "@types/stack-utils": "^2.0.0", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.9", + "micromatch": "^4.0.4", + "pretty-format": "^27.5.1", + "slash": "^3.0.0", + "stack-utils": "^2.0.3" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/@jest/reporters": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/@jest/reporters/-/reporters-27.5.1.tgz", + "integrity": "sha512-cPXh9hWIlVJMQkVk84aIvXuBB4uQQmFqZiacloFuGiP3ah1sbCxCosidXFDfqG8+6fO1oR2dTJTlsOy4VFmUfw==", + "license": "MIT", + "dependencies": { + "@bcoe/v8-coverage": "^0.2.3", + "@jest/console": "^27.5.1", + "@jest/test-result": "^27.5.1", + "@jest/transform": "^27.5.1", + "@jest/types": "^27.5.1", + "@types/node": "*", + "chalk": "^4.0.0", + "collect-v8-coverage": "^1.0.0", + "exit": "^0.1.2", + "glob": "^7.1.2", + "graceful-fs": "^4.2.9", + "istanbul-lib-coverage": "^3.0.0", + "istanbul-lib-instrument": "^5.1.0", + "istanbul-lib-report": "^3.0.0", + "istanbul-lib-source-maps": "^4.0.0", + "istanbul-reports": "^3.1.3", + "jest-haste-map": "^27.5.1", + "jest-resolve": "^27.5.1", + "jest-util": "^27.5.1", + "jest-worker": "^27.5.1", + "slash": "^3.0.0", + "source-map": "^0.6.0", + "string-length": "^4.0.1", + "terminal-link": "^2.0.0", + "v8-to-istanbul": "^8.1.0" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + }, + "peerDependencies": { + "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" + }, + "peerDependenciesMeta": { + "node-notifier": { + "optional": true + } + } + }, + "node_modules/@jest/reporters/node_modules/@jest/types": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-27.5.1.tgz", + "integrity": "sha512-Cx46iJ9QpwQTjIdq5VJu2QTMMs3QlEjI0x1QbBP5W1+nMzyc2XmimiRR/CbX9TO0cPTeUlxWMOu8mslYsJ8DEw==", + "license": "MIT", + "dependencies": { + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^3.0.0", + "@types/node": "*", + "@types/yargs": "^16.0.0", + "chalk": "^4.0.0" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/@jest/reporters/node_modules/@types/yargs": { + "version": "16.0.9", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-16.0.9.tgz", + "integrity": "sha512-tHhzvkFXZQeTECenFoRljLBYPZJ7jAVxqqtEI0qTLOmuultnFp4I9yKE17vTuhf7BkhCu7I4XuemPgikDVuYqA==", + "license": "MIT", + "dependencies": { + "@types/yargs-parser": "*" + } + }, + "node_modules/@jest/reporters/node_modules/jest-util": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-27.5.1.tgz", + "integrity": "sha512-Kv2o/8jNvX1MQ0KGtw480E/w4fBCDOnH6+6DmeKi6LZUIlKA5kwY0YNdlzaWTiVgxqAqik11QyxDOKk543aKXw==", + "license": "MIT", + "dependencies": { + "@jest/types": "^27.5.1", + "@types/node": "*", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "graceful-fs": "^4.2.9", + "picomatch": "^2.2.3" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/@jest/reporters/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/@jest/schemas": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-29.6.3.tgz", + "integrity": "sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA==", + "license": "MIT", + "dependencies": { + "@sinclair/typebox": "^0.27.8" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/source-map": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/@jest/source-map/-/source-map-27.5.1.tgz", + "integrity": "sha512-y9NIHUYF3PJRlHk98NdC/N1gl88BL08aQQgu4k4ZopQkCw9t9cV8mtl3TV8b/YCB8XaVTFrmUTAJvjsntDireg==", + "license": "MIT", + "dependencies": { + "callsites": "^3.0.0", + "graceful-fs": "^4.2.9", + "source-map": "^0.6.0" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/@jest/source-map/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/@jest/test-result": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-27.5.1.tgz", + "integrity": "sha512-EW35l2RYFUcUQxFJz5Cv5MTOxlJIQs4I7gxzi2zVU7PJhOwfYq1MdC5nhSmYjX1gmMmLPvB3sIaC+BkcHRBfag==", + "license": "MIT", + "dependencies": { + "@jest/console": "^27.5.1", + "@jest/types": "^27.5.1", + "@types/istanbul-lib-coverage": "^2.0.0", + "collect-v8-coverage": "^1.0.0" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/@jest/test-result/node_modules/@jest/types": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-27.5.1.tgz", + "integrity": "sha512-Cx46iJ9QpwQTjIdq5VJu2QTMMs3QlEjI0x1QbBP5W1+nMzyc2XmimiRR/CbX9TO0cPTeUlxWMOu8mslYsJ8DEw==", + "license": "MIT", + "dependencies": { + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^3.0.0", + "@types/node": "*", + "@types/yargs": "^16.0.0", + "chalk": "^4.0.0" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/@jest/test-result/node_modules/@types/yargs": { + "version": "16.0.9", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-16.0.9.tgz", + "integrity": "sha512-tHhzvkFXZQeTECenFoRljLBYPZJ7jAVxqqtEI0qTLOmuultnFp4I9yKE17vTuhf7BkhCu7I4XuemPgikDVuYqA==", + "license": "MIT", + "dependencies": { + "@types/yargs-parser": "*" + } + }, + "node_modules/@jest/test-sequencer": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-27.5.1.tgz", + "integrity": "sha512-LCheJF7WB2+9JuCS7VB/EmGIdQuhtqjRNI9A43idHv3E4KltCTsPsLxvdaubFHSYwY/fNjMWjl6vNRhDiN7vpQ==", + "license": "MIT", + "dependencies": { + "@jest/test-result": "^27.5.1", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^27.5.1", + "jest-runtime": "^27.5.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/@jest/transform": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-27.5.1.tgz", + "integrity": "sha512-ipON6WtYgl/1329g5AIJVbUuEh0wZVbdpGwC99Jw4LwuoBNS95MVphU6zOeD9pDkon+LLbFL7lOQRapbB8SCHw==", + "license": "MIT", + "dependencies": { + "@babel/core": "^7.1.0", + "@jest/types": "^27.5.1", + "babel-plugin-istanbul": "^6.1.1", + "chalk": "^4.0.0", + "convert-source-map": "^1.4.0", + "fast-json-stable-stringify": "^2.0.0", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^27.5.1", + "jest-regex-util": "^27.5.1", + "jest-util": "^27.5.1", + "micromatch": "^4.0.4", + "pirates": "^4.0.4", + "slash": "^3.0.0", + "source-map": "^0.6.1", + "write-file-atomic": "^3.0.0" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/@jest/transform/node_modules/@jest/types": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-27.5.1.tgz", + "integrity": "sha512-Cx46iJ9QpwQTjIdq5VJu2QTMMs3QlEjI0x1QbBP5W1+nMzyc2XmimiRR/CbX9TO0cPTeUlxWMOu8mslYsJ8DEw==", + "license": "MIT", + "dependencies": { + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^3.0.0", + "@types/node": "*", + "@types/yargs": "^16.0.0", + "chalk": "^4.0.0" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/@jest/transform/node_modules/@types/yargs": { + "version": "16.0.9", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-16.0.9.tgz", + "integrity": "sha512-tHhzvkFXZQeTECenFoRljLBYPZJ7jAVxqqtEI0qTLOmuultnFp4I9yKE17vTuhf7BkhCu7I4XuemPgikDVuYqA==", + "license": "MIT", + "dependencies": { + "@types/yargs-parser": "*" + } + }, + "node_modules/@jest/transform/node_modules/convert-source-map": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz", + "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==", + "license": "MIT" + }, + "node_modules/@jest/transform/node_modules/jest-util": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-27.5.1.tgz", + "integrity": "sha512-Kv2o/8jNvX1MQ0KGtw480E/w4fBCDOnH6+6DmeKi6LZUIlKA5kwY0YNdlzaWTiVgxqAqik11QyxDOKk543aKXw==", + "license": "MIT", + "dependencies": { + "@jest/types": "^27.5.1", + "@types/node": "*", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "graceful-fs": "^4.2.9", + "picomatch": "^2.2.3" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/@jest/transform/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/@jest/types": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-29.6.3.tgz", + "integrity": "sha512-u3UPsIilWKOM3F9CXtrG8LEJmNxwoCQC/XVj4IKYXvvpx7QIi/Kg1LI5uDmDpKlac62NUtX7eLjRh+jVZcLOzw==", + "license": "MIT", + "dependencies": { + "@jest/schemas": "^29.6.3", + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^3.0.0", + "@types/node": "*", + "@types/yargs": "^17.0.8", + "chalk": "^4.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jridgewell/gen-mapping": { + "version": "0.3.5", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.5.tgz", + "integrity": "sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==", + "license": "MIT", + "dependencies": { + "@jridgewell/set-array": "^1.2.1", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.24" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/resolve-uri": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", + "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", + "license": "MIT", + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/set-array": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.2.1.tgz", + "integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==", + "license": "MIT", + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/source-map": { + "version": "0.3.6", + "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.6.tgz", + "integrity": "sha512-1ZJTZebgqllO79ue2bm3rIGud/bOe0pP5BjSRCRxxYkEZS8STV7zN84UBbiYu7jy+eCKSnVIUgoWWE/tt+shMQ==", + "license": "MIT", + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.25" + } + }, + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz", + "integrity": "sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==", + "license": "MIT" + }, + "node_modules/@jridgewell/trace-mapping": { + "version": "0.3.25", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz", + "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==", + "license": "MIT", + "dependencies": { + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" + } + }, + "node_modules/@leichtgewicht/ip-codec": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@leichtgewicht/ip-codec/-/ip-codec-2.0.5.tgz", + "integrity": "sha512-Vo+PSpZG2/fmgmiNzYK9qWRh8h/CHrwD0mo1h1DzL4yzHNSfWYujGTYsWGreD000gcgmZ7K4Ys6Tx9TxtsKdDw==", + "license": "MIT" + }, + "node_modules/@nicolo-ribaudo/eslint-scope-5-internals": { + "version": "5.1.1-v1", + "resolved": "https://registry.npmjs.org/@nicolo-ribaudo/eslint-scope-5-internals/-/eslint-scope-5-internals-5.1.1-v1.tgz", + "integrity": "sha512-54/JRvkLIzzDWshCWfuhadfrfZVPiElY8Fcgmg1HroEly/EDSszzhBAsarCux+D/kOslTRquNzuyGSmUSTTHGg==", + "license": "MIT", + "dependencies": { + "eslint-scope": "5.1.1" + } + }, + "node_modules/@nicolo-ribaudo/eslint-scope-5-internals/node_modules/eslint-scope": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", + "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", + "license": "BSD-2-Clause", + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^4.1.1" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/@nicolo-ribaudo/eslint-scope-5-internals/node_modules/estraverse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", + "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", + "license": "BSD-2-Clause", + "engines": { + "node": ">=4.0" + } + }, + "node_modules/@nodelib/fs.scandir": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "license": "MIT", + "dependencies": { + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.stat": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", + "license": "MIT", + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.walk": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "license": "MIT", + "dependencies": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@pkgjs/parseargs": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz", + "integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==", + "license": "MIT", + "optional": true, + "engines": { + "node": ">=14" + } + }, + "node_modules/@pmmmwh/react-refresh-webpack-plugin": { + "version": "0.5.15", + "resolved": "https://registry.npmjs.org/@pmmmwh/react-refresh-webpack-plugin/-/react-refresh-webpack-plugin-0.5.15.tgz", + "integrity": "sha512-LFWllMA55pzB9D34w/wXUCf8+c+IYKuJDgxiZ3qMhl64KRMBHYM1I3VdGaD2BV5FNPV2/S2596bppxHbv2ZydQ==", + "license": "MIT", + "dependencies": { + "ansi-html": "^0.0.9", + "core-js-pure": "^3.23.3", + "error-stack-parser": "^2.0.6", + "html-entities": "^2.1.0", + "loader-utils": "^2.0.4", + "schema-utils": "^4.2.0", + "source-map": "^0.7.3" + }, + "engines": { + "node": ">= 10.13" + }, + "peerDependencies": { + "@types/webpack": "4.x || 5.x", + "react-refresh": ">=0.10.0 <1.0.0", + "sockjs-client": "^1.4.0", + "type-fest": ">=0.17.0 <5.0.0", + "webpack": ">=4.43.0 <6.0.0", + "webpack-dev-server": "3.x || 4.x || 5.x", + "webpack-hot-middleware": "2.x", + "webpack-plugin-serve": "0.x || 1.x" + }, + "peerDependenciesMeta": { + "@types/webpack": { + "optional": true + }, + "sockjs-client": { + "optional": true + }, + "type-fest": { + "optional": true + }, + "webpack-dev-server": { + "optional": true + }, + "webpack-hot-middleware": { + "optional": true + }, + "webpack-plugin-serve": { + "optional": true + } + } + }, + "node_modules/@popperjs/core": { + "version": "2.11.8", + "resolved": "https://registry.npmjs.org/@popperjs/core/-/core-2.11.8.tgz", + "integrity": "sha512-P1st0aksCrn9sGZhp8GMYwBnQsbvAWsZAX44oXNNvLHGqAOcoVxmjZiohstwQ7SqKnbR47akdNi+uleWD8+g6A==", + "license": "MIT", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/popperjs" + } + }, + "node_modules/@react-aria/ssr": { + "version": "3.9.7", + "resolved": "https://registry.npmjs.org/@react-aria/ssr/-/ssr-3.9.7.tgz", + "integrity": "sha512-GQygZaGlmYjmYM+tiNBA5C6acmiDWF52Nqd40bBp0Znk4M4hP+LTmI0lpI1BuKMw45T8RIhrAsICIfKwZvi2Gg==", + "license": "Apache-2.0", + "dependencies": { + "@swc/helpers": "^0.5.0" + }, + "engines": { + "node": ">= 12" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" + } + }, + "node_modules/@restart/hooks": { + "version": "0.4.16", + "resolved": "https://registry.npmjs.org/@restart/hooks/-/hooks-0.4.16.tgz", + "integrity": "sha512-f7aCv7c+nU/3mF7NWLtVVr0Ra80RqsO89hO72r+Y/nvQr5+q0UFGkocElTH6MJApvReVh6JHUFYn2cw1WdHF3w==", + "license": "MIT", + "dependencies": { + "dequal": "^2.0.3" + }, + "peerDependencies": { + "react": ">=16.8.0" + } + }, + "node_modules/@restart/ui": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/@restart/ui/-/ui-1.9.1.tgz", + "integrity": "sha512-qghR21ynHiUrpcIkKCoKYB+3rJtezY5Y7ikrwradCL+7hZHdQ2Ozc5ffxtpmpahoAGgc31gyXaSx2sXXaThmqA==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.26.0", + "@popperjs/core": "^2.11.8", + "@react-aria/ssr": "^3.5.0", + "@restart/hooks": "^0.5.0", + "@types/warning": "^3.0.3", + "dequal": "^2.0.3", + "dom-helpers": "^5.2.0", + "uncontrollable": "^8.0.4", + "warning": "^4.0.3" + }, + "peerDependencies": { + "react": ">=16.14.0", + "react-dom": ">=16.14.0" + } + }, + "node_modules/@restart/ui/node_modules/@restart/hooks": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/@restart/hooks/-/hooks-0.5.0.tgz", + "integrity": "sha512-wS+h6IusJCPjTkmOOrRZxIPICD/mtFA3PRZviutoM23/b7akyDGfZF/WS+nIFk27u7JDhPE2+0GBdZxjSqHZkg==", + "license": "MIT", + "dependencies": { + "dequal": "^2.0.3" + }, + "peerDependencies": { + "react": ">=16.8.0" + } + }, + "node_modules/@restart/ui/node_modules/uncontrollable": { + "version": "8.0.4", + "resolved": "https://registry.npmjs.org/uncontrollable/-/uncontrollable-8.0.4.tgz", + "integrity": "sha512-ulRWYWHvscPFc0QQXvyJjY6LIXU56f0h8pQFvhxiKk5V1fcI8gp9Ht9leVAhrVjzqMw0BgjspBINx9r6oyJUvQ==", + "license": "MIT", + "peerDependencies": { + "react": ">=16.14.0" + } + }, + "node_modules/@rollup/plugin-babel": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/@rollup/plugin-babel/-/plugin-babel-5.3.1.tgz", + "integrity": "sha512-WFfdLWU/xVWKeRQnKmIAQULUI7Il0gZnBIH/ZFO069wYIfPu+8zrfp/KMW0atmELoRDq8FbiP3VCss9MhCut7Q==", + "license": "MIT", + "dependencies": { + "@babel/helper-module-imports": "^7.10.4", + "@rollup/pluginutils": "^3.1.0" + }, + "engines": { + "node": ">= 10.0.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0", + "@types/babel__core": "^7.1.9", + "rollup": "^1.20.0||^2.0.0" + }, + "peerDependenciesMeta": { + "@types/babel__core": { + "optional": true + } + } + }, + "node_modules/@rollup/plugin-node-resolve": { + "version": "11.2.1", + "resolved": "https://registry.npmjs.org/@rollup/plugin-node-resolve/-/plugin-node-resolve-11.2.1.tgz", + "integrity": "sha512-yc2n43jcqVyGE2sqV5/YCmocy9ArjVAP/BeXyTtADTBBX6V0e5UMqwO8CdQ0kzjb6zu5P1qMzsScCMRvE9OlVg==", + "license": "MIT", + "dependencies": { + "@rollup/pluginutils": "^3.1.0", + "@types/resolve": "1.17.1", + "builtin-modules": "^3.1.0", + "deepmerge": "^4.2.2", + "is-module": "^1.0.0", + "resolve": "^1.19.0" + }, + "engines": { + "node": ">= 10.0.0" + }, + "peerDependencies": { + "rollup": "^1.20.0||^2.0.0" + } + }, + "node_modules/@rollup/plugin-replace": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/@rollup/plugin-replace/-/plugin-replace-2.4.2.tgz", + "integrity": "sha512-IGcu+cydlUMZ5En85jxHH4qj2hta/11BHq95iHEyb2sbgiN0eCdzvUcHw5gt9pBL5lTi4JDYJ1acCoMGpTvEZg==", + "license": "MIT", + "dependencies": { + "@rollup/pluginutils": "^3.1.0", + "magic-string": "^0.25.7" + }, + "peerDependencies": { + "rollup": "^1.20.0 || ^2.0.0" + } + }, + "node_modules/@rollup/pluginutils": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-3.1.0.tgz", + "integrity": "sha512-GksZ6pr6TpIjHm8h9lSQ8pi8BE9VeubNT0OMJ3B5uZJ8pz73NPiqOtCog/x2/QzM1ENChPKxMDhiQuRHsqc+lg==", + "license": "MIT", + "dependencies": { + "@types/estree": "0.0.39", + "estree-walker": "^1.0.1", + "picomatch": "^2.2.2" + }, + "engines": { + "node": ">= 8.0.0" + }, + "peerDependencies": { + "rollup": "^1.20.0||^2.0.0" + } + }, + "node_modules/@rollup/pluginutils/node_modules/@types/estree": { + "version": "0.0.39", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-0.0.39.tgz", + "integrity": "sha512-EYNwp3bU+98cpU4lAWYYL7Zz+2gryWH1qbdDTidVd6hkiR6weksdbMadyXKXNPEkQFhXM+hVO9ZygomHXp+AIw==", + "license": "MIT" + }, + "node_modules/@rtsao/scc": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@rtsao/scc/-/scc-1.1.0.tgz", + "integrity": "sha512-zt6OdqaDoOnJ1ZYsCYGt9YmWzDXl4vQdKTyJev62gFhRGKdx7mcT54V9KIjg+d2wi9EXsPvAPKe7i7WjfVWB8g==", + "license": "MIT" + }, + "node_modules/@rushstack/eslint-patch": { + "version": "1.10.4", + "resolved": "https://registry.npmjs.org/@rushstack/eslint-patch/-/eslint-patch-1.10.4.tgz", + "integrity": "sha512-WJgX9nzTqknM393q1QJDJmoW28kUfEnybeTfVNcNAPnIx210RXm2DiXiHzfNPJNIUUb1tJnz/l4QGtJ30PgWmA==", + "license": "MIT" + }, + "node_modules/@sinclair/typebox": { + "version": "0.27.8", + "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.27.8.tgz", + "integrity": "sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==", + "license": "MIT" + }, + "node_modules/@sinonjs/commons": { + "version": "1.8.6", + "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-1.8.6.tgz", + "integrity": "sha512-Ky+XkAkqPZSm3NLBeUng77EBQl3cmeJhITaGHdYH8kjVB+aun3S4XBRti2zt17mtt0mIUDiNxYeoJm6drVvBJQ==", + "license": "BSD-3-Clause", + "dependencies": { + "type-detect": "4.0.8" + } + }, + "node_modules/@sinonjs/fake-timers": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-8.1.0.tgz", + "integrity": "sha512-OAPJUAtgeINhh/TAlUID4QTs53Njm7xzddaVlEs/SXwgtiD1tW22zAB/W1wdqfrpmikgaWQ9Fw6Ws+hsiRm5Vg==", + "license": "BSD-3-Clause", + "dependencies": { + "@sinonjs/commons": "^1.7.0" + } + }, + "node_modules/@surma/rollup-plugin-off-main-thread": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/@surma/rollup-plugin-off-main-thread/-/rollup-plugin-off-main-thread-2.2.3.tgz", + "integrity": "sha512-lR8q/9W7hZpMWweNiAKU7NQerBnzQQLvi8qnTDU/fxItPhtZVMbPV3lbCwjhIlNBe9Bbr5V+KHshvWmVSG9cxQ==", + "license": "Apache-2.0", + "dependencies": { + "ejs": "^3.1.6", + "json5": "^2.2.0", + "magic-string": "^0.25.0", + "string.prototype.matchall": "^4.0.6" + } + }, + "node_modules/@svgr/babel-plugin-add-jsx-attribute": { + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-add-jsx-attribute/-/babel-plugin-add-jsx-attribute-5.4.0.tgz", + "integrity": "sha512-ZFf2gs/8/6B8PnSofI0inYXr2SDNTDScPXhN7k5EqD4aZ3gi6u+rbmZHVB8IM3wDyx8ntKACZbtXSm7oZGRqVg==", + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + } + }, + "node_modules/@svgr/babel-plugin-remove-jsx-attribute": { + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-remove-jsx-attribute/-/babel-plugin-remove-jsx-attribute-5.4.0.tgz", + "integrity": "sha512-yaS4o2PgUtwLFGTKbsiAy6D0o3ugcUhWK0Z45umJ66EPWunAz9fuFw2gJuje6wqQvQWOTJvIahUwndOXb7QCPg==", + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + } + }, + "node_modules/@svgr/babel-plugin-remove-jsx-empty-expression": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-remove-jsx-empty-expression/-/babel-plugin-remove-jsx-empty-expression-5.0.1.tgz", + "integrity": "sha512-LA72+88A11ND/yFIMzyuLRSMJ+tRKeYKeQ+mR3DcAZ5I4h5CPWN9AHyUzJbWSYp/u2u0xhmgOe0+E41+GjEueA==", + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + } + }, + "node_modules/@svgr/babel-plugin-replace-jsx-attribute-value": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-replace-jsx-attribute-value/-/babel-plugin-replace-jsx-attribute-value-5.0.1.tgz", + "integrity": "sha512-PoiE6ZD2Eiy5mK+fjHqwGOS+IXX0wq/YDtNyIgOrc6ejFnxN4b13pRpiIPbtPwHEc+NT2KCjteAcq33/F1Y9KQ==", + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + } + }, + "node_modules/@svgr/babel-plugin-svg-dynamic-title": { + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-svg-dynamic-title/-/babel-plugin-svg-dynamic-title-5.4.0.tgz", + "integrity": "sha512-zSOZH8PdZOpuG1ZVx/cLVePB2ibo3WPpqo7gFIjLV9a0QsuQAzJiwwqmuEdTaW2pegyBE17Uu15mOgOcgabQZg==", + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + } + }, + "node_modules/@svgr/babel-plugin-svg-em-dimensions": { + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-svg-em-dimensions/-/babel-plugin-svg-em-dimensions-5.4.0.tgz", + "integrity": "sha512-cPzDbDA5oT/sPXDCUYoVXEmm3VIoAWAPT6mSPTJNbQaBNUuEKVKyGH93oDY4e42PYHRW67N5alJx/eEol20abw==", + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + } + }, + "node_modules/@svgr/babel-plugin-transform-react-native-svg": { + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-transform-react-native-svg/-/babel-plugin-transform-react-native-svg-5.4.0.tgz", + "integrity": "sha512-3eYP/SaopZ41GHwXma7Rmxcv9uRslRDTY1estspeB1w1ueZWd/tPlMfEOoccYpEMZU3jD4OU7YitnXcF5hLW2Q==", + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + } + }, + "node_modules/@svgr/babel-plugin-transform-svg-component": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-transform-svg-component/-/babel-plugin-transform-svg-component-5.5.0.tgz", + "integrity": "sha512-q4jSH1UUvbrsOtlo/tKcgSeiCHRSBdXoIoqX1pgcKK/aU3JD27wmMKwGtpB8qRYUYoyXvfGxUVKchLuR5pB3rQ==", + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + } + }, + "node_modules/@svgr/babel-preset": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/@svgr/babel-preset/-/babel-preset-5.5.0.tgz", + "integrity": "sha512-4FiXBjvQ+z2j7yASeGPEi8VD/5rrGQk4Xrq3EdJmoZgz/tpqChpo5hgXDvmEauwtvOc52q8ghhZK4Oy7qph4ig==", + "license": "MIT", + "dependencies": { + "@svgr/babel-plugin-add-jsx-attribute": "^5.4.0", + "@svgr/babel-plugin-remove-jsx-attribute": "^5.4.0", + "@svgr/babel-plugin-remove-jsx-empty-expression": "^5.0.1", + "@svgr/babel-plugin-replace-jsx-attribute-value": "^5.0.1", + "@svgr/babel-plugin-svg-dynamic-title": "^5.4.0", + "@svgr/babel-plugin-svg-em-dimensions": "^5.4.0", + "@svgr/babel-plugin-transform-react-native-svg": "^5.4.0", + "@svgr/babel-plugin-transform-svg-component": "^5.5.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + } + }, + "node_modules/@svgr/core": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/@svgr/core/-/core-5.5.0.tgz", + "integrity": "sha512-q52VOcsJPvV3jO1wkPtzTuKlvX7Y3xIcWRpCMtBF3MrteZJtBfQw/+u0B1BHy5ColpQc1/YVTrPEtSYIMNZlrQ==", + "license": "MIT", + "dependencies": { + "@svgr/plugin-jsx": "^5.5.0", + "camelcase": "^6.2.0", + "cosmiconfig": "^7.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + } + }, + "node_modules/@svgr/hast-util-to-babel-ast": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/@svgr/hast-util-to-babel-ast/-/hast-util-to-babel-ast-5.5.0.tgz", + "integrity": "sha512-cAaR/CAiZRB8GP32N+1jocovUtvlj0+e65TB50/6Lcime+EA49m/8l+P2ko+XPJ4dw3xaPS3jOL4F2X4KWxoeQ==", + "license": "MIT", + "dependencies": { + "@babel/types": "^7.12.6" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + } + }, + "node_modules/@svgr/plugin-jsx": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/@svgr/plugin-jsx/-/plugin-jsx-5.5.0.tgz", + "integrity": "sha512-V/wVh33j12hGh05IDg8GpIUXbjAPnTdPTKuP4VNLggnwaHMPNQNae2pRnyTAILWCQdz5GyMqtO488g7CKM8CBA==", + "license": "MIT", + "dependencies": { + "@babel/core": "^7.12.3", + "@svgr/babel-preset": "^5.5.0", + "@svgr/hast-util-to-babel-ast": "^5.5.0", + "svg-parser": "^2.0.2" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + } + }, + "node_modules/@svgr/plugin-svgo": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/@svgr/plugin-svgo/-/plugin-svgo-5.5.0.tgz", + "integrity": "sha512-r5swKk46GuQl4RrVejVwpeeJaydoxkdwkM1mBKOgJLBUJPGaLci6ylg/IjhrRsREKDkr4kbMWdgOtbXEh0fyLQ==", + "license": "MIT", + "dependencies": { + "cosmiconfig": "^7.0.0", + "deepmerge": "^4.2.2", + "svgo": "^1.2.2" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + } + }, + "node_modules/@svgr/webpack": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/@svgr/webpack/-/webpack-5.5.0.tgz", + "integrity": "sha512-DOBOK255wfQxguUta2INKkzPj6AIS6iafZYiYmHn6W3pHlycSRRlvWKCfLDG10fXfLWqE3DJHgRUOyJYmARa7g==", + "license": "MIT", + "dependencies": { + "@babel/core": "^7.12.3", + "@babel/plugin-transform-react-constant-elements": "^7.12.1", + "@babel/preset-env": "^7.12.1", + "@babel/preset-react": "^7.12.5", + "@svgr/core": "^5.5.0", + "@svgr/plugin-jsx": "^5.5.0", + "@svgr/plugin-svgo": "^5.5.0", + "loader-utils": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + } + }, + "node_modules/@swc/helpers": { + "version": "0.5.15", + "resolved": "https://registry.npmjs.org/@swc/helpers/-/helpers-0.5.15.tgz", + "integrity": "sha512-JQ5TuMi45Owi4/BIMAJBoSQoOJu12oOk/gADqlcUL9JEdHB8vyjUSsxqeNXnmXHjYKMi2WcYtezGEEhqUI/E2g==", + "license": "Apache-2.0", + "dependencies": { + "tslib": "^2.8.0" + } + }, + "node_modules/@testing-library/dom": { + "version": "10.4.0", + "resolved": "https://registry.npmjs.org/@testing-library/dom/-/dom-10.4.0.tgz", + "integrity": "sha512-pemlzrSESWbdAloYml3bAJMEfNh1Z7EduzqPKprCH5S341frlpYnUEW0H72dLxa6IsYr+mPno20GiSm+h9dEdQ==", + "license": "MIT", + "peer": true, + "dependencies": { + "@babel/code-frame": "^7.10.4", + "@babel/runtime": "^7.12.5", + "@types/aria-query": "^5.0.1", + "aria-query": "5.3.0", + "chalk": "^4.1.0", + "dom-accessibility-api": "^0.5.9", + "lz-string": "^1.5.0", + "pretty-format": "^27.0.2" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/@testing-library/jest-dom": { + "version": "5.17.0", + "resolved": "https://registry.npmjs.org/@testing-library/jest-dom/-/jest-dom-5.17.0.tgz", + "integrity": "sha512-ynmNeT7asXyH3aSVv4vvX4Rb+0qjOhdNHnO/3vuZNqPmhDpV/+rCSGwQ7bLcmU2cJ4dvoheIO85LQj0IbJHEtg==", + "license": "MIT", + "dependencies": { + "@adobe/css-tools": "^4.0.1", + "@babel/runtime": "^7.9.2", + "@types/testing-library__jest-dom": "^5.9.1", + "aria-query": "^5.0.0", + "chalk": "^3.0.0", + "css.escape": "^1.5.1", + "dom-accessibility-api": "^0.5.6", + "lodash": "^4.17.15", + "redent": "^3.0.0" + }, + "engines": { + "node": ">=8", + "npm": ">=6", + "yarn": ">=1" + } + }, + "node_modules/@testing-library/jest-dom/node_modules/chalk": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", + "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@testing-library/react": { + "version": "13.4.0", + "resolved": "https://registry.npmjs.org/@testing-library/react/-/react-13.4.0.tgz", + "integrity": "sha512-sXOGON+WNTh3MLE9rve97ftaZukN3oNf2KjDy7YTx6hcTO2uuLHuCGynMDhFwGw/jYf4OJ2Qk0i4i79qMNNkyw==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.12.5", + "@testing-library/dom": "^8.5.0", + "@types/react-dom": "^18.0.0" + }, + "engines": { + "node": ">=12" + }, + "peerDependencies": { + "react": "^18.0.0", + "react-dom": "^18.0.0" + } + }, + "node_modules/@testing-library/react/node_modules/@testing-library/dom": { + "version": "8.20.1", + "resolved": "https://registry.npmjs.org/@testing-library/dom/-/dom-8.20.1.tgz", + "integrity": "sha512-/DiOQ5xBxgdYRC8LNk7U+RWat0S3qRLeIw3ZIkMQ9kkVlRmwD/Eg8k8CqIpD6GW7u20JIUOfMKbxtiLutpjQ4g==", + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.10.4", + "@babel/runtime": "^7.12.5", + "@types/aria-query": "^5.0.1", + "aria-query": "5.1.3", + "chalk": "^4.1.0", + "dom-accessibility-api": "^0.5.9", + "lz-string": "^1.5.0", + "pretty-format": "^27.0.2" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/@testing-library/react/node_modules/aria-query": { + "version": "5.1.3", + "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-5.1.3.tgz", + "integrity": "sha512-R5iJ5lkuHybztUfuOAznmboyjWq8O6sqNqtK7CLOqdydi54VNbORp49mb14KbWgG1QD3JFO9hJdZ+y4KutfdOQ==", + "license": "Apache-2.0", + "dependencies": { + "deep-equal": "^2.0.5" + } + }, + "node_modules/@testing-library/react/node_modules/deep-equal": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-2.2.3.tgz", + "integrity": "sha512-ZIwpnevOurS8bpT4192sqAowWM76JDKSHYzMLty3BZGSswgq6pBaH3DhCSW5xVAZICZyKdOBPjwww5wfgT/6PA==", + "license": "MIT", + "dependencies": { + "array-buffer-byte-length": "^1.0.0", + "call-bind": "^1.0.5", + "es-get-iterator": "^1.1.3", + "get-intrinsic": "^1.2.2", + "is-arguments": "^1.1.1", + "is-array-buffer": "^3.0.2", + "is-date-object": "^1.0.5", + "is-regex": "^1.1.4", + "is-shared-array-buffer": "^1.0.2", + "isarray": "^2.0.5", + "object-is": "^1.1.5", + "object-keys": "^1.1.1", + "object.assign": "^4.1.4", + "regexp.prototype.flags": "^1.5.1", + "side-channel": "^1.0.4", + "which-boxed-primitive": "^1.0.2", + "which-collection": "^1.0.1", + "which-typed-array": "^1.1.13" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/@testing-library/user-event": { + "version": "13.5.0", + "resolved": "https://registry.npmjs.org/@testing-library/user-event/-/user-event-13.5.0.tgz", + "integrity": "sha512-5Kwtbo3Y/NowpkbRuSepbyMFkZmHgD+vPzYB/RJ4oxt5Gj/avFFBYjhw27cqSVPVw/3a67NK1PbiIr9k4Gwmdg==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.12.5" + }, + "engines": { + "node": ">=10", + "npm": ">=6" + }, + "peerDependencies": { + "@testing-library/dom": ">=7.21.4" + } + }, + "node_modules/@tootallnate/once": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-1.1.2.tgz", + "integrity": "sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw==", + "license": "MIT", + "engines": { + "node": ">= 6" + } + }, + "node_modules/@trysound/sax": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/@trysound/sax/-/sax-0.2.0.tgz", + "integrity": "sha512-L7z9BgrNEcYyUYtF+HaEfiS5ebkh9jXqbszz7pC0hRBPaatV0XjSD3+eHrpqFemQfgwiFF0QPIarnIihIDn7OA==", + "license": "ISC", + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/@types/aria-query": { + "version": "5.0.4", + "resolved": "https://registry.npmjs.org/@types/aria-query/-/aria-query-5.0.4.tgz", + "integrity": "sha512-rfT93uj5s0PRL7EzccGMs3brplhcrghnDoV26NqKhCAS1hVo+WdNsPvE/yb6ilfr5hi2MEk6d5EWJTKdxg8jVw==", + "license": "MIT" + }, + "node_modules/@types/babel__core": { + "version": "7.20.5", + "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.20.5.tgz", + "integrity": "sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==", + "license": "MIT", + "dependencies": { + "@babel/parser": "^7.20.7", + "@babel/types": "^7.20.7", + "@types/babel__generator": "*", + "@types/babel__template": "*", + "@types/babel__traverse": "*" + } + }, + "node_modules/@types/babel__generator": { + "version": "7.6.8", + "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.6.8.tgz", + "integrity": "sha512-ASsj+tpEDsEiFr1arWrlN6V3mdfjRMZt6LtK/Vp/kreFLnr5QH5+DhvD5nINYZXzwJvXeGq+05iUXcAzVrqWtw==", + "license": "MIT", + "dependencies": { + "@babel/types": "^7.0.0" + } + }, + "node_modules/@types/babel__template": { + "version": "7.4.4", + "resolved": "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.4.tgz", + "integrity": "sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==", + "license": "MIT", + "dependencies": { + "@babel/parser": "^7.1.0", + "@babel/types": "^7.0.0" + } + }, + "node_modules/@types/babel__traverse": { + "version": "7.20.6", + "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.20.6.tgz", + "integrity": "sha512-r1bzfrm0tomOI8g1SzvCaQHo6Lcv6zu0EA+W2kHrt8dyrHQxGzBBL4kdkzIS+jBMV+EYcMAEAqXqYaLJq5rOZg==", + "license": "MIT", + "dependencies": { + "@babel/types": "^7.20.7" + } + }, + "node_modules/@types/body-parser": { + "version": "1.19.5", + "resolved": "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.5.tgz", + "integrity": "sha512-fB3Zu92ucau0iQ0JMCFQE7b/dv8Ot07NI3KaZIkIUNXq82k4eBAqUaneXfleGY9JWskeS9y+u0nXMyspcuQrCg==", + "license": "MIT", + "dependencies": { + "@types/connect": "*", + "@types/node": "*" + } + }, + "node_modules/@types/bonjour": { + "version": "3.5.13", + "resolved": "https://registry.npmjs.org/@types/bonjour/-/bonjour-3.5.13.tgz", + "integrity": "sha512-z9fJ5Im06zvUL548KvYNecEVlA7cVDkGUi6kZusb04mpyEFKCIZJvloCcmpmLaIahDpOQGHaHmG6imtPMmPXGQ==", + "license": "MIT", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/connect": { + "version": "3.4.38", + "resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.38.tgz", + "integrity": "sha512-K6uROf1LD88uDQqJCktA4yzL1YYAK6NgfsI0v/mTgyPKWsX1CnJ0XPSDhViejru1GcRkLWb8RlzFYJRqGUbaug==", + "license": "MIT", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/connect-history-api-fallback": { + "version": "1.5.4", + "resolved": "https://registry.npmjs.org/@types/connect-history-api-fallback/-/connect-history-api-fallback-1.5.4.tgz", + "integrity": "sha512-n6Cr2xS1h4uAulPRdlw6Jl6s1oG8KrVilPN2yUITEs+K48EzMJJ3W1xy8K5eWuFvjp3R74AOIGSmp2UfBJ8HFw==", + "license": "MIT", + "dependencies": { + "@types/express-serve-static-core": "*", + "@types/node": "*" + } + }, + "node_modules/@types/cookie": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/@types/cookie/-/cookie-0.6.0.tgz", + "integrity": "sha512-4Kh9a6B2bQciAhf7FSuMRRkUWecJgJu9nPnx3yzpsfXX/c50REIqpHY4C82bXP90qrLtXtkDxTZosYO3UpOwlA==", + "license": "MIT" + }, + "node_modules/@types/eslint": { + "version": "8.56.12", + "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-8.56.12.tgz", + "integrity": "sha512-03ruubjWyOHlmljCVoxSuNDdmfZDzsrrz0P2LeJsOXr+ZwFQ+0yQIwNCwt/GYhV7Z31fgtXJTAEs+FYlEL851g==", + "license": "MIT", + "dependencies": { + "@types/estree": "*", + "@types/json-schema": "*" + } + }, + "node_modules/@types/eslint-scope": { + "version": "3.7.7", + "resolved": "https://registry.npmjs.org/@types/eslint-scope/-/eslint-scope-3.7.7.tgz", + "integrity": "sha512-MzMFlSLBqNF2gcHWO0G1vP/YQyfvrxZ0bF+u7mzUdZ1/xK4A4sru+nraZz5i3iEIk1l1uyicaDVTB4QbbEkAYg==", + "license": "MIT", + "dependencies": { + "@types/eslint": "*", + "@types/estree": "*" + } + }, + "node_modules/@types/estree": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.6.tgz", + "integrity": "sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw==", + "license": "MIT" + }, + "node_modules/@types/express": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.21.tgz", + "integrity": "sha512-ejlPM315qwLpaQlQDTjPdsUFSc6ZsP4AN6AlWnogPjQ7CVi7PYF3YVz+CY3jE2pwYf7E/7HlDAN0rV2GxTG0HQ==", + "license": "MIT", + "dependencies": { + "@types/body-parser": "*", + "@types/express-serve-static-core": "^4.17.33", + "@types/qs": "*", + "@types/serve-static": "*" + } + }, + "node_modules/@types/express-serve-static-core": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-5.0.2.tgz", + "integrity": "sha512-vluaspfvWEtE4vcSDlKRNer52DvOGrB2xv6diXy6UKyKW0lqZiWHGNApSyxOv+8DE5Z27IzVvE7hNkxg7EXIcg==", + "license": "MIT", + "dependencies": { + "@types/node": "*", + "@types/qs": "*", + "@types/range-parser": "*", + "@types/send": "*" + } + }, + "node_modules/@types/express/node_modules/@types/express-serve-static-core": { + "version": "4.19.6", + "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.19.6.tgz", + "integrity": "sha512-N4LZ2xG7DatVqhCZzOGb1Yi5lMbXSZcmdLDe9EzSndPV2HpWYWzRbaerl2n27irrm94EPpprqa8KpskPT085+A==", + "license": "MIT", + "dependencies": { + "@types/node": "*", + "@types/qs": "*", + "@types/range-parser": "*", + "@types/send": "*" + } + }, + "node_modules/@types/graceful-fs": { + "version": "4.1.9", + "resolved": "https://registry.npmjs.org/@types/graceful-fs/-/graceful-fs-4.1.9.tgz", + "integrity": "sha512-olP3sd1qOEe5dXTSaFvQG+02VdRXcdytWLAZsAq1PecU8uqQAhkrnbli7DagjtXKW/Bl7YJbUsa8MPcuc8LHEQ==", + "license": "MIT", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/html-minifier-terser": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/@types/html-minifier-terser/-/html-minifier-terser-6.1.0.tgz", + "integrity": "sha512-oh/6byDPnL1zeNXFrDXFLyZjkr1MsBG667IM792caf1L2UPOOMf65NFzjUH/ltyfwjAGfs1rsX1eftK0jC/KIg==", + "license": "MIT" + }, + "node_modules/@types/http-errors": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/@types/http-errors/-/http-errors-2.0.4.tgz", + "integrity": "sha512-D0CFMMtydbJAegzOyHjtiKPLlvnm3iTZyZRSZoLq2mRhDdmLfIWOCYPfQJ4cu2erKghU++QvjcUjp/5h7hESpA==", + "license": "MIT" + }, + "node_modules/@types/http-proxy": { + "version": "1.17.15", + "resolved": "https://registry.npmjs.org/@types/http-proxy/-/http-proxy-1.17.15.tgz", + "integrity": "sha512-25g5atgiVNTIv0LBDTg1H74Hvayx0ajtJPLLcYE3whFv75J0pWNtOBzaXJQgDTmrX1bx5U9YC2w/n65BN1HwRQ==", + "license": "MIT", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/istanbul-lib-coverage": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.6.tgz", + "integrity": "sha512-2QF/t/auWm0lsy8XtKVPG19v3sSOQlJe/YHZgfjb/KBBHOGSV+J2q/S671rcq9uTBrLAXmZpqJiaQbMT+zNU1w==", + "license": "MIT" + }, + "node_modules/@types/istanbul-lib-report": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.3.tgz", + "integrity": "sha512-NQn7AHQnk/RSLOxrBbGyJM/aVQ+pjj5HCgasFxc0K/KhoATfQ/47AyUl15I2yBUpihjmas+a+VJBOqecrFH+uA==", + "license": "MIT", + "dependencies": { + "@types/istanbul-lib-coverage": "*" + } + }, + "node_modules/@types/istanbul-reports": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.4.tgz", + "integrity": "sha512-pk2B1NWalF9toCRu6gjBzR69syFjP4Od8WRAX+0mmf9lAjCRicLOWc+ZrxZHx/0XRjotgkF9t6iaMJ+aXcOdZQ==", + "license": "MIT", + "dependencies": { + "@types/istanbul-lib-report": "*" + } + }, + "node_modules/@types/jest": { + "version": "29.5.14", + "resolved": "https://registry.npmjs.org/@types/jest/-/jest-29.5.14.tgz", + "integrity": "sha512-ZN+4sdnLUbo8EVvVc2ao0GFW6oVrQRPn4K2lglySj7APvSrgzxHiNNK99us4WDMi57xxA2yggblIAMNhXOotLQ==", + "license": "MIT", + "dependencies": { + "expect": "^29.0.0", + "pretty-format": "^29.0.0" + } + }, + "node_modules/@types/jest/node_modules/ansi-styles": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/@types/jest/node_modules/pretty-format": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.7.0.tgz", + "integrity": "sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==", + "license": "MIT", + "dependencies": { + "@jest/schemas": "^29.6.3", + "ansi-styles": "^5.0.0", + "react-is": "^18.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@types/jest/node_modules/react-is": { + "version": "18.3.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.3.1.tgz", + "integrity": "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==", + "license": "MIT" + }, + "node_modules/@types/json-schema": { + "version": "7.0.15", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz", + "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==", + "license": "MIT" + }, + "node_modules/@types/json5": { + "version": "0.0.29", + "resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz", + "integrity": "sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==", + "license": "MIT" + }, + "node_modules/@types/mime": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/@types/mime/-/mime-1.3.5.tgz", + "integrity": "sha512-/pyBZWSLD2n0dcHE3hq8s8ZvcETHtEuF+3E7XVt0Ig2nvsVQXdghHVcEkIWjy9A0wKfTn97a/PSDYohKIlnP/w==", + "license": "MIT" + }, + "node_modules/@types/node": { + "version": "22.10.0", + "resolved": "https://registry.npmjs.org/@types/node/-/node-22.10.0.tgz", + "integrity": "sha512-XC70cRZVElFHfIUB40FgZOBbgJYFKKMa5nb9lxcwYstFG/Mi+/Y0bGS+rs6Dmhmkpq4pnNiLiuZAbc02YCOnmA==", + "license": "MIT", + "dependencies": { + "undici-types": "~6.20.0" + } + }, + "node_modules/@types/node-forge": { + "version": "1.3.11", + "resolved": "https://registry.npmjs.org/@types/node-forge/-/node-forge-1.3.11.tgz", + "integrity": "sha512-FQx220y22OKNTqaByeBGqHWYz4cl94tpcxeFdvBo3wjG6XPBuZ0BNgNZRV5J5TFmmcsJ4IzsLkmGRiQbnYsBEQ==", + "license": "MIT", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/parse-json": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/@types/parse-json/-/parse-json-4.0.2.tgz", + "integrity": "sha512-dISoDXWWQwUquiKsyZ4Ng+HX2KsPL7LyHKHQwgGFEA3IaKac4Obd+h2a/a6waisAoepJlBcx9paWqjA8/HVjCw==", + "license": "MIT" + }, + "node_modules/@types/prettier": { + "version": "2.7.3", + "resolved": "https://registry.npmjs.org/@types/prettier/-/prettier-2.7.3.tgz", + "integrity": "sha512-+68kP9yzs4LMp7VNh8gdzMSPZFL44MLGqiHWvttYJe+6qnuVr4Ek9wSBQoveqY/r+LwjCcU29kNVkidwim+kYA==", + "license": "MIT" + }, + "node_modules/@types/prop-types": { + "version": "15.7.13", + "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.13.tgz", + "integrity": "sha512-hCZTSvwbzWGvhqxp/RqVqwU999pBf2vp7hzIjiYOsl8wqOmUxkQ6ddw1cV3l8811+kdUFus/q4d1Y3E3SyEifA==", + "license": "MIT" + }, + "node_modules/@types/q": { + "version": "1.5.8", + "resolved": "https://registry.npmjs.org/@types/q/-/q-1.5.8.tgz", + "integrity": "sha512-hroOstUScF6zhIi+5+x0dzqrHA1EJi+Irri6b1fxolMTqqHIV/Cg77EtnQcZqZCu8hR3mX2BzIxN4/GzI68Kfw==", + "license": "MIT" + }, + "node_modules/@types/qs": { + "version": "6.9.17", + "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.17.tgz", + "integrity": "sha512-rX4/bPcfmvxHDv0XjfJELTTr+iB+tn032nPILqHm5wbthUUUuVtNGGqzhya9XUxjTP8Fpr0qYgSZZKxGY++svQ==", + "license": "MIT" + }, + "node_modules/@types/range-parser": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/@types/range-parser/-/range-parser-1.2.7.tgz", + "integrity": "sha512-hKormJbkJqzQGhziax5PItDUTMAM9uE2XXQmM37dyd4hVM+5aVl7oVxMVUiVQn2oCQFN/LKCZdvSM0pFRqbSmQ==", + "license": "MIT" + }, + "node_modules/@types/react": { + "version": "18.3.12", + "resolved": "https://registry.npmjs.org/@types/react/-/react-18.3.12.tgz", + "integrity": "sha512-D2wOSq/d6Agt28q7rSI3jhU7G6aiuzljDGZ2hTZHIkrTLUI+AF3WMeKkEZ9nN2fkBAlcktT6vcZjDFiIhMYEQw==", + "license": "MIT", + "dependencies": { + "@types/prop-types": "*", + "csstype": "^3.0.2" + } + }, + "node_modules/@types/react-dom": { + "version": "18.3.1", + "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-18.3.1.tgz", + "integrity": "sha512-qW1Mfv8taImTthu4KoXgDfLuk4bydU6Q/TkADnDWWHwi4NX4BR+LWfTp2sVmTqRrsHvyDDTelgelxJ+SsejKKQ==", + "license": "MIT", + "dependencies": { + "@types/react": "*" + } + }, + "node_modules/@types/react-transition-group": { + "version": "4.4.11", + "resolved": "https://registry.npmjs.org/@types/react-transition-group/-/react-transition-group-4.4.11.tgz", + "integrity": "sha512-RM05tAniPZ5DZPzzNFP+DmrcOdD0efDUxMy3145oljWSl3x9ZV5vhme98gTxFrj2lhXvmGNnUiuDyJgY9IKkNA==", + "license": "MIT", + "dependencies": { + "@types/react": "*" + } + }, + "node_modules/@types/resolve": { + "version": "1.17.1", + "resolved": "https://registry.npmjs.org/@types/resolve/-/resolve-1.17.1.tgz", + "integrity": "sha512-yy7HuzQhj0dhGpD8RLXSZWEkLsV9ibvxvi6EiJ3bkqLAO1RGo0WbkWQiwpRlSFymTJRz0d3k5LM3kkx8ArDbLw==", + "license": "MIT", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/retry": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/@types/retry/-/retry-0.12.0.tgz", + "integrity": "sha512-wWKOClTTiizcZhXnPY4wikVAwmdYHp8q6DmC+EJUzAMsycb7HB32Kh9RN4+0gExjmPmZSAQjgURXIGATPegAvA==", + "license": "MIT" + }, + "node_modules/@types/semver": { + "version": "7.5.8", + "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.5.8.tgz", + "integrity": "sha512-I8EUhyrgfLrcTkzV3TSsGyl1tSuPrEDzr0yd5m90UgNxQkyDXULk3b6MlQqTCpZpNtWe1K0hzclnZkTcLBe2UQ==", + "license": "MIT" + }, + "node_modules/@types/send": { + "version": "0.17.4", + "resolved": "https://registry.npmjs.org/@types/send/-/send-0.17.4.tgz", + "integrity": "sha512-x2EM6TJOybec7c52BX0ZspPodMsQUd5L6PRwOunVyVUhXiBSKf3AezDL8Dgvgt5o0UfKNfuA0eMLr2wLT4AiBA==", + "license": "MIT", + "dependencies": { + "@types/mime": "^1", + "@types/node": "*" + } + }, + "node_modules/@types/serve-index": { + "version": "1.9.4", + "resolved": "https://registry.npmjs.org/@types/serve-index/-/serve-index-1.9.4.tgz", + "integrity": "sha512-qLpGZ/c2fhSs5gnYsQxtDEq3Oy8SXPClIXkW5ghvAvsNuVSA8k+gCONcUCS/UjLEYvYps+e8uBtfgXgvhwfNug==", + "license": "MIT", + "dependencies": { + "@types/express": "*" + } + }, + "node_modules/@types/serve-static": { + "version": "1.15.7", + "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.15.7.tgz", + "integrity": "sha512-W8Ym+h8nhuRwaKPaDw34QUkwsGi6Rc4yYqvKFo5rm2FUEhCFbzVWrxXUxuKK8TASjWsysJY0nsmNCGhCOIsrOw==", + "license": "MIT", + "dependencies": { + "@types/http-errors": "*", + "@types/node": "*", + "@types/send": "*" + } + }, + "node_modules/@types/sockjs": { + "version": "0.3.36", + "resolved": "https://registry.npmjs.org/@types/sockjs/-/sockjs-0.3.36.tgz", + "integrity": "sha512-MK9V6NzAS1+Ud7JV9lJLFqW85VbC9dq3LmwZCuBe4wBDgKC0Kj/jd8Xl+nSviU+Qc3+m7umHHyHg//2KSa0a0Q==", + "license": "MIT", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/stack-utils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.3.tgz", + "integrity": "sha512-9aEbYZ3TbYMznPdcdr3SmIrLXwC/AKZXQeCf9Pgao5CKb8CyHuEX5jzWPTkvregvhRJHcpRO6BFoGW9ycaOkYw==", + "license": "MIT" + }, + "node_modules/@types/stylis": { + "version": "4.2.5", + "resolved": "https://registry.npmjs.org/@types/stylis/-/stylis-4.2.5.tgz", + "integrity": "sha512-1Xve+NMN7FWjY14vLoY5tL3BVEQ/n42YLwaqJIPYhotZ9uBHt87VceMwWQpzmdEt2TNXIorIFG+YeCUUW7RInw==", + "license": "MIT" + }, + "node_modules/@types/testing-library__jest-dom": { + "version": "5.14.9", + "resolved": "https://registry.npmjs.org/@types/testing-library__jest-dom/-/testing-library__jest-dom-5.14.9.tgz", + "integrity": "sha512-FSYhIjFlfOpGSRyVoMBMuS3ws5ehFQODymf3vlI7U1K8c7PHwWwFY7VREfmsuzHSOnoKs/9/Y983ayOs7eRzqw==", + "license": "MIT", + "dependencies": { + "@types/jest": "*" + } + }, + "node_modules/@types/trusted-types": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/@types/trusted-types/-/trusted-types-2.0.7.tgz", + "integrity": "sha512-ScaPdn1dQczgbl0QFTeTOmVHFULt394XJgOQNoyVhZ6r2vLnMLJfBPd53SB52T/3G36VI1/g2MZaX0cwDuXsfw==", + "license": "MIT" + }, + "node_modules/@types/warning": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@types/warning/-/warning-3.0.3.tgz", + "integrity": "sha512-D1XC7WK8K+zZEveUPY+cf4+kgauk8N4eHr/XIHXGlGYkHLud6hK9lYfZk1ry1TNh798cZUCgb6MqGEG8DkJt6Q==", + "license": "MIT" + }, + "node_modules/@types/ws": { + "version": "8.5.13", + "resolved": "https://registry.npmjs.org/@types/ws/-/ws-8.5.13.tgz", + "integrity": "sha512-osM/gWBTPKgHV8XkTunnegTRIsvF6owmf5w+JtAfOw472dptdm0dlGv4xCt6GwQRcC2XVOvvRE/0bAoQcL2QkA==", + "license": "MIT", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/yargs": { + "version": "17.0.33", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.33.tgz", + "integrity": "sha512-WpxBCKWPLr4xSsHgz511rFJAM+wS28w2zEO1QDNY5zM/S8ok70NNfztH0xwhqKyaK0OHCbN98LDAZuy1ctxDkA==", + "license": "MIT", + "dependencies": { + "@types/yargs-parser": "*" + } + }, + "node_modules/@types/yargs-parser": { + "version": "21.0.3", + "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-21.0.3.tgz", + "integrity": "sha512-I4q9QU9MQv4oEOz4tAHJtNz1cwuLxn2F3xcc2iV5WdqLPpUnj30aUuxt1mAxYTG+oe8CZMV/+6rU4S4gRDzqtQ==", + "license": "MIT" + }, + "node_modules/@typescript-eslint/eslint-plugin": { + "version": "5.62.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.62.0.tgz", + "integrity": "sha512-TiZzBSJja/LbhNPvk6yc0JrX9XqhQ0hdh6M2svYfsHGejaKFIAGd9MQ+ERIMzLGlN/kZoYIgdxFV0PuljTKXag==", + "license": "MIT", + "dependencies": { + "@eslint-community/regexpp": "^4.4.0", + "@typescript-eslint/scope-manager": "5.62.0", + "@typescript-eslint/type-utils": "5.62.0", + "@typescript-eslint/utils": "5.62.0", + "debug": "^4.3.4", + "graphemer": "^1.4.0", + "ignore": "^5.2.0", + "natural-compare-lite": "^1.4.0", + "semver": "^7.3.7", + "tsutils": "^3.21.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "@typescript-eslint/parser": "^5.0.0", + "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/experimental-utils": { + "version": "5.62.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-5.62.0.tgz", + "integrity": "sha512-RTXpeB3eMkpoclG3ZHft6vG/Z30azNHuqY6wKPBHlVMZFuEvrtlEDe8gMqDb+SO+9hjC/pLekeSCryf9vMZlCw==", + "license": "MIT", + "dependencies": { + "@typescript-eslint/utils": "5.62.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" + } + }, + "node_modules/@typescript-eslint/parser": { + "version": "5.62.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.62.0.tgz", + "integrity": "sha512-VlJEV0fOQ7BExOsHYAGrgbEiZoi8D+Bl2+f6V2RrXerRSylnp+ZBHmPvaIa8cz0Ajx7WO7Z5RqfgYg7ED1nRhA==", + "license": "BSD-2-Clause", + "dependencies": { + "@typescript-eslint/scope-manager": "5.62.0", + "@typescript-eslint/types": "5.62.0", + "@typescript-eslint/typescript-estree": "5.62.0", + "debug": "^4.3.4" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/scope-manager": { + "version": "5.62.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.62.0.tgz", + "integrity": "sha512-VXuvVvZeQCQb5Zgf4HAxc04q5j+WrNAtNh9OwCsCgpKqESMTu3tF/jhZ3xG6T4NZwWl65Bg8KuS2uEvhSfLl0w==", + "license": "MIT", + "dependencies": { + "@typescript-eslint/types": "5.62.0", + "@typescript-eslint/visitor-keys": "5.62.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/type-utils": { + "version": "5.62.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.62.0.tgz", + "integrity": "sha512-xsSQreu+VnfbqQpW5vnCJdq1Z3Q0U31qiWmRhr98ONQmcp/yhiPJFPq8MXiJVLiksmOKSjIldZzkebzHuCGzew==", + "license": "MIT", + "dependencies": { + "@typescript-eslint/typescript-estree": "5.62.0", + "@typescript-eslint/utils": "5.62.0", + "debug": "^4.3.4", + "tsutils": "^3.21.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "*" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/types": { + "version": "5.62.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.62.0.tgz", + "integrity": "sha512-87NVngcbVXUahrRTqIK27gD2t5Cu1yuCXxbLcFtCzZGlfyVWWh8mLHkoxzjsB6DDNnvdL+fW8MiwPEJyGJQDgQ==", + "license": "MIT", + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/typescript-estree": { + "version": "5.62.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.62.0.tgz", + "integrity": "sha512-CmcQ6uY7b9y694lKdRB8FEel7JbU/40iSAPomu++SjLMntB+2Leay2LO6i8VnJk58MtE9/nQSFIH6jpyRWyYzA==", + "license": "BSD-2-Clause", + "dependencies": { + "@typescript-eslint/types": "5.62.0", + "@typescript-eslint/visitor-keys": "5.62.0", + "debug": "^4.3.4", + "globby": "^11.1.0", + "is-glob": "^4.0.3", + "semver": "^7.3.7", + "tsutils": "^3.21.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/utils": { + "version": "5.62.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.62.0.tgz", + "integrity": "sha512-n8oxjeb5aIbPFEtmQxQYOLI0i9n5ySBEY/ZEHHZqKQSFnxio1rv6dthascc9dLuwrL0RC5mPCxB7vnAVGAYWAQ==", + "license": "MIT", + "dependencies": { + "@eslint-community/eslint-utils": "^4.2.0", + "@types/json-schema": "^7.0.9", + "@types/semver": "^7.3.12", + "@typescript-eslint/scope-manager": "5.62.0", + "@typescript-eslint/types": "5.62.0", + "@typescript-eslint/typescript-estree": "5.62.0", + "eslint-scope": "^5.1.1", + "semver": "^7.3.7" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" + } + }, + "node_modules/@typescript-eslint/utils/node_modules/eslint-scope": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", + "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", + "license": "BSD-2-Clause", + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^4.1.1" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/@typescript-eslint/utils/node_modules/estraverse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", + "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", + "license": "BSD-2-Clause", + "engines": { + "node": ">=4.0" + } + }, + "node_modules/@typescript-eslint/visitor-keys": { + "version": "5.62.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.62.0.tgz", + "integrity": "sha512-07ny+LHRzQXepkGg6w0mFY41fVUNBrL2Roj/++7V1txKugfjm/Ci/qSND03r2RhlJhJYMcTn9AhhSSqQp0Ysyw==", + "license": "MIT", + "dependencies": { + "@typescript-eslint/types": "5.62.0", + "eslint-visitor-keys": "^3.3.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@ungap/structured-clone": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.2.0.tgz", + "integrity": "sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==", + "license": "ISC" + }, + "node_modules/@webassemblyjs/ast": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.14.1.tgz", + "integrity": "sha512-nuBEDgQfm1ccRp/8bCQrx1frohyufl4JlbMMZ4P1wpeOfDhF6FQkxZJ1b/e+PLwr6X1Nhw6OLme5usuBWYBvuQ==", + "license": "MIT", + "dependencies": { + "@webassemblyjs/helper-numbers": "1.13.2", + "@webassemblyjs/helper-wasm-bytecode": "1.13.2" + } + }, + "node_modules/@webassemblyjs/floating-point-hex-parser": { + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.13.2.tgz", + "integrity": "sha512-6oXyTOzbKxGH4steLbLNOu71Oj+C8Lg34n6CqRvqfS2O71BxY6ByfMDRhBytzknj9yGUPVJ1qIKhRlAwO1AovA==", + "license": "MIT" + }, + "node_modules/@webassemblyjs/helper-api-error": { + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.13.2.tgz", + "integrity": "sha512-U56GMYxy4ZQCbDZd6JuvvNV/WFildOjsaWD3Tzzvmw/mas3cXzRJPMjP83JqEsgSbyrmaGjBfDtV7KDXV9UzFQ==", + "license": "MIT" + }, + "node_modules/@webassemblyjs/helper-buffer": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.14.1.tgz", + "integrity": "sha512-jyH7wtcHiKssDtFPRB+iQdxlDf96m0E39yb0k5uJVhFGleZFoNw1c4aeIcVUPPbXUVJ94wwnMOAqUHyzoEPVMA==", + "license": "MIT" + }, + "node_modules/@webassemblyjs/helper-numbers": { + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-numbers/-/helper-numbers-1.13.2.tgz", + "integrity": "sha512-FE8aCmS5Q6eQYcV3gI35O4J789wlQA+7JrqTTpJqn5emA4U2hvwJmvFRC0HODS+3Ye6WioDklgd6scJ3+PLnEA==", + "license": "MIT", + "dependencies": { + "@webassemblyjs/floating-point-hex-parser": "1.13.2", + "@webassemblyjs/helper-api-error": "1.13.2", + "@xtuc/long": "4.2.2" + } + }, + "node_modules/@webassemblyjs/helper-wasm-bytecode": { + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.13.2.tgz", + "integrity": "sha512-3QbLKy93F0EAIXLh0ogEVR6rOubA9AoZ+WRYhNbFyuB70j3dRdwH9g+qXhLAO0kiYGlg3TxDV+I4rQTr/YNXkA==", + "license": "MIT" + }, + "node_modules/@webassemblyjs/helper-wasm-section": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.14.1.tgz", + "integrity": "sha512-ds5mXEqTJ6oxRoqjhWDU83OgzAYjwsCV8Lo/N+oRsNDmx/ZDpqalmrtgOMkHwxsG0iI//3BwWAErYRHtgn0dZw==", + "license": "MIT", + "dependencies": { + "@webassemblyjs/ast": "1.14.1", + "@webassemblyjs/helper-buffer": "1.14.1", + "@webassemblyjs/helper-wasm-bytecode": "1.13.2", + "@webassemblyjs/wasm-gen": "1.14.1" + } + }, + "node_modules/@webassemblyjs/ieee754": { + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.13.2.tgz", + "integrity": "sha512-4LtOzh58S/5lX4ITKxnAK2USuNEvpdVV9AlgGQb8rJDHaLeHciwG4zlGr0j/SNWlr7x3vO1lDEsuePvtcDNCkw==", + "license": "MIT", + "dependencies": { + "@xtuc/ieee754": "^1.2.0" + } + }, + "node_modules/@webassemblyjs/leb128": { + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.13.2.tgz", + "integrity": "sha512-Lde1oNoIdzVzdkNEAWZ1dZ5orIbff80YPdHx20mrHwHrVNNTjNr8E3xz9BdpcGqRQbAEa+fkrCb+fRFTl/6sQw==", + "license": "Apache-2.0", + "dependencies": { + "@xtuc/long": "4.2.2" + } + }, + "node_modules/@webassemblyjs/utf8": { + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.13.2.tgz", + "integrity": "sha512-3NQWGjKTASY1xV5m7Hr0iPeXD9+RDobLll3T9d2AO+g3my8xy5peVyjSag4I50mR1bBSN/Ct12lo+R9tJk0NZQ==", + "license": "MIT" + }, + "node_modules/@webassemblyjs/wasm-edit": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.14.1.tgz", + "integrity": "sha512-RNJUIQH/J8iA/1NzlE4N7KtyZNHi3w7at7hDjvRNm5rcUXa00z1vRz3glZoULfJ5mpvYhLybmVcwcjGrC1pRrQ==", + "license": "MIT", + "dependencies": { + "@webassemblyjs/ast": "1.14.1", + "@webassemblyjs/helper-buffer": "1.14.1", + "@webassemblyjs/helper-wasm-bytecode": "1.13.2", + "@webassemblyjs/helper-wasm-section": "1.14.1", + "@webassemblyjs/wasm-gen": "1.14.1", + "@webassemblyjs/wasm-opt": "1.14.1", + "@webassemblyjs/wasm-parser": "1.14.1", + "@webassemblyjs/wast-printer": "1.14.1" + } + }, + "node_modules/@webassemblyjs/wasm-gen": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.14.1.tgz", + "integrity": "sha512-AmomSIjP8ZbfGQhumkNvgC33AY7qtMCXnN6bL2u2Js4gVCg8fp735aEiMSBbDR7UQIj90n4wKAFUSEd0QN2Ukg==", + "license": "MIT", + "dependencies": { + "@webassemblyjs/ast": "1.14.1", + "@webassemblyjs/helper-wasm-bytecode": "1.13.2", + "@webassemblyjs/ieee754": "1.13.2", + "@webassemblyjs/leb128": "1.13.2", + "@webassemblyjs/utf8": "1.13.2" + } + }, + "node_modules/@webassemblyjs/wasm-opt": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.14.1.tgz", + "integrity": "sha512-PTcKLUNvBqnY2U6E5bdOQcSM+oVP/PmrDY9NzowJjislEjwP/C4an2303MCVS2Mg9d3AJpIGdUFIQQWbPds0Sw==", + "license": "MIT", + "dependencies": { + "@webassemblyjs/ast": "1.14.1", + "@webassemblyjs/helper-buffer": "1.14.1", + "@webassemblyjs/wasm-gen": "1.14.1", + "@webassemblyjs/wasm-parser": "1.14.1" + } + }, + "node_modules/@webassemblyjs/wasm-parser": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.14.1.tgz", + "integrity": "sha512-JLBl+KZ0R5qB7mCnud/yyX08jWFw5MsoalJ1pQ4EdFlgj9VdXKGuENGsiCIjegI1W7p91rUlcB/LB5yRJKNTcQ==", + "license": "MIT", + "dependencies": { + "@webassemblyjs/ast": "1.14.1", + "@webassemblyjs/helper-api-error": "1.13.2", + "@webassemblyjs/helper-wasm-bytecode": "1.13.2", + "@webassemblyjs/ieee754": "1.13.2", + "@webassemblyjs/leb128": "1.13.2", + "@webassemblyjs/utf8": "1.13.2" + } + }, + "node_modules/@webassemblyjs/wast-printer": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.14.1.tgz", + "integrity": "sha512-kPSSXE6De1XOR820C90RIo2ogvZG+c3KiHzqUoO/F34Y2shGzesfqv7o57xrxovZJH/MetF5UjroJ/R/3isoiw==", + "license": "MIT", + "dependencies": { + "@webassemblyjs/ast": "1.14.1", + "@xtuc/long": "4.2.2" + } + }, + "node_modules/@xtuc/ieee754": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz", + "integrity": "sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==", + "license": "BSD-3-Clause" + }, + "node_modules/@xtuc/long": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/@xtuc/long/-/long-4.2.2.tgz", + "integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==", + "license": "Apache-2.0" + }, + "node_modules/abab": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/abab/-/abab-2.0.6.tgz", + "integrity": "sha512-j2afSsaIENvHZN2B8GOpF566vZ5WVk5opAiMTvWgaQT8DkbOqsTfvNAvHoRGU2zzP8cPoqys+xHTRDWW8L+/BA==", + "deprecated": "Use your platform's native atob() and btoa() methods instead", + "license": "BSD-3-Clause" + }, + "node_modules/accepts": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz", + "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==", + "license": "MIT", + "dependencies": { + "mime-types": "~2.1.34", + "negotiator": "0.6.3" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/accepts/node_modules/negotiator": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", + "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/acorn": { + "version": "8.14.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.14.0.tgz", + "integrity": "sha512-cl669nCJTZBsL97OF4kUQm5g5hC2uihk0NxY3WENAC0TYdILVkAyHymAntgxGkl7K+t0cXIrH5siy5S4XkFycA==", + "license": "MIT", + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/acorn-globals": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/acorn-globals/-/acorn-globals-6.0.0.tgz", + "integrity": "sha512-ZQl7LOWaF5ePqqcX4hLuv/bLXYQNfNWw2c0/yX/TsPRKamzHcTGQnlCjHT3TsmkOUVEPS3crCxiPfdzE/Trlhg==", + "license": "MIT", + "dependencies": { + "acorn": "^7.1.1", + "acorn-walk": "^7.1.1" + } + }, + "node_modules/acorn-globals/node_modules/acorn": { + "version": "7.4.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz", + "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==", + "license": "MIT", + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/acorn-jsx": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", + "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", + "license": "MIT", + "peerDependencies": { + "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" + } + }, + "node_modules/acorn-walk": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-7.2.0.tgz", + "integrity": "sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA==", + "license": "MIT", + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/address": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/address/-/address-1.2.2.tgz", + "integrity": "sha512-4B/qKCfeE/ODUaAUpSwfzazo5x29WD4r3vXiWsB7I2mSDAihwEqKO+g8GELZUQSSAo5e1XTYh3ZVfLyxBc12nA==", + "license": "MIT", + "engines": { + "node": ">= 10.0.0" + } + }, + "node_modules/adjust-sourcemap-loader": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/adjust-sourcemap-loader/-/adjust-sourcemap-loader-4.0.0.tgz", + "integrity": "sha512-OXwN5b9pCUXNQHJpwwD2qP40byEmSgzj8B4ydSN0uMNYWiFmJ6x6KwUllMmfk8Rwu/HJDFR7U8ubsWBoN0Xp0A==", + "license": "MIT", + "dependencies": { + "loader-utils": "^2.0.0", + "regex-parser": "^2.2.11" + }, + "engines": { + "node": ">=8.9" + } + }, + "node_modules/agent-base": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", + "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", + "license": "MIT", + "dependencies": { + "debug": "4" + }, + "engines": { + "node": ">= 6.0.0" + } + }, + "node_modules/ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "license": "MIT", + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/ajv-formats": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ajv-formats/-/ajv-formats-2.1.1.tgz", + "integrity": "sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==", + "license": "MIT", + "dependencies": { + "ajv": "^8.0.0" + }, + "peerDependencies": { + "ajv": "^8.0.0" + }, + "peerDependenciesMeta": { + "ajv": { + "optional": true + } + } + }, + "node_modules/ajv-formats/node_modules/ajv": { + "version": "8.17.1", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.17.1.tgz", + "integrity": "sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==", + "license": "MIT", + "dependencies": { + "fast-deep-equal": "^3.1.3", + "fast-uri": "^3.0.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/ajv-formats/node_modules/json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", + "license": "MIT" + }, + "node_modules/ajv-keywords": { + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", + "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", + "license": "MIT", + "peerDependencies": { + "ajv": "^6.9.1" + } + }, + "node_modules/ansi-escapes": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", + "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", + "license": "MIT", + "dependencies": { + "type-fest": "^0.21.3" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/ansi-html": { + "version": "0.0.9", + "resolved": "https://registry.npmjs.org/ansi-html/-/ansi-html-0.0.9.tgz", + "integrity": "sha512-ozbS3LuenHVxNRh/wdnN16QapUHzauqSomAl1jwwJRRsGwFwtj644lIhxfWu0Fy0acCij2+AEgHvjscq3dlVXg==", + "engines": [ + "node >= 0.8.0" + ], + "license": "Apache-2.0", + "bin": { + "ansi-html": "bin/ansi-html" + } + }, + "node_modules/ansi-html-community": { + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/ansi-html-community/-/ansi-html-community-0.0.8.tgz", + "integrity": "sha512-1APHAyr3+PCamwNw3bXCPp4HFLONZt/yIH0sZp0/469KWNTEy+qN5jQ3GVX6DMZ1UXAi34yVwtTeaG/HpBuuzw==", + "engines": [ + "node >= 0.8.0" + ], + "license": "Apache-2.0", + "bin": { + "ansi-html": "bin/ansi-html" + } + }, + "node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/any-promise": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz", + "integrity": "sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==", + "license": "MIT" + }, + "node_modules/anymatch": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", + "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", + "license": "ISC", + "dependencies": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/arg": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/arg/-/arg-5.0.2.tgz", + "integrity": "sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==", + "license": "MIT" + }, + "node_modules/argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "license": "MIT", + "dependencies": { + "sprintf-js": "~1.0.2" + } + }, + "node_modules/aria-query": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-5.3.0.tgz", + "integrity": "sha512-b0P0sZPKtyu8HkeRAfCq0IfURZK+SuwMjY1UXGBU27wpAiTwQAIlq56IbIO+ytk/JjS1fMR14ee5WBBfKi5J6A==", + "license": "Apache-2.0", + "dependencies": { + "dequal": "^2.0.3" + } + }, + "node_modules/array-buffer-byte-length": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.1.tgz", + "integrity": "sha512-ahC5W1xgou+KTXix4sAO8Ki12Q+jf4i0+tmk3sC+zgcynshkHxzpXdImBehiUYKKKDwvfFiJl1tZt6ewscS1Mg==", + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.5", + "is-array-buffer": "^3.0.4" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array-flatten": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", + "integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==", + "license": "MIT" + }, + "node_modules/array-includes": { + "version": "3.1.8", + "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.8.tgz", + "integrity": "sha512-itaWrbYbqpGXkGhZPGUulwnhVf5Hpy1xiCFsGqyIGglbBxmG5vSjxQen3/WGOjPpNEv1RtBLKxbmVXm8HpJStQ==", + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.2", + "es-object-atoms": "^1.0.0", + "get-intrinsic": "^1.2.4", + "is-string": "^1.0.7" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array-union": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", + "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/array.prototype.findlast": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/array.prototype.findlast/-/array.prototype.findlast-1.2.5.tgz", + "integrity": "sha512-CVvd6FHg1Z3POpBLxO6E6zr+rSKEQ9L6rZHAaY7lLfhKsWYUBBOuMs0e9o24oopj6H+geRCX0YJ+TJLBK2eHyQ==", + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.2", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.0.0", + "es-shim-unscopables": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array.prototype.findlastindex": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/array.prototype.findlastindex/-/array.prototype.findlastindex-1.2.5.tgz", + "integrity": "sha512-zfETvRFA8o7EiNn++N5f/kaCw221hrpGsDmcpndVupkPzEc1Wuf3VgC0qby1BbHs7f5DVYjgtEU2LLh5bqeGfQ==", + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.2", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.0.0", + "es-shim-unscopables": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array.prototype.flat": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.2.tgz", + "integrity": "sha512-djYB+Zx2vLewY8RWlNCUdHjDXs2XOgm602S9E7P/UpHgfeHL00cRiIF+IN/G/aUJ7kGPb6yO/ErDI5V2s8iycA==", + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "es-shim-unscopables": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array.prototype.flatmap": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.3.2.tgz", + "integrity": "sha512-Ewyx0c9PmpcsByhSW4r+9zDU7sGjFc86qf/kKtuSCRdhfbk0SNLLkaT5qvcHnRGgc5NP/ly/y+qkXkqONX54CQ==", + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "es-shim-unscopables": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array.prototype.reduce": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/array.prototype.reduce/-/array.prototype.reduce-1.0.7.tgz", + "integrity": "sha512-mzmiUCVwtiD4lgxYP8g7IYy8El8p2CSMePvIbTS7gchKir/L1fgJrk0yDKmAX6mnRQFKNADYIk8nNlTris5H1Q==", + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.2", + "es-array-method-boxes-properly": "^1.0.0", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.0.0", + "is-string": "^1.0.7" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array.prototype.tosorted": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/array.prototype.tosorted/-/array.prototype.tosorted-1.1.4.tgz", + "integrity": "sha512-p6Fx8B7b7ZhL/gmUsAy0D15WhvDccw3mnGNbZpi3pmeJdxtWsj2jEaI4Y6oo3XiHfzuSgPwKc04MYt6KgvC/wA==", + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.3", + "es-errors": "^1.3.0", + "es-shim-unscopables": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/arraybuffer.prototype.slice": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.3.tgz", + "integrity": "sha512-bMxMKAjg13EBSVscxTaYA4mRc5t1UAXa2kXiGTNfZ079HIWXEkKmkgFrh/nJqamaLSrXO5H4WFFkPEaLJWbs3A==", + "license": "MIT", + "dependencies": { + "array-buffer-byte-length": "^1.0.1", + "call-bind": "^1.0.5", + "define-properties": "^1.2.1", + "es-abstract": "^1.22.3", + "es-errors": "^1.2.1", + "get-intrinsic": "^1.2.3", + "is-array-buffer": "^3.0.4", + "is-shared-array-buffer": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/asap": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz", + "integrity": "sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA==", + "license": "MIT" + }, + "node_modules/ast-types-flow": { + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/ast-types-flow/-/ast-types-flow-0.0.8.tgz", + "integrity": "sha512-OH/2E5Fg20h2aPrbe+QL8JZQFko0YZaF+j4mnQ7BGhfavO7OpSLa8a0y9sBwomHdSbkhTS8TQNayBfnW5DwbvQ==", + "license": "MIT" + }, + "node_modules/async": { + "version": "3.2.6", + "resolved": "https://registry.npmjs.org/async/-/async-3.2.6.tgz", + "integrity": "sha512-htCUDlxyyCLMgaM3xXg0C0LW2xqfuQ6p05pCEIsXuyQ+a1koYKTuBMzRNwmybfLgvJDMd0r1LTn4+E0Ti6C2AA==", + "license": "MIT" + }, + "node_modules/asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==", + "license": "MIT" + }, + "node_modules/at-least-node": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/at-least-node/-/at-least-node-1.0.0.tgz", + "integrity": "sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==", + "license": "ISC", + "engines": { + "node": ">= 4.0.0" + } + }, + "node_modules/autoprefixer": { + "version": "10.4.20", + "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.20.tgz", + "integrity": "sha512-XY25y5xSv/wEoqzDyXXME4AFfkZI0P23z6Fs3YgymDnKJkCGOnkL0iTxCa85UTqaSgfcqyf3UA6+c7wUvx/16g==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/autoprefixer" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "browserslist": "^4.23.3", + "caniuse-lite": "^1.0.30001646", + "fraction.js": "^4.3.7", + "normalize-range": "^0.1.2", + "picocolors": "^1.0.1", + "postcss-value-parser": "^4.2.0" + }, + "bin": { + "autoprefixer": "bin/autoprefixer" + }, + "engines": { + "node": "^10 || ^12 || >=14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/available-typed-arrays": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.7.tgz", + "integrity": "sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==", + "license": "MIT", + "dependencies": { + "possible-typed-array-names": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/axe-core": { + "version": "4.10.2", + "resolved": "https://registry.npmjs.org/axe-core/-/axe-core-4.10.2.tgz", + "integrity": "sha512-RE3mdQ7P3FRSe7eqCWoeQ/Z9QXrtniSjp1wUjt5nRC3WIpz5rSCve6o3fsZ2aCpJtrZjSZgjwXAoTO5k4tEI0w==", + "license": "MPL-2.0", + "engines": { + "node": ">=4" + } + }, + "node_modules/axios": { + "version": "1.7.9", + "resolved": "https://registry.npmjs.org/axios/-/axios-1.7.9.tgz", + "integrity": "sha512-LhLcE7Hbiryz8oMDdDptSrWowmB4Bl6RCt6sIJKpRB4XtVf0iEgewX3au/pJqm+Py1kCASkb/FFKjxQaLtxJvw==", + "license": "MIT", + "dependencies": { + "follow-redirects": "^1.15.6", + "form-data": "^4.0.0", + "proxy-from-env": "^1.1.0" + } + }, + "node_modules/axobject-query": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/axobject-query/-/axobject-query-4.1.0.tgz", + "integrity": "sha512-qIj0G9wZbMGNLjLmg1PT6v2mE9AH2zlnADJD/2tC6E00hgmhUOfEB6greHPAfLRSufHqROIUTkw6E+M3lH0PTQ==", + "license": "Apache-2.0", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/babel-jest": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-27.5.1.tgz", + "integrity": "sha512-cdQ5dXjGRd0IBRATiQ4mZGlGlRE8kJpjPOixdNRdT+m3UcNqmYWN6rK6nvtXYfY3D76cb8s/O1Ss8ea24PIwcg==", + "license": "MIT", + "dependencies": { + "@jest/transform": "^27.5.1", + "@jest/types": "^27.5.1", + "@types/babel__core": "^7.1.14", + "babel-plugin-istanbul": "^6.1.1", + "babel-preset-jest": "^27.5.1", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.9", + "slash": "^3.0.0" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + }, + "peerDependencies": { + "@babel/core": "^7.8.0" + } + }, + "node_modules/babel-jest/node_modules/@jest/types": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-27.5.1.tgz", + "integrity": "sha512-Cx46iJ9QpwQTjIdq5VJu2QTMMs3QlEjI0x1QbBP5W1+nMzyc2XmimiRR/CbX9TO0cPTeUlxWMOu8mslYsJ8DEw==", + "license": "MIT", + "dependencies": { + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^3.0.0", + "@types/node": "*", + "@types/yargs": "^16.0.0", + "chalk": "^4.0.0" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/babel-jest/node_modules/@types/yargs": { + "version": "16.0.9", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-16.0.9.tgz", + "integrity": "sha512-tHhzvkFXZQeTECenFoRljLBYPZJ7jAVxqqtEI0qTLOmuultnFp4I9yKE17vTuhf7BkhCu7I4XuemPgikDVuYqA==", + "license": "MIT", + "dependencies": { + "@types/yargs-parser": "*" + } + }, + "node_modules/babel-loader": { + "version": "8.4.1", + "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-8.4.1.tgz", + "integrity": "sha512-nXzRChX+Z1GoE6yWavBQg6jDslyFF3SDjl2paADuoQtQW10JqShJt62R6eJQ5m/pjJFDT8xgKIWSP85OY8eXeA==", + "license": "MIT", + "dependencies": { + "find-cache-dir": "^3.3.1", + "loader-utils": "^2.0.4", + "make-dir": "^3.1.0", + "schema-utils": "^2.6.5" + }, + "engines": { + "node": ">= 8.9" + }, + "peerDependencies": { + "@babel/core": "^7.0.0", + "webpack": ">=2" + } + }, + "node_modules/babel-loader/node_modules/schema-utils": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-2.7.1.tgz", + "integrity": "sha512-SHiNtMOUGWBQJwzISiVYKu82GiV4QYGePp3odlY1tuKO7gPtphAT5R/py0fA6xtbgLL/RvtJZnU9b8s0F1q0Xg==", + "license": "MIT", + "dependencies": { + "@types/json-schema": "^7.0.5", + "ajv": "^6.12.4", + "ajv-keywords": "^3.5.2" + }, + "engines": { + "node": ">= 8.9.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/babel-plugin-istanbul": { + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-6.1.1.tgz", + "integrity": "sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA==", + "license": "BSD-3-Clause", + "dependencies": { + "@babel/helper-plugin-utils": "^7.0.0", + "@istanbuljs/load-nyc-config": "^1.0.0", + "@istanbuljs/schema": "^0.1.2", + "istanbul-lib-instrument": "^5.0.4", + "test-exclude": "^6.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/babel-plugin-jest-hoist": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-27.5.1.tgz", + "integrity": "sha512-50wCwD5EMNW4aRpOwtqzyZHIewTYNxLA4nhB+09d8BIssfNfzBRhkBIHiaPv1Si226TQSvp8gxAJm2iY2qs2hQ==", + "license": "MIT", + "dependencies": { + "@babel/template": "^7.3.3", + "@babel/types": "^7.3.3", + "@types/babel__core": "^7.0.0", + "@types/babel__traverse": "^7.0.6" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/babel-plugin-macros": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/babel-plugin-macros/-/babel-plugin-macros-3.1.0.tgz", + "integrity": "sha512-Cg7TFGpIr01vOQNODXOOaGz2NpCU5gl8x1qJFbb6hbZxR7XrcE2vtbAsTAbJ7/xwJtUuJEw8K8Zr/AE0LHlesg==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.12.5", + "cosmiconfig": "^7.0.0", + "resolve": "^1.19.0" + }, + "engines": { + "node": ">=10", + "npm": ">=6" + } + }, + "node_modules/babel-plugin-named-asset-import": { + "version": "0.3.8", + "resolved": "https://registry.npmjs.org/babel-plugin-named-asset-import/-/babel-plugin-named-asset-import-0.3.8.tgz", + "integrity": "sha512-WXiAc++qo7XcJ1ZnTYGtLxmBCVbddAml3CEXgWaBzNzLNoxtQ8AiGEFDMOhot9XjTCQbvP5E77Fj9Gk924f00Q==", + "license": "MIT", + "peerDependencies": { + "@babel/core": "^7.1.0" + } + }, + "node_modules/babel-plugin-polyfill-corejs2": { + "version": "0.4.12", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.12.tgz", + "integrity": "sha512-CPWT6BwvhrTO2d8QVorhTCQw9Y43zOu7G9HigcfxvepOU6b8o3tcWad6oVgZIsZCTt42FFv97aA7ZJsbM4+8og==", + "license": "MIT", + "dependencies": { + "@babel/compat-data": "^7.22.6", + "@babel/helper-define-polyfill-provider": "^0.6.3", + "semver": "^6.3.1" + }, + "peerDependencies": { + "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" + } + }, + "node_modules/babel-plugin-polyfill-corejs2/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/babel-plugin-polyfill-corejs3": { + "version": "0.10.6", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.10.6.tgz", + "integrity": "sha512-b37+KR2i/khY5sKmWNVQAnitvquQbNdWy6lJdsr0kmquCKEEUgMKK4SboVM3HtfnZilfjr4MMQ7vY58FVWDtIA==", + "license": "MIT", + "dependencies": { + "@babel/helper-define-polyfill-provider": "^0.6.2", + "core-js-compat": "^3.38.0" + }, + "peerDependencies": { + "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" + } + }, + "node_modules/babel-plugin-polyfill-regenerator": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.6.3.tgz", + "integrity": "sha512-LiWSbl4CRSIa5x/JAU6jZiG9eit9w6mz+yVMFwDE83LAWvt0AfGBoZ7HS/mkhrKuh2ZlzfVZYKoLjXdqw6Yt7Q==", + "license": "MIT", + "dependencies": { + "@babel/helper-define-polyfill-provider": "^0.6.3" + }, + "peerDependencies": { + "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" + } + }, + "node_modules/babel-plugin-transform-react-remove-prop-types": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-react-remove-prop-types/-/babel-plugin-transform-react-remove-prop-types-0.4.24.tgz", + "integrity": "sha512-eqj0hVcJUR57/Ug2zE1Yswsw4LhuqqHhD+8v120T1cl3kjg76QwtyBrdIk4WVwK+lAhBJVYCd/v+4nc4y+8JsA==", + "license": "MIT" + }, + "node_modules/babel-preset-current-node-syntax": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.1.0.tgz", + "integrity": "sha512-ldYss8SbBlWva1bs28q78Ju5Zq1F+8BrqBZZ0VFhLBvhh6lCpC2o3gDJi/5DRLs9FgYZCnmPYIVFU4lRXCkyUw==", + "license": "MIT", + "dependencies": { + "@babel/plugin-syntax-async-generators": "^7.8.4", + "@babel/plugin-syntax-bigint": "^7.8.3", + "@babel/plugin-syntax-class-properties": "^7.12.13", + "@babel/plugin-syntax-class-static-block": "^7.14.5", + "@babel/plugin-syntax-import-attributes": "^7.24.7", + "@babel/plugin-syntax-import-meta": "^7.10.4", + "@babel/plugin-syntax-json-strings": "^7.8.3", + "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", + "@babel/plugin-syntax-numeric-separator": "^7.10.4", + "@babel/plugin-syntax-object-rest-spread": "^7.8.3", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", + "@babel/plugin-syntax-optional-chaining": "^7.8.3", + "@babel/plugin-syntax-private-property-in-object": "^7.14.5", + "@babel/plugin-syntax-top-level-await": "^7.14.5" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/babel-preset-jest": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-27.5.1.tgz", + "integrity": "sha512-Nptf2FzlPCWYuJg41HBqXVT8ym6bXOevuCTbhxlUpjwtysGaIWFvDEjp4y+G7fl13FgOdjs7P/DmErqH7da0Ag==", + "license": "MIT", + "dependencies": { + "babel-plugin-jest-hoist": "^27.5.1", + "babel-preset-current-node-syntax": "^1.0.0" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/babel-preset-react-app": { + "version": "10.0.1", + "resolved": "https://registry.npmjs.org/babel-preset-react-app/-/babel-preset-react-app-10.0.1.tgz", + "integrity": "sha512-b0D9IZ1WhhCWkrTXyFuIIgqGzSkRIH5D5AmB0bXbzYAB1OBAwHcUeyWW2LorutLWF5btNo/N7r/cIdmvvKJlYg==", + "license": "MIT", + "dependencies": { + "@babel/core": "^7.16.0", + "@babel/plugin-proposal-class-properties": "^7.16.0", + "@babel/plugin-proposal-decorators": "^7.16.4", + "@babel/plugin-proposal-nullish-coalescing-operator": "^7.16.0", + "@babel/plugin-proposal-numeric-separator": "^7.16.0", + "@babel/plugin-proposal-optional-chaining": "^7.16.0", + "@babel/plugin-proposal-private-methods": "^7.16.0", + "@babel/plugin-transform-flow-strip-types": "^7.16.0", + "@babel/plugin-transform-react-display-name": "^7.16.0", + "@babel/plugin-transform-runtime": "^7.16.4", + "@babel/preset-env": "^7.16.4", + "@babel/preset-react": "^7.16.0", + "@babel/preset-typescript": "^7.16.0", + "@babel/runtime": "^7.16.3", + "babel-plugin-macros": "^3.1.0", + "babel-plugin-transform-react-remove-prop-types": "^0.4.24" + } + }, + "node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "license": "MIT" + }, + "node_modules/batch": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/batch/-/batch-0.6.1.tgz", + "integrity": "sha512-x+VAiMRL6UPkx+kudNvxTl6hB2XNNCG2r+7wixVfIYwu/2HKRXimwQyaumLjMveWvT2Hkd/cAJw+QBMfJ/EKVw==", + "license": "MIT" + }, + "node_modules/bfj": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/bfj/-/bfj-7.1.0.tgz", + "integrity": "sha512-I6MMLkn+anzNdCUp9hMRyui1HaNEUCco50lxbvNS4+EyXg8lN3nJ48PjPWtbH8UVS9CuMoaKE9U2V3l29DaRQw==", + "license": "MIT", + "dependencies": { + "bluebird": "^3.7.2", + "check-types": "^11.2.3", + "hoopy": "^0.1.4", + "jsonpath": "^1.1.1", + "tryer": "^1.0.1" + }, + "engines": { + "node": ">= 8.0.0" + } + }, + "node_modules/big.js": { + "version": "5.2.2", + "resolved": "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz", + "integrity": "sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==", + "license": "MIT", + "engines": { + "node": "*" + } + }, + "node_modules/binary-extensions": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.3.0.tgz", + "integrity": "sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==", + "license": "MIT", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/bluebird": { + "version": "3.7.2", + "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz", + "integrity": "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==", + "license": "MIT" + }, + "node_modules/body-parser": { + "version": "1.20.3", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.3.tgz", + "integrity": "sha512-7rAxByjUMqQ3/bHJy7D6OGXvx/MMc4IqBn/X0fcM1QUcAItpZrBEYhWGem+tzXH90c+G01ypMcYJBO9Y30203g==", + "license": "MIT", + "dependencies": { + "bytes": "3.1.2", + "content-type": "~1.0.5", + "debug": "2.6.9", + "depd": "2.0.0", + "destroy": "1.2.0", + "http-errors": "2.0.0", + "iconv-lite": "0.4.24", + "on-finished": "2.4.1", + "qs": "6.13.0", + "raw-body": "2.5.2", + "type-is": "~1.6.18", + "unpipe": "1.0.0" + }, + "engines": { + "node": ">= 0.8", + "npm": "1.2.8000 || >= 1.4.16" + } + }, + "node_modules/body-parser/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "license": "MIT", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/body-parser/node_modules/iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "license": "MIT", + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/body-parser/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "license": "MIT" + }, + "node_modules/bonjour-service": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/bonjour-service/-/bonjour-service-1.3.0.tgz", + "integrity": "sha512-3YuAUiSkWykd+2Azjgyxei8OWf8thdn8AITIog2M4UICzoqfjlqr64WIjEXZllf/W6vK1goqleSR6brGomxQqA==", + "license": "MIT", + "dependencies": { + "fast-deep-equal": "^3.1.3", + "multicast-dns": "^7.2.5" + } + }, + "node_modules/boolbase": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", + "integrity": "sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==", + "license": "ISC" + }, + "node_modules/bootstrap": { + "version": "5.3.3", + "resolved": "https://registry.npmjs.org/bootstrap/-/bootstrap-5.3.3.tgz", + "integrity": "sha512-8HLCdWgyoMguSO9o+aH+iuZ+aht+mzW0u3HIMzVu7Srrpv7EBBxTnrFlSCskwdY1+EOFQSm7uMJhNQHkdPcmjg==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/twbs" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/bootstrap" + } + ], + "license": "MIT", + "peerDependencies": { + "@popperjs/core": "^2.11.8" + } + }, + "node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/braces": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", + "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", + "license": "MIT", + "dependencies": { + "fill-range": "^7.1.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/browser-process-hrtime": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/browser-process-hrtime/-/browser-process-hrtime-1.0.0.tgz", + "integrity": "sha512-9o5UecI3GhkpM6DrXr69PblIuWxPKk9Y0jHBRhdocZ2y7YECBFCsHm79Pr3OyR2AvjhDkabFJaDJMYRazHgsow==", + "license": "BSD-2-Clause" + }, + "node_modules/browserslist": { + "version": "4.24.2", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.24.2.tgz", + "integrity": "sha512-ZIc+Q62revdMcqC6aChtW4jz3My3klmCO1fEmINZY/8J3EpBg5/A/D0AKmBveUh6pgoeycoMkVMko84tuYS+Gg==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "caniuse-lite": "^1.0.30001669", + "electron-to-chromium": "^1.5.41", + "node-releases": "^2.0.18", + "update-browserslist-db": "^1.1.1" + }, + "bin": { + "browserslist": "cli.js" + }, + "engines": { + "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" + } + }, + "node_modules/bser": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/bser/-/bser-2.1.1.tgz", + "integrity": "sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==", + "license": "Apache-2.0", + "dependencies": { + "node-int64": "^0.4.0" + } + }, + "node_modules/buffer-from": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", + "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", + "license": "MIT" + }, + "node_modules/builtin-modules": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-3.3.0.tgz", + "integrity": "sha512-zhaCDicdLuWN5UbN5IMnFqNMhNfo919sH85y2/ea+5Yg9TsTkeZxpL+JLbp6cgYFS4sRLp3YV4S6yDuqVWHYOw==", + "license": "MIT", + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/bytes": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", + "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/call-bind": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.7.tgz", + "integrity": "sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==", + "license": "MIT", + "dependencies": { + "es-define-property": "^1.0.0", + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.4", + "set-function-length": "^1.2.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/callsites": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/camel-case": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/camel-case/-/camel-case-4.1.2.tgz", + "integrity": "sha512-gxGWBrTT1JuMx6R+o5PTXMmUnhnVzLQ9SNutD4YqKtI6ap897t3tKECYla6gCWEkplXnlNybEkZg9GEGxKFCgw==", + "license": "MIT", + "dependencies": { + "pascal-case": "^3.1.2", + "tslib": "^2.0.3" + } + }, + "node_modules/camelcase": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", + "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/camelcase-css": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/camelcase-css/-/camelcase-css-2.0.1.tgz", + "integrity": "sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==", + "license": "MIT", + "engines": { + "node": ">= 6" + } + }, + "node_modules/camelize": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/camelize/-/camelize-1.0.1.tgz", + "integrity": "sha512-dU+Tx2fsypxTgtLoE36npi3UqcjSSMNYfkqgmoEhtZrraP5VWq0K7FkWVTYa8eMPtnU/G2txVsfdCJTn9uzpuQ==", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/caniuse-api": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/caniuse-api/-/caniuse-api-3.0.0.tgz", + "integrity": "sha512-bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw==", + "license": "MIT", + "dependencies": { + "browserslist": "^4.0.0", + "caniuse-lite": "^1.0.0", + "lodash.memoize": "^4.1.2", + "lodash.uniq": "^4.5.0" + } + }, + "node_modules/caniuse-lite": { + "version": "1.0.30001684", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001684.tgz", + "integrity": "sha512-G1LRwLIQjBQoyq0ZJGqGIJUXzJ8irpbjHLpVRXDvBEScFJ9b17sgK6vlx0GAJFE21okD7zXl08rRRUfq6HdoEQ==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/caniuse-lite" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "CC-BY-4.0" + }, + "node_modules/case-sensitive-paths-webpack-plugin": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/case-sensitive-paths-webpack-plugin/-/case-sensitive-paths-webpack-plugin-2.4.0.tgz", + "integrity": "sha512-roIFONhcxog0JSSWbvVAh3OocukmSgpqOH6YpMkCvav/ySIV3JKg4Dc8vYtQjYi/UxpNE36r/9v+VqTQqgkYmw==", + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/char-regex": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/char-regex/-/char-regex-1.0.2.tgz", + "integrity": "sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==", + "license": "MIT", + "engines": { + "node": ">=10" + } + }, + "node_modules/check-types": { + "version": "11.2.3", + "resolved": "https://registry.npmjs.org/check-types/-/check-types-11.2.3.tgz", + "integrity": "sha512-+67P1GkJRaxQD6PKK0Et9DhwQB+vGg3PM5+aavopCpZT1lj9jeqfvpgTLAWErNj8qApkkmXlu/Ug74kmhagkXg==", + "license": "MIT" + }, + "node_modules/chokidar": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz", + "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==", + "license": "MIT", + "dependencies": { + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" + }, + "engines": { + "node": ">= 8.10.0" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, + "node_modules/chokidar/node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "license": "ISC", + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/chrome-trace-event": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.4.tgz", + "integrity": "sha512-rNjApaLzuwaOTjCiT8lSDdGN1APCiqkChLMJxJPWLunPAt5fy8xgU9/jNOchV84wfIxrA0lRQB7oCT8jrn/wrQ==", + "license": "MIT", + "engines": { + "node": ">=6.0" + } + }, + "node_modules/ci-info": { + "version": "3.9.0", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.9.0.tgz", + "integrity": "sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/sibiraj-s" + } + ], + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/cjs-module-lexer": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/cjs-module-lexer/-/cjs-module-lexer-1.4.1.tgz", + "integrity": "sha512-cuSVIHi9/9E/+821Qjdvngor+xpnlwnuwIyZOaLmHBVdXL+gP+I6QQB9VkO7RI77YIcTV+S1W9AreJ5eN63JBA==", + "license": "MIT" + }, + "node_modules/classnames": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/classnames/-/classnames-2.5.1.tgz", + "integrity": "sha512-saHYOzhIQs6wy2sVxTM6bUDsQO4F50V9RQ22qBpEdCW+I+/Wmke2HOl6lS6dTpdxVhb88/I6+Hs+438c3lfUow==", + "license": "MIT" + }, + "node_modules/clean-css": { + "version": "5.3.3", + "resolved": "https://registry.npmjs.org/clean-css/-/clean-css-5.3.3.tgz", + "integrity": "sha512-D5J+kHaVb/wKSFcyyV75uCn8fiY4sV38XJoe4CUyGQ+mOU/fMVYUdH1hJC+CJQ5uY3EnW27SbJYS4X8BiLrAFg==", + "license": "MIT", + "dependencies": { + "source-map": "~0.6.0" + }, + "engines": { + "node": ">= 10.0" + } + }, + "node_modules/clean-css/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/cliui": { + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", + "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", + "license": "ISC", + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^7.0.0" + } + }, + "node_modules/clsx": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/clsx/-/clsx-2.1.1.tgz", + "integrity": "sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/co": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", + "integrity": "sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ==", + "license": "MIT", + "engines": { + "iojs": ">= 1.0.0", + "node": ">= 0.12.0" + } + }, + "node_modules/coa": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/coa/-/coa-2.0.2.tgz", + "integrity": "sha512-q5/jG+YQnSy4nRTV4F7lPepBJZ8qBNJJDBuJdoejDyLXgmL7IEo+Le2JDZudFTFt7mrCqIRaSjws4ygRCTCAXA==", + "license": "MIT", + "dependencies": { + "@types/q": "^1.5.1", + "chalk": "^2.4.1", + "q": "^1.1.2" + }, + "engines": { + "node": ">= 4.0" + } + }, + "node_modules/coa/node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "license": "MIT", + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/coa/node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "license": "MIT", + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/coa/node_modules/color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "license": "MIT", + "dependencies": { + "color-name": "1.1.3" + } + }, + "node_modules/coa/node_modules/color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", + "license": "MIT" + }, + "node_modules/coa/node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "license": "MIT", + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/coa/node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/coa/node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "license": "MIT", + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/collect-v8-coverage": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/collect-v8-coverage/-/collect-v8-coverage-1.0.2.tgz", + "integrity": "sha512-lHl4d5/ONEbLlJvaJNtsF/Lz+WvB07u2ycqTYbdrq7UypDXailES4valYb2eWiJFxZlVmpGekfqoxQhzyFdT4Q==", + "license": "MIT" + }, + "node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "license": "MIT", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "license": "MIT" + }, + "node_modules/colord": { + "version": "2.9.3", + "resolved": "https://registry.npmjs.org/colord/-/colord-2.9.3.tgz", + "integrity": "sha512-jeC1axXpnb0/2nn/Y1LPuLdgXBLH7aDcHu4KEKfqw3CUhX7ZpfBSlPKyqXE6btIgEzfWtrX3/tyBCaCvXvMkOw==", + "license": "MIT" + }, + "node_modules/colorette": { + "version": "2.0.20", + "resolved": "https://registry.npmjs.org/colorette/-/colorette-2.0.20.tgz", + "integrity": "sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==", + "license": "MIT" + }, + "node_modules/combined-stream": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", + "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", + "license": "MIT", + "dependencies": { + "delayed-stream": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/commander": { + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-8.3.0.tgz", + "integrity": "sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==", + "license": "MIT", + "engines": { + "node": ">= 12" + } + }, + "node_modules/common-tags": { + "version": "1.8.2", + "resolved": "https://registry.npmjs.org/common-tags/-/common-tags-1.8.2.tgz", + "integrity": "sha512-gk/Z852D2Wtb//0I+kRFNKKE9dIIVirjoqPoA1wJU+XePVXZfGeBpk45+A1rKO4Q43prqWBNY/MiIeRLbPWUaA==", + "license": "MIT", + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/commondir": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", + "integrity": "sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==", + "license": "MIT" + }, + "node_modules/compressible": { + "version": "2.0.18", + "resolved": "https://registry.npmjs.org/compressible/-/compressible-2.0.18.tgz", + "integrity": "sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==", + "license": "MIT", + "dependencies": { + "mime-db": ">= 1.43.0 < 2" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/compression": { + "version": "1.7.5", + "resolved": "https://registry.npmjs.org/compression/-/compression-1.7.5.tgz", + "integrity": "sha512-bQJ0YRck5ak3LgtnpKkiabX5pNF7tMUh1BSy2ZBOTh0Dim0BUu6aPPwByIns6/A5Prh8PufSPerMDUklpzes2Q==", + "license": "MIT", + "dependencies": { + "bytes": "3.1.2", + "compressible": "~2.0.18", + "debug": "2.6.9", + "negotiator": "~0.6.4", + "on-headers": "~1.0.2", + "safe-buffer": "5.2.1", + "vary": "~1.1.2" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/compression/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "license": "MIT", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/compression/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "license": "MIT" + }, + "node_modules/compute-scroll-into-view": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/compute-scroll-into-view/-/compute-scroll-into-view-3.1.0.tgz", + "integrity": "sha512-rj8l8pD4bJ1nx+dAkMhV1xB5RuZEyVysfxJqB1pRchh1KVvwOv9b7CGB8ZfjTImVv2oF+sYMUkMZq6Na5Ftmbg==", + "license": "MIT" + }, + "node_modules/concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", + "license": "MIT" + }, + "node_modules/confusing-browser-globals": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/confusing-browser-globals/-/confusing-browser-globals-1.0.11.tgz", + "integrity": "sha512-JsPKdmh8ZkmnHxDk55FZ1TqVLvEQTvoByJZRN9jzI0UjxK/QgAmsphz7PGtqgPieQZ/CQcHWXCR7ATDNhGe+YA==", + "license": "MIT" + }, + "node_modules/connect-history-api-fallback": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/connect-history-api-fallback/-/connect-history-api-fallback-2.0.0.tgz", + "integrity": "sha512-U73+6lQFmfiNPrYbXqr6kZ1i1wiRqXnp2nhMsINseWXO8lDau0LGEffJ8kQi4EjLZympVgRdvqjAgiZ1tgzDDA==", + "license": "MIT", + "engines": { + "node": ">=0.8" + } + }, + "node_modules/content-disposition": { + "version": "0.5.4", + "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz", + "integrity": "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==", + "license": "MIT", + "dependencies": { + "safe-buffer": "5.2.1" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/content-type": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.5.tgz", + "integrity": "sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/convert-source-map": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", + "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", + "license": "MIT" + }, + "node_modules/cookie": { + "version": "0.7.1", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.7.1.tgz", + "integrity": "sha512-6DnInpx7SJ2AK3+CTUE/ZM0vWTUboZCegxhC2xiIydHR9jNuTAASBrfEpHhiGOZw/nX51bHt6YQl8jsGo4y/0w==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/cookie-signature": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", + "integrity": "sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==", + "license": "MIT" + }, + "node_modules/core-js": { + "version": "3.39.0", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.39.0.tgz", + "integrity": "sha512-raM0ew0/jJUqkJ0E6e8UDtl+y/7ktFivgWvqw8dNSQeNWoSDLvQ1H/RN3aPXB9tBd4/FhyR4RDPGhsNIMsAn7g==", + "hasInstallScript": true, + "license": "MIT", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/core-js" + } + }, + "node_modules/core-js-compat": { + "version": "3.39.0", + "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.39.0.tgz", + "integrity": "sha512-VgEUx3VwlExr5no0tXlBt+silBvhTryPwCXRI2Id1PN8WTKu7MreethvddqOubrYxkFdv/RnYrqlv1sFNAUelw==", + "license": "MIT", + "dependencies": { + "browserslist": "^4.24.2" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/core-js" + } + }, + "node_modules/core-js-pure": { + "version": "3.39.0", + "resolved": "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.39.0.tgz", + "integrity": "sha512-7fEcWwKI4rJinnK+wLTezeg2smbFFdSBP6E2kQZNbnzM2s1rpKQ6aaRteZSSg7FLU3P0HGGVo/gbpfanU36urg==", + "hasInstallScript": true, + "license": "MIT", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/core-js" + } + }, + "node_modules/core-util-is": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", + "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==", + "license": "MIT" + }, + "node_modules/cosmiconfig": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.1.0.tgz", + "integrity": "sha512-AdmX6xUzdNASswsFtmwSt7Vj8po9IuqXm0UXz7QKPuEUmPB4XyjGfaAr2PSuELMwkRMVH1EpIkX5bTZGRB3eCA==", + "license": "MIT", + "dependencies": { + "@types/parse-json": "^4.0.0", + "import-fresh": "^3.2.1", + "parse-json": "^5.0.0", + "path-type": "^4.0.0", + "yaml": "^1.10.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/cross-spawn": { + "version": "7.0.6", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz", + "integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==", + "license": "MIT", + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/crypto-random-string": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-2.0.0.tgz", + "integrity": "sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/css-blank-pseudo": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/css-blank-pseudo/-/css-blank-pseudo-3.0.3.tgz", + "integrity": "sha512-VS90XWtsHGqoM0t4KpH053c4ehxZ2E6HtGI7x68YFV0pTo/QmkV/YFA+NnlvK8guxZVNWGQhVNJGC39Q8XF4OQ==", + "license": "CC0-1.0", + "dependencies": { + "postcss-selector-parser": "^6.0.9" + }, + "bin": { + "css-blank-pseudo": "dist/cli.cjs" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/css-color-keywords": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/css-color-keywords/-/css-color-keywords-1.0.0.tgz", + "integrity": "sha512-FyyrDHZKEjXDpNJYvVsV960FiqQyXc/LlYmsxl2BcdMb2WPx0OGRVgTg55rPSyLSNMqP52R9r8geSp7apN3Ofg==", + "license": "ISC", + "engines": { + "node": ">=4" + } + }, + "node_modules/css-declaration-sorter": { + "version": "6.4.1", + "resolved": "https://registry.npmjs.org/css-declaration-sorter/-/css-declaration-sorter-6.4.1.tgz", + "integrity": "sha512-rtdthzxKuyq6IzqX6jEcIzQF/YqccluefyCYheovBOLhFT/drQA9zj/UbRAa9J7C0o6EG6u3E6g+vKkay7/k3g==", + "license": "ISC", + "engines": { + "node": "^10 || ^12 || >=14" + }, + "peerDependencies": { + "postcss": "^8.0.9" + } + }, + "node_modules/css-has-pseudo": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/css-has-pseudo/-/css-has-pseudo-3.0.4.tgz", + "integrity": "sha512-Vse0xpR1K9MNlp2j5w1pgWIJtm1a8qS0JwS9goFYcImjlHEmywP9VUF05aGBXzGpDJF86QXk4L0ypBmwPhGArw==", + "license": "CC0-1.0", + "dependencies": { + "postcss-selector-parser": "^6.0.9" + }, + "bin": { + "css-has-pseudo": "dist/cli.cjs" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/css-loader": { + "version": "6.11.0", + "resolved": "https://registry.npmjs.org/css-loader/-/css-loader-6.11.0.tgz", + "integrity": "sha512-CTJ+AEQJjq5NzLga5pE39qdiSV56F8ywCIsqNIRF0r7BDgWsN25aazToqAFg7ZrtA/U016xudB3ffgweORxX7g==", + "license": "MIT", + "dependencies": { + "icss-utils": "^5.1.0", + "postcss": "^8.4.33", + "postcss-modules-extract-imports": "^3.1.0", + "postcss-modules-local-by-default": "^4.0.5", + "postcss-modules-scope": "^3.2.0", + "postcss-modules-values": "^4.0.0", + "postcss-value-parser": "^4.2.0", + "semver": "^7.5.4" + }, + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "@rspack/core": "0.x || 1.x", + "webpack": "^5.0.0" + }, + "peerDependenciesMeta": { + "@rspack/core": { + "optional": true + }, + "webpack": { + "optional": true + } + } + }, + "node_modules/css-minimizer-webpack-plugin": { + "version": "3.4.1", + "resolved": "https://registry.npmjs.org/css-minimizer-webpack-plugin/-/css-minimizer-webpack-plugin-3.4.1.tgz", + "integrity": "sha512-1u6D71zeIfgngN2XNRJefc/hY7Ybsxd74Jm4qngIXyUEk7fss3VUzuHxLAq/R8NAba4QU9OUSaMZlbpRc7bM4Q==", + "license": "MIT", + "dependencies": { + "cssnano": "^5.0.6", + "jest-worker": "^27.0.2", + "postcss": "^8.3.5", + "schema-utils": "^4.0.0", + "serialize-javascript": "^6.0.0", + "source-map": "^0.6.1" + }, + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^5.0.0" + }, + "peerDependenciesMeta": { + "@parcel/css": { + "optional": true + }, + "clean-css": { + "optional": true + }, + "csso": { + "optional": true + }, + "esbuild": { + "optional": true + } + } + }, + "node_modules/css-minimizer-webpack-plugin/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/css-prefers-color-scheme": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/css-prefers-color-scheme/-/css-prefers-color-scheme-6.0.3.tgz", + "integrity": "sha512-4BqMbZksRkJQx2zAjrokiGMd07RqOa2IxIrrN10lyBe9xhn9DEvjUK79J6jkeiv9D9hQFXKb6g1jwU62jziJZA==", + "license": "CC0-1.0", + "bin": { + "css-prefers-color-scheme": "dist/cli.cjs" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/css-select": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/css-select/-/css-select-4.3.0.tgz", + "integrity": "sha512-wPpOYtnsVontu2mODhA19JrqWxNsfdatRKd64kmpRbQgh1KtItko5sTnEpPdpSaJszTOhEMlF/RPz28qj4HqhQ==", + "license": "BSD-2-Clause", + "dependencies": { + "boolbase": "^1.0.0", + "css-what": "^6.0.1", + "domhandler": "^4.3.1", + "domutils": "^2.8.0", + "nth-check": "^2.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/fb55" + } + }, + "node_modules/css-select-base-adapter": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/css-select-base-adapter/-/css-select-base-adapter-0.1.1.tgz", + "integrity": "sha512-jQVeeRG70QI08vSTwf1jHxp74JoZsr2XSgETae8/xC8ovSnL2WF87GTLO86Sbwdt2lK4Umg4HnnwMO4YF3Ce7w==", + "license": "MIT" + }, + "node_modules/css-to-react-native": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/css-to-react-native/-/css-to-react-native-3.2.0.tgz", + "integrity": "sha512-e8RKaLXMOFii+02mOlqwjbD00KSEKqblnpO9e++1aXS1fPQOpS1YoqdVHBqPjHNoxeF2mimzVqawm2KCbEdtHQ==", + "license": "MIT", + "dependencies": { + "camelize": "^1.0.0", + "css-color-keywords": "^1.0.0", + "postcss-value-parser": "^4.0.2" + } + }, + "node_modules/css-tree": { + "version": "1.0.0-alpha.37", + "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-1.0.0-alpha.37.tgz", + "integrity": "sha512-DMxWJg0rnz7UgxKT0Q1HU/L9BeJI0M6ksor0OgqOnF+aRCDWg/N2641HmVyU9KVIu0OVVWOb2IpC9A+BJRnejg==", + "license": "MIT", + "dependencies": { + "mdn-data": "2.0.4", + "source-map": "^0.6.1" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/css-tree/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/css-what": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/css-what/-/css-what-6.1.0.tgz", + "integrity": "sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==", + "license": "BSD-2-Clause", + "engines": { + "node": ">= 6" + }, + "funding": { + "url": "https://github.com/sponsors/fb55" + } + }, + "node_modules/css.escape": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/css.escape/-/css.escape-1.5.1.tgz", + "integrity": "sha512-YUifsXXuknHlUsmlgyY0PKzgPOr7/FjCePfHNt0jxm83wHZi44VDMQ7/fGNkjY3/jV1MC+1CmZbaHzugyeRtpg==", + "license": "MIT" + }, + "node_modules/cssdb": { + "version": "7.11.2", + "resolved": "https://registry.npmjs.org/cssdb/-/cssdb-7.11.2.tgz", + "integrity": "sha512-lhQ32TFkc1X4eTefGfYPvgovRSzIMofHkigfH8nWtyRL4XJLsRhJFreRvEgKzept7x1rjBuy3J/MurXLaFxW/A==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + } + ], + "license": "CC0-1.0" + }, + "node_modules/cssesc": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", + "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", + "license": "MIT", + "bin": { + "cssesc": "bin/cssesc" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/cssnano": { + "version": "5.1.15", + "resolved": "https://registry.npmjs.org/cssnano/-/cssnano-5.1.15.tgz", + "integrity": "sha512-j+BKgDcLDQA+eDifLx0EO4XSA56b7uut3BQFH+wbSaSTuGLuiyTa/wbRYthUXX8LC9mLg+WWKe8h+qJuwTAbHw==", + "license": "MIT", + "dependencies": { + "cssnano-preset-default": "^5.2.14", + "lilconfig": "^2.0.3", + "yaml": "^1.10.2" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/cssnano" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/cssnano-preset-default": { + "version": "5.2.14", + "resolved": "https://registry.npmjs.org/cssnano-preset-default/-/cssnano-preset-default-5.2.14.tgz", + "integrity": "sha512-t0SFesj/ZV2OTylqQVOrFgEh5uanxbO6ZAdeCrNsUQ6fVuXwYTxJPNAGvGTxHbD68ldIJNec7PyYZDBrfDQ+6A==", + "license": "MIT", + "dependencies": { + "css-declaration-sorter": "^6.3.1", + "cssnano-utils": "^3.1.0", + "postcss-calc": "^8.2.3", + "postcss-colormin": "^5.3.1", + "postcss-convert-values": "^5.1.3", + "postcss-discard-comments": "^5.1.2", + "postcss-discard-duplicates": "^5.1.0", + "postcss-discard-empty": "^5.1.1", + "postcss-discard-overridden": "^5.1.0", + "postcss-merge-longhand": "^5.1.7", + "postcss-merge-rules": "^5.1.4", + "postcss-minify-font-values": "^5.1.0", + "postcss-minify-gradients": "^5.1.1", + "postcss-minify-params": "^5.1.4", + "postcss-minify-selectors": "^5.2.1", + "postcss-normalize-charset": "^5.1.0", + "postcss-normalize-display-values": "^5.1.0", + "postcss-normalize-positions": "^5.1.1", + "postcss-normalize-repeat-style": "^5.1.1", + "postcss-normalize-string": "^5.1.0", + "postcss-normalize-timing-functions": "^5.1.0", + "postcss-normalize-unicode": "^5.1.1", + "postcss-normalize-url": "^5.1.0", + "postcss-normalize-whitespace": "^5.1.1", + "postcss-ordered-values": "^5.1.3", + "postcss-reduce-initial": "^5.1.2", + "postcss-reduce-transforms": "^5.1.0", + "postcss-svgo": "^5.1.0", + "postcss-unique-selectors": "^5.1.1" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/cssnano-utils": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/cssnano-utils/-/cssnano-utils-3.1.0.tgz", + "integrity": "sha512-JQNR19/YZhz4psLX/rQ9M83e3z2Wf/HdJbryzte4a3NSuafyp9w/I4U+hx5C2S9g41qlstH7DEWnZaaj83OuEA==", + "license": "MIT", + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/csso": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/csso/-/csso-4.2.0.tgz", + "integrity": "sha512-wvlcdIbf6pwKEk7vHj8/Bkc0B4ylXZruLvOgs9doS5eOsOpuodOV2zJChSpkp+pRpYQLQMeF04nr3Z68Sta9jA==", + "license": "MIT", + "dependencies": { + "css-tree": "^1.1.2" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/csso/node_modules/css-tree": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-1.1.3.tgz", + "integrity": "sha512-tRpdppF7TRazZrjJ6v3stzv93qxRcSsFmW6cX0Zm2NVKpxE1WV1HblnghVv9TreireHkqI/VDEsfolRF1p6y7Q==", + "license": "MIT", + "dependencies": { + "mdn-data": "2.0.14", + "source-map": "^0.6.1" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/csso/node_modules/mdn-data": { + "version": "2.0.14", + "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.14.tgz", + "integrity": "sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow==", + "license": "CC0-1.0" + }, + "node_modules/csso/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/cssom": { + "version": "0.4.4", + "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.4.4.tgz", + "integrity": "sha512-p3pvU7r1MyyqbTk+WbNJIgJjG2VmTIaB10rI93LzVPrmDJKkzKYMtxxyAvQXR/NS6otuzveI7+7BBq3SjBS2mw==", + "license": "MIT" + }, + "node_modules/cssstyle": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/cssstyle/-/cssstyle-2.3.0.tgz", + "integrity": "sha512-AZL67abkUzIuvcHqk7c09cezpGNcxUxU4Ioi/05xHk4DQeTkWmGYftIE6ctU6AEt+Gn4n1lDStOtj7FKycP71A==", + "license": "MIT", + "dependencies": { + "cssom": "~0.3.6" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/cssstyle/node_modules/cssom": { + "version": "0.3.8", + "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.3.8.tgz", + "integrity": "sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg==", + "license": "MIT" + }, + "node_modules/csstype": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.3.tgz", + "integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==", + "license": "MIT" + }, + "node_modules/damerau-levenshtein": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/damerau-levenshtein/-/damerau-levenshtein-1.0.8.tgz", + "integrity": "sha512-sdQSFB7+llfUcQHUQO3+B8ERRj0Oa4w9POWMI/puGtuf7gFywGmkaLCElnudfTiKZV+NvHqL0ifzdrI8Ro7ESA==", + "license": "BSD-2-Clause" + }, + "node_modules/dashboard": { + "resolved": "", + "link": true + }, + "node_modules/data-urls": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/data-urls/-/data-urls-2.0.0.tgz", + "integrity": "sha512-X5eWTSXO/BJmpdIKCRuKUgSCgAN0OwliVK3yPKbwIWU1Tdw5BRajxlzMidvh+gwko9AfQ9zIj52pzF91Q3YAvQ==", + "license": "MIT", + "dependencies": { + "abab": "^2.0.3", + "whatwg-mimetype": "^2.3.0", + "whatwg-url": "^8.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/data-view-buffer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/data-view-buffer/-/data-view-buffer-1.0.1.tgz", + "integrity": "sha512-0lht7OugA5x3iJLOWFhWK/5ehONdprk0ISXqVFn/NFrDu+cuc8iADFrGQz5BnRK7LLU3JmkbXSxaqX+/mXYtUA==", + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.6", + "es-errors": "^1.3.0", + "is-data-view": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/data-view-byte-length": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/data-view-byte-length/-/data-view-byte-length-1.0.1.tgz", + "integrity": "sha512-4J7wRJD3ABAzr8wP+OcIcqq2dlUKp4DVflx++hs5h5ZKydWMI6/D/fAot+yh6g2tHh8fLFTvNOaVN357NvSrOQ==", + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "es-errors": "^1.3.0", + "is-data-view": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/data-view-byte-offset": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/data-view-byte-offset/-/data-view-byte-offset-1.0.0.tgz", + "integrity": "sha512-t/Ygsytq+R995EJ5PZlD4Cu56sWa8InXySaViRzw9apusqsOO2bQP+SbYzAhR0pFKoB+43lYy8rWban9JSuXnA==", + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.6", + "es-errors": "^1.3.0", + "is-data-view": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/debug": { + "version": "4.3.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.7.tgz", + "integrity": "sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==", + "license": "MIT", + "dependencies": { + "ms": "^2.1.3" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/decimal.js": { + "version": "10.4.3", + "resolved": "https://registry.npmjs.org/decimal.js/-/decimal.js-10.4.3.tgz", + "integrity": "sha512-VBBaLc1MgL5XpzgIP7ny5Z6Nx3UrRkIViUkPUdtl9aya5amy3De1gsUUSB1g3+3sExYNjCAsAznmukyxCb1GRA==", + "license": "MIT" + }, + "node_modules/dedent": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/dedent/-/dedent-0.7.0.tgz", + "integrity": "sha512-Q6fKUPqnAHAyhiUgFU7BUzLiv0kd8saH9al7tnu5Q/okj6dnupxyTgFIBjVzJATdfIAm9NAsvXNzjaKa+bxVyA==", + "license": "MIT" + }, + "node_modules/deep-is": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", + "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", + "license": "MIT" + }, + "node_modules/deepmerge": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.1.tgz", + "integrity": "sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/default-gateway": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/default-gateway/-/default-gateway-6.0.3.tgz", + "integrity": "sha512-fwSOJsbbNzZ/CUFpqFBqYfYNLj1NbMPm8MMCIzHjC83iSJRBEGmDUxU+WP661BaBQImeC2yHwXtz+P/O9o+XEg==", + "license": "BSD-2-Clause", + "dependencies": { + "execa": "^5.0.0" + }, + "engines": { + "node": ">= 10" + } + }, + "node_modules/define-data-property": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz", + "integrity": "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==", + "license": "MIT", + "dependencies": { + "es-define-property": "^1.0.0", + "es-errors": "^1.3.0", + "gopd": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/define-lazy-prop": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/define-lazy-prop/-/define-lazy-prop-2.0.0.tgz", + "integrity": "sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/define-properties": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.1.tgz", + "integrity": "sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==", + "license": "MIT", + "dependencies": { + "define-data-property": "^1.0.1", + "has-property-descriptors": "^1.0.0", + "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", + "license": "MIT", + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/depd": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", + "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/dequal": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/dequal/-/dequal-2.0.3.tgz", + "integrity": "sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/destroy": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz", + "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==", + "license": "MIT", + "engines": { + "node": ">= 0.8", + "npm": "1.2.8000 || >= 1.4.16" + } + }, + "node_modules/detect-newline": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/detect-newline/-/detect-newline-3.1.0.tgz", + "integrity": "sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/detect-node": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/detect-node/-/detect-node-2.1.0.tgz", + "integrity": "sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g==", + "license": "MIT" + }, + "node_modules/detect-port-alt": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/detect-port-alt/-/detect-port-alt-1.1.6.tgz", + "integrity": "sha512-5tQykt+LqfJFBEYaDITx7S7cR7mJ/zQmLXZ2qt5w04ainYZw6tBf9dBunMjVeVOdYVRUzUOE4HkY5J7+uttb5Q==", + "license": "MIT", + "dependencies": { + "address": "^1.0.1", + "debug": "^2.6.0" + }, + "bin": { + "detect": "bin/detect-port", + "detect-port": "bin/detect-port" + }, + "engines": { + "node": ">= 4.2.1" + } + }, + "node_modules/detect-port-alt/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "license": "MIT", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/detect-port-alt/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "license": "MIT" + }, + "node_modules/didyoumean": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/didyoumean/-/didyoumean-1.2.2.tgz", + "integrity": "sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==", + "license": "Apache-2.0" + }, + "node_modules/diff-sequences": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-29.6.3.tgz", + "integrity": "sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q==", + "license": "MIT", + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/dir-glob": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", + "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", + "license": "MIT", + "dependencies": { + "path-type": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/dlv": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/dlv/-/dlv-1.1.3.tgz", + "integrity": "sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==", + "license": "MIT" + }, + "node_modules/dns-packet": { + "version": "5.6.1", + "resolved": "https://registry.npmjs.org/dns-packet/-/dns-packet-5.6.1.tgz", + "integrity": "sha512-l4gcSouhcgIKRvyy99RNVOgxXiicE+2jZoNmaNmZ6JXiGajBOJAesk1OBlJuM5k2c+eudGdLxDqXuPCKIj6kpw==", + "license": "MIT", + "dependencies": { + "@leichtgewicht/ip-codec": "^2.0.1" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/doctrine": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", + "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", + "license": "Apache-2.0", + "dependencies": { + "esutils": "^2.0.2" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/dom-accessibility-api": { + "version": "0.5.16", + "resolved": "https://registry.npmjs.org/dom-accessibility-api/-/dom-accessibility-api-0.5.16.tgz", + "integrity": "sha512-X7BJ2yElsnOJ30pZF4uIIDfBEVgF4XEBxL9Bxhy6dnrm5hkzqmsWHGTiHqRiITNhMyFLyAiWndIJP7Z1NTteDg==", + "license": "MIT" + }, + "node_modules/dom-converter": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/dom-converter/-/dom-converter-0.2.0.tgz", + "integrity": "sha512-gd3ypIPfOMr9h5jIKq8E3sHOTCjeirnl0WK5ZdS1AW0Odt0b1PaWaHdJ4Qk4klv+YB9aJBS7mESXjFoDQPu6DA==", + "license": "MIT", + "dependencies": { + "utila": "~0.4" + } + }, + "node_modules/dom-helpers": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/dom-helpers/-/dom-helpers-5.2.1.tgz", + "integrity": "sha512-nRCa7CK3VTrM2NmGkIy4cbK7IZlgBE/PYMn55rrXefr5xXDP0LdtfPnblFDoVdcAfslJ7or6iqAUnx0CCGIWQA==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.8.7", + "csstype": "^3.0.2" + } + }, + "node_modules/dom-serializer": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-1.4.1.tgz", + "integrity": "sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag==", + "license": "MIT", + "dependencies": { + "domelementtype": "^2.0.1", + "domhandler": "^4.2.0", + "entities": "^2.0.0" + }, + "funding": { + "url": "https://github.com/cheeriojs/dom-serializer?sponsor=1" + } + }, + "node_modules/domelementtype": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz", + "integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/fb55" + } + ], + "license": "BSD-2-Clause" + }, + "node_modules/domexception": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/domexception/-/domexception-2.0.1.tgz", + "integrity": "sha512-yxJ2mFy/sibVQlu5qHjOkf9J3K6zgmCxgJ94u2EdvDOV09H+32LtRswEcUsmUWN72pVLOEnTSRaIVVzVQgS0dg==", + "deprecated": "Use your platform's native DOMException instead", + "license": "MIT", + "dependencies": { + "webidl-conversions": "^5.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/domexception/node_modules/webidl-conversions": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-5.0.0.tgz", + "integrity": "sha512-VlZwKPCkYKxQgeSbH5EyngOmRp7Ww7I9rQLERETtf5ofd9pGeswWiOtogpEO850jziPRarreGxn5QIiTqpb2wA==", + "license": "BSD-2-Clause", + "engines": { + "node": ">=8" + } + }, + "node_modules/domhandler": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-4.3.1.tgz", + "integrity": "sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ==", + "license": "BSD-2-Clause", + "dependencies": { + "domelementtype": "^2.2.0" + }, + "engines": { + "node": ">= 4" + }, + "funding": { + "url": "https://github.com/fb55/domhandler?sponsor=1" + } + }, + "node_modules/domutils": { + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-2.8.0.tgz", + "integrity": "sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==", + "license": "BSD-2-Clause", + "dependencies": { + "dom-serializer": "^1.0.1", + "domelementtype": "^2.2.0", + "domhandler": "^4.2.0" + }, + "funding": { + "url": "https://github.com/fb55/domutils?sponsor=1" + } + }, + "node_modules/dot-case": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/dot-case/-/dot-case-3.0.4.tgz", + "integrity": "sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w==", + "license": "MIT", + "dependencies": { + "no-case": "^3.0.4", + "tslib": "^2.0.3" + } + }, + "node_modules/dotenv": { + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-10.0.0.tgz", + "integrity": "sha512-rlBi9d8jpv9Sf1klPjNfFAuWDjKLwTIJJ/VxtoTwIR6hnZxcEOQCZg2oIL3MWBYw5GpUDKOEnND7LXTbIpQ03Q==", + "license": "BSD-2-Clause", + "engines": { + "node": ">=10" + } + }, + "node_modules/dotenv-expand": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/dotenv-expand/-/dotenv-expand-5.1.0.tgz", + "integrity": "sha512-YXQl1DSa4/PQyRfgrv6aoNjhasp/p4qs9FjJ4q4cQk+8m4r6k4ZSiEyytKG8f8W9gi8WsQtIObNmKd+tMzNTmA==", + "license": "BSD-2-Clause" + }, + "node_modules/duplexer": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/duplexer/-/duplexer-0.1.2.tgz", + "integrity": "sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==", + "license": "MIT" + }, + "node_modules/eastasianwidth": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", + "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==", + "license": "MIT" + }, + "node_modules/ee-first": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", + "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==", + "license": "MIT" + }, + "node_modules/ejs": { + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/ejs/-/ejs-3.1.10.tgz", + "integrity": "sha512-UeJmFfOrAQS8OJWPZ4qtgHyWExa088/MtK5UEyoJGFH67cDEXkZSviOiKRCZ4Xij0zxI3JECgYs3oKx+AizQBA==", + "license": "Apache-2.0", + "dependencies": { + "jake": "^10.8.5" + }, + "bin": { + "ejs": "bin/cli.js" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/electron-to-chromium": { + "version": "1.5.65", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.65.tgz", + "integrity": "sha512-PWVzBjghx7/wop6n22vS2MLU8tKGd4Q91aCEGhG/TYmW6PP5OcSXcdnxTe1NNt0T66N8D6jxh4kC8UsdzOGaIw==", + "license": "ISC" + }, + "node_modules/emittery": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/emittery/-/emittery-0.8.1.tgz", + "integrity": "sha512-uDfvUjVrfGJJhymx/kz6prltenw1u7WrCg1oa94zYY8xxVpLLUu045LAT0dhDZdXG58/EpPL/5kA180fQ/qudg==", + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sindresorhus/emittery?sponsor=1" + } + }, + "node_modules/emoji-regex": { + "version": "9.2.2", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", + "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", + "license": "MIT" + }, + "node_modules/emojis-list": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-3.0.0.tgz", + "integrity": "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==", + "license": "MIT", + "engines": { + "node": ">= 4" + } + }, + "node_modules/encodeurl": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-2.0.0.tgz", + "integrity": "sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/enhanced-resolve": { + "version": "5.17.1", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.17.1.tgz", + "integrity": "sha512-LMHl3dXhTcfv8gM4kEzIUeTQ+7fpdA0l2tUf34BddXPkz2A5xJ5L/Pchd5BL6rdccM9QGvu0sWZzK1Z1t4wwyg==", + "license": "MIT", + "dependencies": { + "graceful-fs": "^4.2.4", + "tapable": "^2.2.0" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/entities": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz", + "integrity": "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==", + "license": "BSD-2-Clause", + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, + "node_modules/error-ex": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", + "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", + "license": "MIT", + "dependencies": { + "is-arrayish": "^0.2.1" + } + }, + "node_modules/error-stack-parser": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/error-stack-parser/-/error-stack-parser-2.1.4.tgz", + "integrity": "sha512-Sk5V6wVazPhq5MhpO+AUxJn5x7XSXGl1R93Vn7i+zS15KDVxQijejNCrz8340/2bgLBjR9GtEG8ZVKONDjcqGQ==", + "license": "MIT", + "dependencies": { + "stackframe": "^1.3.4" + } + }, + "node_modules/es-abstract": { + "version": "1.23.5", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.23.5.tgz", + "integrity": "sha512-vlmniQ0WNPwXqA0BnmwV3Ng7HxiGlh6r5U6JcTMNx8OilcAGqVJBHJcPjqOMaczU9fRuRK5Px2BdVyPRnKMMVQ==", + "license": "MIT", + "dependencies": { + "array-buffer-byte-length": "^1.0.1", + "arraybuffer.prototype.slice": "^1.0.3", + "available-typed-arrays": "^1.0.7", + "call-bind": "^1.0.7", + "data-view-buffer": "^1.0.1", + "data-view-byte-length": "^1.0.1", + "data-view-byte-offset": "^1.0.0", + "es-define-property": "^1.0.0", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.0.0", + "es-set-tostringtag": "^2.0.3", + "es-to-primitive": "^1.2.1", + "function.prototype.name": "^1.1.6", + "get-intrinsic": "^1.2.4", + "get-symbol-description": "^1.0.2", + "globalthis": "^1.0.4", + "gopd": "^1.0.1", + "has-property-descriptors": "^1.0.2", + "has-proto": "^1.0.3", + "has-symbols": "^1.0.3", + "hasown": "^2.0.2", + "internal-slot": "^1.0.7", + "is-array-buffer": "^3.0.4", + "is-callable": "^1.2.7", + "is-data-view": "^1.0.1", + "is-negative-zero": "^2.0.3", + "is-regex": "^1.1.4", + "is-shared-array-buffer": "^1.0.3", + "is-string": "^1.0.7", + "is-typed-array": "^1.1.13", + "is-weakref": "^1.0.2", + "object-inspect": "^1.13.3", + "object-keys": "^1.1.1", + "object.assign": "^4.1.5", + "regexp.prototype.flags": "^1.5.3", + "safe-array-concat": "^1.1.2", + "safe-regex-test": "^1.0.3", + "string.prototype.trim": "^1.2.9", + "string.prototype.trimend": "^1.0.8", + "string.prototype.trimstart": "^1.0.8", + "typed-array-buffer": "^1.0.2", + "typed-array-byte-length": "^1.0.1", + "typed-array-byte-offset": "^1.0.2", + "typed-array-length": "^1.0.6", + "unbox-primitive": "^1.0.2", + "which-typed-array": "^1.1.15" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/es-array-method-boxes-properly": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/es-array-method-boxes-properly/-/es-array-method-boxes-properly-1.0.0.tgz", + "integrity": "sha512-wd6JXUmyHmt8T5a2xreUwKcGPq6f1f+WwIJkijUqiGcJz1qqnZgP6XIK+QyIWU5lT7imeNxUll48bziG+TSYcA==", + "license": "MIT" + }, + "node_modules/es-define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.0.tgz", + "integrity": "sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==", + "license": "MIT", + "dependencies": { + "get-intrinsic": "^1.2.4" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-errors": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz", + "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-get-iterator": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/es-get-iterator/-/es-get-iterator-1.1.3.tgz", + "integrity": "sha512-sPZmqHBe6JIiTfN5q2pEi//TwxmAFHwj/XEuYjTuse78i8KxaqMTTzxPoFKuzRpDpTJ+0NAbpfenkmH2rePtuw==", + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.1.3", + "has-symbols": "^1.0.3", + "is-arguments": "^1.1.1", + "is-map": "^2.0.2", + "is-set": "^2.0.2", + "is-string": "^1.0.7", + "isarray": "^2.0.5", + "stop-iteration-iterator": "^1.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/es-iterator-helpers": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/es-iterator-helpers/-/es-iterator-helpers-1.2.0.tgz", + "integrity": "sha512-tpxqxncxnpw3c93u8n3VOzACmRFoVmWJqbWXvX/JfKbkhBw1oslgPrUfeSt2psuqyEJFD6N/9lg5i7bsKpoq+Q==", + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.3", + "es-errors": "^1.3.0", + "es-set-tostringtag": "^2.0.3", + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.4", + "globalthis": "^1.0.4", + "gopd": "^1.0.1", + "has-property-descriptors": "^1.0.2", + "has-proto": "^1.0.3", + "has-symbols": "^1.0.3", + "internal-slot": "^1.0.7", + "iterator.prototype": "^1.1.3", + "safe-array-concat": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-module-lexer": { + "version": "1.5.4", + "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.5.4.tgz", + "integrity": "sha512-MVNK56NiMrOwitFB7cqDwq0CQutbw+0BvLshJSse0MUNU+y1FC3bUS/AQg7oUng+/wKrrki7JfmwtVHkVfPLlw==", + "license": "MIT" + }, + "node_modules/es-object-atoms": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.0.0.tgz", + "integrity": "sha512-MZ4iQ6JwHOBQjahnjwaC1ZtIBH+2ohjamzAO3oaHcXYup7qxjF2fixyH+Q71voWHeOkI2q/TnJao/KfXYIZWbw==", + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-set-tostringtag": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.0.3.tgz", + "integrity": "sha512-3T8uNMC3OQTHkFUsFq8r/BwAXLHvU/9O9mE0fBc/MY5iq/8H7ncvO947LmYA6ldWw9Uh8Yhf25zu6n7nML5QWQ==", + "license": "MIT", + "dependencies": { + "get-intrinsic": "^1.2.4", + "has-tostringtag": "^1.0.2", + "hasown": "^2.0.1" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-shim-unscopables": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/es-shim-unscopables/-/es-shim-unscopables-1.0.2.tgz", + "integrity": "sha512-J3yBRXCzDu4ULnQwxyToo/OjdMx6akgVC7K6few0a7F/0wLtmKKN7I73AH5T2836UuXRqN7Qg+IIUw/+YJksRw==", + "license": "MIT", + "dependencies": { + "hasown": "^2.0.0" + } + }, + "node_modules/es-to-primitive": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.3.0.tgz", + "integrity": "sha512-w+5mJ3GuFL+NjVtJlvydShqE1eN3h3PbI7/5LAsYJP/2qtuMXjfL2LpHSRqo4b4eSF5K/DH1JXKUAHSB2UW50g==", + "license": "MIT", + "dependencies": { + "is-callable": "^1.2.7", + "is-date-object": "^1.0.5", + "is-symbol": "^1.0.4" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/escalade": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz", + "integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/escape-html": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", + "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==", + "license": "MIT" + }, + "node_modules/escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/escodegen": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-2.1.0.tgz", + "integrity": "sha512-2NlIDTwUWJN0mRPQOdtQBzbUHvdGY2P1VXSyU83Q3xKxM7WHX2Ql8dKq782Q9TgQUNOLEzEYu9bzLNj1q88I5w==", + "license": "BSD-2-Clause", + "dependencies": { + "esprima": "^4.0.1", + "estraverse": "^5.2.0", + "esutils": "^2.0.2" + }, + "bin": { + "escodegen": "bin/escodegen.js", + "esgenerate": "bin/esgenerate.js" + }, + "engines": { + "node": ">=6.0" + }, + "optionalDependencies": { + "source-map": "~0.6.1" + } + }, + "node_modules/escodegen/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "license": "BSD-3-Clause", + "optional": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/eslint": { + "version": "8.57.1", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.57.1.tgz", + "integrity": "sha512-ypowyDxpVSYpkXr9WPv2PAZCtNip1Mv5KTW0SCurXv/9iOpcrH9PaqUElksqEB6pChqHGDRCFTyrZlGhnLNGiA==", + "deprecated": "This version is no longer supported. Please see https://eslint.org/version-support for other options.", + "license": "MIT", + "dependencies": { + "@eslint-community/eslint-utils": "^4.2.0", + "@eslint-community/regexpp": "^4.6.1", + "@eslint/eslintrc": "^2.1.4", + "@eslint/js": "8.57.1", + "@humanwhocodes/config-array": "^0.13.0", + "@humanwhocodes/module-importer": "^1.0.1", + "@nodelib/fs.walk": "^1.2.8", + "@ungap/structured-clone": "^1.2.0", + "ajv": "^6.12.4", + "chalk": "^4.0.0", + "cross-spawn": "^7.0.2", + "debug": "^4.3.2", + "doctrine": "^3.0.0", + "escape-string-regexp": "^4.0.0", + "eslint-scope": "^7.2.2", + "eslint-visitor-keys": "^3.4.3", + "espree": "^9.6.1", + "esquery": "^1.4.2", + "esutils": "^2.0.2", + "fast-deep-equal": "^3.1.3", + "file-entry-cache": "^6.0.1", + "find-up": "^5.0.0", + "glob-parent": "^6.0.2", + "globals": "^13.19.0", + "graphemer": "^1.4.0", + "ignore": "^5.2.0", + "imurmurhash": "^0.1.4", + "is-glob": "^4.0.0", + "is-path-inside": "^3.0.3", + "js-yaml": "^4.1.0", + "json-stable-stringify-without-jsonify": "^1.0.1", + "levn": "^0.4.1", + "lodash.merge": "^4.6.2", + "minimatch": "^3.1.2", + "natural-compare": "^1.4.0", + "optionator": "^0.9.3", + "strip-ansi": "^6.0.1", + "text-table": "^0.2.0" + }, + "bin": { + "eslint": "bin/eslint.js" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint-config-react-app": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/eslint-config-react-app/-/eslint-config-react-app-7.0.1.tgz", + "integrity": "sha512-K6rNzvkIeHaTd8m/QEh1Zko0KI7BACWkkneSs6s9cKZC/J27X3eZR6Upt1jkmZ/4FK+XUOPPxMEN7+lbUXfSlA==", + "license": "MIT", + "dependencies": { + "@babel/core": "^7.16.0", + "@babel/eslint-parser": "^7.16.3", + "@rushstack/eslint-patch": "^1.1.0", + "@typescript-eslint/eslint-plugin": "^5.5.0", + "@typescript-eslint/parser": "^5.5.0", + "babel-preset-react-app": "^10.0.1", + "confusing-browser-globals": "^1.0.11", + "eslint-plugin-flowtype": "^8.0.3", + "eslint-plugin-import": "^2.25.3", + "eslint-plugin-jest": "^25.3.0", + "eslint-plugin-jsx-a11y": "^6.5.1", + "eslint-plugin-react": "^7.27.1", + "eslint-plugin-react-hooks": "^4.3.0", + "eslint-plugin-testing-library": "^5.0.1" + }, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "eslint": "^8.0.0" + } + }, + "node_modules/eslint-import-resolver-node": { + "version": "0.3.9", + "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.9.tgz", + "integrity": "sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g==", + "license": "MIT", + "dependencies": { + "debug": "^3.2.7", + "is-core-module": "^2.13.0", + "resolve": "^1.22.4" + } + }, + "node_modules/eslint-import-resolver-node/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "license": "MIT", + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/eslint-module-utils": { + "version": "2.12.0", + "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.12.0.tgz", + "integrity": "sha512-wALZ0HFoytlyh/1+4wuZ9FJCD/leWHQzzrxJ8+rebyReSLk7LApMyd3WJaLVoN+D5+WIdJyDK1c6JnE65V4Zyg==", + "license": "MIT", + "dependencies": { + "debug": "^3.2.7" + }, + "engines": { + "node": ">=4" + }, + "peerDependenciesMeta": { + "eslint": { + "optional": true + } + } + }, + "node_modules/eslint-module-utils/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "license": "MIT", + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/eslint-plugin-flowtype": { + "version": "8.0.3", + "resolved": "https://registry.npmjs.org/eslint-plugin-flowtype/-/eslint-plugin-flowtype-8.0.3.tgz", + "integrity": "sha512-dX8l6qUL6O+fYPtpNRideCFSpmWOUVx5QcaGLVqe/vlDiBSe4vYljDWDETwnyFzpl7By/WVIu6rcrniCgH9BqQ==", + "license": "BSD-3-Clause", + "dependencies": { + "lodash": "^4.17.21", + "string-natural-compare": "^3.0.1" + }, + "engines": { + "node": ">=12.0.0" + }, + "peerDependencies": { + "@babel/plugin-syntax-flow": "^7.14.5", + "@babel/plugin-transform-react-jsx": "^7.14.9", + "eslint": "^8.1.0" + } + }, + "node_modules/eslint-plugin-import": { + "version": "2.31.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.31.0.tgz", + "integrity": "sha512-ixmkI62Rbc2/w8Vfxyh1jQRTdRTF52VxwRVHl/ykPAmqG+Nb7/kNn+byLP0LxPgI7zWA16Jt82SybJInmMia3A==", + "license": "MIT", + "dependencies": { + "@rtsao/scc": "^1.1.0", + "array-includes": "^3.1.8", + "array.prototype.findlastindex": "^1.2.5", + "array.prototype.flat": "^1.3.2", + "array.prototype.flatmap": "^1.3.2", + "debug": "^3.2.7", + "doctrine": "^2.1.0", + "eslint-import-resolver-node": "^0.3.9", + "eslint-module-utils": "^2.12.0", + "hasown": "^2.0.2", + "is-core-module": "^2.15.1", + "is-glob": "^4.0.3", + "minimatch": "^3.1.2", + "object.fromentries": "^2.0.8", + "object.groupby": "^1.0.3", + "object.values": "^1.2.0", + "semver": "^6.3.1", + "string.prototype.trimend": "^1.0.8", + "tsconfig-paths": "^3.15.0" + }, + "engines": { + "node": ">=4" + }, + "peerDependencies": { + "eslint": "^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8 || ^9" + } + }, + "node_modules/eslint-plugin-import/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "license": "MIT", + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/eslint-plugin-import/node_modules/doctrine": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", + "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", + "license": "Apache-2.0", + "dependencies": { + "esutils": "^2.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/eslint-plugin-import/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/eslint-plugin-jest": { + "version": "25.7.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-jest/-/eslint-plugin-jest-25.7.0.tgz", + "integrity": "sha512-PWLUEXeeF7C9QGKqvdSbzLOiLTx+bno7/HC9eefePfEb257QFHg7ye3dh80AZVkaa/RQsBB1Q/ORQvg2X7F0NQ==", + "license": "MIT", + "dependencies": { + "@typescript-eslint/experimental-utils": "^5.0.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + }, + "peerDependencies": { + "@typescript-eslint/eslint-plugin": "^4.0.0 || ^5.0.0", + "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" + }, + "peerDependenciesMeta": { + "@typescript-eslint/eslint-plugin": { + "optional": true + }, + "jest": { + "optional": true + } + } + }, + "node_modules/eslint-plugin-jsx-a11y": { + "version": "6.10.2", + "resolved": "https://registry.npmjs.org/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-6.10.2.tgz", + "integrity": "sha512-scB3nz4WmG75pV8+3eRUQOHZlNSUhFNq37xnpgRkCCELU3XMvXAxLk1eqWWyE22Ki4Q01Fnsw9BA3cJHDPgn2Q==", + "license": "MIT", + "dependencies": { + "aria-query": "^5.3.2", + "array-includes": "^3.1.8", + "array.prototype.flatmap": "^1.3.2", + "ast-types-flow": "^0.0.8", + "axe-core": "^4.10.0", + "axobject-query": "^4.1.0", + "damerau-levenshtein": "^1.0.8", + "emoji-regex": "^9.2.2", + "hasown": "^2.0.2", + "jsx-ast-utils": "^3.3.5", + "language-tags": "^1.0.9", + "minimatch": "^3.1.2", + "object.fromentries": "^2.0.8", + "safe-regex-test": "^1.0.3", + "string.prototype.includes": "^2.0.1" + }, + "engines": { + "node": ">=4.0" + }, + "peerDependencies": { + "eslint": "^3 || ^4 || ^5 || ^6 || ^7 || ^8 || ^9" + } + }, + "node_modules/eslint-plugin-jsx-a11y/node_modules/aria-query": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-5.3.2.tgz", + "integrity": "sha512-COROpnaoap1E2F000S62r6A60uHZnmlvomhfyT2DlTcrY1OrBKn2UhH7qn5wTC9zMvD0AY7csdPSNwKP+7WiQw==", + "license": "Apache-2.0", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/eslint-plugin-react": { + "version": "7.37.2", + "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.37.2.tgz", + "integrity": "sha512-EsTAnj9fLVr/GZleBLFbj/sSuXeWmp1eXIN60ceYnZveqEaUCyW4X+Vh4WTdUhCkW4xutXYqTXCUSyqD4rB75w==", + "license": "MIT", + "dependencies": { + "array-includes": "^3.1.8", + "array.prototype.findlast": "^1.2.5", + "array.prototype.flatmap": "^1.3.2", + "array.prototype.tosorted": "^1.1.4", + "doctrine": "^2.1.0", + "es-iterator-helpers": "^1.1.0", + "estraverse": "^5.3.0", + "hasown": "^2.0.2", + "jsx-ast-utils": "^2.4.1 || ^3.0.0", + "minimatch": "^3.1.2", + "object.entries": "^1.1.8", + "object.fromentries": "^2.0.8", + "object.values": "^1.2.0", + "prop-types": "^15.8.1", + "resolve": "^2.0.0-next.5", + "semver": "^6.3.1", + "string.prototype.matchall": "^4.0.11", + "string.prototype.repeat": "^1.0.0" + }, + "engines": { + "node": ">=4" + }, + "peerDependencies": { + "eslint": "^3 || ^4 || ^5 || ^6 || ^7 || ^8 || ^9.7" + } + }, + "node_modules/eslint-plugin-react-hooks": { + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-4.6.2.tgz", + "integrity": "sha512-QzliNJq4GinDBcD8gPB5v0wh6g8q3SUi6EFF0x8N/BL9PoVs0atuGc47ozMRyOWAKdwaZ5OnbOEa3WR+dSGKuQ==", + "license": "MIT", + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "eslint": "^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0" + } + }, + "node_modules/eslint-plugin-react/node_modules/doctrine": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", + "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", + "license": "Apache-2.0", + "dependencies": { + "esutils": "^2.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/eslint-plugin-react/node_modules/resolve": { + "version": "2.0.0-next.5", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-2.0.0-next.5.tgz", + "integrity": "sha512-U7WjGVG9sH8tvjW5SmGbQuui75FiyjAX72HX15DwBBwF9dNiQZRQAg9nnPhYy+TUnE0+VcrttuvNI8oSxZcocA==", + "license": "MIT", + "dependencies": { + "is-core-module": "^2.13.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/eslint-plugin-react/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/eslint-plugin-testing-library": { + "version": "5.11.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-testing-library/-/eslint-plugin-testing-library-5.11.1.tgz", + "integrity": "sha512-5eX9e1Kc2PqVRed3taaLnAAqPZGEX75C+M/rXzUAI3wIg/ZxzUm1OVAwfe/O+vE+6YXOLetSe9g5GKD2ecXipw==", + "license": "MIT", + "dependencies": { + "@typescript-eslint/utils": "^5.58.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0", + "npm": ">=6" + }, + "peerDependencies": { + "eslint": "^7.5.0 || ^8.0.0" + } + }, + "node_modules/eslint-scope": { + "version": "7.2.2", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.2.tgz", + "integrity": "sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==", + "license": "BSD-2-Clause", + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^5.2.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint-visitor-keys": { + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", + "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", + "license": "Apache-2.0", + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint-webpack-plugin": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/eslint-webpack-plugin/-/eslint-webpack-plugin-3.2.0.tgz", + "integrity": "sha512-avrKcGncpPbPSUHX6B3stNGzkKFto3eL+DKM4+VyMrVnhPc3vRczVlCq3uhuFOdRvDHTVXuzwk1ZKUrqDQHQ9w==", + "license": "MIT", + "dependencies": { + "@types/eslint": "^7.29.0 || ^8.4.1", + "jest-worker": "^28.0.2", + "micromatch": "^4.0.5", + "normalize-path": "^3.0.0", + "schema-utils": "^4.0.0" + }, + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "eslint": "^7.0.0 || ^8.0.0", + "webpack": "^5.0.0" + } + }, + "node_modules/eslint-webpack-plugin/node_modules/jest-worker": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-28.1.3.tgz", + "integrity": "sha512-CqRA220YV/6jCo8VWvAt1KKx6eek1VIHMPeLEbpcfSfkEeWyBNppynM/o6q+Wmw+sOhos2ml34wZbSX3G13//g==", + "license": "MIT", + "dependencies": { + "@types/node": "*", + "merge-stream": "^2.0.0", + "supports-color": "^8.0.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/eslint-webpack-plugin/node_modules/supports-color": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/supports-color?sponsor=1" + } + }, + "node_modules/eslint/node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "license": "Python-2.0" + }, + "node_modules/eslint/node_modules/find-up": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", + "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", + "license": "MIT", + "dependencies": { + "locate-path": "^6.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint/node_modules/globals": { + "version": "13.24.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz", + "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==", + "license": "MIT", + "dependencies": { + "type-fest": "^0.20.2" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint/node_modules/js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "license": "MIT", + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/eslint/node_modules/locate-path": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", + "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", + "license": "MIT", + "dependencies": { + "p-locate": "^5.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint/node_modules/p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "license": "MIT", + "dependencies": { + "yocto-queue": "^0.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint/node_modules/p-locate": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", + "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", + "license": "MIT", + "dependencies": { + "p-limit": "^3.0.2" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint/node_modules/type-fest": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", + "license": "(MIT OR CC0-1.0)", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/espree": { + "version": "9.6.1", + "resolved": "https://registry.npmjs.org/espree/-/espree-9.6.1.tgz", + "integrity": "sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==", + "license": "BSD-2-Clause", + "dependencies": { + "acorn": "^8.9.0", + "acorn-jsx": "^5.3.2", + "eslint-visitor-keys": "^3.4.1" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/esprima": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", + "license": "BSD-2-Clause", + "bin": { + "esparse": "bin/esparse.js", + "esvalidate": "bin/esvalidate.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/esquery": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.6.0.tgz", + "integrity": "sha512-ca9pw9fomFcKPvFLXhBKUK90ZvGibiGOvRJNbjljY7s7uq/5YO4BOzcYtJqExdx99rF6aAcnRxHmcUHcz6sQsg==", + "license": "BSD-3-Clause", + "dependencies": { + "estraverse": "^5.1.0" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/esrecurse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", + "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", + "license": "BSD-2-Clause", + "dependencies": { + "estraverse": "^5.2.0" + }, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "license": "BSD-2-Clause", + "engines": { + "node": ">=4.0" + } + }, + "node_modules/estree-walker": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-1.0.1.tgz", + "integrity": "sha512-1fMXF3YP4pZZVozF8j/ZLfvnR8NSIljt56UhbZ5PeeDmmGHpgpdwQt7ITlGvYaQukCvuBRMLEiKiYC+oeIg4cg==", + "license": "MIT" + }, + "node_modules/esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "license": "BSD-2-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/etag": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", + "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/eventemitter3": { + "version": "4.0.7", + "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz", + "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==", + "license": "MIT" + }, + "node_modules/events": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", + "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==", + "license": "MIT", + "engines": { + "node": ">=0.8.x" + } + }, + "node_modules/execa": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", + "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", + "license": "MIT", + "dependencies": { + "cross-spawn": "^7.0.3", + "get-stream": "^6.0.0", + "human-signals": "^2.1.0", + "is-stream": "^2.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^4.0.1", + "onetime": "^5.1.2", + "signal-exit": "^3.0.3", + "strip-final-newline": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sindresorhus/execa?sponsor=1" + } + }, + "node_modules/exit": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz", + "integrity": "sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ==", + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/expect": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/expect/-/expect-29.7.0.tgz", + "integrity": "sha512-2Zks0hf1VLFYI1kbh0I5jP3KHHyCHpkfyHBzsSXRFgl/Bg9mWYfMW8oD+PdMPlEwy5HNsR9JutYy6pMeOh61nw==", + "license": "MIT", + "dependencies": { + "@jest/expect-utils": "^29.7.0", + "jest-get-type": "^29.6.3", + "jest-matcher-utils": "^29.7.0", + "jest-message-util": "^29.7.0", + "jest-util": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/express": { + "version": "4.21.1", + "resolved": "https://registry.npmjs.org/express/-/express-4.21.1.tgz", + "integrity": "sha512-YSFlK1Ee0/GC8QaO91tHcDxJiE/X4FbpAyQWkxAvG6AXCuR65YzK8ua6D9hvi/TzUfZMpc+BwuM1IPw8fmQBiQ==", + "license": "MIT", + "dependencies": { + "accepts": "~1.3.8", + "array-flatten": "1.1.1", + "body-parser": "1.20.3", + "content-disposition": "0.5.4", + "content-type": "~1.0.4", + "cookie": "0.7.1", + "cookie-signature": "1.0.6", + "debug": "2.6.9", + "depd": "2.0.0", + "encodeurl": "~2.0.0", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "finalhandler": "1.3.1", + "fresh": "0.5.2", + "http-errors": "2.0.0", + "merge-descriptors": "1.0.3", + "methods": "~1.1.2", + "on-finished": "2.4.1", + "parseurl": "~1.3.3", + "path-to-regexp": "0.1.10", + "proxy-addr": "~2.0.7", + "qs": "6.13.0", + "range-parser": "~1.2.1", + "safe-buffer": "5.2.1", + "send": "0.19.0", + "serve-static": "1.16.2", + "setprototypeof": "1.2.0", + "statuses": "2.0.1", + "type-is": "~1.6.18", + "utils-merge": "1.0.1", + "vary": "~1.1.2" + }, + "engines": { + "node": ">= 0.10.0" + } + }, + "node_modules/express/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "license": "MIT", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/express/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "license": "MIT" + }, + "node_modules/fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "license": "MIT" + }, + "node_modules/fast-glob": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.2.tgz", + "integrity": "sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==", + "license": "MIT", + "dependencies": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.4" + }, + "engines": { + "node": ">=8.6.0" + } + }, + "node_modules/fast-glob/node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "license": "ISC", + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", + "license": "MIT" + }, + "node_modules/fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", + "license": "MIT" + }, + "node_modules/fast-uri": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/fast-uri/-/fast-uri-3.0.3.tgz", + "integrity": "sha512-aLrHthzCjH5He4Z2H9YZ+v6Ujb9ocRuW6ZzkJQOrTxleEijANq4v1TsaPaVG1PZcuurEzrLcWRyYBYXD5cEiaw==", + "license": "BSD-3-Clause" + }, + "node_modules/fastq": { + "version": "1.17.1", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.17.1.tgz", + "integrity": "sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==", + "license": "ISC", + "dependencies": { + "reusify": "^1.0.4" + } + }, + "node_modules/faye-websocket": { + "version": "0.11.4", + "resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.11.4.tgz", + "integrity": "sha512-CzbClwlXAuiRQAlUyfqPgvPoNKTckTPGfwZV4ZdAhVcP2lh9KUxJg2b5GkE7XbjKQ3YJnQ9z6D9ntLAlB+tP8g==", + "license": "Apache-2.0", + "dependencies": { + "websocket-driver": ">=0.5.1" + }, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/fb-watchman": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/fb-watchman/-/fb-watchman-2.0.2.tgz", + "integrity": "sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA==", + "license": "Apache-2.0", + "dependencies": { + "bser": "2.1.1" + } + }, + "node_modules/file-entry-cache": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", + "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", + "license": "MIT", + "dependencies": { + "flat-cache": "^3.0.4" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + } + }, + "node_modules/file-loader": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/file-loader/-/file-loader-6.2.0.tgz", + "integrity": "sha512-qo3glqyTa61Ytg4u73GultjHGjdRyig3tG6lPtyX/jOEJvHif9uB0/OCI2Kif6ctF3caQTW2G5gym21oAsI4pw==", + "license": "MIT", + "dependencies": { + "loader-utils": "^2.0.0", + "schema-utils": "^3.0.0" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^4.0.0 || ^5.0.0" + } + }, + "node_modules/file-loader/node_modules/schema-utils": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.3.0.tgz", + "integrity": "sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==", + "license": "MIT", + "dependencies": { + "@types/json-schema": "^7.0.8", + "ajv": "^6.12.5", + "ajv-keywords": "^3.5.2" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/filelist": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/filelist/-/filelist-1.0.4.tgz", + "integrity": "sha512-w1cEuf3S+DrLCQL7ET6kz+gmlJdbq9J7yXCSjK/OZCPA+qEN1WyF4ZAf0YYJa4/shHJra2t/d/r8SV4Ji+x+8Q==", + "license": "Apache-2.0", + "dependencies": { + "minimatch": "^5.0.1" + } + }, + "node_modules/filelist/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/filelist/node_modules/minimatch": { + "version": "5.1.6", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz", + "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", + "license": "ISC", + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/filesize": { + "version": "8.0.7", + "resolved": "https://registry.npmjs.org/filesize/-/filesize-8.0.7.tgz", + "integrity": "sha512-pjmC+bkIF8XI7fWaH8KxHcZL3DPybs1roSKP4rKDvy20tAWwIObE4+JIseG2byfGKhud5ZnM4YSGKBz7Sh0ndQ==", + "license": "BSD-3-Clause", + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/fill-range": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", + "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", + "license": "MIT", + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/finalhandler": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.3.1.tgz", + "integrity": "sha512-6BN9trH7bp3qvnrRyzsBz+g3lZxTNZTbVO2EV1CS0WIcDbawYVdYvGflME/9QP0h0pYlCDBCTjYa9nZzMDpyxQ==", + "license": "MIT", + "dependencies": { + "debug": "2.6.9", + "encodeurl": "~2.0.0", + "escape-html": "~1.0.3", + "on-finished": "2.4.1", + "parseurl": "~1.3.3", + "statuses": "2.0.1", + "unpipe": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/finalhandler/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "license": "MIT", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/finalhandler/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "license": "MIT" + }, + "node_modules/find-cache-dir": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.2.tgz", + "integrity": "sha512-wXZV5emFEjrridIgED11OoUKLxiYjAcqot/NJdAkOhlJ+vGzwhOAfcG5OX1jP+S0PcjEn8bdMJv+g2jwQ3Onig==", + "license": "MIT", + "dependencies": { + "commondir": "^1.0.1", + "make-dir": "^3.0.2", + "pkg-dir": "^4.1.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/avajs/find-cache-dir?sponsor=1" + } + }, + "node_modules/find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "license": "MIT", + "dependencies": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/flat-cache": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.2.0.tgz", + "integrity": "sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==", + "license": "MIT", + "dependencies": { + "flatted": "^3.2.9", + "keyv": "^4.5.3", + "rimraf": "^3.0.2" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + } + }, + "node_modules/flatted": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.3.2.tgz", + "integrity": "sha512-AiwGJM8YcNOaobumgtng+6NHuOqC3A7MixFeDafM3X9cIUM+xUXoS5Vfgf+OihAYe20fxqNM9yPBXJzRtZ/4eA==", + "license": "ISC" + }, + "node_modules/follow-redirects": { + "version": "1.15.9", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.9.tgz", + "integrity": "sha512-gew4GsXizNgdoRyqmyfMHyAmXsZDk6mHkSxZFCzW9gwlbtOW44CDtYavM+y+72qD/Vq2l550kMF52DT8fOLJqQ==", + "funding": [ + { + "type": "individual", + "url": "https://github.com/sponsors/RubenVerborgh" + } + ], + "license": "MIT", + "engines": { + "node": ">=4.0" + }, + "peerDependenciesMeta": { + "debug": { + "optional": true + } + } + }, + "node_modules/for-each": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz", + "integrity": "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==", + "license": "MIT", + "dependencies": { + "is-callable": "^1.1.3" + } + }, + "node_modules/foreground-child": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.3.0.tgz", + "integrity": "sha512-Ld2g8rrAyMYFXBhEqMz8ZAHBi4J4uS1i/CxGMDnjyFWddMXLVcDp051DZfu+t7+ab7Wv6SMqpWmyFIj5UbfFvg==", + "license": "ISC", + "dependencies": { + "cross-spawn": "^7.0.0", + "signal-exit": "^4.0.1" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/foreground-child/node_modules/signal-exit": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", + "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", + "license": "ISC", + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/fork-ts-checker-webpack-plugin": { + "version": "6.5.3", + "resolved": "https://registry.npmjs.org/fork-ts-checker-webpack-plugin/-/fork-ts-checker-webpack-plugin-6.5.3.tgz", + "integrity": "sha512-SbH/l9ikmMWycd5puHJKTkZJKddF4iRLyW3DeZ08HTI7NGyLS38MXd/KGgeWumQO7YNQbW2u/NtPT2YowbPaGQ==", + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.8.3", + "@types/json-schema": "^7.0.5", + "chalk": "^4.1.0", + "chokidar": "^3.4.2", + "cosmiconfig": "^6.0.0", + "deepmerge": "^4.2.2", + "fs-extra": "^9.0.0", + "glob": "^7.1.6", + "memfs": "^3.1.2", + "minimatch": "^3.0.4", + "schema-utils": "2.7.0", + "semver": "^7.3.2", + "tapable": "^1.0.0" + }, + "engines": { + "node": ">=10", + "yarn": ">=1.0.0" + }, + "peerDependencies": { + "eslint": ">= 6", + "typescript": ">= 2.7", + "vue-template-compiler": "*", + "webpack": ">= 4" + }, + "peerDependenciesMeta": { + "eslint": { + "optional": true + }, + "vue-template-compiler": { + "optional": true + } + } + }, + "node_modules/fork-ts-checker-webpack-plugin/node_modules/cosmiconfig": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-6.0.0.tgz", + "integrity": "sha512-xb3ZL6+L8b9JLLCx3ZdoZy4+2ECphCMo2PwqgP1tlfVq6M6YReyzBJtvWWtbDSpNr9hn96pkCiZqUcFEc+54Qg==", + "license": "MIT", + "dependencies": { + "@types/parse-json": "^4.0.0", + "import-fresh": "^3.1.0", + "parse-json": "^5.0.0", + "path-type": "^4.0.0", + "yaml": "^1.7.2" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/fork-ts-checker-webpack-plugin/node_modules/fs-extra": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", + "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", + "license": "MIT", + "dependencies": { + "at-least-node": "^1.0.0", + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/fork-ts-checker-webpack-plugin/node_modules/schema-utils": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-2.7.0.tgz", + "integrity": "sha512-0ilKFI6QQF5nxDZLFn2dMjvc4hjg/Wkg7rHd3jK6/A4a1Hl9VFdQWvgB1UMGoU94pad1P/8N7fMcEnLnSiju8A==", + "license": "MIT", + "dependencies": { + "@types/json-schema": "^7.0.4", + "ajv": "^6.12.2", + "ajv-keywords": "^3.4.1" + }, + "engines": { + "node": ">= 8.9.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/fork-ts-checker-webpack-plugin/node_modules/tapable": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/tapable/-/tapable-1.1.3.tgz", + "integrity": "sha512-4WK/bYZmj8xLr+HUCODHGF1ZFzsYffasLUgEiMBY4fgtltdO6B4WJtlSbPaDTLpYTcGVwM2qLnFTICEcNxs3kA==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/form-data": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.1.tgz", + "integrity": "sha512-tzN8e4TX8+kkxGPK8D5u0FNmjPUjw3lwC9lSLxxoB/+GtsJG91CO8bSWy73APlgAZzZbXEYZJuxjkHH2w+Ezhw==", + "license": "MIT", + "dependencies": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "mime-types": "^2.1.12" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/forwarded": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", + "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/fraction.js": { + "version": "4.3.7", + "resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-4.3.7.tgz", + "integrity": "sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew==", + "license": "MIT", + "engines": { + "node": "*" + }, + "funding": { + "type": "patreon", + "url": "https://github.com/sponsors/rawify" + } + }, + "node_modules/fresh": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", + "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/fs-extra": { + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz", + "integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==", + "license": "MIT", + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/fs-monkey": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/fs-monkey/-/fs-monkey-1.0.6.tgz", + "integrity": "sha512-b1FMfwetIKymC0eioW7mTywihSQE4oLzQn1dB6rZB5fx/3NpNEdAWeCSMB+60/AeT0TCXsxzAlcYVEFCTAksWg==", + "license": "Unlicense" + }, + "node_modules/fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", + "license": "ISC" + }, + "node_modules/fsevents": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "hasInstallScript": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/function-bind": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", + "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/function.prototype.name": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.6.tgz", + "integrity": "sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg==", + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "functions-have-names": "^1.2.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/functions-have-names": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz", + "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/gensync": { + "version": "1.0.0-beta.2", + "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", + "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/get-caller-file": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", + "license": "ISC", + "engines": { + "node": "6.* || 8.* || >= 10.*" + } + }, + "node_modules/get-intrinsic": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.4.tgz", + "integrity": "sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==", + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "has-proto": "^1.0.1", + "has-symbols": "^1.0.3", + "hasown": "^2.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-own-enumerable-property-symbols": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/get-own-enumerable-property-symbols/-/get-own-enumerable-property-symbols-3.0.2.tgz", + "integrity": "sha512-I0UBV/XOz1XkIJHEUDMZAbzCThU/H8DxmSfmdGcKPnVhu2VfFqr34jr9777IyaTYvxjedWhqVIilEDsCdP5G6g==", + "license": "ISC" + }, + "node_modules/get-package-type": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/get-package-type/-/get-package-type-0.1.0.tgz", + "integrity": "sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==", + "license": "MIT", + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/get-stream": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", + "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/get-symbol-description": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.2.tgz", + "integrity": "sha512-g0QYk1dZBxGwk+Ngc+ltRH2IBp2f7zBkBMBJZCDerh6EhlhSR6+9irMCuT/09zD6qkarHUSn529sK/yL4S27mg==", + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.5", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.4" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "deprecated": "Glob versions prior to v9 are no longer supported", + "license": "ISC", + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/glob-parent": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", + "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", + "license": "ISC", + "dependencies": { + "is-glob": "^4.0.3" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/glob-to-regexp": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz", + "integrity": "sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==", + "license": "BSD-2-Clause" + }, + "node_modules/global-modules": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/global-modules/-/global-modules-2.0.0.tgz", + "integrity": "sha512-NGbfmJBp9x8IxyJSd1P+otYK8vonoJactOogrVfFRIAEY1ukil8RSKDz2Yo7wh1oihl51l/r6W4epkeKJHqL8A==", + "license": "MIT", + "dependencies": { + "global-prefix": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/global-prefix": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-3.0.0.tgz", + "integrity": "sha512-awConJSVCHVGND6x3tmMaKcQvwXLhjdkmomy2W+Goaui8YPgYgXJZewhg3fWC+DlfqqQuWg8AwqjGTD2nAPVWg==", + "license": "MIT", + "dependencies": { + "ini": "^1.3.5", + "kind-of": "^6.0.2", + "which": "^1.3.1" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/global-prefix/node_modules/which": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "license": "ISC", + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "which": "bin/which" + } + }, + "node_modules/globals": { + "version": "11.12.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", + "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/globalthis": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.4.tgz", + "integrity": "sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ==", + "license": "MIT", + "dependencies": { + "define-properties": "^1.2.1", + "gopd": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/globby": { + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", + "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", + "license": "MIT", + "dependencies": { + "array-union": "^2.1.0", + "dir-glob": "^3.0.1", + "fast-glob": "^3.2.9", + "ignore": "^5.2.0", + "merge2": "^1.4.1", + "slash": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/gopd": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz", + "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==", + "license": "MIT", + "dependencies": { + "get-intrinsic": "^1.1.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/graceful-fs": { + "version": "4.2.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", + "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", + "license": "ISC" + }, + "node_modules/graphemer": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz", + "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==", + "license": "MIT" + }, + "node_modules/gzip-size": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/gzip-size/-/gzip-size-6.0.0.tgz", + "integrity": "sha512-ax7ZYomf6jqPTQ4+XCpUGyXKHk5WweS+e05MBO4/y3WJ5RkmPXNKvX+bx1behVILVwr6JSQvZAku021CHPXG3Q==", + "license": "MIT", + "dependencies": { + "duplexer": "^0.1.2" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/handle-thing": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/handle-thing/-/handle-thing-2.0.1.tgz", + "integrity": "sha512-9Qn4yBxelxoh2Ow62nP+Ka/kMnOXRi8BXnRaUwezLNhqelnN49xKz4F/dPP8OYLxLxq6JDtZb2i9XznUQbNPTg==", + "license": "MIT" + }, + "node_modules/harmony-reflect": { + "version": "1.6.2", + "resolved": "https://registry.npmjs.org/harmony-reflect/-/harmony-reflect-1.6.2.tgz", + "integrity": "sha512-HIp/n38R9kQjDEziXyDTuW3vvoxxyxjxFzXLrBr18uB47GnSt+G9D29fqrpM5ZkspMcPICud3XsBJQ4Y2URg8g==", + "license": "(Apache-2.0 OR MPL-1.1)" + }, + "node_modules/has-bigints": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.2.tgz", + "integrity": "sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/has-property-descriptors": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz", + "integrity": "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==", + "license": "MIT", + "dependencies": { + "es-define-property": "^1.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-proto": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.3.tgz", + "integrity": "sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-symbols": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", + "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-tostringtag": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.2.tgz", + "integrity": "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==", + "license": "MIT", + "dependencies": { + "has-symbols": "^1.0.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/hasown": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", + "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", + "license": "MIT", + "dependencies": { + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/he": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", + "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", + "license": "MIT", + "bin": { + "he": "bin/he" + } + }, + "node_modules/hoopy": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/hoopy/-/hoopy-0.1.4.tgz", + "integrity": "sha512-HRcs+2mr52W0K+x8RzcLzuPPmVIKMSv97RGHy0Ea9y/mpcaK+xTrjICA04KAHi4GRzxliNqNJEFYWHghy3rSfQ==", + "license": "MIT", + "engines": { + "node": ">= 6.0.0" + } + }, + "node_modules/hpack.js": { + "version": "2.1.6", + "resolved": "https://registry.npmjs.org/hpack.js/-/hpack.js-2.1.6.tgz", + "integrity": "sha512-zJxVehUdMGIKsRaNt7apO2Gqp0BdqW5yaiGHXXmbpvxgBYVZnAql+BJb4RO5ad2MgpbZKn5G6nMnegrH1FcNYQ==", + "license": "MIT", + "dependencies": { + "inherits": "^2.0.1", + "obuf": "^1.0.0", + "readable-stream": "^2.0.1", + "wbuf": "^1.1.0" + } + }, + "node_modules/hpack.js/node_modules/isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", + "license": "MIT" + }, + "node_modules/hpack.js/node_modules/readable-stream": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", + "license": "MIT", + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "node_modules/hpack.js/node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "license": "MIT" + }, + "node_modules/hpack.js/node_modules/string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "license": "MIT", + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, + "node_modules/html-encoding-sniffer": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-2.0.1.tgz", + "integrity": "sha512-D5JbOMBIR/TVZkubHT+OyT2705QvogUW4IBn6nHd756OwieSF9aDYFj4dv6HHEVGYbHaLETa3WggZYWWMyy3ZQ==", + "license": "MIT", + "dependencies": { + "whatwg-encoding": "^1.0.5" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/html-entities": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/html-entities/-/html-entities-2.5.2.tgz", + "integrity": "sha512-K//PSRMQk4FZ78Kyau+mZurHn3FH0Vwr+H36eE0rPbeYkRRi9YxceYPhuN60UwWorxyKHhqoAJl2OFKa4BVtaA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/mdevils" + }, + { + "type": "patreon", + "url": "https://patreon.com/mdevils" + } + ], + "license": "MIT" + }, + "node_modules/html-escaper": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz", + "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==", + "license": "MIT" + }, + "node_modules/html-minifier-terser": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/html-minifier-terser/-/html-minifier-terser-6.1.0.tgz", + "integrity": "sha512-YXxSlJBZTP7RS3tWnQw74ooKa6L9b9i9QYXY21eUEvhZ3u9XLfv6OnFsQq6RxkhHygsaUMvYsZRV5rU/OVNZxw==", + "license": "MIT", + "dependencies": { + "camel-case": "^4.1.2", + "clean-css": "^5.2.2", + "commander": "^8.3.0", + "he": "^1.2.0", + "param-case": "^3.0.4", + "relateurl": "^0.2.7", + "terser": "^5.10.0" + }, + "bin": { + "html-minifier-terser": "cli.js" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/html-webpack-plugin": { + "version": "5.6.3", + "resolved": "https://registry.npmjs.org/html-webpack-plugin/-/html-webpack-plugin-5.6.3.tgz", + "integrity": "sha512-QSf1yjtSAsmf7rYBV7XX86uua4W/vkhIt0xNXKbsi2foEeW7vjJQz4bhnpL3xH+l1ryl1680uNv968Z+X6jSYg==", + "license": "MIT", + "dependencies": { + "@types/html-minifier-terser": "^6.0.0", + "html-minifier-terser": "^6.0.2", + "lodash": "^4.17.21", + "pretty-error": "^4.0.0", + "tapable": "^2.0.0" + }, + "engines": { + "node": ">=10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/html-webpack-plugin" + }, + "peerDependencies": { + "@rspack/core": "0.x || 1.x", + "webpack": "^5.20.0" + }, + "peerDependenciesMeta": { + "@rspack/core": { + "optional": true + }, + "webpack": { + "optional": true + } + } + }, + "node_modules/htmlparser2": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-6.1.0.tgz", + "integrity": "sha512-gyyPk6rgonLFEDGoeRgQNaEUvdJ4ktTmmUh/h2t7s+M8oPpIPxgNACWa+6ESR57kXstwqPiCut0V8NRpcwgU7A==", + "funding": [ + "https://github.com/fb55/htmlparser2?sponsor=1", + { + "type": "github", + "url": "https://github.com/sponsors/fb55" + } + ], + "license": "MIT", + "dependencies": { + "domelementtype": "^2.0.1", + "domhandler": "^4.0.0", + "domutils": "^2.5.2", + "entities": "^2.0.0" + } + }, + "node_modules/http-deceiver": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/http-deceiver/-/http-deceiver-1.2.7.tgz", + "integrity": "sha512-LmpOGxTfbpgtGVxJrj5k7asXHCgNZp5nLfp+hWc8QQRqtb7fUy6kRY3BO1h9ddF6yIPYUARgxGOwB42DnxIaNw==", + "license": "MIT" + }, + "node_modules/http-errors": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz", + "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==", + "license": "MIT", + "dependencies": { + "depd": "2.0.0", + "inherits": "2.0.4", + "setprototypeof": "1.2.0", + "statuses": "2.0.1", + "toidentifier": "1.0.1" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/http-parser-js": { + "version": "0.5.8", + "resolved": "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.5.8.tgz", + "integrity": "sha512-SGeBX54F94Wgu5RH3X5jsDtf4eHyRogWX1XGT3b4HuW3tQPM4AaBzoUji/4AAJNXCEOWZ5O0DgZmJw1947gD5Q==", + "license": "MIT" + }, + "node_modules/http-proxy": { + "version": "1.18.1", + "resolved": "https://registry.npmjs.org/http-proxy/-/http-proxy-1.18.1.tgz", + "integrity": "sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ==", + "license": "MIT", + "dependencies": { + "eventemitter3": "^4.0.0", + "follow-redirects": "^1.0.0", + "requires-port": "^1.0.0" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/http-proxy-agent": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-4.0.1.tgz", + "integrity": "sha512-k0zdNgqWTGA6aeIRVpvfVob4fL52dTfaehylg0Y4UvSySvOq/Y+BOyPrgpUrA7HylqvU8vIZGsRuXmspskV0Tg==", + "license": "MIT", + "dependencies": { + "@tootallnate/once": "1", + "agent-base": "6", + "debug": "4" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/http-proxy-middleware": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/http-proxy-middleware/-/http-proxy-middleware-2.0.7.tgz", + "integrity": "sha512-fgVY8AV7qU7z/MmXJ/rxwbrtQH4jBQ9m7kp3llF0liB7glmFeVZFBepQb32T3y8n8k2+AEYuMPCpinYW+/CuRA==", + "license": "MIT", + "dependencies": { + "@types/http-proxy": "^1.17.8", + "http-proxy": "^1.18.1", + "is-glob": "^4.0.1", + "is-plain-obj": "^3.0.0", + "micromatch": "^4.0.2" + }, + "engines": { + "node": ">=12.0.0" + }, + "peerDependencies": { + "@types/express": "^4.17.13" + }, + "peerDependenciesMeta": { + "@types/express": { + "optional": true + } + } + }, + "node_modules/https-proxy-agent": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz", + "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==", + "license": "MIT", + "dependencies": { + "agent-base": "6", + "debug": "4" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/human-signals": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", + "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", + "license": "Apache-2.0", + "engines": { + "node": ">=10.17.0" + } + }, + "node_modules/iconv-lite": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", + "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", + "license": "MIT", + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/icss-utils": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/icss-utils/-/icss-utils-5.1.0.tgz", + "integrity": "sha512-soFhflCVWLfRNOPU3iv5Z9VUdT44xFRbzjLsEzSr5AQmgqPMTHdU3PMT1Cf1ssx8fLNJDA1juftYl+PUcv3MqA==", + "license": "ISC", + "engines": { + "node": "^10 || ^12 || >= 14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/idb": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/idb/-/idb-7.1.1.tgz", + "integrity": "sha512-gchesWBzyvGHRO9W8tzUWFDycow5gwjvFKfyV9FF32Y7F50yZMp7mP+T2mJIWFx49zicqyC4uefHM17o6xKIVQ==", + "license": "ISC" + }, + "node_modules/identity-obj-proxy": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/identity-obj-proxy/-/identity-obj-proxy-3.0.0.tgz", + "integrity": "sha512-00n6YnVHKrinT9t0d9+5yZC6UBNJANpYEQvL2LlX6Ab9lnmxzIRcEmTPuyGScvl1+jKuCICX1Z0Ab1pPKKdikA==", + "license": "MIT", + "dependencies": { + "harmony-reflect": "^1.4.6" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/ignore": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.2.tgz", + "integrity": "sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==", + "license": "MIT", + "engines": { + "node": ">= 4" + } + }, + "node_modules/immer": { + "version": "9.0.21", + "resolved": "https://registry.npmjs.org/immer/-/immer-9.0.21.tgz", + "integrity": "sha512-bc4NBHqOqSfRW7POMkHd51LvClaeMXpm8dx0e8oE2GORbq5aRK7Bxl4FyzVLdGtLmvLKL7BTDBG5ACQm4HWjTA==", + "license": "MIT", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/immer" + } + }, + "node_modules/import-fresh": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", + "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", + "license": "MIT", + "dependencies": { + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/import-fresh/node_modules/resolve-from": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/import-local": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/import-local/-/import-local-3.2.0.tgz", + "integrity": "sha512-2SPlun1JUPWoM6t3F0dw0FkCF/jWY8kttcY4f599GLTSjh2OCuuhdTkJQsEcZzBqbXZGKMK2OqW1oZsjtf/gQA==", + "license": "MIT", + "dependencies": { + "pkg-dir": "^4.2.0", + "resolve-cwd": "^3.0.0" + }, + "bin": { + "import-local-fixture": "fixtures/cli.js" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", + "license": "MIT", + "engines": { + "node": ">=0.8.19" + } + }, + "node_modules/indent-string": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", + "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", + "deprecated": "This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful.", + "license": "ISC", + "dependencies": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "license": "ISC" + }, + "node_modules/ini": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", + "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==", + "license": "ISC" + }, + "node_modules/internal-slot": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.7.tgz", + "integrity": "sha512-NGnrKwXzSms2qUUih/ILZ5JBqNTSa1+ZmP6flaIp6KmSElgE9qdndzS3cqjrDovwFdmwsGsLdeFgB6suw+1e9g==", + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "hasown": "^2.0.0", + "side-channel": "^1.0.4" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/invariant": { + "version": "2.2.4", + "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz", + "integrity": "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==", + "license": "MIT", + "dependencies": { + "loose-envify": "^1.0.0" + } + }, + "node_modules/ipaddr.js": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-2.2.0.tgz", + "integrity": "sha512-Ag3wB2o37wslZS19hZqorUnrnzSkpOVy+IiiDEiTqNubEYpYuHWIf6K4psgN2ZWKExS4xhVCrRVfb/wfW8fWJA==", + "license": "MIT", + "engines": { + "node": ">= 10" + } + }, + "node_modules/is-arguments": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.1.1.tgz", + "integrity": "sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA==", + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-array-buffer": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.4.tgz", + "integrity": "sha512-wcjaerHw0ydZwfhiKbXJWLDY8A7yV7KhjQOpb83hGgGfId/aQa4TOvwyzn2PuswW2gPCYEL/nEAiSVpdOj1lXw==", + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.2.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-arrayish": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==", + "license": "MIT" + }, + "node_modules/is-async-function": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-async-function/-/is-async-function-2.0.0.tgz", + "integrity": "sha512-Y1JXKrfykRJGdlDwdKlLpLyMIiWqWvuSd17TvZk68PLAOGOoF4Xyav1z0Xhoi+gCYjZVeC5SI+hYFOfvXmGRCA==", + "license": "MIT", + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-bigint": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz", + "integrity": "sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==", + "license": "MIT", + "dependencies": { + "has-bigints": "^1.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "license": "MIT", + "dependencies": { + "binary-extensions": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-boolean-object": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz", + "integrity": "sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==", + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-callable": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz", + "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-core-module": { + "version": "2.15.1", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.15.1.tgz", + "integrity": "sha512-z0vtXSwucUJtANQWldhbtbt7BnL0vxiFjIdDLAatwhDYty2bad6s+rijD6Ri4YuYJubLzIJLUidCh09e1djEVQ==", + "license": "MIT", + "dependencies": { + "hasown": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-data-view": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-data-view/-/is-data-view-1.0.1.tgz", + "integrity": "sha512-AHkaJrsUVW6wq6JS8y3JnM/GJF/9cf+k20+iDzlSaJrinEo5+7vRiteOSwBhHRiAyQATN1AmY4hwzxJKPmYf+w==", + "license": "MIT", + "dependencies": { + "is-typed-array": "^1.1.13" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-date-object": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz", + "integrity": "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==", + "license": "MIT", + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-docker": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.2.1.tgz", + "integrity": "sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==", + "license": "MIT", + "bin": { + "is-docker": "cli.js" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-finalizationregistry": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-finalizationregistry/-/is-finalizationregistry-1.1.0.tgz", + "integrity": "sha512-qfMdqbAQEwBw78ZyReKnlA8ezmPdb9BemzIIip/JkjaZUhitfXDkkr+3QTboW0JrSXT1QWyYShpvnNHGZ4c4yA==", + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/is-generator-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-generator-fn/-/is-generator-fn-2.1.0.tgz", + "integrity": "sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/is-generator-function": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.0.10.tgz", + "integrity": "sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A==", + "license": "MIT", + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "license": "MIT", + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-map": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/is-map/-/is-map-2.0.3.tgz", + "integrity": "sha512-1Qed0/Hr2m+YqxnM09CjA2d/i6YZNfF6R2oRAOj36eUdS6qIV/huPJNSEpKbupewFs+ZsJlxsjjPbc0/afW6Lw==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-module": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-module/-/is-module-1.0.0.tgz", + "integrity": "sha512-51ypPSPCoTEIN9dy5Oy+h4pShgJmPCygKfyRCISBI+JoWT/2oJvK8QPxmwv7b/p239jXrm9M1mlQbyKJ5A152g==", + "license": "MIT" + }, + "node_modules/is-negative-zero": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.3.tgz", + "integrity": "sha512-5KoIu2Ngpyek75jXodFvnafB6DJgr3u8uuK0LEZJjrU19DrMD3EVERaR8sjz8CCGgpZvxPl9SuE1GMVPFHx1mw==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "license": "MIT", + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/is-number-object": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.7.tgz", + "integrity": "sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==", + "license": "MIT", + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-obj": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-1.0.1.tgz", + "integrity": "sha512-l4RyHgRqGN4Y3+9JHVrNqO+tN0rV5My76uW5/nuO4K1b6vw5G8d/cmFjP9tRfEsdhZNt0IFdZuK/c2Vr4Nb+Qg==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-path-inside": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", + "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/is-plain-obj": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-3.0.0.tgz", + "integrity": "sha512-gwsOE28k+23GP1B6vFl1oVh/WOzmawBrKwo5Ev6wMKzPkaXaCDIQKzLnvsA42DRlbVTWorkgTKIviAKCWkfUwA==", + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-potential-custom-element-name": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.1.tgz", + "integrity": "sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ==", + "license": "MIT" + }, + "node_modules/is-regex": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", + "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==", + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-regexp": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-regexp/-/is-regexp-1.0.0.tgz", + "integrity": "sha512-7zjFAPO4/gwyQAAgRRmqeEeyIICSdmCqa3tsVHMdBzaXXRiqopZL4Cyghg/XulGWrtABTpbnYYzzIRffLkP4oA==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-root": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-root/-/is-root-2.1.0.tgz", + "integrity": "sha512-AGOriNp96vNBd3HtU+RzFEc75FfR5ymiYv8E553I71SCeXBiMsVDUtdio1OEFvrPyLIQ9tVR5RxXIFe5PUFjMg==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/is-set": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/is-set/-/is-set-2.0.3.tgz", + "integrity": "sha512-iPAjerrse27/ygGLxw+EBR9agv9Y6uLeYVJMu+QNCoouJ1/1ri0mGrcWpfCqFZuzzx3WjtwxG098X+n4OuRkPg==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-shared-array-buffer": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.3.tgz", + "integrity": "sha512-nA2hv5XIhLR3uVzDDfCIknerhx8XUKnstuOERPNNIinXG7v9u+ohXF67vxm4TPTEPU6lm61ZkwP3c9PCB97rhg==", + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-stream": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", + "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", + "license": "MIT", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-string": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz", + "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==", + "license": "MIT", + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-symbol": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz", + "integrity": "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==", + "license": "MIT", + "dependencies": { + "has-symbols": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-typed-array": { + "version": "1.1.13", + "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.13.tgz", + "integrity": "sha512-uZ25/bUAlUY5fR4OKT4rZQEBrzQWYV9ZJYGGsUmEJ6thodVJ1HX64ePQ6Z0qPWP+m+Uq6e9UugrE38jeYsDSMw==", + "license": "MIT", + "dependencies": { + "which-typed-array": "^1.1.14" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-typedarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", + "integrity": "sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==", + "license": "MIT" + }, + "node_modules/is-weakmap": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/is-weakmap/-/is-weakmap-2.0.2.tgz", + "integrity": "sha512-K5pXYOm9wqY1RgjpL3YTkF39tni1XajUIkawTLUo9EZEVUFga5gSQJF8nNS7ZwJQ02y+1YCNYcMh+HIf1ZqE+w==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-weakref": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz", + "integrity": "sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==", + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-weakset": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/is-weakset/-/is-weakset-2.0.3.tgz", + "integrity": "sha512-LvIm3/KWzS9oRFHugab7d+M/GcBXuXX5xZkzPmN+NxihdQlZUQ4dWuSV1xR/sq6upL1TJEDrfBgRepHFdBtSNQ==", + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "get-intrinsic": "^1.2.4" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-wsl": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz", + "integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==", + "license": "MIT", + "dependencies": { + "is-docker": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/isarray": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", + "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==", + "license": "MIT" + }, + "node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", + "license": "ISC" + }, + "node_modules/istanbul-lib-coverage": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.2.tgz", + "integrity": "sha512-O8dpsF+r0WV/8MNRKfnmrtCWhuKjxrq2w+jpzBL5UZKTi2LeVWnWOmWRxFlesJONmc+wLAGvKQZEOanko0LFTg==", + "license": "BSD-3-Clause", + "engines": { + "node": ">=8" + } + }, + "node_modules/istanbul-lib-instrument": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-5.2.1.tgz", + "integrity": "sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg==", + "license": "BSD-3-Clause", + "dependencies": { + "@babel/core": "^7.12.3", + "@babel/parser": "^7.14.7", + "@istanbuljs/schema": "^0.1.2", + "istanbul-lib-coverage": "^3.2.0", + "semver": "^6.3.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/istanbul-lib-instrument/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/istanbul-lib-report": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.1.tgz", + "integrity": "sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw==", + "license": "BSD-3-Clause", + "dependencies": { + "istanbul-lib-coverage": "^3.0.0", + "make-dir": "^4.0.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/istanbul-lib-report/node_modules/make-dir": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-4.0.0.tgz", + "integrity": "sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==", + "license": "MIT", + "dependencies": { + "semver": "^7.5.3" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/istanbul-lib-source-maps": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.1.tgz", + "integrity": "sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==", + "license": "BSD-3-Clause", + "dependencies": { + "debug": "^4.1.1", + "istanbul-lib-coverage": "^3.0.0", + "source-map": "^0.6.1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/istanbul-lib-source-maps/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/istanbul-reports": { + "version": "3.1.7", + "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.7.tgz", + "integrity": "sha512-BewmUXImeuRk2YY0PVbxgKAysvhRPUQE0h5QRM++nVWyubKGV0l8qQ5op8+B2DOmwSe63Jivj0BjkPQVf8fP5g==", + "license": "BSD-3-Clause", + "dependencies": { + "html-escaper": "^2.0.0", + "istanbul-lib-report": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/iterator.prototype": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/iterator.prototype/-/iterator.prototype-1.1.3.tgz", + "integrity": "sha512-FW5iMbeQ6rBGm/oKgzq2aW4KvAGpxPzYES8N4g4xNXUKpL1mclMvOe+76AcLDTvD+Ze+sOpVhgdAQEKF4L9iGQ==", + "license": "MIT", + "dependencies": { + "define-properties": "^1.2.1", + "get-intrinsic": "^1.2.1", + "has-symbols": "^1.0.3", + "reflect.getprototypeof": "^1.0.4", + "set-function-name": "^2.0.1" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/jackspeak": { + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-3.4.3.tgz", + "integrity": "sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==", + "license": "BlueOak-1.0.0", + "dependencies": { + "@isaacs/cliui": "^8.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + }, + "optionalDependencies": { + "@pkgjs/parseargs": "^0.11.0" + } + }, + "node_modules/jake": { + "version": "10.9.2", + "resolved": "https://registry.npmjs.org/jake/-/jake-10.9.2.tgz", + "integrity": "sha512-2P4SQ0HrLQ+fw6llpLnOaGAvN2Zu6778SJMrCUwns4fOoG9ayrTiZk3VV8sCPkVZF8ab0zksVpS8FDY5pRCNBA==", + "license": "Apache-2.0", + "dependencies": { + "async": "^3.2.3", + "chalk": "^4.0.2", + "filelist": "^1.0.4", + "minimatch": "^3.1.2" + }, + "bin": { + "jake": "bin/cli.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/jest": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest/-/jest-27.5.1.tgz", + "integrity": "sha512-Yn0mADZB89zTtjkPJEXwrac3LHudkQMR+Paqa8uxJHCBr9agxztUifWCyiYrjhMPBoUVBjyny0I7XH6ozDr7QQ==", + "license": "MIT", + "dependencies": { + "@jest/core": "^27.5.1", + "import-local": "^3.0.2", + "jest-cli": "^27.5.1" + }, + "bin": { + "jest": "bin/jest.js" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + }, + "peerDependencies": { + "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" + }, + "peerDependenciesMeta": { + "node-notifier": { + "optional": true + } + } + }, + "node_modules/jest-changed-files": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-27.5.1.tgz", + "integrity": "sha512-buBLMiByfWGCoMsLLzGUUSpAmIAGnbR2KJoMN10ziLhOLvP4e0SlypHnAel8iqQXTrcbmfEY9sSqae5sgUsTvw==", + "license": "MIT", + "dependencies": { + "@jest/types": "^27.5.1", + "execa": "^5.0.0", + "throat": "^6.0.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-changed-files/node_modules/@jest/types": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-27.5.1.tgz", + "integrity": "sha512-Cx46iJ9QpwQTjIdq5VJu2QTMMs3QlEjI0x1QbBP5W1+nMzyc2XmimiRR/CbX9TO0cPTeUlxWMOu8mslYsJ8DEw==", + "license": "MIT", + "dependencies": { + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^3.0.0", + "@types/node": "*", + "@types/yargs": "^16.0.0", + "chalk": "^4.0.0" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-changed-files/node_modules/@types/yargs": { + "version": "16.0.9", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-16.0.9.tgz", + "integrity": "sha512-tHhzvkFXZQeTECenFoRljLBYPZJ7jAVxqqtEI0qTLOmuultnFp4I9yKE17vTuhf7BkhCu7I4XuemPgikDVuYqA==", + "license": "MIT", + "dependencies": { + "@types/yargs-parser": "*" + } + }, + "node_modules/jest-circus": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-circus/-/jest-circus-27.5.1.tgz", + "integrity": "sha512-D95R7x5UtlMA5iBYsOHFFbMD/GVA4R/Kdq15f7xYWUfWHBto9NYRsOvnSauTgdF+ogCpJ4tyKOXhUifxS65gdw==", + "license": "MIT", + "dependencies": { + "@jest/environment": "^27.5.1", + "@jest/test-result": "^27.5.1", + "@jest/types": "^27.5.1", + "@types/node": "*", + "chalk": "^4.0.0", + "co": "^4.6.0", + "dedent": "^0.7.0", + "expect": "^27.5.1", + "is-generator-fn": "^2.0.0", + "jest-each": "^27.5.1", + "jest-matcher-utils": "^27.5.1", + "jest-message-util": "^27.5.1", + "jest-runtime": "^27.5.1", + "jest-snapshot": "^27.5.1", + "jest-util": "^27.5.1", + "pretty-format": "^27.5.1", + "slash": "^3.0.0", + "stack-utils": "^2.0.3", + "throat": "^6.0.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-circus/node_modules/@jest/types": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-27.5.1.tgz", + "integrity": "sha512-Cx46iJ9QpwQTjIdq5VJu2QTMMs3QlEjI0x1QbBP5W1+nMzyc2XmimiRR/CbX9TO0cPTeUlxWMOu8mslYsJ8DEw==", + "license": "MIT", + "dependencies": { + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^3.0.0", + "@types/node": "*", + "@types/yargs": "^16.0.0", + "chalk": "^4.0.0" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-circus/node_modules/@types/yargs": { + "version": "16.0.9", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-16.0.9.tgz", + "integrity": "sha512-tHhzvkFXZQeTECenFoRljLBYPZJ7jAVxqqtEI0qTLOmuultnFp4I9yKE17vTuhf7BkhCu7I4XuemPgikDVuYqA==", + "license": "MIT", + "dependencies": { + "@types/yargs-parser": "*" + } + }, + "node_modules/jest-circus/node_modules/diff-sequences": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-27.5.1.tgz", + "integrity": "sha512-k1gCAXAsNgLwEL+Y8Wvl+M6oEFj5bgazfZULpS5CneoPPXRaCCW7dm+q21Ky2VEE5X+VeRDBVg1Pcvvsr4TtNQ==", + "license": "MIT", + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-circus/node_modules/expect": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/expect/-/expect-27.5.1.tgz", + "integrity": "sha512-E1q5hSUG2AmYQwQJ041nvgpkODHQvB+RKlB4IYdru6uJsyFTRyZAP463M+1lINorwbqAmUggi6+WwkD8lCS/Dw==", + "license": "MIT", + "dependencies": { + "@jest/types": "^27.5.1", + "jest-get-type": "^27.5.1", + "jest-matcher-utils": "^27.5.1", + "jest-message-util": "^27.5.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-circus/node_modules/jest-diff": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-27.5.1.tgz", + "integrity": "sha512-m0NvkX55LDt9T4mctTEgnZk3fmEg3NRYutvMPWM/0iPnkFj2wIeF45O1718cMSOFO1vINkqmxqD8vE37uTEbqw==", + "license": "MIT", + "dependencies": { + "chalk": "^4.0.0", + "diff-sequences": "^27.5.1", + "jest-get-type": "^27.5.1", + "pretty-format": "^27.5.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-circus/node_modules/jest-get-type": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-27.5.1.tgz", + "integrity": "sha512-2KY95ksYSaK7DMBWQn6dQz3kqAf3BB64y2udeG+hv4KfSOb9qwcYQstTJc1KCbsix+wLZWZYN8t7nwX3GOBLRw==", + "license": "MIT", + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-circus/node_modules/jest-matcher-utils": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-27.5.1.tgz", + "integrity": "sha512-z2uTx/T6LBaCoNWNFWwChLBKYxTMcGBRjAt+2SbP929/Fflb9aa5LGma654Rz8z9HLxsrUaYzxE9T/EFIL/PAw==", + "license": "MIT", + "dependencies": { + "chalk": "^4.0.0", + "jest-diff": "^27.5.1", + "jest-get-type": "^27.5.1", + "pretty-format": "^27.5.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-circus/node_modules/jest-message-util": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-27.5.1.tgz", + "integrity": "sha512-rMyFe1+jnyAAf+NHwTclDz0eAaLkVDdKVHHBFWsBWHnnh5YeJMNWWsv7AbFYXfK3oTqvL7VTWkhNLu1jX24D+g==", + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.12.13", + "@jest/types": "^27.5.1", + "@types/stack-utils": "^2.0.0", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.9", + "micromatch": "^4.0.4", + "pretty-format": "^27.5.1", + "slash": "^3.0.0", + "stack-utils": "^2.0.3" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-circus/node_modules/jest-util": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-27.5.1.tgz", + "integrity": "sha512-Kv2o/8jNvX1MQ0KGtw480E/w4fBCDOnH6+6DmeKi6LZUIlKA5kwY0YNdlzaWTiVgxqAqik11QyxDOKk543aKXw==", + "license": "MIT", + "dependencies": { + "@jest/types": "^27.5.1", + "@types/node": "*", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "graceful-fs": "^4.2.9", + "picomatch": "^2.2.3" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-cli": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-27.5.1.tgz", + "integrity": "sha512-Hc6HOOwYq4/74/c62dEE3r5elx8wjYqxY0r0G/nFrLDPMFRu6RA/u8qINOIkvhxG7mMQ5EJsOGfRpI8L6eFUVw==", + "license": "MIT", + "dependencies": { + "@jest/core": "^27.5.1", + "@jest/test-result": "^27.5.1", + "@jest/types": "^27.5.1", + "chalk": "^4.0.0", + "exit": "^0.1.2", + "graceful-fs": "^4.2.9", + "import-local": "^3.0.2", + "jest-config": "^27.5.1", + "jest-util": "^27.5.1", + "jest-validate": "^27.5.1", + "prompts": "^2.0.1", + "yargs": "^16.2.0" + }, + "bin": { + "jest": "bin/jest.js" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + }, + "peerDependencies": { + "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" + }, + "peerDependenciesMeta": { + "node-notifier": { + "optional": true + } + } + }, + "node_modules/jest-cli/node_modules/@jest/types": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-27.5.1.tgz", + "integrity": "sha512-Cx46iJ9QpwQTjIdq5VJu2QTMMs3QlEjI0x1QbBP5W1+nMzyc2XmimiRR/CbX9TO0cPTeUlxWMOu8mslYsJ8DEw==", + "license": "MIT", + "dependencies": { + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^3.0.0", + "@types/node": "*", + "@types/yargs": "^16.0.0", + "chalk": "^4.0.0" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-cli/node_modules/@types/yargs": { + "version": "16.0.9", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-16.0.9.tgz", + "integrity": "sha512-tHhzvkFXZQeTECenFoRljLBYPZJ7jAVxqqtEI0qTLOmuultnFp4I9yKE17vTuhf7BkhCu7I4XuemPgikDVuYqA==", + "license": "MIT", + "dependencies": { + "@types/yargs-parser": "*" + } + }, + "node_modules/jest-cli/node_modules/jest-util": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-27.5.1.tgz", + "integrity": "sha512-Kv2o/8jNvX1MQ0KGtw480E/w4fBCDOnH6+6DmeKi6LZUIlKA5kwY0YNdlzaWTiVgxqAqik11QyxDOKk543aKXw==", + "license": "MIT", + "dependencies": { + "@jest/types": "^27.5.1", + "@types/node": "*", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "graceful-fs": "^4.2.9", + "picomatch": "^2.2.3" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-config": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-27.5.1.tgz", + "integrity": "sha512-5sAsjm6tGdsVbW9ahcChPAFCk4IlkQUknH5AvKjuLTSlcO/wCZKyFdn7Rg0EkC+OGgWODEy2hDpWB1PgzH0JNA==", + "license": "MIT", + "dependencies": { + "@babel/core": "^7.8.0", + "@jest/test-sequencer": "^27.5.1", + "@jest/types": "^27.5.1", + "babel-jest": "^27.5.1", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "deepmerge": "^4.2.2", + "glob": "^7.1.1", + "graceful-fs": "^4.2.9", + "jest-circus": "^27.5.1", + "jest-environment-jsdom": "^27.5.1", + "jest-environment-node": "^27.5.1", + "jest-get-type": "^27.5.1", + "jest-jasmine2": "^27.5.1", + "jest-regex-util": "^27.5.1", + "jest-resolve": "^27.5.1", + "jest-runner": "^27.5.1", + "jest-util": "^27.5.1", + "jest-validate": "^27.5.1", + "micromatch": "^4.0.4", + "parse-json": "^5.2.0", + "pretty-format": "^27.5.1", + "slash": "^3.0.0", + "strip-json-comments": "^3.1.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + }, + "peerDependencies": { + "ts-node": ">=9.0.0" + }, + "peerDependenciesMeta": { + "ts-node": { + "optional": true + } + } + }, + "node_modules/jest-config/node_modules/@jest/types": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-27.5.1.tgz", + "integrity": "sha512-Cx46iJ9QpwQTjIdq5VJu2QTMMs3QlEjI0x1QbBP5W1+nMzyc2XmimiRR/CbX9TO0cPTeUlxWMOu8mslYsJ8DEw==", + "license": "MIT", + "dependencies": { + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^3.0.0", + "@types/node": "*", + "@types/yargs": "^16.0.0", + "chalk": "^4.0.0" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-config/node_modules/@types/yargs": { + "version": "16.0.9", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-16.0.9.tgz", + "integrity": "sha512-tHhzvkFXZQeTECenFoRljLBYPZJ7jAVxqqtEI0qTLOmuultnFp4I9yKE17vTuhf7BkhCu7I4XuemPgikDVuYqA==", + "license": "MIT", + "dependencies": { + "@types/yargs-parser": "*" + } + }, + "node_modules/jest-config/node_modules/jest-get-type": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-27.5.1.tgz", + "integrity": "sha512-2KY95ksYSaK7DMBWQn6dQz3kqAf3BB64y2udeG+hv4KfSOb9qwcYQstTJc1KCbsix+wLZWZYN8t7nwX3GOBLRw==", + "license": "MIT", + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-config/node_modules/jest-util": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-27.5.1.tgz", + "integrity": "sha512-Kv2o/8jNvX1MQ0KGtw480E/w4fBCDOnH6+6DmeKi6LZUIlKA5kwY0YNdlzaWTiVgxqAqik11QyxDOKk543aKXw==", + "license": "MIT", + "dependencies": { + "@jest/types": "^27.5.1", + "@types/node": "*", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "graceful-fs": "^4.2.9", + "picomatch": "^2.2.3" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-diff": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-29.7.0.tgz", + "integrity": "sha512-LMIgiIrhigmPrs03JHpxUh2yISK3vLFPkAodPeo0+BuF7wA2FoQbkEg1u8gBYBThncu7e1oEDUfIXVuTqLRUjw==", + "license": "MIT", + "dependencies": { + "chalk": "^4.0.0", + "diff-sequences": "^29.6.3", + "jest-get-type": "^29.6.3", + "pretty-format": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-diff/node_modules/ansi-styles": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/jest-diff/node_modules/pretty-format": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.7.0.tgz", + "integrity": "sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==", + "license": "MIT", + "dependencies": { + "@jest/schemas": "^29.6.3", + "ansi-styles": "^5.0.0", + "react-is": "^18.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-diff/node_modules/react-is": { + "version": "18.3.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.3.1.tgz", + "integrity": "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==", + "license": "MIT" + }, + "node_modules/jest-docblock": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-27.5.1.tgz", + "integrity": "sha512-rl7hlABeTsRYxKiUfpHrQrG4e2obOiTQWfMEH3PxPjOtdsfLQO4ReWSZaQ7DETm4xu07rl4q/h4zcKXyU0/OzQ==", + "license": "MIT", + "dependencies": { + "detect-newline": "^3.0.0" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-each": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-each/-/jest-each-27.5.1.tgz", + "integrity": "sha512-1Ff6p+FbhT/bXQnEouYy00bkNSY7OUpfIcmdl8vZ31A1UUaurOLPA8a8BbJOF2RDUElwJhmeaV7LnagI+5UwNQ==", + "license": "MIT", + "dependencies": { + "@jest/types": "^27.5.1", + "chalk": "^4.0.0", + "jest-get-type": "^27.5.1", + "jest-util": "^27.5.1", + "pretty-format": "^27.5.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-each/node_modules/@jest/types": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-27.5.1.tgz", + "integrity": "sha512-Cx46iJ9QpwQTjIdq5VJu2QTMMs3QlEjI0x1QbBP5W1+nMzyc2XmimiRR/CbX9TO0cPTeUlxWMOu8mslYsJ8DEw==", + "license": "MIT", + "dependencies": { + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^3.0.0", + "@types/node": "*", + "@types/yargs": "^16.0.0", + "chalk": "^4.0.0" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-each/node_modules/@types/yargs": { + "version": "16.0.9", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-16.0.9.tgz", + "integrity": "sha512-tHhzvkFXZQeTECenFoRljLBYPZJ7jAVxqqtEI0qTLOmuultnFp4I9yKE17vTuhf7BkhCu7I4XuemPgikDVuYqA==", + "license": "MIT", + "dependencies": { + "@types/yargs-parser": "*" + } + }, + "node_modules/jest-each/node_modules/jest-get-type": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-27.5.1.tgz", + "integrity": "sha512-2KY95ksYSaK7DMBWQn6dQz3kqAf3BB64y2udeG+hv4KfSOb9qwcYQstTJc1KCbsix+wLZWZYN8t7nwX3GOBLRw==", + "license": "MIT", + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-each/node_modules/jest-util": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-27.5.1.tgz", + "integrity": "sha512-Kv2o/8jNvX1MQ0KGtw480E/w4fBCDOnH6+6DmeKi6LZUIlKA5kwY0YNdlzaWTiVgxqAqik11QyxDOKk543aKXw==", + "license": "MIT", + "dependencies": { + "@jest/types": "^27.5.1", + "@types/node": "*", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "graceful-fs": "^4.2.9", + "picomatch": "^2.2.3" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-environment-jsdom": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-environment-jsdom/-/jest-environment-jsdom-27.5.1.tgz", + "integrity": "sha512-TFBvkTC1Hnnnrka/fUb56atfDtJ9VMZ94JkjTbggl1PEpwrYtUBKMezB3inLmWqQsXYLcMwNoDQwoBTAvFfsfw==", + "license": "MIT", + "dependencies": { + "@jest/environment": "^27.5.1", + "@jest/fake-timers": "^27.5.1", + "@jest/types": "^27.5.1", + "@types/node": "*", + "jest-mock": "^27.5.1", + "jest-util": "^27.5.1", + "jsdom": "^16.6.0" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-environment-jsdom/node_modules/@jest/types": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-27.5.1.tgz", + "integrity": "sha512-Cx46iJ9QpwQTjIdq5VJu2QTMMs3QlEjI0x1QbBP5W1+nMzyc2XmimiRR/CbX9TO0cPTeUlxWMOu8mslYsJ8DEw==", + "license": "MIT", + "dependencies": { + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^3.0.0", + "@types/node": "*", + "@types/yargs": "^16.0.0", + "chalk": "^4.0.0" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-environment-jsdom/node_modules/@types/yargs": { + "version": "16.0.9", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-16.0.9.tgz", + "integrity": "sha512-tHhzvkFXZQeTECenFoRljLBYPZJ7jAVxqqtEI0qTLOmuultnFp4I9yKE17vTuhf7BkhCu7I4XuemPgikDVuYqA==", + "license": "MIT", + "dependencies": { + "@types/yargs-parser": "*" + } + }, + "node_modules/jest-environment-jsdom/node_modules/jest-util": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-27.5.1.tgz", + "integrity": "sha512-Kv2o/8jNvX1MQ0KGtw480E/w4fBCDOnH6+6DmeKi6LZUIlKA5kwY0YNdlzaWTiVgxqAqik11QyxDOKk543aKXw==", + "license": "MIT", + "dependencies": { + "@jest/types": "^27.5.1", + "@types/node": "*", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "graceful-fs": "^4.2.9", + "picomatch": "^2.2.3" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-environment-node": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-27.5.1.tgz", + "integrity": "sha512-Jt4ZUnxdOsTGwSRAfKEnE6BcwsSPNOijjwifq5sDFSA2kesnXTvNqKHYgM0hDq3549Uf/KzdXNYn4wMZJPlFLw==", + "license": "MIT", + "dependencies": { + "@jest/environment": "^27.5.1", + "@jest/fake-timers": "^27.5.1", + "@jest/types": "^27.5.1", + "@types/node": "*", + "jest-mock": "^27.5.1", + "jest-util": "^27.5.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-environment-node/node_modules/@jest/types": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-27.5.1.tgz", + "integrity": "sha512-Cx46iJ9QpwQTjIdq5VJu2QTMMs3QlEjI0x1QbBP5W1+nMzyc2XmimiRR/CbX9TO0cPTeUlxWMOu8mslYsJ8DEw==", + "license": "MIT", + "dependencies": { + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^3.0.0", + "@types/node": "*", + "@types/yargs": "^16.0.0", + "chalk": "^4.0.0" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-environment-node/node_modules/@types/yargs": { + "version": "16.0.9", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-16.0.9.tgz", + "integrity": "sha512-tHhzvkFXZQeTECenFoRljLBYPZJ7jAVxqqtEI0qTLOmuultnFp4I9yKE17vTuhf7BkhCu7I4XuemPgikDVuYqA==", + "license": "MIT", + "dependencies": { + "@types/yargs-parser": "*" + } + }, + "node_modules/jest-environment-node/node_modules/jest-util": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-27.5.1.tgz", + "integrity": "sha512-Kv2o/8jNvX1MQ0KGtw480E/w4fBCDOnH6+6DmeKi6LZUIlKA5kwY0YNdlzaWTiVgxqAqik11QyxDOKk543aKXw==", + "license": "MIT", + "dependencies": { + "@jest/types": "^27.5.1", + "@types/node": "*", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "graceful-fs": "^4.2.9", + "picomatch": "^2.2.3" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-get-type": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-29.6.3.tgz", + "integrity": "sha512-zrteXnqYxfQh7l5FHyL38jL39di8H8rHoecLH3JNxH3BwOrBsNeabdap5e0I23lD4HHI8W5VFBZqG4Eaq5LNcw==", + "license": "MIT", + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-haste-map": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-27.5.1.tgz", + "integrity": "sha512-7GgkZ4Fw4NFbMSDSpZwXeBiIbx+t/46nJ2QitkOjvwPYyZmqttu2TDSimMHP1EkPOi4xUZAN1doE5Vd25H4Jng==", + "license": "MIT", + "dependencies": { + "@jest/types": "^27.5.1", + "@types/graceful-fs": "^4.1.2", + "@types/node": "*", + "anymatch": "^3.0.3", + "fb-watchman": "^2.0.0", + "graceful-fs": "^4.2.9", + "jest-regex-util": "^27.5.1", + "jest-serializer": "^27.5.1", + "jest-util": "^27.5.1", + "jest-worker": "^27.5.1", + "micromatch": "^4.0.4", + "walker": "^1.0.7" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + }, + "optionalDependencies": { + "fsevents": "^2.3.2" + } + }, + "node_modules/jest-haste-map/node_modules/@jest/types": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-27.5.1.tgz", + "integrity": "sha512-Cx46iJ9QpwQTjIdq5VJu2QTMMs3QlEjI0x1QbBP5W1+nMzyc2XmimiRR/CbX9TO0cPTeUlxWMOu8mslYsJ8DEw==", + "license": "MIT", + "dependencies": { + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^3.0.0", + "@types/node": "*", + "@types/yargs": "^16.0.0", + "chalk": "^4.0.0" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-haste-map/node_modules/@types/yargs": { + "version": "16.0.9", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-16.0.9.tgz", + "integrity": "sha512-tHhzvkFXZQeTECenFoRljLBYPZJ7jAVxqqtEI0qTLOmuultnFp4I9yKE17vTuhf7BkhCu7I4XuemPgikDVuYqA==", + "license": "MIT", + "dependencies": { + "@types/yargs-parser": "*" + } + }, + "node_modules/jest-haste-map/node_modules/jest-util": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-27.5.1.tgz", + "integrity": "sha512-Kv2o/8jNvX1MQ0KGtw480E/w4fBCDOnH6+6DmeKi6LZUIlKA5kwY0YNdlzaWTiVgxqAqik11QyxDOKk543aKXw==", + "license": "MIT", + "dependencies": { + "@jest/types": "^27.5.1", + "@types/node": "*", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "graceful-fs": "^4.2.9", + "picomatch": "^2.2.3" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-jasmine2": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-jasmine2/-/jest-jasmine2-27.5.1.tgz", + "integrity": "sha512-jtq7VVyG8SqAorDpApwiJJImd0V2wv1xzdheGHRGyuT7gZm6gG47QEskOlzsN1PG/6WNaCo5pmwMHDf3AkG2pQ==", + "license": "MIT", + "dependencies": { + "@jest/environment": "^27.5.1", + "@jest/source-map": "^27.5.1", + "@jest/test-result": "^27.5.1", + "@jest/types": "^27.5.1", + "@types/node": "*", + "chalk": "^4.0.0", + "co": "^4.6.0", + "expect": "^27.5.1", + "is-generator-fn": "^2.0.0", + "jest-each": "^27.5.1", + "jest-matcher-utils": "^27.5.1", + "jest-message-util": "^27.5.1", + "jest-runtime": "^27.5.1", + "jest-snapshot": "^27.5.1", + "jest-util": "^27.5.1", + "pretty-format": "^27.5.1", + "throat": "^6.0.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-jasmine2/node_modules/@jest/types": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-27.5.1.tgz", + "integrity": "sha512-Cx46iJ9QpwQTjIdq5VJu2QTMMs3QlEjI0x1QbBP5W1+nMzyc2XmimiRR/CbX9TO0cPTeUlxWMOu8mslYsJ8DEw==", + "license": "MIT", + "dependencies": { + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^3.0.0", + "@types/node": "*", + "@types/yargs": "^16.0.0", + "chalk": "^4.0.0" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-jasmine2/node_modules/@types/yargs": { + "version": "16.0.9", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-16.0.9.tgz", + "integrity": "sha512-tHhzvkFXZQeTECenFoRljLBYPZJ7jAVxqqtEI0qTLOmuultnFp4I9yKE17vTuhf7BkhCu7I4XuemPgikDVuYqA==", + "license": "MIT", + "dependencies": { + "@types/yargs-parser": "*" + } + }, + "node_modules/jest-jasmine2/node_modules/diff-sequences": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-27.5.1.tgz", + "integrity": "sha512-k1gCAXAsNgLwEL+Y8Wvl+M6oEFj5bgazfZULpS5CneoPPXRaCCW7dm+q21Ky2VEE5X+VeRDBVg1Pcvvsr4TtNQ==", + "license": "MIT", + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-jasmine2/node_modules/expect": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/expect/-/expect-27.5.1.tgz", + "integrity": "sha512-E1q5hSUG2AmYQwQJ041nvgpkODHQvB+RKlB4IYdru6uJsyFTRyZAP463M+1lINorwbqAmUggi6+WwkD8lCS/Dw==", + "license": "MIT", + "dependencies": { + "@jest/types": "^27.5.1", + "jest-get-type": "^27.5.1", + "jest-matcher-utils": "^27.5.1", + "jest-message-util": "^27.5.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-jasmine2/node_modules/jest-diff": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-27.5.1.tgz", + "integrity": "sha512-m0NvkX55LDt9T4mctTEgnZk3fmEg3NRYutvMPWM/0iPnkFj2wIeF45O1718cMSOFO1vINkqmxqD8vE37uTEbqw==", + "license": "MIT", + "dependencies": { + "chalk": "^4.0.0", + "diff-sequences": "^27.5.1", + "jest-get-type": "^27.5.1", + "pretty-format": "^27.5.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-jasmine2/node_modules/jest-get-type": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-27.5.1.tgz", + "integrity": "sha512-2KY95ksYSaK7DMBWQn6dQz3kqAf3BB64y2udeG+hv4KfSOb9qwcYQstTJc1KCbsix+wLZWZYN8t7nwX3GOBLRw==", + "license": "MIT", + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-jasmine2/node_modules/jest-matcher-utils": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-27.5.1.tgz", + "integrity": "sha512-z2uTx/T6LBaCoNWNFWwChLBKYxTMcGBRjAt+2SbP929/Fflb9aa5LGma654Rz8z9HLxsrUaYzxE9T/EFIL/PAw==", + "license": "MIT", + "dependencies": { + "chalk": "^4.0.0", + "jest-diff": "^27.5.1", + "jest-get-type": "^27.5.1", + "pretty-format": "^27.5.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-jasmine2/node_modules/jest-message-util": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-27.5.1.tgz", + "integrity": "sha512-rMyFe1+jnyAAf+NHwTclDz0eAaLkVDdKVHHBFWsBWHnnh5YeJMNWWsv7AbFYXfK3oTqvL7VTWkhNLu1jX24D+g==", + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.12.13", + "@jest/types": "^27.5.1", + "@types/stack-utils": "^2.0.0", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.9", + "micromatch": "^4.0.4", + "pretty-format": "^27.5.1", + "slash": "^3.0.0", + "stack-utils": "^2.0.3" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-jasmine2/node_modules/jest-util": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-27.5.1.tgz", + "integrity": "sha512-Kv2o/8jNvX1MQ0KGtw480E/w4fBCDOnH6+6DmeKi6LZUIlKA5kwY0YNdlzaWTiVgxqAqik11QyxDOKk543aKXw==", + "license": "MIT", + "dependencies": { + "@jest/types": "^27.5.1", + "@types/node": "*", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "graceful-fs": "^4.2.9", + "picomatch": "^2.2.3" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-leak-detector": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-27.5.1.tgz", + "integrity": "sha512-POXfWAMvfU6WMUXftV4HolnJfnPOGEu10fscNCA76KBpRRhcMN2c8d3iT2pxQS3HLbA+5X4sOUPzYO2NUyIlHQ==", + "license": "MIT", + "dependencies": { + "jest-get-type": "^27.5.1", + "pretty-format": "^27.5.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-leak-detector/node_modules/jest-get-type": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-27.5.1.tgz", + "integrity": "sha512-2KY95ksYSaK7DMBWQn6dQz3kqAf3BB64y2udeG+hv4KfSOb9qwcYQstTJc1KCbsix+wLZWZYN8t7nwX3GOBLRw==", + "license": "MIT", + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-matcher-utils": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-29.7.0.tgz", + "integrity": "sha512-sBkD+Xi9DtcChsI3L3u0+N0opgPYnCRPtGcQYrgXmR+hmt/fYfWAL0xRXYU8eWOdfuLgBe0YCW3AFtnRLagq/g==", + "license": "MIT", + "dependencies": { + "chalk": "^4.0.0", + "jest-diff": "^29.7.0", + "jest-get-type": "^29.6.3", + "pretty-format": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-matcher-utils/node_modules/ansi-styles": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/jest-matcher-utils/node_modules/pretty-format": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.7.0.tgz", + "integrity": "sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==", + "license": "MIT", + "dependencies": { + "@jest/schemas": "^29.6.3", + "ansi-styles": "^5.0.0", + "react-is": "^18.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-matcher-utils/node_modules/react-is": { + "version": "18.3.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.3.1.tgz", + "integrity": "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==", + "license": "MIT" + }, + "node_modules/jest-message-util": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-29.7.0.tgz", + "integrity": "sha512-GBEV4GRADeP+qtB2+6u61stea8mGcOT4mCtrYISZwfu9/ISHFJ/5zOMXYbpBE9RsS5+Gb63DW4FgmnKJ79Kf6w==", + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.12.13", + "@jest/types": "^29.6.3", + "@types/stack-utils": "^2.0.0", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.9", + "micromatch": "^4.0.4", + "pretty-format": "^29.7.0", + "slash": "^3.0.0", + "stack-utils": "^2.0.3" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-message-util/node_modules/ansi-styles": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/jest-message-util/node_modules/pretty-format": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.7.0.tgz", + "integrity": "sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==", + "license": "MIT", + "dependencies": { + "@jest/schemas": "^29.6.3", + "ansi-styles": "^5.0.0", + "react-is": "^18.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-message-util/node_modules/react-is": { + "version": "18.3.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.3.1.tgz", + "integrity": "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==", + "license": "MIT" + }, + "node_modules/jest-mock": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-27.5.1.tgz", + "integrity": "sha512-K4jKbY1d4ENhbrG2zuPWaQBvDly+iZ2yAW+T1fATN78hc0sInwn7wZB8XtlNnvHug5RMwV897Xm4LqmPM4e2Og==", + "license": "MIT", + "dependencies": { + "@jest/types": "^27.5.1", + "@types/node": "*" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-mock/node_modules/@jest/types": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-27.5.1.tgz", + "integrity": "sha512-Cx46iJ9QpwQTjIdq5VJu2QTMMs3QlEjI0x1QbBP5W1+nMzyc2XmimiRR/CbX9TO0cPTeUlxWMOu8mslYsJ8DEw==", + "license": "MIT", + "dependencies": { + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^3.0.0", + "@types/node": "*", + "@types/yargs": "^16.0.0", + "chalk": "^4.0.0" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-mock/node_modules/@types/yargs": { + "version": "16.0.9", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-16.0.9.tgz", + "integrity": "sha512-tHhzvkFXZQeTECenFoRljLBYPZJ7jAVxqqtEI0qTLOmuultnFp4I9yKE17vTuhf7BkhCu7I4XuemPgikDVuYqA==", + "license": "MIT", + "dependencies": { + "@types/yargs-parser": "*" + } + }, + "node_modules/jest-pnp-resolver": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/jest-pnp-resolver/-/jest-pnp-resolver-1.2.3.tgz", + "integrity": "sha512-+3NpwQEnRoIBtx4fyhblQDPgJI0H1IEIkX7ShLUjPGA7TtUTvI1oiKi3SR4oBR0hQhQR80l4WAe5RrXBwWMA8w==", + "license": "MIT", + "engines": { + "node": ">=6" + }, + "peerDependencies": { + "jest-resolve": "*" + }, + "peerDependenciesMeta": { + "jest-resolve": { + "optional": true + } + } + }, + "node_modules/jest-regex-util": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-27.5.1.tgz", + "integrity": "sha512-4bfKq2zie+x16okqDXjXn9ql2B0dScQu+vcwe4TvFVhkVyuWLqpZrZtXxLLWoXYgn0E87I6r6GRYHF7wFZBUvg==", + "license": "MIT", + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-resolve": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-27.5.1.tgz", + "integrity": "sha512-FFDy8/9E6CV83IMbDpcjOhumAQPDyETnU2KZ1O98DwTnz8AOBsW/Xv3GySr1mOZdItLR+zDZ7I/UdTFbgSOVCw==", + "license": "MIT", + "dependencies": { + "@jest/types": "^27.5.1", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^27.5.1", + "jest-pnp-resolver": "^1.2.2", + "jest-util": "^27.5.1", + "jest-validate": "^27.5.1", + "resolve": "^1.20.0", + "resolve.exports": "^1.1.0", + "slash": "^3.0.0" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-resolve-dependencies": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-27.5.1.tgz", + "integrity": "sha512-QQOOdY4PE39iawDn5rzbIePNigfe5B9Z91GDD1ae/xNDlu9kaat8QQ5EKnNmVWPV54hUdxCVwwj6YMgR2O7IOg==", + "license": "MIT", + "dependencies": { + "@jest/types": "^27.5.1", + "jest-regex-util": "^27.5.1", + "jest-snapshot": "^27.5.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-resolve-dependencies/node_modules/@jest/types": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-27.5.1.tgz", + "integrity": "sha512-Cx46iJ9QpwQTjIdq5VJu2QTMMs3QlEjI0x1QbBP5W1+nMzyc2XmimiRR/CbX9TO0cPTeUlxWMOu8mslYsJ8DEw==", + "license": "MIT", + "dependencies": { + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^3.0.0", + "@types/node": "*", + "@types/yargs": "^16.0.0", + "chalk": "^4.0.0" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-resolve-dependencies/node_modules/@types/yargs": { + "version": "16.0.9", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-16.0.9.tgz", + "integrity": "sha512-tHhzvkFXZQeTECenFoRljLBYPZJ7jAVxqqtEI0qTLOmuultnFp4I9yKE17vTuhf7BkhCu7I4XuemPgikDVuYqA==", + "license": "MIT", + "dependencies": { + "@types/yargs-parser": "*" + } + }, + "node_modules/jest-resolve/node_modules/@jest/types": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-27.5.1.tgz", + "integrity": "sha512-Cx46iJ9QpwQTjIdq5VJu2QTMMs3QlEjI0x1QbBP5W1+nMzyc2XmimiRR/CbX9TO0cPTeUlxWMOu8mslYsJ8DEw==", + "license": "MIT", + "dependencies": { + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^3.0.0", + "@types/node": "*", + "@types/yargs": "^16.0.0", + "chalk": "^4.0.0" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-resolve/node_modules/@types/yargs": { + "version": "16.0.9", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-16.0.9.tgz", + "integrity": "sha512-tHhzvkFXZQeTECenFoRljLBYPZJ7jAVxqqtEI0qTLOmuultnFp4I9yKE17vTuhf7BkhCu7I4XuemPgikDVuYqA==", + "license": "MIT", + "dependencies": { + "@types/yargs-parser": "*" + } + }, + "node_modules/jest-resolve/node_modules/jest-util": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-27.5.1.tgz", + "integrity": "sha512-Kv2o/8jNvX1MQ0KGtw480E/w4fBCDOnH6+6DmeKi6LZUIlKA5kwY0YNdlzaWTiVgxqAqik11QyxDOKk543aKXw==", + "license": "MIT", + "dependencies": { + "@jest/types": "^27.5.1", + "@types/node": "*", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "graceful-fs": "^4.2.9", + "picomatch": "^2.2.3" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-runner": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-27.5.1.tgz", + "integrity": "sha512-g4NPsM4mFCOwFKXO4p/H/kWGdJp9V8kURY2lX8Me2drgXqG7rrZAx5kv+5H7wtt/cdFIjhqYx1HrlqWHaOvDaQ==", + "license": "MIT", + "dependencies": { + "@jest/console": "^27.5.1", + "@jest/environment": "^27.5.1", + "@jest/test-result": "^27.5.1", + "@jest/transform": "^27.5.1", + "@jest/types": "^27.5.1", + "@types/node": "*", + "chalk": "^4.0.0", + "emittery": "^0.8.1", + "graceful-fs": "^4.2.9", + "jest-docblock": "^27.5.1", + "jest-environment-jsdom": "^27.5.1", + "jest-environment-node": "^27.5.1", + "jest-haste-map": "^27.5.1", + "jest-leak-detector": "^27.5.1", + "jest-message-util": "^27.5.1", + "jest-resolve": "^27.5.1", + "jest-runtime": "^27.5.1", + "jest-util": "^27.5.1", + "jest-worker": "^27.5.1", + "source-map-support": "^0.5.6", + "throat": "^6.0.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-runner/node_modules/@jest/types": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-27.5.1.tgz", + "integrity": "sha512-Cx46iJ9QpwQTjIdq5VJu2QTMMs3QlEjI0x1QbBP5W1+nMzyc2XmimiRR/CbX9TO0cPTeUlxWMOu8mslYsJ8DEw==", + "license": "MIT", + "dependencies": { + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^3.0.0", + "@types/node": "*", + "@types/yargs": "^16.0.0", + "chalk": "^4.0.0" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-runner/node_modules/@types/yargs": { + "version": "16.0.9", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-16.0.9.tgz", + "integrity": "sha512-tHhzvkFXZQeTECenFoRljLBYPZJ7jAVxqqtEI0qTLOmuultnFp4I9yKE17vTuhf7BkhCu7I4XuemPgikDVuYqA==", + "license": "MIT", + "dependencies": { + "@types/yargs-parser": "*" + } + }, + "node_modules/jest-runner/node_modules/jest-message-util": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-27.5.1.tgz", + "integrity": "sha512-rMyFe1+jnyAAf+NHwTclDz0eAaLkVDdKVHHBFWsBWHnnh5YeJMNWWsv7AbFYXfK3oTqvL7VTWkhNLu1jX24D+g==", + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.12.13", + "@jest/types": "^27.5.1", + "@types/stack-utils": "^2.0.0", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.9", + "micromatch": "^4.0.4", + "pretty-format": "^27.5.1", + "slash": "^3.0.0", + "stack-utils": "^2.0.3" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-runner/node_modules/jest-util": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-27.5.1.tgz", + "integrity": "sha512-Kv2o/8jNvX1MQ0KGtw480E/w4fBCDOnH6+6DmeKi6LZUIlKA5kwY0YNdlzaWTiVgxqAqik11QyxDOKk543aKXw==", + "license": "MIT", + "dependencies": { + "@jest/types": "^27.5.1", + "@types/node": "*", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "graceful-fs": "^4.2.9", + "picomatch": "^2.2.3" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-runtime": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-27.5.1.tgz", + "integrity": "sha512-o7gxw3Gf+H2IGt8fv0RiyE1+r83FJBRruoA+FXrlHw6xEyBsU8ugA6IPfTdVyA0w8HClpbK+DGJxH59UrNMx8A==", + "license": "MIT", + "dependencies": { + "@jest/environment": "^27.5.1", + "@jest/fake-timers": "^27.5.1", + "@jest/globals": "^27.5.1", + "@jest/source-map": "^27.5.1", + "@jest/test-result": "^27.5.1", + "@jest/transform": "^27.5.1", + "@jest/types": "^27.5.1", + "chalk": "^4.0.0", + "cjs-module-lexer": "^1.0.0", + "collect-v8-coverage": "^1.0.0", + "execa": "^5.0.0", + "glob": "^7.1.3", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^27.5.1", + "jest-message-util": "^27.5.1", + "jest-mock": "^27.5.1", + "jest-regex-util": "^27.5.1", + "jest-resolve": "^27.5.1", + "jest-snapshot": "^27.5.1", + "jest-util": "^27.5.1", + "slash": "^3.0.0", + "strip-bom": "^4.0.0" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-runtime/node_modules/@jest/types": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-27.5.1.tgz", + "integrity": "sha512-Cx46iJ9QpwQTjIdq5VJu2QTMMs3QlEjI0x1QbBP5W1+nMzyc2XmimiRR/CbX9TO0cPTeUlxWMOu8mslYsJ8DEw==", + "license": "MIT", + "dependencies": { + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^3.0.0", + "@types/node": "*", + "@types/yargs": "^16.0.0", + "chalk": "^4.0.0" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-runtime/node_modules/@types/yargs": { + "version": "16.0.9", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-16.0.9.tgz", + "integrity": "sha512-tHhzvkFXZQeTECenFoRljLBYPZJ7jAVxqqtEI0qTLOmuultnFp4I9yKE17vTuhf7BkhCu7I4XuemPgikDVuYqA==", + "license": "MIT", + "dependencies": { + "@types/yargs-parser": "*" + } + }, + "node_modules/jest-runtime/node_modules/jest-message-util": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-27.5.1.tgz", + "integrity": "sha512-rMyFe1+jnyAAf+NHwTclDz0eAaLkVDdKVHHBFWsBWHnnh5YeJMNWWsv7AbFYXfK3oTqvL7VTWkhNLu1jX24D+g==", + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.12.13", + "@jest/types": "^27.5.1", + "@types/stack-utils": "^2.0.0", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.9", + "micromatch": "^4.0.4", + "pretty-format": "^27.5.1", + "slash": "^3.0.0", + "stack-utils": "^2.0.3" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-runtime/node_modules/jest-util": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-27.5.1.tgz", + "integrity": "sha512-Kv2o/8jNvX1MQ0KGtw480E/w4fBCDOnH6+6DmeKi6LZUIlKA5kwY0YNdlzaWTiVgxqAqik11QyxDOKk543aKXw==", + "license": "MIT", + "dependencies": { + "@jest/types": "^27.5.1", + "@types/node": "*", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "graceful-fs": "^4.2.9", + "picomatch": "^2.2.3" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-serializer": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-serializer/-/jest-serializer-27.5.1.tgz", + "integrity": "sha512-jZCyo6iIxO1aqUxpuBlwTDMkzOAJS4a3eYz3YzgxxVQFwLeSA7Jfq5cbqCY+JLvTDrWirgusI/0KwxKMgrdf7w==", + "license": "MIT", + "dependencies": { + "@types/node": "*", + "graceful-fs": "^4.2.9" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-snapshot": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-27.5.1.tgz", + "integrity": "sha512-yYykXI5a0I31xX67mgeLw1DZ0bJB+gpq5IpSuCAoyDi0+BhgU/RIrL+RTzDmkNTchvDFWKP8lp+w/42Z3us5sA==", + "license": "MIT", + "dependencies": { + "@babel/core": "^7.7.2", + "@babel/generator": "^7.7.2", + "@babel/plugin-syntax-typescript": "^7.7.2", + "@babel/traverse": "^7.7.2", + "@babel/types": "^7.0.0", + "@jest/transform": "^27.5.1", + "@jest/types": "^27.5.1", + "@types/babel__traverse": "^7.0.4", + "@types/prettier": "^2.1.5", + "babel-preset-current-node-syntax": "^1.0.0", + "chalk": "^4.0.0", + "expect": "^27.5.1", + "graceful-fs": "^4.2.9", + "jest-diff": "^27.5.1", + "jest-get-type": "^27.5.1", + "jest-haste-map": "^27.5.1", + "jest-matcher-utils": "^27.5.1", + "jest-message-util": "^27.5.1", + "jest-util": "^27.5.1", + "natural-compare": "^1.4.0", + "pretty-format": "^27.5.1", + "semver": "^7.3.2" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-snapshot/node_modules/@jest/types": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-27.5.1.tgz", + "integrity": "sha512-Cx46iJ9QpwQTjIdq5VJu2QTMMs3QlEjI0x1QbBP5W1+nMzyc2XmimiRR/CbX9TO0cPTeUlxWMOu8mslYsJ8DEw==", + "license": "MIT", + "dependencies": { + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^3.0.0", + "@types/node": "*", + "@types/yargs": "^16.0.0", + "chalk": "^4.0.0" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-snapshot/node_modules/@types/yargs": { + "version": "16.0.9", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-16.0.9.tgz", + "integrity": "sha512-tHhzvkFXZQeTECenFoRljLBYPZJ7jAVxqqtEI0qTLOmuultnFp4I9yKE17vTuhf7BkhCu7I4XuemPgikDVuYqA==", + "license": "MIT", + "dependencies": { + "@types/yargs-parser": "*" + } + }, + "node_modules/jest-snapshot/node_modules/diff-sequences": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-27.5.1.tgz", + "integrity": "sha512-k1gCAXAsNgLwEL+Y8Wvl+M6oEFj5bgazfZULpS5CneoPPXRaCCW7dm+q21Ky2VEE5X+VeRDBVg1Pcvvsr4TtNQ==", + "license": "MIT", + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-snapshot/node_modules/expect": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/expect/-/expect-27.5.1.tgz", + "integrity": "sha512-E1q5hSUG2AmYQwQJ041nvgpkODHQvB+RKlB4IYdru6uJsyFTRyZAP463M+1lINorwbqAmUggi6+WwkD8lCS/Dw==", + "license": "MIT", + "dependencies": { + "@jest/types": "^27.5.1", + "jest-get-type": "^27.5.1", + "jest-matcher-utils": "^27.5.1", + "jest-message-util": "^27.5.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-snapshot/node_modules/jest-diff": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-27.5.1.tgz", + "integrity": "sha512-m0NvkX55LDt9T4mctTEgnZk3fmEg3NRYutvMPWM/0iPnkFj2wIeF45O1718cMSOFO1vINkqmxqD8vE37uTEbqw==", + "license": "MIT", + "dependencies": { + "chalk": "^4.0.0", + "diff-sequences": "^27.5.1", + "jest-get-type": "^27.5.1", + "pretty-format": "^27.5.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-snapshot/node_modules/jest-get-type": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-27.5.1.tgz", + "integrity": "sha512-2KY95ksYSaK7DMBWQn6dQz3kqAf3BB64y2udeG+hv4KfSOb9qwcYQstTJc1KCbsix+wLZWZYN8t7nwX3GOBLRw==", + "license": "MIT", + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-snapshot/node_modules/jest-matcher-utils": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-27.5.1.tgz", + "integrity": "sha512-z2uTx/T6LBaCoNWNFWwChLBKYxTMcGBRjAt+2SbP929/Fflb9aa5LGma654Rz8z9HLxsrUaYzxE9T/EFIL/PAw==", + "license": "MIT", + "dependencies": { + "chalk": "^4.0.0", + "jest-diff": "^27.5.1", + "jest-get-type": "^27.5.1", + "pretty-format": "^27.5.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-snapshot/node_modules/jest-message-util": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-27.5.1.tgz", + "integrity": "sha512-rMyFe1+jnyAAf+NHwTclDz0eAaLkVDdKVHHBFWsBWHnnh5YeJMNWWsv7AbFYXfK3oTqvL7VTWkhNLu1jX24D+g==", + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.12.13", + "@jest/types": "^27.5.1", + "@types/stack-utils": "^2.0.0", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.9", + "micromatch": "^4.0.4", + "pretty-format": "^27.5.1", + "slash": "^3.0.0", + "stack-utils": "^2.0.3" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-snapshot/node_modules/jest-util": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-27.5.1.tgz", + "integrity": "sha512-Kv2o/8jNvX1MQ0KGtw480E/w4fBCDOnH6+6DmeKi6LZUIlKA5kwY0YNdlzaWTiVgxqAqik11QyxDOKk543aKXw==", + "license": "MIT", + "dependencies": { + "@jest/types": "^27.5.1", + "@types/node": "*", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "graceful-fs": "^4.2.9", + "picomatch": "^2.2.3" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-util": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-29.7.0.tgz", + "integrity": "sha512-z6EbKajIpqGKU56y5KBUgy1dt1ihhQJgWzUlZHArA/+X2ad7Cb5iF+AK1EWVL/Bo7Rz9uurpqw6SiBCefUbCGA==", + "license": "MIT", + "dependencies": { + "@jest/types": "^29.6.3", + "@types/node": "*", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "graceful-fs": "^4.2.9", + "picomatch": "^2.2.3" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-validate": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-27.5.1.tgz", + "integrity": "sha512-thkNli0LYTmOI1tDB3FI1S1RTp/Bqyd9pTarJwL87OIBFuqEb5Apv5EaApEudYg4g86e3CT6kM0RowkhtEnCBQ==", + "license": "MIT", + "dependencies": { + "@jest/types": "^27.5.1", + "camelcase": "^6.2.0", + "chalk": "^4.0.0", + "jest-get-type": "^27.5.1", + "leven": "^3.1.0", + "pretty-format": "^27.5.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-validate/node_modules/@jest/types": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-27.5.1.tgz", + "integrity": "sha512-Cx46iJ9QpwQTjIdq5VJu2QTMMs3QlEjI0x1QbBP5W1+nMzyc2XmimiRR/CbX9TO0cPTeUlxWMOu8mslYsJ8DEw==", + "license": "MIT", + "dependencies": { + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^3.0.0", + "@types/node": "*", + "@types/yargs": "^16.0.0", + "chalk": "^4.0.0" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-validate/node_modules/@types/yargs": { + "version": "16.0.9", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-16.0.9.tgz", + "integrity": "sha512-tHhzvkFXZQeTECenFoRljLBYPZJ7jAVxqqtEI0qTLOmuultnFp4I9yKE17vTuhf7BkhCu7I4XuemPgikDVuYqA==", + "license": "MIT", + "dependencies": { + "@types/yargs-parser": "*" + } + }, + "node_modules/jest-validate/node_modules/jest-get-type": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-27.5.1.tgz", + "integrity": "sha512-2KY95ksYSaK7DMBWQn6dQz3kqAf3BB64y2udeG+hv4KfSOb9qwcYQstTJc1KCbsix+wLZWZYN8t7nwX3GOBLRw==", + "license": "MIT", + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-watch-typeahead": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/jest-watch-typeahead/-/jest-watch-typeahead-1.1.0.tgz", + "integrity": "sha512-Va5nLSJTN7YFtC2jd+7wsoe1pNe5K4ShLux/E5iHEwlB9AxaxmggY7to9KUqKojhaJw3aXqt5WAb4jGPOolpEw==", + "license": "MIT", + "dependencies": { + "ansi-escapes": "^4.3.1", + "chalk": "^4.0.0", + "jest-regex-util": "^28.0.0", + "jest-watcher": "^28.0.0", + "slash": "^4.0.0", + "string-length": "^5.0.1", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "peerDependencies": { + "jest": "^27.0.0 || ^28.0.0" + } + }, + "node_modules/jest-watch-typeahead/node_modules/@jest/console": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/@jest/console/-/console-28.1.3.tgz", + "integrity": "sha512-QPAkP5EwKdK/bxIr6C1I4Vs0rm2nHiANzj/Z5X2JQkrZo6IqvC4ldZ9K95tF0HdidhA8Bo6egxSzUFPYKcEXLw==", + "license": "MIT", + "dependencies": { + "@jest/types": "^28.1.3", + "@types/node": "*", + "chalk": "^4.0.0", + "jest-message-util": "^28.1.3", + "jest-util": "^28.1.3", + "slash": "^3.0.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/jest-watch-typeahead/node_modules/@jest/console/node_modules/slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-watch-typeahead/node_modules/@jest/schemas": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-28.1.3.tgz", + "integrity": "sha512-/l/VWsdt/aBXgjshLWOFyFt3IVdYypu5y2Wn2rOO1un6nkqIn8SLXzgIMYXFyYsRWDyF5EthmKJMIdJvk08grg==", + "license": "MIT", + "dependencies": { + "@sinclair/typebox": "^0.24.1" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/jest-watch-typeahead/node_modules/@jest/test-result": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-28.1.3.tgz", + "integrity": "sha512-kZAkxnSE+FqE8YjW8gNuoVkkC9I7S1qmenl8sGcDOLropASP+BkcGKwhXoyqQuGOGeYY0y/ixjrd/iERpEXHNg==", + "license": "MIT", + "dependencies": { + "@jest/console": "^28.1.3", + "@jest/types": "^28.1.3", + "@types/istanbul-lib-coverage": "^2.0.0", + "collect-v8-coverage": "^1.0.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/jest-watch-typeahead/node_modules/@jest/types": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-28.1.3.tgz", + "integrity": "sha512-RyjiyMUZrKz/c+zlMFO1pm70DcIlST8AeWTkoUdZevew44wcNZQHsEVOiCVtgVnlFFD82FPaXycys58cf2muVQ==", + "license": "MIT", + "dependencies": { + "@jest/schemas": "^28.1.3", + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^3.0.0", + "@types/node": "*", + "@types/yargs": "^17.0.8", + "chalk": "^4.0.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/jest-watch-typeahead/node_modules/@sinclair/typebox": { + "version": "0.24.51", + "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.24.51.tgz", + "integrity": "sha512-1P1OROm/rdubP5aFDSZQILU0vrLCJ4fvHt6EoqHEM+2D/G5MK3bIaymUKLit8Js9gbns5UyJnkP/TZROLw4tUA==", + "license": "MIT" + }, + "node_modules/jest-watch-typeahead/node_modules/ansi-styles": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/jest-watch-typeahead/node_modules/emittery": { + "version": "0.10.2", + "resolved": "https://registry.npmjs.org/emittery/-/emittery-0.10.2.tgz", + "integrity": "sha512-aITqOwnLanpHLNXZJENbOgjUBeHocD+xsSJmNrjovKBW5HbSpW3d1pEls7GFQPUWXiwG9+0P4GtHfEqC/4M0Iw==", + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sindresorhus/emittery?sponsor=1" + } + }, + "node_modules/jest-watch-typeahead/node_modules/jest-message-util": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-28.1.3.tgz", + "integrity": "sha512-PFdn9Iewbt575zKPf1286Ht9EPoJmYT7P0kY+RibeYZ2XtOr53pDLEFoTWXbd1h4JiGiWpTBC84fc8xMXQMb7g==", + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.12.13", + "@jest/types": "^28.1.3", + "@types/stack-utils": "^2.0.0", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.9", + "micromatch": "^4.0.4", + "pretty-format": "^28.1.3", + "slash": "^3.0.0", + "stack-utils": "^2.0.3" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/jest-watch-typeahead/node_modules/jest-message-util/node_modules/slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-watch-typeahead/node_modules/jest-regex-util": { + "version": "28.0.2", + "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-28.0.2.tgz", + "integrity": "sha512-4s0IgyNIy0y9FK+cjoVYoxamT7Zeo7MhzqRGx7YDYmaQn1wucY9rotiGkBzzcMXTtjrCAP/f7f+E0F7+fxPNdw==", + "license": "MIT", + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/jest-watch-typeahead/node_modules/jest-util": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-28.1.3.tgz", + "integrity": "sha512-XdqfpHwpcSRko/C35uLYFM2emRAltIIKZiJ9eAmhjsj0CqZMa0p1ib0R5fWIqGhn1a103DebTbpqIaP1qCQ6tQ==", + "license": "MIT", + "dependencies": { + "@jest/types": "^28.1.3", + "@types/node": "*", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "graceful-fs": "^4.2.9", + "picomatch": "^2.2.3" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/jest-watch-typeahead/node_modules/jest-watcher": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/jest-watcher/-/jest-watcher-28.1.3.tgz", + "integrity": "sha512-t4qcqj9hze+jviFPUN3YAtAEeFnr/azITXQEMARf5cMwKY2SMBRnCQTXLixTl20OR6mLh9KLMrgVJgJISym+1g==", + "license": "MIT", + "dependencies": { + "@jest/test-result": "^28.1.3", + "@jest/types": "^28.1.3", + "@types/node": "*", + "ansi-escapes": "^4.2.1", + "chalk": "^4.0.0", + "emittery": "^0.10.2", + "jest-util": "^28.1.3", + "string-length": "^4.0.1" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/jest-watch-typeahead/node_modules/jest-watcher/node_modules/string-length": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/string-length/-/string-length-4.0.2.tgz", + "integrity": "sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ==", + "license": "MIT", + "dependencies": { + "char-regex": "^1.0.2", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/jest-watch-typeahead/node_modules/jest-watcher/node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "license": "MIT", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-watch-typeahead/node_modules/pretty-format": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-28.1.3.tgz", + "integrity": "sha512-8gFb/To0OmxHR9+ZTb14Df2vNxdGCX8g1xWGUTqUw5TiZvcQf5sHKObd5UcPyLLyowNwDAMTF3XWOG1B6mxl1Q==", + "license": "MIT", + "dependencies": { + "@jest/schemas": "^28.1.3", + "ansi-regex": "^5.0.1", + "ansi-styles": "^5.0.0", + "react-is": "^18.0.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/jest-watch-typeahead/node_modules/react-is": { + "version": "18.3.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.3.1.tgz", + "integrity": "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==", + "license": "MIT" + }, + "node_modules/jest-watch-typeahead/node_modules/slash": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-4.0.0.tgz", + "integrity": "sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew==", + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/jest-watch-typeahead/node_modules/string-length": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/string-length/-/string-length-5.0.1.tgz", + "integrity": "sha512-9Ep08KAMUn0OadnVaBuRdE2l615CQ508kr0XMadjClfYpdCyvrbFp6Taebo8yyxokQ4viUd/xPPUA4FGgUa0ow==", + "license": "MIT", + "dependencies": { + "char-regex": "^2.0.0", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12.20" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/jest-watch-typeahead/node_modules/string-length/node_modules/char-regex": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/char-regex/-/char-regex-2.0.2.tgz", + "integrity": "sha512-cbGOjAptfM2LVmWhwRFHEKTPkLwNddVmuqYZQt895yXwAsWsXObCG+YN4DGQ/JBtT4GP1a1lPPdio2z413LmTg==", + "license": "MIT", + "engines": { + "node": ">=12.20" + } + }, + "node_modules/jest-watch-typeahead/node_modules/strip-ansi": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", + "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", + "license": "MIT", + "dependencies": { + "ansi-regex": "^6.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } + }, + "node_modules/jest-watch-typeahead/node_modules/strip-ansi/node_modules/ansi-regex": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.1.0.tgz", + "integrity": "sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==", + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, + "node_modules/jest-watcher": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-watcher/-/jest-watcher-27.5.1.tgz", + "integrity": "sha512-z676SuD6Z8o8qbmEGhoEUFOM1+jfEiL3DXHK/xgEiG2EyNYfFG60jluWcupY6dATjfEsKQuibReS1djInQnoVw==", + "license": "MIT", + "dependencies": { + "@jest/test-result": "^27.5.1", + "@jest/types": "^27.5.1", + "@types/node": "*", + "ansi-escapes": "^4.2.1", + "chalk": "^4.0.0", + "jest-util": "^27.5.1", + "string-length": "^4.0.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-watcher/node_modules/@jest/types": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-27.5.1.tgz", + "integrity": "sha512-Cx46iJ9QpwQTjIdq5VJu2QTMMs3QlEjI0x1QbBP5W1+nMzyc2XmimiRR/CbX9TO0cPTeUlxWMOu8mslYsJ8DEw==", + "license": "MIT", + "dependencies": { + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^3.0.0", + "@types/node": "*", + "@types/yargs": "^16.0.0", + "chalk": "^4.0.0" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-watcher/node_modules/@types/yargs": { + "version": "16.0.9", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-16.0.9.tgz", + "integrity": "sha512-tHhzvkFXZQeTECenFoRljLBYPZJ7jAVxqqtEI0qTLOmuultnFp4I9yKE17vTuhf7BkhCu7I4XuemPgikDVuYqA==", + "license": "MIT", + "dependencies": { + "@types/yargs-parser": "*" + } + }, + "node_modules/jest-watcher/node_modules/jest-util": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-27.5.1.tgz", + "integrity": "sha512-Kv2o/8jNvX1MQ0KGtw480E/w4fBCDOnH6+6DmeKi6LZUIlKA5kwY0YNdlzaWTiVgxqAqik11QyxDOKk543aKXw==", + "license": "MIT", + "dependencies": { + "@jest/types": "^27.5.1", + "@types/node": "*", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "graceful-fs": "^4.2.9", + "picomatch": "^2.2.3" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-worker": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.5.1.tgz", + "integrity": "sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==", + "license": "MIT", + "dependencies": { + "@types/node": "*", + "merge-stream": "^2.0.0", + "supports-color": "^8.0.0" + }, + "engines": { + "node": ">= 10.13.0" + } + }, + "node_modules/jest-worker/node_modules/supports-color": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/supports-color?sponsor=1" + } + }, + "node_modules/jiti": { + "version": "1.21.6", + "resolved": "https://registry.npmjs.org/jiti/-/jiti-1.21.6.tgz", + "integrity": "sha512-2yTgeWTWzMWkHu6Jp9NKgePDaYHbntiwvYuuJLbbN9vl7DC9DvXKOB2BC3ZZ92D3cvV/aflH0osDfwpHepQ53w==", + "license": "MIT", + "bin": { + "jiti": "bin/jiti.js" + } + }, + "node_modules/js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", + "license": "MIT" + }, + "node_modules/js-yaml": { + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", + "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", + "license": "MIT", + "dependencies": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/jsdom": { + "version": "16.7.0", + "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-16.7.0.tgz", + "integrity": "sha512-u9Smc2G1USStM+s/x1ru5Sxrl6mPYCbByG1U/hUmqaVsm4tbNyS7CicOSRyuGQYZhTu0h84qkZZQ/I+dzizSVw==", + "license": "MIT", + "dependencies": { + "abab": "^2.0.5", + "acorn": "^8.2.4", + "acorn-globals": "^6.0.0", + "cssom": "^0.4.4", + "cssstyle": "^2.3.0", + "data-urls": "^2.0.0", + "decimal.js": "^10.2.1", + "domexception": "^2.0.1", + "escodegen": "^2.0.0", + "form-data": "^3.0.0", + "html-encoding-sniffer": "^2.0.1", + "http-proxy-agent": "^4.0.1", + "https-proxy-agent": "^5.0.0", + "is-potential-custom-element-name": "^1.0.1", + "nwsapi": "^2.2.0", + "parse5": "6.0.1", + "saxes": "^5.0.1", + "symbol-tree": "^3.2.4", + "tough-cookie": "^4.0.0", + "w3c-hr-time": "^1.0.2", + "w3c-xmlserializer": "^2.0.0", + "webidl-conversions": "^6.1.0", + "whatwg-encoding": "^1.0.5", + "whatwg-mimetype": "^2.3.0", + "whatwg-url": "^8.5.0", + "ws": "^7.4.6", + "xml-name-validator": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "canvas": "^2.5.0" + }, + "peerDependenciesMeta": { + "canvas": { + "optional": true + } + } + }, + "node_modules/jsdom/node_modules/form-data": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-3.0.2.tgz", + "integrity": "sha512-sJe+TQb2vIaIyO783qN6BlMYWMw3WBOHA1Ay2qxsnjuafEOQFJ2JakedOQirT6D5XPRxDvS7AHYyem9fTpb4LQ==", + "license": "MIT", + "dependencies": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "mime-types": "^2.1.12" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/jsesc": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-3.0.2.tgz", + "integrity": "sha512-xKqzzWXDttJuOcawBt4KnKHHIf5oQ/Cxax+0PWFG+DFDgHNAdi+TXECADI+RYiFUMmx8792xsMbbgXj4CwnP4g==", + "license": "MIT", + "bin": { + "jsesc": "bin/jsesc" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/json-buffer": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", + "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==", + "license": "MIT" + }, + "node_modules/json-parse-even-better-errors": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", + "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", + "license": "MIT" + }, + "node_modules/json-schema": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.4.0.tgz", + "integrity": "sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA==", + "license": "(AFL-2.1 OR BSD-3-Clause)" + }, + "node_modules/json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "license": "MIT" + }, + "node_modules/json-stable-stringify-without-jsonify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", + "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", + "license": "MIT" + }, + "node_modules/json5": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", + "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", + "license": "MIT", + "bin": { + "json5": "lib/cli.js" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/jsonfile": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", + "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", + "license": "MIT", + "dependencies": { + "universalify": "^2.0.0" + }, + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/jsonpath": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/jsonpath/-/jsonpath-1.1.1.tgz", + "integrity": "sha512-l6Cg7jRpixfbgoWgkrl77dgEj8RPvND0wMH6TwQmi9Qs4TFfS9u5cUFnbeKTwj5ga5Y3BTGGNI28k117LJ009w==", + "license": "MIT", + "dependencies": { + "esprima": "1.2.2", + "static-eval": "2.0.2", + "underscore": "1.12.1" + } + }, + "node_modules/jsonpath/node_modules/esprima": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-1.2.2.tgz", + "integrity": "sha512-+JpPZam9w5DuJ3Q67SqsMGtiHKENSMRVoxvArfJZK01/BfLEObtZ6orJa/MtoGNR/rfMgp5837T41PAmTwAv/A==", + "bin": { + "esparse": "bin/esparse.js", + "esvalidate": "bin/esvalidate.js" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/jsonpointer": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/jsonpointer/-/jsonpointer-5.0.1.tgz", + "integrity": "sha512-p/nXbhSEcu3pZRdkW1OfJhpsVtW1gd4Wa1fnQc9YLiTfAjn0312eMKimbdIQzuZl9aa9xUGaRlP9T/CJE/ditQ==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/jsx-ast-utils": { + "version": "3.3.5", + "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-3.3.5.tgz", + "integrity": "sha512-ZZow9HBI5O6EPgSJLUb8n2NKgmVWTwCvHGwFuJlMjvLFqlGG6pjirPhtdsseaLZjSibD8eegzmYpUZwoIlj2cQ==", + "license": "MIT", + "dependencies": { + "array-includes": "^3.1.6", + "array.prototype.flat": "^1.3.1", + "object.assign": "^4.1.4", + "object.values": "^1.1.6" + }, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/keyv": { + "version": "4.5.4", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz", + "integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==", + "license": "MIT", + "dependencies": { + "json-buffer": "3.0.1" + } + }, + "node_modules/kind-of": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", + "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/kleur": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz", + "integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/klona": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/klona/-/klona-2.0.6.tgz", + "integrity": "sha512-dhG34DXATL5hSxJbIexCft8FChFXtmskoZYnoPWjXQuebWYCNkVeV3KkGegCK9CP1oswI/vQibS2GY7Em/sJJA==", + "license": "MIT", + "engines": { + "node": ">= 8" + } + }, + "node_modules/language-subtag-registry": { + "version": "0.3.23", + "resolved": "https://registry.npmjs.org/language-subtag-registry/-/language-subtag-registry-0.3.23.tgz", + "integrity": "sha512-0K65Lea881pHotoGEa5gDlMxt3pctLi2RplBb7Ezh4rRdLEOtgi7n4EwK9lamnUCkKBqaeKRVebTq6BAxSkpXQ==", + "license": "CC0-1.0" + }, + "node_modules/language-tags": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/language-tags/-/language-tags-1.0.9.tgz", + "integrity": "sha512-MbjN408fEndfiQXbFQ1vnd+1NoLDsnQW41410oQBXiyXDMYH5z505juWa4KUE1LqxRC7DgOgZDbKLxHIwm27hA==", + "license": "MIT", + "dependencies": { + "language-subtag-registry": "^0.3.20" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/launch-editor": { + "version": "2.9.1", + "resolved": "https://registry.npmjs.org/launch-editor/-/launch-editor-2.9.1.tgz", + "integrity": "sha512-Gcnl4Bd+hRO9P9icCP/RVVT2o8SFlPXofuCxvA2SaZuH45whSvf5p8x5oih5ftLiVhEI4sp5xDY+R+b3zJBh5w==", + "license": "MIT", + "dependencies": { + "picocolors": "^1.0.0", + "shell-quote": "^1.8.1" + } + }, + "node_modules/leven": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz", + "integrity": "sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/levn": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", + "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", + "license": "MIT", + "dependencies": { + "prelude-ls": "^1.2.1", + "type-check": "~0.4.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/lilconfig": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-2.1.0.tgz", + "integrity": "sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==", + "license": "MIT", + "engines": { + "node": ">=10" + } + }, + "node_modules/lines-and-columns": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", + "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", + "license": "MIT" + }, + "node_modules/loader-runner": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-4.3.0.tgz", + "integrity": "sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg==", + "license": "MIT", + "engines": { + "node": ">=6.11.5" + } + }, + "node_modules/loader-utils": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.4.tgz", + "integrity": "sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw==", + "license": "MIT", + "dependencies": { + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^2.1.2" + }, + "engines": { + "node": ">=8.9.0" + } + }, + "node_modules/locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "license": "MIT", + "dependencies": { + "p-locate": "^4.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/lodash": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", + "license": "MIT" + }, + "node_modules/lodash.debounce": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz", + "integrity": "sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==", + "license": "MIT" + }, + "node_modules/lodash.memoize": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz", + "integrity": "sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag==", + "license": "MIT" + }, + "node_modules/lodash.merge": { + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", + "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", + "license": "MIT" + }, + "node_modules/lodash.sortby": { + "version": "4.7.0", + "resolved": "https://registry.npmjs.org/lodash.sortby/-/lodash.sortby-4.7.0.tgz", + "integrity": "sha512-HDWXG8isMntAyRF5vZ7xKuEvOhT4AhlRt/3czTSjvGUxjYCBVRQY48ViDHyfYz9VIoBkW4TMGQNapx+l3RUwdA==", + "license": "MIT" + }, + "node_modules/lodash.uniq": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/lodash.uniq/-/lodash.uniq-4.5.0.tgz", + "integrity": "sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ==", + "license": "MIT" + }, + "node_modules/loose-envify": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", + "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", + "license": "MIT", + "dependencies": { + "js-tokens": "^3.0.0 || ^4.0.0" + }, + "bin": { + "loose-envify": "cli.js" + } + }, + "node_modules/lower-case": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-2.0.2.tgz", + "integrity": "sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==", + "license": "MIT", + "dependencies": { + "tslib": "^2.0.3" + } + }, + "node_modules/lru-cache": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", + "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", + "license": "ISC", + "dependencies": { + "yallist": "^3.0.2" + } + }, + "node_modules/lz-string": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/lz-string/-/lz-string-1.5.0.tgz", + "integrity": "sha512-h5bgJWpxJNswbU7qCrV0tIKQCaS3blPDrqKWx+QxzuzL1zGUzij9XCWLrSLsJPu5t+eWA/ycetzYAO5IOMcWAQ==", + "license": "MIT", + "bin": { + "lz-string": "bin/bin.js" + } + }, + "node_modules/magic-string": { + "version": "0.25.9", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.25.9.tgz", + "integrity": "sha512-RmF0AsMzgt25qzqqLc1+MbHmhdx0ojF2Fvs4XnOqz2ZOBXzzkEwc/dJQZCYHAn7v1jbVOjAZfK8msRn4BxO4VQ==", + "license": "MIT", + "dependencies": { + "sourcemap-codec": "^1.4.8" + } + }, + "node_modules/make-dir": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", + "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", + "license": "MIT", + "dependencies": { + "semver": "^6.0.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/make-dir/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/makeerror": { + "version": "1.0.12", + "resolved": "https://registry.npmjs.org/makeerror/-/makeerror-1.0.12.tgz", + "integrity": "sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg==", + "license": "BSD-3-Clause", + "dependencies": { + "tmpl": "1.0.5" + } + }, + "node_modules/mdn-data": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.4.tgz", + "integrity": "sha512-iV3XNKw06j5Q7mi6h+9vbx23Tv7JkjEVgKHW4pimwyDGWm0OIQntJJ+u1C6mg6mK1EaTv42XQ7w76yuzH7M2cA==", + "license": "CC0-1.0" + }, + "node_modules/media-typer": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", + "integrity": "sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/memfs": { + "version": "3.5.3", + "resolved": "https://registry.npmjs.org/memfs/-/memfs-3.5.3.tgz", + "integrity": "sha512-UERzLsxzllchadvbPs5aolHh65ISpKpM+ccLbOJ8/vvpBKmAWf+la7dXFy7Mr0ySHbdHrFv5kGFCUHHe6GFEmw==", + "license": "Unlicense", + "dependencies": { + "fs-monkey": "^1.0.4" + }, + "engines": { + "node": ">= 4.0.0" + } + }, + "node_modules/merge-descriptors": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.3.tgz", + "integrity": "sha512-gaNvAS7TZ897/rVaZ0nMtAyxNyi/pdbjbAwUpFQpN70GqnVfOiXpeUUMKRBmzXaSQ8DdTX4/0ms62r2K+hE6mQ==", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/merge-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", + "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", + "license": "MIT" + }, + "node_modules/merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "license": "MIT", + "engines": { + "node": ">= 8" + } + }, + "node_modules/methods": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", + "integrity": "sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/micromatch": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz", + "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==", + "license": "MIT", + "dependencies": { + "braces": "^3.0.3", + "picomatch": "^2.3.1" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/mime": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", + "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", + "license": "MIT", + "bin": { + "mime": "cli.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/mime-db": { + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mime-types": { + "version": "2.1.35", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "license": "MIT", + "dependencies": { + "mime-db": "1.52.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mimic-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", + "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/min-indent": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/min-indent/-/min-indent-1.0.1.tgz", + "integrity": "sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==", + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/mini-css-extract-plugin": { + "version": "2.9.2", + "resolved": "https://registry.npmjs.org/mini-css-extract-plugin/-/mini-css-extract-plugin-2.9.2.tgz", + "integrity": "sha512-GJuACcS//jtq4kCtd5ii/M0SZf7OZRH+BxdqXZHaJfb8TJiVl+NgQRPwiYt2EuqeSkNydn/7vP+bcE27C5mb9w==", + "license": "MIT", + "dependencies": { + "schema-utils": "^4.0.0", + "tapable": "^2.2.1" + }, + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^5.0.0" + } + }, + "node_modules/minimalistic-assert": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", + "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==", + "license": "ISC" + }, + "node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "license": "ISC", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/minimist": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", + "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/minipass": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz", + "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==", + "license": "ISC", + "engines": { + "node": ">=16 || 14 >=14.17" + } + }, + "node_modules/mkdirp": { + "version": "0.5.6", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", + "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", + "license": "MIT", + "dependencies": { + "minimist": "^1.2.6" + }, + "bin": { + "mkdirp": "bin/cmd.js" + } + }, + "node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "license": "MIT" + }, + "node_modules/multicast-dns": { + "version": "7.2.5", + "resolved": "https://registry.npmjs.org/multicast-dns/-/multicast-dns-7.2.5.tgz", + "integrity": "sha512-2eznPJP8z2BFLX50tf0LuODrpINqP1RVIm/CObbTcBRITQgmC/TjcREF1NeTBzIcR5XO/ukWo+YHOjBbFwIupg==", + "license": "MIT", + "dependencies": { + "dns-packet": "^5.2.2", + "thunky": "^1.0.2" + }, + "bin": { + "multicast-dns": "cli.js" + } + }, + "node_modules/mz": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/mz/-/mz-2.7.0.tgz", + "integrity": "sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==", + "license": "MIT", + "dependencies": { + "any-promise": "^1.0.0", + "object-assign": "^4.0.1", + "thenify-all": "^1.0.0" + } + }, + "node_modules/nanoid": { + "version": "3.3.8", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.8.tgz", + "integrity": "sha512-WNLf5Sd8oZxOm+TzppcYk8gVOgP+l58xNy58D0nbUnOxOWRWvlcCV4kUF7ltmI6PsrLl/BgKEyS4mqsGChFN0w==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "bin": { + "nanoid": "bin/nanoid.cjs" + }, + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + } + }, + "node_modules/natural-compare": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", + "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", + "license": "MIT" + }, + "node_modules/natural-compare-lite": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare-lite/-/natural-compare-lite-1.4.0.tgz", + "integrity": "sha512-Tj+HTDSJJKaZnfiuw+iaF9skdPpTo2GtEly5JHnWV/hfv2Qj/9RKsGISQtLh2ox3l5EAGw487hnBee0sIJ6v2g==", + "license": "MIT" + }, + "node_modules/negotiator": { + "version": "0.6.4", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.4.tgz", + "integrity": "sha512-myRT3DiWPHqho5PrJaIRyaMv2kgYf0mUVgBNOYMuCH5Ki1yEiQaf/ZJuQ62nvpc44wL5WDbTX7yGJi1Neevw8w==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/neo-async": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", + "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==", + "license": "MIT" + }, + "node_modules/no-case": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/no-case/-/no-case-3.0.4.tgz", + "integrity": "sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==", + "license": "MIT", + "dependencies": { + "lower-case": "^2.0.2", + "tslib": "^2.0.3" + } + }, + "node_modules/node-forge": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-1.3.1.tgz", + "integrity": "sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA==", + "license": "(BSD-3-Clause OR GPL-2.0)", + "engines": { + "node": ">= 6.13.0" + } + }, + "node_modules/node-int64": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz", + "integrity": "sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==", + "license": "MIT" + }, + "node_modules/node-releases": { + "version": "2.0.18", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.18.tgz", + "integrity": "sha512-d9VeXT4SJ7ZeOqGX6R5EM022wpL+eWPooLI+5UpWn2jCT1aosUQEhQP214x33Wkwx3JQMvIm+tIoVOdodFS40g==", + "license": "MIT" + }, + "node_modules/normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/normalize-range": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz", + "integrity": "sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/normalize-url": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-6.1.0.tgz", + "integrity": "sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A==", + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/npm-run-path": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", + "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", + "license": "MIT", + "dependencies": { + "path-key": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/nth-check": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.1.1.tgz", + "integrity": "sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==", + "license": "BSD-2-Clause", + "dependencies": { + "boolbase": "^1.0.0" + }, + "funding": { + "url": "https://github.com/fb55/nth-check?sponsor=1" + } + }, + "node_modules/nwsapi": { + "version": "2.2.13", + "resolved": "https://registry.npmjs.org/nwsapi/-/nwsapi-2.2.13.tgz", + "integrity": "sha512-cTGB9ptp9dY9A5VbMSe7fQBcl/tt22Vcqdq8+eN93rblOuE0aCFu4aZ2vMwct/2t+lFnosm8RkQW1I0Omb1UtQ==", + "license": "MIT" + }, + "node_modules/object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-hash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/object-hash/-/object-hash-3.0.0.tgz", + "integrity": "sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==", + "license": "MIT", + "engines": { + "node": ">= 6" + } + }, + "node_modules/object-inspect": { + "version": "1.13.3", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.3.tgz", + "integrity": "sha512-kDCGIbxkDSXE3euJZZXzc6to7fCrKHNI/hSRQnRuQ+BWjFNzZwiFF8fj/6o2t2G9/jTj8PSIYTfCLelLZEeRpA==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object-is": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/object-is/-/object-is-1.1.6.tgz", + "integrity": "sha512-F8cZ+KfGlSGi09lJT7/Nd6KJZ9ygtvYC0/UYYLI9nmQKLMnydpB9yvbv9K1uSkEu7FU9vYPmVwLg328tX+ot3Q==", + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object-keys": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/object.assign": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.5.tgz", + "integrity": "sha512-byy+U7gp+FVwmyzKPYhW2h5l3crpmGsxl7X2s8y43IgxvG4g3QZ6CffDtsNQy1WsmZpQbO+ybo0AlW7TY6DcBQ==", + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.5", + "define-properties": "^1.2.1", + "has-symbols": "^1.0.3", + "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object.entries": { + "version": "1.1.8", + "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.8.tgz", + "integrity": "sha512-cmopxi8VwRIAw/fkijJohSfpef5PdN0pMQJN6VC/ZKvn0LIknWD8KtgY6KlQdEc4tIjcQ3HxSMmnvtzIscdaYQ==", + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/object.fromentries": { + "version": "2.0.8", + "resolved": "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.8.tgz", + "integrity": "sha512-k6E21FzySsSK5a21KRADBd/NGneRegFO5pLHfdQLpRDETUNJueLXs3WCzyQ3tFRDYgbq3KHGXfTbi2bs8WQ6rQ==", + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.2", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object.getownpropertydescriptors": { + "version": "2.1.8", + "resolved": "https://registry.npmjs.org/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.8.tgz", + "integrity": "sha512-qkHIGe4q0lSYMv0XI4SsBTJz3WaURhLvd0lKSgtVuOsJ2krg4SgMw3PIRQFMp07yi++UR3se2mkcLqsBNpBb/A==", + "license": "MIT", + "dependencies": { + "array.prototype.reduce": "^1.0.6", + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.2", + "es-object-atoms": "^1.0.0", + "gopd": "^1.0.1", + "safe-array-concat": "^1.1.2" + }, + "engines": { + "node": ">= 0.8" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object.groupby": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/object.groupby/-/object.groupby-1.0.3.tgz", + "integrity": "sha512-+Lhy3TQTuzXI5hevh8sBGqbmurHbbIjAi0Z4S63nthVLmLxfbj4T54a4CfZrXIrt9iP4mVAPYMo/v99taj3wjQ==", + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/object.values": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.2.0.tgz", + "integrity": "sha512-yBYjY9QX2hnRmZHAjG/f13MzmBzxzYgQhFrke06TTyKY5zSTEqkOeukBzIdVA3j3ulu8Qa3MbVFShV7T2RmGtQ==", + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/obuf": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/obuf/-/obuf-1.1.2.tgz", + "integrity": "sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg==", + "license": "MIT" + }, + "node_modules/on-finished": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz", + "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==", + "license": "MIT", + "dependencies": { + "ee-first": "1.1.1" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/on-headers": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/on-headers/-/on-headers-1.0.2.tgz", + "integrity": "sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "license": "ISC", + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/onetime": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", + "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", + "license": "MIT", + "dependencies": { + "mimic-fn": "^2.1.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/open": { + "version": "8.4.2", + "resolved": "https://registry.npmjs.org/open/-/open-8.4.2.tgz", + "integrity": "sha512-7x81NCL719oNbsq/3mh+hVrAWmFuEYUqrq/Iw3kUzH8ReypT9QQ0BLoJS7/G9k6N81XjW4qHWtjWwe/9eLy1EQ==", + "license": "MIT", + "dependencies": { + "define-lazy-prop": "^2.0.0", + "is-docker": "^2.1.1", + "is-wsl": "^2.2.0" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/optionator": { + "version": "0.9.4", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.4.tgz", + "integrity": "sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==", + "license": "MIT", + "dependencies": { + "deep-is": "^0.1.3", + "fast-levenshtein": "^2.0.6", + "levn": "^0.4.1", + "prelude-ls": "^1.2.1", + "type-check": "^0.4.0", + "word-wrap": "^1.2.5" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "license": "MIT", + "dependencies": { + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "license": "MIT", + "dependencies": { + "p-limit": "^2.2.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/p-retry": { + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/p-retry/-/p-retry-4.6.2.tgz", + "integrity": "sha512-312Id396EbJdvRONlngUx0NydfrIQ5lsYu0znKVUzVvArzEIt08V1qhtyESbGVd1FGX7UKtiFp5uwKZdM8wIuQ==", + "license": "MIT", + "dependencies": { + "@types/retry": "0.12.0", + "retry": "^0.13.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/package-json-from-dist": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/package-json-from-dist/-/package-json-from-dist-1.0.1.tgz", + "integrity": "sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==", + "license": "BlueOak-1.0.0" + }, + "node_modules/param-case": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/param-case/-/param-case-3.0.4.tgz", + "integrity": "sha512-RXlj7zCYokReqWpOPH9oYivUzLYZ5vAPIfEmCTNViosC78F8F0H9y7T7gG2M39ymgutxF5gcFEsyZQSph9Bp3A==", + "license": "MIT", + "dependencies": { + "dot-case": "^3.0.4", + "tslib": "^2.0.3" + } + }, + "node_modules/parent-module": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", + "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", + "license": "MIT", + "dependencies": { + "callsites": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/parse-json": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", + "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.0.0", + "error-ex": "^1.3.1", + "json-parse-even-better-errors": "^2.3.0", + "lines-and-columns": "^1.1.6" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/parse5": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-6.0.1.tgz", + "integrity": "sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==", + "license": "MIT" + }, + "node_modules/parseurl": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", + "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/pascal-case": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/pascal-case/-/pascal-case-3.1.2.tgz", + "integrity": "sha512-uWlGT3YSnK9x3BQJaOdcZwrnV6hPpd8jFH1/ucpiLRPh/2zCVJKS19E4GvYHvaCcACn3foXZ0cLB9Wrx1KGe5g==", + "license": "MIT", + "dependencies": { + "no-case": "^3.0.4", + "tslib": "^2.0.3" + } + }, + "node_modules/path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/path-parse": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", + "license": "MIT" + }, + "node_modules/path-scurry": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.11.1.tgz", + "integrity": "sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==", + "license": "BlueOak-1.0.0", + "dependencies": { + "lru-cache": "^10.2.0", + "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" + }, + "engines": { + "node": ">=16 || 14 >=14.18" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/path-scurry/node_modules/lru-cache": { + "version": "10.4.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz", + "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==", + "license": "ISC" + }, + "node_modules/path-to-regexp": { + "version": "0.1.10", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.10.tgz", + "integrity": "sha512-7lf7qcQidTku0Gu3YDPc8DJ1q7OOucfa/BSsIwjuh56VU7katFvuM8hULfkwB3Fns/rsVF7PwPKVw1sl5KQS9w==", + "license": "MIT" + }, + "node_modules/path-type": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", + "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/performance-now": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", + "integrity": "sha512-7EAHlyLHI56VEIdK57uwHdHKIaAGbnXPiw0yWbarQZOKaKpvUIgW0jWRVLiatnM+XXlSwsanIBH/hzGMJulMow==", + "license": "MIT" + }, + "node_modules/picocolors": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", + "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==", + "license": "ISC" + }, + "node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "license": "MIT", + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/pirates": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.6.tgz", + "integrity": "sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==", + "license": "MIT", + "engines": { + "node": ">= 6" + } + }, + "node_modules/pkg-dir": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", + "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", + "license": "MIT", + "dependencies": { + "find-up": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/pkg-up": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/pkg-up/-/pkg-up-3.1.0.tgz", + "integrity": "sha512-nDywThFk1i4BQK4twPQ6TA4RT8bDY96yeuCVBWL3ePARCiEKDRSrNGbFIgUJpLp+XeIR65v8ra7WuJOFUBtkMA==", + "license": "MIT", + "dependencies": { + "find-up": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/pkg-up/node_modules/find-up": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", + "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", + "license": "MIT", + "dependencies": { + "locate-path": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/pkg-up/node_modules/locate-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", + "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", + "license": "MIT", + "dependencies": { + "p-locate": "^3.0.0", + "path-exists": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/pkg-up/node_modules/p-locate": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", + "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", + "license": "MIT", + "dependencies": { + "p-limit": "^2.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/pkg-up/node_modules/path-exists": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==", + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/possible-typed-array-names": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/possible-typed-array-names/-/possible-typed-array-names-1.0.0.tgz", + "integrity": "sha512-d7Uw+eZoloe0EHDIYoe+bQ5WXnGMOpmiZFTuMWCwpjzzkL2nTjcKiAk4hh8TjnGye2TwWOk3UXucZ+3rbmBa8Q==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/postcss": { + "version": "8.4.49", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.49.tgz", + "integrity": "sha512-OCVPnIObs4N29kxTjzLfUryOkvZEq+pf8jTF0lg8E7uETuWHA+v7j3c/xJmiqpX450191LlmZfUKkXxkTry7nA==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "nanoid": "^3.3.7", + "picocolors": "^1.1.1", + "source-map-js": "^1.2.1" + }, + "engines": { + "node": "^10 || ^12 || >=14" + } + }, + "node_modules/postcss-attribute-case-insensitive": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/postcss-attribute-case-insensitive/-/postcss-attribute-case-insensitive-5.0.2.tgz", + "integrity": "sha512-XIidXV8fDr0kKt28vqki84fRK8VW8eTuIa4PChv2MqKuT6C9UjmSKzen6KaWhWEoYvwxFCa7n/tC1SZ3tyq4SQ==", + "license": "MIT", + "dependencies": { + "postcss-selector-parser": "^6.0.10" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.2" + } + }, + "node_modules/postcss-browser-comments": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/postcss-browser-comments/-/postcss-browser-comments-4.0.0.tgz", + "integrity": "sha512-X9X9/WN3KIvY9+hNERUqX9gncsgBA25XaeR+jshHz2j8+sYyHktHw1JdKuMjeLpGktXidqDhA7b/qm1mrBDmgg==", + "license": "CC0-1.0", + "engines": { + "node": ">=8" + }, + "peerDependencies": { + "browserslist": ">=4", + "postcss": ">=8" + } + }, + "node_modules/postcss-calc": { + "version": "8.2.4", + "resolved": "https://registry.npmjs.org/postcss-calc/-/postcss-calc-8.2.4.tgz", + "integrity": "sha512-SmWMSJmB8MRnnULldx0lQIyhSNvuDl9HfrZkaqqE/WHAhToYsAvDq+yAsA/kIyINDszOp3Rh0GFoNuH5Ypsm3Q==", + "license": "MIT", + "dependencies": { + "postcss-selector-parser": "^6.0.9", + "postcss-value-parser": "^4.2.0" + }, + "peerDependencies": { + "postcss": "^8.2.2" + } + }, + "node_modules/postcss-clamp": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/postcss-clamp/-/postcss-clamp-4.1.0.tgz", + "integrity": "sha512-ry4b1Llo/9zz+PKC+030KUnPITTJAHeOwjfAyyB60eT0AorGLdzp52s31OsPRHRf8NchkgFoG2y6fCfn1IV1Ow==", + "license": "MIT", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": ">=7.6.0" + }, + "peerDependencies": { + "postcss": "^8.4.6" + } + }, + "node_modules/postcss-color-functional-notation": { + "version": "4.2.4", + "resolved": "https://registry.npmjs.org/postcss-color-functional-notation/-/postcss-color-functional-notation-4.2.4.tgz", + "integrity": "sha512-2yrTAUZUab9s6CpxkxC4rVgFEVaR6/2Pipvi6qcgvnYiVqZcbDHEoBDhrXzyb7Efh2CCfHQNtcqWcIruDTIUeg==", + "license": "CC0-1.0", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.2" + } + }, + "node_modules/postcss-color-hex-alpha": { + "version": "8.0.4", + "resolved": "https://registry.npmjs.org/postcss-color-hex-alpha/-/postcss-color-hex-alpha-8.0.4.tgz", + "integrity": "sha512-nLo2DCRC9eE4w2JmuKgVA3fGL3d01kGq752pVALF68qpGLmx2Qrk91QTKkdUqqp45T1K1XV8IhQpcu1hoAQflQ==", + "license": "MIT", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/postcss-color-rebeccapurple": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/postcss-color-rebeccapurple/-/postcss-color-rebeccapurple-7.1.1.tgz", + "integrity": "sha512-pGxkuVEInwLHgkNxUc4sdg4g3py7zUeCQ9sMfwyHAT+Ezk8a4OaaVZ8lIY5+oNqA/BXXgLyXv0+5wHP68R79hg==", + "license": "CC0-1.0", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.2" + } + }, + "node_modules/postcss-colormin": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/postcss-colormin/-/postcss-colormin-5.3.1.tgz", + "integrity": "sha512-UsWQG0AqTFQmpBegeLLc1+c3jIqBNB0zlDGRWR+dQ3pRKJL1oeMzyqmH3o2PIfn9MBdNrVPWhDbT769LxCTLJQ==", + "license": "MIT", + "dependencies": { + "browserslist": "^4.21.4", + "caniuse-api": "^3.0.0", + "colord": "^2.9.1", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-convert-values": { + "version": "5.1.3", + "resolved": "https://registry.npmjs.org/postcss-convert-values/-/postcss-convert-values-5.1.3.tgz", + "integrity": "sha512-82pC1xkJZtcJEfiLw6UXnXVXScgtBrjlO5CBmuDQc+dlb88ZYheFsjTn40+zBVi3DkfF7iezO0nJUPLcJK3pvA==", + "license": "MIT", + "dependencies": { + "browserslist": "^4.21.4", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-custom-media": { + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/postcss-custom-media/-/postcss-custom-media-8.0.2.tgz", + "integrity": "sha512-7yi25vDAoHAkbhAzX9dHx2yc6ntS4jQvejrNcC+csQJAXjj15e7VcWfMgLqBNAbOvqi5uIa9huOVwdHbf+sKqg==", + "license": "MIT", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.3" + } + }, + "node_modules/postcss-custom-properties": { + "version": "12.1.11", + "resolved": "https://registry.npmjs.org/postcss-custom-properties/-/postcss-custom-properties-12.1.11.tgz", + "integrity": "sha512-0IDJYhgU8xDv1KY6+VgUwuQkVtmYzRwu+dMjnmdMafXYv86SWqfxkc7qdDvWS38vsjaEtv8e0vGOUQrAiMBLpQ==", + "license": "MIT", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.2" + } + }, + "node_modules/postcss-custom-selectors": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/postcss-custom-selectors/-/postcss-custom-selectors-6.0.3.tgz", + "integrity": "sha512-fgVkmyiWDwmD3JbpCmB45SvvlCD6z9CG6Ie6Iere22W5aHea6oWa7EM2bpnv2Fj3I94L3VbtvX9KqwSi5aFzSg==", + "license": "MIT", + "dependencies": { + "postcss-selector-parser": "^6.0.4" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.3" + } + }, + "node_modules/postcss-dir-pseudo-class": { + "version": "6.0.5", + "resolved": "https://registry.npmjs.org/postcss-dir-pseudo-class/-/postcss-dir-pseudo-class-6.0.5.tgz", + "integrity": "sha512-eqn4m70P031PF7ZQIvSgy9RSJ5uI2171O/OO/zcRNYpJbvaeKFUlar1aJ7rmgiQtbm0FSPsRewjpdS0Oew7MPA==", + "license": "CC0-1.0", + "dependencies": { + "postcss-selector-parser": "^6.0.10" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.2" + } + }, + "node_modules/postcss-discard-comments": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/postcss-discard-comments/-/postcss-discard-comments-5.1.2.tgz", + "integrity": "sha512-+L8208OVbHVF2UQf1iDmRcbdjJkuBF6IS29yBDSiWUIzpYaAhtNl6JYnYm12FnkeCwQqF5LeklOu6rAqgfBZqQ==", + "license": "MIT", + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-discard-duplicates": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-discard-duplicates/-/postcss-discard-duplicates-5.1.0.tgz", + "integrity": "sha512-zmX3IoSI2aoenxHV6C7plngHWWhUOV3sP1T8y2ifzxzbtnuhk1EdPwm0S1bIUNaJ2eNbWeGLEwzw8huPD67aQw==", + "license": "MIT", + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-discard-empty": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/postcss-discard-empty/-/postcss-discard-empty-5.1.1.tgz", + "integrity": "sha512-zPz4WljiSuLWsI0ir4Mcnr4qQQ5e1Ukc3i7UfE2XcrwKK2LIPIqE5jxMRxO6GbI3cv//ztXDsXwEWT3BHOGh3A==", + "license": "MIT", + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-discard-overridden": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-discard-overridden/-/postcss-discard-overridden-5.1.0.tgz", + "integrity": "sha512-21nOL7RqWR1kasIVdKs8HNqQJhFxLsyRfAnUDm4Fe4t4mCWL9OJiHvlHPjcd8zc5Myu89b/7wZDnOSjFgeWRtw==", + "license": "MIT", + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-double-position-gradients": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/postcss-double-position-gradients/-/postcss-double-position-gradients-3.1.2.tgz", + "integrity": "sha512-GX+FuE/uBR6eskOK+4vkXgT6pDkexLokPaz/AbJna9s5Kzp/yl488pKPjhy0obB475ovfT1Wv8ho7U/cHNaRgQ==", + "license": "CC0-1.0", + "dependencies": { + "@csstools/postcss-progressive-custom-properties": "^1.1.0", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.2" + } + }, + "node_modules/postcss-env-function": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/postcss-env-function/-/postcss-env-function-4.0.6.tgz", + "integrity": "sha512-kpA6FsLra+NqcFnL81TnsU+Z7orGtDTxcOhl6pwXeEq1yFPpRMkCDpHhrz8CFQDr/Wfm0jLiNQ1OsGGPjlqPwA==", + "license": "CC0-1.0", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/postcss-flexbugs-fixes": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/postcss-flexbugs-fixes/-/postcss-flexbugs-fixes-5.0.2.tgz", + "integrity": "sha512-18f9voByak7bTktR2QgDveglpn9DTbBWPUzSOe9g0N4WR/2eSt6Vrcbf0hmspvMI6YWGywz6B9f7jzpFNJJgnQ==", + "license": "MIT", + "peerDependencies": { + "postcss": "^8.1.4" + } + }, + "node_modules/postcss-focus-visible": { + "version": "6.0.4", + "resolved": "https://registry.npmjs.org/postcss-focus-visible/-/postcss-focus-visible-6.0.4.tgz", + "integrity": "sha512-QcKuUU/dgNsstIK6HELFRT5Y3lbrMLEOwG+A4s5cA+fx3A3y/JTq3X9LaOj3OC3ALH0XqyrgQIgey/MIZ8Wczw==", + "license": "CC0-1.0", + "dependencies": { + "postcss-selector-parser": "^6.0.9" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/postcss-focus-within": { + "version": "5.0.4", + "resolved": "https://registry.npmjs.org/postcss-focus-within/-/postcss-focus-within-5.0.4.tgz", + "integrity": "sha512-vvjDN++C0mu8jz4af5d52CB184ogg/sSxAFS+oUJQq2SuCe7T5U2iIsVJtsCp2d6R4j0jr5+q3rPkBVZkXD9fQ==", + "license": "CC0-1.0", + "dependencies": { + "postcss-selector-parser": "^6.0.9" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/postcss-font-variant": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/postcss-font-variant/-/postcss-font-variant-5.0.0.tgz", + "integrity": "sha512-1fmkBaCALD72CK2a9i468mA/+tr9/1cBxRRMXOUaZqO43oWPR5imcyPjXwuv7PXbCid4ndlP5zWhidQVVa3hmA==", + "license": "MIT", + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/postcss-gap-properties": { + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/postcss-gap-properties/-/postcss-gap-properties-3.0.5.tgz", + "integrity": "sha512-IuE6gKSdoUNcvkGIqdtjtcMtZIFyXZhmFd5RUlg97iVEvp1BZKV5ngsAjCjrVy+14uhGBQl9tzmi1Qwq4kqVOg==", + "license": "CC0-1.0", + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.2" + } + }, + "node_modules/postcss-image-set-function": { + "version": "4.0.7", + "resolved": "https://registry.npmjs.org/postcss-image-set-function/-/postcss-image-set-function-4.0.7.tgz", + "integrity": "sha512-9T2r9rsvYzm5ndsBE8WgtrMlIT7VbtTfE7b3BQnudUqnBcBo7L758oc+o+pdj/dUV0l5wjwSdjeOH2DZtfv8qw==", + "license": "CC0-1.0", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.2" + } + }, + "node_modules/postcss-import": { + "version": "15.1.0", + "resolved": "https://registry.npmjs.org/postcss-import/-/postcss-import-15.1.0.tgz", + "integrity": "sha512-hpr+J05B2FVYUAXHeK1YyI267J/dDDhMU6B6civm8hSY1jYJnBXxzKDKDswzJmtLHryrjhnDjqqp/49t8FALew==", + "license": "MIT", + "dependencies": { + "postcss-value-parser": "^4.0.0", + "read-cache": "^1.0.0", + "resolve": "^1.1.7" + }, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "postcss": "^8.0.0" + } + }, + "node_modules/postcss-initial": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/postcss-initial/-/postcss-initial-4.0.1.tgz", + "integrity": "sha512-0ueD7rPqX8Pn1xJIjay0AZeIuDoF+V+VvMt/uOnn+4ezUKhZM/NokDeP6DwMNyIoYByuN/94IQnt5FEkaN59xQ==", + "license": "MIT", + "peerDependencies": { + "postcss": "^8.0.0" + } + }, + "node_modules/postcss-js": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/postcss-js/-/postcss-js-4.0.1.tgz", + "integrity": "sha512-dDLF8pEO191hJMtlHFPRa8xsizHaM82MLfNkUHdUtVEV3tgTp5oj+8qbEqYM57SLfc74KSbw//4SeJma2LRVIw==", + "license": "MIT", + "dependencies": { + "camelcase-css": "^2.0.1" + }, + "engines": { + "node": "^12 || ^14 || >= 16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + "peerDependencies": { + "postcss": "^8.4.21" + } + }, + "node_modules/postcss-lab-function": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/postcss-lab-function/-/postcss-lab-function-4.2.1.tgz", + "integrity": "sha512-xuXll4isR03CrQsmxyz92LJB2xX9n+pZJ5jE9JgcnmsCammLyKdlzrBin+25dy6wIjfhJpKBAN80gsTlCgRk2w==", + "license": "CC0-1.0", + "dependencies": { + "@csstools/postcss-progressive-custom-properties": "^1.1.0", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.2" + } + }, + "node_modules/postcss-load-config": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-4.0.2.tgz", + "integrity": "sha512-bSVhyJGL00wMVoPUzAVAnbEoWyqRxkjv64tUl427SKnPrENtq6hJwUojroMz2VB+Q1edmi4IfrAPpami5VVgMQ==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "lilconfig": "^3.0.0", + "yaml": "^2.3.4" + }, + "engines": { + "node": ">= 14" + }, + "peerDependencies": { + "postcss": ">=8.0.9", + "ts-node": ">=9.0.0" + }, + "peerDependenciesMeta": { + "postcss": { + "optional": true + }, + "ts-node": { + "optional": true + } + } + }, + "node_modules/postcss-load-config/node_modules/lilconfig": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-3.1.2.tgz", + "integrity": "sha512-eop+wDAvpItUys0FWkHIKeC9ybYrTGbU41U5K7+bttZZeohvnY7M9dZ5kB21GNWiFT2q1OoPTvncPCgSOVO5ow==", + "license": "MIT", + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/antonk52" + } + }, + "node_modules/postcss-load-config/node_modules/yaml": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.6.1.tgz", + "integrity": "sha512-7r0XPzioN/Q9kXBro/XPnA6kznR73DHq+GXh5ON7ZozRO6aMjbmiBuKste2wslTFkC5d1dw0GooOCepZXJ2SAg==", + "license": "ISC", + "bin": { + "yaml": "bin.mjs" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/postcss-loader": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/postcss-loader/-/postcss-loader-6.2.1.tgz", + "integrity": "sha512-WbbYpmAaKcux/P66bZ40bpWsBucjx/TTgVVzRZ9yUO8yQfVBlameJ0ZGVaPfH64hNSBh63a+ICP5nqOpBA0w+Q==", + "license": "MIT", + "dependencies": { + "cosmiconfig": "^7.0.0", + "klona": "^2.0.5", + "semver": "^7.3.5" + }, + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "postcss": "^7.0.0 || ^8.0.1", + "webpack": "^5.0.0" + } + }, + "node_modules/postcss-logical": { + "version": "5.0.4", + "resolved": "https://registry.npmjs.org/postcss-logical/-/postcss-logical-5.0.4.tgz", + "integrity": "sha512-RHXxplCeLh9VjinvMrZONq7im4wjWGlRJAqmAVLXyZaXwfDWP73/oq4NdIp+OZwhQUMj0zjqDfM5Fj7qby+B4g==", + "license": "CC0-1.0", + "engines": { + "node": "^12 || ^14 || >=16" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/postcss-media-minmax": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/postcss-media-minmax/-/postcss-media-minmax-5.0.0.tgz", + "integrity": "sha512-yDUvFf9QdFZTuCUg0g0uNSHVlJ5X1lSzDZjPSFaiCWvjgsvu8vEVxtahPrLMinIDEEGnx6cBe6iqdx5YWz08wQ==", + "license": "MIT", + "engines": { + "node": ">=10.0.0" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/postcss-merge-longhand": { + "version": "5.1.7", + "resolved": "https://registry.npmjs.org/postcss-merge-longhand/-/postcss-merge-longhand-5.1.7.tgz", + "integrity": "sha512-YCI9gZB+PLNskrK0BB3/2OzPnGhPkBEwmwhfYk1ilBHYVAZB7/tkTHFBAnCrvBBOmeYyMYw3DMjT55SyxMBzjQ==", + "license": "MIT", + "dependencies": { + "postcss-value-parser": "^4.2.0", + "stylehacks": "^5.1.1" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-merge-rules": { + "version": "5.1.4", + "resolved": "https://registry.npmjs.org/postcss-merge-rules/-/postcss-merge-rules-5.1.4.tgz", + "integrity": "sha512-0R2IuYpgU93y9lhVbO/OylTtKMVcHb67zjWIfCiKR9rWL3GUk1677LAqD/BcHizukdZEjT8Ru3oHRoAYoJy44g==", + "license": "MIT", + "dependencies": { + "browserslist": "^4.21.4", + "caniuse-api": "^3.0.0", + "cssnano-utils": "^3.1.0", + "postcss-selector-parser": "^6.0.5" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-minify-font-values": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-minify-font-values/-/postcss-minify-font-values-5.1.0.tgz", + "integrity": "sha512-el3mYTgx13ZAPPirSVsHqFzl+BBBDrXvbySvPGFnQcTI4iNslrPaFq4muTkLZmKlGk4gyFAYUBMH30+HurREyA==", + "license": "MIT", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-minify-gradients": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/postcss-minify-gradients/-/postcss-minify-gradients-5.1.1.tgz", + "integrity": "sha512-VGvXMTpCEo4qHTNSa9A0a3D+dxGFZCYwR6Jokk+/3oB6flu2/PnPXAh2x7x52EkY5xlIHLm+Le8tJxe/7TNhzw==", + "license": "MIT", + "dependencies": { + "colord": "^2.9.1", + "cssnano-utils": "^3.1.0", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-minify-params": { + "version": "5.1.4", + "resolved": "https://registry.npmjs.org/postcss-minify-params/-/postcss-minify-params-5.1.4.tgz", + "integrity": "sha512-+mePA3MgdmVmv6g+30rn57USjOGSAyuxUmkfiWpzalZ8aiBkdPYjXWtHuwJGm1v5Ojy0Z0LaSYhHaLJQB0P8Jw==", + "license": "MIT", + "dependencies": { + "browserslist": "^4.21.4", + "cssnano-utils": "^3.1.0", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-minify-selectors": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/postcss-minify-selectors/-/postcss-minify-selectors-5.2.1.tgz", + "integrity": "sha512-nPJu7OjZJTsVUmPdm2TcaiohIwxP+v8ha9NehQ2ye9szv4orirRU3SDdtUmKH+10nzn0bAyOXZ0UEr7OpvLehg==", + "license": "MIT", + "dependencies": { + "postcss-selector-parser": "^6.0.5" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-modules-extract-imports": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/postcss-modules-extract-imports/-/postcss-modules-extract-imports-3.1.0.tgz", + "integrity": "sha512-k3kNe0aNFQDAZGbin48pL2VNidTF0w4/eASDsxlyspobzU3wZQLOGj7L9gfRe0Jo9/4uud09DsjFNH7winGv8Q==", + "license": "ISC", + "engines": { + "node": "^10 || ^12 || >= 14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/postcss-modules-local-by-default": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/postcss-modules-local-by-default/-/postcss-modules-local-by-default-4.1.0.tgz", + "integrity": "sha512-rm0bdSv4jC3BDma3s9H19ZddW0aHX6EoqwDYU2IfZhRN+53QrufTRo2IdkAbRqLx4R2IYbZnbjKKxg4VN5oU9Q==", + "license": "MIT", + "dependencies": { + "icss-utils": "^5.0.0", + "postcss-selector-parser": "^7.0.0", + "postcss-value-parser": "^4.1.0" + }, + "engines": { + "node": "^10 || ^12 || >= 14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/postcss-modules-local-by-default/node_modules/postcss-selector-parser": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.0.0.tgz", + "integrity": "sha512-9RbEr1Y7FFfptd/1eEdntyjMwLeghW1bHX9GWjXo19vx4ytPQhANltvVxDggzJl7mnWM+dX28kb6cyS/4iQjlQ==", + "license": "MIT", + "dependencies": { + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-modules-scope": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/postcss-modules-scope/-/postcss-modules-scope-3.2.1.tgz", + "integrity": "sha512-m9jZstCVaqGjTAuny8MdgE88scJnCiQSlSrOWcTQgM2t32UBe+MUmFSO5t7VMSfAf/FJKImAxBav8ooCHJXCJA==", + "license": "ISC", + "dependencies": { + "postcss-selector-parser": "^7.0.0" + }, + "engines": { + "node": "^10 || ^12 || >= 14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/postcss-modules-scope/node_modules/postcss-selector-parser": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.0.0.tgz", + "integrity": "sha512-9RbEr1Y7FFfptd/1eEdntyjMwLeghW1bHX9GWjXo19vx4ytPQhANltvVxDggzJl7mnWM+dX28kb6cyS/4iQjlQ==", + "license": "MIT", + "dependencies": { + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-modules-values": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/postcss-modules-values/-/postcss-modules-values-4.0.0.tgz", + "integrity": "sha512-RDxHkAiEGI78gS2ofyvCsu7iycRv7oqw5xMWn9iMoR0N/7mf9D50ecQqUo5BZ9Zh2vH4bCUR/ktCqbB9m8vJjQ==", + "license": "ISC", + "dependencies": { + "icss-utils": "^5.0.0" + }, + "engines": { + "node": "^10 || ^12 || >= 14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/postcss-nested": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/postcss-nested/-/postcss-nested-6.2.0.tgz", + "integrity": "sha512-HQbt28KulC5AJzG+cZtj9kvKB93CFCdLvog1WFLf1D+xmMvPGlBstkpTEZfK5+AN9hfJocyBFCNiqyS48bpgzQ==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "postcss-selector-parser": "^6.1.1" + }, + "engines": { + "node": ">=12.0" + }, + "peerDependencies": { + "postcss": "^8.2.14" + } + }, + "node_modules/postcss-nesting": { + "version": "10.2.0", + "resolved": "https://registry.npmjs.org/postcss-nesting/-/postcss-nesting-10.2.0.tgz", + "integrity": "sha512-EwMkYchxiDiKUhlJGzWsD9b2zvq/r2SSubcRrgP+jujMXFzqvANLt16lJANC+5uZ6hjI7lpRmI6O8JIl+8l1KA==", + "license": "CC0-1.0", + "dependencies": { + "@csstools/selector-specificity": "^2.0.0", + "postcss-selector-parser": "^6.0.10" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.2" + } + }, + "node_modules/postcss-normalize": { + "version": "10.0.1", + "resolved": "https://registry.npmjs.org/postcss-normalize/-/postcss-normalize-10.0.1.tgz", + "integrity": "sha512-+5w18/rDev5mqERcG3W5GZNMJa1eoYYNGo8gB7tEwaos0ajk3ZXAI4mHGcNT47NE+ZnZD1pEpUOFLvltIwmeJA==", + "license": "CC0-1.0", + "dependencies": { + "@csstools/normalize.css": "*", + "postcss-browser-comments": "^4", + "sanitize.css": "*" + }, + "engines": { + "node": ">= 12" + }, + "peerDependencies": { + "browserslist": ">= 4", + "postcss": ">= 8" + } + }, + "node_modules/postcss-normalize-charset": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-normalize-charset/-/postcss-normalize-charset-5.1.0.tgz", + "integrity": "sha512-mSgUJ+pd/ldRGVx26p2wz9dNZ7ji6Pn8VWBajMXFf8jk7vUoSrZ2lt/wZR7DtlZYKesmZI680qjr2CeFF2fbUg==", + "license": "MIT", + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-normalize-display-values": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-normalize-display-values/-/postcss-normalize-display-values-5.1.0.tgz", + "integrity": "sha512-WP4KIM4o2dazQXWmFaqMmcvsKmhdINFblgSeRgn8BJ6vxaMyaJkwAzpPpuvSIoG/rmX3M+IrRZEz2H0glrQNEA==", + "license": "MIT", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-normalize-positions": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/postcss-normalize-positions/-/postcss-normalize-positions-5.1.1.tgz", + "integrity": "sha512-6UpCb0G4eofTCQLFVuI3EVNZzBNPiIKcA1AKVka+31fTVySphr3VUgAIULBhxZkKgwLImhzMR2Bw1ORK+37INg==", + "license": "MIT", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-normalize-repeat-style": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/postcss-normalize-repeat-style/-/postcss-normalize-repeat-style-5.1.1.tgz", + "integrity": "sha512-mFpLspGWkQtBcWIRFLmewo8aC3ImN2i/J3v8YCFUwDnPu3Xz4rLohDO26lGjwNsQxB3YF0KKRwspGzE2JEuS0g==", + "license": "MIT", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-normalize-string": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-normalize-string/-/postcss-normalize-string-5.1.0.tgz", + "integrity": "sha512-oYiIJOf4T9T1N4i+abeIc7Vgm/xPCGih4bZz5Nm0/ARVJ7K6xrDlLwvwqOydvyL3RHNf8qZk6vo3aatiw/go3w==", + "license": "MIT", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-normalize-timing-functions": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-normalize-timing-functions/-/postcss-normalize-timing-functions-5.1.0.tgz", + "integrity": "sha512-DOEkzJ4SAXv5xkHl0Wa9cZLF3WCBhF3o1SKVxKQAa+0pYKlueTpCgvkFAHfk+Y64ezX9+nITGrDZeVGgITJXjg==", + "license": "MIT", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-normalize-unicode": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/postcss-normalize-unicode/-/postcss-normalize-unicode-5.1.1.tgz", + "integrity": "sha512-qnCL5jzkNUmKVhZoENp1mJiGNPcsJCs1aaRmURmeJGES23Z/ajaln+EPTD+rBeNkSryI+2WTdW+lwcVdOikrpA==", + "license": "MIT", + "dependencies": { + "browserslist": "^4.21.4", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-normalize-url": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-normalize-url/-/postcss-normalize-url-5.1.0.tgz", + "integrity": "sha512-5upGeDO+PVthOxSmds43ZeMeZfKH+/DKgGRD7TElkkyS46JXAUhMzIKiCa7BabPeIy3AQcTkXwVVN7DbqsiCew==", + "license": "MIT", + "dependencies": { + "normalize-url": "^6.0.1", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-normalize-whitespace": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/postcss-normalize-whitespace/-/postcss-normalize-whitespace-5.1.1.tgz", + "integrity": "sha512-83ZJ4t3NUDETIHTa3uEg6asWjSBYL5EdkVB0sDncx9ERzOKBVJIUeDO9RyA9Zwtig8El1d79HBp0JEi8wvGQnA==", + "license": "MIT", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-opacity-percentage": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/postcss-opacity-percentage/-/postcss-opacity-percentage-1.1.3.tgz", + "integrity": "sha512-An6Ba4pHBiDtyVpSLymUUERMo2cU7s+Obz6BTrS+gxkbnSBNKSuD0AVUc+CpBMrpVPKKfoVz0WQCX+Tnst0i4A==", + "funding": [ + { + "type": "kofi", + "url": "https://ko-fi.com/mrcgrtz" + }, + { + "type": "liberapay", + "url": "https://liberapay.com/mrcgrtz" + } + ], + "license": "MIT", + "engines": { + "node": "^12 || ^14 || >=16" + }, + "peerDependencies": { + "postcss": "^8.2" + } + }, + "node_modules/postcss-ordered-values": { + "version": "5.1.3", + "resolved": "https://registry.npmjs.org/postcss-ordered-values/-/postcss-ordered-values-5.1.3.tgz", + "integrity": "sha512-9UO79VUhPwEkzbb3RNpqqghc6lcYej1aveQteWY+4POIwlqkYE21HKWaLDF6lWNuqCobEAyTovVhtI32Rbv2RQ==", + "license": "MIT", + "dependencies": { + "cssnano-utils": "^3.1.0", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-overflow-shorthand": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/postcss-overflow-shorthand/-/postcss-overflow-shorthand-3.0.4.tgz", + "integrity": "sha512-otYl/ylHK8Y9bcBnPLo3foYFLL6a6Ak+3EQBPOTR7luMYCOsiVTUk1iLvNf6tVPNGXcoL9Hoz37kpfriRIFb4A==", + "license": "CC0-1.0", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.2" + } + }, + "node_modules/postcss-page-break": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/postcss-page-break/-/postcss-page-break-3.0.4.tgz", + "integrity": "sha512-1JGu8oCjVXLa9q9rFTo4MbeeA5FMe00/9C7lN4va606Rdb+HkxXtXsmEDrIraQ11fGz/WvKWa8gMuCKkrXpTsQ==", + "license": "MIT", + "peerDependencies": { + "postcss": "^8" + } + }, + "node_modules/postcss-place": { + "version": "7.0.5", + "resolved": "https://registry.npmjs.org/postcss-place/-/postcss-place-7.0.5.tgz", + "integrity": "sha512-wR8igaZROA6Z4pv0d+bvVrvGY4GVHihBCBQieXFY3kuSuMyOmEnnfFzHl/tQuqHZkfkIVBEbDvYcFfHmpSet9g==", + "license": "CC0-1.0", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.2" + } + }, + "node_modules/postcss-preset-env": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/postcss-preset-env/-/postcss-preset-env-7.8.3.tgz", + "integrity": "sha512-T1LgRm5uEVFSEF83vHZJV2z19lHg4yJuZ6gXZZkqVsqv63nlr6zabMH3l4Pc01FQCyfWVrh2GaUeCVy9Po+Aag==", + "license": "CC0-1.0", + "dependencies": { + "@csstools/postcss-cascade-layers": "^1.1.1", + "@csstools/postcss-color-function": "^1.1.1", + "@csstools/postcss-font-format-keywords": "^1.0.1", + "@csstools/postcss-hwb-function": "^1.0.2", + "@csstools/postcss-ic-unit": "^1.0.1", + "@csstools/postcss-is-pseudo-class": "^2.0.7", + "@csstools/postcss-nested-calc": "^1.0.0", + "@csstools/postcss-normalize-display-values": "^1.0.1", + "@csstools/postcss-oklab-function": "^1.1.1", + "@csstools/postcss-progressive-custom-properties": "^1.3.0", + "@csstools/postcss-stepped-value-functions": "^1.0.1", + "@csstools/postcss-text-decoration-shorthand": "^1.0.0", + "@csstools/postcss-trigonometric-functions": "^1.0.2", + "@csstools/postcss-unset-value": "^1.0.2", + "autoprefixer": "^10.4.13", + "browserslist": "^4.21.4", + "css-blank-pseudo": "^3.0.3", + "css-has-pseudo": "^3.0.4", + "css-prefers-color-scheme": "^6.0.3", + "cssdb": "^7.1.0", + "postcss-attribute-case-insensitive": "^5.0.2", + "postcss-clamp": "^4.1.0", + "postcss-color-functional-notation": "^4.2.4", + "postcss-color-hex-alpha": "^8.0.4", + "postcss-color-rebeccapurple": "^7.1.1", + "postcss-custom-media": "^8.0.2", + "postcss-custom-properties": "^12.1.10", + "postcss-custom-selectors": "^6.0.3", + "postcss-dir-pseudo-class": "^6.0.5", + "postcss-double-position-gradients": "^3.1.2", + "postcss-env-function": "^4.0.6", + "postcss-focus-visible": "^6.0.4", + "postcss-focus-within": "^5.0.4", + "postcss-font-variant": "^5.0.0", + "postcss-gap-properties": "^3.0.5", + "postcss-image-set-function": "^4.0.7", + "postcss-initial": "^4.0.1", + "postcss-lab-function": "^4.2.1", + "postcss-logical": "^5.0.4", + "postcss-media-minmax": "^5.0.0", + "postcss-nesting": "^10.2.0", + "postcss-opacity-percentage": "^1.1.2", + "postcss-overflow-shorthand": "^3.0.4", + "postcss-page-break": "^3.0.4", + "postcss-place": "^7.0.5", + "postcss-pseudo-class-any-link": "^7.1.6", + "postcss-replace-overflow-wrap": "^4.0.0", + "postcss-selector-not": "^6.0.1", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.2" + } + }, + "node_modules/postcss-pseudo-class-any-link": { + "version": "7.1.6", + "resolved": "https://registry.npmjs.org/postcss-pseudo-class-any-link/-/postcss-pseudo-class-any-link-7.1.6.tgz", + "integrity": "sha512-9sCtZkO6f/5ML9WcTLcIyV1yz9D1rf0tWc+ulKcvV30s0iZKS/ONyETvoWsr6vnrmW+X+KmuK3gV/w5EWnT37w==", + "license": "CC0-1.0", + "dependencies": { + "postcss-selector-parser": "^6.0.10" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.2" + } + }, + "node_modules/postcss-reduce-initial": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/postcss-reduce-initial/-/postcss-reduce-initial-5.1.2.tgz", + "integrity": "sha512-dE/y2XRaqAi6OvjzD22pjTUQ8eOfc6m/natGHgKFBK9DxFmIm69YmaRVQrGgFlEfc1HePIurY0TmDeROK05rIg==", + "license": "MIT", + "dependencies": { + "browserslist": "^4.21.4", + "caniuse-api": "^3.0.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-reduce-transforms": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-reduce-transforms/-/postcss-reduce-transforms-5.1.0.tgz", + "integrity": "sha512-2fbdbmgir5AvpW9RLtdONx1QoYG2/EtqpNQbFASDlixBbAYuTcJ0dECwlqNqH7VbaUnEnh8SrxOe2sRIn24XyQ==", + "license": "MIT", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-replace-overflow-wrap": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/postcss-replace-overflow-wrap/-/postcss-replace-overflow-wrap-4.0.0.tgz", + "integrity": "sha512-KmF7SBPphT4gPPcKZc7aDkweHiKEEO8cla/GjcBK+ckKxiZslIu3C4GCRW3DNfL0o7yW7kMQu9xlZ1kXRXLXtw==", + "license": "MIT", + "peerDependencies": { + "postcss": "^8.0.3" + } + }, + "node_modules/postcss-selector-not": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/postcss-selector-not/-/postcss-selector-not-6.0.1.tgz", + "integrity": "sha512-1i9affjAe9xu/y9uqWH+tD4r6/hDaXJruk8xn2x1vzxC2U3J3LKO3zJW4CyxlNhA56pADJ/djpEwpH1RClI2rQ==", + "license": "MIT", + "dependencies": { + "postcss-selector-parser": "^6.0.10" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.2" + } + }, + "node_modules/postcss-selector-parser": { + "version": "6.1.2", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.1.2.tgz", + "integrity": "sha512-Q8qQfPiZ+THO/3ZrOrO0cJJKfpYCagtMUkXbnEfmgUjwXg6z/WBeOyS9APBBPCTSiDV+s4SwQGu8yFsiMRIudg==", + "license": "MIT", + "dependencies": { + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-svgo": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-svgo/-/postcss-svgo-5.1.0.tgz", + "integrity": "sha512-D75KsH1zm5ZrHyxPakAxJWtkyXew5qwS70v56exwvw542d9CRtTo78K0WeFxZB4G7JXKKMbEZtZayTGdIky/eA==", + "license": "MIT", + "dependencies": { + "postcss-value-parser": "^4.2.0", + "svgo": "^2.7.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-svgo/node_modules/commander": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz", + "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==", + "license": "MIT", + "engines": { + "node": ">= 10" + } + }, + "node_modules/postcss-svgo/node_modules/css-tree": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-1.1.3.tgz", + "integrity": "sha512-tRpdppF7TRazZrjJ6v3stzv93qxRcSsFmW6cX0Zm2NVKpxE1WV1HblnghVv9TreireHkqI/VDEsfolRF1p6y7Q==", + "license": "MIT", + "dependencies": { + "mdn-data": "2.0.14", + "source-map": "^0.6.1" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/postcss-svgo/node_modules/mdn-data": { + "version": "2.0.14", + "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.14.tgz", + "integrity": "sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow==", + "license": "CC0-1.0" + }, + "node_modules/postcss-svgo/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/postcss-svgo/node_modules/svgo": { + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/svgo/-/svgo-2.8.0.tgz", + "integrity": "sha512-+N/Q9kV1+F+UeWYoSiULYo4xYSDQlTgb+ayMobAXPwMnLvop7oxKMo9OzIrX5x3eS4L4f2UHhc9axXwY8DpChg==", + "license": "MIT", + "dependencies": { + "@trysound/sax": "0.2.0", + "commander": "^7.2.0", + "css-select": "^4.1.3", + "css-tree": "^1.1.3", + "csso": "^4.2.0", + "picocolors": "^1.0.0", + "stable": "^0.1.8" + }, + "bin": { + "svgo": "bin/svgo" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/postcss-unique-selectors": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/postcss-unique-selectors/-/postcss-unique-selectors-5.1.1.tgz", + "integrity": "sha512-5JiODlELrz8L2HwxfPnhOWZYWDxVHWL83ufOv84NrcgipI7TaeRsatAhK4Tr2/ZiYldpK/wBvw5BD3qfaK96GA==", + "license": "MIT", + "dependencies": { + "postcss-selector-parser": "^6.0.5" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-value-parser": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz", + "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==", + "license": "MIT" + }, + "node_modules/prelude-ls": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", + "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", + "license": "MIT", + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/pretty-bytes": { + "version": "5.6.0", + "resolved": "https://registry.npmjs.org/pretty-bytes/-/pretty-bytes-5.6.0.tgz", + "integrity": "sha512-FFw039TmrBqFK8ma/7OL3sDz/VytdtJr044/QUJtH0wK9lb9jLq9tJyIxUwtQJHwar2BqtiA4iCWSwo9JLkzFg==", + "license": "MIT", + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/pretty-error": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/pretty-error/-/pretty-error-4.0.0.tgz", + "integrity": "sha512-AoJ5YMAcXKYxKhuJGdcvse+Voc6v1RgnsR3nWcYU7q4t6z0Q6T86sv5Zq8VIRbOWWFpvdGE83LtdSMNd+6Y0xw==", + "license": "MIT", + "dependencies": { + "lodash": "^4.17.20", + "renderkid": "^3.0.0" + } + }, + "node_modules/pretty-format": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-27.5.1.tgz", + "integrity": "sha512-Qb1gy5OrP5+zDf2Bvnzdl3jsTf1qXVMazbvCoKhtKqVs4/YK4ozX4gKQJJVyNe+cajNPn0KoC0MC3FUmaHWEmQ==", + "license": "MIT", + "dependencies": { + "ansi-regex": "^5.0.1", + "ansi-styles": "^5.0.0", + "react-is": "^17.0.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/pretty-format/node_modules/ansi-styles": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/process-nextick-args": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", + "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", + "license": "MIT" + }, + "node_modules/promise": { + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/promise/-/promise-8.3.0.tgz", + "integrity": "sha512-rZPNPKTOYVNEEKFaq1HqTgOwZD+4/YHS5ukLzQCypkj+OkYx7iv0mA91lJlpPPZ8vMau3IIGj5Qlwrx+8iiSmg==", + "license": "MIT", + "dependencies": { + "asap": "~2.0.6" + } + }, + "node_modules/prompts": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.4.2.tgz", + "integrity": "sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==", + "license": "MIT", + "dependencies": { + "kleur": "^3.0.3", + "sisteransi": "^1.0.5" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/prop-types": { + "version": "15.8.1", + "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz", + "integrity": "sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==", + "license": "MIT", + "dependencies": { + "loose-envify": "^1.4.0", + "object-assign": "^4.1.1", + "react-is": "^16.13.1" + } + }, + "node_modules/prop-types-extra": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/prop-types-extra/-/prop-types-extra-1.1.1.tgz", + "integrity": "sha512-59+AHNnHYCdiC+vMwY52WmvP5dM3QLeoumYuEyceQDi9aEhtwN9zIQ2ZNo25sMyXnbh32h+P1ezDsUpUH3JAew==", + "license": "MIT", + "dependencies": { + "react-is": "^16.3.2", + "warning": "^4.0.0" + }, + "peerDependencies": { + "react": ">=0.14.0" + } + }, + "node_modules/prop-types-extra/node_modules/react-is": { + "version": "16.13.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", + "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==", + "license": "MIT" + }, + "node_modules/prop-types/node_modules/react-is": { + "version": "16.13.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", + "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==", + "license": "MIT" + }, + "node_modules/proxy-addr": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz", + "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==", + "license": "MIT", + "dependencies": { + "forwarded": "0.2.0", + "ipaddr.js": "1.9.1" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/proxy-addr/node_modules/ipaddr.js": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", + "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==", + "license": "MIT", + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/proxy-from-env": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", + "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==", + "license": "MIT" + }, + "node_modules/psl": { + "version": "1.13.0", + "resolved": "https://registry.npmjs.org/psl/-/psl-1.13.0.tgz", + "integrity": "sha512-BFwmFXiJoFqlUpZ5Qssolv15DMyc84gTBds1BjsV1BfXEo1UyyD7GsmN67n7J77uRhoSNW1AXtXKPLcBFQn9Aw==", + "license": "MIT", + "dependencies": { + "punycode": "^2.3.1" + } + }, + "node_modules/punycode": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", + "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/q": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/q/-/q-1.5.1.tgz", + "integrity": "sha512-kV/CThkXo6xyFEZUugw/+pIOywXcDbFYgSct5cT3gqlbkBE1SJdwy6UQoZvodiWF/ckQLZyDE/Bu1M6gVu5lVw==", + "deprecated": "You or someone you depend on is using Q, the JavaScript Promise library that gave JavaScript developers strong feelings about promises. They can almost certainly migrate to the native JavaScript promise now. Thank you literally everyone for joining me in this bet against the odds. Be excellent to each other.\n\n(For a CapTP with native promises, see @endo/eventual-send and @endo/captp)", + "license": "MIT", + "engines": { + "node": ">=0.6.0", + "teleport": ">=0.2.0" + } + }, + "node_modules/qs": { + "version": "6.13.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.13.0.tgz", + "integrity": "sha512-+38qI9SOr8tfZ4QmJNplMUxqjbe7LKvvZgWdExBOmd+egZTtjLB67Gu0HRX3u/XOq7UU2Nx6nsjvS16Z9uwfpg==", + "license": "BSD-3-Clause", + "dependencies": { + "side-channel": "^1.0.6" + }, + "engines": { + "node": ">=0.6" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/querystringify": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/querystringify/-/querystringify-2.2.0.tgz", + "integrity": "sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==", + "license": "MIT" + }, + "node_modules/queue-microtask": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT" + }, + "node_modules/raf": { + "version": "3.4.1", + "resolved": "https://registry.npmjs.org/raf/-/raf-3.4.1.tgz", + "integrity": "sha512-Sq4CW4QhwOHE8ucn6J34MqtZCeWFP2aQSmrlroYgqAV1PjStIhJXxYuTgUIfkEk7zTLjmIjLmU5q+fbD1NnOJA==", + "license": "MIT", + "dependencies": { + "performance-now": "^2.1.0" + } + }, + "node_modules/randombytes": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", + "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", + "license": "MIT", + "dependencies": { + "safe-buffer": "^5.1.0" + } + }, + "node_modules/range-parser": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", + "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/raw-body": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.2.tgz", + "integrity": "sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA==", + "license": "MIT", + "dependencies": { + "bytes": "3.1.2", + "http-errors": "2.0.0", + "iconv-lite": "0.4.24", + "unpipe": "1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/raw-body/node_modules/iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "license": "MIT", + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/react": { + "version": "18.3.1", + "resolved": "https://registry.npmjs.org/react/-/react-18.3.1.tgz", + "integrity": "sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ==", + "license": "MIT", + "dependencies": { + "loose-envify": "^1.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/react-app-polyfill": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/react-app-polyfill/-/react-app-polyfill-3.0.0.tgz", + "integrity": "sha512-sZ41cxiU5llIB003yxxQBYrARBqe0repqPTTYBTmMqTz9szeBbE37BehCE891NZsmdZqqP+xWKdT3eo3vOzN8w==", + "license": "MIT", + "dependencies": { + "core-js": "^3.19.2", + "object-assign": "^4.1.1", + "promise": "^8.1.0", + "raf": "^3.4.1", + "regenerator-runtime": "^0.13.9", + "whatwg-fetch": "^3.6.2" + }, + "engines": { + "node": ">=14" + } + }, + "node_modules/react-app-polyfill/node_modules/regenerator-runtime": { + "version": "0.13.11", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz", + "integrity": "sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg==", + "license": "MIT" + }, + "node_modules/react-bootstrap": { + "version": "2.10.6", + "resolved": "https://registry.npmjs.org/react-bootstrap/-/react-bootstrap-2.10.6.tgz", + "integrity": "sha512-fNvKytSp0nHts1WRnRBJeBEt+I9/ZdrnhIjWOucEduRNvFRU1IXjZueDdWnBiqsTSJ7MckQJi9i/hxGolaRq+g==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.24.7", + "@restart/hooks": "^0.4.9", + "@restart/ui": "^1.9.0", + "@types/react-transition-group": "^4.4.6", + "classnames": "^2.3.2", + "dom-helpers": "^5.2.1", + "invariant": "^2.2.4", + "prop-types": "^15.8.1", + "prop-types-extra": "^1.1.0", + "react-transition-group": "^4.4.5", + "uncontrollable": "^7.2.1", + "warning": "^4.0.3" + }, + "peerDependencies": { + "@types/react": ">=16.14.8", + "react": ">=16.14.0", + "react-dom": ">=16.14.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/react-bootstrap-typeahead": { + "version": "6.3.2", + "resolved": "https://registry.npmjs.org/react-bootstrap-typeahead/-/react-bootstrap-typeahead-6.3.2.tgz", + "integrity": "sha512-N5Mb0WlSSMcD7Z0pcCypILgIuECybev0hl4lsnCa5lbXTnN4QdkuHLGuTLSlXBwm1ZMFpOc2SnsdSRgeFiF+Ow==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.14.6", + "@popperjs/core": "^2.10.2", + "@restart/hooks": "^0.4.0", + "classnames": "^2.2.0", + "fast-deep-equal": "^3.1.1", + "invariant": "^2.2.1", + "lodash.debounce": "^4.0.8", + "prop-types": "^15.5.8", + "react-overlays": "^5.2.0", + "react-popper": "^2.2.5", + "scroll-into-view-if-needed": "^3.1.0", + "warning": "^4.0.1" + }, + "engines": { + "node": ">=18.0.0" + }, + "peerDependencies": { + "react": ">=16.8.0", + "react-dom": ">=16.8.0" + } + }, + "node_modules/react-data-table-component": { + "version": "7.6.2", + "resolved": "https://registry.npmjs.org/react-data-table-component/-/react-data-table-component-7.6.2.tgz", + "integrity": "sha512-nHe7040fmtrJyQr/ieGrTfV0jBflYGK4sLokC6/AFOv3ThjmA9WzKz8Z8/2wMxzRqLU+Rn0CVFg+8+frKLepWQ==", + "license": "Apache-2.0", + "dependencies": { + "deepmerge": "^4.3.1" + }, + "peerDependencies": { + "react": ">= 16.8.3", + "styled-components": ">= 5.0.0" + }, + "peerDependenciesMeta": { + "styled-components": { + "optional": false + } + } + }, + "node_modules/react-dev-utils": { + "version": "12.0.1", + "resolved": "https://registry.npmjs.org/react-dev-utils/-/react-dev-utils-12.0.1.tgz", + "integrity": "sha512-84Ivxmr17KjUupyqzFode6xKhjwuEJDROWKJy/BthkL7Wn6NJ8h4WE6k/exAv6ImS+0oZLRRW5j/aINMHyeGeQ==", + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.16.0", + "address": "^1.1.2", + "browserslist": "^4.18.1", + "chalk": "^4.1.2", + "cross-spawn": "^7.0.3", + "detect-port-alt": "^1.1.6", + "escape-string-regexp": "^4.0.0", + "filesize": "^8.0.6", + "find-up": "^5.0.0", + "fork-ts-checker-webpack-plugin": "^6.5.0", + "global-modules": "^2.0.0", + "globby": "^11.0.4", + "gzip-size": "^6.0.0", + "immer": "^9.0.7", + "is-root": "^2.1.0", + "loader-utils": "^3.2.0", + "open": "^8.4.0", + "pkg-up": "^3.1.0", + "prompts": "^2.4.2", + "react-error-overlay": "^6.0.11", + "recursive-readdir": "^2.2.2", + "shell-quote": "^1.7.3", + "strip-ansi": "^6.0.1", + "text-table": "^0.2.0" + }, + "engines": { + "node": ">=14" + } + }, + "node_modules/react-dev-utils/node_modules/find-up": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", + "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", + "license": "MIT", + "dependencies": { + "locate-path": "^6.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/react-dev-utils/node_modules/loader-utils": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-3.3.1.tgz", + "integrity": "sha512-FMJTLMXfCLMLfJxcX9PFqX5qD88Z5MRGaZCVzfuqeZSPsyiBzs+pahDQjbIWz2QIzPZz0NX9Zy4FX3lmK6YHIg==", + "license": "MIT", + "engines": { + "node": ">= 12.13.0" + } + }, + "node_modules/react-dev-utils/node_modules/locate-path": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", + "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", + "license": "MIT", + "dependencies": { + "p-locate": "^5.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/react-dev-utils/node_modules/p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "license": "MIT", + "dependencies": { + "yocto-queue": "^0.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/react-dev-utils/node_modules/p-locate": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", + "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", + "license": "MIT", + "dependencies": { + "p-limit": "^3.0.2" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/react-dom": { + "version": "18.3.1", + "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-18.3.1.tgz", + "integrity": "sha512-5m4nQKp+rZRb09LNH59GM4BxTh9251/ylbKIbpe7TpGxfJ+9kv6BLkLBXIjjspbgbnIBNqlI23tRnTWT0snUIw==", + "license": "MIT", + "dependencies": { + "loose-envify": "^1.1.0", + "scheduler": "^0.23.2" + }, + "peerDependencies": { + "react": "^18.3.1" + } + }, + "node_modules/react-error-overlay": { + "version": "6.0.11", + "resolved": "https://registry.npmjs.org/react-error-overlay/-/react-error-overlay-6.0.11.tgz", + "integrity": "sha512-/6UZ2qgEyH2aqzYZgQPxEnz33NJ2gNsnHA2o5+o4wW9bLM/JYQitNP9xPhsXwC08hMMovfGe/8retsdDsczPRg==", + "license": "MIT" + }, + "node_modules/react-fast-compare": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/react-fast-compare/-/react-fast-compare-3.2.2.tgz", + "integrity": "sha512-nsO+KSNgo1SbJqJEYRE9ERzo7YtYbou/OqjSQKxV7jcKox7+usiUVZOAC+XnDOABXggQTno0Y1CpVnuWEc1boQ==", + "license": "MIT" + }, + "node_modules/react-icons": { + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/react-icons/-/react-icons-5.4.0.tgz", + "integrity": "sha512-7eltJxgVt7X64oHh6wSWNwwbKTCtMfK35hcjvJS0yxEAhPM8oUKdS3+kqaW1vicIltw+kR2unHaa12S9pPALoQ==", + "license": "MIT", + "peerDependencies": { + "react": "*" + } + }, + "node_modules/react-is": { + "version": "17.0.2", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", + "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==", + "license": "MIT" + }, + "node_modules/react-lifecycles-compat": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/react-lifecycles-compat/-/react-lifecycles-compat-3.0.4.tgz", + "integrity": "sha512-fBASbA6LnOU9dOU2eW7aQ8xmYBSXUIWr+UmF9b1efZBazGNO+rcXT/icdKnYm2pTwcRylVUYwW7H1PHfLekVzA==", + "license": "MIT" + }, + "node_modules/react-overlays": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/react-overlays/-/react-overlays-5.2.1.tgz", + "integrity": "sha512-GLLSOLWr21CqtJn8geSwQfoJufdt3mfdsnIiQswouuQ2MMPns+ihZklxvsTDKD3cR2tF8ELbi5xUsvqVhR6WvA==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.13.8", + "@popperjs/core": "^2.11.6", + "@restart/hooks": "^0.4.7", + "@types/warning": "^3.0.0", + "dom-helpers": "^5.2.0", + "prop-types": "^15.7.2", + "uncontrollable": "^7.2.1", + "warning": "^4.0.3" + }, + "peerDependencies": { + "react": ">=16.3.0", + "react-dom": ">=16.3.0" + } + }, + "node_modules/react-popper": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/react-popper/-/react-popper-2.3.0.tgz", + "integrity": "sha512-e1hj8lL3uM+sgSR4Lxzn5h1GxBlpa4CQz0XLF8kx4MDrDRWY0Ena4c97PUeSX9i5W3UAfDP0z0FXCTQkoXUl3Q==", + "license": "MIT", + "dependencies": { + "react-fast-compare": "^3.0.1", + "warning": "^4.0.2" + }, + "peerDependencies": { + "@popperjs/core": "^2.0.0", + "react": "^16.8.0 || ^17 || ^18", + "react-dom": "^16.8.0 || ^17 || ^18" + } + }, + "node_modules/react-refresh": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/react-refresh/-/react-refresh-0.11.0.tgz", + "integrity": "sha512-F27qZr8uUqwhWZboondsPx8tnC3Ct3SxZA3V5WyEvujRyyNv0VYPhoBg1gZ8/MV5tubQp76Trw8lTv9hzRBa+A==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/react-router": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/react-router/-/react-router-7.0.2.tgz", + "integrity": "sha512-m5AcPfTRUcjwmhBzOJGEl6Y7+Crqyju0+TgTQxoS4SO+BkWbhOrcfZNq6wSWdl2BBbJbsAoBUb8ZacOFT+/JlA==", + "license": "MIT", + "dependencies": { + "@types/cookie": "^0.6.0", + "cookie": "^1.0.1", + "set-cookie-parser": "^2.6.0", + "turbo-stream": "2.4.0" + }, + "engines": { + "node": ">=20.0.0" + }, + "peerDependencies": { + "react": ">=18", + "react-dom": ">=18" + }, + "peerDependenciesMeta": { + "react-dom": { + "optional": true + } + } + }, + "node_modules/react-router-dom": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/react-router-dom/-/react-router-dom-7.0.2.tgz", + "integrity": "sha512-VJOQ+CDWFDGaWdrG12Nl+d7yHtLaurNgAQZVgaIy7/Xd+DojgmYLosFfZdGz1wpxmjJIAkAMVTKWcvkx1oggAw==", + "license": "MIT", + "dependencies": { + "react-router": "7.0.2" + }, + "engines": { + "node": ">=20.0.0" + }, + "peerDependencies": { + "react": ">=18", + "react-dom": ">=18" + } + }, + "node_modules/react-router/node_modules/cookie": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-1.0.2.tgz", + "integrity": "sha512-9Kr/j4O16ISv8zBBhJoi4bXOYNTkFLOqSL3UDB0njXxCXNezjeyVrJyGOWtgfs/q2km1gwBcfH8q1yEGoMYunA==", + "license": "MIT", + "engines": { + "node": ">=18" + } + }, + "node_modules/react-scripts": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/react-scripts/-/react-scripts-5.0.1.tgz", + "integrity": "sha512-8VAmEm/ZAwQzJ+GOMLbBsTdDKOpuZh7RPs0UymvBR2vRk4iZWCskjbFnxqjrzoIvlNNRZ3QJFx6/qDSi6zSnaQ==", + "license": "MIT", + "dependencies": { + "@babel/core": "^7.16.0", + "@pmmmwh/react-refresh-webpack-plugin": "^0.5.3", + "@svgr/webpack": "^5.5.0", + "babel-jest": "^27.4.2", + "babel-loader": "^8.2.3", + "babel-plugin-named-asset-import": "^0.3.8", + "babel-preset-react-app": "^10.0.1", + "bfj": "^7.0.2", + "browserslist": "^4.18.1", + "camelcase": "^6.2.1", + "case-sensitive-paths-webpack-plugin": "^2.4.0", + "css-loader": "^6.5.1", + "css-minimizer-webpack-plugin": "^3.2.0", + "dotenv": "^10.0.0", + "dotenv-expand": "^5.1.0", + "eslint": "^8.3.0", + "eslint-config-react-app": "^7.0.1", + "eslint-webpack-plugin": "^3.1.1", + "file-loader": "^6.2.0", + "fs-extra": "^10.0.0", + "html-webpack-plugin": "^5.5.0", + "identity-obj-proxy": "^3.0.0", + "jest": "^27.4.3", + "jest-resolve": "^27.4.2", + "jest-watch-typeahead": "^1.0.0", + "mini-css-extract-plugin": "^2.4.5", + "postcss": "^8.4.4", + "postcss-flexbugs-fixes": "^5.0.2", + "postcss-loader": "^6.2.1", + "postcss-normalize": "^10.0.1", + "postcss-preset-env": "^7.0.1", + "prompts": "^2.4.2", + "react-app-polyfill": "^3.0.0", + "react-dev-utils": "^12.0.1", + "react-refresh": "^0.11.0", + "resolve": "^1.20.0", + "resolve-url-loader": "^4.0.0", + "sass-loader": "^12.3.0", + "semver": "^7.3.5", + "source-map-loader": "^3.0.0", + "style-loader": "^3.3.1", + "tailwindcss": "^3.0.2", + "terser-webpack-plugin": "^5.2.5", + "webpack": "^5.64.4", + "webpack-dev-server": "^4.6.0", + "webpack-manifest-plugin": "^4.0.2", + "workbox-webpack-plugin": "^6.4.1" + }, + "bin": { + "react-scripts": "bin/react-scripts.js" + }, + "engines": { + "node": ">=14.0.0" + }, + "optionalDependencies": { + "fsevents": "^2.3.2" + }, + "peerDependencies": { + "react": ">= 16", + "typescript": "^3.2.1 || ^4" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/react-toastify": { + "version": "10.0.6", + "resolved": "https://registry.npmjs.org/react-toastify/-/react-toastify-10.0.6.tgz", + "integrity": "sha512-yYjp+omCDf9lhZcrZHKbSq7YMuK0zcYkDFTzfRFgTXkTFHZ1ToxwAonzA4JI5CxA91JpjFLmwEsZEgfYfOqI1A==", + "license": "MIT", + "dependencies": { + "clsx": "^2.1.0" + }, + "peerDependencies": { + "react": ">=18", + "react-dom": ">=18" + } + }, + "node_modules/react-transition-group": { + "version": "4.4.5", + "resolved": "https://registry.npmjs.org/react-transition-group/-/react-transition-group-4.4.5.tgz", + "integrity": "sha512-pZcd1MCJoiKiBR2NRxeCRg13uCXbydPnmB4EOeRrY7480qNWO8IIgQG6zlDkm6uRMsURXPuKq0GWtiM59a5Q6g==", + "license": "BSD-3-Clause", + "dependencies": { + "@babel/runtime": "^7.5.5", + "dom-helpers": "^5.0.1", + "loose-envify": "^1.4.0", + "prop-types": "^15.6.2" + }, + "peerDependencies": { + "react": ">=16.6.0", + "react-dom": ">=16.6.0" + } + }, + "node_modules/read-cache": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/read-cache/-/read-cache-1.0.0.tgz", + "integrity": "sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==", + "license": "MIT", + "dependencies": { + "pify": "^2.3.0" + } + }, + "node_modules/readable-stream": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", + "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", + "license": "MIT", + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "license": "MIT", + "dependencies": { + "picomatch": "^2.2.1" + }, + "engines": { + "node": ">=8.10.0" + } + }, + "node_modules/recursive-readdir": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/recursive-readdir/-/recursive-readdir-2.2.3.tgz", + "integrity": "sha512-8HrF5ZsXk5FAH9dgsx3BlUer73nIhuj+9OrQwEbLTPOBzGkL1lsFCR01am+v+0m2Cmbs1nP12hLDl5FA7EszKA==", + "license": "MIT", + "dependencies": { + "minimatch": "^3.0.5" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/redent": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/redent/-/redent-3.0.0.tgz", + "integrity": "sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg==", + "license": "MIT", + "dependencies": { + "indent-string": "^4.0.0", + "strip-indent": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/reflect.getprototypeof": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/reflect.getprototypeof/-/reflect.getprototypeof-1.0.7.tgz", + "integrity": "sha512-bMvFGIUKlc/eSfXNX+aZ+EL95/EgZzuwA0OBPTbZZDEJw/0AkentjMuM1oiRfwHrshqk4RzdgiTg5CcDalXN5g==", + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.5", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.4", + "gopd": "^1.0.1", + "which-builtin-type": "^1.1.4" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/regenerate": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.2.tgz", + "integrity": "sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==", + "license": "MIT" + }, + "node_modules/regenerate-unicode-properties": { + "version": "10.2.0", + "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-10.2.0.tgz", + "integrity": "sha512-DqHn3DwbmmPVzeKj9woBadqmXxLvQoQIwu7nopMc72ztvxVmVk2SBhSnx67zuye5TP+lJsb/TBQsjLKhnDf3MA==", + "license": "MIT", + "dependencies": { + "regenerate": "^1.4.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/regenerator-runtime": { + "version": "0.14.1", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.14.1.tgz", + "integrity": "sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==", + "license": "MIT" + }, + "node_modules/regenerator-transform": { + "version": "0.15.2", + "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.15.2.tgz", + "integrity": "sha512-hfMp2BoF0qOk3uc5V20ALGDS2ddjQaLrdl7xrGXvAIow7qeWRM2VA2HuCHkUKk9slq3VwEwLNK3DFBqDfPGYtg==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.8.4" + } + }, + "node_modules/regex-parser": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/regex-parser/-/regex-parser-2.3.0.tgz", + "integrity": "sha512-TVILVSz2jY5D47F4mA4MppkBrafEaiUWJO/TcZHEIuI13AqoZMkK1WMA4Om1YkYbTx+9Ki1/tSUXbceyr9saRg==", + "license": "MIT" + }, + "node_modules/regexp.prototype.flags": { + "version": "1.5.3", + "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.3.tgz", + "integrity": "sha512-vqlC04+RQoFalODCbCumG2xIOvapzVMHwsyIGM/SIE8fRhFFsXeH8/QQ+s0T0kDAhKc4k30s73/0ydkHQz6HlQ==", + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-errors": "^1.3.0", + "set-function-name": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/regexpu-core": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-6.2.0.tgz", + "integrity": "sha512-H66BPQMrv+V16t8xtmq+UC0CBpiTBA60V8ibS1QVReIp8T1z8hwFxqcGzm9K6lgsN7sB5edVH8a+ze6Fqm4weA==", + "license": "MIT", + "dependencies": { + "regenerate": "^1.4.2", + "regenerate-unicode-properties": "^10.2.0", + "regjsgen": "^0.8.0", + "regjsparser": "^0.12.0", + "unicode-match-property-ecmascript": "^2.0.0", + "unicode-match-property-value-ecmascript": "^2.1.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/regjsgen": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.8.0.tgz", + "integrity": "sha512-RvwtGe3d7LvWiDQXeQw8p5asZUmfU1G/l6WbUXeHta7Y2PEIvBTwH6E2EfmYUK8pxcxEdEmaomqyp0vZZ7C+3Q==", + "license": "MIT" + }, + "node_modules/regjsparser": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.12.0.tgz", + "integrity": "sha512-cnE+y8bz4NhMjISKbgeVJtqNbtf5QpjZP+Bslo+UqkIt9QPnX9q095eiRRASJG1/tz6dlNr6Z5NsBiWYokp6EQ==", + "license": "BSD-2-Clause", + "dependencies": { + "jsesc": "~3.0.2" + }, + "bin": { + "regjsparser": "bin/parser" + } + }, + "node_modules/relateurl": { + "version": "0.2.7", + "resolved": "https://registry.npmjs.org/relateurl/-/relateurl-0.2.7.tgz", + "integrity": "sha512-G08Dxvm4iDN3MLM0EsP62EDV9IuhXPR6blNz6Utcp7zyV3tr4HVNINt6MpaRWbxoOHT3Q7YN2P+jaHX8vUbgog==", + "license": "MIT", + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/renderkid": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/renderkid/-/renderkid-3.0.0.tgz", + "integrity": "sha512-q/7VIQA8lmM1hF+jn+sFSPWGlMkSAeNYcPLmDQx2zzuiDfaLrOmumR8iaUKlenFgh0XRPIUeSPlH3A+AW3Z5pg==", + "license": "MIT", + "dependencies": { + "css-select": "^4.1.3", + "dom-converter": "^0.2.0", + "htmlparser2": "^6.1.0", + "lodash": "^4.17.21", + "strip-ansi": "^6.0.1" + } + }, + "node_modules/require-directory": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/require-from-string": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", + "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/requires-port": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", + "integrity": "sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==", + "license": "MIT" + }, + "node_modules/resolve": { + "version": "1.22.8", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz", + "integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==", + "license": "MIT", + "dependencies": { + "is-core-module": "^2.13.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/resolve-cwd": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-3.0.0.tgz", + "integrity": "sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==", + "license": "MIT", + "dependencies": { + "resolve-from": "^5.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/resolve-from": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", + "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/resolve-url-loader": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/resolve-url-loader/-/resolve-url-loader-4.0.0.tgz", + "integrity": "sha512-05VEMczVREcbtT7Bz+C+96eUO5HDNvdthIiMB34t7FcF8ehcu4wC0sSgPUubs3XW2Q3CNLJk/BJrCU9wVRymiA==", + "license": "MIT", + "dependencies": { + "adjust-sourcemap-loader": "^4.0.0", + "convert-source-map": "^1.7.0", + "loader-utils": "^2.0.0", + "postcss": "^7.0.35", + "source-map": "0.6.1" + }, + "engines": { + "node": ">=8.9" + }, + "peerDependencies": { + "rework": "1.0.1", + "rework-visit": "1.0.0" + }, + "peerDependenciesMeta": { + "rework": { + "optional": true + }, + "rework-visit": { + "optional": true + } + } + }, + "node_modules/resolve-url-loader/node_modules/convert-source-map": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz", + "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==", + "license": "MIT" + }, + "node_modules/resolve-url-loader/node_modules/picocolors": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", + "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", + "license": "ISC" + }, + "node_modules/resolve-url-loader/node_modules/postcss": { + "version": "7.0.39", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", + "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", + "license": "MIT", + "dependencies": { + "picocolors": "^0.2.1", + "source-map": "^0.6.1" + }, + "engines": { + "node": ">=6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + } + }, + "node_modules/resolve-url-loader/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/resolve.exports": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/resolve.exports/-/resolve.exports-1.1.1.tgz", + "integrity": "sha512-/NtpHNDN7jWhAaQ9BvBUYZ6YTXsRBgfqWFWP7BZBaoMJO/I3G5OFzvTuWNlZC3aPjins1F+TNrLKsGbH4rfsRQ==", + "license": "MIT", + "engines": { + "node": ">=10" + } + }, + "node_modules/retry": { + "version": "0.13.1", + "resolved": "https://registry.npmjs.org/retry/-/retry-0.13.1.tgz", + "integrity": "sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg==", + "license": "MIT", + "engines": { + "node": ">= 4" + } + }, + "node_modules/reusify": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", + "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", + "license": "MIT", + "engines": { + "iojs": ">=1.0.0", + "node": ">=0.10.0" + } + }, + "node_modules/rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "deprecated": "Rimraf versions prior to v4 are no longer supported", + "license": "ISC", + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/rollup": { + "version": "2.79.2", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-2.79.2.tgz", + "integrity": "sha512-fS6iqSPZDs3dr/y7Od6y5nha8dW1YnbgtsyotCVvoFGKbERG++CVRFv1meyGDE1SNItQA8BrnCw7ScdAhRJ3XQ==", + "license": "MIT", + "bin": { + "rollup": "dist/bin/rollup" + }, + "engines": { + "node": ">=10.0.0" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, + "node_modules/rollup-plugin-terser": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/rollup-plugin-terser/-/rollup-plugin-terser-7.0.2.tgz", + "integrity": "sha512-w3iIaU4OxcF52UUXiZNsNeuXIMDvFrr+ZXK6bFZ0Q60qyVfq4uLptoS4bbq3paG3x216eQllFZX7zt6TIImguQ==", + "deprecated": "This package has been deprecated and is no longer maintained. Please use @rollup/plugin-terser", + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.10.4", + "jest-worker": "^26.2.1", + "serialize-javascript": "^4.0.0", + "terser": "^5.0.0" + }, + "peerDependencies": { + "rollup": "^2.0.0" + } + }, + "node_modules/rollup-plugin-terser/node_modules/jest-worker": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-26.6.2.tgz", + "integrity": "sha512-KWYVV1c4i+jbMpaBC+U++4Va0cp8OisU185o73T1vo99hqi7w8tSJfUXYswwqqrjzwxa6KpRK54WhPvwf5w6PQ==", + "license": "MIT", + "dependencies": { + "@types/node": "*", + "merge-stream": "^2.0.0", + "supports-color": "^7.0.0" + }, + "engines": { + "node": ">= 10.13.0" + } + }, + "node_modules/rollup-plugin-terser/node_modules/serialize-javascript": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-4.0.0.tgz", + "integrity": "sha512-GaNA54380uFefWghODBWEGisLZFj00nS5ACs6yHa9nLqlLpVLO8ChDGeKRjZnV4Nh4n0Qi7nhYZD/9fCPzEqkw==", + "license": "BSD-3-Clause", + "dependencies": { + "randombytes": "^2.1.0" + } + }, + "node_modules/run-parallel": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT", + "dependencies": { + "queue-microtask": "^1.2.2" + } + }, + "node_modules/safe-array-concat": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/safe-array-concat/-/safe-array-concat-1.1.2.tgz", + "integrity": "sha512-vj6RsCsWBCf19jIeHEfkRMw8DPiBb+DMXklQ/1SGDHOMlHdPUkZXFQ2YdplS23zESTijAcurb1aSgJA3AgMu1Q==", + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "get-intrinsic": "^1.2.4", + "has-symbols": "^1.0.3", + "isarray": "^2.0.5" + }, + "engines": { + "node": ">=0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT" + }, + "node_modules/safe-regex-test": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.0.3.tgz", + "integrity": "sha512-CdASjNJPvRa7roO6Ra/gLYBTzYzzPyyBXxIMdGW3USQLyjWEls2RgW5UBTXaQVp+OrpeCK3bLem8smtmheoRuw==", + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.6", + "es-errors": "^1.3.0", + "is-regex": "^1.1.4" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", + "license": "MIT" + }, + "node_modules/sanitize.css": { + "version": "13.0.0", + "resolved": "https://registry.npmjs.org/sanitize.css/-/sanitize.css-13.0.0.tgz", + "integrity": "sha512-ZRwKbh/eQ6w9vmTjkuG0Ioi3HBwPFce0O+v//ve+aOq1oeCy7jMV2qzzAlpsNuqpqCBjjriM1lbtZbF/Q8jVyA==", + "license": "CC0-1.0" + }, + "node_modules/sass-loader": { + "version": "12.6.0", + "resolved": "https://registry.npmjs.org/sass-loader/-/sass-loader-12.6.0.tgz", + "integrity": "sha512-oLTaH0YCtX4cfnJZxKSLAyglED0naiYfNG1iXfU5w1LNZ+ukoA5DtyDIN5zmKVZwYNJP4KRc5Y3hkWga+7tYfA==", + "license": "MIT", + "dependencies": { + "klona": "^2.0.4", + "neo-async": "^2.6.2" + }, + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "fibers": ">= 3.1.0", + "node-sass": "^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0", + "sass": "^1.3.0", + "sass-embedded": "*", + "webpack": "^5.0.0" + }, + "peerDependenciesMeta": { + "fibers": { + "optional": true + }, + "node-sass": { + "optional": true + }, + "sass": { + "optional": true + }, + "sass-embedded": { + "optional": true + } + } + }, + "node_modules/sax": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz", + "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==", + "license": "ISC" + }, + "node_modules/saxes": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/saxes/-/saxes-5.0.1.tgz", + "integrity": "sha512-5LBh1Tls8c9xgGjw3QrMwETmTMVk0oFgvrFSvWx62llR2hcEInrKNZ2GZCCuuy2lvWrdl5jhbpeqc5hRYKFOcw==", + "license": "ISC", + "dependencies": { + "xmlchars": "^2.2.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/scheduler": { + "version": "0.23.2", + "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.23.2.tgz", + "integrity": "sha512-UOShsPwz7NrMUqhR6t0hWjFduvOzbtv7toDH1/hIrfRNIDBnnBWd0CwJTGvTpngVlmwGCdP9/Zl/tVrDqcuYzQ==", + "license": "MIT", + "dependencies": { + "loose-envify": "^1.1.0" + } + }, + "node_modules/schema-utils": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.2.0.tgz", + "integrity": "sha512-L0jRsrPpjdckP3oPug3/VxNKt2trR8TcabrM6FOAAlvC/9Phcmm+cuAgTlxBqdBR1WJx7Naj9WHw+aOmheSVbw==", + "license": "MIT", + "dependencies": { + "@types/json-schema": "^7.0.9", + "ajv": "^8.9.0", + "ajv-formats": "^2.1.1", + "ajv-keywords": "^5.1.0" + }, + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/schema-utils/node_modules/ajv": { + "version": "8.17.1", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.17.1.tgz", + "integrity": "sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==", + "license": "MIT", + "dependencies": { + "fast-deep-equal": "^3.1.3", + "fast-uri": "^3.0.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/schema-utils/node_modules/ajv-keywords": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz", + "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==", + "license": "MIT", + "dependencies": { + "fast-deep-equal": "^3.1.3" + }, + "peerDependencies": { + "ajv": "^8.8.2" + } + }, + "node_modules/schema-utils/node_modules/json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", + "license": "MIT" + }, + "node_modules/scroll-into-view-if-needed": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/scroll-into-view-if-needed/-/scroll-into-view-if-needed-3.1.0.tgz", + "integrity": "sha512-49oNpRjWRvnU8NyGVmUaYG4jtTkNonFZI86MmGRDqBphEK2EXT9gdEUoQPZhuBM8yWHxCWbobltqYO5M4XrUvQ==", + "license": "MIT", + "dependencies": { + "compute-scroll-into-view": "^3.0.2" + } + }, + "node_modules/select-hose": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/select-hose/-/select-hose-2.0.0.tgz", + "integrity": "sha512-mEugaLK+YfkijB4fx0e6kImuJdCIt2LxCRcbEYPqRGCs4F2ogyfZU5IAZRdjCP8JPq2AtdNoC/Dux63d9Kiryg==", + "license": "MIT" + }, + "node_modules/selfsigned": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/selfsigned/-/selfsigned-2.4.1.tgz", + "integrity": "sha512-th5B4L2U+eGLq1TVh7zNRGBapioSORUeymIydxgFpwww9d2qyKvtuPU2jJuHvYAwwqi2Y596QBL3eEqcPEYL8Q==", + "license": "MIT", + "dependencies": { + "@types/node-forge": "^1.3.0", + "node-forge": "^1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/semver": { + "version": "7.6.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", + "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/send": { + "version": "0.19.0", + "resolved": "https://registry.npmjs.org/send/-/send-0.19.0.tgz", + "integrity": "sha512-dW41u5VfLXu8SJh5bwRmyYUbAoSB3c9uQh6L8h/KtsFREPWpbX1lrljJo186Jc4nmci/sGUZ9a0a0J2zgfq2hw==", + "license": "MIT", + "dependencies": { + "debug": "2.6.9", + "depd": "2.0.0", + "destroy": "1.2.0", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "fresh": "0.5.2", + "http-errors": "2.0.0", + "mime": "1.6.0", + "ms": "2.1.3", + "on-finished": "2.4.1", + "range-parser": "~1.2.1", + "statuses": "2.0.1" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/send/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "license": "MIT", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/send/node_modules/debug/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "license": "MIT" + }, + "node_modules/send/node_modules/encodeurl": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", + "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/serialize-javascript": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.2.tgz", + "integrity": "sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g==", + "license": "BSD-3-Clause", + "dependencies": { + "randombytes": "^2.1.0" + } + }, + "node_modules/serve-index": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/serve-index/-/serve-index-1.9.1.tgz", + "integrity": "sha512-pXHfKNP4qujrtteMrSBb0rc8HJ9Ms/GrXwcUtUtD5s4ewDJI8bT3Cz2zTVRMKtri49pLx2e0Ya8ziP5Ya2pZZw==", + "license": "MIT", + "dependencies": { + "accepts": "~1.3.4", + "batch": "0.6.1", + "debug": "2.6.9", + "escape-html": "~1.0.3", + "http-errors": "~1.6.2", + "mime-types": "~2.1.17", + "parseurl": "~1.3.2" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/serve-index/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "license": "MIT", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/serve-index/node_modules/depd": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", + "integrity": "sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/serve-index/node_modules/http-errors": { + "version": "1.6.3", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz", + "integrity": "sha512-lks+lVC8dgGyh97jxvxeYTWQFvh4uw4yC12gVl63Cg30sjPX4wuGcdkICVXDAESr6OJGjqGA8Iz5mkeN6zlD7A==", + "license": "MIT", + "dependencies": { + "depd": "~1.1.2", + "inherits": "2.0.3", + "setprototypeof": "1.1.0", + "statuses": ">= 1.4.0 < 2" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/serve-index/node_modules/inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw==", + "license": "ISC" + }, + "node_modules/serve-index/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "license": "MIT" + }, + "node_modules/serve-index/node_modules/setprototypeof": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz", + "integrity": "sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==", + "license": "ISC" + }, + "node_modules/serve-index/node_modules/statuses": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", + "integrity": "sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/serve-static": { + "version": "1.16.2", + "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.16.2.tgz", + "integrity": "sha512-VqpjJZKadQB/PEbEwvFdO43Ax5dFBZ2UECszz8bQ7pi7wt//PWe1P6MN7eCnjsatYtBT6EuiClbjSWP2WrIoTw==", + "license": "MIT", + "dependencies": { + "encodeurl": "~2.0.0", + "escape-html": "~1.0.3", + "parseurl": "~1.3.3", + "send": "0.19.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/set-cookie-parser": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/set-cookie-parser/-/set-cookie-parser-2.7.1.tgz", + "integrity": "sha512-IOc8uWeOZgnb3ptbCURJWNjWUPcO3ZnTTdzsurqERrP6nPyv+paC55vJM0LpOlT2ne+Ix+9+CRG1MNLlyZ4GjQ==", + "license": "MIT" + }, + "node_modules/set-function-length": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.2.tgz", + "integrity": "sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==", + "license": "MIT", + "dependencies": { + "define-data-property": "^1.1.4", + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.4", + "gopd": "^1.0.1", + "has-property-descriptors": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/set-function-name": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/set-function-name/-/set-function-name-2.0.2.tgz", + "integrity": "sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ==", + "license": "MIT", + "dependencies": { + "define-data-property": "^1.1.4", + "es-errors": "^1.3.0", + "functions-have-names": "^1.2.3", + "has-property-descriptors": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/setprototypeof": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", + "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==", + "license": "ISC" + }, + "node_modules/shallowequal": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/shallowequal/-/shallowequal-1.1.0.tgz", + "integrity": "sha512-y0m1JoUZSlPAjXVtPPW70aZWfIL/dSP7AFkRnniLCrK/8MDKog3TySTBmckD+RObVxH0v4Tox67+F14PdED2oQ==", + "license": "MIT" + }, + "node_modules/shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "license": "MIT", + "dependencies": { + "shebang-regex": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/shell-quote": { + "version": "1.8.2", + "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.8.2.tgz", + "integrity": "sha512-AzqKpGKjrj7EM6rKVQEPpB288oCfnrEIuyoT9cyF4nmGa7V8Zk6f7RRqYisX8X9m+Q7bd632aZW4ky7EhbQztA==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/side-channel": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.6.tgz", + "integrity": "sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==", + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.4", + "object-inspect": "^1.13.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/signal-exit": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", + "license": "ISC" + }, + "node_modules/sisteransi": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz", + "integrity": "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==", + "license": "MIT" + }, + "node_modules/slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/sockjs": { + "version": "0.3.24", + "resolved": "https://registry.npmjs.org/sockjs/-/sockjs-0.3.24.tgz", + "integrity": "sha512-GJgLTZ7vYb/JtPSSZ10hsOYIvEYsjbNU+zPdIHcUaWVNUEPivzxku31865sSSud0Da0W4lEeOPlmw93zLQchuQ==", + "license": "MIT", + "dependencies": { + "faye-websocket": "^0.11.3", + "uuid": "^8.3.2", + "websocket-driver": "^0.7.4" + } + }, + "node_modules/source-list-map": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/source-list-map/-/source-list-map-2.0.1.tgz", + "integrity": "sha512-qnQ7gVMxGNxsiL4lEuJwe/To8UnK7fAnmbGEEH8RpLouuKbeEm0lhbQVFIrNSuB+G7tVrAlVsZgETT5nljf+Iw==", + "license": "MIT" + }, + "node_modules/source-map": { + "version": "0.7.4", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.4.tgz", + "integrity": "sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==", + "license": "BSD-3-Clause", + "engines": { + "node": ">= 8" + } + }, + "node_modules/source-map-js": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz", + "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==", + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/source-map-loader": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/source-map-loader/-/source-map-loader-3.0.2.tgz", + "integrity": "sha512-BokxPoLjyl3iOrgkWaakaxqnelAJSS+0V+De0kKIq6lyWrXuiPgYTGp6z3iHmqljKAaLXwZa+ctD8GccRJeVvg==", + "license": "MIT", + "dependencies": { + "abab": "^2.0.5", + "iconv-lite": "^0.6.3", + "source-map-js": "^1.0.1" + }, + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^5.0.0" + } + }, + "node_modules/source-map-support": { + "version": "0.5.21", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", + "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", + "license": "MIT", + "dependencies": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + } + }, + "node_modules/source-map-support/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/sourcemap-codec": { + "version": "1.4.8", + "resolved": "https://registry.npmjs.org/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz", + "integrity": "sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==", + "deprecated": "Please use @jridgewell/sourcemap-codec instead", + "license": "MIT" + }, + "node_modules/spdy": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/spdy/-/spdy-4.0.2.tgz", + "integrity": "sha512-r46gZQZQV+Kl9oItvl1JZZqJKGr+oEkB08A6BzkiR7593/7IbtuncXHd2YoYeTsG4157ZssMu9KYvUHLcjcDoA==", + "license": "MIT", + "dependencies": { + "debug": "^4.1.0", + "handle-thing": "^2.0.0", + "http-deceiver": "^1.2.7", + "select-hose": "^2.0.0", + "spdy-transport": "^3.0.0" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/spdy-transport": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/spdy-transport/-/spdy-transport-3.0.0.tgz", + "integrity": "sha512-hsLVFE5SjA6TCisWeJXFKniGGOpBgMLmerfO2aCyCU5s7nJ/rpAepqmFifv/GCbSbueEeAJJnmSQ2rKC/g8Fcw==", + "license": "MIT", + "dependencies": { + "debug": "^4.1.0", + "detect-node": "^2.0.4", + "hpack.js": "^2.1.6", + "obuf": "^1.1.2", + "readable-stream": "^3.0.6", + "wbuf": "^1.7.3" + } + }, + "node_modules/sprintf-js": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", + "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==", + "license": "BSD-3-Clause" + }, + "node_modules/stable": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/stable/-/stable-0.1.8.tgz", + "integrity": "sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w==", + "deprecated": "Modern JS already guarantees Array#sort() is a stable sort, so this library is deprecated. See the compatibility table on MDN: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/sort#browser_compatibility", + "license": "MIT" + }, + "node_modules/stack-utils": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.6.tgz", + "integrity": "sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ==", + "license": "MIT", + "dependencies": { + "escape-string-regexp": "^2.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/stack-utils/node_modules/escape-string-regexp": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz", + "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/stackframe": { + "version": "1.3.4", + "resolved": "https://registry.npmjs.org/stackframe/-/stackframe-1.3.4.tgz", + "integrity": "sha512-oeVtt7eWQS+Na6F//S4kJ2K2VbRlS9D43mAlMyVpVWovy9o+jfgH8O9agzANzaiLjclA0oYzUXEM4PurhSUChw==", + "license": "MIT" + }, + "node_modules/static-eval": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/static-eval/-/static-eval-2.0.2.tgz", + "integrity": "sha512-N/D219Hcr2bPjLxPiV+TQE++Tsmrady7TqAJugLy7Xk1EumfDWS/f5dtBbkRCGE7wKKXuYockQoj8Rm2/pVKyg==", + "license": "MIT", + "dependencies": { + "escodegen": "^1.8.1" + } + }, + "node_modules/static-eval/node_modules/escodegen": { + "version": "1.14.3", + "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.14.3.tgz", + "integrity": "sha512-qFcX0XJkdg+PB3xjZZG/wKSuT1PnQWx57+TVSjIMmILd2yC/6ByYElPwJnslDsuWuSAp4AwJGumarAAmJch5Kw==", + "license": "BSD-2-Clause", + "dependencies": { + "esprima": "^4.0.1", + "estraverse": "^4.2.0", + "esutils": "^2.0.2", + "optionator": "^0.8.1" + }, + "bin": { + "escodegen": "bin/escodegen.js", + "esgenerate": "bin/esgenerate.js" + }, + "engines": { + "node": ">=4.0" + }, + "optionalDependencies": { + "source-map": "~0.6.1" + } + }, + "node_modules/static-eval/node_modules/estraverse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", + "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", + "license": "BSD-2-Clause", + "engines": { + "node": ">=4.0" + } + }, + "node_modules/static-eval/node_modules/levn": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", + "integrity": "sha512-0OO4y2iOHix2W6ujICbKIaEQXvFQHue65vUG3pb5EUomzPI90z9hsA1VsO/dbIIpC53J8gxM9Q4Oho0jrCM/yA==", + "license": "MIT", + "dependencies": { + "prelude-ls": "~1.1.2", + "type-check": "~0.3.2" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/static-eval/node_modules/optionator": { + "version": "0.8.3", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz", + "integrity": "sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==", + "license": "MIT", + "dependencies": { + "deep-is": "~0.1.3", + "fast-levenshtein": "~2.0.6", + "levn": "~0.3.0", + "prelude-ls": "~1.1.2", + "type-check": "~0.3.2", + "word-wrap": "~1.2.3" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/static-eval/node_modules/prelude-ls": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", + "integrity": "sha512-ESF23V4SKG6lVSGZgYNpbsiaAkdab6ZgOxe52p7+Kid3W3u3bxR4Vfd/o21dmN7jSt0IwgZ4v5MUd26FEtXE9w==", + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/static-eval/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "license": "BSD-3-Clause", + "optional": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/static-eval/node_modules/type-check": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", + "integrity": "sha512-ZCmOJdvOWDBYJlzAoFkC+Q0+bUyEOS1ltgp1MGU03fqHG+dbi9tBFU2Rd9QKiDZFAYrhPh2JUf7rZRIuHRKtOg==", + "license": "MIT", + "dependencies": { + "prelude-ls": "~1.1.2" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/statuses": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", + "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/stop-iteration-iterator": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/stop-iteration-iterator/-/stop-iteration-iterator-1.0.0.tgz", + "integrity": "sha512-iCGQj+0l0HOdZ2AEeBADlsRC+vsnDsZsbdSiH1yNSjcfKM7fdpCMfqAL/dwF5BLiw/XhRft/Wax6zQbhq2BcjQ==", + "license": "MIT", + "dependencies": { + "internal-slot": "^1.0.4" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/string_decoder": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", + "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", + "license": "MIT", + "dependencies": { + "safe-buffer": "~5.2.0" + } + }, + "node_modules/string-length": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/string-length/-/string-length-4.0.2.tgz", + "integrity": "sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ==", + "license": "MIT", + "dependencies": { + "char-regex": "^1.0.2", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/string-natural-compare": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/string-natural-compare/-/string-natural-compare-3.0.1.tgz", + "integrity": "sha512-n3sPwynL1nwKi3WJ6AIsClwBMa0zTi54fn2oLU6ndfTSIO05xaznjSf15PcBZU6FNWbmN5Q6cxT4V5hGvB4taw==", + "license": "MIT" + }, + "node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "license": "MIT", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/string-width-cjs": { + "name": "string-width", + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "license": "MIT", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/string-width-cjs/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "license": "MIT" + }, + "node_modules/string-width/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "license": "MIT" + }, + "node_modules/string.prototype.includes": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/string.prototype.includes/-/string.prototype.includes-2.0.1.tgz", + "integrity": "sha512-o7+c9bW6zpAdJHTtujeePODAhkuicdAryFsfVKwA+wGw89wJ4GTY484WTucM9hLtDEOpOvI+aHnzqnC5lHp4Rg==", + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.3" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/string.prototype.matchall": { + "version": "4.0.11", + "resolved": "https://registry.npmjs.org/string.prototype.matchall/-/string.prototype.matchall-4.0.11.tgz", + "integrity": "sha512-NUdh0aDavY2og7IbBPenWqR9exH+E26Sv8e0/eTe1tltDGZL+GtBkDAnnyBtmekfK6/Dq3MkcGtzXFEd1LQrtg==", + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.2", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.0.0", + "get-intrinsic": "^1.2.4", + "gopd": "^1.0.1", + "has-symbols": "^1.0.3", + "internal-slot": "^1.0.7", + "regexp.prototype.flags": "^1.5.2", + "set-function-name": "^2.0.2", + "side-channel": "^1.0.6" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/string.prototype.repeat": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/string.prototype.repeat/-/string.prototype.repeat-1.0.0.tgz", + "integrity": "sha512-0u/TldDbKD8bFCQ/4f5+mNRrXwZ8hg2w7ZR8wa16e8z9XpePWl3eGEcUD0OXpEH/VJH/2G3gjUtR3ZOiBe2S/w==", + "license": "MIT", + "dependencies": { + "define-properties": "^1.1.3", + "es-abstract": "^1.17.5" + } + }, + "node_modules/string.prototype.trim": { + "version": "1.2.9", + "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.9.tgz", + "integrity": "sha512-klHuCNxiMZ8MlsOihJhJEBJAiMVqU3Z2nEXWfWnIqjN0gEFS9J9+IxKozWWtQGcgoa1WUZzLjKPTr4ZHNFTFxw==", + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.0", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/string.prototype.trimend": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.8.tgz", + "integrity": "sha512-p73uL5VCHCO2BZZ6krwwQE3kCzM7NKmis8S//xEC6fQonchbum4eP6kR4DLEjQFO3Wnj3Fuo8NM0kOSjVdHjZQ==", + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-object-atoms": "^1.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/string.prototype.trimstart": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.8.tgz", + "integrity": "sha512-UXSH262CSZY1tfu3G3Secr6uGLCFVPMhIqHjlgCUtCCcgihYc/xKs9djMTMUOb2j1mVSeU8EU6NWc/iQKU6Gfg==", + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/stringify-object": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/stringify-object/-/stringify-object-3.3.0.tgz", + "integrity": "sha512-rHqiFh1elqCQ9WPLIC8I0Q/g/wj5J1eMkyoiD6eoQApWHP0FtlK7rqnhmabL5VUY9JQCcqwwvlOaSuutekgyrw==", + "license": "BSD-2-Clause", + "dependencies": { + "get-own-enumerable-property-symbols": "^3.0.0", + "is-obj": "^1.0.1", + "is-regexp": "^1.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "license": "MIT", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-ansi-cjs": { + "name": "strip-ansi", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "license": "MIT", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-bom": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-4.0.0.tgz", + "integrity": "sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-comments": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/strip-comments/-/strip-comments-2.0.1.tgz", + "integrity": "sha512-ZprKx+bBLXv067WTCALv8SSz5l2+XhpYCsVtSqlMnkAXMWDq+/ekVbl1ghqP9rUHTzv6sm/DwCOiYutU/yp1fw==", + "license": "MIT", + "engines": { + "node": ">=10" + } + }, + "node_modules/strip-final-newline": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", + "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/strip-indent": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-3.0.0.tgz", + "integrity": "sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==", + "license": "MIT", + "dependencies": { + "min-indent": "^1.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-json-comments": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", + "license": "MIT", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/style-loader": { + "version": "3.3.4", + "resolved": "https://registry.npmjs.org/style-loader/-/style-loader-3.3.4.tgz", + "integrity": "sha512-0WqXzrsMTyb8yjZJHDqwmnwRJvhALK9LfRtRc6B4UTWe8AijYLZYZ9thuJTZc2VfQWINADW/j+LiJnfy2RoC1w==", + "license": "MIT", + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^5.0.0" + } + }, + "node_modules/styled-components": { + "version": "6.1.13", + "resolved": "https://registry.npmjs.org/styled-components/-/styled-components-6.1.13.tgz", + "integrity": "sha512-M0+N2xSnAtwcVAQeFEsGWFFxXDftHUD7XrKla06QbpUMmbmtFBMMTcKWvFXtWxuD5qQkB8iU5gk6QASlx2ZRMw==", + "license": "MIT", + "dependencies": { + "@emotion/is-prop-valid": "1.2.2", + "@emotion/unitless": "0.8.1", + "@types/stylis": "4.2.5", + "css-to-react-native": "3.2.0", + "csstype": "3.1.3", + "postcss": "8.4.38", + "shallowequal": "1.1.0", + "stylis": "4.3.2", + "tslib": "2.6.2" + }, + "engines": { + "node": ">= 16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/styled-components" + }, + "peerDependencies": { + "react": ">= 16.8.0", + "react-dom": ">= 16.8.0" + } + }, + "node_modules/styled-components/node_modules/postcss": { + "version": "8.4.38", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.38.tgz", + "integrity": "sha512-Wglpdk03BSfXkHoQa3b/oulrotAkwrlLDRSOb9D0bN86FdRyE9lppSp33aHNPgBa0JKCoB+drFLZkQoRRYae5A==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "nanoid": "^3.3.7", + "picocolors": "^1.0.0", + "source-map-js": "^1.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14" + } + }, + "node_modules/styled-components/node_modules/tslib": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz", + "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==", + "license": "0BSD" + }, + "node_modules/stylehacks": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/stylehacks/-/stylehacks-5.1.1.tgz", + "integrity": "sha512-sBpcd5Hx7G6seo7b1LkpttvTz7ikD0LlH5RmdcBNb6fFR0Fl7LQwHDFr300q4cwUqi+IYrFGmsIHieMBfnN/Bw==", + "license": "MIT", + "dependencies": { + "browserslist": "^4.21.4", + "postcss-selector-parser": "^6.0.4" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/stylis": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/stylis/-/stylis-4.3.2.tgz", + "integrity": "sha512-bhtUjWd/z6ltJiQwg0dUfxEJ+W+jdqQd8TbWLWyeIJHlnsqmGLRFFd8e5mA0AZi/zx90smXRlN66YMTcaSFifg==", + "license": "MIT" + }, + "node_modules/sucrase": { + "version": "3.35.0", + "resolved": "https://registry.npmjs.org/sucrase/-/sucrase-3.35.0.tgz", + "integrity": "sha512-8EbVDiu9iN/nESwxeSxDKe0dunta1GOlHufmSSXxMD2z2/tMZpDMpvXQGsc+ajGo8y2uYUmixaSRUc/QPoQ0GA==", + "license": "MIT", + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.2", + "commander": "^4.0.0", + "glob": "^10.3.10", + "lines-and-columns": "^1.1.6", + "mz": "^2.7.0", + "pirates": "^4.0.1", + "ts-interface-checker": "^0.1.9" + }, + "bin": { + "sucrase": "bin/sucrase", + "sucrase-node": "bin/sucrase-node" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + } + }, + "node_modules/sucrase/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/sucrase/node_modules/commander": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz", + "integrity": "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==", + "license": "MIT", + "engines": { + "node": ">= 6" + } + }, + "node_modules/sucrase/node_modules/glob": { + "version": "10.4.5", + "resolved": "https://registry.npmjs.org/glob/-/glob-10.4.5.tgz", + "integrity": "sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==", + "license": "ISC", + "dependencies": { + "foreground-child": "^3.1.0", + "jackspeak": "^3.1.2", + "minimatch": "^9.0.4", + "minipass": "^7.1.2", + "package-json-from-dist": "^1.0.0", + "path-scurry": "^1.11.1" + }, + "bin": { + "glob": "dist/esm/bin.mjs" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/sucrase/node_modules/minimatch": { + "version": "9.0.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", + "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", + "license": "ISC", + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/supports-hyperlinks": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/supports-hyperlinks/-/supports-hyperlinks-2.3.0.tgz", + "integrity": "sha512-RpsAZlpWcDwOPQA22aCH4J0t7L8JmAvsCxfOSEwm7cQs3LshN36QaTkwd70DnBOXDWGssw2eUoc8CaRWT0XunA==", + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0", + "supports-color": "^7.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/supports-preserve-symlinks-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/svg-parser": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/svg-parser/-/svg-parser-2.0.4.tgz", + "integrity": "sha512-e4hG1hRwoOdRb37cIMSgzNsxyzKfayW6VOflrwvR+/bzrkyxY/31WkbgnQpgtrNp1SdpJvpUAGTa/ZoiPNDuRQ==", + "license": "MIT" + }, + "node_modules/svgo": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/svgo/-/svgo-1.3.2.tgz", + "integrity": "sha512-yhy/sQYxR5BkC98CY7o31VGsg014AKLEPxdfhora76l36hD9Rdy5NZA/Ocn6yayNPgSamYdtX2rFJdcv07AYVw==", + "deprecated": "This SVGO version is no longer supported. Upgrade to v2.x.x.", + "license": "MIT", + "dependencies": { + "chalk": "^2.4.1", + "coa": "^2.0.2", + "css-select": "^2.0.0", + "css-select-base-adapter": "^0.1.1", + "css-tree": "1.0.0-alpha.37", + "csso": "^4.0.2", + "js-yaml": "^3.13.1", + "mkdirp": "~0.5.1", + "object.values": "^1.1.0", + "sax": "~1.2.4", + "stable": "^0.1.8", + "unquote": "~1.1.1", + "util.promisify": "~1.0.0" + }, + "bin": { + "svgo": "bin/svgo" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/svgo/node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "license": "MIT", + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/svgo/node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "license": "MIT", + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/svgo/node_modules/color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "license": "MIT", + "dependencies": { + "color-name": "1.1.3" + } + }, + "node_modules/svgo/node_modules/color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", + "license": "MIT" + }, + "node_modules/svgo/node_modules/css-select": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/css-select/-/css-select-2.1.0.tgz", + "integrity": "sha512-Dqk7LQKpwLoH3VovzZnkzegqNSuAziQyNZUcrdDM401iY+R5NkGBXGmtO05/yaXQziALuPogeG0b7UAgjnTJTQ==", + "license": "BSD-2-Clause", + "dependencies": { + "boolbase": "^1.0.0", + "css-what": "^3.2.1", + "domutils": "^1.7.0", + "nth-check": "^1.0.2" + } + }, + "node_modules/svgo/node_modules/css-what": { + "version": "3.4.2", + "resolved": "https://registry.npmjs.org/css-what/-/css-what-3.4.2.tgz", + "integrity": "sha512-ACUm3L0/jiZTqfzRM3Hi9Q8eZqd6IK37mMWPLz9PJxkLWllYeRf+EHUSHYEtFop2Eqytaq1FizFVh7XfBnXCDQ==", + "license": "BSD-2-Clause", + "engines": { + "node": ">= 6" + }, + "funding": { + "url": "https://github.com/sponsors/fb55" + } + }, + "node_modules/svgo/node_modules/dom-serializer": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.2.2.tgz", + "integrity": "sha512-2/xPb3ORsQ42nHYiSunXkDjPLBaEj/xTwUO4B7XCZQTRk7EBtTOPaygh10YAAh2OI1Qrp6NWfpAhzswj0ydt9g==", + "license": "MIT", + "dependencies": { + "domelementtype": "^2.0.1", + "entities": "^2.0.0" + } + }, + "node_modules/svgo/node_modules/domutils": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-1.7.0.tgz", + "integrity": "sha512-Lgd2XcJ/NjEw+7tFvfKxOzCYKZsdct5lczQ2ZaQY8Djz7pfAD3Gbp8ySJWtreII/vDlMVmxwa6pHmdxIYgttDg==", + "license": "BSD-2-Clause", + "dependencies": { + "dom-serializer": "0", + "domelementtype": "1" + } + }, + "node_modules/svgo/node_modules/domutils/node_modules/domelementtype": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-1.3.1.tgz", + "integrity": "sha512-BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w==", + "license": "BSD-2-Clause" + }, + "node_modules/svgo/node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "license": "MIT", + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/svgo/node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/svgo/node_modules/nth-check": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-1.0.2.tgz", + "integrity": "sha512-WeBOdju8SnzPN5vTUJYxYUxLeXpCaVP5i5e0LF8fg7WORF2Wd7wFX/pk0tYZk7s8T+J7VLy0Da6J1+wCT0AtHg==", + "license": "BSD-2-Clause", + "dependencies": { + "boolbase": "~1.0.0" + } + }, + "node_modules/svgo/node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "license": "MIT", + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/symbol-tree": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/symbol-tree/-/symbol-tree-3.2.4.tgz", + "integrity": "sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==", + "license": "MIT" + }, + "node_modules/tailwindcss": { + "version": "3.4.15", + "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.4.15.tgz", + "integrity": "sha512-r4MeXnfBmSOuKUWmXe6h2CcyfzJCEk4F0pptO5jlnYSIViUkVmsawj80N5h2lO3gwcmSb4n3PuN+e+GC1Guylw==", + "license": "MIT", + "dependencies": { + "@alloc/quick-lru": "^5.2.0", + "arg": "^5.0.2", + "chokidar": "^3.6.0", + "didyoumean": "^1.2.2", + "dlv": "^1.1.3", + "fast-glob": "^3.3.2", + "glob-parent": "^6.0.2", + "is-glob": "^4.0.3", + "jiti": "^1.21.6", + "lilconfig": "^2.1.0", + "micromatch": "^4.0.8", + "normalize-path": "^3.0.0", + "object-hash": "^3.0.0", + "picocolors": "^1.1.1", + "postcss": "^8.4.47", + "postcss-import": "^15.1.0", + "postcss-js": "^4.0.1", + "postcss-load-config": "^4.0.2", + "postcss-nested": "^6.2.0", + "postcss-selector-parser": "^6.1.2", + "resolve": "^1.22.8", + "sucrase": "^3.35.0" + }, + "bin": { + "tailwind": "lib/cli.js", + "tailwindcss": "lib/cli.js" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/tapable": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz", + "integrity": "sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/temp-dir": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/temp-dir/-/temp-dir-2.0.0.tgz", + "integrity": "sha512-aoBAniQmmwtcKp/7BzsH8Cxzv8OL736p7v1ihGb5e9DJ9kTwGWHrQrVB5+lfVDzfGrdRzXch+ig7LHaY1JTOrg==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/tempy": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/tempy/-/tempy-0.6.0.tgz", + "integrity": "sha512-G13vtMYPT/J8A4X2SjdtBTphZlrp1gKv6hZiOjw14RCWg6GbHuQBGtjlx75xLbYV/wEc0D7G5K4rxKP/cXk8Bw==", + "license": "MIT", + "dependencies": { + "is-stream": "^2.0.0", + "temp-dir": "^2.0.0", + "type-fest": "^0.16.0", + "unique-string": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/tempy/node_modules/type-fest": { + "version": "0.16.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.16.0.tgz", + "integrity": "sha512-eaBzG6MxNzEn9kiwvtre90cXaNLkmadMWa1zQMs3XORCXNbsH/OewwbxC5ia9dCxIxnTAsSxXJaa/p5y8DlvJg==", + "license": "(MIT OR CC0-1.0)", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/terminal-link": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/terminal-link/-/terminal-link-2.1.1.tgz", + "integrity": "sha512-un0FmiRUQNr5PJqy9kP7c40F5BOfpGlYTrxonDChEZB7pzZxRNp/bt+ymiy9/npwXya9KH99nJ/GXFIiUkYGFQ==", + "license": "MIT", + "dependencies": { + "ansi-escapes": "^4.2.1", + "supports-hyperlinks": "^2.0.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/terser": { + "version": "5.36.0", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.36.0.tgz", + "integrity": "sha512-IYV9eNMuFAV4THUspIRXkLakHnV6XO7FEdtKjf/mDyrnqUg9LnlOn6/RwRvM9SZjR4GUq8Nk8zj67FzVARr74w==", + "license": "BSD-2-Clause", + "dependencies": { + "@jridgewell/source-map": "^0.3.3", + "acorn": "^8.8.2", + "commander": "^2.20.0", + "source-map-support": "~0.5.20" + }, + "bin": { + "terser": "bin/terser" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/terser-webpack-plugin": { + "version": "5.3.10", + "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.3.10.tgz", + "integrity": "sha512-BKFPWlPDndPs+NGGCr1U59t0XScL5317Y0UReNrHaw9/FwhPENlq6bfgs+4yPfyP51vqC1bQ4rp1EfXW5ZSH9w==", + "license": "MIT", + "dependencies": { + "@jridgewell/trace-mapping": "^0.3.20", + "jest-worker": "^27.4.5", + "schema-utils": "^3.1.1", + "serialize-javascript": "^6.0.1", + "terser": "^5.26.0" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^5.1.0" + }, + "peerDependenciesMeta": { + "@swc/core": { + "optional": true + }, + "esbuild": { + "optional": true + }, + "uglify-js": { + "optional": true + } + } + }, + "node_modules/terser-webpack-plugin/node_modules/schema-utils": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.3.0.tgz", + "integrity": "sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==", + "license": "MIT", + "dependencies": { + "@types/json-schema": "^7.0.8", + "ajv": "^6.12.5", + "ajv-keywords": "^3.5.2" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/terser/node_modules/commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", + "license": "MIT" + }, + "node_modules/test-exclude": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz", + "integrity": "sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==", + "license": "ISC", + "dependencies": { + "@istanbuljs/schema": "^0.1.2", + "glob": "^7.1.4", + "minimatch": "^3.0.4" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/text-table": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", + "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==", + "license": "MIT" + }, + "node_modules/thenify": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/thenify/-/thenify-3.3.1.tgz", + "integrity": "sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==", + "license": "MIT", + "dependencies": { + "any-promise": "^1.0.0" + } + }, + "node_modules/thenify-all": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/thenify-all/-/thenify-all-1.6.0.tgz", + "integrity": "sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==", + "license": "MIT", + "dependencies": { + "thenify": ">= 3.1.0 < 4" + }, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/throat": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/throat/-/throat-6.0.2.tgz", + "integrity": "sha512-WKexMoJj3vEuK0yFEapj8y64V0A6xcuPuK9Gt1d0R+dzCSJc0lHqQytAbSB4cDAK0dWh4T0E2ETkoLE2WZ41OQ==", + "license": "MIT" + }, + "node_modules/thunky": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/thunky/-/thunky-1.1.0.tgz", + "integrity": "sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA==", + "license": "MIT" + }, + "node_modules/tmpl": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/tmpl/-/tmpl-1.0.5.tgz", + "integrity": "sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==", + "license": "BSD-3-Clause" + }, + "node_modules/to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "license": "MIT", + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/toidentifier": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", + "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==", + "license": "MIT", + "engines": { + "node": ">=0.6" + } + }, + "node_modules/tough-cookie": { + "version": "4.1.4", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-4.1.4.tgz", + "integrity": "sha512-Loo5UUvLD9ScZ6jh8beX1T6sO1w2/MpCRpEP7V280GKMVUQ0Jzar2U3UJPsrdbziLEMMhu3Ujnq//rhiFuIeag==", + "license": "BSD-3-Clause", + "dependencies": { + "psl": "^1.1.33", + "punycode": "^2.1.1", + "universalify": "^0.2.0", + "url-parse": "^1.5.3" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/tough-cookie/node_modules/universalify": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.2.0.tgz", + "integrity": "sha512-CJ1QgKmNg3CwvAv/kOFmtnEN05f0D/cn9QntgNOQlQF9dgvVTHj3t+8JPdjqawCHk7V/KA+fbUqzZ9XWhcqPUg==", + "license": "MIT", + "engines": { + "node": ">= 4.0.0" + } + }, + "node_modules/tr46": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-2.1.0.tgz", + "integrity": "sha512-15Ih7phfcdP5YxqiB+iDtLoaTz4Nd35+IiAv0kQ5FNKHzXgdWqPoTIqEDDJmXceQt4JZk6lVPT8lnDlPpGDppw==", + "license": "MIT", + "dependencies": { + "punycode": "^2.1.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/tryer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/tryer/-/tryer-1.0.1.tgz", + "integrity": "sha512-c3zayb8/kWWpycWYg87P71E1S1ZL6b6IJxfb5fvsUgsf0S2MVGaDhDXXjDMpdCpfWXqptc+4mXwmiy1ypXqRAA==", + "license": "MIT" + }, + "node_modules/ts-interface-checker": { + "version": "0.1.13", + "resolved": "https://registry.npmjs.org/ts-interface-checker/-/ts-interface-checker-0.1.13.tgz", + "integrity": "sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==", + "license": "Apache-2.0" + }, + "node_modules/tsconfig-paths": { + "version": "3.15.0", + "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.15.0.tgz", + "integrity": "sha512-2Ac2RgzDe/cn48GvOe3M+o82pEFewD3UPbyoUHHdKasHwJKjds4fLXWf/Ux5kATBKN20oaFGu+jbElp1pos0mg==", + "license": "MIT", + "dependencies": { + "@types/json5": "^0.0.29", + "json5": "^1.0.2", + "minimist": "^1.2.6", + "strip-bom": "^3.0.0" + } + }, + "node_modules/tsconfig-paths/node_modules/json5": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz", + "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==", + "license": "MIT", + "dependencies": { + "minimist": "^1.2.0" + }, + "bin": { + "json5": "lib/cli.js" + } + }, + "node_modules/tsconfig-paths/node_modules/strip-bom": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", + "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==", + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/tslib": { + "version": "2.8.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", + "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", + "license": "0BSD" + }, + "node_modules/tsutils": { + "version": "3.21.0", + "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-3.21.0.tgz", + "integrity": "sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==", + "license": "MIT", + "dependencies": { + "tslib": "^1.8.1" + }, + "engines": { + "node": ">= 6" + }, + "peerDependencies": { + "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" + } + }, + "node_modules/tsutils/node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "license": "0BSD" + }, + "node_modules/turbo-stream": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/turbo-stream/-/turbo-stream-2.4.0.tgz", + "integrity": "sha512-FHncC10WpBd2eOmGwpmQsWLDoK4cqsA/UT/GqNoaKOQnT8uzhtCbg3EoUDMvqpOSAI0S26mr0rkjzbOO6S3v1g==", + "license": "ISC" + }, + "node_modules/type-check": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", + "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", + "license": "MIT", + "dependencies": { + "prelude-ls": "^1.2.1" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/type-detect": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz", + "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==", + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/type-fest": { + "version": "0.21.3", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", + "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", + "license": "(MIT OR CC0-1.0)", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/type-is": { + "version": "1.6.18", + "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", + "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", + "license": "MIT", + "dependencies": { + "media-typer": "0.3.0", + "mime-types": "~2.1.24" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/typed-array-buffer": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/typed-array-buffer/-/typed-array-buffer-1.0.2.tgz", + "integrity": "sha512-gEymJYKZtKXzzBzM4jqa9w6Q1Jjm7x2d+sh19AdsD4wqnMPDYyvwpsIc2Q/835kHuo3BEQ7CjelGhfTsoBb2MQ==", + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "es-errors": "^1.3.0", + "is-typed-array": "^1.1.13" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/typed-array-byte-length": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/typed-array-byte-length/-/typed-array-byte-length-1.0.1.tgz", + "integrity": "sha512-3iMJ9q0ao7WE9tWcaYKIptkNBuOIcZCCT0d4MRvuuH88fEoEH62IuQe0OtraD3ebQEoTRk8XCBoknUNc1Y67pw==", + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "has-proto": "^1.0.3", + "is-typed-array": "^1.1.13" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/typed-array-byte-offset": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/typed-array-byte-offset/-/typed-array-byte-offset-1.0.3.tgz", + "integrity": "sha512-GsvTyUHTriq6o/bHcTd0vM7OQ9JEdlvluu9YISaA7+KzDzPaIzEeDFNkTfhdE3MYcNhNi0vq/LlegYgIs5yPAw==", + "license": "MIT", + "dependencies": { + "available-typed-arrays": "^1.0.7", + "call-bind": "^1.0.7", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "has-proto": "^1.0.3", + "is-typed-array": "^1.1.13", + "reflect.getprototypeof": "^1.0.6" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/typed-array-length": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.7.tgz", + "integrity": "sha512-3KS2b+kL7fsuk/eJZ7EQdnEmQoaho/r6KUef7hxvltNA5DR8NAUM+8wJMbJyZ4G9/7i3v5zPBIMN5aybAh2/Jg==", + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "is-typed-array": "^1.1.13", + "possible-typed-array-names": "^1.0.0", + "reflect.getprototypeof": "^1.0.6" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/typedarray-to-buffer": { + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz", + "integrity": "sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==", + "license": "MIT", + "dependencies": { + "is-typedarray": "^1.0.0" + } + }, + "node_modules/typescript": { + "version": "4.9.5", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.9.5.tgz", + "integrity": "sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g==", + "license": "Apache-2.0", + "peer": true, + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=4.2.0" + } + }, + "node_modules/unbox-primitive": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.2.tgz", + "integrity": "sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==", + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "has-bigints": "^1.0.2", + "has-symbols": "^1.0.3", + "which-boxed-primitive": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/uncontrollable": { + "version": "7.2.1", + "resolved": "https://registry.npmjs.org/uncontrollable/-/uncontrollable-7.2.1.tgz", + "integrity": "sha512-svtcfoTADIB0nT9nltgjujTi7BzVmwjZClOmskKu/E8FW9BXzg9os8OLr4f8Dlnk0rYWJIWr4wv9eKUXiQvQwQ==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.6.3", + "@types/react": ">=16.9.11", + "invariant": "^2.2.4", + "react-lifecycles-compat": "^3.0.4" + }, + "peerDependencies": { + "react": ">=15.0.0" + } + }, + "node_modules/underscore": { + "version": "1.12.1", + "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.12.1.tgz", + "integrity": "sha512-hEQt0+ZLDVUMhebKxL4x1BTtDY7bavVofhZ9KZ4aI26X9SRaE+Y3m83XUL1UP2jn8ynjndwCCpEHdUG+9pP1Tw==", + "license": "MIT" + }, + "node_modules/undici-types": { + "version": "6.20.0", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.20.0.tgz", + "integrity": "sha512-Ny6QZ2Nju20vw1SRHe3d9jVu6gJ+4e3+MMpqu7pqE5HT6WsTSlce++GQmK5UXS8mzV8DSYHrQH+Xrf2jVcuKNg==", + "license": "MIT" + }, + "node_modules/unicode-canonical-property-names-ecmascript": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.1.tgz", + "integrity": "sha512-dA8WbNeb2a6oQzAQ55YlT5vQAWGV9WXOsi3SskE3bcCdM0P4SDd+24zS/OCacdRq5BkdsRj9q3Pg6YyQoxIGqg==", + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/unicode-match-property-ecmascript": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-2.0.0.tgz", + "integrity": "sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q==", + "license": "MIT", + "dependencies": { + "unicode-canonical-property-names-ecmascript": "^2.0.0", + "unicode-property-aliases-ecmascript": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/unicode-match-property-value-ecmascript": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.2.0.tgz", + "integrity": "sha512-4IehN3V/+kkr5YeSSDDQG8QLqO26XpL2XP3GQtqwlT/QYSECAwFztxVHjlbh0+gjJ3XmNLS0zDsbgs9jWKExLg==", + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/unicode-property-aliases-ecmascript": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.1.0.tgz", + "integrity": "sha512-6t3foTQI9qne+OZoVQB/8x8rk2k1eVy1gRXhV3oFQ5T6R1dqQ1xtin3XqSlx3+ATBkliTaR/hHyJBm+LVPNM8w==", + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/unique-string": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unique-string/-/unique-string-2.0.0.tgz", + "integrity": "sha512-uNaeirEPvpZWSgzwsPGtU2zVSTrn/8L5q/IexZmH0eH6SA73CmAA5U4GwORTxQAZs95TAXLNqeLoPPNO5gZfWg==", + "license": "MIT", + "dependencies": { + "crypto-random-string": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/universalify": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz", + "integrity": "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==", + "license": "MIT", + "engines": { + "node": ">= 10.0.0" + } + }, + "node_modules/unpipe": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", + "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/unquote": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/unquote/-/unquote-1.1.1.tgz", + "integrity": "sha512-vRCqFv6UhXpWxZPyGDh/F3ZpNv8/qo7w6iufLpQg9aKnQ71qM4B5KiI7Mia9COcjEhrO9LueHpMYjYzsWH3OIg==", + "license": "MIT" + }, + "node_modules/upath": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/upath/-/upath-1.2.0.tgz", + "integrity": "sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg==", + "license": "MIT", + "engines": { + "node": ">=4", + "yarn": "*" + } + }, + "node_modules/update-browserslist-db": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.1.1.tgz", + "integrity": "sha512-R8UzCaa9Az+38REPiJ1tXlImTJXlVfgHZsglwBD/k6nj76ctsH1E3q4doGrukiLQd3sGQYu56r5+lo5r94l29A==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "escalade": "^3.2.0", + "picocolors": "^1.1.0" + }, + "bin": { + "update-browserslist-db": "cli.js" + }, + "peerDependencies": { + "browserslist": ">= 4.21.0" + } + }, + "node_modules/uri-js": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "license": "BSD-2-Clause", + "dependencies": { + "punycode": "^2.1.0" + } + }, + "node_modules/url-parse": { + "version": "1.5.10", + "resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.5.10.tgz", + "integrity": "sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ==", + "license": "MIT", + "dependencies": { + "querystringify": "^2.1.1", + "requires-port": "^1.0.0" + } + }, + "node_modules/util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", + "license": "MIT" + }, + "node_modules/util.promisify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/util.promisify/-/util.promisify-1.0.1.tgz", + "integrity": "sha512-g9JpC/3He3bm38zsLupWryXHoEcS22YHthuPQSJdMy6KNrzIRzWqcsHzD/WUnqe45whVou4VIsPew37DoXWNrA==", + "license": "MIT", + "dependencies": { + "define-properties": "^1.1.3", + "es-abstract": "^1.17.2", + "has-symbols": "^1.0.1", + "object.getownpropertydescriptors": "^2.1.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/utila": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/utila/-/utila-0.4.0.tgz", + "integrity": "sha512-Z0DbgELS9/L/75wZbro8xAnT50pBVFQZ+hUEueGDU5FN51YSCYM+jdxsfCiHjwNP/4LCDD0i/graKpeBnOXKRA==", + "license": "MIT" + }, + "node_modules/utils-merge": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", + "integrity": "sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==", + "license": "MIT", + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/uuid": { + "version": "8.3.2", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", + "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", + "license": "MIT", + "bin": { + "uuid": "dist/bin/uuid" + } + }, + "node_modules/v8-to-istanbul": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-8.1.1.tgz", + "integrity": "sha512-FGtKtv3xIpR6BYhvgH8MI/y78oT7d8Au3ww4QIxymrCtZEh5b8gCw2siywE+puhEmuWKDtmfrvF5UlB298ut3w==", + "license": "ISC", + "dependencies": { + "@types/istanbul-lib-coverage": "^2.0.1", + "convert-source-map": "^1.6.0", + "source-map": "^0.7.3" + }, + "engines": { + "node": ">=10.12.0" + } + }, + "node_modules/v8-to-istanbul/node_modules/convert-source-map": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz", + "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==", + "license": "MIT" + }, + "node_modules/vary": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", + "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/w3c-hr-time": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/w3c-hr-time/-/w3c-hr-time-1.0.2.tgz", + "integrity": "sha512-z8P5DvDNjKDoFIHK7q8r8lackT6l+jo/Ye3HOle7l9nICP9lf1Ci25fy9vHd0JOWewkIFzXIEig3TdKT7JQ5fQ==", + "deprecated": "Use your platform's native performance.now() and performance.timeOrigin.", + "license": "MIT", + "dependencies": { + "browser-process-hrtime": "^1.0.0" + } + }, + "node_modules/w3c-xmlserializer": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/w3c-xmlserializer/-/w3c-xmlserializer-2.0.0.tgz", + "integrity": "sha512-4tzD0mF8iSiMiNs30BiLO3EpfGLZUT2MSX/G+o7ZywDzliWQ3OPtTZ0PTC3B3ca1UAf4cJMHB+2Bf56EriJuRA==", + "license": "MIT", + "dependencies": { + "xml-name-validator": "^3.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/walker": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/walker/-/walker-1.0.8.tgz", + "integrity": "sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ==", + "license": "Apache-2.0", + "dependencies": { + "makeerror": "1.0.12" + } + }, + "node_modules/warning": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/warning/-/warning-4.0.3.tgz", + "integrity": "sha512-rpJyN222KWIvHJ/F53XSZv0Zl/accqHR8et1kpaMTD/fLCRxtV8iX8czMzY7sVZupTI3zcUTg8eycS2kNF9l6w==", + "license": "MIT", + "dependencies": { + "loose-envify": "^1.0.0" + } + }, + "node_modules/watchpack": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.4.2.tgz", + "integrity": "sha512-TnbFSbcOCcDgjZ4piURLCbJ3nJhznVh9kw6F6iokjiFPl8ONxe9A6nMDVXDiNbrSfLILs6vB07F7wLBrwPYzJw==", + "license": "MIT", + "dependencies": { + "glob-to-regexp": "^0.4.1", + "graceful-fs": "^4.1.2" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/wbuf": { + "version": "1.7.3", + "resolved": "https://registry.npmjs.org/wbuf/-/wbuf-1.7.3.tgz", + "integrity": "sha512-O84QOnr0icsbFGLS0O3bI5FswxzRr8/gHwWkDlQFskhSPryQXvrTMxjxGP4+iWYoauLoBvfDpkrOauZ+0iZpDA==", + "license": "MIT", + "dependencies": { + "minimalistic-assert": "^1.0.0" + } + }, + "node_modules/web-vitals": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/web-vitals/-/web-vitals-2.1.4.tgz", + "integrity": "sha512-sVWcwhU5mX6crfI5Vd2dC4qchyTqxV8URinzt25XqVh+bHEPGH4C3NPrNionCP7Obx59wrYEbNlw4Z8sjALzZg==", + "license": "Apache-2.0" + }, + "node_modules/webidl-conversions": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-6.1.0.tgz", + "integrity": "sha512-qBIvFLGiBpLjfwmYAaHPXsn+ho5xZnGvyGvsarywGNc8VyQJUMHJ8OBKGGrPER0okBeMDaan4mNBlgBROxuI8w==", + "license": "BSD-2-Clause", + "engines": { + "node": ">=10.4" + } + }, + "node_modules/webpack": { + "version": "5.96.1", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.96.1.tgz", + "integrity": "sha512-l2LlBSvVZGhL4ZrPwyr8+37AunkcYj5qh8o6u2/2rzoPc8gxFJkLj1WxNgooi9pnoc06jh0BjuXnamM4qlujZA==", + "license": "MIT", + "dependencies": { + "@types/eslint-scope": "^3.7.7", + "@types/estree": "^1.0.6", + "@webassemblyjs/ast": "^1.12.1", + "@webassemblyjs/wasm-edit": "^1.12.1", + "@webassemblyjs/wasm-parser": "^1.12.1", + "acorn": "^8.14.0", + "browserslist": "^4.24.0", + "chrome-trace-event": "^1.0.2", + "enhanced-resolve": "^5.17.1", + "es-module-lexer": "^1.2.1", + "eslint-scope": "5.1.1", + "events": "^3.2.0", + "glob-to-regexp": "^0.4.1", + "graceful-fs": "^4.2.11", + "json-parse-even-better-errors": "^2.3.1", + "loader-runner": "^4.2.0", + "mime-types": "^2.1.27", + "neo-async": "^2.6.2", + "schema-utils": "^3.2.0", + "tapable": "^2.1.1", + "terser-webpack-plugin": "^5.3.10", + "watchpack": "^2.4.1", + "webpack-sources": "^3.2.3" + }, + "bin": { + "webpack": "bin/webpack.js" + }, + "engines": { + "node": ">=10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependenciesMeta": { + "webpack-cli": { + "optional": true + } + } + }, + "node_modules/webpack-dev-middleware": { + "version": "5.3.4", + "resolved": "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-5.3.4.tgz", + "integrity": "sha512-BVdTqhhs+0IfoeAf7EoH5WE+exCmqGerHfDM0IL096Px60Tq2Mn9MAbnaGUe6HiMa41KMCYF19gyzZmBcq/o4Q==", + "license": "MIT", + "dependencies": { + "colorette": "^2.0.10", + "memfs": "^3.4.3", + "mime-types": "^2.1.31", + "range-parser": "^1.2.1", + "schema-utils": "^4.0.0" + }, + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^4.0.0 || ^5.0.0" + } + }, + "node_modules/webpack-dev-server": { + "version": "4.15.2", + "resolved": "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-4.15.2.tgz", + "integrity": "sha512-0XavAZbNJ5sDrCbkpWL8mia0o5WPOd2YGtxrEiZkBK9FjLppIUK2TgxK6qGD2P3hUXTJNNPVibrerKcx5WkR1g==", + "license": "MIT", + "dependencies": { + "@types/bonjour": "^3.5.9", + "@types/connect-history-api-fallback": "^1.3.5", + "@types/express": "^4.17.13", + "@types/serve-index": "^1.9.1", + "@types/serve-static": "^1.13.10", + "@types/sockjs": "^0.3.33", + "@types/ws": "^8.5.5", + "ansi-html-community": "^0.0.8", + "bonjour-service": "^1.0.11", + "chokidar": "^3.5.3", + "colorette": "^2.0.10", + "compression": "^1.7.4", + "connect-history-api-fallback": "^2.0.0", + "default-gateway": "^6.0.3", + "express": "^4.17.3", + "graceful-fs": "^4.2.6", + "html-entities": "^2.3.2", + "http-proxy-middleware": "^2.0.3", + "ipaddr.js": "^2.0.1", + "launch-editor": "^2.6.0", + "open": "^8.0.9", + "p-retry": "^4.5.0", + "rimraf": "^3.0.2", + "schema-utils": "^4.0.0", + "selfsigned": "^2.1.1", + "serve-index": "^1.9.1", + "sockjs": "^0.3.24", + "spdy": "^4.0.2", + "webpack-dev-middleware": "^5.3.4", + "ws": "^8.13.0" + }, + "bin": { + "webpack-dev-server": "bin/webpack-dev-server.js" + }, + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^4.37.0 || ^5.0.0" + }, + "peerDependenciesMeta": { + "webpack": { + "optional": true + }, + "webpack-cli": { + "optional": true + } + } + }, + "node_modules/webpack-dev-server/node_modules/ws": { + "version": "8.18.0", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.18.0.tgz", + "integrity": "sha512-8VbfWfHLbbwu3+N6OKsOMpBdT4kXPDDB9cJk2bJ6mh9ucxdlnNvH1e+roYkKmN9Nxw2yjz7VzeO9oOz2zJ04Pw==", + "license": "MIT", + "engines": { + "node": ">=10.0.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": ">=5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } + } + }, + "node_modules/webpack-manifest-plugin": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/webpack-manifest-plugin/-/webpack-manifest-plugin-4.1.1.tgz", + "integrity": "sha512-YXUAwxtfKIJIKkhg03MKuiFAD72PlrqCiwdwO4VEXdRO5V0ORCNwaOwAZawPZalCbmH9kBDmXnNeQOw+BIEiow==", + "license": "MIT", + "dependencies": { + "tapable": "^2.0.0", + "webpack-sources": "^2.2.0" + }, + "engines": { + "node": ">=12.22.0" + }, + "peerDependencies": { + "webpack": "^4.44.2 || ^5.47.0" + } + }, + "node_modules/webpack-manifest-plugin/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/webpack-manifest-plugin/node_modules/webpack-sources": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-2.3.1.tgz", + "integrity": "sha512-y9EI9AO42JjEcrTJFOYmVywVZdKVUfOvDUPsJea5GIr1JOEGFVqwlY2K098fFoIjOkDzHn2AjRvM8dsBZu+gCA==", + "license": "MIT", + "dependencies": { + "source-list-map": "^2.0.1", + "source-map": "^0.6.1" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/webpack-sources": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-3.2.3.tgz", + "integrity": "sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==", + "license": "MIT", + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/webpack/node_modules/eslint-scope": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", + "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", + "license": "BSD-2-Clause", + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^4.1.1" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/webpack/node_modules/estraverse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", + "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", + "license": "BSD-2-Clause", + "engines": { + "node": ">=4.0" + } + }, + "node_modules/webpack/node_modules/schema-utils": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.3.0.tgz", + "integrity": "sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==", + "license": "MIT", + "dependencies": { + "@types/json-schema": "^7.0.8", + "ajv": "^6.12.5", + "ajv-keywords": "^3.5.2" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/websocket-driver": { + "version": "0.7.4", + "resolved": "https://registry.npmjs.org/websocket-driver/-/websocket-driver-0.7.4.tgz", + "integrity": "sha512-b17KeDIQVjvb0ssuSDF2cYXSg2iztliJ4B9WdsuB6J952qCPKmnVq4DyW5motImXHDC1cBT/1UezrJVsKw5zjg==", + "license": "Apache-2.0", + "dependencies": { + "http-parser-js": ">=0.5.1", + "safe-buffer": ">=5.1.0", + "websocket-extensions": ">=0.1.1" + }, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/websocket-extensions": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/websocket-extensions/-/websocket-extensions-0.1.4.tgz", + "integrity": "sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg==", + "license": "Apache-2.0", + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/whatwg-encoding": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-1.0.5.tgz", + "integrity": "sha512-b5lim54JOPN9HtzvK9HFXvBma/rnfFeqsic0hSpjtDbVxR3dJKLc+KB4V6GgiGOvl7CY/KNh8rxSo9DKQrnUEw==", + "license": "MIT", + "dependencies": { + "iconv-lite": "0.4.24" + } + }, + "node_modules/whatwg-encoding/node_modules/iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "license": "MIT", + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/whatwg-fetch": { + "version": "3.6.20", + "resolved": "https://registry.npmjs.org/whatwg-fetch/-/whatwg-fetch-3.6.20.tgz", + "integrity": "sha512-EqhiFU6daOA8kpjOWTL0olhVOF3i7OrFzSYiGsEMB8GcXS+RrzauAERX65xMeNWVqxA6HXH2m69Z9LaKKdisfg==", + "license": "MIT" + }, + "node_modules/whatwg-mimetype": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-2.3.0.tgz", + "integrity": "sha512-M4yMwr6mAnQz76TbJm914+gPpB/nCwvZbJU28cUD6dR004SAxDLOOSUaB1JDRqLtaOV/vi0IC5lEAGFgrjGv/g==", + "license": "MIT" + }, + "node_modules/whatwg-url": { + "version": "8.7.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-8.7.0.tgz", + "integrity": "sha512-gAojqb/m9Q8a5IV96E3fHJM70AzCkgt4uXYX2O7EmuyOnLrViCQlsEBmF9UQIu3/aeAIp2U17rtbpZWNntQqdg==", + "license": "MIT", + "dependencies": { + "lodash": "^4.7.0", + "tr46": "^2.1.0", + "webidl-conversions": "^6.1.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "license": "ISC", + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/which-boxed-primitive": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz", + "integrity": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==", + "license": "MIT", + "dependencies": { + "is-bigint": "^1.0.1", + "is-boolean-object": "^1.1.0", + "is-number-object": "^1.0.4", + "is-string": "^1.0.5", + "is-symbol": "^1.0.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/which-builtin-type": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/which-builtin-type/-/which-builtin-type-1.2.0.tgz", + "integrity": "sha512-I+qLGQ/vucCby4tf5HsLmGueEla4ZhwTBSqaooS+Y0BuxN4Cp+okmGuV+8mXZ84KDI9BA+oklo+RzKg0ONdSUA==", + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "function.prototype.name": "^1.1.6", + "has-tostringtag": "^1.0.2", + "is-async-function": "^2.0.0", + "is-date-object": "^1.0.5", + "is-finalizationregistry": "^1.1.0", + "is-generator-function": "^1.0.10", + "is-regex": "^1.1.4", + "is-weakref": "^1.0.2", + "isarray": "^2.0.5", + "which-boxed-primitive": "^1.0.2", + "which-collection": "^1.0.2", + "which-typed-array": "^1.1.15" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/which-collection": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/which-collection/-/which-collection-1.0.2.tgz", + "integrity": "sha512-K4jVyjnBdgvc86Y6BkaLZEN933SwYOuBFkdmBu9ZfkcAbdVbpITnDmjvZ/aQjRXQrv5EPkTnD1s39GiiqbngCw==", + "license": "MIT", + "dependencies": { + "is-map": "^2.0.3", + "is-set": "^2.0.3", + "is-weakmap": "^2.0.2", + "is-weakset": "^2.0.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/which-typed-array": { + "version": "1.1.16", + "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.16.tgz", + "integrity": "sha512-g+N+GAWiRj66DngFwHvISJd+ITsyphZvD1vChfVg6cEdnzy53GzB3oy0fUNlvhz7H7+MiqhYr26qxQShCpKTTQ==", + "license": "MIT", + "dependencies": { + "available-typed-arrays": "^1.0.7", + "call-bind": "^1.0.7", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "has-tostringtag": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/word-wrap": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.5.tgz", + "integrity": "sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/workbox-background-sync": { + "version": "6.6.0", + "resolved": "https://registry.npmjs.org/workbox-background-sync/-/workbox-background-sync-6.6.0.tgz", + "integrity": "sha512-jkf4ZdgOJxC9u2vztxLuPT/UjlH7m/nWRQ/MgGL0v8BJHoZdVGJd18Kck+a0e55wGXdqyHO+4IQTk0685g4MUw==", + "license": "MIT", + "dependencies": { + "idb": "^7.0.1", + "workbox-core": "6.6.0" + } + }, + "node_modules/workbox-broadcast-update": { + "version": "6.6.0", + "resolved": "https://registry.npmjs.org/workbox-broadcast-update/-/workbox-broadcast-update-6.6.0.tgz", + "integrity": "sha512-nm+v6QmrIFaB/yokJmQ/93qIJ7n72NICxIwQwe5xsZiV2aI93MGGyEyzOzDPVz5THEr5rC3FJSsO3346cId64Q==", + "license": "MIT", + "dependencies": { + "workbox-core": "6.6.0" + } + }, + "node_modules/workbox-build": { + "version": "6.6.0", + "resolved": "https://registry.npmjs.org/workbox-build/-/workbox-build-6.6.0.tgz", + "integrity": "sha512-Tjf+gBwOTuGyZwMz2Nk/B13Fuyeo0Q84W++bebbVsfr9iLkDSo6j6PST8tET9HYA58mlRXwlMGpyWO8ETJiXdQ==", + "license": "MIT", + "dependencies": { + "@apideck/better-ajv-errors": "^0.3.1", + "@babel/core": "^7.11.1", + "@babel/preset-env": "^7.11.0", + "@babel/runtime": "^7.11.2", + "@rollup/plugin-babel": "^5.2.0", + "@rollup/plugin-node-resolve": "^11.2.1", + "@rollup/plugin-replace": "^2.4.1", + "@surma/rollup-plugin-off-main-thread": "^2.2.3", + "ajv": "^8.6.0", + "common-tags": "^1.8.0", + "fast-json-stable-stringify": "^2.1.0", + "fs-extra": "^9.0.1", + "glob": "^7.1.6", + "lodash": "^4.17.20", + "pretty-bytes": "^5.3.0", + "rollup": "^2.43.1", + "rollup-plugin-terser": "^7.0.0", + "source-map": "^0.8.0-beta.0", + "stringify-object": "^3.3.0", + "strip-comments": "^2.0.1", + "tempy": "^0.6.0", + "upath": "^1.2.0", + "workbox-background-sync": "6.6.0", + "workbox-broadcast-update": "6.6.0", + "workbox-cacheable-response": "6.6.0", + "workbox-core": "6.6.0", + "workbox-expiration": "6.6.0", + "workbox-google-analytics": "6.6.0", + "workbox-navigation-preload": "6.6.0", + "workbox-precaching": "6.6.0", + "workbox-range-requests": "6.6.0", + "workbox-recipes": "6.6.0", + "workbox-routing": "6.6.0", + "workbox-strategies": "6.6.0", + "workbox-streams": "6.6.0", + "workbox-sw": "6.6.0", + "workbox-window": "6.6.0" + }, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/workbox-build/node_modules/@apideck/better-ajv-errors": { + "version": "0.3.6", + "resolved": "https://registry.npmjs.org/@apideck/better-ajv-errors/-/better-ajv-errors-0.3.6.tgz", + "integrity": "sha512-P+ZygBLZtkp0qqOAJJVX4oX/sFo5JR3eBWwwuqHHhK0GIgQOKWrAfiAaWX0aArHkRWHMuggFEgAZNxVPwPZYaA==", + "license": "MIT", + "dependencies": { + "json-schema": "^0.4.0", + "jsonpointer": "^5.0.0", + "leven": "^3.1.0" + }, + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "ajv": ">=8" + } + }, + "node_modules/workbox-build/node_modules/ajv": { + "version": "8.17.1", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.17.1.tgz", + "integrity": "sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==", + "license": "MIT", + "dependencies": { + "fast-deep-equal": "^3.1.3", + "fast-uri": "^3.0.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/workbox-build/node_modules/fs-extra": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", + "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", + "license": "MIT", + "dependencies": { + "at-least-node": "^1.0.0", + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/workbox-build/node_modules/json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", + "license": "MIT" + }, + "node_modules/workbox-build/node_modules/source-map": { + "version": "0.8.0-beta.0", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.8.0-beta.0.tgz", + "integrity": "sha512-2ymg6oRBpebeZi9UUNsgQ89bhx01TcTkmNTGnNO88imTmbSgy4nfujrgVEFKWpMTEGA11EDkTt7mqObTPdigIA==", + "license": "BSD-3-Clause", + "dependencies": { + "whatwg-url": "^7.0.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/workbox-build/node_modules/tr46": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-1.0.1.tgz", + "integrity": "sha512-dTpowEjclQ7Kgx5SdBkqRzVhERQXov8/l9Ft9dVM9fmg0W0KQSVaXX9T4i6twCPNtYiZM53lpSSUAwJbFPOHxA==", + "license": "MIT", + "dependencies": { + "punycode": "^2.1.0" + } + }, + "node_modules/workbox-build/node_modules/webidl-conversions": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-4.0.2.tgz", + "integrity": "sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg==", + "license": "BSD-2-Clause" + }, + "node_modules/workbox-build/node_modules/whatwg-url": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-7.1.0.tgz", + "integrity": "sha512-WUu7Rg1DroM7oQvGWfOiAK21n74Gg+T4elXEQYkOhtyLeWiJFoOGLXPKI/9gzIie9CtwVLm8wtw6YJdKyxSjeg==", + "license": "MIT", + "dependencies": { + "lodash.sortby": "^4.7.0", + "tr46": "^1.0.1", + "webidl-conversions": "^4.0.2" + } + }, + "node_modules/workbox-cacheable-response": { + "version": "6.6.0", + "resolved": "https://registry.npmjs.org/workbox-cacheable-response/-/workbox-cacheable-response-6.6.0.tgz", + "integrity": "sha512-JfhJUSQDwsF1Xv3EV1vWzSsCOZn4mQ38bWEBR3LdvOxSPgB65gAM6cS2CX8rkkKHRgiLrN7Wxoyu+TuH67kHrw==", + "deprecated": "workbox-background-sync@6.6.0", + "license": "MIT", + "dependencies": { + "workbox-core": "6.6.0" + } + }, + "node_modules/workbox-core": { + "version": "6.6.0", + "resolved": "https://registry.npmjs.org/workbox-core/-/workbox-core-6.6.0.tgz", + "integrity": "sha512-GDtFRF7Yg3DD859PMbPAYPeJyg5gJYXuBQAC+wyrWuuXgpfoOrIQIvFRZnQ7+czTIQjIr1DhLEGFzZanAT/3bQ==", + "license": "MIT" + }, + "node_modules/workbox-expiration": { + "version": "6.6.0", + "resolved": "https://registry.npmjs.org/workbox-expiration/-/workbox-expiration-6.6.0.tgz", + "integrity": "sha512-baplYXcDHbe8vAo7GYvyAmlS4f6998Jff513L4XvlzAOxcl8F620O91guoJ5EOf5qeXG4cGdNZHkkVAPouFCpw==", + "license": "MIT", + "dependencies": { + "idb": "^7.0.1", + "workbox-core": "6.6.0" + } + }, + "node_modules/workbox-google-analytics": { + "version": "6.6.0", + "resolved": "https://registry.npmjs.org/workbox-google-analytics/-/workbox-google-analytics-6.6.0.tgz", + "integrity": "sha512-p4DJa6OldXWd6M9zRl0H6vB9lkrmqYFkRQ2xEiNdBFp9U0LhsGO7hsBscVEyH9H2/3eZZt8c97NB2FD9U2NJ+Q==", + "deprecated": "It is not compatible with newer versions of GA starting with v4, as long as you are using GAv3 it should be ok, but the package is not longer being maintained", + "license": "MIT", + "dependencies": { + "workbox-background-sync": "6.6.0", + "workbox-core": "6.6.0", + "workbox-routing": "6.6.0", + "workbox-strategies": "6.6.0" + } + }, + "node_modules/workbox-navigation-preload": { + "version": "6.6.0", + "resolved": "https://registry.npmjs.org/workbox-navigation-preload/-/workbox-navigation-preload-6.6.0.tgz", + "integrity": "sha512-utNEWG+uOfXdaZmvhshrh7KzhDu/1iMHyQOV6Aqup8Mm78D286ugu5k9MFD9SzBT5TcwgwSORVvInaXWbvKz9Q==", + "license": "MIT", + "dependencies": { + "workbox-core": "6.6.0" + } + }, + "node_modules/workbox-precaching": { + "version": "6.6.0", + "resolved": "https://registry.npmjs.org/workbox-precaching/-/workbox-precaching-6.6.0.tgz", + "integrity": "sha512-eYu/7MqtRZN1IDttl/UQcSZFkHP7dnvr/X3Vn6Iw6OsPMruQHiVjjomDFCNtd8k2RdjLs0xiz9nq+t3YVBcWPw==", + "license": "MIT", + "dependencies": { + "workbox-core": "6.6.0", + "workbox-routing": "6.6.0", + "workbox-strategies": "6.6.0" + } + }, + "node_modules/workbox-range-requests": { + "version": "6.6.0", + "resolved": "https://registry.npmjs.org/workbox-range-requests/-/workbox-range-requests-6.6.0.tgz", + "integrity": "sha512-V3aICz5fLGq5DpSYEU8LxeXvsT//mRWzKrfBOIxzIdQnV/Wj7R+LyJVTczi4CQ4NwKhAaBVaSujI1cEjXW+hTw==", + "license": "MIT", + "dependencies": { + "workbox-core": "6.6.0" + } + }, + "node_modules/workbox-recipes": { + "version": "6.6.0", + "resolved": "https://registry.npmjs.org/workbox-recipes/-/workbox-recipes-6.6.0.tgz", + "integrity": "sha512-TFi3kTgYw73t5tg73yPVqQC8QQjxJSeqjXRO4ouE/CeypmP2O/xqmB/ZFBBQazLTPxILUQ0b8aeh0IuxVn9a6A==", + "license": "MIT", + "dependencies": { + "workbox-cacheable-response": "6.6.0", + "workbox-core": "6.6.0", + "workbox-expiration": "6.6.0", + "workbox-precaching": "6.6.0", + "workbox-routing": "6.6.0", + "workbox-strategies": "6.6.0" + } + }, + "node_modules/workbox-routing": { + "version": "6.6.0", + "resolved": "https://registry.npmjs.org/workbox-routing/-/workbox-routing-6.6.0.tgz", + "integrity": "sha512-x8gdN7VDBiLC03izAZRfU+WKUXJnbqt6PG9Uh0XuPRzJPpZGLKce/FkOX95dWHRpOHWLEq8RXzjW0O+POSkKvw==", + "license": "MIT", + "dependencies": { + "workbox-core": "6.6.0" + } + }, + "node_modules/workbox-strategies": { + "version": "6.6.0", + "resolved": "https://registry.npmjs.org/workbox-strategies/-/workbox-strategies-6.6.0.tgz", + "integrity": "sha512-eC07XGuINAKUWDnZeIPdRdVja4JQtTuc35TZ8SwMb1ztjp7Ddq2CJ4yqLvWzFWGlYI7CG/YGqaETntTxBGdKgQ==", + "license": "MIT", + "dependencies": { + "workbox-core": "6.6.0" + } + }, + "node_modules/workbox-streams": { + "version": "6.6.0", + "resolved": "https://registry.npmjs.org/workbox-streams/-/workbox-streams-6.6.0.tgz", + "integrity": "sha512-rfMJLVvwuED09CnH1RnIep7L9+mj4ufkTyDPVaXPKlhi9+0czCu+SJggWCIFbPpJaAZmp2iyVGLqS3RUmY3fxg==", + "license": "MIT", + "dependencies": { + "workbox-core": "6.6.0", + "workbox-routing": "6.6.0" + } + }, + "node_modules/workbox-sw": { + "version": "6.6.0", + "resolved": "https://registry.npmjs.org/workbox-sw/-/workbox-sw-6.6.0.tgz", + "integrity": "sha512-R2IkwDokbtHUE4Kus8pKO5+VkPHD2oqTgl+XJwh4zbF1HyjAbgNmK/FneZHVU7p03XUt9ICfuGDYISWG9qV/CQ==", + "license": "MIT" + }, + "node_modules/workbox-webpack-plugin": { + "version": "6.6.0", + "resolved": "https://registry.npmjs.org/workbox-webpack-plugin/-/workbox-webpack-plugin-6.6.0.tgz", + "integrity": "sha512-xNZIZHalboZU66Wa7x1YkjIqEy1gTR+zPM+kjrYJzqN7iurYZBctBLISyScjhkJKYuRrZUP0iqViZTh8rS0+3A==", + "license": "MIT", + "dependencies": { + "fast-json-stable-stringify": "^2.1.0", + "pretty-bytes": "^5.4.1", + "upath": "^1.2.0", + "webpack-sources": "^1.4.3", + "workbox-build": "6.6.0" + }, + "engines": { + "node": ">=10.0.0" + }, + "peerDependencies": { + "webpack": "^4.4.0 || ^5.9.0" + } + }, + "node_modules/workbox-webpack-plugin/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/workbox-webpack-plugin/node_modules/webpack-sources": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-1.4.3.tgz", + "integrity": "sha512-lgTS3Xhv1lCOKo7SA5TjKXMjpSM4sBjNV5+q2bqesbSPs5FjGmU6jjtBSkX9b4qW87vDIsCIlUPOEhbZrMdjeQ==", + "license": "MIT", + "dependencies": { + "source-list-map": "^2.0.0", + "source-map": "~0.6.1" + } + }, + "node_modules/workbox-window": { + "version": "6.6.0", + "resolved": "https://registry.npmjs.org/workbox-window/-/workbox-window-6.6.0.tgz", + "integrity": "sha512-L4N9+vka17d16geaJXXRjENLFldvkWy7JyGxElRD0JvBxvFEd8LOhr+uXCcar/NzAmIBRv9EZ+M+Qr4mOoBITw==", + "license": "MIT", + "dependencies": { + "@types/trusted-types": "^2.0.2", + "workbox-core": "6.6.0" + } + }, + "node_modules/wrap-ansi": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/wrap-ansi-cjs": { + "name": "wrap-ansi", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", + "license": "ISC" + }, + "node_modules/write-file-atomic": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-3.0.3.tgz", + "integrity": "sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==", + "license": "ISC", + "dependencies": { + "imurmurhash": "^0.1.4", + "is-typedarray": "^1.0.0", + "signal-exit": "^3.0.2", + "typedarray-to-buffer": "^3.1.5" + } + }, + "node_modules/ws": { + "version": "7.5.10", + "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.10.tgz", + "integrity": "sha512-+dbF1tHwZpXcbOJdVOkzLDxZP1ailvSxM6ZweXTegylPny803bFhA+vqBYw4s31NSAk4S2Qz+AKXK9a4wkdjcQ==", + "license": "MIT", + "engines": { + "node": ">=8.3.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": "^5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } + } + }, + "node_modules/xml-name-validator": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-3.0.0.tgz", + "integrity": "sha512-A5CUptxDsvxKJEU3yO6DuWBSJz/qizqzJKOMIfUJHETbBw/sFaDxgd6fxm1ewUaM0jZ444Fc5vC5ROYurg/4Pw==", + "license": "Apache-2.0" + }, + "node_modules/xmlchars": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/xmlchars/-/xmlchars-2.2.0.tgz", + "integrity": "sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==", + "license": "MIT" + }, + "node_modules/y18n": { + "version": "5.0.8", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", + "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", + "license": "ISC", + "engines": { + "node": ">=10" + } + }, + "node_modules/yallist": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", + "license": "ISC" + }, + "node_modules/yaml": { + "version": "1.10.2", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz", + "integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==", + "license": "ISC", + "engines": { + "node": ">= 6" + } + }, + "node_modules/yargs": { + "version": "16.2.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", + "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", + "license": "MIT", + "dependencies": { + "cliui": "^7.0.2", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.0", + "y18n": "^5.0.5", + "yargs-parser": "^20.2.2" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/yargs-parser": { + "version": "20.2.9", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz", + "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==", + "license": "ISC", + "engines": { + "node": ">=10" + } + }, + "node_modules/yocto-queue": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", + "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + } + } +} diff --git a/client/dashboard/package.json b/client/dashboard/package.json new file mode 100644 index 0000000..f332032 --- /dev/null +++ b/client/dashboard/package.json @@ -0,0 +1,57 @@ +{ + "name": "dashboard", + "version": "0.1.0", + "private": true, + "dependencies": { + "@fortawesome/fontawesome-svg-core": "^6.5.2", + "@fortawesome/free-brands-svg-icons": "^6.5.2", + "@fortawesome/free-regular-svg-icons": "^6.5.2", + "@fortawesome/free-solid-svg-icons": "^6.5.2", + "@fortawesome/react-fontawesome": "^0.2.0", + "@testing-library/jest-dom": "^5.17.0", + "@testing-library/react": "^13.4.0", + "@testing-library/user-event": "^13.5.0", + "axios": "^1.7.9", + "bootstrap": "^5.3.3", + "dashboard": "file:", + "prop-types": "^15.8.1", + "react": "^18.2.0", + "react-bootstrap": "^2.10.6", + "react-bootstrap-typeahead": "^6.3.2", + "react-data-table-component": "^7.6.2", + "react-dom": "^18.2.0", + "react-icons": "^5.4.0", + "react-router-dom": "^7.0.2", + "react-scripts": "5.0.1", + "react-toastify": "^10.0.4", + "styled-components": "^6.1.8", + "web-vitals": "^2.1.4" + }, + "scripts": { + "start": "react-scripts start", + "build": "react-scripts build", + "test": "react-scripts test", + "eject": "react-scripts eject" + }, + "eslintConfig": { + "extends": [ + "react-app", + "react-app/jest" + ] + }, + "browserslist": { + "production": [ + ">0.2%", + "not dead", + "not op_mini all" + ], + "development": [ + "last 1 chrome version", + "last 1 firefox version", + "last 1 safari version" + ] + }, + "devDependencies": { + "@babel/plugin-proposal-private-property-in-object": "^7.21.11" + } +} diff --git a/client/dashboard/public/favicon.ico b/client/dashboard/public/favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..a11777cc471a4344702741ab1c8a588998b1311a GIT binary patch literal 3870 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 baj7?x%VD!5Cxk2YbYLNVeiXvvpMCWYo=by@ literal 0 HcmV?d00001 diff --git a/client/dashboard/public/index.html b/client/dashboard/public/index.html new file mode 100644 index 0000000..aa069f2 --- /dev/null +++ b/client/dashboard/public/index.html @@ -0,0 +1,43 @@ + + + + + + + + + + + + + React App + + + +