sass-embedded 1.77.8 → 1.78.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 +4 -4
- data/ext/sass/package.json +1 -1
- data/lib/sass/compiler.rb +2 -2
- data/lib/sass/elf.rb +103 -157
- data/lib/sass/embedded/version.rb +1 -1
- data/lib/sass/exception.rb +7 -3
- data/lib/sass/value/number.rb +1 -1
- metadata +7 -7
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 6140546f1464fb936af0e5d76355e24844d12cb71f29142ca64e1aa5ec1cce56
|
4
|
+
data.tar.gz: 2956e3e5ec0b5860482e4f084159d94a4fc7bb06f67f6ae0820bc04971efd824
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: e366ed09f3a7dd7235bb3375b2aa2e0e239bbd66f770ae0432dcaf9e279139957a3aaaf3f76415977d123b37eaace4153eb22bd6709fe8e47be8b4bccf3ebff5
|
7
|
+
data.tar.gz: e6ef849e9d80e3d3f4810c76d4d9c46de4d633d3cf3f1b6e906bae870dd3cae5dc7f21384c24a718dd063e088da69a2ca8198bfda7c03b2f595021ee850248d0
|
data/ext/sass/package.json
CHANGED
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
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
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
|
-
|
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 =
|
134
|
-
ELFMAG2 =
|
135
|
-
ELFMAG3 =
|
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
|
-
|
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
|
-
|
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
|
189
|
-
|
190
|
-
|
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
|
data/lib/sass/exception.rb
CHANGED
@@ -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
|
-
|
55
|
-
replacement
|
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
|
data/lib/sass/value/number.rb
CHANGED
@@ -290,7 +290,7 @@ module Sass
|
|
290
290
|
|
291
291
|
compatibility_error = lambda {
|
292
292
|
unless other.nil?
|
293
|
-
message =
|
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.
|
4
|
+
version: 1.78.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- なつき
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2024-
|
11
|
+
date: 2024-09-03 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rake
|
@@ -30,14 +30,14 @@ dependencies:
|
|
30
30
|
requirements:
|
31
31
|
- - "~>"
|
32
32
|
- !ruby/object:Gem::Version
|
33
|
-
version: '4.
|
33
|
+
version: '4.27'
|
34
34
|
type: :runtime
|
35
35
|
prerelease: false
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
37
37
|
requirements:
|
38
38
|
- - "~>"
|
39
39
|
- !ruby/object:Gem::Version
|
40
|
-
version: '4.
|
40
|
+
version: '4.27'
|
41
41
|
description: A Ruby library that will communicate with Embedded Dart Sass using the
|
42
42
|
Embedded Sass protocol.
|
43
43
|
email:
|
@@ -101,8 +101,8 @@ licenses:
|
|
101
101
|
- MIT
|
102
102
|
metadata:
|
103
103
|
bug_tracker_uri: https://github.com/sass-contrib/sass-embedded-host-ruby/issues
|
104
|
-
documentation_uri: https://rubydoc.info/gems/sass-embedded/1.
|
105
|
-
source_code_uri: https://github.com/sass-contrib/sass-embedded-host-ruby/tree/v1.
|
104
|
+
documentation_uri: https://rubydoc.info/gems/sass-embedded/1.78.0
|
105
|
+
source_code_uri: https://github.com/sass-contrib/sass-embedded-host-ruby/tree/v1.78.0
|
106
106
|
funding_uri: https://github.com/sponsors/ntkme
|
107
107
|
rubygems_mfa_required: 'true'
|
108
108
|
post_install_message:
|
@@ -120,7 +120,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
120
120
|
- !ruby/object:Gem::Version
|
121
121
|
version: '0'
|
122
122
|
requirements: []
|
123
|
-
rubygems_version: 3.5.
|
123
|
+
rubygems_version: 3.5.18
|
124
124
|
signing_key:
|
125
125
|
specification_version: 4
|
126
126
|
summary: Use dart-sass with Ruby!
|