undici 6.20.0 → 7.0.0-alpha.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (137) hide show
  1. package/README.md +6 -10
  2. package/docs/docs/api/Agent.md +0 -3
  3. package/docs/docs/api/Client.md +1 -3
  4. package/docs/docs/api/Debug.md +1 -1
  5. package/docs/docs/api/Dispatcher.md +60 -8
  6. package/docs/docs/api/EnvHttpProxyAgent.md +0 -1
  7. package/docs/docs/api/Fetch.md +1 -0
  8. package/docs/docs/api/MockAgent.md +2 -0
  9. package/docs/docs/api/MockPool.md +2 -1
  10. package/docs/docs/api/Pool.md +0 -1
  11. package/docs/docs/api/RetryAgent.md +1 -1
  12. package/docs/docs/api/RetryHandler.md +1 -1
  13. package/docs/docs/api/WebSocket.md +45 -3
  14. package/index.js +6 -6
  15. package/lib/api/abort-signal.js +2 -0
  16. package/lib/api/api-connect.js +3 -1
  17. package/lib/api/api-pipeline.js +7 -6
  18. package/lib/api/api-request.js +32 -47
  19. package/lib/api/api-stream.js +39 -50
  20. package/lib/api/api-upgrade.js +5 -3
  21. package/lib/api/readable.js +261 -64
  22. package/lib/api/util.js +2 -0
  23. package/lib/core/constants.js +11 -9
  24. package/lib/core/diagnostics.js +122 -128
  25. package/lib/core/errors.js +4 -4
  26. package/lib/core/request.js +11 -9
  27. package/lib/core/symbols.js +2 -1
  28. package/lib/core/tree.js +9 -1
  29. package/lib/core/util.js +219 -48
  30. package/lib/dispatcher/agent.js +3 -17
  31. package/lib/dispatcher/balanced-pool.js +5 -8
  32. package/lib/dispatcher/client-h1.js +278 -54
  33. package/lib/dispatcher/client-h2.js +1 -1
  34. package/lib/dispatcher/client.js +23 -34
  35. package/lib/dispatcher/dispatcher-base.js +2 -34
  36. package/lib/dispatcher/dispatcher.js +3 -24
  37. package/lib/dispatcher/fixed-queue.js +91 -49
  38. package/lib/dispatcher/pool-stats.js +2 -0
  39. package/lib/dispatcher/pool.js +3 -6
  40. package/lib/dispatcher/proxy-agent.js +6 -7
  41. package/lib/handler/decorator-handler.js +24 -0
  42. package/lib/handler/redirect-handler.js +11 -2
  43. package/lib/handler/retry-handler.js +12 -3
  44. package/lib/interceptor/dns.js +346 -0
  45. package/lib/interceptor/dump.js +2 -2
  46. package/lib/interceptor/redirect.js +11 -14
  47. package/lib/interceptor/response-error.js +4 -1
  48. package/lib/llhttp/constants.d.ts +97 -0
  49. package/lib/llhttp/constants.js +412 -192
  50. package/lib/llhttp/constants.js.map +1 -0
  51. package/lib/llhttp/llhttp-wasm.js +11 -1
  52. package/lib/llhttp/llhttp_simd-wasm.js +11 -1
  53. package/lib/llhttp/utils.d.ts +2 -0
  54. package/lib/llhttp/utils.js +9 -9
  55. package/lib/llhttp/utils.js.map +1 -0
  56. package/lib/mock/mock-agent.js +5 -8
  57. package/lib/mock/mock-client.js +9 -4
  58. package/lib/mock/mock-errors.js +3 -1
  59. package/lib/mock/mock-interceptor.js +8 -6
  60. package/lib/mock/mock-pool.js +9 -4
  61. package/lib/mock/mock-symbols.js +3 -1
  62. package/lib/mock/mock-utils.js +29 -5
  63. package/lib/web/cache/cache.js +24 -21
  64. package/lib/web/cache/cachestorage.js +1 -1
  65. package/lib/web/cookies/index.js +17 -13
  66. package/lib/web/cookies/parse.js +2 -2
  67. package/lib/web/eventsource/eventsource-stream.js +9 -8
  68. package/lib/web/eventsource/eventsource.js +10 -6
  69. package/lib/web/fetch/body.js +42 -36
  70. package/lib/web/fetch/constants.js +35 -26
  71. package/lib/web/fetch/data-url.js +1 -1
  72. package/lib/web/fetch/formdata-parser.js +2 -2
  73. package/lib/web/fetch/formdata.js +65 -54
  74. package/lib/web/fetch/headers.js +117 -85
  75. package/lib/web/fetch/index.js +55 -62
  76. package/lib/web/fetch/request.js +135 -77
  77. package/lib/web/fetch/response.js +86 -56
  78. package/lib/web/fetch/util.js +90 -64
  79. package/lib/web/fetch/webidl.js +99 -64
  80. package/lib/web/websocket/connection.js +76 -147
  81. package/lib/web/websocket/constants.js +3 -4
  82. package/lib/web/websocket/events.js +4 -2
  83. package/lib/web/websocket/frame.js +45 -3
  84. package/lib/web/websocket/receiver.js +29 -33
  85. package/lib/web/websocket/sender.js +18 -13
  86. package/lib/web/websocket/stream/websocketerror.js +83 -0
  87. package/lib/web/websocket/stream/websocketstream.js +485 -0
  88. package/lib/web/websocket/util.js +128 -77
  89. package/lib/web/websocket/websocket.js +234 -135
  90. package/package.json +20 -33
  91. package/scripts/strip-comments.js +3 -1
  92. package/types/agent.d.ts +7 -7
  93. package/types/api.d.ts +24 -24
  94. package/types/balanced-pool.d.ts +11 -11
  95. package/types/client.d.ts +11 -12
  96. package/types/diagnostics-channel.d.ts +10 -10
  97. package/types/dispatcher.d.ts +96 -97
  98. package/types/env-http-proxy-agent.d.ts +2 -2
  99. package/types/errors.d.ts +53 -47
  100. package/types/fetch.d.ts +8 -8
  101. package/types/formdata.d.ts +7 -7
  102. package/types/global-dispatcher.d.ts +4 -4
  103. package/types/global-origin.d.ts +5 -5
  104. package/types/handlers.d.ts +4 -4
  105. package/types/header.d.ts +157 -1
  106. package/types/index.d.ts +42 -46
  107. package/types/interceptors.d.ts +22 -8
  108. package/types/mock-agent.d.ts +21 -18
  109. package/types/mock-client.d.ts +4 -4
  110. package/types/mock-errors.d.ts +3 -3
  111. package/types/mock-interceptor.d.ts +19 -19
  112. package/types/mock-pool.d.ts +4 -4
  113. package/types/patch.d.ts +0 -4
  114. package/types/pool-stats.d.ts +8 -8
  115. package/types/pool.d.ts +12 -12
  116. package/types/proxy-agent.d.ts +4 -4
  117. package/types/readable.d.ts +22 -14
  118. package/types/retry-agent.d.ts +1 -1
  119. package/types/retry-handler.d.ts +8 -8
  120. package/types/util.d.ts +3 -3
  121. package/types/utility.d.ts +7 -0
  122. package/types/webidl.d.ts +44 -6
  123. package/types/websocket.d.ts +34 -1
  124. package/docs/docs/api/DispatchInterceptor.md +0 -60
  125. package/lib/interceptor/redirect-interceptor.js +0 -21
  126. package/lib/mock/pluralizer.js +0 -29
  127. package/lib/web/cache/symbols.js +0 -5
  128. package/lib/web/fetch/file.js +0 -126
  129. package/lib/web/fetch/symbols.js +0 -9
  130. package/lib/web/fileapi/encoding.js +0 -290
  131. package/lib/web/fileapi/filereader.js +0 -344
  132. package/lib/web/fileapi/progressevent.js +0 -78
  133. package/lib/web/fileapi/symbols.js +0 -10
  134. package/lib/web/fileapi/util.js +0 -391
  135. package/lib/web/websocket/symbols.js +0 -12
  136. package/types/file.d.ts +0 -39
  137. package/types/filereader.d.ts +0 -54
