From 0024f0f3e80b321ee02a9afcd682ccdc689e30a6 Mon Sep 17 00:00:00 2001 From: Mike Sawka Date: Fri, 29 Mar 2024 10:52:18 -0700 Subject: [PATCH] fix xterm.js versions and addon versions (#534) * make xterm packages consistent * add serializeAddon, fix varsUpdated --- package.json | 7 ++++--- src/plugins/terminal/term.ts | 9 ++++++--- wavesrv/pkg/cmdrunner/cmdrunner.go | 4 +--- yarn.lock | 17 +++++++++++------ 4 files changed, 22 insertions(+), 15 deletions(-) diff --git a/package.json b/package.json index 0e9985d3..546a9d84 100644 --- a/package.json +++ b/package.json @@ -23,7 +23,6 @@ "@table-nav/react": "^0.0.7", "@tanstack/match-sorter-utils": "^8.8.4", "@tanstack/react-table": "^8.10.3", - "@xterm/addon-webgl": "^0.17.0", "autobind-decorator": "^2.4.0", "base64-js": "^1.5.1", "classnames": "^2.3.1", @@ -50,8 +49,10 @@ "tsx-control-statements": "^5.1.1", "uuid": "^9.0.0", "winston": "^3.8.2", - "xterm": "^5.0.0", - "xterm-addon-web-links": "^0.9.0" + "xterm": "^5.3.0", + "xterm-addon-web-links": "^0.9.0", + "xterm-addon-serialize": "^0.11.0", + "xterm-addon-webgl": "^0.16.0" }, "devDependencies": { "@babel/cli": "^7.17.10", diff --git a/src/plugins/terminal/term.ts b/src/plugins/terminal/term.ts index 53aae0f1..5ad64436 100644 --- a/src/plugins/terminal/term.ts +++ b/src/plugins/terminal/term.ts @@ -4,14 +4,14 @@ import * as mobx from "mobx"; import { Terminal } from "xterm"; import type { ITheme } from "xterm"; -//TODO: replace with `@xterm/addon-web-links` when it's available as stable -import { WebLinksAddon } from "xterm-addon-web-links"; import { sprintf } from "sprintf-js"; import { boundMethod } from "autobind-decorator"; import { windowWidthToCols, windowHeightToRows } from "@/util/textmeasure"; import { boundInt } from "@/util/util"; import { GlobalModel } from "@/models"; -import { WebglAddon } from "@xterm/addon-webgl"; +import { WebglAddon } from "xterm-addon-webgl"; +import { WebLinksAddon } from "xterm-addon-web-links"; +import { SerializeAddon } from "xterm-addon-serialize"; type DataUpdate = { data: Uint8Array; @@ -102,6 +102,7 @@ class TermWrap { ptyDataSource: (termContext: TermContextUnion) => Promise; initializing: boolean; dataHandler?: (data: string, termWrap: TermWrap) => void; + serializeAddon: SerializeAddon; constructor(elem: Element, opts: TermWrapOpts) { opts = opts ?? ({} as any); @@ -168,6 +169,8 @@ class TermWrap { loggedWebGL = true; } } + this.serializeAddon = new SerializeAddon(); + this.terminal.loadAddon(this.serializeAddon); this.terminal._core._inputHandler._parser.setErrorHandler((state) => { this.numParseErrors++; return state; diff --git a/wavesrv/pkg/cmdrunner/cmdrunner.go b/wavesrv/pkg/cmdrunner/cmdrunner.go index 120d8183..896049d8 100644 --- a/wavesrv/pkg/cmdrunner/cmdrunner.go +++ b/wavesrv/pkg/cmdrunner/cmdrunner.go @@ -5851,15 +5851,13 @@ func ClientSetCommand(ctx context.Context, pk *scpacket.FeCommandPacketType) (sc } if webglStr, found := pk.Kwargs["webgl"]; found { webglVal := resolveBool(webglStr, false) - if webglVal { - varsUpdated = append(varsUpdated, "webgl") - } clientOpts := clientData.ClientOpts clientOpts.WebGL = webglVal err = sstore.SetClientOpts(ctx, clientOpts) if err != nil { return nil, fmt.Errorf("error updating client webgl: %v", err) } + varsUpdated = append(varsUpdated, "webgl") } if len(varsUpdated) == 0 { return nil, fmt.Errorf("/client:set requires a value to set: %s", formatStrs([]string{"termfontsize", "termfontfamily", "openaiapitoken", "openaimodel", "openaibaseurl", "openaimaxtokens", "openaimaxchoices", "webgl"}, "or", false)) diff --git a/yarn.lock b/yarn.lock index 14a52fc7..515fb593 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2707,11 +2707,6 @@ resolved "https://registry.yarnpkg.com/@xmldom/xmldom/-/xmldom-0.8.10.tgz#a1337ca426aa61cef9fe15b5b28e340a72f6fa99" integrity sha512-2WALfTl4xo2SkGCYRt6rDTFfk9R1czmBvUQy12gK2KuRKIpWEhcbbzy8EZXtz/jkRqHX8bFEc6FC1HjX4TUWYw== -"@xterm/addon-webgl@^0.17.0": - version "0.17.0" - resolved "https://registry.yarnpkg.com/@xterm/addon-webgl/-/addon-webgl-0.17.0.tgz#1da534456b7971ebb2f08c381d4732d1f104d7d8" - integrity sha512-KUH//EZCz7j1+IekW8sZzmcj/y9gOLf/HMcsWXjg0Xr5cT1lIBIIbbBlbf5kZ+XnA/8c1IuBm1vx+blzlfPk0g== - "@xtuc/ieee754@^1.2.0": version "1.2.0" resolved "https://registry.yarnpkg.com/@xtuc/ieee754/-/ieee754-1.2.0.tgz#eef014a3145ae477a1cbc00cd1e552336dceb790" @@ -8095,12 +8090,22 @@ xmlbuilder@>=11.0.1, xmlbuilder@^15.1.1: resolved "https://registry.yarnpkg.com/xmlbuilder/-/xmlbuilder-15.1.1.tgz#9dcdce49eea66d8d10b42cae94a79c3c8d0c2ec5" integrity sha512-yMqGBqtXyeN1e3TGYvgNgDVZ3j84W4cwkOXQswghol6APgZWaff9lnbvN7MHYJOiXsvGPXtjTYJEiC9J2wv9Eg== +xterm-addon-serialize@^0.11.0: + version "0.11.0" + resolved "https://registry.yarnpkg.com/xterm-addon-serialize/-/xterm-addon-serialize-0.11.0.tgz#e8b34a3618750a9e132562a6459627059c031226" + integrity sha512-2CNDnmLdLkNWfsxNFkGsI5FE9W/BbsMzeOrbu59yNqH9L6k1gmL+Ab6VXxEp2NQUJSzaiqi6t0nFR5k5EDkVIg== + xterm-addon-web-links@^0.9.0: version "0.9.0" resolved "https://registry.yarnpkg.com/xterm-addon-web-links/-/xterm-addon-web-links-0.9.0.tgz#c65b18588d1f613e703eb6feb7f129e7ff1c63e7" integrity sha512-LIzi4jBbPlrKMZF3ihoyqayWyTXAwGfu4yprz1aK2p71e9UKXN6RRzVONR0L+Zd+Ik5tPVI9bwp9e8fDTQh49Q== -xterm@^5.0.0: +xterm-addon-webgl@^0.16.0: + version "0.16.0" + resolved "https://registry.yarnpkg.com/xterm-addon-webgl/-/xterm-addon-webgl-0.16.0.tgz#9872d08a64136f893b27ef9a6412136d3bf563c4" + integrity sha512-E8cq1AiqNOv0M/FghPT+zPAEnvIQRDbAbkb04rRYSxUym69elPWVJ4sv22FCLBqM/3LcrmBLl/pELnBebVFKgA== + +xterm@^5.3.0: version "5.3.0" resolved "https://registry.yarnpkg.com/xterm/-/xterm-5.3.0.tgz#867daf9cc826f3d45b5377320aabd996cb0fce46" integrity sha512-8QqjlekLUFTrU6x7xck1MsPzPA571K5zNqWm0M0oroYEWVOptZ0+ubQSkQ3uxIEhcIHRujJy6emDWX4A7qyFzg==