60 lines
1.4 KiB
TypeScript
60 lines
1.4 KiB
TypeScript
interface DisallowedToken {
|
|
type: 'disallowed';
|
|
cp: number;
|
|
}
|
|
interface IgnoredToken {
|
|
type: 'ignored';
|
|
cp: number;
|
|
}
|
|
interface ValidToken {
|
|
type: 'valid';
|
|
cps: number[];
|
|
}
|
|
interface MappedToken {
|
|
type: 'mapped';
|
|
cp: number;
|
|
cps: number[];
|
|
}
|
|
type TextToken = DisallowedToken | IgnoredToken | ValidToken | MappedToken;
|
|
interface EmojiToken {
|
|
type: 'emoji';
|
|
input: number[];
|
|
emoji: number[];
|
|
cps: number[];
|
|
}
|
|
interface NFCToken {
|
|
type: 'nfc';
|
|
input: number[];
|
|
cps: number[];
|
|
tokens: TextToken[];
|
|
}
|
|
interface StopToken {
|
|
type: 'stop';
|
|
}
|
|
type Token = TextToken | EmojiToken | NFCToken | StopToken;
|
|
|
|
interface Label {
|
|
input: number[];
|
|
offset: number;
|
|
error?: Error;
|
|
tokens?: number[][];
|
|
output?: number[];
|
|
emoji?: boolean;
|
|
type?: string;
|
|
}
|
|
|
|
export function ens_normalize(name: string): string;
|
|
export function ens_normalize_fragment(frag: string, decompose?: boolean): string;
|
|
export function ens_beautify(name: string): string;
|
|
export function ens_tokenize(name: string, options?: {nf?: boolean}): Token[];
|
|
export function ens_split(name: string, preserve_emoji?: boolean): Label[];
|
|
|
|
export function ens_emoji(): number[][];
|
|
|
|
export function should_escape(cp: number): boolean;
|
|
export function is_combining_mark(cp: number): boolean;
|
|
export function safe_str_from_cps(cps: number[]): string;
|
|
|
|
export function nfd(cps: number[]): number[];
|
|
export function nfc(cps: number[]): number[];
|