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