| 1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
 | | 'use strict' |  |   |  | var transport = require('../../../spdy-transport') |  | var base = transport.protocol.base |  |   |  | exports.PREFACE_SIZE = 24 |  | exports.PREFACE = 'PRI * HTTP/2.0\r\n\r\nSM\r\n\r\n' |  | exports.PREFACE_BUFFER = Buffer.from(exports.PREFACE) |  |   |  | exports.PING_OPAQUE_SIZE = 8 |  |   |  | exports.FRAME_HEADER_SIZE = 9 |  | exports.INITIAL_MAX_FRAME_SIZE = 16384 |  | exports.ABSOLUTE_MAX_FRAME_SIZE = 16777215 |  | exports.HEADER_TABLE_SIZE = 4096 |  | exports.DEFAULT_MAX_HEADER_LIST_SIZE = 80 * 1024 // as in http_parser |  | exports.MAX_INITIAL_WINDOW_SIZE = 2147483647 |  |   |  | exports.DEFAULT_WEIGHT = 16 |  |   |  | exports.MAX_CONCURRENT_STREAMS = Infinity |  |   |  | exports.frameType = { |  |   DATA: 0, |  |   HEADERS: 1, |  |   PRIORITY: 2, |  |   RST_STREAM: 3, |  |   SETTINGS: 4, |  |   PUSH_PROMISE: 5, |  |   PING: 6, |  |   GOAWAY: 7, |  |   WINDOW_UPDATE: 8, |  |   CONTINUATION: 9, |  |   |  |   // Custom |  |   X_FORWARDED_FOR: 0xde |  | } |  |   |  | exports.flags = { |  |   ACK: 0x01, // SETTINGS-only |  |   END_STREAM: 0x01, |  |   END_HEADERS: 0x04, |  |   PADDED: 0x08, |  |   PRIORITY: 0x20 |  | } |  |   |  | exports.settings = { |  |   SETTINGS_HEADER_TABLE_SIZE: 0x01, |  |   SETTINGS_ENABLE_PUSH: 0x02, |  |   SETTINGS_MAX_CONCURRENT_STREAMS: 0x03, |  |   SETTINGS_INITIAL_WINDOW_SIZE: 0x04, |  |   SETTINGS_MAX_FRAME_SIZE: 0x05, |  |   SETTINGS_MAX_HEADER_LIST_SIZE: 0x06 |  | } |  |   |  | exports.settingsIndex = [ |  |   null, |  |   'header_table_size', |  |   'enable_push', |  |   'max_concurrent_streams', |  |   'initial_window_size', |  |   'max_frame_size', |  |   'max_header_list_size' |  | ] |  |   |  | exports.error = { |  |   OK: 0, |  |   NO_ERROR: 0, |  |   |  |   PROTOCOL_ERROR: 1, |  |   INTERNAL_ERROR: 2, |  |   FLOW_CONTROL_ERROR: 3, |  |   SETTINGS_TIMEOUT: 4, |  |   |  |   STREAM_CLOSED: 5, |  |   INVALID_STREAM: 5, |  |   |  |   FRAME_SIZE_ERROR: 6, |  |   REFUSED_STREAM: 7, |  |   CANCEL: 8, |  |   COMPRESSION_ERROR: 9, |  |   CONNECT_ERROR: 10, |  |   ENHANCE_YOUR_CALM: 11, |  |   INADEQUATE_SECURITY: 12, |  |   HTTP_1_1_REQUIRED: 13 |  | } |  | exports.errorByCode = base.utils.reverse(exports.error) |  |   |  | exports.DEFAULT_WINDOW = 64 * 1024 - 1 |  |   |  | exports.goaway = exports.error |  | exports.goawayByCode = Object.assign({}, exports.errorByCode) |  | exports.goawayByCode[0] = 'OK' | 
 |