93 lines
2.9 KiB
TypeScript
93 lines
2.9 KiB
TypeScript
import { type ID3v2MajorVersion, type ITextEncoding } from './ID3v2Token.js';
|
|
import type { IWarningCollector } from '../common/MetadataCollector.js';
|
|
import { type IChapterInfo } from './ID3v2ChapterToken.js';
|
|
interface ICustomTag {
|
|
owner_identifier: string;
|
|
}
|
|
export interface ICustomDataTag extends ICustomTag {
|
|
data: Uint8Array;
|
|
}
|
|
export interface IIdentifierTag extends ICustomTag {
|
|
identifier: Uint8Array;
|
|
}
|
|
export interface ITextTag {
|
|
description: string;
|
|
text: string[];
|
|
}
|
|
export interface IPopularimeter {
|
|
email: string;
|
|
rating: number;
|
|
counter: number;
|
|
}
|
|
export interface IGeneralEncapsulatedObject {
|
|
type: string;
|
|
filename: string;
|
|
description: string;
|
|
data: Uint8Array;
|
|
}
|
|
export type Chapter = {
|
|
label: string;
|
|
info: IChapterInfo;
|
|
frames: Map<string, unknown>;
|
|
};
|
|
export type TableOfContents = {
|
|
label: string;
|
|
flags: {
|
|
/** If set, this is the top-level table of contents */
|
|
topLevel: boolean;
|
|
/** If set, the child element IDs are in a defined order */
|
|
ordered: boolean;
|
|
};
|
|
childElementIds: string[];
|
|
frames: Map<string, unknown>;
|
|
};
|
|
export declare function parseGenre(origVal: string): string[];
|
|
export declare class FrameParser {
|
|
private major;
|
|
private warningCollector;
|
|
/**
|
|
* Create id3v2 frame parser
|
|
* @param major - Major version, e.g. (4) for id3v2.4
|
|
* @param warningCollector - Used to collect decode issue
|
|
*/
|
|
constructor(major: ID3v2MajorVersion, warningCollector: IWarningCollector);
|
|
readData(uint8Array: Uint8Array, type: string, includeCovers: boolean): unknown;
|
|
protected static readNullTerminatedString(uint8Array: Uint8Array, encoding: ITextEncoding): {
|
|
text: string;
|
|
len: number;
|
|
};
|
|
protected static fixPictureMimeType(pictureType: string): string;
|
|
/**
|
|
* Converts TMCL (Musician credits list) or TIPL (Involved people list)
|
|
* @param entries
|
|
*/
|
|
private static functionList;
|
|
/**
|
|
* id3v2.4 defines that multiple T* values are separated by 0x00
|
|
* id3v2.3 defines that TCOM, TEXT, TOLY, TOPE & TPE1 values are separated by /
|
|
* @param tag - Tag name
|
|
* @param text - Concatenated tag value
|
|
* @returns Split tag value
|
|
*/
|
|
private splitValue;
|
|
private static trimArray;
|
|
private static trimNullPadding;
|
|
private static readIdentifierAndData;
|
|
private static getNullTerminatorLength;
|
|
}
|
|
declare const Id3v2ContentError_base: {
|
|
new (message: string): {
|
|
readonly fileType: string;
|
|
toString(): string;
|
|
name: "UnexpectedFileContentError";
|
|
message: string;
|
|
stack?: string;
|
|
};
|
|
captureStackTrace(targetObject: object, constructorOpt?: Function): void;
|
|
prepareStackTrace(err: Error, stackTraces: NodeJS.CallSite[]): any;
|
|
stackTraceLimit: number;
|
|
};
|
|
export declare class Id3v2ContentError extends Id3v2ContentError_base {
|
|
}
|
|
export {};
|