Spaces:
Paused
Paused
| import type { TAG_ID } from './html.js'; | |
| export declare enum TokenType { | |
| CHARACTER = 0, | |
| NULL_CHARACTER = 1, | |
| WHITESPACE_CHARACTER = 2, | |
| START_TAG = 3, | |
| END_TAG = 4, | |
| COMMENT = 5, | |
| DOCTYPE = 6, | |
| EOF = 7, | |
| HIBERNATION = 8 | |
| } | |
| export interface Location { | |
| /** One-based line index of the first character. */ | |
| startLine: number; | |
| /** One-based column index of the first character. */ | |
| startCol: number; | |
| /** Zero-based first character index. */ | |
| startOffset: number; | |
| /** One-based line index of the last character. */ | |
| endLine: number; | |
| /** One-based column index of the last character. Points directly *after* the last character. */ | |
| endCol: number; | |
| /** Zero-based last character index. Points directly *after* the last character. */ | |
| endOffset: number; | |
| } | |
| export interface LocationWithAttributes extends Location { | |
| /** Start tag attributes' location info. */ | |
| attrs?: Record<string, Location>; | |
| } | |
| export interface ElementLocation extends LocationWithAttributes { | |
| /** Element's start tag location info. */ | |
| startTag?: Location; | |
| /** | |
| * Element's end tag location info. | |
| * This property is undefined, if the element has no closing tag. | |
| */ | |
| endTag?: Location; | |
| } | |
| interface TokenBase { | |
| readonly type: TokenType; | |
| location: Location | null; | |
| } | |
| export interface DoctypeToken extends TokenBase { | |
| readonly type: TokenType.DOCTYPE; | |
| name: string | null; | |
| forceQuirks: boolean; | |
| publicId: string | null; | |
| systemId: string | null; | |
| } | |
| export interface Attribute { | |
| /** The name of the attribute. */ | |
| name: string; | |
| /** The namespace of the attribute. */ | |
| namespace?: string; | |
| /** The namespace-related prefix of the attribute. */ | |
| prefix?: string; | |
| /** The value of the attribute. */ | |
| value: string; | |
| } | |
| export interface TagToken extends TokenBase { | |
| readonly type: TokenType.START_TAG | TokenType.END_TAG; | |
| tagName: string; | |
| /** Used to cache the ID of the tag name. */ | |
| tagID: TAG_ID; | |
| selfClosing: boolean; | |
| ackSelfClosing: boolean; | |
| attrs: Attribute[]; | |
| location: LocationWithAttributes | null; | |
| } | |
| export declare function getTokenAttr(token: TagToken, attrName: string): string | null; | |
| export interface CommentToken extends TokenBase { | |
| readonly type: TokenType.COMMENT; | |
| data: string; | |
| } | |
| export interface EOFToken extends TokenBase { | |
| readonly type: TokenType.EOF; | |
| } | |
| export interface CharacterToken extends TokenBase { | |
| type: TokenType.CHARACTER | TokenType.NULL_CHARACTER | TokenType.WHITESPACE_CHARACTER; | |
| chars: string; | |
| } | |
| export type Token = DoctypeToken | TagToken | CommentToken | EOFToken | CharacterToken; | |
| export {}; | |