v2: Initial public release

v3:
* Added support for `version` parameter, to handle `/v2` URLs
* Retry 500 errors
* Add documentation for working with IAPs

v4:
* Added support for `read()` and `readAll()`, a clearer API than `fetchJson` and its `options` object

v4.1:
* Fixed array relationships
* Add support for `included` array in `create()` and `update()`
* Add documentation for setting IAP prices

v4.2:
* Added `params` object

v5.0:
* The library now works in browsers and in Node.js 18+
* Increased minimum required Node version to v18
* Removed convenience to automatically read the private key from `~/.appstoreconnect` (not compatible with browsers); documented alternative
* Removed dependency on `node-fetch` (now using `fetch` from global, available in browsers and Node.js 18+)
* Replaced dependency on `jsonwebtoken` with `jose`, because `jsonwebtoken` doesn't work in browsers and `jose` does

v5.0.3
* We no longer set `sourceFileChecksum` when uploading files.

    `sourceFileChecksum` is never required, but it is sometimes forbidden. For example, App Previews and App Screenshots allow `sourceFileChecksum`, but Game Center Achievement Images and App Event Screenshots do not.

v5.0.4
* Bring your own `fetch` implementation by passing a `fetch` parameter to the `api` function.

v5.0.4
* Bring your own `fetch` implementation by passing a `fetch` parameter to the `api` function.

v5.0.5
* Include a new option, `haltPaginationOnEmptyData`. Apple seems to have a bug in some endpoints where they include a `links.next` cursor link even if there's no more data. When crawling all pages, that will loop infinitely.

    When the option to halt on empty data is set, we'll workaround Apple's bug. (I'm leaving it off by default because I think it shouldn't be necessary; I hope Apple just fixes it.)