zmdms-utils 0.0.81 → 0.0.82

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 (160) hide show
  1. package/dist/index.d.ts +0 -1
  2. package/dist/index.js +0 -1
  3. package/package.json +2 -6
  4. package/src/index.ts +0 -3
  5. package/dist/es/_virtual/FastBufferList.js +0 -7
  6. package/dist/es/_virtual/_commonjs-dynamic-modules.js +0 -5
  7. package/dist/es/_virtual/browser.js +0 -7
  8. package/dist/es/_virtual/browser2.js +0 -7
  9. package/dist/es/_virtual/debug.js +0 -7
  10. package/dist/es/_virtual/event.js +0 -7
  11. package/dist/es/_virtual/http-parser.js +0 -3
  12. package/dist/es/_virtual/iframe.js +0 -7
  13. package/dist/es/_virtual/index.js +0 -7
  14. package/dist/es/_virtual/index2.js +0 -7
  15. package/dist/es/_virtual/index3.js +0 -7
  16. package/dist/es/_virtual/index4.js +0 -7
  17. package/dist/es/_virtual/index5.js +0 -7
  18. package/dist/es/_virtual/index6.js +0 -7
  19. package/dist/es/_virtual/index7.js +0 -3
  20. package/dist/es/_virtual/index8.js +0 -7
  21. package/dist/es/_virtual/index9.js +0 -7
  22. package/dist/es/_virtual/inherits.js +0 -7
  23. package/dist/es/_virtual/inherits_browser.js +0 -7
  24. package/dist/es/_virtual/json3.js +0 -7
  25. package/dist/es/_virtual/node.js +0 -7
  26. package/dist/es/_virtual/node2.js +0 -7
  27. package/dist/es/_virtual/stomp-node.js +0 -3
  28. package/dist/es/_virtual/stomp.js +0 -3
  29. package/dist/es/_virtual/streams.js +0 -3
  30. package/dist/es/_virtual/utils.js +0 -3
  31. package/dist/es/node_modules/bufferutil/fallback.js +0 -43
  32. package/dist/es/node_modules/bufferutil/index.js +0 -21
  33. package/dist/es/node_modules/debug/src/browser.js +0 -192
  34. package/dist/es/node_modules/debug/src/common.js +0 -259
  35. package/dist/es/node_modules/debug/src/index.js +0 -25
  36. package/dist/es/node_modules/debug/src/node.js +0 -192
  37. package/dist/es/node_modules/eventsource/lib/eventsource.js +0 -493
  38. package/dist/es/node_modules/faye-websocket/lib/faye/eventsource.js +0 -150
  39. package/dist/es/node_modules/faye-websocket/lib/faye/websocket/api/event.js +0 -31
  40. package/dist/es/node_modules/faye-websocket/lib/faye/websocket/api/event_target.js +0 -41
  41. package/dist/es/node_modules/faye-websocket/lib/faye/websocket/api.js +0 -205
  42. package/dist/es/node_modules/faye-websocket/lib/faye/websocket/client.js +0 -107
  43. package/dist/es/node_modules/faye-websocket/lib/faye/websocket.js +0 -47
  44. package/dist/es/node_modules/has-flag/index.js +0 -17
  45. package/dist/es/node_modules/http-parser-js/http-parser.js +0 -471
  46. package/dist/es/node_modules/inherits/inherits.js +0 -14
  47. package/dist/es/node_modules/inherits/inherits_browser.js +0 -38
  48. package/dist/es/node_modules/is-typedarray/index.js +0 -51
  49. package/dist/es/node_modules/json3/lib/json3.js +0 -937
  50. package/dist/es/node_modules/ms/index.js +0 -172
  51. package/dist/es/node_modules/node-gyp-build/index.js +0 -21
  52. package/dist/es/node_modules/node-gyp-build/node-gyp-build.js +0 -222
  53. package/dist/es/node_modules/querystringify/index.js +0 -120
  54. package/dist/es/node_modules/requires-port/index.js +0 -38
  55. package/dist/es/node_modules/safe-buffer/index.js +0 -71
  56. package/dist/es/node_modules/supports-color/index.js +0 -143
  57. package/dist/es/node_modules/typedarray-to-buffer/index.js +0 -37
  58. package/dist/es/node_modules/url-parse/index.js +0 -594
  59. package/dist/es/node_modules/utf-8-validate/fallback.js +0 -71
  60. package/dist/es/node_modules/utf-8-validate/index.js +0 -21
  61. package/dist/es/node_modules/websocket/index.js +0 -15
  62. package/dist/es/node_modules/websocket/lib/Deprecation.js +0 -42
  63. package/dist/es/node_modules/websocket/lib/W3CWebSocket.js +0 -268
  64. package/dist/es/node_modules/websocket/lib/WebSocketClient.js +0 -380
  65. package/dist/es/node_modules/websocket/lib/WebSocketConnection.js +0 -914
  66. package/dist/es/node_modules/websocket/lib/WebSocketFrame.js +0 -293
  67. package/dist/es/node_modules/websocket/lib/WebSocketRequest.js +0 -543
  68. package/dist/es/node_modules/websocket/lib/WebSocketRouter.js +0 -172
  69. package/dist/es/node_modules/websocket/lib/WebSocketRouterRequest.js +0 -67
  70. package/dist/es/node_modules/websocket/lib/WebSocketServer.js +0 -272
  71. package/dist/es/node_modules/websocket/lib/utils.js +0 -80
  72. package/dist/es/node_modules/websocket/lib/version.js +0 -13
  73. package/dist/es/node_modules/websocket/lib/websocket.js +0 -31
  74. package/dist/es/node_modules/websocket/node_modules/debug/src/browser.js +0 -199
  75. package/dist/es/node_modules/websocket/node_modules/debug/src/debug.js +0 -215
  76. package/dist/es/node_modules/websocket/node_modules/debug/src/index.js +0 -25
  77. package/dist/es/node_modules/websocket/node_modules/debug/src/node.js +0 -266
  78. package/dist/es/node_modules/websocket/node_modules/ms/index.js +0 -162
  79. package/dist/es/node_modules/websocket/package.json.js +0 -77
  80. package/dist/es/node_modules/websocket/vendor/FastBufferList.js +0 -205
  81. package/dist/es/node_modules/websocket-driver/lib/websocket/driver/base.js +0 -202
  82. package/dist/es/node_modules/websocket-driver/lib/websocket/driver/client.js +0 -152
  83. package/dist/es/node_modules/websocket-driver/lib/websocket/driver/draft75.js +0 -128
  84. package/dist/es/node_modules/websocket-driver/lib/websocket/driver/draft76.js +0 -124
  85. package/dist/es/node_modules/websocket-driver/lib/websocket/driver/headers.js +0 -44
  86. package/dist/es/node_modules/websocket-driver/lib/websocket/driver/hybi/frame.js +0 -21
  87. package/dist/es/node_modules/websocket-driver/lib/websocket/driver/hybi/message.js +0 -37
  88. package/dist/es/node_modules/websocket-driver/lib/websocket/driver/hybi.js +0 -492
  89. package/dist/es/node_modules/websocket-driver/lib/websocket/driver/proxy.js +0 -108
  90. package/dist/es/node_modules/websocket-driver/lib/websocket/driver/server.js +0 -119
  91. package/dist/es/node_modules/websocket-driver/lib/websocket/driver/stream_reader.js +0 -72
  92. package/dist/es/node_modules/websocket-driver/lib/websocket/driver.js +0 -47
  93. package/dist/es/node_modules/websocket-driver/lib/websocket/http_parser.js +0 -140
  94. package/dist/es/node_modules/websocket-driver/lib/websocket/streams.js +0 -150
  95. package/dist/es/node_modules/websocket-extensions/lib/parser.js +0 -103
  96. package/dist/es/node_modules/websocket-extensions/lib/pipeline/cell.js +0 -56
  97. package/dist/es/node_modules/websocket-extensions/lib/pipeline/functor.js +0 -74
  98. package/dist/es/node_modules/websocket-extensions/lib/pipeline/index.js +0 -50
  99. package/dist/es/node_modules/websocket-extensions/lib/pipeline/pledge.js +0 -39
  100. package/dist/es/node_modules/websocket-extensions/lib/pipeline/ring_buffer.js +0 -66
  101. package/dist/es/node_modules/websocket-extensions/lib/websocket_extensions.js +0 -165
  102. package/dist/es/node_modules/yaeti/index.js +0 -17
  103. package/dist/es/node_modules/yaeti/lib/Event.js +0 -24
  104. package/dist/es/node_modules/yaeti/lib/EventTarget.js +0 -130
  105. package/dist/es/node_modules/zt-sockjs-client/lib/entry.js +0 -14
  106. package/dist/es/node_modules/zt-sockjs-client/lib/event/close.js +0 -21
  107. package/dist/es/node_modules/zt-sockjs-client/lib/event/event.js +0 -22
  108. package/dist/es/node_modules/zt-sockjs-client/lib/event/eventtarget.js +0 -62
  109. package/dist/es/node_modules/zt-sockjs-client/lib/event/trans-message.js +0 -19
  110. package/dist/es/node_modules/zt-sockjs-client/lib/facade.js +0 -40
  111. package/dist/es/node_modules/zt-sockjs-client/lib/iframe-bootstrap.js +0 -122
  112. package/dist/es/node_modules/zt-sockjs-client/lib/info-ajax.js +0 -57
  113. package/dist/es/node_modules/zt-sockjs-client/lib/info-iframe-receiver.js +0 -50
  114. package/dist/es/node_modules/zt-sockjs-client/lib/info-iframe.js +0 -81
  115. package/dist/es/node_modules/zt-sockjs-client/lib/info-receiver.js +0 -101
  116. package/dist/es/node_modules/zt-sockjs-client/lib/location.js +0 -12
  117. package/dist/es/node_modules/zt-sockjs-client/lib/main.js +0 -413
  118. package/dist/es/node_modules/zt-sockjs-client/lib/shims.js +0 -449
  119. package/dist/es/node_modules/zt-sockjs-client/lib/transport/driver/websocket.js +0 -5
  120. package/dist/es/node_modules/zt-sockjs-client/lib/transport/driver/xhr.js +0 -80
  121. package/dist/es/node_modules/zt-sockjs-client/lib/transport/eventsource.js +0 -34
  122. package/dist/es/node_modules/zt-sockjs-client/lib/transport/htmlfile.js +0 -31
  123. package/dist/es/node_modules/zt-sockjs-client/lib/transport/iframe.js +0 -154
  124. package/dist/es/node_modules/zt-sockjs-client/lib/transport/jsonp-polling.js +0 -41
  125. package/dist/es/node_modules/zt-sockjs-client/lib/transport/lib/ajax-based.js +0 -55
  126. package/dist/es/node_modules/zt-sockjs-client/lib/transport/lib/buffered-sender.js +0 -92
  127. package/dist/es/node_modules/zt-sockjs-client/lib/transport/lib/iframe-wrap.js +0 -39
  128. package/dist/es/node_modules/zt-sockjs-client/lib/transport/lib/polling.js +0 -65
  129. package/dist/es/node_modules/zt-sockjs-client/lib/transport/lib/sender-receiver.js +0 -52
  130. package/dist/es/node_modules/zt-sockjs-client/lib/transport/receiver/eventsource.js +0 -69
  131. package/dist/es/node_modules/zt-sockjs-client/lib/transport/receiver/htmlfile.js +0 -96
  132. package/dist/es/node_modules/zt-sockjs-client/lib/transport/receiver/jsonp.js +0 -193
  133. package/dist/es/node_modules/zt-sockjs-client/lib/transport/receiver/xhr.js +0 -75
  134. package/dist/es/node_modules/zt-sockjs-client/lib/transport/sender/jsonp.js +0 -104
  135. package/dist/es/node_modules/zt-sockjs-client/lib/transport/sender/xdr.js +0 -113
  136. package/dist/es/node_modules/zt-sockjs-client/lib/transport/sender/xhr-cors.js +0 -19
  137. package/dist/es/node_modules/zt-sockjs-client/lib/transport/sender/xhr-fake.js +0 -28
  138. package/dist/es/node_modules/zt-sockjs-client/lib/transport/sender/xhr-local.js +0 -21
  139. package/dist/es/node_modules/zt-sockjs-client/lib/transport/websocket.js +0 -108
  140. package/dist/es/node_modules/zt-sockjs-client/lib/transport/xdr-polling.js +0 -30
  141. package/dist/es/node_modules/zt-sockjs-client/lib/transport/xdr-streaming.js +0 -38
  142. package/dist/es/node_modules/zt-sockjs-client/lib/transport/xhr-polling.js +0 -40
  143. package/dist/es/node_modules/zt-sockjs-client/lib/transport/xhr-streaming.js +0 -50
  144. package/dist/es/node_modules/zt-sockjs-client/lib/transport-list.js +0 -28
  145. package/dist/es/node_modules/zt-sockjs-client/lib/utils/browser.js +0 -29
  146. package/dist/es/node_modules/zt-sockjs-client/lib/utils/escape.js +0 -53
  147. package/dist/es/node_modules/zt-sockjs-client/lib/utils/event.js +0 -78
  148. package/dist/es/node_modules/zt-sockjs-client/lib/utils/iframe.js +0 -205
  149. package/dist/es/node_modules/zt-sockjs-client/lib/utils/log.js +0 -20
  150. package/dist/es/node_modules/zt-sockjs-client/lib/utils/object.js +0 -24
  151. package/dist/es/node_modules/zt-sockjs-client/lib/utils/random.js +0 -30
  152. package/dist/es/node_modules/zt-sockjs-client/lib/utils/transport.js +0 -52
  153. package/dist/es/node_modules/zt-sockjs-client/lib/utils/url.js +0 -54
  154. package/dist/es/node_modules/zt-sockjs-client/lib/version.js +0 -11
  155. package/dist/es/node_modules/zt-stompjs/index.js +0 -23
  156. package/dist/es/node_modules/zt-stompjs/lib/stomp-node.js +0 -117
  157. package/dist/es/node_modules/zt-stompjs/lib/stomp.js +0 -536
  158. package/dist/es/stompClient.d.ts +0 -55
  159. package/dist/es/stompClient.js +0 -379
  160. package/src/stompClient.ts +0 -449