@@ -1,192 +1,416 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- 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;
3
+ exports.SPECIAL_HEADERS = exports.MINOR = exports.MAJOR = exports.HTAB_SP_VCHAR_OBS_TEXT = exports.QUOTED_STRING = exports.CONNECTION_TOKEN_CHARS = exports.HEADER_CHARS = exports.TOKEN = exports.HEX = exports.URL_CHAR = exports.USERINFO_CHARS = exports.MARK = exports.ALPHANUM = exports.NUM = exports.HEX_MAP = exports.NUM_MAP = exports.ALPHA = exports.STATUSES_HTTP = exports.H_METHOD_MAP = exports.METHOD_MAP = exports.METHODS_RTSP = exports.METHODS_ICE = exports.METHODS_HTTP = exports.HEADER_STATE = exports.FINISH = exports.STATUSES = exports.METHODS = exports.LENIENT_FLAGS = exports.FLAGS = exports.TYPE = exports.ERROR = void 0;
4
4
  const utils_1 = require("./utils");
5
- // C headers
6
- var ERROR;
7
- (function (ERROR) {
8
- ERROR[ERROR["OK"] = 0] = "OK";
9
- ERROR[ERROR["INTERNAL"] = 1] = "INTERNAL";
10
- ERROR[ERROR["STRICT"] = 2] = "STRICT";
11
- ERROR[ERROR["LF_EXPECTED"] = 3] = "LF_EXPECTED";
12
- ERROR[ERROR["UNEXPECTED_CONTENT_LENGTH"] = 4] = "UNEXPECTED_CONTENT_LENGTH";
13
- ERROR[ERROR["CLOSED_CONNECTION"] = 5] = "CLOSED_CONNECTION";
14
- ERROR[ERROR["INVALID_METHOD"] = 6] = "INVALID_METHOD";
15
- ERROR[ERROR["INVALID_URL"] = 7] = "INVALID_URL";
16
- ERROR[ERROR["INVALID_CONSTANT"] = 8] = "INVALID_CONSTANT";
17
- ERROR[ERROR["INVALID_VERSION"] = 9] = "INVALID_VERSION";
18
- ERROR[ERROR["INVALID_HEADER_TOKEN"] = 10] = "INVALID_HEADER_TOKEN";
19
- ERROR[ERROR["INVALID_CONTENT_LENGTH"] = 11] = "INVALID_CONTENT_LENGTH";
20
- ERROR[ERROR["INVALID_CHUNK_SIZE"] = 12] = "INVALID_CHUNK_SIZE";
21
- ERROR[ERROR["INVALID_STATUS"] = 13] = "INVALID_STATUS";
22
- ERROR[ERROR["INVALID_EOF_STATE"] = 14] = "INVALID_EOF_STATE";
23
- ERROR[ERROR["INVALID_TRANSFER_ENCODING"] = 15] = "INVALID_TRANSFER_ENCODING";
24
- ERROR[ERROR["CB_MESSAGE_BEGIN"] = 16] = "CB_MESSAGE_BEGIN";
25
- ERROR[ERROR["CB_HEADERS_COMPLETE"] = 17] = "CB_HEADERS_COMPLETE";
26
- ERROR[ERROR["CB_MESSAGE_COMPLETE"] = 18] = "CB_MESSAGE_COMPLETE";
27
- ERROR[ERROR["CB_CHUNK_HEADER"] = 19] = "CB_CHUNK_HEADER";
28
- ERROR[ERROR["CB_CHUNK_COMPLETE"] = 20] = "CB_CHUNK_COMPLETE";
29
- ERROR[ERROR["PAUSED"] = 21] = "PAUSED";
30
- ERROR[ERROR["PAUSED_UPGRADE"] = 22] = "PAUSED_UPGRADE";
31
- ERROR[ERROR["PAUSED_H2_UPGRADE"] = 23] = "PAUSED_H2_UPGRADE";
32
- ERROR[ERROR["USER"] = 24] = "USER";
33
- })(ERROR = exports.ERROR || (exports.ERROR = {}));
34
- var TYPE;
35
- (function (TYPE) {
36
- TYPE[TYPE["BOTH"] = 0] = "BOTH";
37
- TYPE[TYPE["REQUEST"] = 1] = "REQUEST";
38
- TYPE[TYPE["RESPONSE"] = 2] = "RESPONSE";
39
- })(TYPE = exports.TYPE || (exports.TYPE = {}));
40
- var FLAGS;
41
- (function (FLAGS) {
42
- FLAGS[FLAGS["CONNECTION_KEEP_ALIVE"] = 1] = "CONNECTION_KEEP_ALIVE";
43
- FLAGS[FLAGS["CONNECTION_CLOSE"] = 2] = "CONNECTION_CLOSE";
44
- FLAGS[FLAGS["CONNECTION_UPGRADE"] = 4] = "CONNECTION_UPGRADE";
45
- FLAGS[FLAGS["CHUNKED"] = 8] = "CHUNKED";
46
- FLAGS[FLAGS["UPGRADE"] = 16] = "UPGRADE";
47
- FLAGS[FLAGS["CONTENT_LENGTH"] = 32] = "CONTENT_LENGTH";
48
- FLAGS[FLAGS["SKIPBODY"] = 64] = "SKIPBODY";
49
- FLAGS[FLAGS["TRAILING"] = 128] = "TRAILING";
5
+ // Emums
6
+ exports.ERROR = {
7
+ OK: 0,
8
+ INTERNAL: 1,
9
+ STRICT: 2,
10
+ CR_EXPECTED: 25,
11
+ LF_EXPECTED: 3,
12
+ UNEXPECTED_CONTENT_LENGTH: 4,
13
+ UNEXPECTED_SPACE: 30,
14
+ CLOSED_CONNECTION: 5,
15
+ INVALID_METHOD: 6,
16
+ INVALID_URL: 7,
17
+ INVALID_CONSTANT: 8,
18
+ INVALID_VERSION: 9,
19
+ INVALID_HEADER_TOKEN: 10,
20
+ INVALID_CONTENT_LENGTH: 11,
21
+ INVALID_CHUNK_SIZE: 12,
22
+ INVALID_STATUS: 13,
23
+ INVALID_EOF_STATE: 14,
24
+ INVALID_TRANSFER_ENCODING: 15,
25
+ CB_MESSAGE_BEGIN: 16,
26
+ CB_HEADERS_COMPLETE: 17,
27
+ CB_MESSAGE_COMPLETE: 18,
28
+ CB_CHUNK_HEADER: 19,
29
+ CB_CHUNK_COMPLETE: 20,
30
+ PAUSED: 21,
31
+ PAUSED_UPGRADE: 22,
32
+ PAUSED_H2_UPGRADE: 23,
33
+ USER: 24,
34
+ CB_URL_COMPLETE: 26,
35
+ CB_STATUS_COMPLETE: 27,
36
+ CB_METHOD_COMPLETE: 32,
37
+ CB_VERSION_COMPLETE: 33,
38
+ CB_HEADER_FIELD_COMPLETE: 28,
39
+ CB_HEADER_VALUE_COMPLETE: 29,
40
+ CB_CHUNK_EXTENSION_NAME_COMPLETE: 34,
41
+ CB_CHUNK_EXTENSION_VALUE_COMPLETE: 35,
42
+ CB_RESET: 31,
43
+ };
44
+ exports.TYPE = {
45
+ BOTH: 0, // default
46
+ REQUEST: 1,
47
+ RESPONSE: 2,
48
+ };
49
+ exports.FLAGS = {
50
+ CONNECTION_KEEP_ALIVE: 1 << 0,
51
+ CONNECTION_CLOSE: 1 << 1,
52
+ CONNECTION_UPGRADE: 1 << 2,
53
+ CHUNKED: 1 << 3,
54
+ UPGRADE: 1 << 4,
55
+ CONTENT_LENGTH: 1 << 5,
56
+ SKIPBODY: 1 << 6,
57
+ TRAILING: 1 << 7,
50
58
  // 1 << 8 is unused
51
- FLAGS[FLAGS["TRANSFER_ENCODING"] = 512] = "TRANSFER_ENCODING";
52
- })(FLAGS = exports.FLAGS || (exports.FLAGS = {}));
53
- var LENIENT_FLAGS;
54
- (function (LENIENT_FLAGS) {
55
- LENIENT_FLAGS[LENIENT_FLAGS["HEADERS"] = 1] = "HEADERS";
56
- LENIENT_FLAGS[LENIENT_FLAGS["CHUNKED_LENGTH"] = 2] = "CHUNKED_LENGTH";
57
- LENIENT_FLAGS[LENIENT_FLAGS["KEEP_ALIVE"] = 4] = "KEEP_ALIVE";
58
- })(LENIENT_FLAGS = exports.LENIENT_FLAGS || (exports.LENIENT_FLAGS = {}));
59
- var METHODS;
60
- (function (METHODS) {
61
- METHODS[METHODS["DELETE"] = 0] = "DELETE";
62
- METHODS[METHODS["GET"] = 1] = "GET";
63
- METHODS[METHODS["HEAD"] = 2] = "HEAD";
64
- METHODS[METHODS["POST"] = 3] = "POST";
65
- METHODS[METHODS["PUT"] = 4] = "PUT";
59
+ TRANSFER_ENCODING: 1 << 9,
60
+ };
61
+ exports.LENIENT_FLAGS = {
62
+ HEADERS: 1 << 0,
63
+ CHUNKED_LENGTH: 1 << 1,
64
+ KEEP_ALIVE: 1 << 2,
65
+ TRANSFER_ENCODING: 1 << 3,
66
+ VERSION: 1 << 4,
67
+ DATA_AFTER_CLOSE: 1 << 5,
68
+ OPTIONAL_LF_AFTER_CR: 1 << 6,
69
+ OPTIONAL_CRLF_AFTER_CHUNK: 1 << 7,
70
+ OPTIONAL_CR_BEFORE_LF: 1 << 8,
71
+ SPACES_AFTER_CHUNK_SIZE: 1 << 9,
72
+ };
73
+ exports.METHODS = {
74
+ 'DELETE': 0,
75
+ 'GET': 1,
76
+ 'HEAD': 2,
77
+ 'POST': 3,
78
+ 'PUT': 4,
66
79
  /* pathological */
67
- METHODS[METHODS["CONNECT"] = 5] = "CONNECT";
68
- METHODS[METHODS["OPTIONS"] = 6] = "OPTIONS";
69
- METHODS[METHODS["TRACE"] = 7] = "TRACE";
80
+ 'CONNECT': 5,
81
+ 'OPTIONS': 6,
82
+ 'TRACE': 7,
70
83
  /* WebDAV */
71
- METHODS[METHODS["COPY"] = 8] = "COPY";
72
- METHODS[METHODS["LOCK"] = 9] = "LOCK";
73
- METHODS[METHODS["MKCOL"] = 10] = "MKCOL";
74
- METHODS[METHODS["MOVE"] = 11] = "MOVE";
75
- METHODS[METHODS["PROPFIND"] = 12] = "PROPFIND";
76
- METHODS[METHODS["PROPPATCH"] = 13] = "PROPPATCH";
77
- METHODS[METHODS["SEARCH"] = 14] = "SEARCH";
78
- METHODS[METHODS["UNLOCK"] = 15] = "UNLOCK";
79
- METHODS[METHODS["BIND"] = 16] = "BIND";
80
- METHODS[METHODS["REBIND"] = 17] = "REBIND";
81
- METHODS[METHODS["UNBIND"] = 18] = "UNBIND";
82
- METHODS[METHODS["ACL"] = 19] = "ACL";
84
+ 'COPY': 8,
85
+ 'LOCK': 9,
86
+ 'MKCOL': 10,
87
+ 'MOVE': 11,
88
+ 'PROPFIND': 12,
89
+ 'PROPPATCH': 13,
90
+ 'SEARCH': 14,
91
+ 'UNLOCK': 15,
92
+ 'BIND': 16,
93
+ 'REBIND': 17,
94
+ 'UNBIND': 18,
95
+ 'ACL': 19,
83
96
  /* subversion */
84
- METHODS[METHODS["REPORT"] = 20] = "REPORT";
85
- METHODS[METHODS["MKACTIVITY"] = 21] = "MKACTIVITY";
86
- METHODS[METHODS["CHECKOUT"] = 22] = "CHECKOUT";
87
- METHODS[METHODS["MERGE"] = 23] = "MERGE";
97
+ 'REPORT': 20,
98
+ 'MKACTIVITY': 21,
99
+ 'CHECKOUT': 22,
100
+ 'MERGE': 23,
88
101
  /* upnp */
89
- METHODS[METHODS["M-SEARCH"] = 24] = "M-SEARCH";
90
- METHODS[METHODS["NOTIFY"] = 25] = "NOTIFY";
91
- METHODS[METHODS["SUBSCRIBE"] = 26] = "SUBSCRIBE";
92
- METHODS[METHODS["UNSUBSCRIBE"] = 27] = "UNSUBSCRIBE";
102
+ 'M-SEARCH': 24,
103
+ 'NOTIFY': 25,
104
+ 'SUBSCRIBE': 26,
105
+ 'UNSUBSCRIBE': 27,
93
106
  /* RFC-5789 */
94
- METHODS[METHODS["PATCH"] = 28] = "PATCH";
95
- METHODS[METHODS["PURGE"] = 29] = "PURGE";
107
+ 'PATCH': 28,
108
+ 'PURGE': 29,
96
109
  /* CalDAV */
97
- METHODS[METHODS["MKCALENDAR"] = 30] = "MKCALENDAR";
110
+ 'MKCALENDAR': 30,
98
111
  /* RFC-2068, section 19.6.1.2 */
99
- METHODS[METHODS["LINK"] = 31] = "LINK";
100
- METHODS[METHODS["UNLINK"] = 32] = "UNLINK";
112
+ 'LINK': 31,
113
+ 'UNLINK': 32,
101
114
  /* icecast */
102
- METHODS[METHODS["SOURCE"] = 33] = "SOURCE";
115
+ 'SOURCE': 33,
103
116
  /* RFC-7540, section 11.6 */
104
- METHODS[METHODS["PRI"] = 34] = "PRI";
117
+ 'PRI': 34,
105
118
  /* RFC-2326 RTSP */
106
- METHODS[METHODS["DESCRIBE"] = 35] = "DESCRIBE";
107
- METHODS[METHODS["ANNOUNCE"] = 36] = "ANNOUNCE";
108
- METHODS[METHODS["SETUP"] = 37] = "SETUP";
109
- METHODS[METHODS["PLAY"] = 38] = "PLAY";
110
- METHODS[METHODS["PAUSE"] = 39] = "PAUSE";
111
- METHODS[METHODS["TEARDOWN"] = 40] = "TEARDOWN";
112
- METHODS[METHODS["GET_PARAMETER"] = 41] = "GET_PARAMETER";
113
- METHODS[METHODS["SET_PARAMETER"] = 42] = "SET_PARAMETER";
114
- METHODS[METHODS["REDIRECT"] = 43] = "REDIRECT";
115
- METHODS[METHODS["RECORD"] = 44] = "RECORD";
119
+ 'DESCRIBE': 35,
120
+ 'ANNOUNCE': 36,
121
+ 'SETUP': 37,
122
+ 'PLAY': 38,
123
+ 'PAUSE': 39,
124
+ 'TEARDOWN': 40,
125
+ 'GET_PARAMETER': 41,
126
+ 'SET_PARAMETER': 42,
127
+ 'REDIRECT': 43,
128
+ 'RECORD': 44,
116
129
  /* RAOP */
117
- METHODS[METHODS["FLUSH"] = 45] = "FLUSH";
118
- })(METHODS = exports.METHODS || (exports.METHODS = {}));
130
+ 'FLUSH': 45,
131
+ /* DRAFT https://www.ietf.org/archive/id/draft-ietf-httpbis-safe-method-w-body-02.html */
132
+ 'QUERY': 46,
133
+ };
134
+ exports.STATUSES = {
135
+ CONTINUE: 100,
136
+ SWITCHING_PROTOCOLS: 101,
137
+ PROCESSING: 102,
138
+ EARLY_HINTS: 103,
139
+ RESPONSE_IS_STALE: 110, // Unofficial
140
+ REVALIDATION_FAILED: 111, // Unofficial
141
+ DISCONNECTED_OPERATION: 112, // Unofficial
142
+ HEURISTIC_EXPIRATION: 113, // Unofficial
143
+ MISCELLANEOUS_WARNING: 199, // Unofficial
144
+ OK: 200,
145
+ CREATED: 201,
146
+ ACCEPTED: 202,
147
+ NON_AUTHORITATIVE_INFORMATION: 203,
148
+ NO_CONTENT: 204,
149
+ RESET_CONTENT: 205,
150
+ PARTIAL_CONTENT: 206,
151
+ MULTI_STATUS: 207,
152
+ ALREADY_REPORTED: 208,
153
+ TRANSFORMATION_APPLIED: 214, // Unofficial
154
+ IM_USED: 226,
155
+ MISCELLANEOUS_PERSISTENT_WARNING: 299, // Unofficial
156
+ MULTIPLE_CHOICES: 300,
157
+ MOVED_PERMANENTLY: 301,
158
+ FOUND: 302,
159
+ SEE_OTHER: 303,
160
+ NOT_MODIFIED: 304,
161
+ USE_PROXY: 305,
162
+ SWITCH_PROXY: 306, // No longer used
163
+ TEMPORARY_REDIRECT: 307,
164
+ PERMANENT_REDIRECT: 308,
165
+ BAD_REQUEST: 400,
166
+ UNAUTHORIZED: 401,
167
+ PAYMENT_REQUIRED: 402,
168
+ FORBIDDEN: 403,
169
+ NOT_FOUND: 404,
170
+ METHOD_NOT_ALLOWED: 405,
171
+ NOT_ACCEPTABLE: 406,
172
+ PROXY_AUTHENTICATION_REQUIRED: 407,
173
+ REQUEST_TIMEOUT: 408,
174
+ CONFLICT: 409,
175
+ GONE: 410,
176
+ LENGTH_REQUIRED: 411,
177
+ PRECONDITION_FAILED: 412,
178
+ PAYLOAD_TOO_LARGE: 413,
179
+ URI_TOO_LONG: 414,
180
+ UNSUPPORTED_MEDIA_TYPE: 415,
181
+ RANGE_NOT_SATISFIABLE: 416,
182
+ EXPECTATION_FAILED: 417,
183
+ IM_A_TEAPOT: 418,
184
+ PAGE_EXPIRED: 419, // Unofficial
185
+ ENHANCE_YOUR_CALM: 420, // Unofficial
186
+ MISDIRECTED_REQUEST: 421,
187
+ UNPROCESSABLE_ENTITY: 422,
188
+ LOCKED: 423,
189
+ FAILED_DEPENDENCY: 424,
190
+ TOO_EARLY: 425,
191
+ UPGRADE_REQUIRED: 426,
192
+ PRECONDITION_REQUIRED: 428,
193
+ TOO_MANY_REQUESTS: 429,
194
+ REQUEST_HEADER_FIELDS_TOO_LARGE_UNOFFICIAL: 430, // Unofficial
195
+ REQUEST_HEADER_FIELDS_TOO_LARGE: 431,
196
+ LOGIN_TIMEOUT: 440, // Unofficial
197
+ NO_RESPONSE: 444, // Unofficial
198
+ RETRY_WITH: 449, // Unofficial
199
+ BLOCKED_BY_PARENTAL_CONTROL: 450, // Unofficial
200
+ UNAVAILABLE_FOR_LEGAL_REASONS: 451,
201
+ CLIENT_CLOSED_LOAD_BALANCED_REQUEST: 460, // Unofficial
202
+ INVALID_X_FORWARDED_FOR: 463, // Unofficial
203
+ REQUEST_HEADER_TOO_LARGE: 494, // Unofficial
204
+ SSL_CERTIFICATE_ERROR: 495, // Unofficial
205
+ SSL_CERTIFICATE_REQUIRED: 496, // Unofficial
206
+ HTTP_REQUEST_SENT_TO_HTTPS_PORT: 497, // Unofficial
207
+ INVALID_TOKEN: 498, // Unofficial
208
+ CLIENT_CLOSED_REQUEST: 499, // Unofficial
209
+ INTERNAL_SERVER_ERROR: 500,
210
+ NOT_IMPLEMENTED: 501,
211
+ BAD_GATEWAY: 502,
212
+ SERVICE_UNAVAILABLE: 503,
213
+ GATEWAY_TIMEOUT: 504,
214
+ HTTP_VERSION_NOT_SUPPORTED: 505,
215
+ VARIANT_ALSO_NEGOTIATES: 506,
216
+ INSUFFICIENT_STORAGE: 507,
217
+ LOOP_DETECTED: 508,
218
+ BANDWIDTH_LIMIT_EXCEEDED: 509,
219
+ NOT_EXTENDED: 510,
220
+ NETWORK_AUTHENTICATION_REQUIRED: 511,
221
+ WEB_SERVER_UNKNOWN_ERROR: 520, // Unofficial
222
+ WEB_SERVER_IS_DOWN: 521, // Unofficial
223
+ CONNECTION_TIMEOUT: 522, // Unofficial
224
+ ORIGIN_IS_UNREACHABLE: 523, // Unofficial
225
+ TIMEOUT_OCCURED: 524, // Unofficial
226
+ SSL_HANDSHAKE_FAILED: 525, // Unofficial
227
+ INVALID_SSL_CERTIFICATE: 526, // Unofficial
228
+ RAILGUN_ERROR: 527, // Unofficial
229
+ SITE_IS_OVERLOADED: 529, // Unofficial
230
+ SITE_IS_FROZEN: 530, // Unofficial
231
+ IDENTITY_PROVIDER_AUTHENTICATION_ERROR: 561, // Unofficial
232
+ NETWORK_READ_TIMEOUT: 598, // Unofficial
233
+ NETWORK_CONNECT_TIMEOUT: 599, // Unofficial
234
+ };
235
+ exports.FINISH = {
236
+ SAFE: 0,
237
+ SAFE_WITH_CB: 1,
238
+ UNSAFE: 2,
239
+ };
240
+ exports.HEADER_STATE = {
241
+ GENERAL: 0,
242
+ CONNECTION: 1,
243
+ CONTENT_LENGTH: 2,
244
+ TRANSFER_ENCODING: 3,
245
+ UPGRADE: 4,
246
+ CONNECTION_KEEP_ALIVE: 5,
247
+ CONNECTION_CLOSE: 6,
248
+ CONNECTION_UPGRADE: 7,
249
+ TRANSFER_ENCODING_CHUNKED: 8,
250
+ };
251
+ // C headers
119
252
  exports.METHODS_HTTP = [
120
- METHODS.DELETE,
121
- METHODS.GET,
122
- METHODS.HEAD,
123
- METHODS.POST,
124
- METHODS.PUT,
125
- METHODS.CONNECT,
126
- METHODS.OPTIONS,
127
- METHODS.TRACE,
128
- METHODS.COPY,
129
- METHODS.LOCK,
130
- METHODS.MKCOL,
131
- METHODS.MOVE,
132
- METHODS.PROPFIND,
133
- METHODS.PROPPATCH,
134
- METHODS.SEARCH,
135
- METHODS.UNLOCK,
136
- METHODS.BIND,
137
- METHODS.REBIND,
138
- METHODS.UNBIND,
139
- METHODS.ACL,
140
- METHODS.REPORT,
141
- METHODS.MKACTIVITY,
142
- METHODS.CHECKOUT,
143
- METHODS.MERGE,
144
- METHODS['M-SEARCH'],
145
- METHODS.NOTIFY,
146
- METHODS.SUBSCRIBE,
147
- METHODS.UNSUBSCRIBE,
148
- METHODS.PATCH,
149
- METHODS.PURGE,
150
- METHODS.MKCALENDAR,
151
- METHODS.LINK,
152
- METHODS.UNLINK,
153
- METHODS.PRI,
253
+ exports.METHODS.DELETE,
254
+ exports.METHODS.GET,
255
+ exports.METHODS.HEAD,
256
+ exports.METHODS.POST,
257
+ exports.METHODS.PUT,
258
+ exports.METHODS.CONNECT,
259
+ exports.METHODS.OPTIONS,
260
+ exports.METHODS.TRACE,
261
+ exports.METHODS.COPY,
262
+ exports.METHODS.LOCK,
263
+ exports.METHODS.MKCOL,
264
+ exports.METHODS.MOVE,
265
+ exports.METHODS.PROPFIND,
266
+ exports.METHODS.PROPPATCH,
267
+ exports.METHODS.SEARCH,
268
+ exports.METHODS.UNLOCK,
269
+ exports.METHODS.BIND,
270
+ exports.METHODS.REBIND,
271
+ exports.METHODS.UNBIND,
272
+ exports.METHODS.ACL,
273
+ exports.METHODS.REPORT,
274
+ exports.METHODS.MKACTIVITY,
275
+ exports.METHODS.CHECKOUT,
276
+ exports.METHODS.MERGE,
277
+ exports.METHODS['M-SEARCH'],
278
+ exports.METHODS.NOTIFY,
279
+ exports.METHODS.SUBSCRIBE,
280
+ exports.METHODS.UNSUBSCRIBE,
281
+ exports.METHODS.PATCH,
282
+ exports.METHODS.PURGE,
283
+ exports.METHODS.MKCALENDAR,
284
+ exports.METHODS.LINK,
285
+ exports.METHODS.UNLINK,
286
+ exports.METHODS.PRI,
154
287
  // TODO(indutny): should we allow it with HTTP?
155
- METHODS.SOURCE,
288
+ exports.METHODS.SOURCE,
289
+ exports.METHODS.QUERY,
156
290
  ];
