From f0dc67af97aed1a46b6682823ed55fc3cfccefdf Mon Sep 17 00:00:00 2001
From: codeguru <codeguru@noreply.github.com>
Date: Sun, 28 Jul 2024 23:46:05 +0000
Subject: [PATCH 1/3] add class for blinking text control code (\x1b[5m) to DOM
 renderer

---
 src/browser/renderer/dom/DomRendererRowFactory.ts | 5 +++++
 1 file changed, 5 insertions(+)

diff --git a/src/browser/renderer/dom/DomRendererRowFactory.ts b/src/browser/renderer/dom/DomRendererRowFactory.ts
index d71edeb96f..9328043579 100644
--- a/src/browser/renderer/dom/DomRendererRowFactory.ts
+++ b/src/browser/renderer/dom/DomRendererRowFactory.ts
@@ -24,6 +24,7 @@ export const enum RowCss {
   UNDERLINE_CLASS = 'xterm-underline',
   OVERLINE_CLASS = 'xterm-overline',
   STRIKETHROUGH_CLASS = 'xterm-strikethrough',
+  BLINK_CLASS = 'xterm-blink',
   CURSOR_CLASS = 'xterm-cursor',
   CURSOR_BLINK_CLASS = 'xterm-cursor-blink',
   CURSOR_STYLE_BLOCK_CLASS = 'xterm-cursor-block',
@@ -300,6 +301,10 @@ export class DomRendererRowFactory {
         classes.push(RowCss.STRIKETHROUGH_CLASS);
       }
 
+      if (cell.isBlink()) {
+        classes.push(RowCss.BLINK_CLASS);
+      }
+
       // apply link hover underline late, effectively overrides any previous text-decoration
       // settings
       if (isLinkHover) {

From abe0640331e7ea6a26fe0db032da7499384bccfc Mon Sep 17 00:00:00 2001
From: Daniel Imms <2193314+Tyriar@users.noreply.github.com>
Date: Mon, 5 Aug 2024 11:50:36 -0700
Subject: [PATCH 2/3] Use main document to create viewport element

See microsoft/vscode#224555
---
 src/browser/Viewport.ts | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/browser/Viewport.ts b/src/browser/Viewport.ts
index 6a8e155f43..241f4df431 100644
--- a/src/browser/Viewport.ts
+++ b/src/browser/Viewport.ts
@@ -76,7 +76,7 @@ export class Viewport extends Disposable {
     element.appendChild(this._scrollableElement.getDomNode());
     this._register(toDisposable(() => this._scrollableElement.getDomNode().remove()));
 
-    this._styleElement = coreBrowserService.window.document.createElement('style');
+    this._styleElement = coreBrowserService.mainDocument.createElement('style');
     screenElement.appendChild(this._styleElement);
     this._register(toDisposable(() => this._styleElement.remove()));
     this._register(Event.runAndSubscribe(themeService.onChangeColors, () => {

From dd54ef13bcc17a184bd995b411f03791e33de4f8 Mon Sep 17 00:00:00 2001
From: Daniel Imms <2193314+Tyriar@users.noreply.github.com>
Date: Thu, 8 Aug 2024 05:54:56 -0700
Subject: [PATCH 3/3] Update node-pty, use conpty.dll

---
 demo/server.js |  9 ++++++---
 package.json   |  2 +-
 yarn.lock      | 20 ++++++++++----------
 3 files changed, 17 insertions(+), 14 deletions(-)

diff --git a/demo/server.js b/demo/server.js
index 8a8c5d1139..748546d9b0 100644
--- a/demo/server.js
+++ b/demo/server.js
@@ -59,13 +59,16 @@ function startServer() {
     }
     const cols = parseInt(req.query.cols);
     const rows = parseInt(req.query.rows);
-    const term = pty.spawn(process.platform === 'win32' ? 'pwsh.exe' : 'bash', [], {
+    const isWindows = process.platform === 'win32';
+    const term = pty.spawn(isWindows ? 'pwsh.exe' : 'bash', [], {
       name: 'xterm-256color',
       cols: cols ?? 80,
       rows: rows ?? 24,
-      cwd: process.platform === 'win32' ? undefined : env.PWD,
+      cwd: isWindows ? undefined : env.PWD,
       env,
-      encoding: USE_BINARY ? null : 'utf8'
+      encoding: USE_BINARY ? null : 'utf8',
+      useConpty: isWindows,
+      useConptyDll: isWindows,
     });
 
     console.log('Created terminal with PID: ' + term.pid);
diff --git a/package.json b/package.json
index 479d9dc613..6b3f6910a3 100644
--- a/package.json
+++ b/package.json
@@ -95,7 +95,7 @@
     "jsdom": "^18.0.1",
     "mocha": "^10.1.0",
     "mustache": "^4.2.0",
-    "node-pty": "1.1.0-beta5",
+    "node-pty": "1.1.0-beta19",
     "nyc": "^15.1.0",
     "source-map-loader": "^3.0.0",
     "source-map-support": "^0.5.20",
diff --git a/yarn.lock b/yarn.lock
index 5925b86dae..82f5dee877 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -3190,11 +3190,6 @@ mustache@^4.2.0:
   resolved "https://registry.yarnpkg.com/mustache/-/mustache-4.2.0.tgz#e5892324d60a12ec9c2a73359edca52972bf6f64"
   integrity sha512-71ippSywq5Yb7/tVYyGbkBggbU8H3u5Rz56fH60jGFgr8uHwxs+aSKeqmluIVzM0m0kB7xQjKS6qPfd0b2ZoqQ==
 
-nan@^2.17.0:
-  version "2.18.0"
-  resolved "https://registry.yarnpkg.com/nan/-/nan-2.18.0.tgz#26a6faae7ffbeb293a39660e88a76b82e30b7554"
-  integrity sha512-W7tfG7vMOGtD30sHoZSSc/JVYiyDPEyQVso/Zz+/uQd0B0L46gtC+pHha5FFMRpil6fm/AoEcRWyOVi4+E/f8w==
-
 nanoid@3.3.3:
   version "3.3.3"
   resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.3.tgz#fd8e8b7aa761fe807dba2d1b98fb7241bb724a25"
@@ -3220,6 +3215,11 @@ neo-async@^2.6.2:
   resolved "https://registry.yarnpkg.com/neo-async/-/neo-async-2.6.2.tgz#b4aafb93e3aeb2d8174ca53cf163ab7d7308305f"
   integrity sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==
 
+node-addon-api@^7.1.0:
+  version "7.1.1"
+  resolved "https://registry.yarnpkg.com/node-addon-api/-/node-addon-api-7.1.1.tgz#1aba6693b0f255258a049d621329329322aad558"
+  integrity sha512-5m3bsyrjFWE1xf7nz7YXdN4udnVtXK6/Yfgn5qnahL6bCkf2yKt4k3nuTKAtT4r3IG8JNR2ncsIMdZuAzJjHQQ==
+
 node-preload@^0.2.1:
   version "0.2.1"
   resolved "https://registry.yarnpkg.com/node-preload/-/node-preload-0.2.1.tgz#c03043bb327f417a18fee7ab7ee57b408a144301"
@@ -3227,12 +3227,12 @@ node-preload@^0.2.1:
   dependencies:
     process-on-spawn "^1.0.0"
 
-node-pty@1.1.0-beta5:
-  version "1.1.0-beta5"
-  resolved "https://registry.yarnpkg.com/node-pty/-/node-pty-1.1.0-beta5.tgz#364386b7058a93070234064f13164ec1ef914993"
-  integrity sha512-j3QdgFHnLY0JWxztrvM3g67RaQLOGvytv+C6mFu0PqD+JILlzqfwuoyqRqVxdZZjoOTUXPfSRj1qPVCaCH+eOw==
+node-pty@1.1.0-beta19:
+  version "1.1.0-beta19"
+  resolved "https://registry.yarnpkg.com/node-pty/-/node-pty-1.1.0-beta19.tgz#a74dc04429903c5ac49ee81a15a24590da67d4f3"
+  integrity sha512-/p4Zu56EYDdXjjaLWzrIlFyrBnND11LQGP0/L6GEVGURfCNkAlHc3Twg/2I4NPxghimHXgvDlwp7Z2GtvDIh8A==
   dependencies:
-    nan "^2.17.0"
+    node-addon-api "^7.1.0"
 
 node-releases@^2.0.12:
   version "2.0.13"