Releases: Exerra/node-musickit-api
Release list
3.0.1 - Bun hotfix
Version 3.0.0 introduced a bug causing Bun to use an entrypoint not bundled in the package tarball. This version fixes that -- all runtimes now use the compiled ESM.
Full Changelog: 3.0.0...3.0.1
Version 3.0.0 - complete rewrite & storefronts
This is a full rewrite of the package. Nothing is shared with v2 - API, types, and internals are all new. Treat this as a new package.
Highlights
- TypeScript — Full type definitions for all resources and responses
- Bun — Primary package manager; still compatible with npm/yarn
- Promise-based — Removed legacy callback support; fully async/await
- Resource architecture —
musicKit.songs,musicKit.albums,musicKit.artists,musicKit.musicVideos,musicKit.storefronts - New resource: Storefronts —
getAll()andget()for Apple Music storefronts - Response flattening — Clean
dataobjects by default; useraw: truefor unprocessed responses - JWT auth —
musicKit.auth()generates + caches developer tokens;testAuth()validates them - Error handling — Non-2xx responses return structured errors instead of throwing
- Search — Typed
search()withSearchParams/SearchResult
Migration from v2
The v2 callback-based API is removed. See the README for the new promise-based API pattern.
What's Changed
Full rewrite (PR #15):
- 958 additions, 2,149 deletions across 70 files
- Migrate from JavaScript to TypeScript (closes #11)
- Migrate from npm to Bun as the primary package manager
- Move from callbacks-first to promises-first (closes #13)
- Implement
MusicKitclass with JWT authentication - Implement resource-based architecture:
SongsResource,AlbumsResource,ArtistsResource,MusicVideosResource - Add
search()method with typedSearchParamsandSearchResult - Add
testAuth()for token validation (closes #10) - Implement response flattening by default with
rawopt-out - Define full TypeScript interfaces for Album, Song, Artist, MusicVideo, Search, Play, Relationships
Post-rewrite additions:
- feat: add Storefronts resource (
getAll,get) - feat: add authentication check to API methods
- fix: return error response immediately in resource methods
- fix: handle non-2xx API responses
- build: migrate to Bun and update npm publication workflow
- docs: full README rewrite with API documentation and quick start
- chore: add MIT License file
Full Changelog: 2.1.1...3.0.0
Bugfix && better code
This release fixes a major bug in the code (essentially a functions parameter was named "storefront" but I used "country" in the code)
Also adds some code revamps, essentially made a part of the code a module
Personalized routes
This release adds various personalized routes.
Documentation: https://musickit.js.org/#/personalized/initialization
Promise support
Added promise support!
To use promises, import node-musickit-api as "node-musickit-api/promises"
Missing param handling + more functions
1.2.0 Update package.json
Changed README to point to docs
getSongByISRC()
Initialization README
Added Initialization to the README
Initial release
This is the initial release of this package!
Features:
- Searching
- Getting things by their ID