summaryrefslogtreecommitdiff
path: root/includes/external/addressbook/node_modules/htmlparser2/lib/esm/Tokenizer.d.ts
diff options
context:
space:
mode:
Diffstat (limited to 'includes/external/addressbook/node_modules/htmlparser2/lib/esm/Tokenizer.d.ts')
-rw-r--r--includes/external/addressbook/node_modules/htmlparser2/lib/esm/Tokenizer.d.ts143
1 files changed, 143 insertions, 0 deletions
diff --git a/includes/external/addressbook/node_modules/htmlparser2/lib/esm/Tokenizer.d.ts b/includes/external/addressbook/node_modules/htmlparser2/lib/esm/Tokenizer.d.ts
new file mode 100644
index 0000000..213adf2
--- /dev/null
+++ b/includes/external/addressbook/node_modules/htmlparser2/lib/esm/Tokenizer.d.ts
@@ -0,0 +1,143 @@
+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 \ No newline at end of file