@@ -1,492 +0,0 @@
1
- import '../../../../safe-buffer/index.js';
2
- import require$$0 from 'crypto';
3
- import require$$1 from 'util';
4
- import websocket_extensions from '../../../../websocket-extensions/lib/websocket_extensions.js';
5
- import base from './base.js';
6
- import frame from './hybi/frame.js';
7
- import message from './hybi/message.js';
8
- import { exports as safeBufferExports } from '../../../../../_virtual/index9.js';
9
-
10
- var Buffer = safeBufferExports.Buffer,
11
- crypto = require$$0,
12
- util = require$$1,
13
- Extensions = websocket_extensions,
14
- Base = base,
15
- Frame = frame,
16
- Message = message;
17
-
18
- var Hybi = function(request, url, options) {
19
- Base.apply(this, arguments);
20
-
21
- this._extensions = new Extensions();
22
- this._stage = 0;
23
- this._masking = this._options.masking;
24
- this._protocols = this._options.protocols || [];
25
- this._requireMasking = this._options.requireMasking;
26
- this._pingCallbacks = {};
27
-
28
- if (typeof this._protocols === 'string')
29
- this._protocols = this._protocols.split(/ *, */);
30
-
31
- if (!this._request) return;
32
-
33
- var protos = this._request.headers['sec-websocket-protocol'],
34
- supported = this._protocols;
35
-
36
- if (protos !== undefined) {
37
- if (typeof protos === 'string') protos = protos.split(/ *, */);
38
- this.protocol = protos.filter(function(p) { return supported.indexOf(p) >= 0 })[0];
39
- }
40
-
41
- this.version = 'hybi-' + Hybi.VERSION;
42
- };
43
- util.inherits(Hybi, Base);
44
-
45
- Hybi.VERSION = '13';
46
-
47
- Hybi.mask = function(payload, mask, offset) {
48
- if (!mask || mask.length === 0) return payload;
49
- offset = offset || 0;
50
-
51
- for (var i = 0, n = payload.length - offset; i < n; i++) {
52
- payload[offset + i] = payload[offset + i] ^ mask[i % 4];
53
- }
54
- return payload;
55
- };
56
-
57
- Hybi.generateAccept = function(key) {
58
- var sha1 = crypto.createHash('sha1');
59
- sha1.update(key + Hybi.GUID);
60
- return sha1.digest('base64');
61
- };
62
-
63
- Hybi.GUID = '258EAFA5-E914-47DA-95CA-C5AB0DC85B11';
64
-
65
- var instance = {
66
- FIN: 0x80,
67
- MASK: 0x80,
68
- RSV1: 0x40,
69
- RSV2: 0x20,
70
- RSV3: 0x10,
71
- OPCODE: 0x0F,
72
- LENGTH: 0x7F,
73
-
74
- OPCODES: {
75
- continuation: 0,
76
- text: 1,
77
- binary: 2,
78
- close: 8,
79
- ping: 9,
80
- pong: 10
81
- },
82
-
83
- OPCODE_CODES: [0, 1, 2, 8, 9, 10],
84
- MESSAGE_OPCODES: [0, 1, 2],
85
- OPENING_OPCODES: [1, 2],
86
-
87
- ERRORS: {
88
- normal_closure: 1000,
89
- going_away: 1001,
90
- protocol_error: 1002,
91
- unacceptable: 1003,
92
- encoding_error: 1007,
93
- policy_violation: 1008,
94
- too_large: 1009,
95
- extension_error: 1010,
96
- unexpected_condition: 1011
97
- },
98
-
99
- ERROR_CODES: [1000, 1001, 1002, 1003, 1007, 1008, 1009, 1010, 1011],
100
- DEFAULT_ERROR_CODE: 1000,
101
- MIN_RESERVED_ERROR: 3000,
102
- MAX_RESERVED_ERROR: 4999,
103
-
104
- // http://www.w3.org/International/questions/qa-forms-utf-8.en.php
105
- UTF8_MATCH: /^([\x00-\x7F]|[\xC2-\xDF][\x80-\xBF]|\xE0[\xA0-\xBF][\x80-\xBF]|[\xE1-\xEC\xEE\xEF][\x80-\xBF]{2}|\xED[\x80-\x9F][\x80-\xBF]|\xF0[\x90-\xBF][\x80-\xBF]{2}|[\xF1-\xF3][\x80-\xBF]{3}|\xF4[\x80-\x8F][\x80-\xBF]{2})*$/,
106
-
107
- addExtension: function(extension) {
108
- this._extensions.add(extension);
109
- return true;
110
- },
111
-
112
- parse: function(chunk) {
113
- this._reader.put(chunk);
114
- var buffer = true;
115
- while (buffer) {
116
- switch (this._stage) {
117
- case 0:
118
- buffer = this._reader.read(1);
119
- if (buffer) this._parseOpcode(buffer[0]);
120
- break;
121
-
122
- case 1:
123
- buffer = this._reader.read(1);
124
- if (buffer) this._parseLength(buffer[0]);
125
- break;
126
-
127
- case 2:
128
- buffer = this._reader.read(this._frame.lengthBytes);
129
- if (buffer) this._parseExtendedLength(buffer);
130
- break;
131
-
132
- case 3:
133
- buffer = this._reader.read(4);
134
- if (buffer) {
135
- this._stage = 4;
136
- this._frame.maskingKey = buffer;
137
- }
138
- break;
139
-
140
- case 4:
141
- buffer = this._reader.read(this._frame.length);
142
- if (buffer) {
143
- this._stage = 0;
144
- this._emitFrame(buffer);
145
- }
146
- break;
147
-
148
- default:
149
- buffer = null;
150
- }
151
- }
152
- },
153
-
154
- text: function(message) {
155
- if (this.readyState > 1) return false;
156
- return this.frame(message, 'text');
157
- },
158
-
159
- binary: function(message) {
160
- if (this.readyState > 1) return false;
161
- return this.frame(message, 'binary');
162
- },
163
-
164
- ping: function(message, callback) {
165
- if (this.readyState > 1) return false;
166
- message = message || '';
167
- if (callback) this._pingCallbacks[message] = callback;
168
- return this.frame(message, 'ping');
169
- },
170
-
171
- pong: function(message) {
172
- if (this.readyState > 1) return false;
173
- message = message ||'';
174
- return this.frame(message, 'pong');
175
- },
176
-
177
- close: function(reason, code) {
178
- reason = reason || '';
179
- code = code || this.ERRORS.normal_closure;
180
-
181
- if (this.readyState <= 0) {
182
- this.readyState = 3;
183
- this.emit('close', new Base.CloseEvent(code, reason));
184
- return true;
185
- } else if (this.readyState === 1) {
186
- this.readyState = 2;
187
- this._extensions.close(function() { this.frame(reason, 'close', code); }, this);
188
- return true;
189
- } else {
190
- return false;
191
- }
192
- },
193
-
194
- frame: function(buffer, type, code) {
195
- if (this.readyState <= 0) return this._queue([buffer, type, code]);
196
- if (this.readyState > 2) return false;
197
-
198
- if (buffer instanceof Array) buffer = Buffer.from(buffer);
199
- if (typeof buffer === 'number') buffer = buffer.toString();
200
-
201
- var message = new Message(),
202
- isText = (typeof buffer === 'string'),
203
- payload, copy;
204
-
205
- message.rsv1 = message.rsv2 = message.rsv3 = false;
206
- message.opcode = this.OPCODES[type || (isText ? 'text' : 'binary')];
207
-
208
- payload = isText ? Buffer.from(buffer, 'utf8') : buffer;
209
-
210
- if (code) {
211
- copy = payload;
212
- payload = Buffer.allocUnsafe(2 + copy.length);
213
- payload.writeUInt16BE(code, 0);
214
- copy.copy(payload, 2);
215
- }
216
- message.data = payload;
217
-
218
- var onMessageReady = function(message) {
219
- var frame = new Frame();
220
-
221
- frame.final = true;
222
- frame.rsv1 = message.rsv1;
223
- frame.rsv2 = message.rsv2;
224
- frame.rsv3 = message.rsv3;
225
- frame.opcode = message.opcode;
226
- frame.masked = !!this._masking;
227
- frame.length = message.data.length;
228
- frame.payload = message.data;
229
-
230
- if (frame.masked) frame.maskingKey = crypto.randomBytes(4);
231
-
232
- this._sendFrame(frame);
233
- };
234
-
235
- if (this.MESSAGE_OPCODES.indexOf(message.opcode) >= 0)
236
- this._extensions.processOutgoingMessage(message, function(error, message) {
237
- if (error) return this._fail('extension_error', error.message);
238
- onMessageReady.call(this, message);
239
- }, this);
240
- else
241
- onMessageReady.call(this, message);
242
-
243
- return true;
244
- },
245
-
246
- _sendFrame: function(frame) {
247
- var length = frame.length,
248
- header = (length <= 125) ? 2 : (length <= 65535 ? 4 : 10),
249
- offset = header + (frame.masked ? 4 : 0),
250
- buffer = Buffer.allocUnsafe(offset + length),
251
- masked = frame.masked ? this.MASK : 0;
252
-
253
- buffer[0] = (frame.final ? this.FIN : 0) |
254
- (frame.rsv1 ? this.RSV1 : 0) |
255
- (frame.rsv2 ? this.RSV2 : 0) |
256
- (frame.rsv3 ? this.RSV3 : 0) |
257
- frame.opcode;
258
-
259
- if (length <= 125) {
260
- buffer[1] = masked | length;
261
- } else if (length <= 65535) {
262
- buffer[1] = masked | 126;
263
- buffer.writeUInt16BE(length, 2);
264
- } else {
265
- buffer[1] = masked | 127;
266
- buffer.writeUInt32BE(Math.floor(length / 0x100000000), 2);
267
- buffer.writeUInt32BE(length % 0x100000000, 6);
268
- }
269
-
270
- frame.payload.copy(buffer, offset);
271
-
272
- if (frame.masked) {
273
- frame.maskingKey.copy(buffer, header);
274
- Hybi.mask(buffer, frame.maskingKey, offset);
275
- }
276
-
277
- this._write(buffer);
278
- },
279
-
280
- _handshakeResponse: function() {
281
- var secKey = this._request.headers['sec-websocket-key'],
282
- version = this._request.headers['sec-websocket-version'];
283
-
284
- if (version !== Hybi.VERSION)
285
- throw new Error('Unsupported WebSocket version: ' + version);
286
-
287
- if (typeof secKey !== 'string')
288
- throw new Error('Missing handshake request header: Sec-WebSocket-Key');
289
-
290
- this._headers.set('Upgrade', 'websocket');
291
- this._headers.set('Connection', 'Upgrade');
292
- this._headers.set('Sec-WebSocket-Accept', Hybi.generateAccept(secKey));
293
-
294
- if (this.protocol) this._headers.set('Sec-WebSocket-Protocol', this.protocol);
295
-
296
- var extensions = this._extensions.generateResponse(this._request.headers['sec-websocket-extensions']);
297
- if (extensions) this._headers.set('Sec-WebSocket-Extensions', extensions);
298
-
299
- var start = 'HTTP/1.1 101 Switching Protocols',
300
- headers = [start, this._headers.toString(), ''];
301
-
302
- return Buffer.from(headers.join('\r\n'), 'utf8');
303
- },
304
-
305
- _shutdown: function(code, reason, error) {
306
- delete this._frame;
307
- delete this._message;
308
- this._stage = 5;
309
-
310
- var sendCloseFrame = (this.readyState === 1);
311
- this.readyState = 2;
312
-
313
- this._extensions.close(function() {
314
- if (sendCloseFrame) this.frame(reason, 'close', code);
315
- this.readyState = 3;
316
- if (error) this.emit('error', new Error(reason));
317
- this.emit('close', new Base.CloseEvent(code, reason));
318
- }, this);
319
- },
320
-
321
- _fail: function(type, message) {
322
- if (this.readyState > 1) return;
323
- this._shutdown(this.ERRORS[type], message, true);
324
- },
325
-
326
- _parseOpcode: function(octet) {
327
- var rsvs = [this.RSV1, this.RSV2, this.RSV3].map(function(rsv) {
328
- return (octet & rsv) === rsv;
329
- });
330
-
331
- var frame = this._frame = new Frame();
332
-
333
- frame.final = (octet & this.FIN) === this.FIN;
334
- frame.rsv1 = rsvs[0];
335
- frame.rsv2 = rsvs[1];
336
- frame.rsv3 = rsvs[2];
337
- frame.opcode = (octet & this.OPCODE);
338
-
339
- this._stage = 1;
340
-
341
- if (!this._extensions.validFrameRsv(frame))
342
- return this._fail('protocol_error',
343
- 'One or more reserved bits are on: reserved1 = ' + (frame.rsv1 ? 1 : 0) +
344
- ', reserved2 = ' + (frame.rsv2 ? 1 : 0) +
345
- ', reserved3 = ' + (frame.rsv3 ? 1 : 0));
346
-
347
- if (this.OPCODE_CODES.indexOf(frame.opcode) < 0)
348
- return this._fail('protocol_error', 'Unrecognized frame opcode: ' + frame.opcode);
349
-
350
- if (this.MESSAGE_OPCODES.indexOf(frame.opcode) < 0 && !frame.final)
351
- return this._fail('protocol_error', 'Received fragmented control frame: opcode = ' + frame.opcode);
352
-
353
- if (this._message && this.OPENING_OPCODES.indexOf(frame.opcode) >= 0)
354
- return this._fail('protocol_error', 'Received new data frame but previous continuous frame is unfinished');
355
- },
356
-
357
- _parseLength: function(octet) {
358
- var frame = this._frame;
359
- frame.masked = (octet & this.MASK) === this.MASK;
360
- frame.length = (octet & this.LENGTH);
361
-
362
- if (frame.length >= 0 && frame.length <= 125) {
363
- this._stage = frame.masked ? 3 : 4;
364
- if (!this._checkFrameLength()) return;
365
- } else {
366
- this._stage = 2;
367
- frame.lengthBytes = (frame.length === 126 ? 2 : 8);
368
- }
369
-
370
- if (this._requireMasking && !frame.masked)
371
- return this._fail('unacceptable', 'Received unmasked frame but masking is required');
372
- },
373
-
374
- _parseExtendedLength: function(buffer) {
375
- var frame = this._frame;
376
- frame.length = this._readUInt(buffer);
377
-
378
- this._stage = frame.masked ? 3 : 4;
379
-
380
- if (this.MESSAGE_OPCODES.indexOf(frame.opcode) < 0 && frame.length > 125)
381
- return this._fail('protocol_error', 'Received control frame having too long payload: ' + frame.length);
382
-
383
- if (!this._checkFrameLength()) return;
384
- },
385
-
386
- _checkFrameLength: function() {
387
- var length = this._message ? this._message.length : 0;
388
-
389
- if (length + this._frame.length > this._maxLength) {
390
- this._fail('too_large', 'WebSocket frame length too large');
391
- return false;
392
- } else {
393
- return true;
394
- }
395
- },
396
-
397
- _emitFrame: function(buffer) {
398
- var frame = this._frame,
399
- payload = frame.payload = Hybi.mask(buffer, frame.maskingKey),
400
- opcode = frame.opcode,
401
- message,
402
- code, reason,
403
- callbacks, callback;
404
-
405
- delete this._frame;
406
-
407
- if (opcode === this.OPCODES.continuation) {
408
- if (!this._message) return this._fail('protocol_error', 'Received unexpected continuation frame');
409
- this._message.pushFrame(frame);
410
- }
411
-
412
- if (opcode === this.OPCODES.text || opcode === this.OPCODES.binary) {
413
- this._message = new Message();
414
- this._message.pushFrame(frame);
415
- }
416
-
417
- if (frame.final && this.MESSAGE_OPCODES.indexOf(opcode) >= 0)
418
- return this._emitMessage(this._message);
419
-
420
- if (opcode === this.OPCODES.close) {
421
- code = (payload.length >= 2) ? payload.readUInt16BE(0) : null;
422
- reason = (payload.length > 2) ? this._encode(payload.slice(2)) : null;
423
-
424
- if (!(payload.length === 0) &&
425
- !(code !== null && code >= this.MIN_RESERVED_ERROR && code <= this.MAX_RESERVED_ERROR) &&
426
- this.ERROR_CODES.indexOf(code) < 0)
427
- code = this.ERRORS.protocol_error;
428
-
429
- if (payload.length > 125 || (payload.length > 2 && !reason))
430
- code = this.ERRORS.protocol_error;
431
-
432
- this._shutdown(code || this.DEFAULT_ERROR_CODE, reason || '');
433
- }
434
-
435
- if (opcode === this.OPCODES.ping) {
436
- this.frame(payload, 'pong');
437
- this.emit('ping', new Base.PingEvent(payload.toString()));
438
- }
439
-
440
- if (opcode === this.OPCODES.pong) {
441
- callbacks = this._pingCallbacks;
442
- message = this._encode(payload);
443
- callback = callbacks[message];
444
-
445
- delete callbacks[message];
446
- if (callback) callback();
447
-
448
- this.emit('pong', new Base.PongEvent(payload.toString()));
449
- }
450
- },
451
-
452
- _emitMessage: function(message) {
453
- var message = this._message;
454
- message.read();
455
-
456
- delete this._message;
457
-
458
- this._extensions.processIncomingMessage(message, function(error, message) {
459
- if (error) return this._fail('extension_error', error.message);
460
-
461
- var payload = message.data;
462
- if (message.opcode === this.OPCODES.text) payload = this._encode(payload);
463
-
464
- if (payload === null)
465
- return this._fail('encoding_error', 'Could not decode a text frame as UTF-8');
466
- else
467
- this.emit('message', new Base.MessageEvent(payload));
468
- }, this);
469
- },
470
-
471
- _encode: function(buffer) {
472
- try {
473
- var string = buffer.toString('binary', 0, buffer.length);
474
- if (!this.UTF8_MATCH.test(string)) return null;
475
- } catch (e) {}
476
- return buffer.toString('utf8', 0, buffer.length);
477
- },
478
-
479
- _readUInt: function(buffer) {
480
- if (buffer.length === 2) return buffer.readUInt16BE(0);
481
-
482
- return buffer.readUInt32BE(0) * 0x100000000 +
483
- buffer.readUInt32BE(4);
484
- }
485
- };
486
-
487
- for (var key in instance)
488
- Hybi.prototype[key] = instance[key];
489
-
490
- var hybi = Hybi;
491
-
492
- export { hybi as default };
@@ -1,108 +0,0 @@
1
- import '../../../../safe-buffer/index.js';
2
- import require$$0 from 'stream';
3
- import require$$2 from 'url';
4
- import require$$1 from 'util';
5
- import base from './base.js';
6
- import { __require as requireHeaders } from './headers.js';
7
- import http_parser from '../http_parser.js';
8
- import { exports as safeBufferExports } from '../../../../../_virtual/index9.js';
9
-
10
- var Buffer = safeBufferExports.Buffer,
11
- Stream = require$$0.Stream,
12
- url = require$$2,
13
- util = require$$1,
14
- Base = base,
15
- Headers = requireHeaders(),
16
- HttpParser = http_parser;
17
-
18
- var PORTS = { 'ws:': 80, 'wss:': 443 };
19
-
20
- var Proxy = function(client, origin, options) {
21
- this._client = client;
22
- this._http = new HttpParser('response');
23
- this._origin = (typeof client.url === 'object') ? client.url : url.parse(client.url);
24
- this._url = (typeof origin === 'object') ? origin : url.parse(origin);
25
- this._options = options || {};
26
- this._state = 0;
27
-
28
- this.readable = this.writable = true;
29
- this._paused = false;
30
-
31
- this._headers = new Headers();
32
- this._headers.set('Host', this._origin.host);
33
- this._headers.set('Connection', 'keep-alive');
34
- this._headers.set('Proxy-Connection', 'keep-alive');
35
-
36
- var auth = this._url.auth && Buffer.from(this._url.auth, 'utf8').toString('base64');
37
- if (auth) this._headers.set('Proxy-Authorization', 'Basic ' + auth);
38
- };
39
- util.inherits(Proxy, Stream);
40
-
41
- var instance = {
42
- setHeader: function(name, value) {
43
- if (this._state !== 0) return false;
44
- this._headers.set(name, value);
45
- return true;
46
- },
47
-
48
- start: function() {
49
- if (this._state !== 0) return false;
50
- this._state = 1;
51
-
52
- var origin = this._origin,
53
- port = origin.port || PORTS[origin.protocol],
54
- start = 'CONNECT ' + origin.hostname + ':' + port + ' HTTP/1.1';
55
-
56
- var headers = [start, this._headers.toString(), ''];
57
-
58
- this.emit('data', Buffer.from(headers.join('\r\n'), 'utf8'));
59
- return true;
60
- },
61
-
62
- pause: function() {
63
- this._paused = true;
64
- },
65
-
66
- resume: function() {
67
- this._paused = false;
68
- this.emit('drain');
69
- },
70
-
71
- write: function(chunk) {
72
- if (!this.writable) return false;
73
-
74
- this._http.parse(chunk);
75
- if (!this._http.isComplete()) return !this._paused;
76
-
77
- this.statusCode = this._http.statusCode;
78
- this.headers = this._http.headers;
79
-
80
- if (this.statusCode === 200) {
81
- this.emit('connect', new Base.ConnectEvent());
82
- } else {
83
- var message = "Can't establish a connection to the server at " + this._origin.href;
84
- this.emit('error', new Error(message));
85
- }
86
- this.end();
87
- return !this._paused;
88
- },
89
-
90
- end: function(chunk) {
91
- if (!this.writable) return;
92
- if (chunk !== undefined) this.write(chunk);
93
- this.readable = this.writable = false;
94
- this.emit('close');
95
- this.emit('end');
96
- },
97
-
98
- destroy: function() {
99
- this.end();
100
- }
101
- };
102
-
103
- for (var key in instance)
104
- Proxy.prototype[key] = instance[key];
105
-
106
- var proxy = Proxy;
107
-
108
- export { proxy as default };