- Added images, audio player and video player to the popups of
map_locations()for better visualization of media types.
- Refactored all HTTP requests to rely more consistently on httr2, including:
- Use of
req_url_query()instead of manual URL string concatenation. - Use of
resp_body_json()where applicable.
- Use of
- Unified argument order across all
query_*()functions for a more consistent user interface. - Default media format changed from
"sound"to"image"where applicable. - Global options are now namespaced with
suwo_to avoid conflicts (e.g.suwo_verbose,suwo_format). - Improved pagination and request robustness for GBIF, WikiAves, Xeno-Canto, and iNaturalist queries.
- Progress reporting refactored to use cli instead of pbapply.
- Migrated roxygen documentation to Markdown syntax.
- Reformatted the codebase using air, with a GitHub Actions workflow to enforce formatting.
- Dropped unused or unnecessary dependencies (
methods,viridis), updated minimum R version to ≥ 4.0.0, and moved vignette-only packages toSuggests. - Replaced mc.cores option with suwo_cores to allow users to set parallelization consistently across suwo functions within an R session.
- Xeno-Canto API keys are now read exclusively from environment variables via
Sys.getenv("xc_api_key"). - Removed encouragement of API keys being passed directly in function calls or stored in options.
- Added stricter input validation:
- Enforced single-species queries where required.
- Improved error handling for incorrect inputs to
remove_duplicates().
- Metadata records without associated media URLs are now stored as an attribute of the returned data frame instead of global options.
- Improved handling of duplicated media records and clarified their interpretation in documentation.
- Replaced usage of
methods::is()withinherits().
- Expanded vignette explanations, including clearer alt text for figures.
- Clarified licensing and responsibility for commercial use of retrieved data.
- Improved guidance for handling duplicated records.
- README rendering is now triggered only when
README.Rmdchanges.
- Cleaned up test infrastructure and fixed Codecov integration.
- Removed duplicated
.onLoad()definitions. - Simplified internal code by removing unnecessary
paste()calls and replacingseq_len(length())withseq_along().
- First release