UNPKG

ddex-parser

Version:
161 lines (158 loc) 3.94 kB
/* tslint:disable */ /* eslint-disable */ /* auto-generated by NAPI-RS */ export interface JsRelease { releaseId: string title: string defaultTitle: string subtitle?: string displayArtist: string releaseType: string genre?: string subGenre?: string trackCount: number discCount?: number releaseDate?: string originalReleaseDate?: string labelName?: string tracks: Array<JsTrack> } export interface JsTrack { trackId: string title: string artist: string duration?: string position?: number discNumber?: number isrc?: string resourceReference?: string } export interface JsResource { resourceId: string resourceType: string title: string durationSeconds?: number durationString?: string fileFormat?: string bitrate?: number sampleRate?: number fileSize?: string } export interface JsDeal { dealId: string releases: Array<string> startDate?: string endDate?: string territories: Array<string> usageRights: Array<string> restrictions: Array<string> commercialModel: string } export interface ParseOptions { mode?: string autoThreshold?: number resolveReferences?: boolean includeRaw?: boolean maxMemory?: number timeoutMs?: number allowBlocking?: boolean chunkSize?: number fidelityLevel?: string preserveComments?: boolean preserveProcessingInstructions?: boolean preserveExtensions?: boolean preserveAttributeOrder?: boolean preserveNamespacePrefixes?: boolean canonicalization?: string collectStatistics?: boolean enableStreaming?: boolean streamingThreshold?: number validationLevel?: string extensionValidation?: boolean enableChecksums?: boolean memoryLimit?: number enableDetailedErrors?: boolean } export interface StreamOptions { chunkSize?: number maxMemory?: number } export interface ParsedMessage { messageId: string messageType: string messageDate: string senderName: string senderId: string recipientName: string recipientId: string version: string profile?: string releaseCount: number trackCount: number dealCount: number resourceCount: number totalDurationSeconds: number releases: Array<JsRelease> resources: any deals: Array<JsDeal> statistics?: ParseStatistics fidelityInfo?: FidelityInfo } export interface ParseStatistics { parseTimeMs: number memoryUsedBytes: number elementCount: number attributeCount: number commentCount: number extensionCount: number namespaceCount: number fileSizeBytes: number } export interface FidelityInfo { fidelityLevel: string canonicalizationAlgorithm: string commentsPreserved: boolean extensionsPreserved: boolean processingInstructionsPreserved: boolean attributeOrderPreserved: boolean namespacePrefixesPreserved: boolean } export interface SanityCheckResult { isValid: boolean version: string errors: Array<string> warnings: Array<string> } export interface DetailedError { errorType: string message: string field?: string value?: string context?: string suggestions: Array<string> } export interface StreamedRelease { releaseReference: string title: string releaseType?: string resourceCount: number } export interface ProgressInfo { bytesProcessed: number releasesParsed: number elapsedMs: number } export declare class DdexParser { constructor() detectVersion(xml: string): string parseSync(xml: string, options?: ParseOptions | undefined | null): ParsedMessage parse(xml: string, options?: ParseOptions | undefined | null): Promise<ParsedMessage> sanityCheck(xml: string): Promise<SanityCheckResult> stream(xml: string, options?: StreamOptions | undefined | null): ReleaseStream /** Get detailed error information for debugging - useful for error handling in JavaScript */ getDetailedError(xml: string): DetailedError } export declare class ReleaseStream { next(): Promise<StreamedRelease | null> progress(): Promise<ProgressInfo> }