Spaces:
Runtime error
Runtime error
; | |
Object.defineProperty(exports, "__esModule", { value: true }); | |
exports.SPECIAL_HEADERS = exports.HEADER_STATE = exports.MINOR = exports.MAJOR = exports.CONNECTION_TOKEN_CHARS = exports.HEADER_CHARS = exports.TOKEN = exports.STRICT_TOKEN = exports.HEX = exports.URL_CHAR = exports.STRICT_URL_CHAR = exports.USERINFO_CHARS = exports.MARK = exports.ALPHANUM = exports.NUM = exports.HEX_MAP = exports.NUM_MAP = exports.ALPHA = exports.FINISH = exports.H_METHOD_MAP = exports.METHOD_MAP = exports.METHODS_RTSP = exports.METHODS_ICE = exports.METHODS_HTTP = exports.METHODS = exports.LENIENT_FLAGS = exports.FLAGS = exports.TYPE = exports.ERROR = void 0; | |
const utils_1 = require("./utils"); | |
// C headers | |
var ERROR; | |
(function (ERROR) { | |
ERROR[ERROR["OK"] = 0] = "OK"; | |
ERROR[ERROR["INTERNAL"] = 1] = "INTERNAL"; | |
ERROR[ERROR["STRICT"] = 2] = "STRICT"; | |
ERROR[ERROR["LF_EXPECTED"] = 3] = "LF_EXPECTED"; | |
ERROR[ERROR["UNEXPECTED_CONTENT_LENGTH"] = 4] = "UNEXPECTED_CONTENT_LENGTH"; | |
ERROR[ERROR["CLOSED_CONNECTION"] = 5] = "CLOSED_CONNECTION"; | |
ERROR[ERROR["INVALID_METHOD"] = 6] = "INVALID_METHOD"; | |
ERROR[ERROR["INVALID_URL"] = 7] = "INVALID_URL"; | |
ERROR[ERROR["INVALID_CONSTANT"] = 8] = "INVALID_CONSTANT"; | |
ERROR[ERROR["INVALID_VERSION"] = 9] = "INVALID_VERSION"; | |
ERROR[ERROR["INVALID_HEADER_TOKEN"] = 10] = "INVALID_HEADER_TOKEN"; | |
ERROR[ERROR["INVALID_CONTENT_LENGTH"] = 11] = "INVALID_CONTENT_LENGTH"; | |
ERROR[ERROR["INVALID_CHUNK_SIZE"] = 12] = "INVALID_CHUNK_SIZE"; | |
ERROR[ERROR["INVALID_STATUS"] = 13] = "INVALID_STATUS"; | |
ERROR[ERROR["INVALID_EOF_STATE"] = 14] = "INVALID_EOF_STATE"; | |
ERROR[ERROR["INVALID_TRANSFER_ENCODING"] = 15] = "INVALID_TRANSFER_ENCODING"; | |
ERROR[ERROR["CB_MESSAGE_BEGIN"] = 16] = "CB_MESSAGE_BEGIN"; | |
ERROR[ERROR["CB_HEADERS_COMPLETE"] = 17] = "CB_HEADERS_COMPLETE"; | |
ERROR[ERROR["CB_MESSAGE_COMPLETE"] = 18] = "CB_MESSAGE_COMPLETE"; | |
ERROR[ERROR["CB_CHUNK_HEADER"] = 19] = "CB_CHUNK_HEADER"; | |
ERROR[ERROR["CB_CHUNK_COMPLETE"] = 20] = "CB_CHUNK_COMPLETE"; | |
ERROR[ERROR["PAUSED"] = 21] = "PAUSED"; | |
ERROR[ERROR["PAUSED_UPGRADE"] = 22] = "PAUSED_UPGRADE"; | |
ERROR[ERROR["PAUSED_H2_UPGRADE"] = 23] = "PAUSED_H2_UPGRADE"; | |
ERROR[ERROR["USER"] = 24] = "USER"; | |
})(ERROR = exports.ERROR || (exports.ERROR = {})); | |
var TYPE; | |
(function (TYPE) { | |
TYPE[TYPE["BOTH"] = 0] = "BOTH"; | |
TYPE[TYPE["REQUEST"] = 1] = "REQUEST"; | |
TYPE[TYPE["RESPONSE"] = 2] = "RESPONSE"; | |
})(TYPE = exports.TYPE || (exports.TYPE = {})); | |
var FLAGS; | |
(function (FLAGS) { | |
FLAGS[FLAGS["CONNECTION_KEEP_ALIVE"] = 1] = "CONNECTION_KEEP_ALIVE"; | |
FLAGS[FLAGS["CONNECTION_CLOSE"] = 2] = "CONNECTION_CLOSE"; | |
FLAGS[FLAGS["CONNECTION_UPGRADE"] = 4] = "CONNECTION_UPGRADE"; | |
FLAGS[FLAGS["CHUNKED"] = 8] = "CHUNKED"; | |
FLAGS[FLAGS["UPGRADE"] = 16] = "UPGRADE"; | |
FLAGS[FLAGS["CONTENT_LENGTH"] = 32] = "CONTENT_LENGTH"; | |
FLAGS[FLAGS["SKIPBODY"] = 64] = "SKIPBODY"; | |
FLAGS[FLAGS["TRAILING"] = 128] = "TRAILING"; | |
// 1 << 8 is unused | |
FLAGS[FLAGS["TRANSFER_ENCODING"] = 512] = "TRANSFER_ENCODING"; | |
})(FLAGS = exports.FLAGS || (exports.FLAGS = {})); | |
var LENIENT_FLAGS; | |
(function (LENIENT_FLAGS) { | |
LENIENT_FLAGS[LENIENT_FLAGS["HEADERS"] = 1] = "HEADERS"; | |
LENIENT_FLAGS[LENIENT_FLAGS["CHUNKED_LENGTH"] = 2] = "CHUNKED_LENGTH"; | |
LENIENT_FLAGS[LENIENT_FLAGS["KEEP_ALIVE"] = 4] = "KEEP_ALIVE"; | |
})(LENIENT_FLAGS = exports.LENIENT_FLAGS || (exports.LENIENT_FLAGS = {})); | |
var METHODS; | |
(function (METHODS) { | |
METHODS[METHODS["DELETE"] = 0] = "DELETE"; | |
METHODS[METHODS["GET"] = 1] = "GET"; | |
METHODS[METHODS["HEAD"] = 2] = "HEAD"; | |
METHODS[METHODS["POST"] = 3] = "POST"; | |
METHODS[METHODS["PUT"] = 4] = "PUT"; | |
/* pathological */ | |
METHODS[METHODS["CONNECT"] = 5] = "CONNECT"; | |
METHODS[METHODS["OPTIONS"] = 6] = "OPTIONS"; | |
METHODS[METHODS["TRACE"] = 7] = "TRACE"; | |
/* WebDAV */ | |
METHODS[METHODS["COPY"] = 8] = "COPY"; | |
METHODS[METHODS["LOCK"] = 9] = "LOCK"; | |
METHODS[METHODS["MKCOL"] = 10] = "MKCOL"; | |
METHODS[METHODS["MOVE"] = 11] = "MOVE"; | |
METHODS[METHODS["PROPFIND"] = 12] = "PROPFIND"; | |
METHODS[METHODS["PROPPATCH"] = 13] = "PROPPATCH"; | |
METHODS[METHODS["SEARCH"] = 14] = "SEARCH"; | |
METHODS[METHODS["UNLOCK"] = 15] = "UNLOCK"; | |
METHODS[METHODS["BIND"] = 16] = "BIND"; | |
METHODS[METHODS["REBIND"] = 17] = "REBIND"; | |
METHODS[METHODS["UNBIND"] = 18] = "UNBIND"; | |
METHODS[METHODS["ACL"] = 19] = "ACL"; | |
/* subversion */ | |
METHODS[METHODS["REPORT"] = 20] = "REPORT"; | |
METHODS[METHODS["MKACTIVITY"] = 21] = "MKACTIVITY"; | |
METHODS[METHODS["CHECKOUT"] = 22] = "CHECKOUT"; | |
METHODS[METHODS["MERGE"] = 23] = "MERGE"; | |
/* upnp */ | |
METHODS[METHODS["M-SEARCH"] = 24] = "M-SEARCH"; | |
METHODS[METHODS["NOTIFY"] = 25] = "NOTIFY"; | |
METHODS[METHODS["SUBSCRIBE"] = 26] = "SUBSCRIBE"; | |
METHODS[METHODS["UNSUBSCRIBE"] = 27] = "UNSUBSCRIBE"; | |
/* RFC-5789 */ | |
METHODS[METHODS["PATCH"] = 28] = "PATCH"; | |
METHODS[METHODS["PURGE"] = 29] = "PURGE"; | |
/* CalDAV */ | |
METHODS[METHODS["MKCALENDAR"] = 30] = "MKCALENDAR"; | |
/* RFC-2068, section 19.6.1.2 */ | |
METHODS[METHODS["LINK"] = 31] = "LINK"; | |
METHODS[METHODS["UNLINK"] = 32] = "UNLINK"; | |
/* icecast */ | |
METHODS[METHODS["SOURCE"] = 33] = "SOURCE"; | |
/* RFC-7540, section 11.6 */ | |
METHODS[METHODS["PRI"] = 34] = "PRI"; | |
/* RFC-2326 RTSP */ | |
METHODS[METHODS["DESCRIBE"] = 35] = "DESCRIBE"; | |
METHODS[METHODS["ANNOUNCE"] = 36] = "ANNOUNCE"; | |
METHODS[METHODS["SETUP"] = 37] = "SETUP"; | |
METHODS[METHODS["PLAY"] = 38] = "PLAY"; | |
METHODS[METHODS["PAUSE"] = 39] = "PAUSE"; | |
METHODS[METHODS["TEARDOWN"] = 40] = "TEARDOWN"; | |
METHODS[METHODS["GET_PARAMETER"] = 41] = "GET_PARAMETER"; | |
METHODS[METHODS["SET_PARAMETER"] = 42] = "SET_PARAMETER"; | |
METHODS[METHODS["REDIRECT"] = 43] = "REDIRECT"; | |
METHODS[METHODS["RECORD"] = 44] = "RECORD"; | |
/* RAOP */ | |
METHODS[METHODS["FLUSH"] = 45] = "FLUSH"; | |
})(METHODS = exports.METHODS || (exports.METHODS = {})); | |
exports.METHODS_HTTP = [ | |
METHODS.DELETE, | |
METHODS.GET, | |
METHODS.HEAD, | |
METHODS.POST, | |
METHODS.PUT, | |
METHODS.CONNECT, | |
METHODS.OPTIONS, | |
METHODS.TRACE, | |
METHODS.COPY, | |
METHODS.LOCK, | |
METHODS.MKCOL, | |
METHODS.MOVE, | |
METHODS.PROPFIND, | |
METHODS.PROPPATCH, | |
METHODS.SEARCH, | |
METHODS.UNLOCK, | |
METHODS.BIND, | |
METHODS.REBIND, | |
METHODS.UNBIND, | |
METHODS.ACL, | |
METHODS.REPORT, | |
METHODS.MKACTIVITY, | |
METHODS.CHECKOUT, | |
METHODS.MERGE, | |
METHODS['M-SEARCH'], | |
METHODS.NOTIFY, | |
METHODS.SUBSCRIBE, | |
METHODS.UNSUBSCRIBE, | |
METHODS.PATCH, | |
METHODS.PURGE, | |
METHODS.MKCALENDAR, | |
METHODS.LINK, | |
METHODS.UNLINK, | |
METHODS.PRI, | |
// TODO(indutny): should we allow it with HTTP? | |
METHODS.SOURCE, | |
]; | |
exports.METHODS_ICE = [ | |
METHODS.SOURCE, | |
]; | |
exports.METHODS_RTSP = [ | |
METHODS.OPTIONS, | |
METHODS.DESCRIBE, | |
METHODS.ANNOUNCE, | |
METHODS.SETUP, | |
METHODS.PLAY, | |
METHODS.PAUSE, | |
METHODS.TEARDOWN, | |
METHODS.GET_PARAMETER, | |
METHODS.SET_PARAMETER, | |
METHODS.REDIRECT, | |
METHODS.RECORD, | |
METHODS.FLUSH, | |
// For AirPlay | |
METHODS.GET, | |
METHODS.POST, | |
]; | |
exports.METHOD_MAP = utils_1.enumToMap(METHODS); | |
exports.H_METHOD_MAP = {}; | |
Object.keys(exports.METHOD_MAP).forEach((key) => { | |
if (/^H/.test(key)) { | |
exports.H_METHOD_MAP[key] = exports.METHOD_MAP[key]; | |
} | |
}); | |
var FINISH; | |
(function (FINISH) { | |
FINISH[FINISH["SAFE"] = 0] = "SAFE"; | |
FINISH[FINISH["SAFE_WITH_CB"] = 1] = "SAFE_WITH_CB"; | |
FINISH[FINISH["UNSAFE"] = 2] = "UNSAFE"; | |
})(FINISH = exports.FINISH || (exports.FINISH = {})); | |
exports.ALPHA = []; | |
for (let i = 'A'.charCodeAt(0); i <= 'Z'.charCodeAt(0); i++) { | |
// Upper case | |
exports.ALPHA.push(String.fromCharCode(i)); | |
// Lower case | |
exports.ALPHA.push(String.fromCharCode(i + 0x20)); | |
} | |
exports.NUM_MAP = { | |
0: 0, 1: 1, 2: 2, 3: 3, 4: 4, | |
5: 5, 6: 6, 7: 7, 8: 8, 9: 9, | |
}; | |
exports.HEX_MAP = { | |
0: 0, 1: 1, 2: 2, 3: 3, 4: 4, | |
5: 5, 6: 6, 7: 7, 8: 8, 9: 9, | |
A: 0XA, B: 0XB, C: 0XC, D: 0XD, E: 0XE, F: 0XF, | |
a: 0xa, b: 0xb, c: 0xc, d: 0xd, e: 0xe, f: 0xf, | |
}; | |
exports.NUM = [ | |
'0', '1', '2', '3', '4', '5', '6', '7', '8', '9', | |
]; | |
exports.ALPHANUM = exports.ALPHA.concat(exports.NUM); | |
exports.MARK = ['-', '_', '.', '!', '~', '*', '\'', '(', ')']; | |
exports.USERINFO_CHARS = exports.ALPHANUM | |
.concat(exports.MARK) | |
.concat(['%', ';', ':', '&', '=', '+', '$', ',']); | |
// TODO(indutny): use RFC | |
exports.STRICT_URL_CHAR = [ | |
'!', '"', '$', '%', '&', '\'', | |
'(', ')', '*', '+', ',', '-', '.', '/', | |
':', ';', '<', '=', '>', | |
'@', '[', '\\', ']', '^', '_', | |
'`', | |
'{', '|', '}', '~', | |
].concat(exports.ALPHANUM); | |
exports.URL_CHAR = exports.STRICT_URL_CHAR | |
.concat(['\t', '\f']); | |
// All characters with 0x80 bit set to 1 | |
for (let i = 0x80; i <= 0xff; i++) { | |
exports.URL_CHAR.push(i); | |
} | |
exports.HEX = exports.NUM.concat(['a', 'b', 'c', 'd', 'e', 'f', 'A', 'B', 'C', 'D', 'E', 'F']); | |
/* Tokens as defined by rfc 2616. Also lowercases them. | |
* token = 1*<any CHAR except CTLs or separators> | |
* separators = "(" | ")" | "<" | ">" | "@" | |
* | "," | ";" | ":" | "\" | <"> | |
* | "/" | "[" | "]" | "?" | "=" | |
* | "{" | "}" | SP | HT | |
*/ | |
exports.STRICT_TOKEN = [ | |
'!', '#', '$', '%', '&', '\'', | |
'*', '+', '-', '.', | |
'^', '_', '`', | |
'|', '~', | |
].concat(exports.ALPHANUM); | |
exports.TOKEN = exports.STRICT_TOKEN.concat([' ']); | |
/* | |
* Verify that a char is a valid visible (printable) US-ASCII | |
* character or %x80-FF | |
*/ | |
exports.HEADER_CHARS = ['\t']; | |
for (let i = 32; i <= 255; i++) { | |
if (i !== 127) { | |
exports.HEADER_CHARS.push(i); | |
} | |
} | |
// ',' = \x44 | |
exports.CONNECTION_TOKEN_CHARS = exports.HEADER_CHARS.filter((c) => c !== 44); | |
exports.MAJOR = exports.NUM_MAP; | |
exports.MINOR = exports.MAJOR; | |
var HEADER_STATE; | |
(function (HEADER_STATE) { | |
HEADER_STATE[HEADER_STATE["GENERAL"] = 0] = "GENERAL"; | |
HEADER_STATE[HEADER_STATE["CONNECTION"] = 1] = "CONNECTION"; | |
HEADER_STATE[HEADER_STATE["CONTENT_LENGTH"] = 2] = "CONTENT_LENGTH"; | |
HEADER_STATE[HEADER_STATE["TRANSFER_ENCODING"] = 3] = "TRANSFER_ENCODING"; | |
HEADER_STATE[HEADER_STATE["UPGRADE"] = 4] = "UPGRADE"; | |
HEADER_STATE[HEADER_STATE["CONNECTION_KEEP_ALIVE"] = 5] = "CONNECTION_KEEP_ALIVE"; | |
HEADER_STATE[HEADER_STATE["CONNECTION_CLOSE"] = 6] = "CONNECTION_CLOSE"; | |
HEADER_STATE[HEADER_STATE["CONNECTION_UPGRADE"] = 7] = "CONNECTION_UPGRADE"; | |
HEADER_STATE[HEADER_STATE["TRANSFER_ENCODING_CHUNKED"] = 8] = "TRANSFER_ENCODING_CHUNKED"; | |
})(HEADER_STATE = exports.HEADER_STATE || (exports.HEADER_STATE = {})); | |
exports.SPECIAL_HEADERS = { | |
'connection': HEADER_STATE.CONNECTION, | |
'content-length': HEADER_STATE.CONTENT_LENGTH, | |
'proxy-connection': HEADER_STATE.CONNECTION, | |
'transfer-encoding': HEADER_STATE.TRANSFER_ENCODING, | |
'upgrade': HEADER_STATE.UPGRADE, | |
}; | |
//# sourceMappingURL=constants.js.map |