diff --git a/package-lock.json b/package-lock.json index cd1e05f9..175b5b97 100644 --- a/package-lock.json +++ b/package-lock.json @@ -11,7 +11,7 @@ "dependencies": { "@vscode/debugadapter": "^1.68.0", "@vscode/debugprotocol": "^1.68.0", - "@xmldom/xmldom": "^0.8.4", + "@xmldom/xmldom": "^0.9.8", "buffer-crc32": "^1.0.0", "dotenv": "^17.2.1", "file-url": "^3.0.0", @@ -3348,11 +3348,11 @@ } }, "node_modules/@xmldom/xmldom": { - "version": "0.8.10", - "resolved": "https://registry.npmjs.org/@xmldom/xmldom/-/xmldom-0.8.10.tgz", - "integrity": "sha512-2WALfTl4xo2SkGCYRt6rDTFfk9R1czmBvUQy12gK2KuRKIpWEhcbbzy8EZXtz/jkRqHX8bFEc6FC1HjX4TUWYw==", + "version": "0.9.8", + "resolved": "https://registry.npmjs.org/@xmldom/xmldom/-/xmldom-0.9.8.tgz", + "integrity": "sha512-p96FSY54r+WJ50FIOsCOjyj/wavs8921hG5+kVMmZgKcvIKxMXHTrjNJvRgWa/zuX3B6t2lijLNFaOyuxUH+2A==", "engines": { - "node": ">=10.0.0" + "node": ">=14.6" } }, "node_modules/acorn": { @@ -16759,9 +16759,9 @@ "optional": true }, "@xmldom/xmldom": { - "version": "0.8.10", - "resolved": "https://registry.npmjs.org/@xmldom/xmldom/-/xmldom-0.8.10.tgz", - "integrity": "sha512-2WALfTl4xo2SkGCYRt6rDTFfk9R1czmBvUQy12gK2KuRKIpWEhcbbzy8EZXtz/jkRqHX8bFEc6FC1HjX4TUWYw==" + "version": "0.9.8", + "resolved": "https://registry.npmjs.org/@xmldom/xmldom/-/xmldom-0.9.8.tgz", + "integrity": "sha512-p96FSY54r+WJ50FIOsCOjyj/wavs8921hG5+kVMmZgKcvIKxMXHTrjNJvRgWa/zuX3B6t2lijLNFaOyuxUH+2A==" }, "acorn": { "version": "8.15.0", diff --git a/package.json b/package.json index ea577879..717617de 100644 --- a/package.json +++ b/package.json @@ -45,7 +45,7 @@ "dependencies": { "@vscode/debugadapter": "^1.68.0", "@vscode/debugprotocol": "^1.68.0", - "@xmldom/xmldom": "^0.8.4", + "@xmldom/xmldom": "^0.9.8", "buffer-crc32": "^1.0.0", "dotenv": "^17.2.1", "file-url": "^3.0.0", diff --git a/src/dbgp.ts b/src/dbgp.ts index 48d9ba1d..e562d5ad 100644 --- a/src/dbgp.ts +++ b/src/dbgp.ts @@ -92,21 +92,18 @@ export class DbgpConnection extends EventEmitter { // append the last piece of the response const lastResponsePiece = data.slice(0, this._dataLength - this._chunksDataLength) this._chunks.push(lastResponsePiece) - this._chunksDataLength += data.length + this._chunksDataLength += lastResponsePiece.length const response = Buffer.concat(this._chunks, this._chunksDataLength) // call response handler const xml = iconv.decode(response, ENCODING) const parser = new DOMParser({ - errorHandler: { - warning: warning => { - this.emit('warning', warning) - }, - error: error => { - this.emit('error', error instanceof Error ? error : new Error(error as string)) - }, - fatalError: error => { - this.emit('error', error instanceof Error ? error : new Error(error as string)) - }, + onError: (level, msg) => { + if (level === 'warning') { + this.emit('warning', msg) + } + if (level === 'error' || level === 'fatalError') { + this.emit('error', new Error(msg)) + } }, }) this.emit('log', `-> ${xml.replace(/[\0\n]/g, '')}`) diff --git a/src/proxyConnect.ts b/src/proxyConnect.ts index ad6b4202..cdbbd8cd 100644 --- a/src/proxyConnect.ts +++ b/src/proxyConnect.ts @@ -155,10 +155,8 @@ export class ProxyConnect extends EventEmitter { /** Parse data from response server and emit the relevant notification. */ private _responseStrategy(data: Buffer) { try { - const documentElement = this._parser.parseFromString( - decode(data, ENCODING), - 'application/xml' - ).documentElement + const documentElement = this._parser.parseFromString(decode(data, ENCODING), 'application/xml') + .documentElement! const isSuccessful = documentElement.getAttribute('success') === '1' const error = documentElement.firstChild if (isSuccessful && documentElement.nodeName === 'proxyinit') {