Overall improvements and data update (#22)

This PR contains the work done to update the live tests to the latest data plus lots of QoL improvements to the library, including:

* added test cases to test the ``AmiiboService` locally;
* conformed the models to the `Hashable` protocol;
* documented the use of caching with the `AmiiboService` service;
* updated the reference to the new AmiiboAPI url;
* updated the year on the copyrights and header files;
* updated the overall documentation of the source code and the package.

Reviewed-on: #22
Co-authored-by: Javier Cicchelli <javier@rock-n-code.com>
Co-committed-by: Javier Cicchelli <javier@rock-n-code.com>
This commit was merged in pull request #22.
This commit is contained in:
javier authored and Javier Cicchelli committed 2026-03-22 23:39:48 +00:00
1 parent fae4b44698
commit 2b01ec14bf
375 files changed
+1177 -700

No files matched your search

+1 -1
View File
@@ -1 +1 @@
{"includedArchiveIdentifiers":["AmiiboService"],"interfaceLanguages":{"swift":[{"children":[{"title":"Service","type":"groupMarker"},{"children":[{"title":"Initializers","type":"groupMarker"},{"path":"\/documentation\/amiiboservice\/amiiboservice\/init(client:)","title":"init(client: some AmiiboClient)","type":"init"},{"title":"Instance Methods","type":"groupMarker"},{"path":"\/documentation\/amiiboservice\/amiiboservice\/getamiiboseries(_:)","title":"func getAmiiboSeries(AmiiboSeriesFilter) async throws -> [AmiiboSeries]","type":"method"},{"path":"\/documentation\/amiiboservice\/amiiboservice\/getamiibotypes(_:)","title":"func getAmiiboTypes(AmiiboTypeFilter) async throws -> [AmiiboType]","type":"method"},{"path":"\/documentation\/amiiboservice\/amiiboservice\/getamiibos(_:)","title":"func getAmiibos(AmiiboFilter) async throws -> [Amiibo]","type":"method"},{"path":"\/documentation\/amiiboservice\/amiiboservice\/getgamecharacters(_:)","title":"func getGameCharacters(GameCharacterFilter) async throws -> [GameCharacter]","type":"method"},{"path":"\/documentation\/amiiboservice\/amiiboservice\/getgameseries(_:)","title":"func getGameSeries(GameSeriesFilter) async throws -> [GameSeries]","type":"method"},{"path":"\/documentation\/amiiboservice\/amiiboservice\/getlastupdated()","title":"func getLastUpdated() async throws -> Date","type":"method"}],"path":"\/documentation\/amiiboservice\/amiiboservice","title":"AmiiboService","type":"struct"},{"title":"Clients","type":"groupMarker"},{"children":[{"title":"Amiibo endpoints","type":"groupMarker"},{"path":"\/documentation\/amiiboservice\/amiiboclient\/getamiibos(by:)","title":"func getAmiibos(by: AmiiboFilter) async throws -> [Amiibo]","type":"method"},{"path":"\/documentation\/amiiboservice\/amiiboclient\/getamiiboseries(by:)","title":"func getAmiiboSeries(by: AmiiboSeriesFilter) async throws -> [AmiiboSeries]","type":"method"},{"path":"\/documentation\/amiiboservice\/amiiboclient\/getamiibotypes(by:)","title":"func getAmiiboTypes(by: AmiiboTypeFilter) async throws -> [AmiiboType]","type":"method"},{"title":"Game endpoints","type":"groupMarker"},{"path":"\/documentation\/amiiboservice\/amiiboclient\/getgamecharacters(by:)","title":"func getGameCharacters(by: GameCharacterFilter) async throws -> [GameCharacter]","type":"method"},{"path":"\/documentation\/amiiboservice\/amiiboclient\/getgameseries(by:)","title":"func getGameSeries(by: GameSeriesFilter) async throws -> [GameSeries]","type":"method"},{"title":"System endpoints","type":"groupMarker"},{"path":"\/documentation\/amiiboservice\/amiiboclient\/getlastupdated()","title":"func getLastUpdated() async throws -> Date","type":"method"}],"path":"\/documentation\/amiiboservice\/amiiboclient","title":"AmiiboClient","type":"protocol"},{"children":[{"title":"Initializers","type":"groupMarker"},{"path":"\/documentation\/amiiboservice\/amiiboliveclient\/init(transport:)","title":"init(transport: any ClientTransport)","type":"init"},{"title":"Amiibo endpoints","type":"groupMarker"},{"path":"\/documentation\/amiiboservice\/amiiboliveclient\/getamiibos(by:)","title":"func getAmiibos(by: AmiiboFilter) async throws -> [Amiibo]","type":"method"},{"path":"\/documentation\/amiiboservice\/amiiboliveclient\/getamiiboseries(by:)","title":"func getAmiiboSeries(by: AmiiboSeriesFilter) async throws -> [AmiiboSeries]","type":"method"},{"path":"\/documentation\/amiiboservice\/amiiboliveclient\/getamiibotypes(by:)","title":"func getAmiiboTypes(by: AmiiboTypeFilter) async throws -> [AmiiboType]","type":"method"},{"title":"Game endpoints","type":"groupMarker"},{"path":"\/documentation\/amiiboservice\/amiiboliveclient\/getgamecharacters(by:)","title":"func getGameCharacters(by: GameCharacterFilter) async throws -> [GameCharacter]","type":"method"},{"path":"\/documentation\/amiiboservice\/amiiboliveclient\/getgameseries(by:)","title":"func getGameSeries(by: GameSeriesFilter) async throws -> [GameSeries]","type":"method"},{"title":"System endpoints","type":"groupMarker"},{"path":"\/documentation\/amiiboservice\/amiiboliveclient\/getlastupdated()","title":"func getLastUpdated() async throws -> Date","type":"method"},{"title":"Default Implementations","type":"groupMarker"},{"children":[{"title":"Instance Methods","type":"groupMarker"},{"path":"\/documentation\/amiiboservice\/amiiboliveclient\/getamiiboseries(by:)","title":"func getAmiiboSeries(by: AmiiboSeriesFilter) async throws -> [AmiiboSeries]","type":"method"},{"path":"\/documentation\/amiiboservice\/amiiboliveclient\/getamiibotypes(by:)","title":"func getAmiiboTypes(by: AmiiboTypeFilter) async throws -> [AmiiboType]","type":"method"},{"path":"\/documentation\/amiiboservice\/amiiboliveclient\/getamiibos(by:)","title":"func getAmiibos(by: AmiiboFilter) async throws -> [Amiibo]","type":"method"},{"path":"\/documentation\/amiiboservice\/amiiboliveclient\/getgamecharacters(by:)","title":"func getGameCharacters(by: GameCharacterFilter) async throws -> [GameCharacter]","type":"method"},{"path":"Line truncated
{"includedArchiveIdentifiers":["AmiiboService"],"interfaceLanguages":{"swift":[{"children":[{"title":"Service","type":"groupMarker"},{"children":[{"title":"Initializers","type":"groupMarker"},{"path":"\/documentation\/amiiboservice\/amiiboservice\/init(client:)","title":"init(client: some AmiiboClient)","type":"init"},{"title":"Instance Methods","type":"groupMarker"},{"path":"\/documentation\/amiiboservice\/amiiboservice\/getamiiboseries(_:)","title":"func getAmiiboSeries(AmiiboSeriesFilter) async throws -> [AmiiboSeries]","type":"method"},{"path":"\/documentation\/amiiboservice\/amiiboservice\/getamiibotypes(_:)","title":"func getAmiiboTypes(AmiiboTypeFilter) async throws -> [AmiiboType]","type":"method"},{"path":"\/documentation\/amiiboservice\/amiiboservice\/getamiibos(_:)","title":"func getAmiibos(AmiiboFilter) async throws -> [Amiibo]","type":"method"},{"path":"\/documentation\/amiiboservice\/amiiboservice\/getgamecharacters(_:)","title":"func getGameCharacters(GameCharacterFilter) async throws -> [GameCharacter]","type":"method"},{"path":"\/documentation\/amiiboservice\/amiiboservice\/getgameseries(_:)","title":"func getGameSeries(GameSeriesFilter) async throws -> [GameSeries]","type":"method"},{"path":"\/documentation\/amiiboservice\/amiiboservice\/getlastupdated()","title":"func getLastUpdated() async throws -> Date","type":"method"}],"path":"\/documentation\/amiiboservice\/amiiboservice","title":"AmiiboService","type":"struct"},{"title":"Clients","type":"groupMarker"},{"children":[{"title":"Amiibo endpoints","type":"groupMarker"},{"path":"\/documentation\/amiiboservice\/amiiboclient\/getamiibos(by:)","title":"func getAmiibos(by: AmiiboFilter) async throws -> [Amiibo]","type":"method"},{"path":"\/documentation\/amiiboservice\/amiiboclient\/getamiiboseries(by:)","title":"func getAmiiboSeries(by: AmiiboSeriesFilter) async throws -> [AmiiboSeries]","type":"method"},{"path":"\/documentation\/amiiboservice\/amiiboclient\/getamiibotypes(by:)","title":"func getAmiiboTypes(by: AmiiboTypeFilter) async throws -> [AmiiboType]","type":"method"},{"title":"Game endpoints","type":"groupMarker"},{"path":"\/documentation\/amiiboservice\/amiiboclient\/getgamecharacters(by:)","title":"func getGameCharacters(by: GameCharacterFilter) async throws -> [GameCharacter]","type":"method"},{"path":"\/documentation\/amiiboservice\/amiiboclient\/getgameseries(by:)","title":"func getGameSeries(by: GameSeriesFilter) async throws -> [GameSeries]","type":"method"},{"title":"System endpoints","type":"groupMarker"},{"path":"\/documentation\/amiiboservice\/amiiboclient\/getlastupdated()","title":"func getLastUpdated() async throws -> Date","type":"method"}],"path":"\/documentation\/amiiboservice\/amiiboclient","title":"AmiiboClient","type":"protocol"},{"children":[{"title":"Initializers","type":"groupMarker"},{"path":"\/documentation\/amiiboservice\/amiiboliveclient\/init(transport:)","title":"init(transport: any ClientTransport)","type":"init"},{"title":"Amiibo endpoints","type":"groupMarker"},{"path":"\/documentation\/amiiboservice\/amiiboliveclient\/getamiibos(by:)","title":"func getAmiibos(by: AmiiboFilter) async throws -> [Amiibo]","type":"method"},{"path":"\/documentation\/amiiboservice\/amiiboliveclient\/getamiiboseries(by:)","title":"func getAmiiboSeries(by: AmiiboSeriesFilter) async throws -> [AmiiboSeries]","type":"method"},{"path":"\/documentation\/amiiboservice\/amiiboliveclient\/getamiibotypes(by:)","title":"func getAmiiboTypes(by: AmiiboTypeFilter) async throws -> [AmiiboType]","type":"method"},{"title":"Game endpoints","type":"groupMarker"},{"path":"\/documentation\/amiiboservice\/amiiboliveclient\/getgamecharacters(by:)","title":"func getGameCharacters(by: GameCharacterFilter) async throws -> [GameCharacter]","type":"method"},{"path":"\/documentation\/amiiboservice\/amiiboliveclient\/getgameseries(by:)","title":"func getGameSeries(by: GameSeriesFilter) async throws -> [GameSeries]","type":"method"},{"title":"System endpoints","type":"groupMarker"},{"path":"\/documentation\/amiiboservice\/amiiboliveclient\/getlastupdated()","title":"func getLastUpdated() async throws -> Date","type":"method"},{"title":"Default Implementations","type":"groupMarker"},{"children":[{"title":"Instance Methods","type":"groupMarker"},{"path":"\/documentation\/amiiboservice\/amiiboliveclient\/getamiiboseries(by:)","title":"func getAmiiboSeries(by: AmiiboSeriesFilter) async throws -> [AmiiboSeries]","type":"method"},{"path":"\/documentation\/amiiboservice\/amiiboliveclient\/getamiibotypes(by:)","title":"func getAmiiboTypes(by: AmiiboTypeFilter) async throws -> [AmiiboType]","type":"method"},{"path":"\/documentation\/amiiboservice\/amiiboliveclient\/getamiibos(by:)","title":"func getAmiibos(by: AmiiboFilter) async throws -> [Amiibo]","type":"method"},{"path":"\/documentation\/amiiboservice\/amiiboliveclient\/getgamecharacters(by:)","title":"func getGameCharacters(by: GameCharacterFilter) async throws -> [GameCharacter]","type":"method"},{"path":"Line truncated