@labelgrid/core
Advanced tools
+9
-0
@@ -11,2 +11,11 @@ # Changelog | ||
| ## [0.2.1] - 2026-08-05 | ||
| ### Changed | ||
| - The catalog entity descriptions carried by this package were tightened. The | ||
| `RELEASE_LOCKED_FIELDS` caveat now lives only on the tool it applies to | ||
| instead of being repeated for every entity. Field requirements, paths and | ||
| exported types are unchanged. | ||
| ## [0.2.0] - 2026-07-23 | ||
@@ -13,0 +22,0 @@ |
@@ -10,3 +10,5 @@ /** | ||
| * per-entity tool descriptions it replaces (recording_country on track create, | ||
| * RELEASE_LOCKED_FIELDS on release update, the delete refusals). | ||
| * the delete refusals). Caveats that belong to ONE tool stay in that tool's own | ||
| * description — the RELEASE_LOCKED_FIELDS rule lives on update_catalog_item, so | ||
| * repeating it here would only pad every client's catalog. | ||
| */ | ||
@@ -13,0 +15,0 @@ export type EntityName = 'label' | 'artist' | 'writer' | 'publisher' | 'release' | 'track'; |
+11
-9
@@ -10,3 +10,5 @@ /** | ||
| * per-entity tool descriptions it replaces (recording_country on track create, | ||
| * RELEASE_LOCKED_FIELDS on release update, the delete refusals). | ||
| * the delete refusals). Caveats that belong to ONE tool stay in that tool's own | ||
| * description — the RELEASE_LOCKED_FIELDS rule lives on update_catalog_item, so | ||
| * repeating it here would only pad every client's catalog. | ||
| */ | ||
@@ -18,3 +20,3 @@ /** The entity names as a tuple, for zod enum inputs. */ | ||
| path: '/labels', | ||
| filtersDoc: 'label: no documented filters — paginate with page/per_page.', | ||
| filtersDoc: 'label: no documented filters.', | ||
| fieldsDoc: 'label — required: name, default_email; optional: support email, website/platform URLs, default copyright lines, isrc_base.', | ||
@@ -25,3 +27,3 @@ deleteNote: 'label: refused while the label still has releases — remove or reassign its releases first.', | ||
| path: '/artists', | ||
| filtersDoc: 'artist: artist_name (filter by artist name).', | ||
| filtersDoc: 'artist: artist_name.', | ||
| fieldsDoc: 'artist — required: artist_name; optional: full_name, email, location, bios, isni, default_language, platform profile URLs.', | ||
@@ -32,3 +34,3 @@ deleteNote: 'artist: refused while still referenced by releases or tracks.', | ||
| path: '/writers', | ||
| filtersDoc: 'writer: name (writer name), ipi (IPI number).', | ||
| filtersDoc: 'writer: name, ipi.', | ||
| fieldsDoc: 'writer — required: first_name, last_name; optional: middle_name, display_credits, email, country, pro, ipi, isni, publisher_id (or publisher_name/publisher_pro/publisher_ipi).', | ||
@@ -39,3 +41,3 @@ deleteNote: 'writer: refused while still referenced by tracks.', | ||
| path: '/publishers', | ||
| filtersDoc: 'publisher: name (publisher name), ipi (IPI number).', | ||
| filtersDoc: 'publisher: name, ipi.', | ||
| fieldsDoc: 'publisher — required: name; optional: ipi, pro, isni, controlled_publisher.', | ||
@@ -46,4 +48,4 @@ deleteNote: 'publisher: refused while still referenced by writers.', | ||
| path: '/releases', | ||
| filtersDoc: 'release: label_id (owning label id), is_live (1 = live/distributed only), barcode_number (UPC/EAN), cat (catalog number).', | ||
| fieldsDoc: 'release — required on create: content_type, label_id, artists, titles, cat (catalog number), artwork_ai_usage, primary_genre_id; many optional fields (dates, copyright lines, genres, per-outlet URLs). Once submitted or distributed some fields are locked — changing one returns a 403 with code RELEASE_LOCKED_FIELDS naming exactly which fields cannot change.', | ||
| filtersDoc: 'release: label_id, is_live (1 = live only), barcode_number (UPC/EAN), cat.', | ||
| fieldsDoc: 'release — required on create: content_type, label_id, artists, titles, cat (catalog number), artwork_ai_usage, primary_genre_id; many optional fields (dates, copyright lines, genres, per-outlet URLs).', | ||
| deleteNote: 'release: only a never-submitted draft can be deleted.', | ||
@@ -53,6 +55,6 @@ }, | ||
| path: '/tracks', | ||
| filtersDoc: 'track: release_id (one release’s tracks), isrc (filter by ISRC).', | ||
| filtersDoc: 'track: release_id, isrc.', | ||
| fieldsDoc: 'track — required on create: release_id, disc, track_num, composition_type, artists, audio_ai_usage, composition_ai_usage, commercial_samples, audio_language, contributors, and recording_country (ISO 3166-1 alpha-2, e.g. "US"); optional: titles, isrc, iswc, writers, publishers, splits, and more.', | ||
| deleteNote: 'track: allowed while the parent release is an editable draft; refused once submitted or distributed.', | ||
| deleteNote: 'track: refused once the release is no longer an editable draft.', | ||
| }, | ||
| }; |
+3
-12
| { | ||
| "name": "@labelgrid/core", | ||
| "version": "0.2.0", | ||
| "version": "0.2.1", | ||
| "description": "Shared LabelGrid public-API client: HTTP transport, uploads, content types, the catalog-entity registry, and redacting logging", | ||
| "type": "module", | ||
| "keywords": [ | ||
| "labelgrid", | ||
| "music-distribution", | ||
| "api-client" | ||
| ], | ||
| "keywords": ["labelgrid", "music-distribution", "api-client"], | ||
| "main": "dist/index.js", | ||
@@ -19,8 +15,3 @@ "types": "dist/index.d.ts", | ||
| }, | ||
| "files": [ | ||
| "dist", | ||
| "README.md", | ||
| "CHANGELOG.md", | ||
| "LICENSE" | ||
| ], | ||
| "files": ["dist", "README.md", "CHANGELOG.md", "LICENSE"], | ||
| "scripts": { | ||
@@ -27,0 +18,0 @@ "build": "tsc", |
56778
0.32%1139
0.26%