gerdur 2.10.0 → 2.11.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -1,5 +1,20 @@
1
1
  # Changelog
2
2
 
3
+ ## 2.11.0 - 2026-08-31
4
+
5
+ ### Fixed
6
+
7
+ - **`--enrich`** now picks the right release. It was calling the Cover Art
8
+ Archive on a recording's *first* MusicBrainz release, which for many tracks is
9
+ a promo comp / bootleg with no art — so it silently fell back to Deezer's
10
+ cover. `gerdur-core@2.13.0`'s `getCoverArtByISRC` walks the release-groups
11
+ canonical-first (Official → Album → earliest) and returns the first real
12
+ cover (verified: 216 KB CAA cover vs Deezer's ~35 KB).
13
+
14
+ ### Added
15
+
16
+ - Re-export `getCoverArtByISRC` / `getRecordingCoverArt`.
17
+
3
18
  ## 2.10.0 - 2026-08-31
4
19
 
5
20
  ### Added
package/dist/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "gerdur",
3
- "version": "2.10.0",
3
+ "version": "2.11.0",
4
4
  "description": "The crucial streaming module for dabox systems.",
5
5
  "author": "Christian",
6
6
  "license": "SEE LICENSE IN LICENSE",
@@ -48,7 +48,7 @@
48
48
  "adm-zip": "^0.5.16",
49
49
  "chalk": "^4.1.2",
50
50
  "commander": "^9.5.0",
51
- "gerdur-core": "^2.12.0",
51
+ "gerdur-core": "^2.13.0",
52
52
  "dot-prop": "^6.0.1",
53
53
  "got": "^11.8.6",
54
54
  "gradient-string": "^2.0.2",
@@ -58,7 +58,7 @@ export { createSession, Session } from './lib/session';
58
58
  export type { SessionOptions, DownloadTracksOptions, SearchType } from './lib/session';
59
59
  export { createSession as createCoreSession, Session as CoreSession, defaultSession } from 'gerdur-core';
60
60
  export type { SessionUserData, SearchFacets } from 'gerdur-core';
61
- export { configureMusicBrainz, lookupRecordingByISRC, getMusicBrainzRecording, getMusicBrainzRelease, getCoverArt, getBestCoverArtUrl, PoliteJsonClient, } from 'gerdur-core';
61
+ export { configureMusicBrainz, lookupRecordingByISRC, getMusicBrainzRecording, getMusicBrainzRelease, getCoverArt, getBestCoverArtUrl, getRecordingCoverArt, getCoverArtByISRC, PoliteJsonClient, } from 'gerdur-core';
62
62
  export type { MBRecording, MBRelease, MBArtistCredit, CoverArt, CoverArtImage } from 'gerdur-core';
63
63
  export { getTrackBuffer, getTaggedTrack, downloadTrackToFile } from './lib/api-download';
64
64
  export type { Quality, GetTrackBufferOptions, DownloadTrackOptions, DownloadResult } from './lib/api-download';
package/dist/src/index.js CHANGED
@@ -33,8 +33,8 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
33
33
  return (mod && mod.__esModule) ? mod : { "default": mod };
34
34
  };
35
35
  Object.defineProperty(exports, "__esModule", { value: true });
