Download Latest Version 5.5.0 source code.tar.gz (10.7 MB)
Email in envelope

Get an email when there's a new version of xterm.js

Home / 5.4.0
Name Modified Size InfoDownloads / Week
Parent folder
5.4.0 source code.tar.gz 2024-03-01 10.7 MB
5.4.0 source code.zip 2024-03-01 10.9 MB
README.md 2024-03-01 5.9 kB
Totals: 3 Items   21.6 MB 0

📢 The package has been migrated to the @xterm scope (#4860, [#4861]) via @Tyriar. This means that the old xterm and xterm-* packages are now deprecated and will no longer be maintained. This was done mainly for security reasons to remove ambiguity around the package names and to prevent potential typosquatting attacks.

Please use the new scoped @xterm/* packages.

📦 API

  • input(data: string, wasUserInput?: boolean): void API to emit an input event from Terminal (#4953) via @arencoskun
  • documentOverride option to help multi-window app support (#4844) via @Tyriar
  • attachCustomWheelEventHandler API to allow embedders to intercept wheel events (#4913, [#4915]) via @Tyriar, @tisilent

🐞 Bug fixes

  • Selection is now synchronized between the accessibility tree and the main selection model (#4742) via @JasonXJ
  • Fix and add integration tests for inactive selection drawing (#4763, [#4808]) via @tisilent
  • Fix a possible exception when disposing Terminal (#4776, [#4785]) via @Tyriar
  • Fix handling of invisible characters in the DOM renderer (#4762) via @tisilent
  • Improve reliability of playwright tests across browsers (#4777) via @Tyriar
  • Fix inverse minimum contrast ratio edge cases (#4778) via @Tyriar
  • Fix regression in forced mouse selection handling (#4783) via @Tyriar
  • Always render cursor above selection in the DOM renderer (#4786) via @Tyriar
  • Get voice over to announce terminal output consistently (#4789) via @meganrogge
  • Use isCursorInitialized correctly in the DOM renderer (#4798) via @tisilent
  • Move WidthCache measurment container to the helper element (#4807) via @mofux
  • Fix DOM renderer showing selection overflowing its container (#4815, [#4837]) via @tisilent
  • Don't re-render after parse if the viewport did not change (#4820) via @Tyriar
  • Send correct code for ctrl+alt+backspace (#4839) via @JasonXJ
  • Make xterm.js multi-window aware (#4846, [#4912]) via @Tyriar, @jeanp413
  • Fix node process check for node v21+ (#4851) via @davidfiala
  • Improve non-browser usage of xterm package by preferring globalThis over self (#4856) via @alan-agius4
  • Fix crosshair cursor not working (#4921) via @Tyriar
  • Fix exception in render service (#4954) via @Tyriar
  • Fix spacing when measuring before element is attached to the DOM (#4973) via @Tyriar

📝 Documentation and internal improvements

  • New default text metrics measure strategy (#4929) via @Tyriar. This should improve general performance and also some cases where characters would be cut off.
  • The addon repository package.jsons now point at the correct URL (#4795) via @ujjwalpandey922
  • Upgrade from es6 target to es2021 (#4743) via @Tyriar
  • Set up shared playwright tests for the DOM and canvas renderers (#4768, [#4770]) via @Tyriar
  • Add Edge as a debug target (#4782) via @Tyriar
  • Fix server debugging target (#4784) via @Tyriar
  • Tweak worker use in playwright tests (#4787) via @Tyriar
  • Remove noisy trace calls (#4796, [#4919]) via @Tyriar
  • Remove duplicate overviewRulerWidth from demo (#4803) via @tisilent
  • Clean up setCellFromCodePOint internal API (#4825) via @PerBothner
  • Update node-pty (#4832) via @Tyriar
  • Have addons implement their API so it's checked at compile time (#4847) via @tisilent
  • Fix image addon build (#4862) via @Tyriar
  • Remove testing on node v16 (#4866) via @silamon
  • Help embedders avoid memory leaks by unsetting options on dispose (#4910) via @Tyriar
  • Improve structure of link implementation (#4924) via @Tyriar
  • Refactor color handling code and add tests (#4927) via @Tyriar
  • Update eslint and eslint-plugin-jsdoc (#4930) via @PerBothner
  • Ignore out/ dirs in eslint (#4931) via @Tyriar

⚠️ Deprecations

- The old xterm and xterm-* packages are now deprecated and will no longer be maintained. Please use the new scoped @xterm/* packages instead.

📥 Addons

@xterm/addon-canvas

  • Add underline variants to make underline patterns appear correctly (#4703) via @tisilent
  • Improve rendering of dashed underline patterns (#4874) via @tisilent
  • Support blending of selection and background/powerline characters and the selection (#4920, [#4950]) via @Tyriar

@xterm/addon-unicode-graphemes

This is a new experimental addon that provides support for grapheme clusters in the terminal (#4519) via @PerBothner

  • Tweak addon export (#4809) via @silamon
  • Remove install instructions from README (#4858) via @Tyriar
  • Bring back clearActiveDecoration API implementation (#4827) via @Tyriar
  • Re-search when options change (#4831) via @tisilent

@xterm/addon-serialize

  • Fix hex color serialization (#4833) via @arcanis
  • Add ability to serialize via a range (#4877) via @Tyriar

@xterm/addon-webgl

  • Add underline variants to make underline patterns appear correctly (#4703) via @tisilent
  • Improve rendering of dashed underline patterns (#4874) via @tisilent
  • Fix inactive cursor rendering (#4801) via @tisilent
  • Allow addon to work on legacy versions of Safari when webgl2 is explicitly enabled (#4836) via @xiaoxiaobt
  • Support blending of selection and background/powerline characters and the selection (#4920, [#4950]) via @Tyriar
  • Fix url parsing for urls with percentage sign (#4937) via @szymonkaliski
  • Fix uppercase url parsing (#4965) via @jerch

🤝 Compatible addon versions

Addon Version
@xterm/addon-attach 0.10.0
@xterm/addon-canvas 0.6.0
@xterm/addon-fit 0.9.0
@xterm/addon-image 0.7.0
@xterm/addon-ligatures 0.8.0
@xterm/addon-search 0.14.0
@xterm/addon-serialize 0.12.0
@xterm/addon-unicode-graphemes 0.2.0
@xterm/addon-unicode11 0.7.0
@xterm/addon-web-links 0.10.0
@xterm/addon-webgl 0.17.0
Source: README.md, updated 2024-03-01