157
291
  exports.METHODS_ICE = [
158
- METHODS.SOURCE,
292
+ exports.METHODS.SOURCE,
159
293
  ];
160
294
  exports.METHODS_RTSP = [
161
- METHODS.OPTIONS,
162
- METHODS.DESCRIBE,
163
- METHODS.ANNOUNCE,
164
- METHODS.SETUP,
165
- METHODS.PLAY,
166
- METHODS.PAUSE,
167
- METHODS.TEARDOWN,
168
- METHODS.GET_PARAMETER,
169
- METHODS.SET_PARAMETER,
170
- METHODS.REDIRECT,
171
- METHODS.RECORD,
172
- METHODS.FLUSH,
295
+ exports.METHODS.OPTIONS,
296
+ exports.METHODS.DESCRIBE,
297
+ exports.METHODS.ANNOUNCE,
298
+ exports.METHODS.SETUP,
299
+ exports.METHODS.PLAY,
300
+ exports.METHODS.PAUSE,
301
+ exports.METHODS.TEARDOWN,
302
+ exports.METHODS.GET_PARAMETER,
303
+ exports.METHODS.SET_PARAMETER,
304
+ exports.METHODS.REDIRECT,
305
+ exports.METHODS.RECORD,
306
+ exports.METHODS.FLUSH,
173
307
  // For AirPlay
174
- METHODS.GET,
175
- METHODS.POST,
308
+ exports.METHODS.GET,
309
+ exports.METHODS.POST,
310
+ ];
311
+ exports.METHOD_MAP = (0, utils_1.enumToMap)(exports.METHODS);
312
+ exports.H_METHOD_MAP = Object.fromEntries(Object.entries(exports.METHODS).filter(([k]) => k.startsWith('H')));
313
+ exports.STATUSES_HTTP = [
314
+ exports.STATUSES.CONTINUE,
315
+ exports.STATUSES.SWITCHING_PROTOCOLS,
316
+ exports.STATUSES.PROCESSING,
317
+ exports.STATUSES.EARLY_HINTS,
318
+ exports.STATUSES.RESPONSE_IS_STALE,
319
+ exports.STATUSES.REVALIDATION_FAILED,
320
+ exports.STATUSES.DISCONNECTED_OPERATION,
321
+ exports.STATUSES.HEURISTIC_EXPIRATION,
322
+ exports.STATUSES.MISCELLANEOUS_WARNING,
323
+ exports.STATUSES.OK,
324
+ exports.STATUSES.CREATED,
325
+ exports.STATUSES.ACCEPTED,
326
+ exports.STATUSES.NON_AUTHORITATIVE_INFORMATION,
327
+ exports.STATUSES.NO_CONTENT,
328
+ exports.STATUSES.RESET_CONTENT,
329
+ exports.STATUSES.PARTIAL_CONTENT,
330
+ exports.STATUSES.MULTI_STATUS,
331
+ exports.STATUSES.ALREADY_REPORTED,
332
+ exports.STATUSES.TRANSFORMATION_APPLIED,
333
+ exports.STATUSES.IM_USED,
334
+ exports.STATUSES.MISCELLANEOUS_PERSISTENT_WARNING,
335
+ exports.STATUSES.MULTIPLE_CHOICES,
336
+ exports.STATUSES.MOVED_PERMANENTLY,
337
+ exports.STATUSES.FOUND,
338
+ exports.STATUSES.SEE_OTHER,
339
+ exports.STATUSES.NOT_MODIFIED,
340
+ exports.STATUSES.USE_PROXY,
341
+ exports.STATUSES.SWITCH_PROXY,
342
+ exports.STATUSES.TEMPORARY_REDIRECT,
343
+ exports.STATUSES.PERMANENT_REDIRECT,
344
+ exports.STATUSES.BAD_REQUEST,
345
+ exports.STATUSES.UNAUTHORIZED,
346
+ exports.STATUSES.PAYMENT_REQUIRED,
347
+ exports.STATUSES.FORBIDDEN,
348
+ exports.STATUSES.NOT_FOUND,
349
+ exports.STATUSES.METHOD_NOT_ALLOWED,
350
+ exports.STATUSES.NOT_ACCEPTABLE,
351
+ exports.STATUSES.PROXY_AUTHENTICATION_REQUIRED,
352
+ exports.STATUSES.REQUEST_TIMEOUT,
353
+ exports.STATUSES.CONFLICT,
354
+ exports.STATUSES.GONE,
355
+ exports.STATUSES.LENGTH_REQUIRED,
356
+ exports.STATUSES.PRECONDITION_FAILED,
357
+ exports.STATUSES.PAYLOAD_TOO_LARGE,
358
+ exports.STATUSES.URI_TOO_LONG,
359
+ exports.STATUSES.UNSUPPORTED_MEDIA_TYPE,
360
+ exports.STATUSES.RANGE_NOT_SATISFIABLE,
361
+ exports.STATUSES.EXPECTATION_FAILED,
362
+ exports.STATUSES.IM_A_TEAPOT,
363
+ exports.STATUSES.PAGE_EXPIRED,
364
+ exports.STATUSES.ENHANCE_YOUR_CALM,
365
+ exports.STATUSES.MISDIRECTED_REQUEST,
366
+ exports.STATUSES.UNPROCESSABLE_ENTITY,
367
+ exports.STATUSES.LOCKED,
368
+ exports.STATUSES.FAILED_DEPENDENCY,
369
+ exports.STATUSES.TOO_EARLY,
370
+ exports.STATUSES.UPGRADE_REQUIRED,
371
+ exports.STATUSES.PRECONDITION_REQUIRED,
372
+ exports.STATUSES.TOO_MANY_REQUESTS,
373
+ exports.STATUSES.REQUEST_HEADER_FIELDS_TOO_LARGE_UNOFFICIAL,
374
+ exports.STATUSES.REQUEST_HEADER_FIELDS_TOO_LARGE,
375
+ exports.STATUSES.LOGIN_TIMEOUT,
376
+ exports.STATUSES.NO_RESPONSE,
377
+ exports.STATUSES.RETRY_WITH,
378
+ exports.STATUSES.BLOCKED_BY_PARENTAL_CONTROL,
379
+ exports.STATUSES.UNAVAILABLE_FOR_LEGAL_REASONS,
380
+ exports.STATUSES.CLIENT_CLOSED_LOAD_BALANCED_REQUEST,
381
+ exports.STATUSES.INVALID_X_FORWARDED_FOR,
382
+ exports.STATUSES.REQUEST_HEADER_TOO_LARGE,
383
+ exports.STATUSES.SSL_CERTIFICATE_ERROR,
384
+ exports.STATUSES.SSL_CERTIFICATE_REQUIRED,
385
+ exports.STATUSES.HTTP_REQUEST_SENT_TO_HTTPS_PORT,
386
+ exports.STATUSES.INVALID_TOKEN,
387
+ exports.STATUSES.CLIENT_CLOSED_REQUEST,
388
+ exports.STATUSES.INTERNAL_SERVER_ERROR,
389
+ exports.STATUSES.NOT_IMPLEMENTED,
390
+ exports.STATUSES.BAD_GATEWAY,
391
+ exports.STATUSES.SERVICE_UNAVAILABLE,
392
+ exports.STATUSES.GATEWAY_TIMEOUT,
393
+ exports.STATUSES.HTTP_VERSION_NOT_SUPPORTED,
394
+ exports.STATUSES.VARIANT_ALSO_NEGOTIATES,
395
+ exports.STATUSES.INSUFFICIENT_STORAGE,
396
+ exports.STATUSES.LOOP_DETECTED,
397
+ exports.STATUSES.BANDWIDTH_LIMIT_EXCEEDED,
398
+ exports.STATUSES.NOT_EXTENDED,
399
+ exports.STATUSES.NETWORK_AUTHENTICATION_REQUIRED,
400
+ exports.STATUSES.WEB_SERVER_UNKNOWN_ERROR,
401
+ exports.STATUSES.WEB_SERVER_IS_DOWN,
402
+ exports.STATUSES.CONNECTION_TIMEOUT,
403
+ exports.STATUSES.ORIGIN_IS_UNREACHABLE,
404
+ exports.STATUSES.TIMEOUT_OCCURED,
405
+ exports.STATUSES.SSL_HANDSHAKE_FAILED,
406
+ exports.STATUSES.INVALID_SSL_CERTIFICATE,
407
+ exports.STATUSES.RAILGUN_ERROR,
408
+ exports.STATUSES.SITE_IS_OVERLOADED,
409
+ exports.STATUSES.SITE_IS_FROZEN,
410
+ exports.STATUSES.IDENTITY_PROVIDER_AUTHENTICATION_ERROR,
411
+ exports.STATUSES.NETWORK_READ_TIMEOUT,
412
+ exports.STATUSES.NETWORK_CONNECT_TIMEOUT,
176
413
  ];
