Typsystem
Das SDK exportiert eine vollstaendig typisierte API-Oberflaeche aus src/index.ts, inklusive:
- Manager-Request/Response-Vertraege
- Client-Runtime-Event- und Request-Typen
- OAuth-Request- und Token-Typen
- normalisierte und rohe User-Modelle
Oeffentliche Type-Exports
API-Vertraege
ts
export type * from "./types/api";Das enthaelt alle Exporte aus:
src/types/api/common.tssrc/types/api/enums.tssrc/types/api/shared.tssrc/types/api/user.tssrc/types/api/releases.tssrc/types/api/tracks.tssrc/types/api/preferences.tssrc/types/api/lookup.tssrc/types/api/deprecated.ts
Client-Typen
Aus src/types/client.ts:
TooLostClientOptionsRequestEventResponseEventErrorEventTokenRefreshEventHTTPMethodQueryPrimitiveQueryValueRequestOptions
OAuth-Typen
Aus src/types/oauth.ts:
ScopeAuthorizationURLOptionsExchangeCodeOptionsPKCEPairTokenResponseTokenRequestOptions
Normalisiertes User-Modell
ts
export type { User } from "./structures/User";User ist die camelCase-Projektion von UserResource.
API-Typen nach Modul
common.ts
Kern-Envelope- und Utility-Typen:
APIResponse<T>MessageResponseMessageDataResponse<T>UnauthenticatedResponseValidationErrorResponseValidationResultDataEntityIdJSONValue,JSONObject,JSONArrayPaginationOptions
enums.ts
Domain-Unions:
ReleaseStatusReleaseTypeTrackFileKindArtistPlatformArtistViaUrlPlatformUserType
shared.ts
Wiederverwendbare verschachtelte Strukturen fuer Release- und Preference-Payloads:
- Contributor- und Collaborator-Inputs
- File-Referenzen und Review-Assets
- Track-Lyrics
- Social-/Platform-Links
- Artist-Delivery-Konfiguration
- Preference-Metadaten
- Territory-/Collaborator-Inputs
Beispiel-Exporte:
ContributorInput,ContributorResourceFileReference,ReleaseReviewAttachmentTrackLyricsSocialLinks,PlatformLinks,AdditionalLinksAudiomackConfig,ArtistPreferenceDeliveryPreferenceMetadataTerritoryInput,CollaboratorInput
user.ts
UserResource(rohes API-Format)
releases.ts
Release- und release-track-bezogene Vertraege:
ReleaseResourceTrackResourceListReleasesQuery,ListReleasesResponseCreateReleaseRequestUpdateReleaseMetadataRequestUpdateReleaseDeliveryRequestUpdateReleaseVideoRequestSubmitReleaseRequest,SubmitReleaseResponseValidateUpcRequest
tracks.ts
Track-spezifische Write- und Validation-Vertraege:
ValidateIsrcRequestCreateTrackUploadUrlRequestTrackUploadUrlDataReplaceSingleTrackFileRequestReplaceReleaseTracksTrackInputReplaceReleaseTracksRequest
preferences.ts
Preference- und Plattform-Discovery-Vertraege:
ArtistPreferenceResource,ArtistPreferencesDataPreferenceArtistItemLabelPreferenceResource,LabelArtistResourceLabelPreferencesQuery,LabelPreferencesDataArtistPlatformResultSearchArtistPlatformRequest,SearchArtistPlatformResponseDataGetArtistViaUrlRequestSubmitArtistPreferenceRequestSubmitLabelPreferenceRequestRemoveLabelArtistRequest
lookup.ts
Lookup-Resultmodelle:
CountryResourceLanguageResourceLookupPlatformsData
Deprecated Aliases
Fuer Kompatibilitaet werden Legacy-Aliase aus deprecated.ts exportiert:
ReleasePayload->ReleaseResourceTrackPayload->TrackResourcePreferencePayload->ArtistPreferenceResource | LabelPreferenceResourcePlatformSearchResult->ArtistPlatformResult
Design-Hinweise
- Request-Methoden sind je Manager-Operation streng typisiert.
- Durch Envelope-Unwrapping (
requestData) liefern viele Manager direkt konkrete Payload-Typen stattAPIResponse<T>. - Query-Optionen akzeptieren Primitive, Arrays,
nullundundefinedviaQueryValue. - API-Payloads bleiben nah am Server-Shape, waehrend normalisierte Strukturen dort angeboten werden, wo sie DX verbessern (
User).