quic
Version:
A QUIC server/client implementation in Node.js.
484 lines (483 loc) • 11.4 kB
TypeScript
import { BufferVisitor } from './common';
/** QUICError representing a QUIC Error. */
export declare class QUICError extends Error {
static fromError(err?: any): QUICError;
static fromBuffer(bufv: BufferVisitor): QUICError;
static checkAny(err?: any): QUICError | QUICStreamError | null;
name: string;
code: number;
constructor(nameOrCode: string | number);
readonly isNoError: boolean;
valueOf(): {
name: string;
code: number;
message: string;
};
byteLen(): number;
writeTo(bufv: BufferVisitor): BufferVisitor;
}
/** QUICError representing a QUIC Stream Error. */
export declare class QUICStreamError extends Error {
static fromError(err?: any): QUICStreamError;
static fromBuffer(bufv: BufferVisitor): QUICStreamError;
static checkAny(err?: any): QUICError | QUICStreamError | null;
name: string;
code: number;
constructor(nameOrCode: string | number);
readonly isNoError: boolean;
valueOf(): {
name: string;
code: number;
message: string;
};
byteLen(): number;
writeTo(bufv: BufferVisitor): BufferVisitor;
}
export declare const QuicError: typeof QUICError & object & {
QUIC_NO_ERROR: {
code: number;
message: string;
};
QUIC_INTERNAL_ERROR: {
code: number;
message: string;
};
QUIC_STREAM_DATA_AFTER_TERMINATION: {
code: number;
message: string;
};
QUIC_INVALID_PACKET_HEADER: {
code: number;
message: string;
};
QUIC_INVALID_FRAME_DATA: {
code: number;
message: string;
};
QUIC_MISSING_PAYLOAD: {
code: number;
message: string;
};
QUIC_INVALID_FEC_DATA: {
code: number;
message: string;
};
QUIC_INVALID_STREAM_DATA: {
code: number;
message: string;
};
QUIC_OVERLAPPING_STREAM_DATA: {
code: number;
message: string;
};
QUIC_UNENCRYPTED_STREAM_DATA: {
code: number;
message: string;
};
QUIC_ATTEMPT_TO_SEND_UNENCRYPTED_STREAM_DATA: {
code: number;
message: string;
};
QUIC_MAYBE_CORRUPTED_MEMORY: {
code: number;
message: string;
};
QUIC_UNENCRYPTED_FEC_DATA: {
code: number;
message: string;
};
QUIC_INVALID_RST_STREAM_DATA: {
code: number;
message: string;
};
QUIC_INVALID_CONNECTION_CLOSE_DATA: {
code: number;
message: string;
};
QUIC_INVALID_GOAWAY_DATA: {
code: number;
message: string;
};
QUIC_INVALID_WINDOW_UPDATE_DATA: {
code: number;
message: string;
};
QUIC_INVALID_BLOCKED_DATA: {
code: number;
message: string;
};
QUIC_INVALID_STOP_WAITING_DATA: {
code: number;
message: string;
};
QUIC_INVALID_PATH_CLOSE_DATA: {
code: number;
message: string;
};
QUIC_INVALID_ACK_DATA: {
code: number;
message: string;
};
QUIC_INVALID_VERSION_NEGOTIATION_PACKET: {
code: number;
message: string;
};
QUIC_INVALID_PUBLIC_RST_PACKET: {
code: number;
message: string;
};
QUIC_DECRYPTION_FAILURE: {
code: number;
message: string;
};
QUIC_ENCRYPTION_FAILURE: {
code: number;
message: string;
};
QUIC_PACKET_TOO_LARGE: {
code: number;
message: string;
};
QUIC_PEER_GOING_AWAY: {
code: number;
message: string;
};
QUIC_INVALID_STREAM_ID: {
code: number;
message: string;
};
QUIC_INVALID_PRIORITY: {
code: number;
message: string;
};
QUIC_TOO_MANY_OPEN_STREAMS: {
code: number;
message: string;
};
QUIC_TOO_MANY_AVAILABLE_STREAMS: {
code: number;
message: string;
};
QUIC_PUBLIC_RESET: {
code: number;
message: string;
};
QUIC_INVALID_VERSION: {
code: number;
message: string;
};
QUIC_INVALID_HEADER_ID: {
code: number;
message: string;
};
QUIC_INVALID_NEGOTIATED_VALUE: {
code: number;
message: string;
};
QUIC_DECOMPRESSION_FAILURE: {
code: number;
message: string;
};
QUIC_NETWORK_IDLE_TIMEOUT: {
code: number;
message: string;
};
QUIC_HANDSHAKE_TIMEOUT: {
code: number;
message: string;
};
QUIC_ERROR_MIGRATING_ADDRESS: {
code: number;
message: string;
};
QUIC_ERROR_MIGRATING_PORT: {
code: number;
message: string;
};
QUIC_PACKET_WRITE_ERROR: {
code: number;
message: string;
};
QUIC_PACKET_READ_ERROR: {
code: number;
message: string;
};
QUIC_EMPTY_STREAM_FRAME_NO_FIN: {
code: number;
message: string;
};
QUIC_INVALID_HEADERS_STREAM_DATA: {
code: number;
message: string;
};
QUIC_HEADERS_STREAM_DATA_DECOMPRESS_FAILURE: {
code: number;
message: string;
};
QUIC_FLOW_CONTROL_RECEIVED_TOO_MUCH_DATA: {
code: number;
message: string;
};
QUIC_FLOW_CONTROL_SENT_TOO_MUCH_DATA: {
code: number;
message: string;
};
QUIC_FLOW_CONTROL_INVALID_WINDOW: {
code: number;
message: string;
};
QUIC_CONNECTION_IP_POOLED: {
code: number;
message: string;
};
QUIC_TOO_MANY_OUTSTANDING_SENT_PACKETS: {
code: number;
message: string;
};
QUIC_TOO_MANY_OUTSTANDING_RECEIVED_PACKETS: {
code: number;
message: string;
};
QUIC_CONNECTION_CANCELLED: {
code: number;
message: string;
};
QUIC_BAD_PACKET_LOSS_RATE: {
code: number;
message: string;
};
QUIC_PUBLIC_RESETS_POST_HANDSHAKE: {
code: number;
message: string;
};
QUIC_FAILED_TO_SERIALIZE_PACKET: {
code: number;
message: string;
};
QUIC_TOO_MANY_RTOS: {
code: number;
message: string;
};
QUIC_HANDSHAKE_FAILED: {
code: number;
message: string;
};
QUIC_CRYPTO_TAGS_OUT_OF_ORDER: {
code: number;
message: string;
};
QUIC_CRYPTO_TOO_MANY_ENTRIES: {
code: number;
message: string;
};
QUIC_CRYPTO_INVALID_VALUE_LENGTH: {
code: number;
message: string;
};
QUIC_CRYPTO_MESSAGE_AFTER_HANDSHAKE_COMPLETE: {
code: number;
message: string;
};
QUIC_INVALID_CRYPTO_MESSAGE_TYPE: {
code: number;
message: string;
};
QUIC_INVALID_CRYPTO_MESSAGE_PARAMETER: {
code: number;
message: string;
};
QUIC_INVALID_CHANNEL_ID_SIGNATURE: {
code: number;
message: string;
};
QUIC_CRYPTO_MESSAGE_PARAMETER_NOT_FOUND: {
code: number;
message: string;
};
QUIC_CRYPTO_MESSAGE_PARAMETER_NO_OVERLAP: {
code: number;
message: string;
};
QUIC_CRYPTO_MESSAGE_INDEX_NOT_FOUND: {
code: number;
message: string;
};
QUIC_UNSUPPORTED_PROOF_DEMAND: {
code: number;
message: string;
};
QUIC_CRYPTO_INTERNAL_ERROR: {
code: number;
message: string;
};
QUIC_CRYPTO_VERSION_NOT_SUPPORTED: {
code: number;
message: string;
};
QUIC_CRYPTO_HANDSHAKE_STATELESS_REJECT: {
code: number;
message: string;
};
QUIC_CRYPTO_NO_SUPPORT: {
code: number;
message: string;
};
QUIC_CRYPTO_TOO_MANY_REJECTS: {
code: number;
message: string;
};
QUIC_PROOF_INVALID: {
code: number;
message: string;
};
QUIC_CRYPTO_DUPLICATE_TAG: {
code: number;
message: string;
};
QUIC_CRYPTO_ENCRYPTION_LEVEL_INCORRECT: {
code: number;
message: string;
};
QUIC_CRYPTO_SERVER_CONFIG_EXPIRED: {
code: number;
message: string;
};
QUIC_CRYPTO_SYMMETRIC_KEY_SETUP_FAILED: {
code: number;
message: string;
};
QUIC_CRYPTO_MESSAGE_WHILE_VALIDATING_CLIENT_HELLO: {
code: number;
message: string;
};
QUIC_CRYPTO_UPDATE_BEFORE_HANDSHAKE_COMPLETE: {
code: number;
message: string;
};
QUIC_CRYPTO_CHLO_TOO_LARGE: {
code: number;
message: string;
};
QUIC_VERSION_NEGOTIATION_MISMATCH: {
code: number;
message: string;
};
QUIC_BAD_MULTIPATH_FLAG: {
code: number;
message: string;
};
QUIC_MULTIPATH_PATH_DOES_NOT_EXIST: {
code: number;
message: string;
};
QUIC_MULTIPATH_PATH_NOT_ACTIVE: {
code: number;
message: string;
};
QUIC_IP_ADDRESS_CHANGED: {
code: number;
message: string;
};
QUIC_CONNECTION_MIGRATION_NO_MIGRATABLE_STREAMS: {
code: number;
message: string;
};
QUIC_CONNECTION_MIGRATION_TOO_MANY_CHANGES: {
code: number;
message: string;
};
QUIC_CONNECTION_MIGRATION_NO_NEW_NETWORK: {
code: number;
message: string;
};
QUIC_CONNECTION_MIGRATION_NON_MIGRATABLE_STREAM: {
code: number;
message: string;
};
QUIC_TOO_MANY_FRAME_GAPS: {
code: number;
message: string;
};
QUIC_STREAM_SEQUENCER_INVALID_STATE: {
code: number;
message: string;
};
QUIC_TOO_MANY_SESSIONS_ON_SERVER: {
code: number;
message: string;
};
QUIC_LAST_ERROR: {
code: number;
message: string;
};
};
export declare const StreamError: typeof QUICStreamError & object & {
QUIC_STREAM_NO_ERROR: {
code: number;
message: string;
};
QUIC_ERROR_PROCESSING_STREAM: {
code: number;
message: string;
};
QUIC_MULTIPLE_TERMINATION_OFFSETS: {
code: number;
message: string;
};
QUIC_BAD_APPLICATION_PAYLOAD: {
code: number;
message: string;
};
QUIC_STREAM_CONNECTION_ERROR: {
code: number;
message: string;
};
QUIC_STREAM_PEER_GOING_AWAY: {
code: number;
message: string;
};
QUIC_STREAM_CANCELLED: {
code: number;
message: string;
};
QUIC_RST_ACKNOWLEDGEMENT: {
code: number;
message: string;
};
QUIC_REFUSED_STREAM: {
code: number;
message: string;
};
QUIC_INVALID_PROMISE_URL: {
code: number;
message: string;
};
QUIC_UNAUTHORIZED_PROMISE_URL: {
code: number;
message: string;
};
QUIC_DUPLICATE_PROMISE_URL: {
code: number;
message: string;
};
QUIC_PROMISE_VARY_MISMATCH: {
code: number;
message: string;
};
QUIC_INVALID_PROMISE_METHOD: {
code: number;
message: string;
};
QUIC_PUSH_STREAM_TIMED_OUT: {
code: number;
message: string;
};
QUIC_HEADERS_TOO_LARGE: {
code: number;
message: string;
};
QUIC_STREAM_LAST_ERROR: {
code: number;
message: string;
};
};