mirror of
https://github.com/rommapp/romm.git
synced 2025-12-22 10:27:13 +00:00
fixed everything from trunk
This commit is contained in:
@@ -1,12 +1,14 @@
|
||||
### Description
|
||||
# Pull request template
|
||||
|
||||
<sup>Please describe the changes or enhancements you are proposing with this pull request.</sup>
|
||||
## Description
|
||||
|
||||
### Related Issues
|
||||
Please describe the changes or enhancements you are proposing with this pull request.
|
||||
|
||||
<sup>List any related issues that are addressed or fixed by this pull request.</sup>
|
||||
## Related Issues
|
||||
|
||||
### Checklist
|
||||
List any related issues that are addressed or fixed by this pull request.
|
||||
|
||||
## Checklist
|
||||
|
||||
Please check all that apply.
|
||||
|
||||
@@ -17,10 +19,6 @@ Please check all that apply.
|
||||
- [ ] I've added unit tests that cover the changes
|
||||
- [ ] All existing tests are passing
|
||||
|
||||
### Additional Notes
|
||||
## Additional Notes
|
||||
|
||||
<sup>Add any additional information or context about the pull request here.</sup>
|
||||
|
||||
```
|
||||
|
||||
```
|
||||
Add any additional information or context about the pull request here.
|
||||
|
||||
@@ -19,24 +19,24 @@ runtimes:
|
||||
lint:
|
||||
enabled:
|
||||
- markdownlint@0.41.0
|
||||
- eslint@8.57.0
|
||||
- eslint@9.6.0
|
||||
- actionlint@1.7.1
|
||||
- bandit@1.7.9
|
||||
- black@24.4.2
|
||||
- checkov@3.2.139
|
||||
- checkov@3.2.178
|
||||
- git-diff-check
|
||||
- isort@5.13.2
|
||||
- mypy@1.10.0
|
||||
- osv-scanner@1.7.4
|
||||
- mypy@1.10.1
|
||||
- osv-scanner@1.8.1
|
||||
- oxipng@9.1.1
|
||||
- prettier@3.3.2
|
||||
- ruff@0.4.9
|
||||
- ruff@0.5.1
|
||||
- shellcheck@0.10.0
|
||||
- shfmt@3.6.0
|
||||
- svgo@3.3.2
|
||||
- taplo@0.8.1
|
||||
- trivy@0.52.2
|
||||
- trufflehog@3.78.1
|
||||
- trufflehog@3.79.0
|
||||
- yamllint@1.35.1
|
||||
ignore:
|
||||
- linters: [ALL]
|
||||
|
||||
667
CHANGELOG.md
667
CHANGELOG.md
@@ -1,37 +1,27 @@
|
||||
# v3.0.3 (_25-03-2024_)
|
||||
# RomM complete changelog
|
||||
|
||||
## Fixed
|
||||
## v3.0.3 (_25-03-2024_)
|
||||
|
||||
- Removed `PUID/GUID` environment variables. Instead, use the `user: "XXXX:XXXX"` entry in docker-compose to set the owner of newly created file/folders and mounted volumes
|
||||
- Fixed: Removed `PUID/GUID` environment variables. Instead, use the `user: "XXXX:XXXX"` entry in docker-compose to set the owner of newly created file/folders and mounted volumes
|
||||
|
||||
<br>
|
||||
|
||||
# v3.0.2 (_25-03-2024_)
|
||||
## v3.0.2 (_25-03-2024_)
|
||||
|
||||
> [!WARNING]
|
||||
> RomM has been organized in `github` and `dockerhub`! New images will be upload to `rommapp/romm` repository on dockerhub and ghcr.
|
||||
|
||||
## Added
|
||||
- Added: Famicon disk system to emulatorjs
|
||||
- Added: Allow setting PUID/GUID/UMASK with environment variables
|
||||
- Added: Re-added external redis support. You can now use an external redis instance with RomM by setting `REDIS_HOST` and `REDIS_PORT` in the env variables. If you have those variables currently set but want to use the internal one, you'll have to remove those them.
|
||||
|
||||
- Famicon disk system to emulatorjs
|
||||
- Allow setting PUID/GUID/UMASK with environment variables
|
||||
- Re-added external redis support. You can now use an external redis instance with RomM by setting `REDIS_HOST` and `REDIS_PORT` in the env variables. If you have those variables currently set but want to use the internal one, you'll have to remove those them.
|
||||
- Changed: Added scrolling to scan logs
|
||||
- Changed: Disabled amiga emulator until bios support added
|
||||
- Changed: Updated [docker-compose.example.yml file](https://github.com/rommapp/romm/blob/3.0.1/examples/docker-compose.example.yml) to match new dockerhub `rommapp` organization
|
||||
|
||||
## Changed
|
||||
- Fixed: Normalized IGDB search for better results
|
||||
- Fixed: Player viewport to fit screen better
|
||||
- Fixed: Safari downloads file names
|
||||
|
||||
- Added scrolling to scan logs
|
||||
- Disabled amiga emulator until bios support added
|
||||
- Updated [docker-compose.example.yml file](https://github.com/rommapp/romm/blob/3.0.1/examples/docker-compose.example.yml) to match new dockerhub `rommapp` organization
|
||||
|
||||
## Fixed
|
||||
|
||||
- Normalized IGDB search for better results
|
||||
- Fixed player viewport to fit screen better
|
||||
- Fixed safari downloads file names
|
||||
|
||||
<br>
|
||||
|
||||
# v3.0.1 (_13-03-2024_)
|
||||
## v3.0.1 (_13-03-2024_)
|
||||
|
||||
> [!WARNING]
|
||||
> This hotfix requires a few changes:
|
||||
@@ -39,470 +29,293 @@
|
||||
- A new volume has to be bound to `/redis-data`, check the [docker-compose.example.yml file](https://github.com/rommapp/romm/blob/3.0.1/examples/docker-compose.example.yml)
|
||||
- If you're seeing "Decompress Game Core" when trying to run games in EmulatorJS, you'll need to clear storage in your browser to clear IndexedDB
|
||||
|
||||
## Fixed
|
||||
- Fixed: Integrated redis data persist. Check the [docker-compose.example.yml](https://github.com/rommapp/romm/blob/3.0.1/examples/docker-compose.example.yml)
|
||||
- Fixed: Emulatorjs integration. Fixes #695
|
||||
- Fixed: 404 for assets endpoint
|
||||
- Fixed: Sqlite to mariadb migration
|
||||
- Fixed: Async tasks not running and throwing errors
|
||||
- Fixed: Sqlite to mariadb migration. Fixes #697 and #688
|
||||
- Fixed: Multipart game selector when change between games
|
||||
|
||||
## v3.0.0 (_11-03-2024_)
|
||||
|
||||
- Highlight: [EmulatorJS player](https://github.com/rommapp/romm/wiki/EmulatorJS-Player): Play retro games in your web browser
|
||||
- Highlight: Saves and states: Upload/downlaod game saves, and play them with EmulatorJS
|
||||
- Highlight: More metadata: Extracts more information from IGDB, like release date, genres, related games, etc.
|
||||
- Highlight: New license: Now licensed under AGPL-3.0 to promote community contributions
|
||||
|
||||
- Fix for integrated redis data persist. Check the [docker-compose.example.yml](https://github.com/rommapp/romm/blob/3.0.1/examples/docker-compose.example.yml)
|
||||
- Fixed emulatorjs integration. Fixes #695
|
||||
- Fixed 404 for assets endpoint
|
||||
- Fixed sqlite to mariadb migration
|
||||
- Fixed async tasks not running and throwing errors
|
||||
- Fixed sqlite to mariadb migration. Fixes #697 and #688
|
||||
- Fixed multipart game selector when change between games
|
||||
- Added: Manually trigger async tasks from the UI
|
||||
- Added: New /stats endpoint to get library statistics
|
||||
- Added: Multi-file roms now download with .m3u file
|
||||
- Added: Small banner in UI when new version is available
|
||||
- Added: Manual search now also checks alternative names
|
||||
|
||||
- Changed: Redis is now built into the image
|
||||
- Changed: Dropped support for build-in SQLite database
|
||||
- Changed: Faster search against IGDB API with better results
|
||||
- Changed: New covers when game or cover art not found
|
||||
- Changed: Improved build process and release tagging
|
||||
- Changed: Improved error handling and logging
|
||||
|
||||
- Fixed: Validation is run on config.yml file to ensure compatibility
|
||||
- Fixed: Downloading single file from multi-file roms
|
||||
- Fixed: Compressing large files for download
|
||||
- Fixed: Reworked the authetication system to reduce CSRF and login issues
|
||||
- Fixed: Reconnect websockets on page reload to catch scan progress
|
||||
- Fixed: Many other small bug fixes and improvements
|
||||
|
||||
<br>
|
||||
## v2.3.1 (_08-01-2024_)
|
||||
|
||||
- Fixed: Deleting platforms now works properly when having "orphaned" platforms.
|
||||
|
||||
# v3.0.0 (_11-03-2024_)
|
||||
- Changed: Platforms can only be deleted from RomM's database. Checkbox to delete platform from filesystem have been removed.
|
||||
|
||||
## Hightlights
|
||||
## v2.3.0 (_08-01-2024_)
|
||||
|
||||
- [EmulatorJS player](https://github.com/rommapp/romm/wiki/EmulatorJS-Player): Play retro games in your web browser
|
||||
- Saves and states: Upload/downlaod game saves, and play them with EmulatorJS
|
||||
- More metadata: Extracts more information from IGDB, like release date, genres, related games, etc.
|
||||
- New license: Now licensed under AGPL-3.0 to promote community contributions
|
||||
- Added: Now `platforms` can be `deleted` from the gallery. Closes [#567](https://github.com/rommapp/romm/issues/567)
|
||||
- Added: Support for `switch` `updates` and `DLC` files. Closes [#554](https://github.com/rommapp/romm/issues/554)
|
||||
- Added: Additional Webrcade resources by @Casuallynoted.
|
||||
- Added: `Exclusions` in `config` file now accepts `wildcards`. Check the [config.example.yml](examples/config.example.yml). Closes [#575](https://github.com/rommapp/romm/issues/575)
|
||||
|
||||
## New features
|
||||
- Fixed: `Not identified` games are no longer being grouped when `group roms` option is enabled.
|
||||
- Fixed: Changes in the `config` file from one to other platform are now more consistent. Closes [#567](https://github.com/rommapp/romm/issues/567)
|
||||
- Fixed: Some other minor fixes.
|
||||
|
||||
- Manually trigger async tasks from the UI
|
||||
- New /stats endpoint to get library statistics
|
||||
- Multi-file roms now download with .m3u file
|
||||
- Small banner in UI when new version is available
|
||||
- Manual search now also checks alternative names
|
||||
- Changed: File extensions now can have up to `100` characters. Closes [#531](https://github.com/rommapp/romm/issues/531)
|
||||
- Changed: Now files without extension are skipped during scan by @bfenty.
|
||||
- Changed: Logs are now clearer.
|
||||
|
||||
## Other changes
|
||||
## v2.2.1 (_02-01-2024_)
|
||||
|
||||
- Redis is now built into the image
|
||||
- Dropped support for build-in SQLite database
|
||||
- Faster search against IGDB API with better results
|
||||
- New covers when game or cover art not found
|
||||
- Improved build process and release tagging
|
||||
- Improved error handling and logging
|
||||
- Added: An option to group different regions of one game in the same entry in the `Control Panel`. Closes [#404](https://github.com/rommapp/romm/issues/404)
|
||||
|
||||
## Fixed
|
||||
- Fixed: An error when scanning games with with `ps2 opl`, `switch titledb/productid` or `mame` format.
|
||||
- Fixed: Updating roms of a custom platform folder.
|
||||
|
||||
- Validation is run on config.yml file to ensure compatibility
|
||||
- Fix downloading single file from multi-file roms
|
||||
- Fix compressing large files for download
|
||||
- Reworked the authetication system to reduce CSRF and login issues
|
||||
- Reconnect websockets on page reload to catch scan progress
|
||||
- Many other small bug fixes and improvements
|
||||
- Changed: Now region and language tags are case insensitive to show `emojis`.
|
||||
|
||||
<br>
|
||||
## v2.2.0 (_31-12-2023_)
|
||||
|
||||
# v2.3.1 (_08-01-2024_)
|
||||
- Added: Support for `productID` in the file name for `switch` titles.
|
||||
- Added: Rom name sorting now sorts smarter, avoiding leading articles such `The` or `A`, like in `The Legend of Zelda`. Closes [#449](https://github.com/rommapp/romm/issues/449) and [#450](https://github.com/rommapp/romm/issues/450)
|
||||
- Added: Support for file names with multiple `regions` and `languages`. Also uses `emojis` to display them. Closes [#473](https://github.com/rommapp/romm/issues/473)
|
||||
- Added: A button to manually `run` all tasks. Closes [#437](https://github.com/rommapp/romm/issues/437)
|
||||
- Added: Now if a game doesn't have cover, it will show a screenshot if available. Closes [#455](https://github.com/rommapp/romm/issues/455)
|
||||
- Added: A little warning icon in the platform selector if the platform is not found by IGDB.
|
||||
- Added: Now if a platform is not found by IGDB, the platform name is `titleized`. Ex: `pocket-challenge-v2 -> Pocket Challenge V2`. Closes [#486](https://github.com/rommapp/romm/issues/486)
|
||||
- Added: A lot more icons!. Complete list at [PR-488](https://github.com/rommapp/romm/pull/488) and [PR-493](https://github.com/rommapp/romm/pull/493)
|
||||
- Added: Support for support for AES/MVS. Closes [#503](https://github.com/rommapp/romm/issues/503)
|
||||
- Added: [Helm Chart](https://artifacthub.io/packages/helm/crystalnet/romm) to deploy on Kubernetes by @psych0d0g
|
||||
- Added: `Rescan unidentified` added to the scan view, allowing to rescan only those entries that IGDB couldn't identify in previous scans. Closes [#519](https://github.com/rommapp/romm/issues/519)
|
||||
- Added: `Config file` visualization added to the new `Config` tab in the `Control Panel`. Partially implements some concepts of [#457](https://github.com/rommapp/romm/issues/457)
|
||||
|
||||
## Fixed
|
||||
- Fixed: Now sorting by size in the gallery table view works as expected. Closes [#423](https://github.com/rommapp/romm/issues/423)
|
||||
- Fixed: Now RomM is more responsive in more kind of devices.
|
||||
- Fixed: Cover sizes are now standarized to have a more consistent gallery. Closes [#340](https://github.com/rommapp/romm/issues/340)
|
||||
- Fixed: Improved detection for multiple extension files.
|
||||
- Fixed: Now the `delete from filesystem` checkbox is reseted when the `delete` dialog is closed. Closes [#466](https://github.com/rommapp/romm/issues/466)
|
||||
- Fixed: Single file roms now are properly downloaded from backend, fixing a potential security issue. Closes [#471](https://github.com/rommapp/romm/issues/471)
|
||||
- Fixed: Now a new `scanned` game appears directly in the gallery without refreshing. Closes [#467](https://github.com/rommapp/romm/issues/467)
|
||||
- Fixed: A lot more of small fixes.
|
||||
- Fixed: Now the default theme is setup properly.
|
||||
- Fixed: Scan for custom folders from the `scan` view. Closes [#501](https://github.com/rommapp/romm/issues/501)
|
||||
- Fixed: Multi-part games download when any part of the game contains a `comma` in the name. Closes [#520](https://github.com/rommapp/romm/issues/520)
|
||||
|
||||
- Deleting platforms now works properly when having "orphaned" platforms.
|
||||
- Changed: Improved the docker `init scripts` handling by @psych0d0g.
|
||||
- Changed: Now the `scan` can continue after failing finding roms for one platform. Closes [#460](https://github.com/rommapp/romm/issues/460)
|
||||
- Changed: Logs improved a lot.
|
||||
|
||||
## Changed
|
||||
## v2.1.0 (_31-10-2023_)
|
||||
|
||||
- Platforms can only be deleted from RomM's database. Checkbox to delete platform from filesystem have been removed.
|
||||
- Added: `Scheduler` to run scheduled scans and `Watchdog` to perform scans when adding/renamed/deleted any rom from the filesystem. Added a lot of new environment variables to configure both features. Check the [readme.md](README.md#📅-scheduler) for an explanation of how to configure them.
|
||||
- Added: new `REDIS_PASSWORD` environment variable to support secured redis with pasword. Closes [#412](https://github.com/rommapp/romm/issues/412)
|
||||
- Added: New `Recently Added` section in the dashboard shows the last 15 added roms. Closes [#400](https://github.com/rommapp/romm/issues/400)
|
||||
|
||||
<br>
|
||||
- Fixed: Upload rom feature is now working properly.
|
||||
- Fixed: Fixed order roms by size in the gallery list view. Fixes [#423](https://github.com/rommapp/romm/issues/423)
|
||||
|
||||
# v2.3.0 (_08-01-2024_)
|
||||
- Changed: Now platforms without roms will be hidden in the drawer and the dashboard. Closes [#396](https://github.com/rommapp/romm/issues/396)
|
||||
|
||||
## Added
|
||||
## v2.0.1 (_29-10-2023_)
|
||||
|
||||
- Now `platforms` can be `deleted` from the gallery. Closes [#567](https://github.com/rommapp/romm/issues/567)
|
||||
- Support for `switch` `updates` and `DLC` files. Closes [#554](https://github.com/rommapp/romm/issues/554)
|
||||
- Additional Webrcade resources by @Casuallynoted.
|
||||
- `Exclusions` in `config` file now accepts `wildcards`. Check the [config.example.yml](examples/config.example.yml). Closes [#575](https://github.com/rommapp/romm/issues/575)
|
||||
- Fixed: An error that caused to show the wrong roms for one platform if user navigates directly to that platform from a rom details page. Fixes [#408](https://github.com/rommapp/romm/issues/408)
|
||||
|
||||
## Fixed
|
||||
## v2.0.0 (_27-10-2023_)
|
||||
|
||||
- `Not identified` games are no longer being grouped when `group roms` option is enabled.
|
||||
- Changes in the `config` file from one to other platform are now more consistent. Closes [#567](https://github.com/rommapp/romm/issues/567)
|
||||
- Some other minor fixes.
|
||||
- Added: User management system. Check the [docker-compose.example.yml](examples/docker-compose.example.yml) for all the needed changes and environment variables. Closes [#24](https://github.com/rommapp/romm/issues/24)
|
||||
- Added: Gallery bulk selection. Closes [#50](https://github.com/rommapp/romm/issues/50)
|
||||
- Added: Roms upload feature.
|
||||
- Added: Custom cover art.
|
||||
- Added: Custom name for `roms` folder throught the `ROMS_FOLDER_NAME` environment variable. Closes [#356](https://github.com/rommapp/romm/issues/356)
|
||||
- Added: `IGDB_CLIENT_ID` and `IGDB_CLIENT_SECRET` as environment variables. `CLIENT_ID` and `CLIENT_ID` are deprecated and will be removed in future versions.
|
||||
- Added: icons for more platforms: CD-i, 3DO, Neo Geo Pocket Color, Nintendo 64DD, Satellaview, Playdia, Pippin, Mac
|
||||
|
||||
## Changed
|
||||
- Fixed: some checks before renaming a rom to avoid breaking names. Closes [#348](https://github.com/rommapp/romm/issues/348)
|
||||
- Fixed: A lot of other minor bugs.
|
||||
|
||||
- File extensions now can have up to `100` characters. Closes [#531](https://github.com/rommapp/romm/issues/531)
|
||||
- Now files without extension are skipped during scan by @bfenty.
|
||||
- Logs are now clearer.
|
||||
- Changed: RomM internal port changed from `80` to `8080`.
|
||||
- Changed: RomM docker image size reduced significantly.
|
||||
- Changed: Improved scanning and IGDB requests returning first the exact match.
|
||||
- Changed: Scan now times out at 4 hours to improve scans for larger libraries.
|
||||
- Changed: Other minimal changes in platform icons.
|
||||
|
||||
<br>
|
||||
## v1.10 (_15-08-2023_)
|
||||
|
||||
# v2.2.1 (_02-01-2024_)
|
||||
- Added: Rom admin menu added to roms in gallery. Closes [#28](https://github.com/rommapp/romm/issues/28)
|
||||
- Added: Added ps2/opl naming convention support for roms scanning. Closes [#324](https://github.com/rommapp/romm/issues/324)
|
||||
|
||||
## Added
|
||||
- Fixed: An error caused by the service worker that sometimes intercepts download requests and returns a bad response. Fixes [#297](https://github.com/rommapp/romm/issues/297)
|
||||
- Fixed: Rom count in platform selector when deleting/scanning roms. Fixes [#325](https://github.com/rommapp/romm/issues/325)
|
||||
|
||||
- Added an option to group different regions of one game in the same entry in the `Control Panel`. Closes [#404](https://github.com/rommapp/romm/issues/404)
|
||||
- Changed: Improved scanning and IGDB requests logs. Fixes [#317](https://github.com/rommapp/romm/issues/317)
|
||||
- Changed: Improved downloading process. Fixes [#332](https://github.com/rommapp/romm/issues/332)
|
||||
|
||||
## Fixed
|
||||
## v1.9.1 (_01-08-2023_)
|
||||
|
||||
- Fixed an error when scanning games with with `ps2 opl`, `switch titledb/productid` or `mame` format.
|
||||
- Fixed updating roms of a custom platform folder.
|
||||
- Added: RomM logs are now stored in `/romm/logs` in docker and path can be binded in docker-compose. Check [docker-compose.example.yml](examples/docker-compose.example.yml). Solves [#303](https://github.com/rommapp/romm/issues/303)
|
||||
|
||||
## Changed
|
||||
- Fixed: multipart roms scanning.
|
||||
- Fixed: Now platforms folders are case insensitive, allowing to have them lowercase or uppercase. Solves [#282](https://github.com/rommapp/romm/issues/282)
|
||||
- Fixed: Fixed a bug that caused the platforms drawer to dissapear after scan.
|
||||
|
||||
- Now region and language tags are case insensitive to show `emojis`.
|
||||
## v1.9 (_31-07-2023_)
|
||||
|
||||
<br>
|
||||
- Added: Region and revision system is now more robust and flexible. Solves [#301](https://github.com/rommapp/romm/issues/301). Check [tags support](https://github.com/rommapp/romm#-tags-support)
|
||||
|
||||
# v2.2.0 (_31-12-2023_)
|
||||
- Changed: Libraries are now paginated to improve performance in large collections. Solves [#89](https://github.com/rommapp/romm/issues/89) and [#280](https://github.com/rommapp/romm/issues/280)
|
||||
|
||||
## Added
|
||||
- Fixed: Downloads are now managed in the backend, allowing the web browser to manage the download progression and avoiding memory overload. Solves [#266](https://github.com/rommapp/romm/issues/266)
|
||||
|
||||
- Support for `productID` in the file name for `switch` titles.
|
||||
- Rom name sorting now sorts smarter, avoiding leading articles such `The` or `A`, like in `The Legend of Zelda`. Closes [#449](https://github.com/rommapp/romm/issues/449) and [#450](https://github.com/rommapp/romm/issues/450)
|
||||
- Support for file names with multiple `regions` and `languages`. Also uses `emojis` to display them. Closes [#473](https://github.com/rommapp/romm/issues/473)
|
||||
- Added a button to manually `run` all tasks. Closes [#437](https://github.com/rommapp/romm/issues/437)
|
||||
- Now if a game doesn't have cover, it will show a screenshot if available. Closes [#455](https://github.com/rommapp/romm/issues/455)
|
||||
- Added a little warning icon in the platform selector if the platform is not found by IGDB.
|
||||
- Now if a platform is not found by IGDB, the platform name is `titleized`. Ex: `pocket-challenge-v2 -> Pocket Challenge V2`. Closes [#486](https://github.com/rommapp/romm/issues/486)
|
||||
- A lot more icons!. Complete list at [PR-488](https://github.com/rommapp/romm/pull/488) and [PR-493](https://github.com/rommapp/romm/pull/493)
|
||||
- Support for support for AES/MVS. Closes [#503](https://github.com/rommapp/romm/issues/503)
|
||||
- Added [Helm Chart](https://artifacthub.io/packages/helm/crystalnet/romm) to deploy on Kubernetes by @psych0d0g
|
||||
- `Rescan unidentified` added to the scan view, allowing to rescan only those entries that IGDB couldn't identify in previous scans. Closes [#519](https://github.com/rommapp/romm/issues/519)
|
||||
- `Config file` visualization added to the new `Config` tab in the `Control Panel`. Partially implements some concepts of [#457](https://github.com/rommapp/romm/issues/457)
|
||||
## v1.8.4 (_19-05-2023_)
|
||||
|
||||
## Fixed
|
||||
- Fixed: broken scan in multi part games. Solves [#262](https://github.com/rommapp/romm/issues/262)
|
||||
|
||||
- Now sorting by size in the gallery table view works as expected. Closes [#423](https://github.com/rommapp/romm/issues/423)
|
||||
- Now RomM is more responsive in more kind of devices.
|
||||
- Cover sizes are now standarized to have a more consistent gallery. Closes [#340](https://github.com/rommapp/romm/issues/340)
|
||||
- Improved detection for multiple extension files.
|
||||
- Now the `delete from filesystem` checkbox is reseted when the `delete` dialog is closed. Closes [#466](https://github.com/rommapp/romm/issues/466)
|
||||
- Single file roms now are properly downloaded from backend, fixing a potential security issue. Closes [#471](https://github.com/rommapp/romm/issues/471)
|
||||
- Now a new `scanned` game appears directly in the gallery without refreshing. Closes [#467](https://github.com/rommapp/romm/issues/467)
|
||||
- A lot more of small fixes.
|
||||
- Now the default theme is setup properly.
|
||||
- Fixed scan for custom folders from the `scan` view. Closes [#501](https://github.com/rommapp/romm/issues/501)
|
||||
- Fixed multi-part games download when any part of the game contains a `comma` in the name. Closes [#520](https://github.com/rommapp/romm/issues/520)
|
||||
## v1.8.3 (_17-05-2023_)
|
||||
|
||||
## Changed
|
||||
- Added: platforms to home page.
|
||||
- Added: the scan log in real time in the scan section.
|
||||
- Added: fast scan button in the gallery to direct scan the current platform. Solves [#250](https://github.com/rommapp/romm/issues/250)
|
||||
- Added: Game and Watch support. Partially solves [#245](https://github.com/rommapp/romm/issues/245)
|
||||
- Added: Amstrad CPC support. Partially solves [#245](https://github.com/rommapp/romm/issues/245)
|
||||
- Added: Game and Gear support. Partially solves [#245](https://github.com/rommapp/romm/issues/245)
|
||||
- Added: PC-98 support. Partially solves [#245](https://github.com/rommapp/romm/issues/245)
|
||||
- Added: Pokemini support. Partially solves [#245](https://github.com/rommapp/romm/issues/245)
|
||||
- Added: DOOM support. Partially solves [#245](https://github.com/rommapp/romm/issues/245)
|
||||
|
||||
- Improved the docker `init scripts` handling by @psych0d0g.
|
||||
- Now the `scan` can continue after failing finding roms for one platform. Closes [#460](https://github.com/rommapp/romm/issues/460)
|
||||
- Logs improved a lot.
|
||||
- Fixed: A bug that caused scan to run twice. Solves [#221](https://github.com/rommapp/romm/issues/221)
|
||||
- Fixed: Improved RomM initial setup logs for bad folder structure configurations. Solves [#217](https://github.com/rommapp/romm/issues/217)
|
||||
- Fixed: Improved gallery loading when switching between view modes.
|
||||
|
||||
<br>
|
||||
## v1.8.2 (_09-05-2023_)
|
||||
|
||||
# v2.1.0 (_31-10-2023_)
|
||||
- Added: Atari 2600 support added. Solves [#224](https://github.com/rommapp/romm/issues/224)
|
||||
- Added: Atari 7800 support added. Solves [#226](https://github.com/rommapp/romm/issues/226)
|
||||
- Added: Atari 5200 support added. Solves [#225](https://github.com/rommapp/romm/issues/225)
|
||||
- Added: Sega 32X support added. Solves [#223](https://github.com/rommapp/romm/issues/223)
|
||||
- Added: Nintendo Virtual Boy support added. Solves [#222](https://github.com/rommapp/romm/issues/222)
|
||||
|
||||
## Added
|
||||
- Fixed: Potentially malformed urls for covers and screenshots from IGDB. Solves [#216](https://github.com/rommapp/romm/issues/216)
|
||||
- Fixed: Potentially scan fail with some games with large names. Solves [#229](https://github.com/rommapp/romm/issues/229)
|
||||
|
||||
- Added `Scheduler` to run scheduled scans and `Watchdog` to perform scans when adding/renamed/deleted any rom from the filesystem. Added a lot of new environment variables to configure both features. Check the [readme.md](README.md#📅-scheduler) for an explanation of how to configure them.
|
||||
- Added new `REDIS_PASSWORD` environment variable to support secured redis with pasword. Closes [#412](https://github.com/rommapp/romm/issues/412)
|
||||
- New `Recently Added` section in the dashboard shows the last 15 added roms. Closes [#400](https://github.com/rommapp/romm/issues/400)
|
||||
## v1.8.1 (_27-04-2023_)
|
||||
|
||||
## Fixed
|
||||
- Added: Now it is possible to search a rom match by Name and by ID. Solves [#208](https://github.com/rommapp/romm/issues/208)
|
||||
- Added: Now screenshots are displayed in screenshots tab (Complete scan needed in order to fetch screenshots from IGDB). Partially solves [#57](https://github.com/rommapp/romm/issues/57)
|
||||
- Added: Now more rom properties can be manually edited. Solves [#140](https://github.com/rommapp/romm/issues/140)
|
||||
|
||||
- Upload rom feature is now working properly.
|
||||
- Fixed order roms by size in the gallery list view. Fixes [#423](https://github.com/rommapp/romm/issues/423)
|
||||
## v1.8 (_25-04-2023_)
|
||||
|
||||
## Changed
|
||||
- Added: Home screen.
|
||||
- Added: Config option to associate custom system folders to platforms (Complete scan needed). Check [config.yml](docker/config.example.yml) example. Solves [#152](https://github.com/rommapp/romm/issues/152).
|
||||
- Added: Sega Saturn and Master System support added. Check [platforms support](https://github.com/rommapp/romm#platforms-support). Solves [#194](https://github.com/rommapp/romm/issues/194).
|
||||
- Added: Progress bar when games are being downloaded.
|
||||
|
||||
- Now platforms without roms will be hidden in the drawer and the dashboard. Closes [#396](https://github.com/rommapp/romm/issues/396)
|
||||
- Changed: Routes to different RomM sections and games changed now allow share direct links to platforms and games.
|
||||
- Changed: RomM now can scan subdirectories in a multi-part game. Solves [#179](https://github.com/rommapp/romm/issues/179).
|
||||
- Changed: Settings and Scan sections are now in the main drawer menu.
|
||||
- Changed: Some UI changes.
|
||||
|
||||
<br>
|
||||
- Fixed: Code base stability and speed improved.
|
||||
|
||||
# v2.0.1 (_29-10-2023_)
|
||||
## v1.7.1 (_15-04-2023_)
|
||||
|
||||
## Fixed
|
||||
- Added: New UI feel with the new RomM color palette
|
||||
|
||||
- Fixed an error that caused to show the wrong roms for one platform if user navigates directly to that platform from a rom details page. Fixes [#408](https://github.com/rommapp/romm/issues/408)
|
||||
- Changed: Roms size is now human readable
|
||||
|
||||
<br>
|
||||
- Fixed: A bug where multi file roms could break the scan if the rom name have a dot.
|
||||
|
||||
# v2.0.0 (_27-10-2023_)
|
||||
## v1.7 (_14-04-2023_)
|
||||
|
||||
## Added
|
||||
- Added: More options and flexibility to prevent files/folders to be scanned. Check [config.yml](docker/config.example.yml) example
|
||||
- Added: Config file example added to docker/config.example.yml
|
||||
|
||||
- User management system. Check the [docker-compose.example.yml](examples/docker-compose.example.yml) for all the needed changes and environment variables. Closes [#24](https://github.com/rommapp/romm/issues/24)
|
||||
- Gallery bulk selection. Closes [#50](https://github.com/rommapp/romm/issues/50)
|
||||
- Roms upload feature.
|
||||
- Custom cover art.
|
||||
- Custom name for `roms` folder throught the `ROMS_FOLDER_NAME` environment variable. Closes [#356](https://github.com/rommapp/romm/issues/356)
|
||||
- Added `IGDB_CLIENT_ID` and `IGDB_CLIENT_SECRET` as environment variables. `CLIENT_ID` and `CLIENT_ID` are deprecated and will be removed in future versions.
|
||||
- Added icons for more platforms: CD-i, 3DO, Neo Geo Pocket Color, Nintendo 64DD, Satellaview, Playdia, Pippin, Mac
|
||||
- Changed: Rom details page revamped
|
||||
- Changed: RomM logo revamped
|
||||
|
||||
## Fixed
|
||||
## v1.6.5 (_12-04-2023_)
|
||||
|
||||
- Fixed some checks before renaming a rom to avoid breaking names. Closes [#348](https://github.com/rommapp/romm/issues/348)
|
||||
- A lot of other minor bugs.
|
||||
- Added: Multiple games gallery display modes
|
||||
|
||||
## Changed
|
||||
- Changed: Some fixes and improvements
|
||||
|
||||
- RomM internal port changed from `80` to `8080`.
|
||||
- RomM docker image size reduced significantly.
|
||||
- Improved scanning and IGDB requests returning first the exact match.
|
||||
- Scan now times out at 4 hours to improve scans for larger libraries.
|
||||
- Other minimal changes in platform icons.
|
||||
## v1.6.4 (_12-04-2023_)
|
||||
|
||||
<br>
|
||||
- Added: Now RomM allows to fix missmatched games by searching by IGDB id manually
|
||||
- Added: WonderSwan and WonderSwan Color support added
|
||||
|
||||
# v1.10 (_15-08-2023_)
|
||||
## v1.6.3 (_12-04-2023_)
|
||||
|
||||
## Added
|
||||
- Added: Support for multi file games: Now RomM can scan a folder with the game name and all of its files inside the folder. No need to match the folder with the files inside. Download feature can download a zip with the entire game and all of the files or just the desired ones.
|
||||
- Added: Some UI tweaks
|
||||
|
||||
- Rom admin menu added to roms in gallery. Closes [#28](https://github.com/rommapp/romm/issues/28)
|
||||
- Added ps2/opl naming convention support for roms scanning. Closes [#324](https://github.com/rommapp/romm/issues/324)
|
||||
## v1.6.2 (_04-04-2023_)
|
||||
|
||||
## Fixed
|
||||
- Added: Support for commodore64
|
||||
|
||||
- Fixed an error caused by the service worker that sometimes intercepts download requests and returns a bad response. Fixes [#297](https://github.com/rommapp/romm/issues/297)
|
||||
- Fixed rom count in platform selector when deleting/scanning roms. Fixes [#325](https://github.com/rommapp/romm/issues/325)
|
||||
- Fixed: Searching in IGDB for games in not supported platforms doesn't raise an error anymore
|
||||
|
||||
## Changed
|
||||
## v1.6.1 (_04-04-2023_)
|
||||
|
||||
- Improved scanning and IGDB requests logs. Fixes [#317](https://github.com/rommapp/romm/issues/317)
|
||||
- Improved downloading process. Fixes [#332](https://github.com/rommapp/romm/issues/332)
|
||||
- Added: Now sqlite database location needs to be binded to `/romm/database`. Check [docker-compose](examples/docker-compose.example.yml) example.
|
||||
- Added: Now resources location (games cover) needs to be binded to `/romm/resources`. Check [docker-compose](examples/docker-compose.example.yml) example.
|
||||
- Added: More platforms support. Check [platforms support](https://github.com/rommapp/romm#platforms-support)
|
||||
- Added: Now RomM version appears in the bottom of the settings panel
|
||||
|
||||
<br>
|
||||
- Fixed: Download feature is now fixed for RomM structucture 1
|
||||
|
||||
# v1.9.1 (_01-08-2023_)
|
||||
- Changed: Library path binding changed from `/library` to `/romm/library`. Check [docker-compose](examples/docker-compose.example.yml)
|
||||
|
||||
## Added
|
||||
## v1.6 (_01-04-2023_)
|
||||
|
||||
- RomM logs are now stored in `/romm/logs` in docker and path can be binded in docker-compose. Check [docker-compose.example.yml](examples/docker-compose.example.yml). Solves [#303](https://github.com/rommapp/romm/issues/303)
|
||||
- Added: Smart scan: now RomM will only scan the changes in the filesystem, making the scan process too much faster. Added an option to force a full scan.
|
||||
- Added: Now game files can be renamed after the name matched in IGDB, keeping the tags.
|
||||
|
||||
## Fixed
|
||||
## v1.5.1 (_31-03-2023_)
|
||||
|
||||
- Fixed multipart roms scanning.
|
||||
- Now platforms folders are case insensitive, allowing to have them lowercase or uppercase. Solves [#282](https://github.com/rommapp/romm/issues/282)
|
||||
- Fixed a bug that caused the platforms drawer to dissapear after scan.
|
||||
- Fixed: Delete game now works properly
|
||||
|
||||
<br>
|
||||
|
||||
# v1.9 (_31-07-2023_)
|
||||
|
||||
## Added
|
||||
|
||||
- Region and revision system is now more robust and flexible. Solves [#301](https://github.com/rommapp/romm/issues/301). Check [tags support](https://github.com/rommapp/romm#-tags-support)
|
||||
|
||||
## Fixed
|
||||
|
||||
- Libraries are now paginated to improve performance in large collections. Solves [#89](https://github.com/rommapp/romm/issues/89) and [#280](https://github.com/rommapp/romm/issues/280)
|
||||
- Downloads are now managed in the backend, allowing the web browser to manage the download progression and avoiding memory overload. Solves [#266](https://github.com/rommapp/romm/issues/266)
|
||||
|
||||
<br>
|
||||
|
||||
# v1.8.4 (_19-05-2023_)
|
||||
|
||||
## Fixed
|
||||
|
||||
- Fixed broken scan in multi part games. Solves [#262](https://github.com/rommapp/romm/issues/262)
|
||||
|
||||
<br>
|
||||
|
||||
# v1.8.3 (_17-05-2023_)
|
||||
|
||||
## Added
|
||||
|
||||
- Added platforms to home page.
|
||||
- Added the scan log in real time in the scan section.
|
||||
- Added fast scan button in the gallery to direct scan the current platform. Solves [#250](https://github.com/rommapp/romm/issues/250)
|
||||
- Added Game and Watch support. Partially solves [#245](https://github.com/rommapp/romm/issues/245)
|
||||
- Added Amstrad CPC support. Partially solves [#245](https://github.com/rommapp/romm/issues/245)
|
||||
- Added Game and Gear support. Partially solves [#245](https://github.com/rommapp/romm/issues/245)
|
||||
- Added PC-98 support. Partially solves [#245](https://github.com/rommapp/romm/issues/245)
|
||||
- Added Pokemini support. Partially solves [#245](https://github.com/rommapp/romm/issues/245)
|
||||
- Added DOOM support. Partially solves [#245](https://github.com/rommapp/romm/issues/245)
|
||||
|
||||
## Fixed
|
||||
|
||||
- Fixed a bug that caused scan to run twice. Solves [#221](https://github.com/rommapp/romm/issues/221)
|
||||
- Improved RomM initial setup logs for bad folder structure configurations. Solves [#217](https://github.com/rommapp/romm/issues/217)
|
||||
- Improved gallery loading when switching between view modes.
|
||||
|
||||
<br>
|
||||
|
||||
# v1.8.2 (_09-05-2023_)
|
||||
|
||||
## Added
|
||||
|
||||
- Atari 2600 support added. Solves [#224](https://github.com/rommapp/romm/issues/224)
|
||||
- Atari 7800 support added. Solves [#226](https://github.com/rommapp/romm/issues/226)
|
||||
- Atari 5200 support added. Solves [#225](https://github.com/rommapp/romm/issues/225)
|
||||
- Sega 32X support added. Solves [#223](https://github.com/rommapp/romm/issues/223)
|
||||
- Nintendo Virtual Boy support added. Solves [#222](https://github.com/rommapp/romm/issues/222)
|
||||
|
||||
## Fixed
|
||||
|
||||
- Fixed potentially malformed urls for covers and screenshots from IGDB. Solves [#216](https://github.com/rommapp/romm/issues/216)
|
||||
- Fixed potentially scan fail with some games with large names. Solves [#229](https://github.com/rommapp/romm/issues/229)
|
||||
|
||||
<br>
|
||||
|
||||
# v1.8.1 (_27-04-2023_)
|
||||
|
||||
## Added
|
||||
|
||||
- Now it is possible to search a rom match by Name and by ID. Solves [#208](https://github.com/rommapp/romm/issues/208)
|
||||
- Now screenshots are displayed in screenshots tab (Complete scan needed in order to fetch screenshots from IGDB). Partially solves [#57](https://github.com/rommapp/romm/issues/57)
|
||||
- Now more rom properties can be manually edited. Solves [#140](https://github.com/rommapp/romm/issues/140)
|
||||
|
||||
<br>
|
||||
|
||||
# v1.8 (_25-04-2023_)
|
||||
|
||||
## Added
|
||||
|
||||
- Home screen.
|
||||
- Config option to associate custom system folders to platforms (Complete scan needed). Check [config.yml](docker/config.example.yml) example. Solves [#152](https://github.com/rommapp/romm/issues/152).
|
||||
- Sega Saturn and Master System support added. Check [platforms support](https://github.com/rommapp/romm#platforms-support). Solves [#194](https://github.com/rommapp/romm/issues/194).
|
||||
- Progress bar when games are being downloaded.
|
||||
|
||||
## Changed
|
||||
|
||||
- Routes to different RomM sections and games changed now allow share direct links to platforms and games.
|
||||
- RomM now can scan subdirectories in a multi-part game. Solves [#179](https://github.com/rommapp/romm/issues/179).
|
||||
- Settings and Scan sections are now in the main drawer menu.
|
||||
- Some UI changes.
|
||||
|
||||
## Fixed
|
||||
|
||||
- Code base stability and speed improved.
|
||||
|
||||
<br>
|
||||
|
||||
# v1.7.1 (_15-04-2023_)
|
||||
|
||||
## Added
|
||||
|
||||
- New UI feel with the new RomM color palette
|
||||
|
||||
## Changed
|
||||
|
||||
- Roms size is now human readable
|
||||
|
||||
## Fixed
|
||||
|
||||
- Fixed a bug where multi file roms could break the scan if the rom name have a dot.
|
||||
|
||||
<br>
|
||||
|
||||
# v1.7 (_14-04-2023_)
|
||||
|
||||
## Added
|
||||
|
||||
- More options and flexibility to prevent files/folders to be scanned. Check [config.yml](docker/config.example.yml) example
|
||||
- Config file example added to docker/config.example.yml
|
||||
|
||||
## Changed
|
||||
|
||||
- Rom details page revamped
|
||||
- RomM logo revamped
|
||||
|
||||
<br>
|
||||
|
||||
# v1.6.5 (_12-04-2023_)
|
||||
|
||||
## Added
|
||||
|
||||
- Multiple games gallery display modes
|
||||
|
||||
## Changed
|
||||
|
||||
- Some fixes and improvements
|
||||
|
||||
<br>
|
||||
|
||||
# v1.6.4 (_12-04-2023_)
|
||||
|
||||
## Added
|
||||
|
||||
- Now RomM allows to fix missmatched games by searching by IGDB id manually
|
||||
- WonderSwan and WonderSwan Color support added
|
||||
|
||||
<br>
|
||||
|
||||
# v1.6.3 (_12-04-2023_)
|
||||
|
||||
## Added
|
||||
|
||||
- Support for multi file games: Now RomM can scan a folder with the game name and all of its files inside the folder. No need to match the folder with the files inside. Download feature can download a zip with the entire game and all of the files or just the desired ones.
|
||||
- Some UI tweaks
|
||||
|
||||
<br>
|
||||
|
||||
# v1.6.2 (_04-04-2023_)
|
||||
|
||||
## Added
|
||||
|
||||
- Support for commodore64
|
||||
|
||||
## Fixed
|
||||
|
||||
- Searching in IGDB for games in not supported platforms doesn't raise an error anymore
|
||||
|
||||
<br>
|
||||
|
||||
# v1.6.1 (_04-04-2023_)
|
||||
|
||||
## Added
|
||||
|
||||
- Now sqlite database location needs to be binded to `/romm/database`. Check [docker-compose](examples/docker-compose.example.yml) example.
|
||||
- Now resources location (games cover) needs to be binded to `/romm/resources`. Check [docker-compose](examples/docker-compose.example.yml) example.
|
||||
- More platforms support. Check [platforms support](https://github.com/rommapp/romm#platforms-support)
|
||||
- Now RomM version appears in the bottom of the settings panel
|
||||
|
||||
## Fixed
|
||||
|
||||
- Download feature is now fixed for RomM structucture 1
|
||||
|
||||
## Changed
|
||||
|
||||
- Library path binding changed from `/library` to `/romm/library`. Check [docker-compose](examples/docker-compose.example.yml)
|
||||
|
||||
<br>
|
||||
|
||||
# v1.6 (_01-04-2023_)
|
||||
|
||||
## Added
|
||||
|
||||
- Smart scan: now RomM will only scan the changes in the filesystem, making the scan process too much faster. Added an option to force a full scan.
|
||||
- Now game files can be renamed after the name matched in IGDB, keeping the tags.
|
||||
|
||||
<br>
|
||||
|
||||
# v1.5.1 (_31-03-2023_)
|
||||
|
||||
## Fixed
|
||||
|
||||
- Delete game now works properly
|
||||
|
||||
<br>
|
||||
|
||||
# v1.5 (_30-03-2023_)
|
||||
## v1.5 (_30-03-2023_)
|
||||
|
||||
> [!WARNING]
|
||||
> In order to make the new features to work, it is mandatory this time to drop all the database. This will only make you need to re-scan, but you won't lose the cover changes or file changes you made. I apologize for the inconveniences this may cause, as this is a new software, it may change a little bit the first weeks, at least until I can develop a proper way to migrate between versions. I hope you can understand these initial wipes in order to make a better tool.
|
||||
|
||||
## Added
|
||||
- Added: Now RomM folder structure is more flexible to match two different patrons by priority. This change makes RomM **Emudeck** compatible at least with single file games platforms. Check [folder structure](readme.md#⚠️-folder-structure)
|
||||
- Added: Added config file support to exclude folders and specific extension files to be scanned. Config file can be binded to `/romm/config.yml` .To reload config file RomM reload is needed. Check [config](readme.md#configuration).
|
||||
- Added: Added tags support for region, revision/version and generic tags. Tags must have the right prefix to allow RomM scan them properly. Check [tags](readme.md#📑-tags-support).
|
||||
|
||||
- Now RomM folder structure is more flexible to match two different patrons by priority. This change makes RomM **Emudeck** compatible at least with single file games platforms. Check [folder structure](readme.md#⚠️-folder-structure)
|
||||
- Added config file support to exclude folders and specific extension files to be scanned. Config file can be binded to `/romm/config.yml` .To reload config file RomM reload is needed. Check [config](readme.md#configuration).
|
||||
- Added tags support for region, revision/version and generic tags. Tags must have the right prefix to allow RomM scan them properly. Check [tags](readme.md#📑-tags-support).
|
||||
## v1.4.1 (_29-03-2023_)
|
||||
|
||||
<br>
|
||||
- Added: Now you can use your games tags (like (USA) or (rev-1)) to filter in the gallery
|
||||
|
||||
# v1.4.1 (_29-03-2023_)
|
||||
## v1.4 (_29-03-2023_)
|
||||
|
||||
## Added
|
||||
- Added: Gamecube support [platforms support](https://github.com/rommapp/romm#platforms-support)
|
||||
- Added: PC support added (only for single file games like zip, iso, etc) [platforms support](https://github.com/rommapp/romm#platforms-support)
|
||||
|
||||
- Now you can use your games tags (like (USA) or (rev-1)) to filter in the gallery
|
||||
- Changed: Now delete game only deletes it from RomM gallery. To delete it from the filesystem too you need to allow it with the checkbox.
|
||||
|
||||
<br>
|
||||
|
||||
# v1.4 (_29-03-2023_)
|
||||
|
||||
## Added
|
||||
|
||||
- Gamecube support [platforms support](https://github.com/rommapp/romm#platforms-support)
|
||||
- PC support added (only for single file games like zip, iso, etc) [platforms support](https://github.com/rommapp/romm#platforms-support)
|
||||
|
||||
## Changed
|
||||
|
||||
- Now delete game only deletes it from RomM gallery. To delete it from the filesystem too you need to allow it with the checkbox.
|
||||
|
||||
<br>
|
||||
|
||||
# v1.3 (_29-03-2023_)
|
||||
|
||||
## Fixed
|
||||
## v1.3 (_29-03-2023_)
|
||||
|
||||
**`Breaking change`** - **This breaking change only applies for mariaDB users**:
|
||||
|
||||
@@ -514,7 +327,7 @@ I am so sorry for any inconvenience this can generate.
|
||||
|
||||
Columns to modify (examples in case that you set it with database name as romm, in other case just change the database name in the {db_name}.roms part):
|
||||
|
||||
```
|
||||
```sql
|
||||
alter table romm.roms modify column file_name varchar(500);
|
||||
alter table romm.roms modify column file_name_no_ext varchar(500);
|
||||
alter table romm.roms modify column name varchar(500);
|
||||
@@ -527,49 +340,27 @@ Columns to modify (examples in case that you set it with database name as romm,
|
||||
alter table romm.platforms modify column path_logo text;
|
||||
```
|
||||
|
||||
<br>
|
||||
## v1.2.2 (_28-03-2023_)
|
||||
|
||||
# v1.2.2 (_28-03-2023_)
|
||||
- Added: Notification added when downloading a game
|
||||
|
||||
## Added
|
||||
- Changed: Database name when using mariadb now can be changed with the new variable DB_NAME. Check [docker-compos.example.yml](https://github.com/rommapp/romm/blob/master/examples/docker-compose.example.yml)
|
||||
|
||||
- Notification added when downloading a game
|
||||
- Fixed: Potential password error when using mariadb if the password have special characters
|
||||
- Fixed: Some other bugs
|
||||
|
||||
## Changed
|
||||
## v1.2 (_28-03-2023_)
|
||||
|
||||
- Database name when using mariadb now can be changed with the new variable DB_NAME. Check [docker-compos.example.yml](https://github.com/rommapp/romm/blob/master/examples/docker-compose.example.yml)
|
||||
- Added: SQLite support
|
||||
- Added: Dreamcast support (<https://github.com/rommapp/romm#platforms-support>)
|
||||
|
||||
## Fixed
|
||||
- Changed: SQLite is now the database by default if ROMM_DB_DRIVER is not set. Check [docker-compos.example.yml](https://github.com/rommapp/romm/blob/master/examples/docker-compose.example.yml)
|
||||
- Changed: Platforms and games are now shown by alphabetical order
|
||||
|
||||
- Potential password error when using mariadb if the password have special characters
|
||||
- Some other bugs
|
||||
## v1.1 (_27-03-2023_)
|
||||
|
||||
<br>
|
||||
- Added: Game names parentheses are now omitted when searching game in IGDB, allowing game names to have tags.
|
||||
|
||||
# v1.2 (_28-03-2023_)
|
||||
|
||||
## Added
|
||||
|
||||
- SQLite support
|
||||
- Dreamcast support (https://github.com/rommapp/romm#platforms-support)
|
||||
|
||||
## Changed
|
||||
|
||||
- SQLite is now the database by default if ROMM_DB_DRIVER is not set. Check [docker-compos.example.yml](https://github.com/rommapp/romm/blob/master/examples/docker-compose.example.yml)
|
||||
- Platforms and games are now shown by alphabetical order
|
||||
|
||||
<br>
|
||||
|
||||
# v1.1 (_27-03-2023_)
|
||||
|
||||
## Added
|
||||
|
||||
- Game names parentheses are now omitted when searching game in IGDB, allowing game names to have tags.
|
||||
|
||||
<br>
|
||||
|
||||
# v1.0 (_27-03-2023_)
|
||||
|
||||
## Added
|
||||
## v1.0 (_27-03-2023_)
|
||||
|
||||
- Birth of RomM
|
||||
|
||||
@@ -1,18 +1,18 @@
|
||||
## Contributing to RomM
|
||||
# Contributing to RomM
|
||||
|
||||
Thank you for considering contributing to RomM! This document outlines some guidelines to help you get started with your contributions.
|
||||
|
||||
**If you're looking to implement a large feature or make significant changes to the project, it's best to open an issue first AND join the Discord to discuss your ideas with the maintainers.**
|
||||
|
||||
### Code of Conduct
|
||||
## Code of Conduct
|
||||
|
||||
Please note that this project adheres to the Contributor Covenant [code of conduct](CODE_OF_CONDUCT.md). By participating in this project, you are expected to uphold this code.
|
||||
|
||||
### Contributing to the Wiki
|
||||
## Contributing to the Wiki
|
||||
|
||||
If you would like to contribute to the project's [documentation](https://github.com/rommapp/romm/wiki), reach out to the maintainers to get edit access. We welcome any contributions that help improve the documentation (new pages, updates, or corrections).
|
||||
|
||||
### How to Contribute Code
|
||||
## How to Contribute Code
|
||||
|
||||
1. Fork the repository.
|
||||
2. Clone your forked repository: `git clone https://github.com/your-username/romm.git`
|
||||
@@ -23,7 +23,7 @@ If you would like to contribute to the project's [documentation](https://github.
|
||||
7. Push your changes to your fork: `git push origin feature-or-fix-name`
|
||||
8. Open a pull request to the `master` branch of the original repository.
|
||||
|
||||
### Pull Request Guidelines
|
||||
## Pull Request Guidelines
|
||||
|
||||
- Make sure your code follows the project's coding standards.
|
||||
- Test your changes locally before opening a pull request.
|
||||
@@ -31,7 +31,7 @@ If you would like to contribute to the project's [documentation](https://github.
|
||||
- Ensure all existing tests pass, and add new tests for new functionality.
|
||||
- Use clear and descriptive titles and descriptions for your pull requests.
|
||||
|
||||
### Code Style
|
||||
## Code Style
|
||||
|
||||
Follow the existing code style used throughout the project. If working with VSCode or a similar editor, consider installing these extensions:
|
||||
|
||||
@@ -41,11 +41,11 @@ Follow the existing code style used throughout the project. If working with VSCo
|
||||
- [Ruff](https://marketplace.visualstudio.com/items?itemName=charliermarsh.ruff)
|
||||
- [Vue - Official](https://marketplace.visualstudio.com/items?itemName=Vue.volar)
|
||||
|
||||
### Issue Reporting
|
||||
## Issue Reporting
|
||||
|
||||
If you encounter any bugs or have suggestions for improvements, please [create an issue](https://github.com/rommapp/romm/issues) on GitHub. Provide as much detail as possible, including steps to reproduce the issue if applicable.
|
||||
|
||||
### Licensing
|
||||
## Licensing
|
||||
|
||||
By contributing to ROMM, you agree that your contributions will be licensed under the project's [LICENSE](LICENSE).
|
||||
|
||||
|
||||
@@ -1,8 +1,10 @@
|
||||
# Environment setup
|
||||
# Setup for development environment
|
||||
|
||||
## Mocking RomM structure
|
||||
## Environment setup
|
||||
|
||||
### - Create the mock structure with at least one rom and empty config for manual testing
|
||||
### Mocking RomM structure
|
||||
|
||||
#### - Create the mock structure with at least one rom and empty config for manual testing
|
||||
|
||||
```sh
|
||||
mkdir -p romm_mock/library/roms/switch
|
||||
@@ -13,26 +15,26 @@ mkdir -p romm_mock/config
|
||||
touch romm_mock/config.yml
|
||||
```
|
||||
|
||||
## Setting up the backend
|
||||
### Setting up the backend
|
||||
|
||||
### - Copy env.template to .env and fill the variables
|
||||
#### - Copy env.template to .env and fill the variables
|
||||
|
||||
```sh
|
||||
cp env.template .env
|
||||
```
|
||||
|
||||
### - Install system dependencies
|
||||
#### - Install system dependencies
|
||||
|
||||
```sh
|
||||
# https://mariadb.com/docs/skysql-previous-release/connect/programming-languages/c/install/#Installation_via_Package_Repository_(Linux):
|
||||
sudo apt install libmariadb3 libmariadb-dev pipx
|
||||
```
|
||||
|
||||
### - Install python dependencies
|
||||
#### - Install python dependencies
|
||||
|
||||
You'll need poetry installed
|
||||
|
||||
https://python-poetry.org/docs/#installing-with-the-official-installer
|
||||
<https://python-poetry.org/docs/#installing-with-the-official-installer>
|
||||
|
||||
```sh
|
||||
pipx install poetry
|
||||
@@ -46,13 +48,13 @@ Then create the virtual environment
|
||||
poetry install --sync
|
||||
```
|
||||
|
||||
### - Spin up mariadb in docker
|
||||
#### - Spin up mariadb in docker
|
||||
|
||||
```sh
|
||||
docker-compose up -d
|
||||
```
|
||||
|
||||
### - Run the backend
|
||||
#### - Run the backend
|
||||
|
||||
*\_\_*Migrations will be run automatically when running the backend.\_\_\*
|
||||
|
||||
@@ -61,16 +63,16 @@ cd backend
|
||||
poetry run python3 main.py
|
||||
```
|
||||
|
||||
### - Start a worker
|
||||
#### - Start a worker
|
||||
|
||||
```sh
|
||||
cd backend
|
||||
poetry run python3 worker.py
|
||||
```
|
||||
|
||||
## Setting up the frontend
|
||||
### Setting up the frontend
|
||||
|
||||
### - Install node.js dependencies
|
||||
#### - Install node.js dependencies
|
||||
|
||||
```sh
|
||||
cd frontend
|
||||
@@ -78,7 +80,7 @@ cd frontend
|
||||
npm install
|
||||
```
|
||||
|
||||
### - Create symlink to library and resources
|
||||
#### - Create symlink to library and resources
|
||||
|
||||
```sh
|
||||
mkdir assets/romm
|
||||
@@ -86,17 +88,17 @@ ln -s ../backend/romm_mock/resources assets/romm/resources
|
||||
ln -s ../backend/romm_mock/assets assets/romm/assets
|
||||
```
|
||||
|
||||
### - Run the frontend
|
||||
#### - Run the frontend
|
||||
|
||||
```sh
|
||||
npm run dev
|
||||
```
|
||||
|
||||
## Setting up the linter
|
||||
### Setting up the linter
|
||||
|
||||
We use [Trunk](https://trunk.io) for linting, which combines multiple linters and formatters with sensible defaults and a single configuration file. You'll need to install the Trunk CLI to use it.
|
||||
|
||||
### - Install the Trunk CLI
|
||||
#### - Install the Trunk CLI
|
||||
|
||||
```sh
|
||||
curl https://get.trunk.io -fsSL | bash
|
||||
@@ -111,7 +113,7 @@ trunk check
|
||||
|
||||
**Failing to install and run the linter will result in a failed CI check, which won't allow us to merge your PR.**
|
||||
|
||||
# Test setup
|
||||
## Test setup
|
||||
|
||||
### - Create the test user and database with root user
|
||||
|
||||
|
||||
25
README.md
25
README.md
@@ -1,3 +1,5 @@
|
||||
<!-- trunk-ignore-all(markdownlint/MD033) -->
|
||||
<!-- trunk-ignore(markdownlint/MD041) -->
|
||||
<div align="center">
|
||||
|
||||
<img src=".github/resources/romm_complete.svg" height="220px" width="auto" alt="romm logo">
|
||||
@@ -27,8 +29,6 @@
|
||||
- [Naming Convention](#naming-convention)
|
||||
- [Community](#community)
|
||||
|
||||
<a name ='overview'> </a>
|
||||
|
||||
# Overview
|
||||
|
||||
RomM (ROM Manager) allows you to scan, enrich, and browse your game collection with a clean and responsive interface. With support for multiple platforms, various naming schemes, and custom tags, RomM is a must-have for anyone who plays on emulators.
|
||||
@@ -46,11 +46,9 @@ RomM (ROM Manager) allows you to scan, enrich, and browse your game collection w
|
||||
|
||||
## Preview
|
||||
|
||||
| 🖥 Desktop | 📱 Mobile |
|
||||
| :-----------------------------------------------------------------: | :----------------------------------------------------------------------------------------------------------: |
|
||||
| <img src=".github/resources/screenshots/romm-desktop-slider.gif" /> | <img style="width: 325px; aspect-ratio: auto;" src=".github/resources/screenshots/romm-mobile-slider.gif" /> |
|
||||
|
||||
<a name ='installation'> </a>
|
||||
| 🖥 Desktop | 📱 Mobile |
|
||||
| :---------------------------------------------------------------------------------------: | :-------------------------------------------------------------------------------------------------------------------------------: |
|
||||
| <img src=".github/resources/screenshots/romm-desktop-slider.gif" alt="desktop preview" /> | <img style="width: 325px; aspect-ratio: auto;" src=".github/resources/screenshots/romm-mobile-slider.gif" alt="mobile preview" /> |
|
||||
|
||||
# Installation
|
||||
|
||||
@@ -65,8 +63,6 @@ Before running the [image][docker-tags], please ensure that Docker is installed
|
||||
|
||||
# Configuration
|
||||
|
||||
<a name ='folder-structure'> </a>
|
||||
|
||||
## Folder Structure
|
||||
|
||||
As mentioned in the installation section, RomM requires a specific folder structure. The two supported structures are as follows:
|
||||
@@ -155,8 +151,6 @@ RomM's "understanding" of your library can be configured with a `config.yaml` fi
|
||||
|
||||
The scheduler allows you to schedule async tasks that run in the Redis container at regular intervals. Jobs can be run at a specific time in the future, after a time delta, or at recurring internals using cron notation. The [wiki page on the scheduler][wiki-scheduled-tasks] has more information on which tasks are available and how to enable them.
|
||||
|
||||
<a name ='naming-convention'> </a>
|
||||
|
||||
# Naming Convention
|
||||
|
||||
## Platform Support
|
||||
@@ -174,8 +168,6 @@ Games can be tagged with region, revision, or other tags by using parentheses in
|
||||
|
||||
Tags can be used to search for games in the search bar. For example, searching for **(USA)** will return all games with the USA tag.
|
||||
|
||||
<a name ='community'> </a>
|
||||
|
||||
# Community
|
||||
|
||||
Here are a few projects maintained by members of our community. Since the RomM team does not regularly review them, **we recommend that you review them closely before you use them**.
|
||||
@@ -207,7 +199,6 @@ Here are a few projects that we think you might like:
|
||||
|
||||
[folder-structure]: #folder-structure
|
||||
[platform-support]: #platform-support
|
||||
[authentication]: #authentication
|
||||
[tag-support]: #tag-support
|
||||
[configuration-file]: #configuration-file
|
||||
|
||||
@@ -254,11 +245,5 @@ Here are a few projects that we think you might like:
|
||||
[docker-tags]: https://hub.docker.com/r/rommapp/romm/tags
|
||||
[igdb-api]: https://api-docs.igdb.com/#account-creation
|
||||
[mobygames-api]: https://www.mobygames.com/info/api/
|
||||
[titleid-program-id]: https://switchbrew.org/w/index.php?title=Title_list/Games&mobileaction=toggle_view_desktop
|
||||
[igdb-platforms-list]: https://www.igdb.com/platforms
|
||||
[big-bear-casaos]: https://github.com/bigbeartechworld/big-bear-casaos
|
||||
[kubernetes-helm-chart]: https://artifacthub.io/packages/helm/crystalnet/romm
|
||||
[pc-mac-icons]: https://www.flaticon.com/free-icons/keyboard-and-mouse
|
||||
[flaticon]: https://www.flaticon.com
|
||||
[user-default-icon]: https://icons8.com/icon/tZuAOUGm9AuS/user-default
|
||||
[icons8]: https://icons8.com
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
## Reporting Security Issues
|
||||
# Reporting Security Issues
|
||||
|
||||
Thanks for helping make RomM safer for everyone.
|
||||
|
||||
|
||||
@@ -113,7 +113,7 @@ async def search_rom(
|
||||
@protected_route(router.get, "/search/cover", ["roms.read"])
|
||||
async def search_cover(
|
||||
request: Request,
|
||||
search_term: str | None = None,
|
||||
search_term: str = "",
|
||||
) -> list[SearchCoverSchema]:
|
||||
|
||||
if not STEAMGRIDDB_API_ENABLED:
|
||||
@@ -123,4 +123,7 @@ async def search_cover(
|
||||
detail="No SteamGridDB enabled",
|
||||
)
|
||||
|
||||
return meta_sgdb_handler.get_details(search_term)
|
||||
return [
|
||||
SearchCoverSchema.model_validate(cover)
|
||||
for cover in meta_sgdb_handler.get_details(search_term)
|
||||
]
|
||||
|
||||
@@ -82,7 +82,6 @@ class SGDBBaseHandler:
|
||||
],
|
||||
}
|
||||
)
|
||||
|
||||
return games
|
||||
|
||||
|
||||
|
||||
1
frontend/src/__generated__/index.ts
generated
1
frontend/src/__generated__/index.ts
generated
@@ -1,7 +1,6 @@
|
||||
/* generated using openapi-typescript-codegen -- do no edit */
|
||||
/* istanbul ignore file */
|
||||
/* tslint:disable */
|
||||
/* eslint-disable */
|
||||
|
||||
export type { AddFirmwareResponse } from "./models/AddFirmwareResponse";
|
||||
export type { AddRomsResponse } from "./models/AddRomsResponse";
|
||||
|
||||
@@ -1,7 +1,6 @@
|
||||
/* generated using openapi-typescript-codegen -- do no edit */
|
||||
/* istanbul ignore file */
|
||||
/* tslint:disable */
|
||||
/* eslint-disable */
|
||||
|
||||
import type { FirmwareSchema } from "./FirmwareSchema";
|
||||
|
||||
|
||||
@@ -1,7 +1,6 @@
|
||||
/* generated using openapi-typescript-codegen -- do no edit */
|
||||
/* istanbul ignore file */
|
||||
/* tslint:disable */
|
||||
/* eslint-disable */
|
||||
|
||||
export type AddRomsResponse = {
|
||||
uploaded_roms: Array<string>;
|
||||
|
||||
@@ -1,7 +1,6 @@
|
||||
/* generated using openapi-typescript-codegen -- do no edit */
|
||||
/* istanbul ignore file */
|
||||
/* tslint:disable */
|
||||
/* eslint-disable */
|
||||
|
||||
export type Body_add_collection_collections_post = {
|
||||
artwork?: Blob | null;
|
||||
|
||||
@@ -1,7 +1,6 @@
|
||||
/* generated using openapi-typescript-codegen -- do no edit */
|
||||
/* istanbul ignore file */
|
||||
/* tslint:disable */
|
||||
/* eslint-disable */
|
||||
|
||||
export type Body_add_firmware_firmware_post = {
|
||||
files: Array<Blob>;
|
||||
|
||||
@@ -1,7 +1,6 @@
|
||||
/* generated using openapi-typescript-codegen -- do no edit */
|
||||
/* istanbul ignore file */
|
||||
/* tslint:disable */
|
||||
/* eslint-disable */
|
||||
|
||||
export type Body_add_roms_roms_post = {
|
||||
roms: Array<Blob>;
|
||||
|
||||
@@ -1,7 +1,6 @@
|
||||
/* generated using openapi-typescript-codegen -- do no edit */
|
||||
/* istanbul ignore file */
|
||||
/* tslint:disable */
|
||||
/* eslint-disable */
|
||||
|
||||
export type Body_add_saves_saves_post = {
|
||||
saves: Array<Blob>;
|
||||
|
||||
@@ -1,7 +1,6 @@
|
||||
/* generated using openapi-typescript-codegen -- do no edit */
|
||||
/* istanbul ignore file */
|
||||
/* tslint:disable */
|
||||
/* eslint-disable */
|
||||
|
||||
export type Body_add_screenshots_screenshots_post = {
|
||||
screenshots: Array<Blob>;
|
||||
|
||||
@@ -1,7 +1,6 @@
|
||||
/* generated using openapi-typescript-codegen -- do no edit */
|
||||
/* istanbul ignore file */
|
||||
/* tslint:disable */
|
||||
/* eslint-disable */
|
||||
|
||||
export type Body_add_states_states_post = {
|
||||
states: Array<Blob>;
|
||||
|
||||
@@ -1,7 +1,6 @@
|
||||
/* generated using openapi-typescript-codegen -- do no edit */
|
||||
/* istanbul ignore file */
|
||||
/* tslint:disable */
|
||||
/* eslint-disable */
|
||||
|
||||
export type Body_token_token_post = {
|
||||
grant_type?: string;
|
||||
|
||||
@@ -1,7 +1,6 @@
|
||||
/* generated using openapi-typescript-codegen -- do no edit */
|
||||
/* istanbul ignore file */
|
||||
/* tslint:disable */
|
||||
/* eslint-disable */
|
||||
|
||||
export type Body_update_collection_collections__id__put = {
|
||||
artwork?: Blob | null;
|
||||
|
||||
@@ -1,7 +1,6 @@
|
||||
/* generated using openapi-typescript-codegen -- do no edit */
|
||||
/* istanbul ignore file */
|
||||
/* tslint:disable */
|
||||
/* eslint-disable */
|
||||
|
||||
export type Body_update_rom_roms__id__put = {
|
||||
artwork?: Blob | null;
|
||||
|
||||
@@ -1,7 +1,6 @@
|
||||
/* generated using openapi-typescript-codegen -- do no edit */
|
||||
/* istanbul ignore file */
|
||||
/* tslint:disable */
|
||||
/* eslint-disable */
|
||||
|
||||
export type Body_update_user_users__id__put = {
|
||||
avatar?: Blob | null;
|
||||
|
||||
@@ -1,7 +1,6 @@
|
||||
/* generated using openapi-typescript-codegen -- do no edit */
|
||||
/* istanbul ignore file */
|
||||
/* tslint:disable */
|
||||
/* eslint-disable */
|
||||
|
||||
export type CollectionSchema = {
|
||||
id: number;
|
||||
|
||||
@@ -1,7 +1,6 @@
|
||||
/* generated using openapi-typescript-codegen -- do no edit */
|
||||
/* istanbul ignore file */
|
||||
/* tslint:disable */
|
||||
/* eslint-disable */
|
||||
|
||||
export type ConfigResponse = {
|
||||
EXCLUDED_PLATFORMS: Array<string>;
|
||||
|
||||
@@ -1,7 +1,6 @@
|
||||
/* generated using openapi-typescript-codegen -- do no edit */
|
||||
/* istanbul ignore file */
|
||||
/* tslint:disable */
|
||||
/* eslint-disable */
|
||||
|
||||
import type { CollectionSchema } from "./CollectionSchema";
|
||||
import type { RomIGDBMetadata } from "./RomIGDBMetadata";
|
||||
|
||||
@@ -1,7 +1,6 @@
|
||||
/* generated using openapi-typescript-codegen -- do no edit */
|
||||
/* istanbul ignore file */
|
||||
/* tslint:disable */
|
||||
/* eslint-disable */
|
||||
|
||||
export type FirmwareSchema = {
|
||||
id: number;
|
||||
|
||||
@@ -1,7 +1,6 @@
|
||||
/* generated using openapi-typescript-codegen -- do no edit */
|
||||
/* istanbul ignore file */
|
||||
/* tslint:disable */
|
||||
/* eslint-disable */
|
||||
|
||||
import type { ValidationError } from "./ValidationError";
|
||||
|
||||
|
||||
@@ -1,7 +1,6 @@
|
||||
/* generated using openapi-typescript-codegen -- do no edit */
|
||||
/* istanbul ignore file */
|
||||
/* tslint:disable */
|
||||
/* eslint-disable */
|
||||
|
||||
export type IGDBMetadataPlatform = {
|
||||
igdb_id: number;
|
||||
|
||||
@@ -1,7 +1,6 @@
|
||||
/* generated using openapi-typescript-codegen -- do no edit */
|
||||
/* istanbul ignore file */
|
||||
/* tslint:disable */
|
||||
/* eslint-disable */
|
||||
|
||||
export type IGDBRelatedGame = {
|
||||
id: number;
|
||||
|
||||
@@ -1,7 +1,6 @@
|
||||
/* generated using openapi-typescript-codegen -- do no edit */
|
||||
/* istanbul ignore file */
|
||||
/* tslint:disable */
|
||||
/* eslint-disable */
|
||||
|
||||
export type MessageResponse = {
|
||||
msg: string;
|
||||
|
||||
@@ -1,7 +1,6 @@
|
||||
/* generated using openapi-typescript-codegen -- do no edit */
|
||||
/* istanbul ignore file */
|
||||
/* tslint:disable */
|
||||
/* eslint-disable */
|
||||
|
||||
export type MetadataSourcesDict = {
|
||||
IGDB_API_ENABLED: boolean;
|
||||
|
||||
@@ -1,7 +1,6 @@
|
||||
/* generated using openapi-typescript-codegen -- do no edit */
|
||||
/* istanbul ignore file */
|
||||
/* tslint:disable */
|
||||
/* eslint-disable */
|
||||
|
||||
export type MobyMetadataPlatform = {
|
||||
moby_id: number;
|
||||
|
||||
@@ -1,7 +1,6 @@
|
||||
/* generated using openapi-typescript-codegen -- do no edit */
|
||||
/* istanbul ignore file */
|
||||
/* tslint:disable */
|
||||
/* eslint-disable */
|
||||
|
||||
import type { FirmwareSchema } from "./FirmwareSchema";
|
||||
|
||||
|
||||
1
frontend/src/__generated__/models/Role.ts
generated
1
frontend/src/__generated__/models/Role.ts
generated
@@ -1,6 +1,5 @@
|
||||
/* generated using openapi-typescript-codegen -- do no edit */
|
||||
/* istanbul ignore file */
|
||||
/* tslint:disable */
|
||||
/* eslint-disable */
|
||||
|
||||
export type Role = "viewer" | "editor" | "admin";
|
||||
|
||||
@@ -1,7 +1,6 @@
|
||||
/* generated using openapi-typescript-codegen -- do no edit */
|
||||
/* istanbul ignore file */
|
||||
/* tslint:disable */
|
||||
/* eslint-disable */
|
||||
|
||||
import type { IGDBMetadataPlatform } from "./IGDBMetadataPlatform";
|
||||
import type { IGDBRelatedGame } from "./IGDBRelatedGame";
|
||||
|
||||
@@ -1,7 +1,6 @@
|
||||
/* generated using openapi-typescript-codegen -- do no edit */
|
||||
/* istanbul ignore file */
|
||||
/* tslint:disable */
|
||||
/* eslint-disable */
|
||||
|
||||
import type { MobyMetadataPlatform } from "./MobyMetadataPlatform";
|
||||
|
||||
|
||||
1
frontend/src/__generated__/models/RomSchema.ts
generated
1
frontend/src/__generated__/models/RomSchema.ts
generated
@@ -1,7 +1,6 @@
|
||||
/* generated using openapi-typescript-codegen -- do no edit */
|
||||
/* istanbul ignore file */
|
||||
/* tslint:disable */
|
||||
/* eslint-disable */
|
||||
|
||||
import type { RomIGDBMetadata } from "./RomIGDBMetadata";
|
||||
import type { RomMobyMetadata } from "./RomMobyMetadata";
|
||||
|
||||
@@ -1,7 +1,6 @@
|
||||
/* generated using openapi-typescript-codegen -- do no edit */
|
||||
/* istanbul ignore file */
|
||||
/* tslint:disable */
|
||||
/* eslint-disable */
|
||||
|
||||
export type RomUserSchema = {
|
||||
id: number;
|
||||
|
||||
1
frontend/src/__generated__/models/SaveSchema.ts
generated
1
frontend/src/__generated__/models/SaveSchema.ts
generated
@@ -1,7 +1,6 @@
|
||||
/* generated using openapi-typescript-codegen -- do no edit */
|
||||
/* istanbul ignore file */
|
||||
/* tslint:disable */
|
||||
/* eslint-disable */
|
||||
|
||||
import type { ScreenshotSchema } from "./ScreenshotSchema";
|
||||
|
||||
|
||||
@@ -1,7 +1,6 @@
|
||||
/* generated using openapi-typescript-codegen -- do no edit */
|
||||
/* istanbul ignore file */
|
||||
/* tslint:disable */
|
||||
/* eslint-disable */
|
||||
|
||||
import type { TaskDict } from "./TaskDict";
|
||||
|
||||
|
||||
@@ -1,7 +1,6 @@
|
||||
/* generated using openapi-typescript-codegen -- do no edit */
|
||||
/* istanbul ignore file */
|
||||
/* tslint:disable */
|
||||
/* eslint-disable */
|
||||
|
||||
export type ScreenshotSchema = {
|
||||
id: number;
|
||||
|
||||
@@ -1,7 +1,6 @@
|
||||
/* generated using openapi-typescript-codegen -- do no edit */
|
||||
/* istanbul ignore file */
|
||||
/* tslint:disable */
|
||||
/* eslint-disable */
|
||||
|
||||
export type SearchRomSchema = {
|
||||
igdb_id?: number | null;
|
||||
|
||||
1
frontend/src/__generated__/models/StateSchema.ts
generated
1
frontend/src/__generated__/models/StateSchema.ts
generated
@@ -1,7 +1,6 @@
|
||||
/* generated using openapi-typescript-codegen -- do no edit */
|
||||
/* istanbul ignore file */
|
||||
/* tslint:disable */
|
||||
/* eslint-disable */
|
||||
|
||||
import type { ScreenshotSchema } from "./ScreenshotSchema";
|
||||
|
||||
|
||||
1
frontend/src/__generated__/models/StatsReturn.ts
generated
1
frontend/src/__generated__/models/StatsReturn.ts
generated
@@ -1,7 +1,6 @@
|
||||
/* generated using openapi-typescript-codegen -- do no edit */
|
||||
/* istanbul ignore file */
|
||||
/* tslint:disable */
|
||||
/* eslint-disable */
|
||||
|
||||
export type StatsReturn = {
|
||||
PLATFORMS: number;
|
||||
|
||||
1
frontend/src/__generated__/models/TaskDict.ts
generated
1
frontend/src/__generated__/models/TaskDict.ts
generated
@@ -1,7 +1,6 @@
|
||||
/* generated using openapi-typescript-codegen -- do no edit */
|
||||
/* istanbul ignore file */
|
||||
/* tslint:disable */
|
||||
/* eslint-disable */
|
||||
|
||||
export type TaskDict = {
|
||||
ENABLED: boolean;
|
||||
|
||||
@@ -1,7 +1,6 @@
|
||||
/* generated using openapi-typescript-codegen -- do no edit */
|
||||
/* istanbul ignore file */
|
||||
/* tslint:disable */
|
||||
/* eslint-disable */
|
||||
|
||||
export type TokenResponse = {
|
||||
access_token: string;
|
||||
|
||||
@@ -1,7 +1,6 @@
|
||||
/* generated using openapi-typescript-codegen -- do no edit */
|
||||
/* istanbul ignore file */
|
||||
/* tslint:disable */
|
||||
/* eslint-disable */
|
||||
|
||||
import type { SaveSchema } from "./SaveSchema";
|
||||
|
||||
|
||||
@@ -1,7 +1,6 @@
|
||||
/* generated using openapi-typescript-codegen -- do no edit */
|
||||
/* istanbul ignore file */
|
||||
/* tslint:disable */
|
||||
/* eslint-disable */
|
||||
|
||||
import type { ScreenshotSchema } from "./ScreenshotSchema";
|
||||
|
||||
|
||||
@@ -1,7 +1,6 @@
|
||||
/* generated using openapi-typescript-codegen -- do no edit */
|
||||
/* istanbul ignore file */
|
||||
/* tslint:disable */
|
||||
/* eslint-disable */
|
||||
|
||||
import type { StateSchema } from "./StateSchema";
|
||||
|
||||
|
||||
@@ -1,7 +1,6 @@
|
||||
/* generated using openapi-typescript-codegen -- do no edit */
|
||||
/* istanbul ignore file */
|
||||
/* tslint:disable */
|
||||
/* eslint-disable */
|
||||
|
||||
export type UserNotesSchema = {
|
||||
user_id: number;
|
||||
|
||||
1
frontend/src/__generated__/models/UserSchema.ts
generated
1
frontend/src/__generated__/models/UserSchema.ts
generated
@@ -1,7 +1,6 @@
|
||||
/* generated using openapi-typescript-codegen -- do no edit */
|
||||
/* istanbul ignore file */
|
||||
/* tslint:disable */
|
||||
/* eslint-disable */
|
||||
|
||||
import type { Role } from "./Role";
|
||||
|
||||
|
||||
@@ -1,7 +1,6 @@
|
||||
/* generated using openapi-typescript-codegen -- do no edit */
|
||||
/* istanbul ignore file */
|
||||
/* tslint:disable */
|
||||
/* eslint-disable */
|
||||
|
||||
export type ValidationError = {
|
||||
loc: Array<string | number>;
|
||||
|
||||
1
frontend/src/__generated__/models/WatcherDict.ts
generated
1
frontend/src/__generated__/models/WatcherDict.ts
generated
@@ -1,7 +1,6 @@
|
||||
/* generated using openapi-typescript-codegen -- do no edit */
|
||||
/* istanbul ignore file */
|
||||
/* tslint:disable */
|
||||
/* eslint-disable */
|
||||
|
||||
export type WatcherDict = {
|
||||
ENABLED: boolean;
|
||||
|
||||
@@ -281,6 +281,7 @@ onBeforeUnmount(() => {
|
||||
transform-scale
|
||||
with-border
|
||||
show-fav
|
||||
show-platform-icon
|
||||
:with-border-romm-accent="
|
||||
romsStore.isSimpleRom(rom) && selectedRoms?.includes(rom)
|
||||
"
|
||||
|
||||
370
poetry.lock
generated
370
poetry.lock
generated
@@ -143,13 +143,13 @@ files = [
|
||||
|
||||
[[package]]
|
||||
name = "certifi"
|
||||
version = "2024.6.2"
|
||||
version = "2024.7.4"
|
||||
description = "Python package for providing Mozilla's CA Bundle."
|
||||
optional = false
|
||||
python-versions = ">=3.6"
|
||||
files = [
|
||||
{file = "certifi-2024.6.2-py3-none-any.whl", hash = "sha256:ddc6c8ce995e6987e7faf5e3f1b02b302836a0e5d98ece18392cb1a36c72ad56"},
|
||||
{file = "certifi-2024.6.2.tar.gz", hash = "sha256:3cd43f1c6fa7dedc5899d69d3ad0398fd018ad1a17fba83ddaf78aa46c747516"},
|
||||
{file = "certifi-2024.7.4-py3-none-any.whl", hash = "sha256:c198e21b1289c2ab85ee4e67bb4b4ef3ead0892059901a8d5b622f24a1101e90"},
|
||||
{file = "certifi-2024.7.4.tar.gz", hash = "sha256:5a1e7645bc0ec61a09e26c36f6106dd4cf40c6db3a1fb6352b0244e7fb057c7b"},
|
||||
]
|
||||
|
||||
[[package]]
|
||||
@@ -493,13 +493,13 @@ tests = ["asttokens (>=2.1.0)", "coverage", "coverage-enable-subprocess", "ipyth
|
||||
|
||||
[[package]]
|
||||
name = "fakeredis"
|
||||
version = "2.23.2"
|
||||
version = "2.23.3"
|
||||
description = "Python implementation of redis API, can be used for testing purposes."
|
||||
optional = false
|
||||
python-versions = "<4.0,>=3.7"
|
||||
files = [
|
||||
{file = "fakeredis-2.23.2-py3-none-any.whl", hash = "sha256:3721946b955930c065231befd24a9cdc68b339746e93848ef01a010d98e4eb4f"},
|
||||
{file = "fakeredis-2.23.2.tar.gz", hash = "sha256:d649c409abe46c63690b6c35d3c460e4ce64c69a52cea3f02daff2649378f878"},
|
||||
{file = "fakeredis-2.23.3-py3-none-any.whl", hash = "sha256:4779be828f4ebf53e1a286fd11e2ffe0f510d3e5507f143d644e67a07387d759"},
|
||||
{file = "fakeredis-2.23.3.tar.gz", hash = "sha256:0c67caa31530114f451f012eca920338c5eb83fa7f1f461dd41b8d2488a99cba"},
|
||||
]
|
||||
|
||||
[package.dependencies]
|
||||
@@ -733,13 +733,13 @@ ipython = {version = ">=7.31.1", markers = "python_version >= \"3.11\""}
|
||||
|
||||
[[package]]
|
||||
name = "ipykernel"
|
||||
version = "6.29.4"
|
||||
version = "6.29.5"
|
||||
description = "IPython Kernel for Jupyter"
|
||||
optional = false
|
||||
python-versions = ">=3.8"
|
||||
files = [
|
||||
{file = "ipykernel-6.29.4-py3-none-any.whl", hash = "sha256:1181e653d95c6808039c509ef8e67c4126b3b3af7781496c7cbfb5ed938a27da"},
|
||||
{file = "ipykernel-6.29.4.tar.gz", hash = "sha256:3d44070060f9475ac2092b760123fadf105d2e2493c24848b6691a7c4f42af5c"},
|
||||
{file = "ipykernel-6.29.5-py3-none-any.whl", hash = "sha256:afdb66ba5aa354b09b91379bac28ae4afebbb30e8b39510c9690afb7a10421b5"},
|
||||
{file = "ipykernel-6.29.5.tar.gz", hash = "sha256:f093a22c4a40f8828f8e330a9c297cb93dcab13bd9678ded6de8e5cf81c56215"},
|
||||
]
|
||||
|
||||
[package.dependencies]
|
||||
@@ -766,13 +766,13 @@ test = ["flaky", "ipyparallel", "pre-commit", "pytest (>=7.0)", "pytest-asyncio
|
||||
|
||||
[[package]]
|
||||
name = "ipython"
|
||||
version = "8.25.0"
|
||||
version = "8.26.0"
|
||||
description = "IPython: Productive Interactive Computing"
|
||||
optional = false
|
||||
python-versions = ">=3.10"
|
||||
files = [
|
||||
{file = "ipython-8.25.0-py3-none-any.whl", hash = "sha256:53eee7ad44df903a06655871cbab66d156a051fd86f3ec6750470ac9604ac1ab"},
|
||||
{file = "ipython-8.25.0.tar.gz", hash = "sha256:c6ed726a140b6e725b911528f80439c534fac915246af3efc39440a6b0f9d716"},
|
||||
{file = "ipython-8.26.0-py3-none-any.whl", hash = "sha256:e6b347c27bdf9c32ee9d31ae85defc525755a1869f14057e900675b9e8d6e6ff"},
|
||||
{file = "ipython-8.26.0.tar.gz", hash = "sha256:1cec0fbba8404af13facebe83d04436a7434c7400e59f47acf467c64abd0956c"},
|
||||
]
|
||||
|
||||
[package.dependencies]
|
||||
@@ -798,7 +798,7 @@ nbformat = ["nbformat"]
|
||||
notebook = ["ipywidgets", "notebook"]
|
||||
parallel = ["ipyparallel"]
|
||||
qtconsole = ["qtconsole"]
|
||||
test = ["pickleshare", "pytest", "pytest-asyncio (<0.22)", "testpath"]
|
||||
test = ["packaging", "pickleshare", "pytest", "pytest-asyncio (<0.22)", "testpath"]
|
||||
test-extra = ["curio", "ipython[test]", "matplotlib (!=3.2.0)", "nbformat", "numpy (>=1.23)", "pandas", "trio"]
|
||||
|
||||
[[package]]
|
||||
@@ -1244,84 +1244,95 @@ ptyprocess = ">=0.5"
|
||||
|
||||
[[package]]
|
||||
name = "pillow"
|
||||
version = "10.3.0"
|
||||
version = "10.4.0"
|
||||
description = "Python Imaging Library (Fork)"
|
||||
optional = false
|
||||
python-versions = ">=3.8"
|
||||
files = [
|
||||
{file = "pillow-10.3.0-cp310-cp310-macosx_10_10_x86_64.whl", hash = "sha256:90b9e29824800e90c84e4022dd5cc16eb2d9605ee13f05d47641eb183cd73d45"},
|
||||
{file = "pillow-10.3.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:a2c405445c79c3f5a124573a051062300936b0281fee57637e706453e452746c"},
|
||||
{file = "pillow-10.3.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:78618cdbccaa74d3f88d0ad6cb8ac3007f1a6fa5c6f19af64b55ca170bfa1edf"},
|
||||
{file = "pillow-10.3.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:261ddb7ca91fcf71757979534fb4c128448b5b4c55cb6152d280312062f69599"},
|
||||
{file = "pillow-10.3.0-cp310-cp310-manylinux_2_28_aarch64.whl", hash = "sha256:ce49c67f4ea0609933d01c0731b34b8695a7a748d6c8d186f95e7d085d2fe475"},
|
||||
{file = "pillow-10.3.0-cp310-cp310-manylinux_2_28_x86_64.whl", hash = "sha256:b14f16f94cbc61215115b9b1236f9c18403c15dd3c52cf629072afa9d54c1cbf"},
|
||||
{file = "pillow-10.3.0-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:d33891be6df59d93df4d846640f0e46f1a807339f09e79a8040bc887bdcd7ed3"},
|
||||
{file = "pillow-10.3.0-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:b50811d664d392f02f7761621303eba9d1b056fb1868c8cdf4231279645c25f5"},
|
||||
{file = "pillow-10.3.0-cp310-cp310-win32.whl", hash = "sha256:ca2870d5d10d8726a27396d3ca4cf7976cec0f3cb706debe88e3a5bd4610f7d2"},
|
||||
{file = "pillow-10.3.0-cp310-cp310-win_amd64.whl", hash = "sha256:f0d0591a0aeaefdaf9a5e545e7485f89910c977087e7de2b6c388aec32011e9f"},
|
||||
{file = "pillow-10.3.0-cp310-cp310-win_arm64.whl", hash = "sha256:ccce24b7ad89adb5a1e34a6ba96ac2530046763912806ad4c247356a8f33a67b"},
|
||||
{file = "pillow-10.3.0-cp311-cp311-macosx_10_10_x86_64.whl", hash = "sha256:5f77cf66e96ae734717d341c145c5949c63180842a545c47a0ce7ae52ca83795"},
|
||||
{file = "pillow-10.3.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:e4b878386c4bf293578b48fc570b84ecfe477d3b77ba39a6e87150af77f40c57"},
|
||||
{file = "pillow-10.3.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:fdcbb4068117dfd9ce0138d068ac512843c52295ed996ae6dd1faf537b6dbc27"},
|
||||
{file = "pillow-10.3.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9797a6c8fe16f25749b371c02e2ade0efb51155e767a971c61734b1bf6293994"},
|
||||
{file = "pillow-10.3.0-cp311-cp311-manylinux_2_28_aarch64.whl", hash = "sha256:9e91179a242bbc99be65e139e30690e081fe6cb91a8e77faf4c409653de39451"},
|
||||
{file = "pillow-10.3.0-cp311-cp311-manylinux_2_28_x86_64.whl", hash = "sha256:1b87bd9d81d179bd8ab871603bd80d8645729939f90b71e62914e816a76fc6bd"},
|
||||
{file = "pillow-10.3.0-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:81d09caa7b27ef4e61cb7d8fbf1714f5aec1c6b6c5270ee53504981e6e9121ad"},
|
||||
{file = "pillow-10.3.0-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:048ad577748b9fa4a99a0548c64f2cb8d672d5bf2e643a739ac8faff1164238c"},
|
||||
{file = "pillow-10.3.0-cp311-cp311-win32.whl", hash = "sha256:7161ec49ef0800947dc5570f86568a7bb36fa97dd09e9827dc02b718c5643f09"},
|
||||
{file = "pillow-10.3.0-cp311-cp311-win_amd64.whl", hash = "sha256:8eb0908e954d093b02a543dc963984d6e99ad2b5e36503d8a0aaf040505f747d"},
|
||||
{file = "pillow-10.3.0-cp311-cp311-win_arm64.whl", hash = "sha256:4e6f7d1c414191c1199f8996d3f2282b9ebea0945693fb67392c75a3a320941f"},
|
||||
{file = "pillow-10.3.0-cp312-cp312-macosx_10_10_x86_64.whl", hash = "sha256:e46f38133e5a060d46bd630faa4d9fa0202377495df1f068a8299fd78c84de84"},
|
||||
{file = "pillow-10.3.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:50b8eae8f7334ec826d6eeffaeeb00e36b5e24aa0b9df322c247539714c6df19"},
|
||||
{file = "pillow-10.3.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9d3bea1c75f8c53ee4d505c3e67d8c158ad4df0d83170605b50b64025917f338"},
|
||||
{file = "pillow-10.3.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:19aeb96d43902f0a783946a0a87dbdad5c84c936025b8419da0a0cd7724356b1"},
|
||||
{file = "pillow-10.3.0-cp312-cp312-manylinux_2_28_aarch64.whl", hash = "sha256:74d28c17412d9caa1066f7a31df8403ec23d5268ba46cd0ad2c50fb82ae40462"},
|
||||
{file = "pillow-10.3.0-cp312-cp312-manylinux_2_28_x86_64.whl", hash = "sha256:ff61bfd9253c3915e6d41c651d5f962da23eda633cf02262990094a18a55371a"},
|
||||
{file = "pillow-10.3.0-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:d886f5d353333b4771d21267c7ecc75b710f1a73d72d03ca06df49b09015a9ef"},
|
||||
{file = "pillow-10.3.0-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:4b5ec25d8b17217d635f8935dbc1b9aa5907962fae29dff220f2659487891cd3"},
|
||||
{file = "pillow-10.3.0-cp312-cp312-win32.whl", hash = "sha256:51243f1ed5161b9945011a7360e997729776f6e5d7005ba0c6879267d4c5139d"},
|
||||
{file = "pillow-10.3.0-cp312-cp312-win_amd64.whl", hash = "sha256:412444afb8c4c7a6cc11a47dade32982439925537e483be7c0ae0cf96c4f6a0b"},
|
||||
{file = "pillow-10.3.0-cp312-cp312-win_arm64.whl", hash = "sha256:798232c92e7665fe82ac085f9d8e8ca98826f8e27859d9a96b41d519ecd2e49a"},
|
||||
{file = "pillow-10.3.0-cp38-cp38-macosx_10_10_x86_64.whl", hash = "sha256:4eaa22f0d22b1a7e93ff0a596d57fdede2e550aecffb5a1ef1106aaece48e96b"},
|
||||
{file = "pillow-10.3.0-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:cd5e14fbf22a87321b24c88669aad3a51ec052eb145315b3da3b7e3cc105b9a2"},
|
||||
{file = "pillow-10.3.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1530e8f3a4b965eb6a7785cf17a426c779333eb62c9a7d1bbcf3ffd5bf77a4aa"},
|
||||
{file = "pillow-10.3.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5d512aafa1d32efa014fa041d38868fda85028e3f930a96f85d49c7d8ddc0383"},
|
||||
{file = "pillow-10.3.0-cp38-cp38-manylinux_2_28_aarch64.whl", hash = "sha256:339894035d0ede518b16073bdc2feef4c991ee991a29774b33e515f1d308e08d"},
|
||||
{file = "pillow-10.3.0-cp38-cp38-manylinux_2_28_x86_64.whl", hash = "sha256:aa7e402ce11f0885305bfb6afb3434b3cd8f53b563ac065452d9d5654c7b86fd"},
|
||||
{file = "pillow-10.3.0-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:0ea2a783a2bdf2a561808fe4a7a12e9aa3799b701ba305de596bc48b8bdfce9d"},
|
||||
{file = "pillow-10.3.0-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:c78e1b00a87ce43bb37642c0812315b411e856a905d58d597750eb79802aaaa3"},
|
||||
{file = "pillow-10.3.0-cp38-cp38-win32.whl", hash = "sha256:72d622d262e463dfb7595202d229f5f3ab4b852289a1cd09650362db23b9eb0b"},
|
||||
{file = "pillow-10.3.0-cp38-cp38-win_amd64.whl", hash = "sha256:2034f6759a722da3a3dbd91a81148cf884e91d1b747992ca288ab88c1de15999"},
|
||||
{file = "pillow-10.3.0-cp39-cp39-macosx_10_10_x86_64.whl", hash = "sha256:2ed854e716a89b1afcedea551cd85f2eb2a807613752ab997b9974aaa0d56936"},
|
||||
{file = "pillow-10.3.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:dc1a390a82755a8c26c9964d457d4c9cbec5405896cba94cf51f36ea0d855002"},
|
||||
{file = "pillow-10.3.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4203efca580f0dd6f882ca211f923168548f7ba334c189e9eab1178ab840bf60"},
|
||||
{file = "pillow-10.3.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3102045a10945173d38336f6e71a8dc71bcaeed55c3123ad4af82c52807b9375"},
|
||||
{file = "pillow-10.3.0-cp39-cp39-manylinux_2_28_aarch64.whl", hash = "sha256:6fb1b30043271ec92dc65f6d9f0b7a830c210b8a96423074b15c7bc999975f57"},
|
||||
{file = "pillow-10.3.0-cp39-cp39-manylinux_2_28_x86_64.whl", hash = "sha256:1dfc94946bc60ea375cc39cff0b8da6c7e5f8fcdc1d946beb8da5c216156ddd8"},
|
||||
{file = "pillow-10.3.0-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:b09b86b27a064c9624d0a6c54da01c1beaf5b6cadfa609cf63789b1d08a797b9"},
|
||||
{file = "pillow-10.3.0-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:d3b2348a78bc939b4fed6552abfd2e7988e0f81443ef3911a4b8498ca084f6eb"},
|
||||
{file = "pillow-10.3.0-cp39-cp39-win32.whl", hash = "sha256:45ebc7b45406febf07fef35d856f0293a92e7417ae7933207e90bf9090b70572"},
|
||||
{file = "pillow-10.3.0-cp39-cp39-win_amd64.whl", hash = "sha256:0ba26351b137ca4e0db0342d5d00d2e355eb29372c05afd544ebf47c0956ffeb"},
|
||||
{file = "pillow-10.3.0-cp39-cp39-win_arm64.whl", hash = "sha256:50fd3f6b26e3441ae07b7c979309638b72abc1a25da31a81a7fbd9495713ef4f"},
|
||||
{file = "pillow-10.3.0-pp310-pypy310_pp73-macosx_10_10_x86_64.whl", hash = "sha256:6b02471b72526ab8a18c39cb7967b72d194ec53c1fd0a70b050565a0f366d355"},
|
||||
{file = "pillow-10.3.0-pp310-pypy310_pp73-macosx_11_0_arm64.whl", hash = "sha256:8ab74c06ffdab957d7670c2a5a6e1a70181cd10b727cd788c4dd9005b6a8acd9"},
|
||||
{file = "pillow-10.3.0-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:048eeade4c33fdf7e08da40ef402e748df113fd0b4584e32c4af74fe78baaeb2"},
|
||||
{file = "pillow-10.3.0-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9e2ec1e921fd07c7cda7962bad283acc2f2a9ccc1b971ee4b216b75fad6f0463"},
|
||||
{file = "pillow-10.3.0-pp310-pypy310_pp73-manylinux_2_28_aarch64.whl", hash = "sha256:4c8e73e99da7db1b4cad7f8d682cf6abad7844da39834c288fbfa394a47bbced"},
|
||||
{file = "pillow-10.3.0-pp310-pypy310_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:16563993329b79513f59142a6b02055e10514c1a8e86dca8b48a893e33cf91e3"},
|
||||
{file = "pillow-10.3.0-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:dd78700f5788ae180b5ee8902c6aea5a5726bac7c364b202b4b3e3ba2d293170"},
|
||||
{file = "pillow-10.3.0-pp39-pypy39_pp73-macosx_10_10_x86_64.whl", hash = "sha256:aff76a55a8aa8364d25400a210a65ff59d0168e0b4285ba6bf2bd83cf675ba32"},
|
||||
{file = "pillow-10.3.0-pp39-pypy39_pp73-macosx_11_0_arm64.whl", hash = "sha256:b7bc2176354defba3edc2b9a777744462da2f8e921fbaf61e52acb95bafa9828"},
|
||||
{file = "pillow-10.3.0-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:793b4e24db2e8742ca6423d3fde8396db336698c55cd34b660663ee9e45ed37f"},
|
||||
{file = "pillow-10.3.0-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d93480005693d247f8346bc8ee28c72a2191bdf1f6b5db469c096c0c867ac015"},
|
||||
{file = "pillow-10.3.0-pp39-pypy39_pp73-manylinux_2_28_aarch64.whl", hash = "sha256:c83341b89884e2b2e55886e8fbbf37c3fa5efd6c8907124aeb72f285ae5696e5"},
|
||||
{file = "pillow-10.3.0-pp39-pypy39_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:1a1d1915db1a4fdb2754b9de292642a39a7fb28f1736699527bb649484fb966a"},
|
||||
{file = "pillow-10.3.0-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:a0eaa93d054751ee9964afa21c06247779b90440ca41d184aeb5d410f20ff591"},
|
||||
{file = "pillow-10.3.0.tar.gz", hash = "sha256:9d2455fbf44c914840c793e89aa82d0e1763a14253a000743719ae5946814b2d"},
|
||||
{file = "pillow-10.4.0-cp310-cp310-macosx_10_10_x86_64.whl", hash = "sha256:4d9667937cfa347525b319ae34375c37b9ee6b525440f3ef48542fcf66f2731e"},
|
||||
{file = "pillow-10.4.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:543f3dc61c18dafb755773efc89aae60d06b6596a63914107f75459cf984164d"},
|
||||
{file = "pillow-10.4.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7928ecbf1ece13956b95d9cbcfc77137652b02763ba384d9ab508099a2eca856"},
|
||||
{file = "pillow-10.4.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e4d49b85c4348ea0b31ea63bc75a9f3857869174e2bf17e7aba02945cd218e6f"},
|
||||
{file = "pillow-10.4.0-cp310-cp310-manylinux_2_28_aarch64.whl", hash = "sha256:6c762a5b0997f5659a5ef2266abc1d8851ad7749ad9a6a5506eb23d314e4f46b"},
|
||||
{file = "pillow-10.4.0-cp310-cp310-manylinux_2_28_x86_64.whl", hash = "sha256:a985e028fc183bf12a77a8bbf36318db4238a3ded7fa9df1b9a133f1cb79f8fc"},
|
||||
{file = "pillow-10.4.0-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:812f7342b0eee081eaec84d91423d1b4650bb9828eb53d8511bcef8ce5aecf1e"},
|
||||
{file = "pillow-10.4.0-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:ac1452d2fbe4978c2eec89fb5a23b8387aba707ac72810d9490118817d9c0b46"},
|
||||
{file = "pillow-10.4.0-cp310-cp310-win32.whl", hash = "sha256:bcd5e41a859bf2e84fdc42f4edb7d9aba0a13d29a2abadccafad99de3feff984"},
|
||||
{file = "pillow-10.4.0-cp310-cp310-win_amd64.whl", hash = "sha256:ecd85a8d3e79cd7158dec1c9e5808e821feea088e2f69a974db5edf84dc53141"},
|
||||
{file = "pillow-10.4.0-cp310-cp310-win_arm64.whl", hash = "sha256:ff337c552345e95702c5fde3158acb0625111017d0e5f24bf3acdb9cc16b90d1"},
|
||||
{file = "pillow-10.4.0-cp311-cp311-macosx_10_10_x86_64.whl", hash = "sha256:0a9ec697746f268507404647e531e92889890a087e03681a3606d9b920fbee3c"},
|
||||
{file = "pillow-10.4.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:dfe91cb65544a1321e631e696759491ae04a2ea11d36715eca01ce07284738be"},
|
||||
{file = "pillow-10.4.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5dc6761a6efc781e6a1544206f22c80c3af4c8cf461206d46a1e6006e4429ff3"},
|
||||
{file = "pillow-10.4.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5e84b6cc6a4a3d76c153a6b19270b3526a5a8ed6b09501d3af891daa2a9de7d6"},
|
||||
{file = "pillow-10.4.0-cp311-cp311-manylinux_2_28_aarch64.whl", hash = "sha256:bbc527b519bd3aa9d7f429d152fea69f9ad37c95f0b02aebddff592688998abe"},
|
||||
{file = "pillow-10.4.0-cp311-cp311-manylinux_2_28_x86_64.whl", hash = "sha256:76a911dfe51a36041f2e756b00f96ed84677cdeb75d25c767f296c1c1eda1319"},
|
||||
{file = "pillow-10.4.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:59291fb29317122398786c2d44427bbd1a6d7ff54017075b22be9d21aa59bd8d"},
|
||||
{file = "pillow-10.4.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:416d3a5d0e8cfe4f27f574362435bc9bae57f679a7158e0096ad2beb427b8696"},
|
||||
{file = "pillow-10.4.0-cp311-cp311-win32.whl", hash = "sha256:7086cc1d5eebb91ad24ded9f58bec6c688e9f0ed7eb3dbbf1e4800280a896496"},
|
||||
{file = "pillow-10.4.0-cp311-cp311-win_amd64.whl", hash = "sha256:cbed61494057c0f83b83eb3a310f0bf774b09513307c434d4366ed64f4128a91"},
|
||||
{file = "pillow-10.4.0-cp311-cp311-win_arm64.whl", hash = "sha256:f5f0c3e969c8f12dd2bb7e0b15d5c468b51e5017e01e2e867335c81903046a22"},
|
||||
{file = "pillow-10.4.0-cp312-cp312-macosx_10_10_x86_64.whl", hash = "sha256:673655af3eadf4df6b5457033f086e90299fdd7a47983a13827acf7459c15d94"},
|
||||
{file = "pillow-10.4.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:866b6942a92f56300012f5fbac71f2d610312ee65e22f1aa2609e491284e5597"},
|
||||
{file = "pillow-10.4.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:29dbdc4207642ea6aad70fbde1a9338753d33fb23ed6956e706936706f52dd80"},
|
||||
{file = "pillow-10.4.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bf2342ac639c4cf38799a44950bbc2dfcb685f052b9e262f446482afaf4bffca"},
|
||||
{file = "pillow-10.4.0-cp312-cp312-manylinux_2_28_aarch64.whl", hash = "sha256:f5b92f4d70791b4a67157321c4e8225d60b119c5cc9aee8ecf153aace4aad4ef"},
|
||||
{file = "pillow-10.4.0-cp312-cp312-manylinux_2_28_x86_64.whl", hash = "sha256:86dcb5a1eb778d8b25659d5e4341269e8590ad6b4e8b44d9f4b07f8d136c414a"},
|
||||
{file = "pillow-10.4.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:780c072c2e11c9b2c7ca37f9a2ee8ba66f44367ac3e5c7832afcfe5104fd6d1b"},
|
||||
{file = "pillow-10.4.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:37fb69d905be665f68f28a8bba3c6d3223c8efe1edf14cc4cfa06c241f8c81d9"},
|
||||
{file = "pillow-10.4.0-cp312-cp312-win32.whl", hash = "sha256:7dfecdbad5c301d7b5bde160150b4db4c659cee2b69589705b6f8a0c509d9f42"},
|
||||
{file = "pillow-10.4.0-cp312-cp312-win_amd64.whl", hash = "sha256:1d846aea995ad352d4bdcc847535bd56e0fd88d36829d2c90be880ef1ee4668a"},
|
||||
{file = "pillow-10.4.0-cp312-cp312-win_arm64.whl", hash = "sha256:e553cad5179a66ba15bb18b353a19020e73a7921296a7979c4a2b7f6a5cd57f9"},
|
||||
{file = "pillow-10.4.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:8bc1a764ed8c957a2e9cacf97c8b2b053b70307cf2996aafd70e91a082e70df3"},
|
||||
{file = "pillow-10.4.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:6209bb41dc692ddfee4942517c19ee81b86c864b626dbfca272ec0f7cff5d9fb"},
|
||||
{file = "pillow-10.4.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:bee197b30783295d2eb680b311af15a20a8b24024a19c3a26431ff83eb8d1f70"},
|
||||
{file = "pillow-10.4.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1ef61f5dd14c300786318482456481463b9d6b91ebe5ef12f405afbba77ed0be"},
|
||||
{file = "pillow-10.4.0-cp313-cp313-manylinux_2_28_aarch64.whl", hash = "sha256:297e388da6e248c98bc4a02e018966af0c5f92dfacf5a5ca22fa01cb3179bca0"},
|
||||
{file = "pillow-10.4.0-cp313-cp313-manylinux_2_28_x86_64.whl", hash = "sha256:e4db64794ccdf6cb83a59d73405f63adbe2a1887012e308828596100a0b2f6cc"},
|
||||
{file = "pillow-10.4.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:bd2880a07482090a3bcb01f4265f1936a903d70bc740bfcb1fd4e8a2ffe5cf5a"},
|
||||
{file = "pillow-10.4.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:4b35b21b819ac1dbd1233317adeecd63495f6babf21b7b2512d244ff6c6ce309"},
|
||||
{file = "pillow-10.4.0-cp313-cp313-win32.whl", hash = "sha256:551d3fd6e9dc15e4c1eb6fc4ba2b39c0c7933fa113b220057a34f4bb3268a060"},
|
||||
{file = "pillow-10.4.0-cp313-cp313-win_amd64.whl", hash = "sha256:030abdbe43ee02e0de642aee345efa443740aa4d828bfe8e2eb11922ea6a21ea"},
|
||||
{file = "pillow-10.4.0-cp313-cp313-win_arm64.whl", hash = "sha256:5b001114dd152cfd6b23befeb28d7aee43553e2402c9f159807bf55f33af8a8d"},
|
||||
{file = "pillow-10.4.0-cp38-cp38-macosx_10_10_x86_64.whl", hash = "sha256:8d4d5063501b6dd4024b8ac2f04962d661222d120381272deea52e3fc52d3736"},
|
||||
{file = "pillow-10.4.0-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:7c1ee6f42250df403c5f103cbd2768a28fe1a0ea1f0f03fe151c8741e1469c8b"},
|
||||
{file = "pillow-10.4.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b15e02e9bb4c21e39876698abf233c8c579127986f8207200bc8a8f6bb27acf2"},
|
||||
{file = "pillow-10.4.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7a8d4bade9952ea9a77d0c3e49cbd8b2890a399422258a77f357b9cc9be8d680"},
|
||||
{file = "pillow-10.4.0-cp38-cp38-manylinux_2_28_aarch64.whl", hash = "sha256:43efea75eb06b95d1631cb784aa40156177bf9dd5b4b03ff38979e048258bc6b"},
|
||||
{file = "pillow-10.4.0-cp38-cp38-manylinux_2_28_x86_64.whl", hash = "sha256:950be4d8ba92aca4b2bb0741285a46bfae3ca699ef913ec8416c1b78eadd64cd"},
|
||||
{file = "pillow-10.4.0-cp38-cp38-musllinux_1_2_aarch64.whl", hash = "sha256:d7480af14364494365e89d6fddc510a13e5a2c3584cb19ef65415ca57252fb84"},
|
||||
{file = "pillow-10.4.0-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:73664fe514b34c8f02452ffb73b7a92c6774e39a647087f83d67f010eb9a0cf0"},
|
||||
{file = "pillow-10.4.0-cp38-cp38-win32.whl", hash = "sha256:e88d5e6ad0d026fba7bdab8c3f225a69f063f116462c49892b0149e21b6c0a0e"},
|
||||
{file = "pillow-10.4.0-cp38-cp38-win_amd64.whl", hash = "sha256:5161eef006d335e46895297f642341111945e2c1c899eb406882a6c61a4357ab"},
|
||||
{file = "pillow-10.4.0-cp39-cp39-macosx_10_10_x86_64.whl", hash = "sha256:0ae24a547e8b711ccaaf99c9ae3cd975470e1a30caa80a6aaee9a2f19c05701d"},
|
||||
{file = "pillow-10.4.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:298478fe4f77a4408895605f3482b6cc6222c018b2ce565c2b6b9c354ac3229b"},
|
||||
{file = "pillow-10.4.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:134ace6dc392116566980ee7436477d844520a26a4b1bd4053f6f47d096997fd"},
|
||||
{file = "pillow-10.4.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:930044bb7679ab003b14023138b50181899da3f25de50e9dbee23b61b4de2126"},
|
||||
{file = "pillow-10.4.0-cp39-cp39-manylinux_2_28_aarch64.whl", hash = "sha256:c76e5786951e72ed3686e122d14c5d7012f16c8303a674d18cdcd6d89557fc5b"},
|
||||
{file = "pillow-10.4.0-cp39-cp39-manylinux_2_28_x86_64.whl", hash = "sha256:b2724fdb354a868ddf9a880cb84d102da914e99119211ef7ecbdc613b8c96b3c"},
|
||||
{file = "pillow-10.4.0-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:dbc6ae66518ab3c5847659e9988c3b60dc94ffb48ef9168656e0019a93dbf8a1"},
|
||||
{file = "pillow-10.4.0-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:06b2f7898047ae93fad74467ec3d28fe84f7831370e3c258afa533f81ef7f3df"},
|
||||
{file = "pillow-10.4.0-cp39-cp39-win32.whl", hash = "sha256:7970285ab628a3779aecc35823296a7869f889b8329c16ad5a71e4901a3dc4ef"},
|
||||
{file = "pillow-10.4.0-cp39-cp39-win_amd64.whl", hash = "sha256:961a7293b2457b405967af9c77dcaa43cc1a8cd50d23c532e62d48ab6cdd56f5"},
|
||||
{file = "pillow-10.4.0-cp39-cp39-win_arm64.whl", hash = "sha256:32cda9e3d601a52baccb2856b8ea1fc213c90b340c542dcef77140dfa3278a9e"},
|
||||
{file = "pillow-10.4.0-pp310-pypy310_pp73-macosx_10_15_x86_64.whl", hash = "sha256:5b4815f2e65b30f5fbae9dfffa8636d992d49705723fe86a3661806e069352d4"},
|
||||
{file = "pillow-10.4.0-pp310-pypy310_pp73-macosx_11_0_arm64.whl", hash = "sha256:8f0aef4ef59694b12cadee839e2ba6afeab89c0f39a3adc02ed51d109117b8da"},
|
||||
{file = "pillow-10.4.0-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9f4727572e2918acaa9077c919cbbeb73bd2b3ebcfe033b72f858fc9fbef0026"},
|
||||
{file = "pillow-10.4.0-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ff25afb18123cea58a591ea0244b92eb1e61a1fd497bf6d6384f09bc3262ec3e"},
|
||||
{file = "pillow-10.4.0-pp310-pypy310_pp73-manylinux_2_28_aarch64.whl", hash = "sha256:dc3e2db6ba09ffd7d02ae9141cfa0ae23393ee7687248d46a7507b75d610f4f5"},
|
||||
{file = "pillow-10.4.0-pp310-pypy310_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:02a2be69f9c9b8c1e97cf2713e789d4e398c751ecfd9967c18d0ce304efbf885"},
|
||||
{file = "pillow-10.4.0-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:0755ffd4a0c6f267cccbae2e9903d95477ca2f77c4fcf3a3a09570001856c8a5"},
|
||||
{file = "pillow-10.4.0-pp39-pypy39_pp73-macosx_10_15_x86_64.whl", hash = "sha256:a02364621fe369e06200d4a16558e056fe2805d3468350df3aef21e00d26214b"},
|
||||
{file = "pillow-10.4.0-pp39-pypy39_pp73-macosx_11_0_arm64.whl", hash = "sha256:1b5dea9831a90e9d0721ec417a80d4cbd7022093ac38a568db2dd78363b00908"},
|
||||
{file = "pillow-10.4.0-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9b885f89040bb8c4a1573566bbb2f44f5c505ef6e74cec7ab9068c900047f04b"},
|
||||
{file = "pillow-10.4.0-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:87dd88ded2e6d74d31e1e0a99a726a6765cda32d00ba72dc37f0651f306daaa8"},
|
||||
{file = "pillow-10.4.0-pp39-pypy39_pp73-manylinux_2_28_aarch64.whl", hash = "sha256:2db98790afc70118bd0255c2eeb465e9767ecf1f3c25f9a1abb8ffc8cfd1fe0a"},
|
||||
{file = "pillow-10.4.0-pp39-pypy39_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:f7baece4ce06bade126fb84b8af1c33439a76d8a6fd818970215e0560ca28c27"},
|
||||
{file = "pillow-10.4.0-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:cfdd747216947628af7b259d274771d84db2268ca062dd5faf373639d00113a3"},
|
||||
{file = "pillow-10.4.0.tar.gz", hash = "sha256:166c1cd4d24309b30d61f79f4a9114b7b2313d7450912277855ff5dfd7cd4a06"},
|
||||
]
|
||||
|
||||
[package.extras]
|
||||
docs = ["furo", "olefile", "sphinx (>=2.4)", "sphinx-copybutton", "sphinx-inline-tabs", "sphinx-removed-in", "sphinxext-opengraph"]
|
||||
docs = ["furo", "olefile", "sphinx (>=7.3)", "sphinx-copybutton", "sphinx-inline-tabs", "sphinxext-opengraph"]
|
||||
fpx = ["olefile"]
|
||||
mic = ["olefile"]
|
||||
tests = ["check-manifest", "coverage", "defusedxml", "markdown2", "olefile", "packaging", "pyroma", "pytest", "pytest-cov", "pytest-timeout"]
|
||||
@@ -1481,109 +1492,122 @@ files = [
|
||||
|
||||
[[package]]
|
||||
name = "pydantic"
|
||||
version = "2.7.4"
|
||||
version = "2.8.2"
|
||||
description = "Data validation using Python type hints"
|
||||
optional = false
|
||||
python-versions = ">=3.8"
|
||||
files = [
|
||||
{file = "pydantic-2.7.4-py3-none-any.whl", hash = "sha256:ee8538d41ccb9c0a9ad3e0e5f07bf15ed8015b481ced539a1759d8cc89ae90d0"},
|
||||
{file = "pydantic-2.7.4.tar.gz", hash = "sha256:0c84efd9548d545f63ac0060c1e4d39bb9b14db8b3c0652338aecc07b5adec52"},
|
||||
{file = "pydantic-2.8.2-py3-none-any.whl", hash = "sha256:73ee9fddd406dc318b885c7a2eab8a6472b68b8fb5ba8150949fc3db939f23c8"},
|
||||
{file = "pydantic-2.8.2.tar.gz", hash = "sha256:6f62c13d067b0755ad1c21a34bdd06c0c12625a22b0fc09c6b149816604f7c2a"},
|
||||
]
|
||||
|
||||
[package.dependencies]
|
||||
annotated-types = ">=0.4.0"
|
||||
pydantic-core = "2.18.4"
|
||||
typing-extensions = ">=4.6.1"
|
||||
pydantic-core = "2.20.1"
|
||||
typing-extensions = [
|
||||
{version = ">=4.12.2", markers = "python_version >= \"3.13\""},
|
||||
{version = ">=4.6.1", markers = "python_version < \"3.13\""},
|
||||
]
|
||||
|
||||
[package.extras]
|
||||
email = ["email-validator (>=2.0.0)"]
|
||||
|
||||
[[package]]
|
||||
name = "pydantic-core"
|
||||
version = "2.18.4"
|
||||
version = "2.20.1"
|
||||
description = "Core functionality for Pydantic validation and serialization"
|
||||
optional = false
|
||||
python-versions = ">=3.8"
|
||||
files = [
|
||||
{file = "pydantic_core-2.18.4-cp310-cp310-macosx_10_12_x86_64.whl", hash = "sha256:f76d0ad001edd426b92233d45c746fd08f467d56100fd8f30e9ace4b005266e4"},
|
||||
{file = "pydantic_core-2.18.4-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:59ff3e89f4eaf14050c8022011862df275b552caef8082e37b542b066ce1ff26"},
|
||||
{file = "pydantic_core-2.18.4-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a55b5b16c839df1070bc113c1f7f94a0af4433fcfa1b41799ce7606e5c79ce0a"},
|
||||
{file = "pydantic_core-2.18.4-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:4d0dcc59664fcb8974b356fe0a18a672d6d7cf9f54746c05f43275fc48636851"},
|
||||
{file = "pydantic_core-2.18.4-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:8951eee36c57cd128f779e641e21eb40bc5073eb28b2d23f33eb0ef14ffb3f5d"},
|
||||
{file = "pydantic_core-2.18.4-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:4701b19f7e3a06ea655513f7938de6f108123bf7c86bbebb1196eb9bd35cf724"},
|
||||
{file = "pydantic_core-2.18.4-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e00a3f196329e08e43d99b79b286d60ce46bed10f2280d25a1718399457e06be"},
|
||||
{file = "pydantic_core-2.18.4-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:97736815b9cc893b2b7f663628e63f436018b75f44854c8027040e05230eeddb"},
|
||||
{file = "pydantic_core-2.18.4-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:6891a2ae0e8692679c07728819b6e2b822fb30ca7445f67bbf6509b25a96332c"},
|
||||
{file = "pydantic_core-2.18.4-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:bc4ff9805858bd54d1a20efff925ccd89c9d2e7cf4986144b30802bf78091c3e"},
|
||||
{file = "pydantic_core-2.18.4-cp310-none-win32.whl", hash = "sha256:1b4de2e51bbcb61fdebd0ab86ef28062704f62c82bbf4addc4e37fa4b00b7cbc"},
|
||||
{file = "pydantic_core-2.18.4-cp310-none-win_amd64.whl", hash = "sha256:6a750aec7bf431517a9fd78cb93c97b9b0c496090fee84a47a0d23668976b4b0"},
|
||||
{file = "pydantic_core-2.18.4-cp311-cp311-macosx_10_12_x86_64.whl", hash = "sha256:942ba11e7dfb66dc70f9ae66b33452f51ac7bb90676da39a7345e99ffb55402d"},
|
||||
{file = "pydantic_core-2.18.4-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:b2ebef0e0b4454320274f5e83a41844c63438fdc874ea40a8b5b4ecb7693f1c4"},
|
||||
{file = "pydantic_core-2.18.4-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a642295cd0c8df1b86fc3dced1d067874c353a188dc8e0f744626d49e9aa51c4"},
|
||||
{file = "pydantic_core-2.18.4-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:5f09baa656c904807e832cf9cce799c6460c450c4ad80803517032da0cd062e2"},
|
||||
{file = "pydantic_core-2.18.4-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:98906207f29bc2c459ff64fa007afd10a8c8ac080f7e4d5beff4c97086a3dabd"},
|
||||
{file = "pydantic_core-2.18.4-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:19894b95aacfa98e7cb093cd7881a0c76f55731efad31073db4521e2b6ff5b7d"},
|
||||
{file = "pydantic_core-2.18.4-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0fbbdc827fe5e42e4d196c746b890b3d72876bdbf160b0eafe9f0334525119c8"},
|
||||
{file = "pydantic_core-2.18.4-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:f85d05aa0918283cf29a30b547b4df2fbb56b45b135f9e35b6807cb28bc47951"},
|
||||
{file = "pydantic_core-2.18.4-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:e85637bc8fe81ddb73fda9e56bab24560bdddfa98aa64f87aaa4e4b6730c23d2"},
|
||||
{file = "pydantic_core-2.18.4-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:2f5966897e5461f818e136b8451d0551a2e77259eb0f73a837027b47dc95dab9"},
|
||||
{file = "pydantic_core-2.18.4-cp311-none-win32.whl", hash = "sha256:44c7486a4228413c317952e9d89598bcdfb06399735e49e0f8df643e1ccd0558"},
|
||||
{file = "pydantic_core-2.18.4-cp311-none-win_amd64.whl", hash = "sha256:8a7164fe2005d03c64fd3b85649891cd4953a8de53107940bf272500ba8a788b"},
|
||||
{file = "pydantic_core-2.18.4-cp311-none-win_arm64.whl", hash = "sha256:4e99bc050fe65c450344421017f98298a97cefc18c53bb2f7b3531eb39bc7805"},
|
||||
{file = "pydantic_core-2.18.4-cp312-cp312-macosx_10_12_x86_64.whl", hash = "sha256:6f5c4d41b2771c730ea1c34e458e781b18cc668d194958e0112455fff4e402b2"},
|
||||
{file = "pydantic_core-2.18.4-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:2fdf2156aa3d017fddf8aea5adfba9f777db1d6022d392b682d2a8329e087cef"},
|
||||
{file = "pydantic_core-2.18.4-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4748321b5078216070b151d5271ef3e7cc905ab170bbfd27d5c83ee3ec436695"},
|
||||
{file = "pydantic_core-2.18.4-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:847a35c4d58721c5dc3dba599878ebbdfd96784f3fb8bb2c356e123bdcd73f34"},
|
||||
{file = "pydantic_core-2.18.4-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:3c40d4eaad41f78e3bbda31b89edc46a3f3dc6e171bf0ecf097ff7a0ffff7cb1"},
|
||||
{file = "pydantic_core-2.18.4-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:21a5e440dbe315ab9825fcd459b8814bb92b27c974cbc23c3e8baa2b76890077"},
|
||||
{file = "pydantic_core-2.18.4-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:01dd777215e2aa86dfd664daed5957704b769e726626393438f9c87690ce78c3"},
|
||||
{file = "pydantic_core-2.18.4-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:4b06beb3b3f1479d32befd1f3079cc47b34fa2da62457cdf6c963393340b56e9"},
|
||||
{file = "pydantic_core-2.18.4-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:564d7922e4b13a16b98772441879fcdcbe82ff50daa622d681dd682175ea918c"},
|
||||
{file = "pydantic_core-2.18.4-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:0eb2a4f660fcd8e2b1c90ad566db2b98d7f3f4717c64fe0a83e0adb39766d5b8"},
|
||||
{file = "pydantic_core-2.18.4-cp312-none-win32.whl", hash = "sha256:8b8bab4c97248095ae0c4455b5a1cd1cdd96e4e4769306ab19dda135ea4cdb07"},
|
||||
{file = "pydantic_core-2.18.4-cp312-none-win_amd64.whl", hash = "sha256:14601cdb733d741b8958224030e2bfe21a4a881fb3dd6fbb21f071cabd48fa0a"},
|
||||
{file = "pydantic_core-2.18.4-cp312-none-win_arm64.whl", hash = "sha256:c1322d7dd74713dcc157a2b7898a564ab091ca6c58302d5c7b4c07296e3fd00f"},
|
||||
{file = "pydantic_core-2.18.4-cp38-cp38-macosx_10_12_x86_64.whl", hash = "sha256:823be1deb01793da05ecb0484d6c9e20baebb39bd42b5d72636ae9cf8350dbd2"},
|
||||
{file = "pydantic_core-2.18.4-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:ebef0dd9bf9b812bf75bda96743f2a6c5734a02092ae7f721c048d156d5fabae"},
|
||||
{file = "pydantic_core-2.18.4-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ae1d6df168efb88d7d522664693607b80b4080be6750c913eefb77e34c12c71a"},
|
||||
{file = "pydantic_core-2.18.4-cp38-cp38-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:f9899c94762343f2cc2fc64c13e7cae4c3cc65cdfc87dd810a31654c9b7358cc"},
|
||||
{file = "pydantic_core-2.18.4-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:99457f184ad90235cfe8461c4d70ab7dd2680e28821c29eca00252ba90308c78"},
|
||||
{file = "pydantic_core-2.18.4-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:18f469a3d2a2fdafe99296a87e8a4c37748b5080a26b806a707f25a902c040a8"},
|
||||
{file = "pydantic_core-2.18.4-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b7cdf28938ac6b8b49ae5e92f2735056a7ba99c9b110a474473fd71185c1af5d"},
|
||||
{file = "pydantic_core-2.18.4-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:938cb21650855054dc54dfd9120a851c974f95450f00683399006aa6e8abb057"},
|
||||
{file = "pydantic_core-2.18.4-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:44cd83ab6a51da80fb5adbd9560e26018e2ac7826f9626bc06ca3dc074cd198b"},
|
||||
{file = "pydantic_core-2.18.4-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:972658f4a72d02b8abfa2581d92d59f59897d2e9f7e708fdabe922f9087773af"},
|
||||
{file = "pydantic_core-2.18.4-cp38-none-win32.whl", hash = "sha256:1d886dc848e60cb7666f771e406acae54ab279b9f1e4143babc9c2258213daa2"},
|
||||
{file = "pydantic_core-2.18.4-cp38-none-win_amd64.whl", hash = "sha256:bb4462bd43c2460774914b8525f79b00f8f407c945d50881568f294c1d9b4443"},
|
||||
{file = "pydantic_core-2.18.4-cp39-cp39-macosx_10_12_x86_64.whl", hash = "sha256:44a688331d4a4e2129140a8118479443bd6f1905231138971372fcde37e43528"},
|
||||
{file = "pydantic_core-2.18.4-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:a2fdd81edd64342c85ac7cf2753ccae0b79bf2dfa063785503cb85a7d3593223"},
|
||||
{file = "pydantic_core-2.18.4-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:86110d7e1907ab36691f80b33eb2da87d780f4739ae773e5fc83fb272f88825f"},
|
||||
{file = "pydantic_core-2.18.4-cp39-cp39-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:46387e38bd641b3ee5ce247563b60c5ca098da9c56c75c157a05eaa0933ed154"},
|
||||
{file = "pydantic_core-2.18.4-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:123c3cec203e3f5ac7b000bd82235f1a3eced8665b63d18be751f115588fea30"},
|
||||
{file = "pydantic_core-2.18.4-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:dc1803ac5c32ec324c5261c7209e8f8ce88e83254c4e1aebdc8b0a39f9ddb443"},
|
||||
{file = "pydantic_core-2.18.4-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:53db086f9f6ab2b4061958d9c276d1dbe3690e8dd727d6abf2321d6cce37fa94"},
|
||||
{file = "pydantic_core-2.18.4-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:abc267fa9837245cc28ea6929f19fa335f3dc330a35d2e45509b6566dc18be23"},
|
||||
{file = "pydantic_core-2.18.4-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:a0d829524aaefdebccb869eed855e2d04c21d2d7479b6cada7ace5448416597b"},
|
||||
{file = "pydantic_core-2.18.4-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:509daade3b8649f80d4e5ff21aa5673e4ebe58590b25fe42fac5f0f52c6f034a"},
|
||||
{file = "pydantic_core-2.18.4-cp39-none-win32.whl", hash = "sha256:ca26a1e73c48cfc54c4a76ff78df3727b9d9f4ccc8dbee4ae3f73306a591676d"},
|
||||
{file = "pydantic_core-2.18.4-cp39-none-win_amd64.whl", hash = "sha256:c67598100338d5d985db1b3d21f3619ef392e185e71b8d52bceacc4a7771ea7e"},
|
||||
{file = "pydantic_core-2.18.4-pp310-pypy310_pp73-macosx_10_12_x86_64.whl", hash = "sha256:574d92eac874f7f4db0ca653514d823a0d22e2354359d0759e3f6a406db5d55d"},
|
||||
{file = "pydantic_core-2.18.4-pp310-pypy310_pp73-macosx_11_0_arm64.whl", hash = "sha256:1f4d26ceb5eb9eed4af91bebeae4b06c3fb28966ca3a8fb765208cf6b51102ab"},
|
||||
{file = "pydantic_core-2.18.4-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:77450e6d20016ec41f43ca4a6c63e9fdde03f0ae3fe90e7c27bdbeaece8b1ed4"},
|
||||
{file = "pydantic_core-2.18.4-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d323a01da91851a4f17bf592faf46149c9169d68430b3146dcba2bb5e5719abc"},
|
||||
{file = "pydantic_core-2.18.4-pp310-pypy310_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:43d447dd2ae072a0065389092a231283f62d960030ecd27565672bd40746c507"},
|
||||
{file = "pydantic_core-2.18.4-pp310-pypy310_pp73-musllinux_1_1_aarch64.whl", hash = "sha256:578e24f761f3b425834f297b9935e1ce2e30f51400964ce4801002435a1b41ef"},
|
||||
{file = "pydantic_core-2.18.4-pp310-pypy310_pp73-musllinux_1_1_x86_64.whl", hash = "sha256:81b5efb2f126454586d0f40c4d834010979cb80785173d1586df845a632e4e6d"},
|
||||
{file = "pydantic_core-2.18.4-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:ab86ce7c8f9bea87b9d12c7f0af71102acbf5ecbc66c17796cff45dae54ef9a5"},
|
||||
{file = "pydantic_core-2.18.4-pp39-pypy39_pp73-macosx_10_12_x86_64.whl", hash = "sha256:90afc12421df2b1b4dcc975f814e21bc1754640d502a2fbcc6d41e77af5ec312"},
|
||||
{file = "pydantic_core-2.18.4-pp39-pypy39_pp73-macosx_11_0_arm64.whl", hash = "sha256:51991a89639a912c17bef4b45c87bd83593aee0437d8102556af4885811d59f5"},
|
||||
{file = "pydantic_core-2.18.4-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:293afe532740370aba8c060882f7d26cfd00c94cae32fd2e212a3a6e3b7bc15e"},
|
||||
{file = "pydantic_core-2.18.4-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b48ece5bde2e768197a2d0f6e925f9d7e3e826f0ad2271120f8144a9db18d5c8"},
|
||||
{file = "pydantic_core-2.18.4-pp39-pypy39_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:eae237477a873ab46e8dd748e515c72c0c804fb380fbe6c85533c7de51f23a8f"},
|
||||
{file = "pydantic_core-2.18.4-pp39-pypy39_pp73-musllinux_1_1_aarch64.whl", hash = "sha256:834b5230b5dfc0c1ec37b2fda433b271cbbc0e507560b5d1588e2cc1148cf1ce"},
|
||||
{file = "pydantic_core-2.18.4-pp39-pypy39_pp73-musllinux_1_1_x86_64.whl", hash = "sha256:e858ac0a25074ba4bce653f9b5d0a85b7456eaddadc0ce82d3878c22489fa4ee"},
|
||||
{file = "pydantic_core-2.18.4-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:2fd41f6eff4c20778d717af1cc50eca52f5afe7805ee530a4fbd0bae284f16e9"},
|
||||
{file = "pydantic_core-2.18.4.tar.gz", hash = "sha256:ec3beeada09ff865c344ff3bc2f427f5e6c26401cc6113d77e372c3fdac73864"},
|
||||
{file = "pydantic_core-2.20.1-cp310-cp310-macosx_10_12_x86_64.whl", hash = "sha256:3acae97ffd19bf091c72df4d726d552c473f3576409b2a7ca36b2f535ffff4a3"},
|
||||
{file = "pydantic_core-2.20.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:41f4c96227a67a013e7de5ff8f20fb496ce573893b7f4f2707d065907bffdbd6"},
|
||||
{file = "pydantic_core-2.20.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5f239eb799a2081495ea659d8d4a43a8f42cd1fe9ff2e7e436295c38a10c286a"},
|
||||
{file = "pydantic_core-2.20.1-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:53e431da3fc53360db73eedf6f7124d1076e1b4ee4276b36fb25514544ceb4a3"},
|
||||
{file = "pydantic_core-2.20.1-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:f1f62b2413c3a0e846c3b838b2ecd6c7a19ec6793b2a522745b0869e37ab5bc1"},
|
||||
{file = "pydantic_core-2.20.1-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:5d41e6daee2813ecceea8eda38062d69e280b39df793f5a942fa515b8ed67953"},
|
||||
{file = "pydantic_core-2.20.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3d482efec8b7dc6bfaedc0f166b2ce349df0011f5d2f1f25537ced4cfc34fd98"},
|
||||
{file = "pydantic_core-2.20.1-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:e93e1a4b4b33daed65d781a57a522ff153dcf748dee70b40c7258c5861e1768a"},
|
||||
{file = "pydantic_core-2.20.1-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:e7c4ea22b6739b162c9ecaaa41d718dfad48a244909fe7ef4b54c0b530effc5a"},
|
||||
{file = "pydantic_core-2.20.1-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:4f2790949cf385d985a31984907fecb3896999329103df4e4983a4a41e13e840"},
|
||||
{file = "pydantic_core-2.20.1-cp310-none-win32.whl", hash = "sha256:5e999ba8dd90e93d57410c5e67ebb67ffcaadcea0ad973240fdfd3a135506250"},
|
||||
{file = "pydantic_core-2.20.1-cp310-none-win_amd64.whl", hash = "sha256:512ecfbefef6dac7bc5eaaf46177b2de58cdf7acac8793fe033b24ece0b9566c"},
|
||||
{file = "pydantic_core-2.20.1-cp311-cp311-macosx_10_12_x86_64.whl", hash = "sha256:d2a8fa9d6d6f891f3deec72f5cc668e6f66b188ab14bb1ab52422fe8e644f312"},
|
||||
{file = "pydantic_core-2.20.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:175873691124f3d0da55aeea1d90660a6ea7a3cfea137c38afa0a5ffabe37b88"},
|
||||
{file = "pydantic_core-2.20.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:37eee5b638f0e0dcd18d21f59b679686bbd18917b87db0193ae36f9c23c355fc"},
|
||||
{file = "pydantic_core-2.20.1-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:25e9185e2d06c16ee438ed39bf62935ec436474a6ac4f9358524220f1b236e43"},
|
||||
{file = "pydantic_core-2.20.1-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:150906b40ff188a3260cbee25380e7494ee85048584998c1e66df0c7a11c17a6"},
|
||||
{file = "pydantic_core-2.20.1-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:8ad4aeb3e9a97286573c03df758fc7627aecdd02f1da04516a86dc159bf70121"},
|
||||
{file = "pydantic_core-2.20.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d3f3ed29cd9f978c604708511a1f9c2fdcb6c38b9aae36a51905b8811ee5cbf1"},
|
||||
{file = "pydantic_core-2.20.1-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:b0dae11d8f5ded51699c74d9548dcc5938e0804cc8298ec0aa0da95c21fff57b"},
|
||||
{file = "pydantic_core-2.20.1-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:faa6b09ee09433b87992fb5a2859efd1c264ddc37280d2dd5db502126d0e7f27"},
|
||||
{file = "pydantic_core-2.20.1-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:9dc1b507c12eb0481d071f3c1808f0529ad41dc415d0ca11f7ebfc666e66a18b"},
|
||||
{file = "pydantic_core-2.20.1-cp311-none-win32.whl", hash = "sha256:fa2fddcb7107e0d1808086ca306dcade7df60a13a6c347a7acf1ec139aa6789a"},
|
||||
{file = "pydantic_core-2.20.1-cp311-none-win_amd64.whl", hash = "sha256:40a783fb7ee353c50bd3853e626f15677ea527ae556429453685ae32280c19c2"},
|
||||
{file = "pydantic_core-2.20.1-cp312-cp312-macosx_10_12_x86_64.whl", hash = "sha256:595ba5be69b35777474fa07f80fc260ea71255656191adb22a8c53aba4479231"},
|
||||
{file = "pydantic_core-2.20.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:a4f55095ad087474999ee28d3398bae183a66be4823f753cd7d67dd0153427c9"},
|
||||
{file = "pydantic_core-2.20.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f9aa05d09ecf4c75157197f27cdc9cfaeb7c5f15021c6373932bf3e124af029f"},
|
||||
{file = "pydantic_core-2.20.1-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:e97fdf088d4b31ff4ba35db26d9cc472ac7ef4a2ff2badeabf8d727b3377fc52"},
|
||||
{file = "pydantic_core-2.20.1-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:bc633a9fe1eb87e250b5c57d389cf28998e4292336926b0b6cdaee353f89a237"},
|
||||
{file = "pydantic_core-2.20.1-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:d573faf8eb7e6b1cbbcb4f5b247c60ca8be39fe2c674495df0eb4318303137fe"},
|
||||
{file = "pydantic_core-2.20.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:26dc97754b57d2fd00ac2b24dfa341abffc380b823211994c4efac7f13b9e90e"},
|
||||
{file = "pydantic_core-2.20.1-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:33499e85e739a4b60c9dac710c20a08dc73cb3240c9a0e22325e671b27b70d24"},
|
||||
{file = "pydantic_core-2.20.1-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:bebb4d6715c814597f85297c332297c6ce81e29436125ca59d1159b07f423eb1"},
|
||||
{file = "pydantic_core-2.20.1-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:516d9227919612425c8ef1c9b869bbbee249bc91912c8aaffb66116c0b447ebd"},
|
||||
{file = "pydantic_core-2.20.1-cp312-none-win32.whl", hash = "sha256:469f29f9093c9d834432034d33f5fe45699e664f12a13bf38c04967ce233d688"},
|
||||
{file = "pydantic_core-2.20.1-cp312-none-win_amd64.whl", hash = "sha256:035ede2e16da7281041f0e626459bcae33ed998cca6a0a007a5ebb73414ac72d"},
|
||||
{file = "pydantic_core-2.20.1-cp313-cp313-macosx_10_12_x86_64.whl", hash = "sha256:0827505a5c87e8aa285dc31e9ec7f4a17c81a813d45f70b1d9164e03a813a686"},
|
||||
{file = "pydantic_core-2.20.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:19c0fa39fa154e7e0b7f82f88ef85faa2a4c23cc65aae2f5aea625e3c13c735a"},
|
||||
{file = "pydantic_core-2.20.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4aa223cd1e36b642092c326d694d8bf59b71ddddc94cdb752bbbb1c5c91d833b"},
|
||||
{file = "pydantic_core-2.20.1-cp313-cp313-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:c336a6d235522a62fef872c6295a42ecb0c4e1d0f1a3e500fe949415761b8a19"},
|
||||
{file = "pydantic_core-2.20.1-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:7eb6a0587eded33aeefea9f916899d42b1799b7b14b8f8ff2753c0ac1741edac"},
|
||||
{file = "pydantic_core-2.20.1-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:70c8daf4faca8da5a6d655f9af86faf6ec2e1768f4b8b9d0226c02f3d6209703"},
|
||||
{file = "pydantic_core-2.20.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e9fa4c9bf273ca41f940bceb86922a7667cd5bf90e95dbb157cbb8441008482c"},
|
||||
{file = "pydantic_core-2.20.1-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:11b71d67b4725e7e2a9f6e9c0ac1239bbc0c48cce3dc59f98635efc57d6dac83"},
|
||||
{file = "pydantic_core-2.20.1-cp313-cp313-musllinux_1_1_aarch64.whl", hash = "sha256:270755f15174fb983890c49881e93f8f1b80f0b5e3a3cc1394a255706cabd203"},
|
||||
{file = "pydantic_core-2.20.1-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:c81131869240e3e568916ef4c307f8b99583efaa60a8112ef27a366eefba8ef0"},
|
||||
{file = "pydantic_core-2.20.1-cp313-none-win32.whl", hash = "sha256:b91ced227c41aa29c672814f50dbb05ec93536abf8f43cd14ec9521ea09afe4e"},
|
||||
{file = "pydantic_core-2.20.1-cp313-none-win_amd64.whl", hash = "sha256:65db0f2eefcaad1a3950f498aabb4875c8890438bc80b19362cf633b87a8ab20"},
|
||||
{file = "pydantic_core-2.20.1-cp38-cp38-macosx_10_12_x86_64.whl", hash = "sha256:4745f4ac52cc6686390c40eaa01d48b18997cb130833154801a442323cc78f91"},
|
||||
{file = "pydantic_core-2.20.1-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:a8ad4c766d3f33ba8fd692f9aa297c9058970530a32c728a2c4bfd2616d3358b"},
|
||||
{file = "pydantic_core-2.20.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:41e81317dd6a0127cabce83c0c9c3fbecceae981c8391e6f1dec88a77c8a569a"},
|
||||
{file = "pydantic_core-2.20.1-cp38-cp38-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:04024d270cf63f586ad41fff13fde4311c4fc13ea74676962c876d9577bcc78f"},
|
||||
{file = "pydantic_core-2.20.1-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:eaad4ff2de1c3823fddf82f41121bdf453d922e9a238642b1dedb33c4e4f98ad"},
|
||||
{file = "pydantic_core-2.20.1-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:26ab812fa0c845df815e506be30337e2df27e88399b985d0bb4e3ecfe72df31c"},
|
||||
{file = "pydantic_core-2.20.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3c5ebac750d9d5f2706654c638c041635c385596caf68f81342011ddfa1e5598"},
|
||||
{file = "pydantic_core-2.20.1-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:2aafc5a503855ea5885559eae883978c9b6d8c8993d67766ee73d82e841300dd"},
|
||||
{file = "pydantic_core-2.20.1-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:4868f6bd7c9d98904b748a2653031fc9c2f85b6237009d475b1008bfaeb0a5aa"},
|
||||
{file = "pydantic_core-2.20.1-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:aa2f457b4af386254372dfa78a2eda2563680d982422641a85f271c859df1987"},
|
||||
{file = "pydantic_core-2.20.1-cp38-none-win32.whl", hash = "sha256:225b67a1f6d602de0ce7f6c1c3ae89a4aa25d3de9be857999e9124f15dab486a"},
|
||||
{file = "pydantic_core-2.20.1-cp38-none-win_amd64.whl", hash = "sha256:6b507132dcfc0dea440cce23ee2182c0ce7aba7054576efc65634f080dbe9434"},
|
||||
{file = "pydantic_core-2.20.1-cp39-cp39-macosx_10_12_x86_64.whl", hash = "sha256:b03f7941783b4c4a26051846dea594628b38f6940a2fdc0df00b221aed39314c"},
|
||||
{file = "pydantic_core-2.20.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:1eedfeb6089ed3fad42e81a67755846ad4dcc14d73698c120a82e4ccf0f1f9f6"},
|
||||
{file = "pydantic_core-2.20.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:635fee4e041ab9c479e31edda27fcf966ea9614fff1317e280d99eb3e5ab6fe2"},
|
||||
{file = "pydantic_core-2.20.1-cp39-cp39-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:77bf3ac639c1ff567ae3b47f8d4cc3dc20f9966a2a6dd2311dcc055d3d04fb8a"},
|
||||
{file = "pydantic_core-2.20.1-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:7ed1b0132f24beeec5a78b67d9388656d03e6a7c837394f99257e2d55b461611"},
|
||||
{file = "pydantic_core-2.20.1-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:c6514f963b023aeee506678a1cf821fe31159b925c4b76fe2afa94cc70b3222b"},
|
||||
{file = "pydantic_core-2.20.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:10d4204d8ca33146e761c79f83cc861df20e7ae9f6487ca290a97702daf56006"},
|
||||
{file = "pydantic_core-2.20.1-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:2d036c7187b9422ae5b262badb87a20a49eb6c5238b2004e96d4da1231badef1"},
|
||||
{file = "pydantic_core-2.20.1-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:9ebfef07dbe1d93efb94b4700f2d278494e9162565a54f124c404a5656d7ff09"},
|
||||
{file = "pydantic_core-2.20.1-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:6b9d9bb600328a1ce523ab4f454859e9d439150abb0906c5a1983c146580ebab"},
|
||||
{file = "pydantic_core-2.20.1-cp39-none-win32.whl", hash = "sha256:784c1214cb6dd1e3b15dd8b91b9a53852aed16671cc3fbe4786f4f1db07089e2"},
|
||||
{file = "pydantic_core-2.20.1-cp39-none-win_amd64.whl", hash = "sha256:d2fe69c5434391727efa54b47a1e7986bb0186e72a41b203df8f5b0a19a4f669"},
|
||||
{file = "pydantic_core-2.20.1-pp310-pypy310_pp73-macosx_10_12_x86_64.whl", hash = "sha256:a45f84b09ac9c3d35dfcf6a27fd0634d30d183205230a0ebe8373a0e8cfa0906"},
|
||||
{file = "pydantic_core-2.20.1-pp310-pypy310_pp73-macosx_11_0_arm64.whl", hash = "sha256:d02a72df14dfdbaf228424573a07af10637bd490f0901cee872c4f434a735b94"},
|
||||
{file = "pydantic_core-2.20.1-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d2b27e6af28f07e2f195552b37d7d66b150adbaa39a6d327766ffd695799780f"},
|
||||
{file = "pydantic_core-2.20.1-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:084659fac3c83fd674596612aeff6041a18402f1e1bc19ca39e417d554468482"},
|
||||
{file = "pydantic_core-2.20.1-pp310-pypy310_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:242b8feb3c493ab78be289c034a1f659e8826e2233786e36f2893a950a719bb6"},
|
||||
{file = "pydantic_core-2.20.1-pp310-pypy310_pp73-musllinux_1_1_aarch64.whl", hash = "sha256:38cf1c40a921d05c5edc61a785c0ddb4bed67827069f535d794ce6bcded919fc"},
|
||||
{file = "pydantic_core-2.20.1-pp310-pypy310_pp73-musllinux_1_1_x86_64.whl", hash = "sha256:e0bbdd76ce9aa5d4209d65f2b27fc6e5ef1312ae6c5333c26db3f5ade53a1e99"},
|
||||
{file = "pydantic_core-2.20.1-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:254ec27fdb5b1ee60684f91683be95e5133c994cc54e86a0b0963afa25c8f8a6"},
|
||||
{file = "pydantic_core-2.20.1-pp39-pypy39_pp73-macosx_10_12_x86_64.whl", hash = "sha256:407653af5617f0757261ae249d3fba09504d7a71ab36ac057c938572d1bc9331"},
|
||||
{file = "pydantic_core-2.20.1-pp39-pypy39_pp73-macosx_11_0_arm64.whl", hash = "sha256:c693e916709c2465b02ca0ad7b387c4f8423d1db7b4649c551f27a529181c5ad"},
|
||||
{file = "pydantic_core-2.20.1-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5b5ff4911aea936a47d9376fd3ab17e970cc543d1b68921886e7f64bd28308d1"},
|
||||
{file = "pydantic_core-2.20.1-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:177f55a886d74f1808763976ac4efd29b7ed15c69f4d838bbd74d9d09cf6fa86"},
|
||||
{file = "pydantic_core-2.20.1-pp39-pypy39_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:964faa8a861d2664f0c7ab0c181af0bea66098b1919439815ca8803ef136fc4e"},
|
||||
{file = "pydantic_core-2.20.1-pp39-pypy39_pp73-musllinux_1_1_aarch64.whl", hash = "sha256:4dd484681c15e6b9a977c785a345d3e378d72678fd5f1f3c0509608da24f2ac0"},
|
||||
{file = "pydantic_core-2.20.1-pp39-pypy39_pp73-musllinux_1_1_x86_64.whl", hash = "sha256:f6d6cff3538391e8486a431569b77921adfcdef14eb18fbf19b7c0a5294d4e6a"},
|
||||
{file = "pydantic_core-2.20.1-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:a6d511cc297ff0883bc3708b465ff82d7560193169a8b93260f74ecb0a5e08a7"},
|
||||
{file = "pydantic_core-2.20.1.tar.gz", hash = "sha256:26ca695eeee5f9f1aeeb211ffc12f10bcb6f71e2989988fda61dabd65db878d4"},
|
||||
]
|
||||
|
||||
[package.dependencies]
|
||||
@@ -2382,13 +2406,13 @@ urllib3 = ">=2"
|
||||
|
||||
[[package]]
|
||||
name = "types-setuptools"
|
||||
version = "70.1.0.20240627"
|
||||
version = "70.2.0.20240704"
|
||||
description = "Typing stubs for setuptools"
|
||||
optional = false
|
||||
python-versions = ">=3.8"
|
||||
files = [
|
||||
{file = "types-setuptools-70.1.0.20240627.tar.gz", hash = "sha256:385907a47b5cf302b928ce07953cd91147d5de6f3da604c31905fdf0ec309e83"},
|
||||
{file = "types_setuptools-70.1.0.20240627-py3-none-any.whl", hash = "sha256:c7bdf05cd0a8b66868b4774c7b3c079d01ae025d8c9562bfc8bf2ff44d263c9c"},
|
||||
{file = "types-setuptools-70.2.0.20240704.tar.gz", hash = "sha256:2f8d28d16ca1607080f9fdf19595bd49c942884b2bbd6529c9b8a9a8fc8db911"},
|
||||
{file = "types_setuptools-70.2.0.20240704-py3-none-any.whl", hash = "sha256:6b892d5441c2ed58dd255724516e3df1db54892fb20597599aea66d04c3e4d7f"},
|
||||
]
|
||||
|
||||
[[package]]
|
||||
@@ -2799,4 +2823,4 @@ multidict = ">=4.0"
|
||||
[metadata]
|
||||
lock-version = "2.0"
|
||||
python-versions = "^3.11"
|
||||
content-hash = "72732e9b3f6d48f371c4080e6ce222b00d572148ed69f8ae7e17833da9d77f78"
|
||||
content-hash = "8f13b0b7fcf9c4bcbd0441a17570c971b1aed71ef5a6091ab84587e4f2429b0a"
|
||||
|
||||
@@ -41,6 +41,7 @@ watchdog = "^4.0.0"
|
||||
yarl = "^1.9.4"
|
||||
joserfc = "^0.9.0"
|
||||
pillow = "^10.3.0"
|
||||
certifi = "2024.07.04"
|
||||
|
||||
[tool.poetry.group.test.dependencies]
|
||||
fakeredis = "^2.21.3"
|
||||
|
||||
Reference in New Issue
Block a user