36
- exports.getUserPlaylists = exports.getUserFavoriteArtists = exports.getUserFavoriteAlbums = exports.getUserFavoriteTracks = exports.getUserFlow = exports.getArtistRadioTracks = exports.getArtistPlaylists = exports.getArtistAlbums = exports.getRelatedArtists = exports.getArtistTopTracks = exports.getEditorialCharts = exports.getEditorialSelection = exports.getEditorialReleases = exports.getEditorialList = exports.getGenreArtists = exports.getChartTracks = exports.getChart = exports.getGenres = exports.suggest = exports.buildAdvancedQuery = exports.searchPlaylists = exports.searchArtists = exports.searchAlbums = exports.searchTracks = exports.searchPublicApi = exports.searchFacets = exports.searchMusic = exports.parseInfo = exports.initDeezerApi = exports.resolveConfigFile = exports.globalConfigPath = exports.Config = exports.downloadTrackToFile = exports.getTaggedTrack = exports.getTrackBuffer = exports.PoliteJsonClient = exports.getBestCoverArtUrl = exports.getCoverArt = exports.getMusicBrainzRelease = exports.getMusicBrainzRecording = exports.lookupRecordingByISRC = exports.configureMusicBrainz = exports.defaultSession = exports.CoreSession = exports.createCoreSession = exports.Session = exports.createSession = exports.getArl = exports.LoginError = exports.loginWithEmail = void 0;
37
- exports.DeezerError = exports.GeoBlocked = exports.toLrc = exports.normalizeContributors = exports.getRichAlbum = exports.addTrackTags = exports.getStream = exports.createDecryptStream = exports.downloadTrackBuffer = exports.streamTrackDownload = exports.resolveDownloadUrls = exports.getTrackDownloadUrl = exports.getLyrics = exports.getDiscography = exports.getArtistInfo = exports.getPlaylistTracks = exports.getPlaylistInfo = exports.getAlbumTracks = exports.getAlbumInfo = exports.getTrackInfo = exports.getUser = exports.DEEZER_FORMATS = exports.toFormat = exports.formatName = exports.downloadPreview = exports.getTrackPreview = exports.getAlbumByUPC = exports.getTrackByISRC = exports.refreshTrackTokens = exports.getShowEpisodes = exports.getEpisode = exports.getRadioGenres = exports.getRadioTracks = exports.getRadios = exports.getUserChartTracks = exports.getUserRadios = void 0;
36
+ exports.getUserFavoriteAlbums = exports.getUserFavoriteTracks = exports.getUserFlow = exports.getArtistRadioTracks = exports.getArtistPlaylists = exports.getArtistAlbums = exports.getRelatedArtists = exports.getArtistTopTracks = exports.getEditorialCharts = exports.getEditorialSelection = exports.getEditorialReleases = exports.getEditorialList = exports.getGenreArtists = exports.getChartTracks = exports.getChart = exports.getGenres = exports.suggest = exports.buildAdvancedQuery = exports.searchPlaylists = exports.searchArtists = exports.searchAlbums = exports.searchTracks = exports.searchPublicApi = exports.searchFacets = exports.searchMusic = exports.parseInfo = exports.initDeezerApi = exports.resolveConfigFile = exports.globalConfigPath = exports.Config = exports.downloadTrackToFile = exports.getTaggedTrack = exports.getTrackBuffer = exports.PoliteJsonClient = exports.getCoverArtByISRC = exports.getRecordingCoverArt = exports.getBestCoverArtUrl = exports.getCoverArt = exports.getMusicBrainzRelease = exports.getMusicBrainzRecording = exports.lookupRecordingByISRC = exports.configureMusicBrainz = exports.defaultSession = exports.CoreSession = exports.createCoreSession = exports.Session = exports.createSession = exports.getArl = exports.LoginError = exports.loginWithEmail = void 0;
37
+ exports.DeezerError = exports.GeoBlocked = exports.toLrc = exports.normalizeContributors = exports.getRichAlbum = exports.addTrackTags = exports.getStream = exports.createDecryptStream = exports.downloadTrackBuffer = exports.streamTrackDownload = exports.resolveDownloadUrls = exports.getTrackDownloadUrl = exports.getLyrics = exports.getDiscography = exports.getArtistInfo = exports.getPlaylistTracks = exports.getPlaylistInfo = exports.getAlbumTracks = exports.getAlbumInfo = exports.getTrackInfo = exports.getUser = exports.DEEZER_FORMATS = exports.toFormat = exports.formatName = exports.downloadPreview = exports.getTrackPreview = exports.getAlbumByUPC = exports.getTrackByISRC = exports.refreshTrackTokens = exports.getShowEpisodes = exports.getEpisode = exports.getRadioGenres = exports.getRadioTracks = exports.getRadios = exports.getUserChartTracks = exports.getUserRadios = exports.getUserPlaylists = exports.getUserFavoriteArtists = void 0;
38
38
  // ─── Authentication ────────────────────────────────────────────────────────
39
39
  const email_login_1 = require("./lib/email-login");
40
40
  Object.defineProperty(exports, "loginWithEmail", { enumerable: true, get: function () { return email_login_1.loginWithEmail; } });
@@ -88,6 +88,8 @@ Object.defineProperty(exports, "getMusicBrainzRecording", { enumerable: true, ge
88
88
  Object.defineProperty(exports, "getMusicBrainzRelease", { enumerable: true, get: function () { return gerdur_core_2.getMusicBrainzRelease; } });
89
89
  Object.defineProperty(exports, "getCoverArt", { enumerable: true, get: function () { return gerdur_core_2.getCoverArt; } });
90
90
  Object.defineProperty(exports, "getBestCoverArtUrl", { enumerable: true, get: function () { return gerdur_core_2.getBestCoverArtUrl; } });
91
+ Object.defineProperty(exports, "getRecordingCoverArt", { enumerable: true, get: function () { return gerdur_core_2.getRecordingCoverArt; } });
92
+ Object.defineProperty(exports, "getCoverArtByISRC", { enumerable: true, get: function () { return gerdur_core_2.getCoverArtByISRC; } });
91
93
  Object.defineProperty(exports, "PoliteJsonClient", { enumerable: true, get: function () { return gerdur_core_2.PoliteJsonClient; } });
92
94
  // ─── Download primitives ─────────────────────────────────────────────────────
93
95
  var api_download_1 = require("./lib/api-download");
@@ -156,9 +156,7 @@ const downloadTrack = async ({ track, quality, info, coverSizes, path, totalTrac
156
156
  let enrichedCover;
157
157
  if (enrich && track.ISRC && !simulate) {
158
158
  try {
159
- const rec = await (0, gerdur_core_1.lookupRecordingByISRC)(track.ISRC);
160
- const rgid = rec?.releases.find((r) => r.releaseGroupMbid)?.releaseGroupMbid;
161
- const coverUrl = rgid ? await (0, gerdur_core_1.getBestCoverArtUrl)(rgid, { minSize: 1200 }) : null;
159
+ const coverUrl = await (0, gerdur_core_1.getCoverArtByISRC)(track.ISRC, { minSize: 1200 });
162
160
  if (coverUrl) {
163
161
  enrichedCover = await (0, gerdur_core_1.getBuffer)(coverUrl);
164
162
  (0, log_update_1.default)(signale_1.default.note(`Using a higher-res cover from the Cover Art Archive for ${track.SNG_TITLE}`));
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "gerdur",
3
- "version": "2.10.0",
3
+ "version": "2.11.0",
4
4
  "description": "The crucial streaming module for dabox systems.",
5
5
  "author": "Christian",
6
6
  "license": "SEE LICENSE IN LICENSE",
@@ -48,7 +48,7 @@
48
48
  "adm-zip": "^0.5.16",
49
49
  "chalk": "^4.1.2",
50
50
  "commander": "^9.5.0",
51
- "gerdur-core": "^2.12.0",
51
+ "gerdur-core": "^2.13.0",
52
52
  "dot-prop": "^6.0.1",
53
53
  "got": "^11.8.6",
54
54
  "gradient-string": "^2.0.2",