@novnc/novnc 1.2.0 → 1.3.0-g0ef7582
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/LICENSE.txt +0 -6
- package/README.md +16 -6
- package/core/decoders/copyrect.js +5 -0
- package/core/decoders/hextile.js +57 -3
- package/core/decoders/jpeg.js +141 -0
- package/core/decoders/raw.js +12 -2
- package/core/decoders/tight.js +24 -8
- package/core/decoders/zrle.js +185 -0
- package/core/display.js +21 -151
- package/core/encodings.js +4 -0
- package/core/input/domkeytable.js +25 -21
- package/core/input/keyboard.js +22 -127
- package/core/input/util.js +18 -35
- package/core/input/vkeys.js +0 -1
- package/core/input/xtscancodes.js +5 -3
- package/core/ra2.js +567 -0
- package/core/rfb.js +487 -171
- package/core/util/browser.js +0 -17
- package/core/util/cursor.js +1 -11
- package/core/util/events.js +0 -4
- package/core/util/md5.js +79 -0
- package/core/websock.js +76 -17
- package/docs/API.md +107 -6
- package/docs/LIBRARY.md +3 -7
- package/lib/base64.js +24 -38
- package/lib/decoders/copyrect.js +6 -11
- package/lib/decoders/hextile.js +68 -44
- package/lib/decoders/jpeg.js +146 -0
- package/lib/decoders/raw.js +14 -21
- package/lib/decoders/rre.js +3 -17
- package/lib/decoders/tight.js +43 -93
- package/lib/decoders/tightpng.js +11 -33
- package/lib/decoders/zrle.js +185 -0
- package/lib/deflator.js +9 -26
- package/lib/des.js +22 -38
- package/lib/display.js +100 -315
- package/lib/encodings.js +7 -8
- package/lib/inflator.js +6 -22
- package/lib/input/domkeytable.js +240 -208
- package/lib/input/fixedkeys.js +10 -5
- package/lib/input/gesturehandler.js +84 -154
- package/lib/input/keyboard.js +87 -238
- package/lib/input/keysym.js +16 -272
- package/lib/input/keysymdef.js +7 -9
- package/lib/input/util.js +69 -156
- package/lib/input/vkeys.js +2 -7
- package/lib/input/xtscancodes.js +10 -171
- package/lib/ra2.js +1033 -0
- package/lib/rfb.js +947 -1149
- package/lib/util/browser.js +25 -52
- package/lib/util/cursor.js +25 -81
- package/lib/util/element.js +3 -5
- package/lib/util/events.js +26 -35
- package/lib/util/eventtarget.js +4 -16
- package/lib/util/int.js +2 -3
- package/lib/util/logging.js +3 -21
- package/lib/util/md5.js +83 -0
- package/lib/util/strings.js +3 -5
- package/lib/vendor/pako/lib/utils/common.js +10 -19
- package/lib/vendor/pako/lib/zlib/adler32.js +4 -8
- package/lib/vendor/pako/lib/zlib/constants.js +4 -7
- package/lib/vendor/pako/lib/zlib/crc32.js +6 -13
- package/lib/vendor/pako/lib/zlib/deflate.js +304 -708
- package/lib/vendor/pako/lib/zlib/gzheader.js +2 -14
- package/lib/vendor/pako/lib/zlib/inffast.js +61 -177
- package/lib/vendor/pako/lib/zlib/inflate.js +421 -909
- package/lib/vendor/pako/lib/zlib/inftrees.js +66 -172
- package/lib/vendor/pako/lib/zlib/messages.js +3 -13
- package/lib/vendor/pako/lib/zlib/trees.js +250 -592
- package/lib/vendor/pako/lib/zlib/zstream.js +3 -19
- package/lib/websock.js +119 -111
- package/package.json +2 -10
- package/core/util/polyfill.js +0 -61
- package/lib/util/polyfill.js +0 -72
- package/lib/vendor/promise.js +0 -255
package/lib/deflator.js
CHANGED
|
@@ -3,31 +3,22 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
exports
|
|
7
|
-
|
|
6
|
+
exports["default"] = void 0;
|
|
8
7
|
var _deflate2 = require("../lib/vendor/pako/lib/zlib/deflate.js");
|
|
9
|
-
|
|
10
8
|
var _zstream = _interopRequireDefault(require("../lib/vendor/pako/lib/zlib/zstream.js"));
|
|
11
|
-
|
|
12
|
-
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
13
|
-
|
|
9
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
|
|
14
10
|
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
|
|
15
|
-
|
|
16
11
|
function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
|
|
17
|
-
|
|
18
|
-
function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }
|
|
19
|
-
|
|
12
|
+
function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }
|
|
20
13
|
var Deflator = /*#__PURE__*/function () {
|
|
21
14
|
function Deflator() {
|
|
22
15
|
_classCallCheck(this, Deflator);
|
|
23
|
-
|
|
24
|
-
this.strm = new _zstream.default();
|
|
16
|
+
this.strm = new _zstream["default"]();
|
|
25
17
|
this.chunkSize = 1024 * 10 * 10;
|
|
26
18
|
this.outputBuffer = new Uint8Array(this.chunkSize);
|
|
27
19
|
this.windowBits = 5;
|
|
28
20
|
(0, _deflate2.deflateInit)(this.strm, this.windowBits);
|
|
29
21
|
}
|
|
30
|
-
|
|
31
22
|
_createClass(Deflator, [{
|
|
32
23
|
key: "deflate",
|
|
33
24
|
value: function deflate(inData) {
|
|
@@ -42,16 +33,14 @@ var Deflator = /*#__PURE__*/function () {
|
|
|
42
33
|
|
|
43
34
|
var lastRet = (0, _deflate2.deflate)(this.strm, _deflate2.Z_FULL_FLUSH);
|
|
44
35
|
var outData = new Uint8Array(this.strm.output.buffer, 0, this.strm.next_out);
|
|
45
|
-
|
|
46
36
|
if (lastRet < 0) {
|
|
47
37
|
throw new Error("zlib deflate failed");
|
|
48
38
|
}
|
|
49
|
-
|
|
50
39
|
if (this.strm.avail_in > 0) {
|
|
51
40
|
// Read chunks until done
|
|
41
|
+
|
|
52
42
|
var chunks = [outData];
|
|
53
43
|
var totalLen = outData.length;
|
|
54
|
-
|
|
55
44
|
do {
|
|
56
45
|
/* eslint-disable camelcase */
|
|
57
46
|
this.strm.output = new Uint8Array(this.chunkSize);
|
|
@@ -60,30 +49,26 @@ var Deflator = /*#__PURE__*/function () {
|
|
|
60
49
|
/* eslint-enable camelcase */
|
|
61
50
|
|
|
62
51
|
lastRet = (0, _deflate2.deflate)(this.strm, _deflate2.Z_FULL_FLUSH);
|
|
63
|
-
|
|
64
52
|
if (lastRet < 0) {
|
|
65
53
|
throw new Error("zlib deflate failed");
|
|
66
54
|
}
|
|
67
|
-
|
|
68
55
|
var chunk = new Uint8Array(this.strm.output.buffer, 0, this.strm.next_out);
|
|
69
56
|
totalLen += chunk.length;
|
|
70
57
|
chunks.push(chunk);
|
|
71
|
-
} while (this.strm.avail_in > 0);
|
|
58
|
+
} while (this.strm.avail_in > 0);
|
|
72
59
|
|
|
60
|
+
// Combine chunks into a single data
|
|
73
61
|
|
|
74
62
|
var newData = new Uint8Array(totalLen);
|
|
75
63
|
var offset = 0;
|
|
76
|
-
|
|
77
64
|
for (var i = 0; i < chunks.length; i++) {
|
|
78
65
|
newData.set(chunks[i], offset);
|
|
79
66
|
offset += chunks[i].length;
|
|
80
67
|
}
|
|
81
|
-
|
|
82
68
|
outData = newData;
|
|
83
69
|
}
|
|
84
|
-
/* eslint-disable camelcase */
|
|
85
|
-
|
|
86
70
|
|
|
71
|
+
/* eslint-disable camelcase */
|
|
87
72
|
this.strm.input = null;
|
|
88
73
|
this.strm.avail_in = 0;
|
|
89
74
|
this.strm.next_in = 0;
|
|
@@ -92,8 +77,6 @@ var Deflator = /*#__PURE__*/function () {
|
|
|
92
77
|
return outData;
|
|
93
78
|
}
|
|
94
79
|
}]);
|
|
95
|
-
|
|
96
80
|
return Deflator;
|
|
97
81
|
}();
|
|
98
|
-
|
|
99
|
-
exports.default = Deflator;
|
|
82
|
+
exports["default"] = Deflator;
|
package/lib/des.js
CHANGED
|
@@ -3,14 +3,10 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
exports
|
|
7
|
-
|
|
6
|
+
exports["default"] = void 0;
|
|
8
7
|
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
|
|
9
|
-
|
|
10
8
|
function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
|
|
11
|
-
|
|
12
|
-
function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }
|
|
13
|
-
|
|
9
|
+
function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }
|
|
14
10
|
/*
|
|
15
11
|
* Ported from Flashlight VNC ActionScript implementation:
|
|
16
12
|
* http://www.wizhelp.com/flashlight-vnc/
|
|
@@ -89,9 +85,10 @@ function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _d
|
|
|
89
85
|
*/
|
|
90
86
|
|
|
91
87
|
/* eslint-disable comma-spacing */
|
|
88
|
+
|
|
92
89
|
// Tables, permutations, S-boxes, etc.
|
|
93
90
|
var PC2 = [13, 16, 10, 23, 0, 4, 2, 27, 14, 5, 20, 9, 22, 18, 11, 3, 25, 7, 15, 6, 26, 19, 12, 1, 40, 51, 30, 36, 46, 54, 29, 39, 50, 44, 32, 47, 43, 48, 38, 55, 33, 52, 45, 41, 49, 35, 28, 31],
|
|
94
|
-
|
|
91
|
+
totrot = [1, 2, 4, 6, 8, 10, 12, 14, 15, 17, 19, 21, 23, 25, 27, 28];
|
|
95
92
|
var z = 0x0;
|
|
96
93
|
var a, b, c, d, e, f;
|
|
97
94
|
a = 1 << 16;
|
|
@@ -150,51 +147,43 @@ d = 1 << 6;
|
|
|
150
147
|
e = 1 << 12;
|
|
151
148
|
f = d | e;
|
|
152
149
|
var SP8 = [b | f, z | e, a | z, c | f, b | z, b | f, z | d, b | z, a | d, c | z, c | f, a | e, c | e, a | f, z | e, z | d, c | z, b | d, b | e, z | f, a | e, a | d, c | d, c | e, z | f, z | z, z | z, c | d, b | d, b | e, a | f, a | z, a | f, a | z, c | e, z | e, z | d, c | d, z | e, a | f, b | e, z | d, b | d, c | z, c | d, b | z, a | z, b | f, z | z, c | f, a | d, b | d, c | z, b | e, b | f, z | z, c | f, a | e, a | e, z | f, z | f, a | d, b | z, c | e];
|
|
153
|
-
/* eslint-enable comma-spacing */
|
|
154
150
|
|
|
151
|
+
/* eslint-enable comma-spacing */
|
|
155
152
|
var DES = /*#__PURE__*/function () {
|
|
156
153
|
function DES(password) {
|
|
157
154
|
_classCallCheck(this, DES);
|
|
155
|
+
this.keys = [];
|
|
158
156
|
|
|
159
|
-
|
|
160
|
-
|
|
157
|
+
// Set the key.
|
|
161
158
|
var pc1m = [],
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
159
|
+
pcr = [],
|
|
160
|
+
kn = [];
|
|
165
161
|
for (var j = 0, l = 56; j < 56; ++j, l -= 8) {
|
|
166
162
|
l += l < -5 ? 65 : l < -3 ? 31 : l < -1 ? 63 : l === 27 ? 35 : 0; // PC1
|
|
167
|
-
|
|
168
163
|
var m = l & 0x7;
|
|
169
164
|
pc1m[j] = (password[l >>> 3] & 1 << m) !== 0 ? 1 : 0;
|
|
170
165
|
}
|
|
171
|
-
|
|
172
166
|
for (var i = 0; i < 16; ++i) {
|
|
173
167
|
var _m = i << 1;
|
|
174
|
-
|
|
175
168
|
var n = _m + 1;
|
|
176
169
|
kn[_m] = kn[n] = 0;
|
|
177
|
-
|
|
178
170
|
for (var o = 28; o < 59; o += 28) {
|
|
179
171
|
for (var _j = o - 28; _j < o; ++_j) {
|
|
180
172
|
var _l = _j + totrot[i];
|
|
181
|
-
|
|
182
173
|
pcr[_j] = _l < o ? pc1m[_l] : pc1m[_l - 28];
|
|
183
174
|
}
|
|
184
175
|
}
|
|
185
|
-
|
|
186
176
|
for (var _j2 = 0; _j2 < 24; ++_j2) {
|
|
187
177
|
if (pcr[PC2[_j2]] !== 0) {
|
|
188
178
|
kn[_m] |= 1 << 23 - _j2;
|
|
189
179
|
}
|
|
190
|
-
|
|
191
180
|
if (pcr[PC2[_j2 + 24]] !== 0) {
|
|
192
181
|
kn[n] |= 1 << 23 - _j2;
|
|
193
182
|
}
|
|
194
183
|
}
|
|
195
|
-
}
|
|
196
|
-
|
|
184
|
+
}
|
|
197
185
|
|
|
186
|
+
// cookey
|
|
198
187
|
for (var _i = 0, rawi = 0, KnLi = 0; _i < 16; ++_i) {
|
|
199
188
|
var raw0 = kn[rawi++];
|
|
200
189
|
var raw1 = kn[rawi++];
|
|
@@ -209,19 +198,19 @@ var DES = /*#__PURE__*/function () {
|
|
|
209
198
|
this.keys[KnLi] |= raw1 & 0x0000003f;
|
|
210
199
|
++KnLi;
|
|
211
200
|
}
|
|
212
|
-
}
|
|
213
|
-
|
|
201
|
+
}
|
|
214
202
|
|
|
203
|
+
// Encrypt 8 bytes of text
|
|
215
204
|
_createClass(DES, [{
|
|
216
205
|
key: "enc8",
|
|
217
206
|
value: function enc8(text) {
|
|
218
207
|
var b = text.slice();
|
|
219
208
|
var i = 0,
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
// Squash 8 bytes to 2 ints
|
|
209
|
+
l,
|
|
210
|
+
r,
|
|
211
|
+
x; // left, right, accumulator
|
|
224
212
|
|
|
213
|
+
// Squash 8 bytes to 2 ints
|
|
225
214
|
l = b[i++] << 24 | b[i++] << 16 | b[i++] << 8 | b[i++];
|
|
226
215
|
r = b[i++] << 24 | b[i++] << 16 | b[i++] << 8 | b[i++];
|
|
227
216
|
x = (l >>> 4 ^ r) & 0x0f0f0f0f;
|
|
@@ -241,7 +230,6 @@ var DES = /*#__PURE__*/function () {
|
|
|
241
230
|
l ^= x;
|
|
242
231
|
r ^= x;
|
|
243
232
|
l = l << 1 | l >>> 31 & 1;
|
|
244
|
-
|
|
245
233
|
for (var _i2 = 0, keysi = 0; _i2 < 8; ++_i2) {
|
|
246
234
|
x = r << 28 | r >>> 4;
|
|
247
235
|
x ^= this.keys[keysi++];
|
|
@@ -268,7 +256,6 @@ var DES = /*#__PURE__*/function () {
|
|
|
268
256
|
fval |= SP2[x >>> 24 & 0x3f];
|
|
269
257
|
r ^= fval;
|
|
270
258
|
}
|
|
271
|
-
|
|
272
259
|
r = r << 31 | r >>> 1;
|
|
273
260
|
x = (l ^ r) & 0xaaaaaaaa;
|
|
274
261
|
l ^= x;
|
|
@@ -285,30 +272,27 @@ var DES = /*#__PURE__*/function () {
|
|
|
285
272
|
r ^= x << 16;
|
|
286
273
|
x = (r >>> 4 ^ l) & 0x0f0f0f0f;
|
|
287
274
|
l ^= x;
|
|
288
|
-
r ^= x << 4;
|
|
275
|
+
r ^= x << 4;
|
|
289
276
|
|
|
277
|
+
// Spread ints to bytes
|
|
290
278
|
x = [r, l];
|
|
291
|
-
|
|
292
279
|
for (i = 0; i < 8; i++) {
|
|
293
280
|
b[i] = (x[i >>> 2] >>> 8 * (3 - i % 4)) % 256;
|
|
294
|
-
|
|
295
281
|
if (b[i] < 0) {
|
|
296
282
|
b[i] += 256;
|
|
297
283
|
} // unsigned
|
|
298
|
-
|
|
299
284
|
}
|
|
300
285
|
|
|
301
286
|
return b;
|
|
302
|
-
}
|
|
287
|
+
}
|
|
303
288
|
|
|
289
|
+
// Encrypt 16 bytes of text using passwd as key
|
|
304
290
|
}, {
|
|
305
291
|
key: "encrypt",
|
|
306
292
|
value: function encrypt(t) {
|
|
307
293
|
return this.enc8(t.slice(0, 8)).concat(this.enc8(t.slice(8, 16)));
|
|
308
294
|
}
|
|
309
295
|
}]);
|
|
310
|
-
|
|
311
296
|
return DES;
|
|
312
297
|
}();
|
|
313
|
-
|
|
314
|
-
exports.default = DES;
|
|
298
|
+
exports["default"] = DES;
|