sass-embedded 1.77.8-x86-mingw32 → 1.78.0-x86-mingw32

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 3d41bb927b2a190664900b97af71645c7c40229ec584dc7cc42f822f1791b47d
4
- data.tar.gz: 4034de3b2c0f7a584aad050998c9e97d61f73e420e299ffc2d6f9e8ee055b987
3
+ metadata.gz: 2d2c57c2b050255f47342add0da96f8d710a1ea9d0b62143d1be1ffa1e967aa5
4
+ data.tar.gz: e4f7ef328d3b618fba6dd3d03c71ef6ac35952a9da717db0d393f08fb2124536
5
5
  SHA512:
6
- metadata.gz: 92bd9a361cc6c0efad6980b2069f793afdbd225f7603232a7eb33bba0ba13c9f1c7f30745026c2daf73369e4b836bd1b70953cd762a616e2449909b2b515ca09
7
- data.tar.gz: bc6e9286377405ebb38c9ba56e54997c872813cd35877ee4ff974c89121f8ba349c4916eb2866f1b501988318d6d9913a6f38ea35e456b441af33e99a354dfb6
6
+ metadata.gz: e21d4b49c6d6e230de608db2fb9771618e086a465a3dfc91548974851a9258aba7ad5ee6eb276c17c0a21ae0376f11e6f119f87b9ef0992d153f63665c1a5a4a
7
+ data.tar.gz: a5102041be5eb2610b5a2d93d7358ab1517f2a4e793c680352547318fe14c878c111300e0b3a674d1c1103b437e186302ec0b9bbb15cec77f9faf461d99e0878
@@ -215,8 +215,7 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
215
215
 
216
216
  --------------------------------------------------------------------------------
217
217
 
218
- async, cli_util, collection, mime, source_map_stack_trace, stream_channel and
219
- typed_data license:
218
+ async, cli_util, collection, mime, stream_channel and typed_data license:
220
219
 
221
220
  Copyright 2015, the Dart project authors.
222
221
 
@@ -583,7 +582,7 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
583
582
 
584
583
  --------------------------------------------------------------------------------
585
584
 
586
- convert, crypto, shelf_static and vm_service license:
585
+ convert, crypto, shelf_static, source_map_stack_trace and vm_service license:
587
586
 
588
587
  Copyright 2015, the Dart project authors.
589
588
 
Binary file
Binary file
data/lib/sass/compiler.rb CHANGED
@@ -62,7 +62,7 @@ module Sass
62
62
  # compilation to avoid deluging users in console noise. If you set verbose to +true+, it will instead print every
63
63
  # deprecation warning it encounters.
64
64
  # @return [CompileResult]
65
- # @raise [ArgumentError, CompileError]
65
+ # @raise [ArgumentError, CompileError, IOError]
66
66
  # @see https://sass-lang.com/documentation/js-api/functions/compile/
