feat(electrobun): upgrade to xterm 6.0.0, disable incompatible Canvas/Image addons (DOM renderer)
This commit is contained in:
parent
adee8e03c5
commit
b506dfc39a
3 changed files with 22 additions and 32 deletions
26
ui-electrobun/package-lock.json
generated
26
ui-electrobun/package-lock.json
generated
|
|
@ -25,9 +25,9 @@
|
||||||
"@formatjs/intl": "^4.1.4",
|
"@formatjs/intl": "^4.1.4",
|
||||||
"@formatjs/intl-pluralrules": "^6.3.1",
|
"@formatjs/intl-pluralrules": "^6.3.1",
|
||||||
"@xterm/addon-canvas": "^0.7.0",
|
"@xterm/addon-canvas": "^0.7.0",
|
||||||
"@xterm/addon-fit": "^0.10.0",
|
"@xterm/addon-fit": "^0.11.0",
|
||||||
"@xterm/addon-image": "^0.8.0",
|
"@xterm/addon-image": "^0.8.0",
|
||||||
"@xterm/xterm": "^5.5.0",
|
"@xterm/xterm": "^6.0.0",
|
||||||
"dompurify": "^3.3.3",
|
"dompurify": "^3.3.3",
|
||||||
"electrobun": "latest",
|
"electrobun": "latest",
|
||||||
"lucide-svelte": "^0.577.0",
|
"lucide-svelte": "^0.577.0",
|
||||||
|
|
@ -1604,13 +1604,10 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@xterm/addon-fit": {
|
"node_modules/@xterm/addon-fit": {
|
||||||
"version": "0.10.0",
|
"version": "0.11.0",
|
||||||
"resolved": "https://registry.npmjs.org/@xterm/addon-fit/-/addon-fit-0.10.0.tgz",
|
"resolved": "https://registry.npmjs.org/@xterm/addon-fit/-/addon-fit-0.11.0.tgz",
|
||||||
"integrity": "sha512-UFYkDm4HUahf2lnEyHvio51TNGiLK66mqP2JoATy7hRZeXaGMRDr00JiSF7m63vR5WKATF605yEggJKsw0JpMQ==",
|
"integrity": "sha512-jYcgT6xtVYhnhgxh3QgYDnnNMYTcf8ElbxxFzX0IZo+vabQqSPAjC3c1wJrKB5E19VwQei89QCiZZP86DCPF7g==",
|
||||||
"license": "MIT",
|
"license": "MIT"
|
||||||
"peerDependencies": {
|
|
||||||
"@xterm/xterm": "^5.0.0"
|
|
||||||
}
|
|
||||||
},
|
},
|
||||||
"node_modules/@xterm/addon-image": {
|
"node_modules/@xterm/addon-image": {
|
||||||
"version": "0.8.0",
|
"version": "0.8.0",
|
||||||
|
|
@ -1622,10 +1619,13 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@xterm/xterm": {
|
"node_modules/@xterm/xterm": {
|
||||||
"version": "5.5.0",
|
"version": "6.0.0",
|
||||||
"resolved": "https://registry.npmjs.org/@xterm/xterm/-/xterm-5.5.0.tgz",
|
"resolved": "https://registry.npmjs.org/@xterm/xterm/-/xterm-6.0.0.tgz",
|
||||||
"integrity": "sha512-hqJHYaQb5OptNunnyAnkHyM8aCjZ1MEIDTQu1iIbbTD/xops91NB5yq1ZK/dC2JDbVWtF23zUtl9JE2NqwT87A==",
|
"integrity": "sha512-TQwDdQGtwwDt+2cgKDLn0IRaSxYu1tSUjgKarSDkUM0ZNiSRXFpjxEsvc/Zgc5kq5omJ+V0a8/kIM2WD3sMOYg==",
|
||||||
"license": "MIT"
|
"license": "MIT",
|
||||||
|
"workspaces": [
|
||||||
|
"addons/*"
|
||||||
|
]
|
||||||
},
|
},
|
||||||
"node_modules/acorn": {
|
"node_modules/acorn": {
|
||||||
"version": "8.15.0",
|
"version": "8.15.0",
|
||||||
|
|
|
||||||
|
|
@ -31,9 +31,9 @@
|
||||||
"@formatjs/intl": "^4.1.4",
|
"@formatjs/intl": "^4.1.4",
|
||||||
"@formatjs/intl-pluralrules": "^6.3.1",
|
"@formatjs/intl-pluralrules": "^6.3.1",
|
||||||
"@xterm/addon-canvas": "^0.7.0",
|
"@xterm/addon-canvas": "^0.7.0",
|
||||||
"@xterm/addon-fit": "^0.10.0",
|
"@xterm/addon-fit": "^0.11.0",
|
||||||
"@xterm/addon-image": "^0.8.0",
|
"@xterm/addon-image": "^0.8.0",
|
||||||
"@xterm/xterm": "^5.5.0",
|
"@xterm/xterm": "^6.0.0",
|
||||||
"dompurify": "^3.3.3",
|
"dompurify": "^3.3.3",
|
||||||
"electrobun": "latest",
|
"electrobun": "latest",
|
||||||
"lucide-svelte": "^0.577.0",
|
"lucide-svelte": "^0.577.0",
|
||||||
|
|
|
||||||
|
|
@ -1,9 +1,12 @@
|
||||||
<script lang="ts">
|
<script lang="ts">
|
||||||
import { onMount, onDestroy } from 'svelte';
|
import { onMount, onDestroy } from 'svelte';
|
||||||
import { Terminal } from '@xterm/xterm';
|
import { Terminal } from '@xterm/xterm';
|
||||||
import { CanvasAddon } from '@xterm/addon-canvas';
|
|
||||||
import { FitAddon } from '@xterm/addon-fit';
|
import { FitAddon } from '@xterm/addon-fit';
|
||||||
import { ImageAddon } from '@xterm/addon-image';
|
// CanvasAddon and ImageAddon require xterm ^5.0.0 — disabled on xterm 6.x
|
||||||
|
// xterm 6's default renderer uses DOM (no Canvas/WebGL needed)
|
||||||
|
// TODO: re-enable when @xterm/addon-canvas releases a 6.x-compatible version
|
||||||
|
// import { CanvasAddon } from '@xterm/addon-canvas';
|
||||||
|
// import { ImageAddon } from '@xterm/addon-image';
|
||||||
import { appRpc } from './rpc.ts';
|
import { appRpc } from './rpc.ts';
|
||||||
import { fontStore } from './font-store.svelte.ts';
|
import { fontStore } from './font-store.svelte.ts';
|
||||||
import { themeStore } from './theme-store.svelte.ts';
|
import { themeStore } from './theme-store.svelte.ts';
|
||||||
|
|
@ -55,21 +58,8 @@
|
||||||
|
|
||||||
const openAndLoadAddons = () => {
|
const openAndLoadAddons = () => {
|
||||||
term.open(termEl);
|
term.open(termEl);
|
||||||
// Now safe to load addons that depend on _linkifier2
|
// xterm 6.x uses improved default DOM renderer — no Canvas/WebGL addon needed
|
||||||
try { term.loadAddon(new CanvasAddon()); } catch (e) {
|
// Re-enable when addons release 6.x-compatible versions
|
||||||
console.warn('[Terminal] CanvasAddon failed:', (e as Error).message);
|
|
||||||
}
|
|
||||||
try {
|
|
||||||
term.loadAddon(new ImageAddon({
|
|
||||||
enableSizeReports: true,
|
|
||||||
sixelSupport: true,
|
|
||||||
sixelScrolling: true,
|
|
||||||
sixelPaletteLimit: 4096,
|
|
||||||
showPlaceholder: true,
|
|
||||||
}));
|
|
||||||
} catch (e) {
|
|
||||||
console.warn('[Terminal] ImageAddon failed:', (e as Error).message);
|
|
||||||
}
|
|
||||||
fitAddon.fit();
|
fitAddon.fit();
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue