Correctly use the new xterm onBinary callback
This commit is contained in:
@@ -16,6 +16,7 @@ Major dependencies includes:
|
|||||||
- [Roboto font](https://en.wikipedia.org/wiki/Roboto), Licensed under Apache license.
|
- [Roboto font](https://en.wikipedia.org/wiki/Roboto), Licensed under Apache license.
|
||||||
Packaged by [Christian Hoffmeister](https://github.com/choffmeister/roboto-fontface-bower), Licensed under Apache 2.0
|
Packaged by [Christian Hoffmeister](https://github.com/choffmeister/roboto-fontface-bower), Licensed under Apache 2.0
|
||||||
- [iconv-lite](https://github.com/ashtuchkin/iconv-lite), Licensed under MIT license
|
- [iconv-lite](https://github.com/ashtuchkin/iconv-lite), Licensed under MIT license
|
||||||
|
- [buffer](https://github.com/feross/buffer), Licensed under MIT license
|
||||||
|
|
||||||
## For back-end application
|
## For back-end application
|
||||||
|
|
||||||
|
|||||||
20
package-lock.json
generated
20
package-lock.json
generated
@@ -3841,14 +3841,13 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"buffer": {
|
"buffer": {
|
||||||
"version": "4.9.1",
|
"version": "5.4.3",
|
||||||
"resolved": "https://registry.npmjs.org/buffer/-/buffer-4.9.1.tgz",
|
"resolved": "https://registry.npmjs.org/buffer/-/buffer-5.4.3.tgz",
|
||||||
"integrity": "sha1-bRu2AbB6TvztlwlBMgkwJ8lbwpg=",
|
"integrity": "sha512-zvj65TkFeIt3i6aj5bIvJDzjjQQGs4o/sNoezg1F1kYap9Nu2jcUdpwzRSJTHMMzG0H7bZkn4rNQpImhuxWX2A==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"requires": {
|
"requires": {
|
||||||
"base64-js": "^1.0.2",
|
"base64-js": "^1.0.2",
|
||||||
"ieee754": "^1.1.4",
|
"ieee754": "^1.1.4"
|
||||||
"isarray": "^1.0.0"
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"buffer-alloc": {
|
"buffer-alloc": {
|
||||||
@@ -9615,6 +9614,17 @@
|
|||||||
"vm-browserify": "^1.0.1"
|
"vm-browserify": "^1.0.1"
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
|
"buffer": {
|
||||||
|
"version": "4.9.2",
|
||||||
|
"resolved": "https://registry.npmjs.org/buffer/-/buffer-4.9.2.tgz",
|
||||||
|
"integrity": "sha512-xq+q3SRMOxGivLhBNaUdC64hDTQwejJ+H0T/NB1XMtTVEwNTrfFF3gAxiyW0Bu/xWEGhjVKgUcMhCrUy2+uCWg==",
|
||||||
|
"dev": true,
|
||||||
|
"requires": {
|
||||||
|
"base64-js": "^1.0.2",
|
||||||
|
"ieee754": "^1.1.4",
|
||||||
|
"isarray": "^1.0.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
"punycode": {
|
"punycode": {
|
||||||
"version": "1.4.1",
|
"version": "1.4.1",
|
||||||
"resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz",
|
"resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz",
|
||||||
|
|||||||
@@ -12,6 +12,7 @@
|
|||||||
"@babel/runtime": "^7.7.4",
|
"@babel/runtime": "^7.7.4",
|
||||||
"babel-eslint": "^10.0.3",
|
"babel-eslint": "^10.0.3",
|
||||||
"babel-loader": "^8.0.6",
|
"babel-loader": "^8.0.6",
|
||||||
|
"buffer": "^5.4.3",
|
||||||
"clean-webpack-plugin": "^3.0.0",
|
"clean-webpack-plugin": "^3.0.0",
|
||||||
"copy-webpack-plugin": "^5.0.5",
|
"copy-webpack-plugin": "^5.0.5",
|
||||||
"css-loader": "^2.1.1",
|
"css-loader": "^2.1.1",
|
||||||
|
|||||||
@@ -16,6 +16,7 @@
|
|||||||
// along with this program. If not, see <https://www.gnu.org/licenses/>.
|
// along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
import * as iconv from "iconv-lite";
|
import * as iconv from "iconv-lite";
|
||||||
|
import * as buffer from "buffer/";
|
||||||
|
|
||||||
import Exception from "./exception.js";
|
import Exception from "./exception.js";
|
||||||
|
|
||||||
@@ -330,6 +331,18 @@ export function strToUint8Array(d) {
|
|||||||
return r;
|
return r;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Convert string into a binary {Uint8Array}
|
||||||
|
*
|
||||||
|
* @param {string} d Input
|
||||||
|
*
|
||||||
|
* @returns {Uint8Array} Output
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
export function strToBinary(d) {
|
||||||
|
return new Uint8Array(buffer.Buffer.from(d, "binary").buffer);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Parse IPv6 address. ::ffff: notation is NOT supported
|
* Parse IPv6 address. ::ffff: notation is NOT supported
|
||||||
*
|
*
|
||||||
|
|||||||
@@ -20,6 +20,7 @@ import * as iconv from "iconv-lite";
|
|||||||
import * as subscribe from "../stream/subscribe.js";
|
import * as subscribe from "../stream/subscribe.js";
|
||||||
import * as reader from "../stream/reader.js";
|
import * as reader from "../stream/reader.js";
|
||||||
import * as color from "../commands/color.js";
|
import * as color from "../commands/color.js";
|
||||||
|
import * as common from "../commands/common.js";
|
||||||
|
|
||||||
class Control {
|
class Control {
|
||||||
constructor(data, color) {
|
constructor(data, color) {
|
||||||
@@ -125,6 +126,14 @@ class Control {
|
|||||||
return this.sender(this.charsetEncoder(data));
|
return this.sender(this.charsetEncoder(data));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
sendBinary(data) {
|
||||||
|
if (this.closed) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
return this.sender(common.strToBinary(data));
|
||||||
|
}
|
||||||
|
|
||||||
color() {
|
color() {
|
||||||
return this.colors.dark;
|
return this.colors.dark;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -20,6 +20,7 @@ import * as iconv from "iconv-lite";
|
|||||||
import * as subscribe from "../stream/subscribe.js";
|
import * as subscribe from "../stream/subscribe.js";
|
||||||
import * as reader from "../stream/reader.js";
|
import * as reader from "../stream/reader.js";
|
||||||
import * as color from "../commands/color.js";
|
import * as color from "../commands/color.js";
|
||||||
|
import * as common from "../commands/common.js";
|
||||||
import Exception from "../commands/exception.js";
|
import Exception from "../commands/exception.js";
|
||||||
|
|
||||||
// const maxReadBufSize = 1024;
|
// const maxReadBufSize = 1024;
|
||||||
@@ -457,13 +458,8 @@ class Control {
|
|||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
send(data) {
|
sendSeg(enc) {
|
||||||
if (this.closed) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
let currentLen = 0;
|
let currentLen = 0;
|
||||||
const enc = this.charsetEncoder(data);
|
|
||||||
|
|
||||||
while (currentLen < enc.length) {
|
while (currentLen < enc.length) {
|
||||||
const iacPos = this.searchNextIAC(currentLen, enc);
|
const iacPos = this.searchNextIAC(currentLen, enc);
|
||||||
@@ -481,6 +477,22 @@ class Control {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
send(data) {
|
||||||
|
if (this.closed) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
this.sendSeg(this.charsetEncoder(data));
|
||||||
|
}
|
||||||
|
|
||||||
|
sendBinary(data) {
|
||||||
|
if (this.closed) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
return this.sendSeg(common.strToBinary(data));
|
||||||
|
}
|
||||||
|
|
||||||
color() {
|
color() {
|
||||||
return this.colors.dark;
|
return this.colors.dark;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -104,7 +104,7 @@ class Term {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
control.send(data);
|
control.sendBinary(data);
|
||||||
});
|
});
|
||||||
|
|
||||||
this.term.onKey(ev => {
|
this.term.onKey(ev => {
|
||||||
|
|||||||
Reference in New Issue
Block a user