nxkit
Version:
This is a collection of tools, independent of any other libraries
135 lines (134 loc) • 3.58 kB
TypeScript
/// <reference types="node" />
import { EventNoticer, Event } from '../event';
export declare enum Constants {
LENGTH_CODED_NULL = 251,
LENGTH_CODED_16BIT_WORD = 252,
LENGTH_CODED_24BIT_WORD = 253,
LENGTH_CODED_64BIT_WORD = 254,
PACKET_LENGTH = 0,
PACKET_NUMBER = 1,
GREETING_PROTOCOL_VERSION = 2,
GREETING_SERVER_VERSION = 3,
GREETING_THREAD_ID = 4,
GREETING_SCRAMBLE_BUFF_1 = 5,
GREETING_FILLER_1 = 6,
GREETING_SERVER_CAPABILITIES = 7,
GREETING_SERVER_LANGUAGE = 8,
GREETING_SERVER_STATUS = 9,
GREETING_FILLER_2 = 10,
GREETING_SCRAMBLE_BUFF_2 = 11,
FIELD_COUNT = 12,
ERROR_NUMBER = 13,
ERROR_SQL_STATE_MARKER = 14,
ERROR_SQL_STATE = 15,
ERROR_MESSAGE = 16,
AFFECTED_ROWS = 17,
INSERT_ID = 18,
SERVER_STATUS = 19,
WARNING_COUNT = 20,
MESSAGE = 21,
EXTRA_LENGTH = 22,
EXTRA_STRING = 23,
FIELD_CATALOG_LENGTH = 24,
FIELD_CATALOG_STRING = 25,
FIELD_DB_LENGTH = 26,
FIELD_DB_STRING = 27,
FIELD_TABLE_LENGTH = 28,
FIELD_TABLE_STRING = 29,
FIELD_ORIGINAL_TABLE_LENGTH = 30,
FIELD_ORIGINAL_TABLE_STRING = 31,
FIELD_NAME_LENGTH = 32,
FIELD_NAME_STRING = 33,
FIELD_ORIGINAL_NAME_LENGTH = 34,
FIELD_ORIGINAL_NAME_STRING = 35,
FIELD_FILLER_1 = 36,
FIELD_CHARSET_NR = 37,
FIELD_LENGTH = 38,
FIELD_TYPE = 39,
FIELD_FLAGS = 40,
FIELD_DECIMALS = 41,
FIELD_FILLER_2 = 42,
FIELD_DEFAULT = 43,
EOF_WARNING_COUNT = 44,
EOF_SERVER_STATUS = 45,
COLUMN_VALUE_LENGTH = 46,
COLUMN_VALUE_STRING = 47,
GREETING_PACKET = 0,
OK_PACKET = 1,
ERROR_PACKET = 2,
RESULT_SET_HEADER_PACKET = 3,
FIELD_PACKET = 4,
EOF_PACKET = 5,
ROW_DATA_PACKET = 6,
ROW_DATA_BINARY_PACKET = 7,
OK_FOR_PREPARED_STATEMENT_PACKET = 8,
PARAMETER_PACKET = 9,
USE_OLD_PASSWORD_PROTOCOL_PACKET = 10
}
/**
* @createTime 2012-01-12
* @author louis.tru <louis.tru@gmail.com>
* @copyright (C) 2011 louis.tru, http://mooogame.com
* Released under MIT license, http://license.mooogame.com
*/
export interface PacketData {
protocolVersion?: number;
serverVersion?: string;
threadId?: number;
scrambleBuffer?: Buffer;
serverCapabilities?: number;
serverLanguage?: number;
serverStatus?: number;
fieldCount?: number;
errno?: number;
sqlStateMarker?: string;
sqlState?: string;
errorMessage?: string;
affectedRows?: number;
insertId?: number;
warningCount?: number;
message?: string;
extra?: string;
catalog?: string;
db?: string;
table?: string;
originalTable?: string;
name?: string;
originalName?: string;
charsetNumber?: number;
fieldLength?: number;
fieldType?: number;
flags?: number;
decimals?: number;
columnLength?: number;
sql?: string;
}
export declare class Packet {
readonly onData: EventNoticer<Event<any, object>>;
readonly data: PacketData;
type: Constants;
number: number;
index: number;
length: number;
received: number;
toJSON(): PacketData | Error;
}
export declare class Parser {
private _lengthCodedLength?;
private _lengthCodedStringLength?;
private packet;
private greeted;
private authenticated;
private receivingFieldPackets;
private receivingRowPackets;
state: Constants;
/**
* @event onpacket
*/
readonly onPacket: EventNoticer<Event<Packet, object>>;
/**
* write buffer and parser
* @param {node.Buffer}
*/
write(buffer: Buffer): void;
}