Spaces:
Build error
Build error
import Tokenizer, { Callbacks, QuoteType } from "./Tokenizer.js"; | |
export interface ParserOptions { | |
/** | |
* Indicates whether special tags (`<script>`, `<style>`, and `<title>`) should get special treatment | |
* and if "empty" tags (eg. `<br>`) can have children. If `false`, the content of special tags | |
* will be text only. For feeds and other XML content (documents that don't consist of HTML), | |
* set this to `true`. | |
* | |
* @default false | |
*/ | |
xmlMode?: boolean; | |
/** | |
* Decode entities within the document. | |
* | |
* @default true | |
*/ | |
decodeEntities?: boolean; | |
/** | |
* If set to true, all tags will be lowercased. | |
* | |
* @default !xmlMode | |
*/ | |
lowerCaseTags?: boolean; | |
/** | |
* If set to `true`, all attribute names will be lowercased. This has noticeable impact on speed. | |
* | |
* @default !xmlMode | |
*/ | |
lowerCaseAttributeNames?: boolean; | |
/** | |
* If set to true, CDATA sections will be recognized as text even if the xmlMode option is not enabled. | |
* NOTE: If xmlMode is set to `true` then CDATA sections will always be recognized as text. | |
* | |
* @default xmlMode | |
*/ | |
recognizeCDATA?: boolean; | |
/** | |
* If set to `true`, self-closing tags will trigger the onclosetag event even if xmlMode is not set to `true`. | |
* NOTE: If xmlMode is set to `true` then self-closing tags will always be recognized. | |
* | |
* @default xmlMode | |
*/ | |
recognizeSelfClosing?: boolean; | |
/** | |
* Allows the default tokenizer to be overwritten. | |
*/ | |
Tokenizer?: typeof Tokenizer; | |
} | |
export interface Handler { | |
onparserinit(parser: Parser): void; | |
/** | |
* Resets the handler back to starting state | |
*/ | |
onreset(): void; | |
/** | |
* Signals the handler that parsing is done | |
*/ | |
onend(): void; | |
onerror(error: Error): void; | |
onclosetag(name: string, isImplied: boolean): void; | |
onopentagname(name: string): void; | |
/** | |
* | |
* @param name Name of the attribute | |
* @param value Value of the attribute. | |
* @param quote Quotes used around the attribute. `null` if the attribute has no quotes around the value, `undefined` if the attribute has no value. | |
*/ | |
onattribute(name: string, value: string, quote?: string | undefined | null): void; | |
onopentag(name: string, attribs: { | |
[s: string]: string; | |
}, isImplied: boolean): void; | |
ontext(data: string): void; | |
oncomment(data: string): void; | |
oncdatastart(): void; | |
oncdataend(): void; | |
oncommentend(): void; | |
onprocessinginstruction(name: string, data: string): void; | |
} | |
export declare class Parser implements Callbacks { | |
private readonly options; | |
/** The start index of the last event. */ | |
startIndex: number; | |
/** The end index of the last event. */ | |
endIndex: number; | |
/** | |
* Store the start index of the current open tag, | |
* so we can update the start index for attributes. | |
*/ | |
private openTagStart; | |
private tagname; | |
private attribname; | |
private attribvalue; | |
private attribs; | |
private readonly stack; | |
private readonly foreignContext; | |
private readonly cbs; | |
private readonly lowerCaseTagNames; | |
private readonly lowerCaseAttributeNames; | |
private readonly tokenizer; | |
private readonly buffers; | |
private bufferOffset; | |
/** The index of the last written buffer. Used when resuming after a `pause()`. */ | |
private writeIndex; | |
/** Indicates whether the parser has finished running / `.end` has been called. */ | |
private ended; | |
constructor(cbs?: Partial<Handler> | null, options?: ParserOptions); | |
/** @internal */ | |
ontext(start: number, endIndex: number): void; | |
/** @internal */ | |
ontextentity(cp: number): void; | |
protected isVoidElement(name: string): boolean; | |
/** @internal */ | |
onopentagname(start: number, endIndex: number): void; | |
private emitOpenTag; | |
private endOpenTag; | |
/** @internal */ | |
onopentagend(endIndex: number): void; | |
/** @internal */ | |
onclosetag(start: number, endIndex: number): void; | |
/** @internal */ | |
onselfclosingtag(endIndex: number): void; | |
private closeCurrentTag; | |
/** @internal */ | |
onattribname(start: number, endIndex: number): void; | |
/** @internal */ | |
onattribdata(start: number, endIndex: number): void; | |
/** @internal */ | |
onattribentity(cp: number): void; | |
/** @internal */ | |
onattribend(quote: QuoteType, endIndex: number): void; | |
private getInstructionName; | |
/** @internal */ | |
ondeclaration(start: number, endIndex: number): void; | |
/** @internal */ | |
onprocessinginstruction(start: number, endIndex: number): void; | |
/** @internal */ | |
oncomment(start: number, endIndex: number, offset: number): void; | |
/** @internal */ | |
oncdata(start: number, endIndex: number, offset: number): void; | |
/** @internal */ | |
onend(): void; | |
/** | |
* Resets the parser to a blank state, ready to parse a new HTML document | |
*/ | |
reset(): void; | |
/** | |
* Resets the parser, then parses a complete document and | |
* pushes it to the handler. | |
* | |
* @param data Document to parse. | |
*/ | |
parseComplete(data: string): void; | |
private getSlice; | |
private shiftBuffer; | |
/** | |
* Parses a chunk of data and calls the corresponding callbacks. | |
* | |
* @param chunk Chunk to parse. | |
*/ | |
write(chunk: string): void; | |
/** | |
* Parses the end of the buffer and clears the stack, calls onend. | |
* | |
* @param chunk Optional final chunk to parse. | |
*/ | |
end(chunk?: string): void; | |
/** | |
* Pauses parsing. The parser won't emit events until `resume` is called. | |
*/ | |
pause(): void; | |
/** | |
* Resumes parsing after `pause` was called. | |
*/ | |
resume(): void; | |
/** | |
* Alias of `write`, for backwards compatibility. | |
* | |
* @param chunk Chunk to parse. | |
* @deprecated | |
*/ | |
parseChunk(chunk: string): void; | |
/** | |
* Alias of `end`, for backwards compatibility. | |
* | |
* @param chunk Optional final chunk to parse. | |
* @deprecated | |
*/ | |
done(chunk?: string): void; | |
} | |
//# sourceMappingURL=Parser.d.ts.map |