Spaces:
Build error
Build error
export declare enum QuoteType { | |
NoValue = 0, | |
Unquoted = 1, | |
Single = 2, | |
Double = 3 | |
} | |
export interface Callbacks { | |
onattribdata(start: number, endIndex: number): void; | |
onattribentity(codepoint: number): void; | |
onattribend(quote: QuoteType, endIndex: number): void; | |
onattribname(start: number, endIndex: number): void; | |
oncdata(start: number, endIndex: number, endOffset: number): void; | |
onclosetag(start: number, endIndex: number): void; | |
oncomment(start: number, endIndex: number, endOffset: number): void; | |
ondeclaration(start: number, endIndex: number): void; | |
onend(): void; | |
onopentagend(endIndex: number): void; | |
onopentagname(start: number, endIndex: number): void; | |
onprocessinginstruction(start: number, endIndex: number): void; | |
onselfclosingtag(endIndex: number): void; | |
ontext(start: number, endIndex: number): void; | |
ontextentity(codepoint: number): void; | |
} | |
export default class Tokenizer { | |
private readonly cbs; | |
/** The current state the tokenizer is in. */ | |
private state; | |
/** The read buffer. */ | |
private buffer; | |
/** The beginning of the section that is currently being read. */ | |
private sectionStart; | |
/** The index within the buffer that we are currently looking at. */ | |
private index; | |
/** Some behavior, eg. when decoding entities, is done while we are in another state. This keeps track of the other state type. */ | |
private baseState; | |
/** For special parsing behavior inside of script and style tags. */ | |
private isSpecial; | |
/** Indicates whether the tokenizer has been paused. */ | |
running: boolean; | |
/** The offset of the current buffer. */ | |
private offset; | |
private readonly xmlMode; | |
private readonly decodeEntities; | |
private readonly entityTrie; | |
constructor({ xmlMode, decodeEntities, }: { | |
xmlMode?: boolean; | |
decodeEntities?: boolean; | |
}, cbs: Callbacks); | |
reset(): void; | |
write(chunk: string): void; | |
end(): void; | |
pause(): void; | |
resume(): void; | |
/** | |
* The current index within all of the written data. | |
*/ | |
getIndex(): number; | |
/** | |
* The start of the current section. | |
*/ | |
getSectionStart(): number; | |
private stateText; | |
private currentSequence; | |
private sequenceIndex; | |
private stateSpecialStartSequence; | |
/** Look for an end tag. For <title> tags, also decode entities. */ | |
private stateInSpecialTag; | |
private stateCDATASequence; | |
/** | |
* When we wait for one specific character, we can speed things up | |
* by skipping through the buffer until we find it. | |
* | |
* @returns Whether the character was found. | |
*/ | |
private fastForwardTo; | |
/** | |
* Comments and CDATA end with `-->` and `]]>`. | |
* | |
* Their common qualities are: | |
* - Their end sequences have a distinct character they start with. | |
* - That character is then repeated, so we have to check multiple repeats. | |
* - All characters but the start character of the sequence can be skipped. | |
*/ | |
private stateInCommentLike; | |
/** | |
* HTML only allows ASCII alpha characters (a-z and A-Z) at the beginning of a tag name. | |
* | |
* XML allows a lot more characters here (@see https://www.w3.org/TR/REC-xml/#NT-NameStartChar). | |
* We allow anything that wouldn't end the tag. | |
*/ | |
private isTagStartChar; | |
private startSpecial; | |
private stateBeforeTagName; | |
private stateInTagName; | |
private stateBeforeClosingTagName; | |
private stateInClosingTagName; | |
private stateAfterClosingTagName; | |
private stateBeforeAttributeName; | |
private stateInSelfClosingTag; | |
private stateInAttributeName; | |
private stateAfterAttributeName; | |
private stateBeforeAttributeValue; | |
private handleInAttributeValue; | |
private stateInAttributeValueDoubleQuotes; | |
private stateInAttributeValueSingleQuotes; | |
private stateInAttributeValueNoQuotes; | |
private stateBeforeDeclaration; | |
private stateInDeclaration; | |
private stateInProcessingInstruction; | |
private stateBeforeComment; | |
private stateInSpecialComment; | |
private stateBeforeSpecialS; | |
private trieIndex; | |
private trieCurrent; | |
/** For named entities, the index of the value. For numeric entities, the code point. */ | |
private entityResult; | |
private entityExcess; | |
private stateBeforeEntity; | |
private stateInNamedEntity; | |
private emitNamedEntity; | |
private stateBeforeNumericEntity; | |
private emitNumericEntity; | |
private stateInNumericEntity; | |
private stateInHexEntity; | |
private allowLegacyEntity; | |
/** | |
* Remove data that has already been consumed from the buffer. | |
*/ | |
private cleanup; | |
private shouldContinue; | |
/** | |
* Iterates through the buffer, calling the function corresponding to the current state. | |
* | |
* States that are more likely to be hit are higher up, as a performance improvement. | |
*/ | |
private parse; | |
private finish; | |
/** Handle any trailing data. */ | |
private handleTrailingData; | |
private emitPartial; | |
private emitCodePoint; | |
} | |
//# sourceMappingURL=Tokenizer.d.ts.map |