177
- exports.METHOD_MAP = utils_1.enumToMap(METHODS);
178
- exports.H_METHOD_MAP = {};
179
- Object.keys(exports.METHOD_MAP).forEach((key) => {
180
- if (/^H/.test(key)) {
181
- exports.H_METHOD_MAP[key] = exports.METHOD_MAP[key];
182
- }
183
- });
184
- var FINISH;
185
- (function (FINISH) {
186
- FINISH[FINISH["SAFE"] = 0] = "SAFE";
187
- FINISH[FINISH["SAFE_WITH_CB"] = 1] = "SAFE_WITH_CB";
188
- FINISH[FINISH["UNSAFE"] = 2] = "UNSAFE";
189
- })(FINISH = exports.FINISH || (exports.FINISH = {}));
190
414
  exports.ALPHA = [];
191
415
  for (let i = 'A'.charCodeAt(0); i <= 'Z'.charCodeAt(0); i++) {
192
416
  // Upper case
@@ -213,7 +437,7 @@ exports.USERINFO_CHARS = exports.ALPHANUM
213
437
  .concat(exports.MARK)
214
438
  .concat(['%', ';', ':', '&', '=', '+', '$', ',']);
215
439
  // TODO(indutny): use RFC
216
- exports.STRICT_URL_CHAR = [
440
+ exports.URL_CHAR = [
217
441
  '!', '"', '$', '%', '&', '\'',
218
442
  '(', ')', '*', '+', ',', '-', '.', '/',
219
443
  ':', ';', '<', '=', '>',
@@ -221,12 +445,6 @@ exports.STRICT_URL_CHAR = [
221
445
  '`',
222
446
  '{', '|', '}', '~',
223
447
  ].concat(exports.ALPHANUM);
224
- exports.URL_CHAR = exports.STRICT_URL_CHAR
225
- .concat(['\t', '\f']);
226
- // All characters with 0x80 bit set to 1
227
- for (let i = 0x80; i <= 0xff; i++) {
228
- exports.URL_CHAR.push(i);
229
- }
230
448
  exports.HEX = exports.NUM.concat(['a', 'b', 'c', 'd', 'e', 'f', 'A', 'B', 'C', 'D', 'E', 'F']);
231
449
  /* Tokens as defined by rfc 2616. Also lowercases them.
232
450
  * token = 1*<any CHAR except CTLs or separators>
@@ -235,13 +453,12 @@ exports.HEX = exports.NUM.concat(['a', 'b', 'c', 'd', 'e', 'f', 'A', 'B', 'C', '
235
453
  * | "/" | "[" | "]" | "?" | "="
236
454
  * | "{" | "}" | SP | HT
237
455
  */
238
- exports.STRICT_TOKEN = [
456
+ exports.TOKEN = [
239
457
  '!', '#', '$', '%', '&', '\'',
240
458
  '*', '+', '-', '.',
241
459
  '^', '_', '`',
242
460
  '|', '~',
243
461
  ].concat(exports.ALPHANUM);
244
- exports.TOKEN = exports.STRICT_TOKEN.concat([' ']);
245
462
  /*
246
463
  * Verify that a char is a valid visible (printable) US-ASCII
247
464
  * character or %x80-FF
@@ -254,25 +471,28 @@ for (let i = 32; i <= 255; i++) {
254
471
  }
255
472
  // ',' = \x44
256
473
  exports.CONNECTION_TOKEN_CHARS = exports.HEADER_CHARS.filter((c) => c !== 44);
474
+ exports.QUOTED_STRING = ['\t', ' '];
475
+ for (let i = 0x21; i <= 0xff; i++) {
476
+ if (i !== 0x22 && i !== 0x5c) { // All characters in ASCII except \ and "
477
+ exports.QUOTED_STRING.push(i);
478
+ }
479
+ }
480
+ exports.HTAB_SP_VCHAR_OBS_TEXT = ['\t', ' '];
481
+ // VCHAR: https://tools.ietf.org/html/rfc5234#appendix-B.1
482
+ for (let i = 0x21; i <= 0x7E; i++) {
483
+ exports.HTAB_SP_VCHAR_OBS_TEXT.push(i);
484
+ }
485
+ // OBS_TEXT: https://datatracker.ietf.org/doc/html/rfc9110#name-collected-abnf
486
+ for (let i = 0x80; i <= 0xff; i++) {
487
+ exports.HTAB_SP_VCHAR_OBS_TEXT.push(i);
488
+ }
257
489
  exports.MAJOR = exports.NUM_MAP;
258
490
  exports.MINOR = exports.MAJOR;
259
- var HEADER_STATE;
260
- (function (HEADER_STATE) {
261
- HEADER_STATE[HEADER_STATE["GENERAL"] = 0] = "GENERAL";
262
- HEADER_STATE[HEADER_STATE["CONNECTION"] = 1] = "CONNECTION";
263
- HEADER_STATE[HEADER_STATE["CONTENT_LENGTH"] = 2] = "CONTENT_LENGTH";
264
- HEADER_STATE[HEADER_STATE["TRANSFER_ENCODING"] = 3] = "TRANSFER_ENCODING";
265
- HEADER_STATE[HEADER_STATE["UPGRADE"] = 4] = "UPGRADE";
266
- HEADER_STATE[HEADER_STATE["CONNECTION_KEEP_ALIVE"] = 5] = "CONNECTION_KEEP_ALIVE";
267
- HEADER_STATE[HEADER_STATE["CONNECTION_CLOSE"] = 6] = "CONNECTION_CLOSE";
268
- HEADER_STATE[HEADER_STATE["CONNECTION_UPGRADE"] = 7] = "CONNECTION_UPGRADE";
269
- HEADER_STATE[HEADER_STATE["TRANSFER_ENCODING_CHUNKED"] = 8] = "TRANSFER_ENCODING_CHUNKED";
270
- })(HEADER_STATE = exports.HEADER_STATE || (exports.HEADER_STATE = {}));
271
491
  exports.SPECIAL_HEADERS = {
272
- 'connection': HEADER_STATE.CONNECTION,
273
- 'content-length': HEADER_STATE.CONTENT_LENGTH,
274
- 'proxy-connection': HEADER_STATE.CONNECTION,
275
- 'transfer-encoding': HEADER_STATE.TRANSFER_ENCODING,
276
- 'upgrade': HEADER_STATE.UPGRADE,
492
+ 'connection': exports.HEADER_STATE.CONNECTION,
493
+ 'content-length': exports.HEADER_STATE.CONTENT_LENGTH,
494
+ 'proxy-connection': exports.HEADER_STATE.CONNECTION,
495
+ 'transfer-encoding': exports.HEADER_STATE.TRANSFER_ENCODING,
496
+ 'upgrade': exports.HEADER_STATE.UPGRADE,
277
497
  };
278
498
  //# sourceMappingURL=constants.js.map