67
67
  def compile(path,
68
68
  load_paths: [],
@@ -142,7 +142,7 @@ module Sass
142
142
  # compilation to avoid deluging users in console noise. If you set verbose to +true+, it will instead print every
143
143
  # deprecation warning it encounters.
144
144
  # @return [CompileResult]
145
- # @raise [ArgumentError, CompileError]
145
+ # @raise [ArgumentError, CompileError, IOError]
146
146
  # @see https://sass-lang.com/documentation/js-api/functions/compilestring/
147
147
  def compile_string(source,
148
148
  importer: nil,
data/lib/sass/elf.rb CHANGED
@@ -7,26 +7,76 @@ module Sass
7
7
  # @see https://github.com/torvalds/linux/blob/HEAD/include/uapi/linux/elf.h
8
8
  # @see https://github.com/torvalds/linux/blob/HEAD/kernel/kexec_elf.c
9
9
  class ELF
10
- # rubocop:disable Naming/ConstantName
11
-
12
- # 32-bit ELF base types.
13
- Elf32_Addr = :__u32
14
- Elf32_Half = :__u16
15
- Elf32_Off = :__u32
16
- Elf32_Sword = :__s32
17
- Elf32_Word = :__u32
18
-
19
- # 64-bit ELF base types.
20
- Elf64_Addr = :__u64
21
- Elf64_Half = :__u16
22
- Elf64_SHalf = :__s16
23
- Elf64_Off = :__u64
24
- Elf64_Sword = :__s32
25
- Elf64_Word = :__u32
26
- Elf64_Xword = :__u64
27
- Elf64_Sxword = :__s64
10
+ module PackInfo
11
+ PACK_MAP = {
12
+ Elf32_Ehdr: 'S<2L<5S<6',
13
+ Elf64_Ehdr: 'S<2L<Q<3L<S<6',
14
+ Elf32_Phdr: 'L<8',
15
+ Elf64_Phdr: 'L<2Q<6'
16
+ }.freeze
17
+
18
+ SIZE_MAP = {
19
+ Elf32_Ehdr: 36,
20
+ Elf64_Ehdr: 48,
21
+ Elf32_Phdr: 32,
22
+ Elf64_Phdr: 56
23
+ }.freeze
24
+
25
+ STRUCT_MAP = {
26
+ Elf32_Ehdr: %i[
27
+ e_type
28
+ e_machine
29
+ e_version
30
+ e_entry
31
+ e_phoff
32
+ e_shoff
33
+ e_flags
34
+ e_ehsize
35
+ e_phentsize
36
+ e_phnum
37
+ e_shentsize
38
+ e_shnum
39
+ e_shstrndx
40
+ ].freeze,
41
+ Elf64_Ehdr: %i[
42
+ e_type
43
+ e_machine
44
+ e_version
45
+ e_entry
46
+ e_phoff
47
+ e_shoff
48
+ e_flags
49
+ e_ehsize
50
+ e_phentsize
51
+ e_phnum
52
+ e_shentsize
53
+ e_shnum
54
+ e_shstrndx
55
+ ].freeze,
56
+ Elf32_Phdr: %i[
57
+ p_type
58
+ p_offset
59
+ p_vaddr
60
+ p_paddr
61
+ p_filesz
62
+ p_memsz
63
+ p_flags
64
+ p_align
65
+ ].freeze,
66
+ Elf64_Phdr: %i[
67
+ p_type
68
+ p_flags
69
+ p_offset
70
+ p_vaddr
71
+ p_paddr
72
+ p_filesz
73
+ p_memsz
74
+ p_align
75
+ ].freeze
76
+ }.freeze
77
+ end
28
78
 
29
- # rubocop:enable Naming/ConstantName
79
+ private_constant :PackInfo
30
80
 
31
81
  # These constants are for the segment types stored in the image headers
32
82
  PT_NULL = 0
@@ -41,10 +91,6 @@ module Sass
41
91
  PT_HIOS = 0x6fffffff
42
92
  PT_LOPROC = 0x70000000
43
93
  PT_HIPROC = 0x7fffffff
44
- PT_GNU_EH_FRAME = (PT_LOOS + 0x474e550)
45
- PT_GNU_STACK = (PT_LOOS + 0x474e551)
46
- PT_GNU_RELRO = (PT_LOOS + 0x474e552)
47
- PT_GNU_PROPERTY = (PT_LOOS + 0x474e553)
48
94
 
49
95
  # These constants define the different elf file types
50
96
  ET_NONE = 0
@@ -57,66 +103,6 @@ module Sass
57
103
 
58
104
  EI_NIDENT = 16
59
105
 
60
- # rubocop:disable Naming/ConstantName
61
-
62
- Elf32_Ehdr = [
63
- [:unsigned_char, :e_ident, EI_NIDENT],
64
- [Elf32_Half, :e_type],
65
- [Elf32_Half, :e_machine],
66
- [Elf32_Word, :e_version],
67
- [Elf32_Addr, :e_entry],
68
- [Elf32_Off, :e_phoff],
69
- [Elf32_Off, :e_shoff],
70
- [Elf32_Word, :e_flags],
71
- [Elf32_Half, :e_ehsize],
72
- [Elf32_Half, :e_phentsize],
73
- [Elf32_Half, :e_phnum],
74
- [Elf32_Half, :e_shentsize],
75
- [Elf32_Half, :e_shnum],
76
- [Elf32_Half, :e_shstrndx]
77
- ].freeze
78
-
79
- Elf64_Ehdr = [
80
- [:unsigned_char, :e_ident, EI_NIDENT],
81
- [Elf64_Half, :e_type],
82
- [Elf64_Half, :e_machine],
83
- [Elf64_Word, :e_version],
84
- [Elf64_Addr, :e_entry],
85
- [Elf64_Off, :e_phoff],
86
- [Elf64_Off, :e_shoff],
87
- [Elf64_Word, :e_flags],
88
- [Elf64_Half, :e_ehsize],
89
- [Elf64_Half, :e_phentsize],
90
- [Elf64_Half, :e_phnum],
91
- [Elf64_Half, :e_shentsize],
92
- [Elf64_Half, :e_shnum],
93
- [Elf64_Half, :e_shstrndx]
94
- ].freeze
95
-
96
- Elf32_Phdr = [
97
- [Elf32_Word, :p_type],
98
- [Elf32_Off, :p_offset],
99
- [Elf32_Addr, :p_vaddr],
100
- [Elf32_Addr, :p_paddr],
101
- [Elf32_Word, :p_filesz],
102
- [Elf32_Word, :p_memsz],
103
- [Elf32_Word, :p_flags],
104
- [Elf32_Word, :p_align]
105
- ].freeze
106
-
107
- Elf64_Phdr = [
108
- [Elf64_Word, :p_type],
109
- [Elf64_Word, :p_flags],
110
- [Elf64_Off, :p_offset],
111
- [Elf64_Addr, :p_vaddr],
112
- [Elf64_Addr, :p_paddr],
113
- [Elf64_Xword, :p_filesz],
114
- [Elf64_Xword, :p_memsz],
115
- [Elf64_Xword, :p_align]
116
- ].freeze
117
-
118
- # rubocop:enable Naming/ConstantName
119
-
120
106
  # e_ident[] indexes
121
107
  EI_MAG0 = 0
122
108
  EI_MAG1 = 1
@@ -130,9 +116,9 @@ module Sass
130
116
 
131
117
  # EI_MAG
132
118
  ELFMAG0 = 0x7f
133
- ELFMAG1 = 'E'.ord
134
- ELFMAG2 = 'L'.ord
135
- ELFMAG3 = 'F'.ord
119
+ ELFMAG1 = 0x45
120
+ ELFMAG2 = 0x4c
121
+ ELFMAG3 = 0x46
136
122
  ELFMAG = [ELFMAG0, ELFMAG1, ELFMAG2, ELFMAG3].pack('C*')
137
123
  SELFMAG = 4
138
124
 
@@ -149,10 +135,35 @@ module Sass
149
135
 
150
136
  def initialize(buffer)
151
137
  @buffer = buffer
152
- @ehdr = read_ehdr
138
+
139
+ @ehdr = { e_ident: @buffer.read(EI_NIDENT).unpack('C*') }
140
+ raise ArgumentError unless @ehdr[:e_ident].slice(EI_MAG0, SELFMAG).pack('C*') == ELFMAG
141
+
142
+ case @ehdr[:e_ident][EI_CLASS]
143
+ when ELFCLASS32
144
+ elf_ehdr = :Elf32_Ehdr
145
+ elf_phdr = :Elf32_Phdr
146
+ when ELFCLASS64
147
+ elf_ehdr = :Elf64_Ehdr
148
+ elf_phdr = :Elf64_Phdr
149
+ else
150
+ raise ArgumentError
151
+ end
152
+
153
+ case @ehdr[:e_ident][EI_DATA]
154
+ when ELFDATA2LSB
155
+ little_endian = true
156
+ when ELFDATA2MSB
157
+ little_endian = false
158
+ else
159
+ raise ArgumentError
160
+ end
161
+
162
+ @ehdr.merge!(read(elf_ehdr, little_endian))
163
+
153
164
  @buffer.seek(@ehdr[:e_phoff], IO::SEEK_SET)
154
165
  @proghdrs = Array.new(@ehdr[:e_phnum]) do
155
- read_phdr
166
+ read(elf_phdr, little_endian)
156
167
  end
157
168
  end
158
169
 
@@ -185,75 +196,10 @@ module Sass
185
196
 
186
197
  private
187
198
 
188
- def file_class
189
- @ehdr[:e_ident][EI_CLASS]
190
- end
191
-
192
- def data_encoding
193
- @ehdr[:e_ident][EI_DATA]
194
- end
195
-
196
- def read_ehdr
197
- @ehdr = { e_ident: @buffer.read(EI_NIDENT).unpack('C*') }
198
- raise ArgumentError unless @ehdr[:e_ident].slice(EI_MAG0, SELFMAG).pack('C*') == ELFMAG
199
-
200
- case file_class
201
- when ELFCLASS32
202
- Elf32_Ehdr
203
- when ELFCLASS64
204
- Elf64_Ehdr
205
- else
206
- raise ArgumentError
207
- end.drop(1).to_h do |field|
208
- [field[1], read1(field[0])]
209
- end.merge!(@ehdr)
210
- end
211
-
212
- def read_phdr
213
- case file_class
214
- when ELFCLASS32
215
- Elf32_Phdr
216
- when ELFCLASS64
217
- Elf64_Phdr
218
- else
219
- raise ArgumentError
220
- end.to_h do |field|
221
- [field[1], read1(field[0])]
222
- end
223
- end
224
-
225
- def explicit_endian
226
- case data_encoding
227
- when ELFDATA2LSB
228
- '<'
229
- when ELFDATA2MSB
230
- '>'
231
- else
232
- raise ArgumentError
233
- end
234
- end
235
-
236
- def read1(type)
237
- case type
238
- when :__u8
239
- @buffer.read(1).unpack1('C')
240
- when :__u16
241
- @buffer.read(2).unpack1("S#{explicit_endian}")
242
- when :__u32
243
- @buffer.read(4).unpack1("L#{explicit_endian}")
244
- when :__u64
245
- @buffer.read(8).unpack1("Q#{explicit_endian}")
246
- when :__s8
247
- @buffer.read(1).unpack1('c')
248
- when :__s16
249
- @buffer.read(2).unpack1("s#{explicit_endian}")
250
- when :__s32
251
- @buffer.read(4).unpack1("l#{explicit_endian}")
252
- when :__s64
253
- @buffer.read(8).unpack1("q#{explicit_endian}")
254
- else
255
- raise ArgumentError
256
- end
199
+ def read(type, little_endian)
200
+ size = PackInfo::SIZE_MAP[type]
201
+ format = little_endian ? PackInfo::PACK_MAP[type] : PackInfo::PACK_MAP[type].tr('<', '>')
202
+ [PackInfo::STRUCT_MAP[type], @buffer.read(size).unpack(format)].transpose.to_h
257
203
  end
258
204
 
259
205
  INTERPRETER = begin
@@ -2,6 +2,6 @@
2
2
 
3
3
  module Sass
4
4
  module Embedded
5
- VERSION = '1.77.8'
5
+ VERSION = '1.78.0'
6
6
  end
7
7
  end
@@ -51,8 +51,12 @@ module Sass
51
51
  font-family: monospace, monospace;
52
52
  white-space: pre;
53
53
  content: #{Serializer.serialize_quoted_string(content).gsub(/[^[:ascii:]][\h\t ]?/) do |match|
54
- replacement = "\\#{match.ord.to_s(16)}"
55
- replacement << " #{match[1]}" if match.length > 1
54
+ ordinal = match.ord
55
+ replacement = "\\#{ordinal.to_s(16)}"
56
+ if match.length > 1
57
+ replacement << ' ' if ordinal < 0x100000
58
+ replacement << match[1]
59
+ end
56
60
  replacement
57
61
  end};
58
62
  }
