cli-ui 2.6.0 → 2.7.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: ff323415fd623b745426ec805bffd7f768556bf90036b16e5a59159fe288e04a
4
- data.tar.gz: 1af5e6bbffc30826a8180078e1c0bc66d0de832396d5f1efb9487535693d6bee
3
+ metadata.gz: 3a1c6da3c7bdbea0fb1cc70677acac4182c40196cf65b69127c40804bed532d4
4
+ data.tar.gz: 6ba1a30edf06fdb24d53869a70ba505f492a4ea70792fe5bfd0a3cddc2ca4b50
5
5
  SHA512:
6
- metadata.gz: db97a7a85a062661707953c1049abc0fb5289846260032edadf81beac799b2d81f22fba1289f89dc22a2e8aa99ccfbeffb1dfb14d348cc74b4c4ef85cb6d5031
7
- data.tar.gz: 013f02c7461aad82f5242a051a1fbe0f95687338109e40fcf38c4525b37f4c522fa8714a37d417bff98f0718bec5ea607598183a38154265240974e638c300bc
6
+ metadata.gz: a514afedeb744836daa7f3df1d20960c0b80fd47483d6f9f5407443c58cca58313363cface002ac7b2dafe6846b53c10507739dd9f72256f0a8742735b165b3e
7
+ data.tar.gz: a8e467997d9b5309787c7bcb4c30bf4d025c4aa968179938c1a673c712ccecceb37f06edfc70daaca4232f9def8f72e102808aed4f2ccfd4da7e245b87f382eb
data/lib/cli/ui/ansi.rb CHANGED
@@ -7,6 +7,11 @@ module CLI
7
7
  module UI
8
8
  module ANSI
9
9
  ESC = "\x1b"
10
+ # https://ghostty.org/docs/vt/concepts/sequences#csi-sequences
11
+ CSI_SEQUENCE = /\x1b\[[\d;:]+[\x20-\x2f]*?[\x40-\x7e]/
12
+ # https://ghostty.org/docs/vt/concepts/sequences#osc-sequences
13
+ # OSC sequences can be terminated with either ST (\x1b\x5c) or BEL (\x07)
14
+ OSC_SEQUENCE = /\x1b\][^\x07\x1b]*?(?:\x07|\x1b\x5c)/
10
15
 
11
16
  class << self
12
17
  # ANSI escape sequences (like \x1b[31m) have zero width.
@@ -42,7 +47,7 @@ module CLI
42
47
  #
43
48
  #: (String str) -> String
44
49
  def strip_codes(str)
45
- str.gsub(/\x1b\[[\d;]+[A-Za-z]|\x1b\][\d;]+.*?\x1b\\|\r/, '')
50
+ str.gsub(Regexp.union(CSI_SEQUENCE, OSC_SEQUENCE, /\r/), '')
46
51
  end
47
52
 
48
53
  # Returns an ANSI control sequence
@@ -3,6 +3,6 @@
3
3
 
4
4
  module CLI
5
5
  module UI
6
- VERSION = '2.6.0'
6
+ VERSION = '2.7.0'
7
7
  end
8
8
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: cli-ui
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.6.0
4
+ version: 2.7.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Burke Libbey