zmdms-utils 0.0.80 → 0.0.81
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.
- package/declarations.d.ts +6 -0
- package/dist/es/_virtual/FastBufferList.js +7 -0
- package/dist/es/_virtual/_commonjs-dynamic-modules.js +5 -0
- package/dist/es/_virtual/browser.js +7 -0
- package/dist/es/_virtual/browser2.js +7 -0
- package/dist/es/_virtual/debug.js +7 -0
- package/dist/es/_virtual/event.js +7 -0
- package/dist/es/_virtual/http-parser.js +3 -0
- package/dist/es/_virtual/iframe.js +7 -0
- package/dist/es/_virtual/index.js +7 -0
- package/dist/es/_virtual/index2.js +7 -0
- package/dist/es/_virtual/index3.js +7 -0
- package/dist/es/_virtual/index4.js +7 -0
- package/dist/es/_virtual/index5.js +7 -0
- package/dist/es/_virtual/index6.js +7 -0
- package/dist/es/_virtual/index7.js +3 -0
- package/dist/es/_virtual/index8.js +7 -0
- package/dist/es/_virtual/index9.js +7 -0
- package/dist/es/_virtual/inherits.js +7 -0
- package/dist/es/_virtual/inherits_browser.js +7 -0
- package/dist/es/_virtual/json3.js +7 -0
- package/dist/es/_virtual/node.js +7 -0
- package/dist/es/_virtual/node2.js +7 -0
- package/dist/es/_virtual/stomp-node.js +3 -0
- package/dist/es/_virtual/stomp.js +3 -0
- package/dist/es/_virtual/streams.js +3 -0
- package/dist/es/_virtual/utils.js +3 -0
- package/dist/es/constants.d.ts +5 -1
- package/dist/es/constants.js +5 -1
- package/dist/es/node_modules/bufferutil/fallback.js +43 -0
- package/dist/es/node_modules/bufferutil/index.js +21 -0
- package/dist/es/node_modules/debug/src/browser.js +192 -0
- package/dist/es/node_modules/debug/src/common.js +259 -0
- package/dist/es/node_modules/debug/src/index.js +25 -0
- package/dist/es/node_modules/debug/src/node.js +192 -0
- package/dist/es/node_modules/eventsource/lib/eventsource.js +493 -0
- package/dist/es/node_modules/faye-websocket/lib/faye/eventsource.js +150 -0
- package/dist/es/node_modules/faye-websocket/lib/faye/websocket/api/event.js +31 -0
- package/dist/es/node_modules/faye-websocket/lib/faye/websocket/api/event_target.js +41 -0
- package/dist/es/node_modules/faye-websocket/lib/faye/websocket/api.js +205 -0
- package/dist/es/node_modules/faye-websocket/lib/faye/websocket/client.js +107 -0
- package/dist/es/node_modules/faye-websocket/lib/faye/websocket.js +47 -0
- package/dist/es/node_modules/has-flag/index.js +17 -0
- package/dist/es/node_modules/http-parser-js/http-parser.js +471 -0
- package/dist/es/node_modules/inherits/inherits.js +14 -0
- package/dist/es/node_modules/inherits/inherits_browser.js +38 -0
- package/dist/es/node_modules/is-typedarray/index.js +51 -0
- package/dist/es/node_modules/json3/lib/json3.js +937 -0
- package/dist/es/node_modules/ms/index.js +172 -0
- package/dist/es/node_modules/node-gyp-build/index.js +21 -0
- package/dist/es/node_modules/node-gyp-build/node-gyp-build.js +222 -0
- package/dist/es/node_modules/querystringify/index.js +120 -0
- package/dist/es/node_modules/requires-port/index.js +38 -0
- package/dist/es/node_modules/safe-buffer/index.js +71 -0
- package/dist/es/node_modules/supports-color/index.js +143 -0
- package/dist/es/node_modules/typedarray-to-buffer/index.js +37 -0
- package/dist/es/node_modules/url-parse/index.js +594 -0
- package/dist/es/node_modules/utf-8-validate/fallback.js +71 -0
- package/dist/es/node_modules/utf-8-validate/index.js +21 -0
- package/dist/es/node_modules/websocket/index.js +15 -0
- package/dist/es/node_modules/websocket/lib/Deprecation.js +42 -0
- package/dist/es/node_modules/websocket/lib/W3CWebSocket.js +268 -0
- package/dist/es/node_modules/websocket/lib/WebSocketClient.js +380 -0
- package/dist/es/node_modules/websocket/lib/WebSocketConnection.js +914 -0
- package/dist/es/node_modules/websocket/lib/WebSocketFrame.js +293 -0
- package/dist/es/node_modules/websocket/lib/WebSocketRequest.js +543 -0
- package/dist/es/node_modules/websocket/lib/WebSocketRouter.js +172 -0
- package/dist/es/node_modules/websocket/lib/WebSocketRouterRequest.js +67 -0
- package/dist/es/node_modules/websocket/lib/WebSocketServer.js +272 -0
- package/dist/es/node_modules/websocket/lib/utils.js +80 -0
- package/dist/es/node_modules/websocket/lib/version.js +13 -0
- package/dist/es/node_modules/websocket/lib/websocket.js +31 -0
- package/dist/es/node_modules/websocket/node_modules/debug/src/browser.js +199 -0
- package/dist/es/node_modules/websocket/node_modules/debug/src/debug.js +215 -0
- package/dist/es/node_modules/websocket/node_modules/debug/src/index.js +25 -0
- package/dist/es/node_modules/websocket/node_modules/debug/src/node.js +266 -0
- package/dist/es/node_modules/websocket/node_modules/ms/index.js +162 -0
- package/dist/es/node_modules/websocket/package.json.js +77 -0
- package/dist/es/node_modules/websocket/vendor/FastBufferList.js +205 -0
- package/dist/es/node_modules/websocket-driver/lib/websocket/driver/base.js +202 -0
- package/dist/es/node_modules/websocket-driver/lib/websocket/driver/client.js +152 -0
- package/dist/es/node_modules/websocket-driver/lib/websocket/driver/draft75.js +128 -0
- package/dist/es/node_modules/websocket-driver/lib/websocket/driver/draft76.js +124 -0
- package/dist/es/node_modules/websocket-driver/lib/websocket/driver/headers.js +44 -0
- package/dist/es/node_modules/websocket-driver/lib/websocket/driver/hybi/frame.js +21 -0
- package/dist/es/node_modules/websocket-driver/lib/websocket/driver/hybi/message.js +37 -0
- package/dist/es/node_modules/websocket-driver/lib/websocket/driver/hybi.js +492 -0
- package/dist/es/node_modules/websocket-driver/lib/websocket/driver/proxy.js +108 -0
- package/dist/es/node_modules/websocket-driver/lib/websocket/driver/server.js +119 -0
- package/dist/es/node_modules/websocket-driver/lib/websocket/driver/stream_reader.js +72 -0
- package/dist/es/node_modules/websocket-driver/lib/websocket/driver.js +47 -0
- package/dist/es/node_modules/websocket-driver/lib/websocket/http_parser.js +140 -0
- package/dist/es/node_modules/websocket-driver/lib/websocket/streams.js +150 -0
- package/dist/es/node_modules/websocket-extensions/lib/parser.js +103 -0
- package/dist/es/node_modules/websocket-extensions/lib/pipeline/cell.js +56 -0
- package/dist/es/node_modules/websocket-extensions/lib/pipeline/functor.js +74 -0
- package/dist/es/node_modules/websocket-extensions/lib/pipeline/index.js +50 -0
- package/dist/es/node_modules/websocket-extensions/lib/pipeline/pledge.js +39 -0
- package/dist/es/node_modules/websocket-extensions/lib/pipeline/ring_buffer.js +66 -0
- package/dist/es/node_modules/websocket-extensions/lib/websocket_extensions.js +165 -0
- package/dist/es/node_modules/yaeti/index.js +17 -0
- package/dist/es/node_modules/yaeti/lib/Event.js +24 -0
- package/dist/es/node_modules/yaeti/lib/EventTarget.js +130 -0
- package/dist/es/node_modules/zt-sockjs-client/lib/entry.js +14 -0
- package/dist/es/node_modules/zt-sockjs-client/lib/event/close.js +21 -0
- package/dist/es/node_modules/zt-sockjs-client/lib/event/event.js +22 -0
- package/dist/es/node_modules/zt-sockjs-client/lib/event/eventtarget.js +62 -0
- package/dist/es/node_modules/zt-sockjs-client/lib/event/trans-message.js +19 -0
- package/dist/es/node_modules/zt-sockjs-client/lib/facade.js +40 -0
- package/dist/es/node_modules/zt-sockjs-client/lib/iframe-bootstrap.js +122 -0
- package/dist/es/node_modules/zt-sockjs-client/lib/info-ajax.js +57 -0
- package/dist/es/node_modules/zt-sockjs-client/lib/info-iframe-receiver.js +50 -0
- package/dist/es/node_modules/zt-sockjs-client/lib/info-iframe.js +81 -0
- package/dist/es/node_modules/zt-sockjs-client/lib/info-receiver.js +101 -0
- package/dist/es/node_modules/zt-sockjs-client/lib/location.js +12 -0
- package/dist/es/node_modules/zt-sockjs-client/lib/main.js +413 -0
- package/dist/es/node_modules/zt-sockjs-client/lib/shims.js +449 -0
- package/dist/es/node_modules/zt-sockjs-client/lib/transport/driver/websocket.js +5 -0
- package/dist/es/node_modules/zt-sockjs-client/lib/transport/driver/xhr.js +80 -0
- package/dist/es/node_modules/zt-sockjs-client/lib/transport/eventsource.js +34 -0
- package/dist/es/node_modules/zt-sockjs-client/lib/transport/htmlfile.js +31 -0
- package/dist/es/node_modules/zt-sockjs-client/lib/transport/iframe.js +154 -0
- package/dist/es/node_modules/zt-sockjs-client/lib/transport/jsonp-polling.js +41 -0
- package/dist/es/node_modules/zt-sockjs-client/lib/transport/lib/ajax-based.js +55 -0
- package/dist/es/node_modules/zt-sockjs-client/lib/transport/lib/buffered-sender.js +92 -0
- package/dist/es/node_modules/zt-sockjs-client/lib/transport/lib/iframe-wrap.js +39 -0
- package/dist/es/node_modules/zt-sockjs-client/lib/transport/lib/polling.js +65 -0
- package/dist/es/node_modules/zt-sockjs-client/lib/transport/lib/sender-receiver.js +52 -0
- package/dist/es/node_modules/zt-sockjs-client/lib/transport/receiver/eventsource.js +69 -0
- package/dist/es/node_modules/zt-sockjs-client/lib/transport/receiver/htmlfile.js +96 -0
- package/dist/es/node_modules/zt-sockjs-client/lib/transport/receiver/jsonp.js +193 -0
- package/dist/es/node_modules/zt-sockjs-client/lib/transport/receiver/xhr.js +75 -0
- package/dist/es/node_modules/zt-sockjs-client/lib/transport/sender/jsonp.js +104 -0
- package/dist/es/node_modules/zt-sockjs-client/lib/transport/sender/xdr.js +113 -0
- package/dist/es/node_modules/zt-sockjs-client/lib/transport/sender/xhr-cors.js +19 -0
- package/dist/es/node_modules/zt-sockjs-client/lib/transport/sender/xhr-fake.js +28 -0
- package/dist/es/node_modules/zt-sockjs-client/lib/transport/sender/xhr-local.js +21 -0
- package/dist/es/node_modules/zt-sockjs-client/lib/transport/websocket.js +108 -0
- package/dist/es/node_modules/zt-sockjs-client/lib/transport/xdr-polling.js +30 -0
- package/dist/es/node_modules/zt-sockjs-client/lib/transport/xdr-streaming.js +38 -0
- package/dist/es/node_modules/zt-sockjs-client/lib/transport/xhr-polling.js +40 -0
- package/dist/es/node_modules/zt-sockjs-client/lib/transport/xhr-streaming.js +50 -0
- package/dist/es/node_modules/zt-sockjs-client/lib/transport-list.js +28 -0
- package/dist/es/node_modules/zt-sockjs-client/lib/utils/browser.js +29 -0
- package/dist/es/node_modules/zt-sockjs-client/lib/utils/escape.js +53 -0
- package/dist/es/node_modules/zt-sockjs-client/lib/utils/event.js +78 -0
- package/dist/es/node_modules/zt-sockjs-client/lib/utils/iframe.js +205 -0
- package/dist/es/node_modules/zt-sockjs-client/lib/utils/log.js +20 -0
- package/dist/es/node_modules/zt-sockjs-client/lib/utils/object.js +24 -0
- package/dist/es/node_modules/zt-sockjs-client/lib/utils/random.js +30 -0
- package/dist/es/node_modules/zt-sockjs-client/lib/utils/transport.js +52 -0
- package/dist/es/node_modules/zt-sockjs-client/lib/utils/url.js +54 -0
- package/dist/es/node_modules/zt-sockjs-client/lib/version.js +11 -0
- package/dist/es/node_modules/zt-stompjs/index.js +23 -0
- package/dist/es/node_modules/zt-stompjs/lib/stomp-node.js +117 -0
- package/dist/es/node_modules/zt-stompjs/lib/stomp.js +536 -0
- package/dist/es/stompClient.d.ts +55 -0
- package/dist/es/stompClient.js +379 -0
- package/dist/index.d.ts +2 -1
- package/dist/index.js +2 -1
- package/package.json +6 -2
- package/src/constants.ts +5 -0
- package/src/index.ts +4 -0
- package/src/stompClient.ts +449 -0
- package/tsconfig.json +1 -1
|
@@ -0,0 +1,205 @@
|
|
|
1
|
+
import require$$0 from 'stream';
|
|
2
|
+
import require$$1 from 'util';
|
|
3
|
+
import driver$1 from '../../../../websocket-driver/lib/websocket/driver.js';
|
|
4
|
+
import { __require as requireEvent_target } from './api/event_target.js';
|
|
5
|
+
import { __require as requireEvent } from './api/event.js';
|
|
6
|
+
|
|
7
|
+
var Stream = require$$0.Stream,
|
|
8
|
+
util = require$$1,
|
|
9
|
+
driver = driver$1,
|
|
10
|
+
EventTarget = requireEvent_target(),
|
|
11
|
+
Event = requireEvent();
|
|
12
|
+
|
|
13
|
+
var API = function(options) {
|
|
14
|
+
options = options || {};
|
|
15
|
+
driver.validateOptions(options, ['headers', 'extensions', 'maxLength', 'ping', 'proxy', 'tls', 'ca']);
|
|
16
|
+
|
|
17
|
+
this.readable = this.writable = true;
|
|
18
|
+
|
|
19
|
+
var headers = options.headers;
|
|
20
|
+
if (headers) {
|
|
21
|
+
for (var name in headers) this._driver.setHeader(name, headers[name]);
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
var extensions = options.extensions;
|
|
25
|
+
if (extensions) {
|
|
26
|
+
[].concat(extensions).forEach(this._driver.addExtension, this._driver);
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
this._ping = options.ping;
|
|
30
|
+
this._pingId = 0;
|
|
31
|
+
this.readyState = API.CONNECTING;
|
|
32
|
+
this.bufferedAmount = 0;
|
|
33
|
+
this.protocol = '';
|
|
34
|
+
this.url = this._driver.url;
|
|
35
|
+
this.version = this._driver.version;
|
|
36
|
+
|
|
37
|
+
var self = this;
|
|
38
|
+
|
|
39
|
+
this._driver.on('open', function(e) { self._open(); });
|
|
40
|
+
this._driver.on('message', function(e) { self._receiveMessage(e.data); });
|
|
41
|
+
this._driver.on('close', function(e) { self._beginClose(e.reason, e.code); });
|
|
42
|
+
|
|
43
|
+
this._driver.on('error', function(error) {
|
|
44
|
+
self._emitError(error.message);
|
|
45
|
+
});
|
|
46
|
+
this.on('error', function() {});
|
|
47
|
+
|
|
48
|
+
this._driver.messages.on('drain', function() {
|
|
49
|
+
self.emit('drain');
|
|
50
|
+
});
|
|
51
|
+
|
|
52
|
+
if (this._ping)
|
|
53
|
+
this._pingTimer = setInterval(function() {
|
|
54
|
+
self._pingId += 1;
|
|
55
|
+
self.ping(self._pingId.toString());
|
|
56
|
+
}, this._ping * 1000);
|
|
57
|
+
|
|
58
|
+
this._configureStream();
|
|
59
|
+
|
|
60
|
+
if (!this._proxy) {
|
|
61
|
+
this._stream.pipe(this._driver.io);
|
|
62
|
+
this._driver.io.pipe(this._stream);
|
|
63
|
+
}
|
|
64
|
+
};
|
|
65
|
+
util.inherits(API, Stream);
|
|
66
|
+
|
|
67
|
+
API.CONNECTING = 0;
|
|
68
|
+
API.OPEN = 1;
|
|
69
|
+
API.CLOSING = 2;
|
|
70
|
+
API.CLOSED = 3;
|
|
71
|
+
|
|
72
|
+
API.CLOSE_TIMEOUT = 30000;
|
|
73
|
+
|
|
74
|
+
var instance = {
|
|
75
|
+
write: function(data) {
|
|
76
|
+
return this.send(data);
|
|
77
|
+
},
|
|
78
|
+
|
|
79
|
+
end: function(data) {
|
|
80
|
+
if (data !== undefined) this.send(data);
|
|
81
|
+
this.close();
|
|
82
|
+
},
|
|
83
|
+
|
|
84
|
+
pause: function() {
|
|
85
|
+
return this._driver.messages.pause();
|
|
86
|
+
},
|
|
87
|
+
|
|
88
|
+
resume: function() {
|
|
89
|
+
return this._driver.messages.resume();
|
|
90
|
+
},
|
|
91
|
+
|
|
92
|
+
send: function(data) {
|
|
93
|
+
if (this.readyState > API.OPEN) return false;
|
|
94
|
+
if (!(data instanceof Buffer)) data = String(data);
|
|
95
|
+
return this._driver.messages.write(data);
|
|
96
|
+
},
|
|
97
|
+
|
|
98
|
+
ping: function(message, callback) {
|
|
99
|
+
if (this.readyState > API.OPEN) return false;
|
|
100
|
+
return this._driver.ping(message, callback);
|
|
101
|
+
},
|
|
102
|
+
|
|
103
|
+
close: function(code, reason) {
|
|
104
|
+
if (code === undefined) code = 1000;
|
|
105
|
+
if (reason === undefined) reason = '';
|
|
106
|
+
|
|
107
|
+
if (code !== 1000 && (code < 3000 || code > 4999))
|
|
108
|
+
throw new Error("Failed to execute 'close' on WebSocket: " +
|
|
109
|
+
"The code must be either 1000, or between 3000 and 4999. " +
|
|
110
|
+
code + " is neither.");
|
|
111
|
+
|
|
112
|
+
if (this.readyState < API.CLOSING) {
|
|
113
|
+
var self = this;
|
|
114
|
+
this._closeTimer = setTimeout(function() {
|
|
115
|
+
self._beginClose('', 1006);
|
|
116
|
+
}, API.CLOSE_TIMEOUT);
|
|
117
|
+
}
|
|
118
|
+
|
|
119
|
+
if (this.readyState !== API.CLOSED) this.readyState = API.CLOSING;
|
|
120
|
+
|
|
121
|
+
this._driver.close(reason, code);
|
|
122
|
+
},
|
|
123
|
+
|
|
124
|
+
_configureStream: function() {
|
|
125
|
+
var self = this;
|
|
126
|
+
|
|
127
|
+
this._stream.setTimeout(0);
|
|
128
|
+
this._stream.setNoDelay(true);
|
|
129
|
+
|
|
130
|
+
['close', 'end'].forEach(function(event) {
|
|
131
|
+
this._stream.on(event, function() { self._finalizeClose(); });
|
|
132
|
+
}, this);
|
|
133
|
+
|
|
134
|
+
this._stream.on('error', function(error) {
|
|
135
|
+
self._emitError('Network error: ' + self.url + ': ' + error.message);
|
|
136
|
+
self._finalizeClose();
|
|
137
|
+
});
|
|
138
|
+
},
|
|
139
|
+
|
|
140
|
+
_open: function() {
|
|
141
|
+
if (this.readyState !== API.CONNECTING) return;
|
|
142
|
+
|
|
143
|
+
this.readyState = API.OPEN;
|
|
144
|
+
this.protocol = this._driver.protocol || '';
|
|
145
|
+
|
|
146
|
+
var event = new Event('open');
|
|
147
|
+
event.initEvent('open', false, false);
|
|
148
|
+
this.dispatchEvent(event);
|
|
149
|
+
},
|
|
150
|
+
|
|
151
|
+
_receiveMessage: function(data) {
|
|
152
|
+
if (this.readyState > API.OPEN) return false;
|
|
153
|
+
|
|
154
|
+
if (this.readable) this.emit('data', data);
|
|
155
|
+
|
|
156
|
+
var event = new Event('message', { data: data });
|
|
157
|
+
event.initEvent('message', false, false);
|
|
158
|
+
this.dispatchEvent(event);
|
|
159
|
+
},
|
|
160
|
+
|
|
161
|
+
_emitError: function(message) {
|
|
162
|
+
if (this.readyState >= API.CLOSING) return;
|
|
163
|
+
|
|
164
|
+
var event = new Event('error', { message: message });
|
|
165
|
+
event.initEvent('error', false, false);
|
|
166
|
+
this.dispatchEvent(event);
|
|
167
|
+
},
|
|
168
|
+
|
|
169
|
+
_beginClose: function(reason, code) {
|
|
170
|
+
if (this.readyState === API.CLOSED) return;
|
|
171
|
+
this.readyState = API.CLOSING;
|
|
172
|
+
this._closeParams = [reason, code];
|
|
173
|
+
|
|
174
|
+
if (this._stream) {
|
|
175
|
+
this._stream.destroy();
|
|
176
|
+
if (!this._stream.readable) this._finalizeClose();
|
|
177
|
+
}
|
|
178
|
+
},
|
|
179
|
+
|
|
180
|
+
_finalizeClose: function() {
|
|
181
|
+
if (this.readyState === API.CLOSED) return;
|
|
182
|
+
this.readyState = API.CLOSED;
|
|
183
|
+
|
|
184
|
+
if (this._closeTimer) clearTimeout(this._closeTimer);
|
|
185
|
+
if (this._pingTimer) clearInterval(this._pingTimer);
|
|
186
|
+
if (this._stream) this._stream.end();
|
|
187
|
+
|
|
188
|
+
if (this.readable) this.emit('end');
|
|
189
|
+
this.readable = this.writable = false;
|
|
190
|
+
|
|
191
|
+
var reason = this._closeParams ? this._closeParams[0] : '',
|
|
192
|
+
code = this._closeParams ? this._closeParams[1] : 1006;
|
|
193
|
+
|
|
194
|
+
var event = new Event('close', { code: code, reason: reason });
|
|
195
|
+
event.initEvent('close', false, false);
|
|
196
|
+
this.dispatchEvent(event);
|
|
197
|
+
}
|
|
198
|
+
};
|
|
199
|
+
|
|
200
|
+
for (var method in instance) API.prototype[method] = instance[method];
|
|
201
|
+
for (var key in EventTarget) API.prototype[key] = EventTarget[key];
|
|
202
|
+
|
|
203
|
+
var api = API;
|
|
204
|
+
|
|
205
|
+
export { api as default };
|
|
@@ -0,0 +1,107 @@
|
|
|
1
|
+
import require$$1 from 'util';
|
|
2
|
+
import require$$1$1 from 'net';
|
|
3
|
+
import require$$2 from 'tls';
|
|
4
|
+
import require$$2$1 from 'url';
|
|
5
|
+
import driver from '../../../../websocket-driver/lib/websocket/driver.js';
|
|
6
|
+
import api from './api.js';
|
|
7
|
+
import { __require as requireEvent } from './api/event.js';
|
|
8
|
+
|
|
9
|
+
var client;
|
|
10
|
+
var hasRequiredClient;
|
|
11
|
+
|
|
12
|
+
function requireClient () {
|
|
13
|
+
if (hasRequiredClient) return client;
|
|
14
|
+
hasRequiredClient = 1;
|
|
15
|
+
|
|
16
|
+
var util = require$$1,
|
|
17
|
+
net = require$$1$1,
|
|
18
|
+
tls = require$$2,
|
|
19
|
+
url = require$$2$1,
|
|
20
|
+
driver$1 = driver,
|
|
21
|
+
API = api;
|
|
22
|
+
requireEvent();
|
|
23
|
+
|
|
24
|
+
var DEFAULT_PORTS = { 'http:': 80, 'https:': 443, 'ws:':80, 'wss:': 443 },
|
|
25
|
+
SECURE_PROTOCOLS = ['https:', 'wss:'];
|
|
26
|
+
|
|
27
|
+
var Client = function(_url, protocols, options) {
|
|
28
|
+
options = options || {};
|
|
29
|
+
|
|
30
|
+
this.url = _url;
|
|
31
|
+
this._driver = driver$1.client(this.url, { maxLength: options.maxLength, protocols: protocols });
|
|
32
|
+
|
|
33
|
+
['open', 'error'].forEach(function(event) {
|
|
34
|
+
this._driver.on(event, function() {
|
|
35
|
+
self.headers = self._driver.headers;
|
|
36
|
+
self.statusCode = self._driver.statusCode;
|
|
37
|
+
});
|
|
38
|
+
}, this);
|
|
39
|
+
|
|
40
|
+
var proxy = options.proxy || {},
|
|
41
|
+
endpoint = url.parse(proxy.origin || this.url),
|
|
42
|
+
port = endpoint.port || DEFAULT_PORTS[endpoint.protocol],
|
|
43
|
+
secure = SECURE_PROTOCOLS.indexOf(endpoint.protocol) >= 0,
|
|
44
|
+
onConnect = function() { self._onConnect(); },
|
|
45
|
+
netOptions = options.net || {},
|
|
46
|
+
originTLS = options.tls || {},
|
|
47
|
+
socketTLS = proxy.origin ? (proxy.tls || {}) : originTLS,
|
|
48
|
+
self = this;
|
|
49
|
+
|
|
50
|
+
netOptions.host = socketTLS.host = endpoint.hostname;
|
|
51
|
+
netOptions.port = socketTLS.port = port;
|
|
52
|
+
|
|
53
|
+
originTLS.ca = originTLS.ca || options.ca;
|
|
54
|
+
socketTLS.servername = socketTLS.servername || endpoint.hostname;
|
|
55
|
+
|
|
56
|
+
this._stream = secure
|
|
57
|
+
? tls.connect(socketTLS, onConnect)
|
|
58
|
+
: net.connect(netOptions, onConnect);
|
|
59
|
+
|
|
60
|
+
if (proxy.origin) this._configureProxy(proxy, originTLS);
|
|
61
|
+
|
|
62
|
+
API.call(this, options);
|
|
63
|
+
};
|
|
64
|
+
util.inherits(Client, API);
|
|
65
|
+
|
|
66
|
+
Client.prototype._onConnect = function() {
|
|
67
|
+
var worker = this._proxy || this._driver;
|
|
68
|
+
worker.start();
|
|
69
|
+
};
|
|
70
|
+
|
|
71
|
+
Client.prototype._configureProxy = function(proxy, originTLS) {
|
|
72
|
+
var uri = url.parse(this.url),
|
|
73
|
+
secure = SECURE_PROTOCOLS.indexOf(uri.protocol) >= 0,
|
|
74
|
+
self = this,
|
|
75
|
+
name;
|
|
76
|
+
|
|
77
|
+
this._proxy = this._driver.proxy(proxy.origin);
|
|
78
|
+
|
|
79
|
+
if (proxy.headers) {
|
|
80
|
+
for (name in proxy.headers) this._proxy.setHeader(name, proxy.headers[name]);
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
this._proxy.pipe(this._stream, { end: false });
|
|
84
|
+
this._stream.pipe(this._proxy);
|
|
85
|
+
|
|
86
|
+
this._proxy.on('connect', function() {
|
|
87
|
+
if (secure) {
|
|
88
|
+
var options = { socket: self._stream, servername: uri.hostname };
|
|
89
|
+
for (name in originTLS) options[name] = originTLS[name];
|
|
90
|
+
self._stream = tls.connect(options);
|
|
91
|
+
self._configureStream();
|
|
92
|
+
}
|
|
93
|
+
self._driver.io.pipe(self._stream);
|
|
94
|
+
self._stream.pipe(self._driver.io);
|
|
95
|
+
self._driver.start();
|
|
96
|
+
});
|
|
97
|
+
|
|
98
|
+
this._proxy.on('error', function(error) {
|
|
99
|
+
self._driver.emit('error', error);
|
|
100
|
+
});
|
|
101
|
+
};
|
|
102
|
+
|
|
103
|
+
client = Client;
|
|
104
|
+
return client;
|
|
105
|
+
}
|
|
106
|
+
|
|
107
|
+
export { requireClient as __require };
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import require$$1 from 'util';
|
|
2
|
+
import driver$1 from '../../../websocket-driver/lib/websocket/driver.js';
|
|
3
|
+
import api from './websocket/api.js';
|
|
4
|
+
import { __require as requireClient } from './websocket/client.js';
|
|
5
|
+
import { __require as requireEventsource } from './eventsource.js';
|
|
6
|
+
|
|
7
|
+
var util = require$$1,
|
|
8
|
+
driver = driver$1,
|
|
9
|
+
API = api;
|
|
10
|
+
|
|
11
|
+
var WebSocket = function(request, socket, body, protocols, options) {
|
|
12
|
+
options = options || {};
|
|
13
|
+
|
|
14
|
+
this._stream = socket;
|
|
15
|
+
this._driver = driver.http(request, { maxLength: options.maxLength, protocols: protocols });
|
|
16
|
+
|
|
17
|
+
var self = this;
|
|
18
|
+
if (!this._stream || !this._stream.writable) return;
|
|
19
|
+
if (!this._stream.readable) return this._stream.end();
|
|
20
|
+
|
|
21
|
+
var catchup = function() { self._stream.removeListener('data', catchup); };
|
|
22
|
+
this._stream.on('data', catchup);
|
|
23
|
+
|
|
24
|
+
API.call(this, options);
|
|
25
|
+
|
|
26
|
+
process.nextTick(function() {
|
|
27
|
+
self._driver.start();
|
|
28
|
+
self._driver.io.write(body);
|
|
29
|
+
});
|
|
30
|
+
};
|
|
31
|
+
util.inherits(WebSocket, API);
|
|
32
|
+
|
|
33
|
+
WebSocket.isWebSocket = function(request) {
|
|
34
|
+
return driver.isWebSocket(request);
|
|
35
|
+
};
|
|
36
|
+
|
|
37
|
+
WebSocket.validateOptions = function(options, validKeys) {
|
|
38
|
+
driver.validateOptions(options, validKeys);
|
|
39
|
+
};
|
|
40
|
+
|
|
41
|
+
WebSocket.WebSocket = WebSocket;
|
|
42
|
+
WebSocket.Client = requireClient();
|
|
43
|
+
WebSocket.EventSource = requireEventsource();
|
|
44
|
+
|
|
45
|
+
var websocket = WebSocket;
|
|
46
|
+
|
|
47
|
+
export { websocket as default };
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
var hasFlag;
|
|
2
|
+
var hasRequiredHasFlag;
|
|
3
|
+
|
|
4
|
+
function requireHasFlag () {
|
|
5
|
+
if (hasRequiredHasFlag) return hasFlag;
|
|
6
|
+
hasRequiredHasFlag = 1;
|
|
7
|
+
hasFlag = (flag, argv) => {
|
|
8
|
+
argv = argv || process.argv;
|
|
9
|
+
const prefix = flag.startsWith('-') ? '' : (flag.length === 1 ? '-' : '--');
|
|
10
|
+
const pos = argv.indexOf(prefix + flag);
|
|
11
|
+
const terminatorPos = argv.indexOf('--');
|
|
12
|
+
return pos !== -1 && (terminatorPos === -1 ? true : pos < terminatorPos);
|
|
13
|
+
};
|
|
14
|
+
return hasFlag;
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
export { requireHasFlag as __require };
|