@@ -61,8 +65,8 @@ module Sass
61
65
  end
62
66
 
63
67
  # An exception thrown by Sass Script.
64
- # @!visibility private
65
68
  class ScriptError < StandardError
69
+ # @!visibility private
66
70
  def initialize(message, name = nil)
67
71
  super(name.nil? ? message : "$#{name}: #{message}")
68
72
  end
@@ -290,7 +290,7 @@ module Sass
290
290
 
291
291
  compatibility_error = lambda {
292
292
  unless other.nil?
293
- message = +"#{self} and"
293
+ message = "#{self} and"
294
294
  message << " $#{other_name}:" unless other_name.nil?
295
295
  message << " #{other} have incompatible units"
296
296
  message << " (one has units and the other doesn't)" if unitless? || other_unitless
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: sass-embedded
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.77.8
4
+ version: 1.78.0
5
5
  platform: x86-mingw32
6
6
  authors:
7
7
  - なつき
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2024-07-11 00:00:00.000000000 Z
11
+ date: 2024-09-03 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: google-protobuf
@@ -16,14 +16,14 @@ dependencies:
16
16
  requirements:
17
17
  - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: '4.26'
19
+ version: '4.27'
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - "~>"
25
25
  - !ruby/object:Gem::Version
26
- version: '4.26'
26
+ version: '4.27'
27
27
  description: A Ruby library that will communicate with Embedded Dart Sass using the
28
28
  Embedded Sass protocol.
29
29
  email:
@@ -88,8 +88,8 @@ licenses:
88
88
  - MIT
89
89
  metadata:
90
90
  bug_tracker_uri: https://github.com/sass-contrib/sass-embedded-host-ruby/issues
91
- documentation_uri: https://rubydoc.info/gems/sass-embedded/1.77.8
92
- source_code_uri: https://github.com/sass-contrib/sass-embedded-host-ruby/tree/v1.77.8
91
+ documentation_uri: https://rubydoc.info/gems/sass-embedded/1.78.0
92
+ source_code_uri: https://github.com/sass-contrib/sass-embedded-host-ruby/tree/v1.78.0
93
93
  funding_uri: https://github.com/sponsors/ntkme
94
94
  rubygems_mfa_required: 'true'
95
95
  post_install_message:
@@ -107,7 +107,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
107
107
  - !ruby/object:Gem::Version
108
108
  version: '0'
109
109
  requirements: []
110
- rubygems_version: 3.5.15
110
+ rubygems_version: 3.5.18
111
111
  signing_key:
112
112
  specification_version: 4
113
113
  summary: Use dart-sass with Ruby!