@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.
Files changed (75) hide show
  1. package/LICENSE.txt +0 -6
  2. package/README.md +16 -6
  3. package/core/decoders/copyrect.js +5 -0
  4. package/core/decoders/hextile.js +57 -3
  5. package/core/decoders/jpeg.js +141 -0
  6. package/core/decoders/raw.js +12 -2
  7. package/core/decoders/tight.js +24 -8
  8. package/core/decoders/zrle.js +185 -0
  9. package/core/display.js +21 -151
  10. package/core/encodings.js +4 -0
  11. package/core/input/domkeytable.js +25 -21
  12. package/core/input/keyboard.js +22 -127
  13. package/core/input/util.js +18 -35
  14. package/core/input/vkeys.js +0 -1
  15. package/core/input/xtscancodes.js +5 -3
  16. package/core/ra2.js +567 -0
  17. package/core/rfb.js +487 -171
  18. package/core/util/browser.js +0 -17
  19. package/core/util/cursor.js +1 -11
  20. package/core/util/events.js +0 -4
  21. package/core/util/md5.js +79 -0
  22. package/core/websock.js +76 -17
  23. package/docs/API.md +107 -6
  24. package/docs/LIBRARY.md +3 -7
  25. package/lib/base64.js +24 -38
  26. package/lib/decoders/copyrect.js +6 -11
  27. package/lib/decoders/hextile.js +68 -44
  28. package/lib/decoders/jpeg.js +146 -0
  29. package/lib/decoders/raw.js +14 -21
  30. package/lib/decoders/rre.js +3 -17
  31. package/lib/decoders/tight.js +43 -93
  32. package/lib/decoders/tightpng.js +11 -33
  33. package/lib/decoders/zrle.js +185 -0
  34. package/lib/deflator.js +9 -26
  35. package/lib/des.js +22 -38
  36. package/lib/display.js +100 -315
  37. package/lib/encodings.js +7 -8
  38. package/lib/inflator.js +6 -22
  39. package/lib/input/domkeytable.js +240 -208
  40. package/lib/input/fixedkeys.js +10 -5
  41. package/lib/input/gesturehandler.js +84 -154
  42. package/lib/input/keyboard.js +87 -238
  43. package/lib/input/keysym.js +16 -272
  44. package/lib/input/keysymdef.js +7 -9
  45. package/lib/input/util.js +69 -156
  46. package/lib/input/vkeys.js +2 -7
  47. package/lib/input/xtscancodes.js +10 -171
  48. package/lib/ra2.js +1033 -0
  49. package/lib/rfb.js +947 -1149
  50. package/lib/util/browser.js +25 -52
  51. package/lib/util/cursor.js +25 -81
  52. package/lib/util/element.js +3 -5
  53. package/lib/util/events.js +26 -35
  54. package/lib/util/eventtarget.js +4 -16
  55. package/lib/util/int.js +2 -3
  56. package/lib/util/logging.js +3 -21
  57. package/lib/util/md5.js +83 -0
  58. package/lib/util/strings.js +3 -5
  59. package/lib/vendor/pako/lib/utils/common.js +10 -19
  60. package/lib/vendor/pako/lib/zlib/adler32.js +4 -8
  61. package/lib/vendor/pako/lib/zlib/constants.js +4 -7
  62. package/lib/vendor/pako/lib/zlib/crc32.js +6 -13
  63. package/lib/vendor/pako/lib/zlib/deflate.js +304 -708
  64. package/lib/vendor/pako/lib/zlib/gzheader.js +2 -14
  65. package/lib/vendor/pako/lib/zlib/inffast.js +61 -177
  66. package/lib/vendor/pako/lib/zlib/inflate.js +421 -909
  67. package/lib/vendor/pako/lib/zlib/inftrees.js +66 -172
  68. package/lib/vendor/pako/lib/zlib/messages.js +3 -13
  69. package/lib/vendor/pako/lib/zlib/trees.js +250 -592
  70. package/lib/vendor/pako/lib/zlib/zstream.js +3 -19
  71. package/lib/websock.js +119 -111
  72. package/package.json +2 -10
  73. package/core/util/polyfill.js +0 -61
  74. package/lib/util/polyfill.js +0 -72
  75. 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.default = void 0;
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); // Combine chunks into a single data
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.default = void 0;
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
- totrot = [1, 2, 4, 6, 8, 10, 12, 14, 15, 17, 19, 21, 23, 25, 27, 28];
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
- this.keys = []; // Set the key.
160
-
157
+ // Set the key.
161
158
  var pc1m = [],
162
- pcr = [],
163
- kn = [];
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
- } // cookey
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
- } // Encrypt 8 bytes of text
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
- l,
221
- r,
222
- x; // left, right, accumulator
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; // Spread ints to bytes
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
- } // Encrypt 16 bytes of text using passwd as key
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;