sass-embedded 1.104.1-x86_64-linux-gnu → 1.105.1-x86_64-linux-gnu
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/lib/sass/compiler/session/importer_registry.rb +55 -15
- data/lib/sass/compiler/session/logger_registry.rb +36 -14
- data/lib/sass/compiler/session/path.rb +0 -11
- data/lib/sass/compiler/session/protofier.rb +13 -5
- data/lib/sass/compiler/session.rb +1 -2
- data/lib/sass/dart-sass/src/LICENSE +2 -30
- data/lib/sass/dart-sass/src/dart +0 -0
- data/lib/sass/dart-sass/src/sass.snapshot +0 -0
- data/lib/sass/embedded/version.rb +1 -1
- data/lib/sass/embedded_sass_pb.rb +2 -1
- data/lib/sass/value/boolean.rb +7 -0
- data/lib/sass/value/color.rb +3 -3
- data/lib/sass/value/function.rb +14 -0
- data/lib/sass/value/list.rb +10 -0
- data/lib/sass/value/map.rb +6 -0
- data/lib/sass/value/mixin.rb +10 -0
- data/lib/sass/value/module.rb +47 -0
- data/lib/sass/value/null.rb +10 -0
- data/lib/sass/value/number.rb +7 -7
- data/lib/sass/value/string.rb +22 -5
- data/lib/sass/value.rb +46 -8
- metadata +5 -5
- data/lib/sass/compiler/session/struct.rb +0 -36
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 528da2fce495c4dcce469c037e12d814842eee38f43386f55dcfbbd33eecb661
|
|
4
|
+
data.tar.gz: 2470465c2a5c61a3a2a78aa083ed6571da9b6594e6d2db56bf2fff60a887527c
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 2d0296f858299404408a302001bd430d08c46f323f1f9c6d32cdd8802fe0275c9ea090d8d1fcefd54330a4b62c314cc7e1fd6c2d57cb2f2049789f4aa8124fb6
|
|
7
|
+
data.tar.gz: e8ae02ac23402958760db18d2c6a1a2e2cb6b3bb23c8df6aa04e44a72a80e8e122bad5bdf89d26ffb72ac228d5693b5ed8cb411f87fe87be79ef6b09c06757c8
|
|
@@ -25,12 +25,6 @@ module Sass
|
|
|
25
25
|
@session = session
|
|
26
26
|
end
|
|
27
27
|
|
|
28
|
-
IMPORTER_ATTRS = %i[non_canonical_scheme].freeze
|
|
29
|
-
|
|
30
|
-
IMPORTER_METHODS = %i[canonicalize load find_file_url].freeze
|
|
31
|
-
|
|
32
|
-
private_constant :IMPORTER_ATTRS, :IMPORTER_METHODS
|
|
33
|
-
|
|
34
28
|
def register(importer)
|
|
35
29
|
if importer.is_a?(Sass::NodePackageImporter)
|
|
36
30
|
EmbeddedProtocol::InboundMessage::CompileRequest::Importer.new(
|
|
@@ -39,10 +33,14 @@ module Sass
|
|
|
39
33
|
)
|
|
40
34
|
)
|
|
41
35
|
else
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
36
|
+
if importer.is_a?(::Hash)
|
|
37
|
+
is_importer = importer[:canonicalize].respond_to?(:call) && importer[:load].respond_to?(:call)
|
|
38
|
+
is_file_importer = importer[:find_file_url].respond_to?(:call)
|
|
39
|
+
importer = ImporterStruct.new(importer) if is_importer || is_file_importer
|
|
40
|
+
else
|
|
41
|
+
is_importer = importer.respond_to?(:canonicalize) && importer.respond_to?(:load)
|
|
42
|
+
is_file_importer = importer.respond_to?(:find_file_url)
|
|
43
|
+
end
|
|
46
44
|
|
|
47
45
|
raise ArgumentError, 'importer must be an Importer or a FileImporter' if is_importer == is_file_importer
|
|
48
46
|
|
|
@@ -86,14 +84,10 @@ module Sass
|
|
|
86
84
|
)
|
|
87
85
|
end
|
|
88
86
|
|
|
89
|
-
IMPORTER_RESULT_ATTRS = %i[contents syntax source_map_url].freeze
|
|
90
|
-
|
|
91
|
-
private_constant :IMPORTER_RESULT_ATTRS
|
|
92
|
-
|
|
93
87
|
def import(import_request)
|
|
94
88
|
importer = @importers_by_id[import_request.importer_id]
|
|
95
89
|
importer_result = importer.load(import_request.url)
|
|
96
|
-
importer_result =
|
|
90
|
+
importer_result = ImporterResultStruct.new(importer_result) if importer_result.is_a?(::Hash)
|
|
97
91
|
|
|
98
92
|
EmbeddedProtocol::InboundMessage::ImportResponse.new(
|
|
99
93
|
id: import_request.id,
|
|
@@ -142,6 +136,52 @@ module Sass
|
|
|
142
136
|
raise ArgumentError, 'syntax must be one of :scss, :indented, :css'
|
|
143
137
|
end
|
|
144
138
|
end
|
|
139
|
+
|
|
140
|
+
# The {ImporterStruct} class.
|
|
141
|
+
class ImporterStruct
|
|
142
|
+
def initialize(hash)
|
|
143
|
+
@hash = hash
|
|
144
|
+
end
|
|
145
|
+
|
|
146
|
+
def canonicalize(...)
|
|
147
|
+
@hash[:canonicalize].call(...)
|
|
148
|
+
end
|
|
149
|
+
|
|
150
|
+
def load(...)
|
|
151
|
+
@hash[:load].call(...)
|
|
152
|
+
end
|
|
153
|
+
|
|
154
|
+
def non_canonical_scheme
|
|
155
|
+
@hash[:non_canonical_scheme]
|
|
156
|
+
end
|
|
157
|
+
|
|
158
|
+
def find_file_url(...)
|
|
159
|
+
@hash[:find_file_url].call(...)
|
|
160
|
+
end
|
|
161
|
+
end
|
|
162
|
+
|
|
163
|
+
private_constant :ImporterStruct
|
|
164
|
+
|
|
165
|
+
# The {ImporterResultStruct} class.
|
|
166
|
+
class ImporterResultStruct
|
|
167
|
+
def initialize(hash)
|
|
168
|
+
@hash = hash
|
|
169
|
+
end
|
|
170
|
+
|
|
171
|
+
def contents
|
|
172
|
+
@hash[:contents]
|
|
173
|
+
end
|
|
174
|
+
|
|
175
|
+
def syntax
|
|
176
|
+
@hash[:syntax]
|
|
177
|
+
end
|
|
178
|
+
|
|
179
|
+
def source_map_url
|
|
180
|
+
@hash[:source_map_url]
|
|
181
|
+
end
|
|
182
|
+
end
|
|
183
|
+
|
|
184
|
+
private_constant :ImporterResultStruct
|
|
145
185
|
end
|
|
146
186
|
|
|
147
187
|
private_constant :ImporterRegistry
|
|
@@ -4,33 +4,38 @@ module Sass
|
|
|
4
4
|
class Compiler
|
|
5
5
|
class Session
|
|
6
6
|
# The {LoggerRegistry} class.
|
|
7
|
-
#
|
|
8
|
-
# It stores logger and handles log events.
|
|
9
7
|
class LoggerRegistry
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
8
|
+
def initialize(logger, alert_color:)
|
|
9
|
+
if logger.is_a?(::Hash)
|
|
10
|
+
respond_to_debug = logger[:debug].respond_to?(:call)
|
|
11
|
+
respond_to_warn = logger[:warn].respond_to?(:call)
|
|
12
|
+
logger = LoggerStruct.new(logger) if respond_to_debug || respond_to_warn
|
|
13
|
+
else
|
|
14
|
+
respond_to_debug = logger.respond_to?(:debug)
|
|
15
|
+
respond_to_warn = logger.respond_to?(:warn)
|
|
16
|
+
end
|
|
16
17
|
@logger = logger
|
|
17
|
-
@
|
|
18
|
-
@
|
|
18
|
+
@alert_color = alert_color
|
|
19
|
+
@respond_to_debug = respond_to_debug
|
|
20
|
+
@respond_to_warn = respond_to_warn
|
|
19
21
|
end
|
|
20
22
|
|
|
21
23
|
def log(event)
|
|
22
24
|
case event.type
|
|
23
25
|
when :DEBUG
|
|
24
|
-
if @
|
|
26
|
+
if @respond_to_debug
|
|
25
27
|
@logger.debug(event.message, DebugContext.new(event))
|
|
26
28
|
else
|
|
27
|
-
|
|
29
|
+
path = event.span.url == '' ? '-' : Path.pretty_uri(event.span.url)
|
|
30
|
+
line = event.span.start.line + 1
|
|
31
|
+
type = @alert_color ? "\e[1mDebug\e[0m" : 'DEBUG'
|
|
32
|
+
Warning.warn("#{path}:#{line} #{type}: #{event.message}\n")
|
|
28
33
|
end
|
|
29
34
|
when :DEPRECATION_WARNING, :WARNING
|
|
30
|
-
if @
|
|
35
|
+
if @respond_to_warn
|
|
31
36
|
@logger.warn(event.message, WarnContext.new(event))
|
|
32
37
|
else
|
|
33
|
-
|
|
38
|
+
Warning.warn(StackTrace.pretty_formatted!(+event.formatted, event.stack_trace))
|
|
34
39
|
end
|
|
35
40
|
else
|
|
36
41
|
raise ArgumentError, "Unknown LogEvent.type #{event.type}"
|
|
@@ -69,6 +74,23 @@ module Sass
|
|
|
69
74
|
end
|
|
70
75
|
|
|
71
76
|
private_constant :WarnContext
|
|
77
|
+
|
|
78
|
+
# The {LoggerStruct} class.
|
|
79
|
+
class LoggerStruct
|
|
80
|
+
def initialize(hash)
|
|
81
|
+
@hash = hash
|
|
82
|
+
end
|
|
83
|
+
|
|
84
|
+
def debug(...)
|
|
85
|
+
@hash[:debug].call(...)
|
|
86
|
+
end
|
|
87
|
+
|
|
88
|
+
def warn(...)
|
|
89
|
+
@hash[:warn].call(...)
|
|
90
|
+
end
|
|
91
|
+
end
|
|
92
|
+
|
|
93
|
+
private_constant :LoggerStruct
|
|
72
94
|
end
|
|
73
95
|
|
|
74
96
|
private_constant :LoggerRegistry
|
|
@@ -15,17 +15,6 @@ module Sass
|
|
|
15
15
|
relative_path = Uri.decode_uri_component(Uri.relative(uri, Uri.pwd))
|
|
16
16
|
relative_path.count('/') > absolute_path.count('/') ? absolute_path : relative_path
|
|
17
17
|
end
|
|
18
|
-
|
|
19
|
-
def pretty_formatted!(formatted, uri)
|
|
20
|
-
index = formatted.index(uri)
|
|
21
|
-
return formatted unless index
|
|
22
|
-
|
|
23
|
-
replacement = pretty_uri(uri)
|
|
24
|
-
return formatted if uri == replacement
|
|
25
|
-
|
|
26
|
-
formatted[index, uri.length] = replacement
|
|
27
|
-
formatted
|
|
28
|
-
end
|
|
29
18
|
end
|
|
30
19
|
|
|
31
20
|
private_constant :Path
|
|
@@ -90,6 +90,12 @@ module Sass
|
|
|
90
90
|
id: assert_compiler_value(obj).instance_variable_get(:@id)
|
|
91
91
|
)
|
|
92
92
|
)
|
|
93
|
+
when Sass::Value::Module
|
|
94
|
+
EmbeddedProtocol::Value.new(
|
|
95
|
+
compiler_module: EmbeddedProtocol::Value::CompilerModule.new(
|
|
96
|
+
id: assert_compiler_value(obj).instance_variable_get(:@id)
|
|
97
|
+
)
|
|
98
|
+
)
|
|
93
99
|
when Sass::Value::Calculation
|
|
94
100
|
EmbeddedProtocol::Value.new(
|
|
95
101
|
calculation: Calculation.to_proto(obj)
|
|
@@ -103,7 +109,7 @@ module Sass
|
|
|
103
109
|
singleton: :NULL
|
|
104
110
|
)
|
|
105
111
|
else
|
|
106
|
-
raise Sass::ScriptError, "Unknown Sass::Value #{obj}"
|
|
112
|
+
raise Sass::ScriptError, "Unknown Sass::Value #{obj.inspect}"
|
|
107
113
|
end
|
|
108
114
|
end
|
|
109
115
|
|
|
@@ -160,6 +166,8 @@ module Sass
|
|
|
160
166
|
raise Sass::ScriptError, 'The compiler may not send Value.host_function to host'
|
|
161
167
|
when :compiler_mixin
|
|
162
168
|
compiler_value(Sass::Value::Mixin.allocate, obj.id)
|
|
169
|
+
when :compiler_module
|
|
170
|
+
compiler_value(Sass::Value::Module.allocate, obj.id)
|
|
163
171
|
when :calculation
|
|
164
172
|
Calculation.from_proto(obj)
|
|
165
173
|
when :singleton
|
|
@@ -182,7 +190,7 @@ module Sass
|
|
|
182
190
|
|
|
183
191
|
def assert_compiler_value(value)
|
|
184
192
|
unless value.instance_variable_get(:@compile_context) == @function_registry.compile_context
|
|
185
|
-
raise Sass::ScriptError, "Value #{value} does not belong to this compilation"
|
|
193
|
+
raise Sass::ScriptError, "Value #{value.inspect} does not belong to this compilation"
|
|
186
194
|
end
|
|
187
195
|
|
|
188
196
|
value
|
|
@@ -267,7 +275,7 @@ module Sass
|
|
|
267
275
|
)
|
|
268
276
|
)
|
|
269
277
|
else
|
|
270
|
-
raise Sass::ScriptError, "Unknown CalculationValue #{value}"
|
|
278
|
+
raise Sass::ScriptError, "Unknown CalculationValue #{value.inspect}"
|
|
271
279
|
end
|
|
272
280
|
end
|
|
273
281
|
|
|
@@ -310,7 +318,7 @@ module Sass
|
|
|
310
318
|
when '/'
|
|
311
319
|
:DIVIDE
|
|
312
320
|
else
|
|
313
|
-
raise Sass::ScriptError, "Unknown CalculationOperator #{separator}"
|
|
321
|
+
raise Sass::ScriptError, "Unknown CalculationOperator #{separator.inspect}"
|
|
314
322
|
end
|
|
315
323
|
end
|
|
316
324
|
|
|
@@ -347,7 +355,7 @@ module Sass
|
|
|
347
355
|
when nil
|
|
348
356
|
:UNDECIDED
|
|
349
357
|
else
|
|
350
|
-
raise Sass::ScriptError, "Unknown ListSeparator #{separator}"
|
|
358
|
+
raise Sass::ScriptError, "Unknown ListSeparator #{separator.inspect}"
|
|
351
359
|
end
|
|
352
360
|
end
|
|
353
361
|
|
|
@@ -6,7 +6,6 @@ require_relative 'session/logger_registry'
|
|
|
6
6
|
require_relative 'session/path'
|
|
7
7
|
require_relative 'session/protofier'
|
|
8
8
|
require_relative 'session/stack_trace'
|
|
9
|
-
require_relative 'session/struct'
|
|
10
9
|
|
|
11
10
|
module Sass
|
|
12
11
|
class Compiler
|
|
@@ -45,7 +44,7 @@ module Sass
|
|
|
45
44
|
|
|
46
45
|
@function_registry = FunctionRegistry.new(functions, session: self)
|
|
47
46
|
@importer_registry = ImporterRegistry.new(importers, load_paths, session: self)
|
|
48
|
-
@logger_registry = LoggerRegistry.new(logger)
|
|
47
|
+
@logger_registry = LoggerRegistry.new(logger, alert_color:)
|
|
49
48
|
|
|
50
49
|
compile_request = EmbeddedProtocol::InboundMessage::CompileRequest.new(
|
|
51
50
|
string: unless source.nil?
|
|
@@ -1182,11 +1182,11 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|
|
1182
1182
|
|
|
1183
1183
|
--------------------------------------------------------------------------------
|
|
1184
1184
|
|
|
1185
|
-
petitparser license:
|
|
1185
|
+
petitparser and xml license:
|
|
1186
1186
|
|
|
1187
1187
|
The MIT License
|
|
1188
1188
|
|
|
1189
|
-
Copyright (c) 2006-
|
|
1189
|
+
Copyright (c) 2006-2026 Lukas Renggli.
|
|
1190
1190
|
All rights reserved.
|
|
1191
1191
|
|
|
1192
1192
|
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
@@ -1666,34 +1666,6 @@ THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
|
|
1666
1666
|
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|
1667
1667
|
|
|
1668
1668
|
|
|
1669
|
-
--------------------------------------------------------------------------------
|
|
1670
|
-
|
|
1671
|
-
xml license:
|
|
1672
|
-
|
|
1673
|
-
The MIT License
|
|
1674
|
-
|
|
1675
|
-
Copyright (c) 2006-2026 Lukas Renggli.
|
|
1676
|
-
All rights reserved.
|
|
1677
|
-
|
|
1678
|
-
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
1679
|
-
of this software and associated documentation files (the "Software"), to deal
|
|
1680
|
-
in the Software without restriction, including without limitation the rights
|
|
1681
|
-
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
1682
|
-
copies of the Software, and to permit persons to whom the Software is
|
|
1683
|
-
furnished to do so, subject to the following conditions:
|
|
1684
|
-
|
|
1685
|
-
The above copyright notice and this permission notice shall be included in
|
|
1686
|
-
all copies or substantial portions of the Software.
|
|
1687
|
-
|
|
1688
|
-
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
1689
|
-
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
1690
|
-
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
1691
|
-
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
1692
|
-
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
1693
|
-
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
|
1694
|
-
THE SOFTWARE.
|
|
1695
|
-
|
|
1696
|
-
|
|
1697
1669
|
--------------------------------------------------------------------------------
|
|
1698
1670
|
|
|
1699
1671
|
yaml license:
|
data/lib/sass/dart-sass/src/dart
CHANGED
|
Binary file
|
|
Binary file
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
require 'google/protobuf'
|
|
6
6
|
|
|
7
7
|
|
|
8
|
-
descriptor_data = "\n\x13\x65mbedded_sass.proto\x12\x16sass.embedded_protocol\"\xe8\x10\n\x0eInboundMessage\x12P\n\x0f\x63ompile_request\x18\x02 \x01(\x0b\x32\x35.sass.embedded_protocol.InboundMessage.CompileRequestH\x00\x12\\\n\x15\x63\x61nonicalize_response\x18\x03 \x01(\x0b\x32;.sass.embedded_protocol.InboundMessage.CanonicalizeResponseH\x00\x12P\n\x0fimport_response\x18\x04 \x01(\x0b\x32\x35.sass.embedded_protocol.InboundMessage.ImportResponseH\x00\x12Y\n\x14\x66ile_import_response\x18\x05 \x01(\x0b\x32\x39.sass.embedded_protocol.InboundMessage.FileImportResponseH\x00\x12]\n\x16\x66unction_call_response\x18\x06 \x01(\x0b\x32;.sass.embedded_protocol.InboundMessage.FunctionCallResponseH\x00\x12P\n\x0fversion_request\x18\x07 \x01(\x0b\x32\x35.sass.embedded_protocol.InboundMessage.VersionRequestH\x00\x1a\x1c\n\x0eVersionRequest\x12\n\n\x02id\x18\x01 \x01(\r\x1a\x98\x07\n\x0e\x43ompileRequest\x12S\n\x06string\x18\x02 \x01(\x0b\x32\x41.sass.embedded_protocol.InboundMessage.CompileRequest.StringInputH\x00\x12\x0e\n\x04path\x18\x03 \x01(\tH\x00\x12\x32\n\x05style\x18\x04 \x01(\x0e\x32#.sass.embedded_protocol.OutputStyle\x12\x12\n\nsource_map\x18\x05 \x01(\x08\x12Q\n\timporters\x18\x06 \x03(\x0b\x32>.sass.embedded_protocol.InboundMessage.CompileRequest.Importer\x12\x18\n\x10global_functions\x18\x07 \x03(\t\x12\x13\n\x0b\x61lert_color\x18\x08 \x01(\x08\x12\x13\n\x0b\x61lert_ascii\x18\t \x01(\x08\x12\x0f\n\x07verbose\x18\n \x01(\x08\x12\x12\n\nquiet_deps\x18\x0b \x01(\x08\x12\"\n\x1asource_map_include_sources\x18\x0c \x01(\x08\x12\x0f\n\x07\x63harset\x18\r \x01(\x08\x12\x0e\n\x06silent\x18\x0e \x01(\x08\x12\x19\n\x11\x66\x61tal_deprecation\x18\x0f \x03(\t\x12\x1b\n\x13silence_deprecation\x18\x10 \x03(\t\x12\x1a\n\x12\x66uture_deprecation\x18\x11 \x03(\t\x1a\xac\x01\n\x0bStringInput\x12\x0e\n\x06source\x18\x01 \x01(\t\x12\x0b\n\x03url\x18\x02 \x01(\t\x12.\n\x06syntax\x18\x03 \x01(\x0e\x32\x1e.sass.embedded_protocol.Syntax\x12P\n\x08importer\x18\x04 \x01(\x0b\x32>.sass.embedded_protocol.InboundMessage.CompileRequest.Importer\x1a\xc5\x01\n\x08Importer\x12\x0e\n\x04path\x18\x01 \x01(\tH\x00\x12\x15\n\x0bimporter_id\x18\x02 \x01(\rH\x00\x12\x1a\n\x10\x66ile_importer_id\x18\x03 \x01(\rH\x00\x12L\n\x15node_package_importer\x18\x05 \x01(\x0b\x32+.sass.embedded_protocol.NodePackageImporterH\x00\x12\x1c\n\x14non_canonical_scheme\x18\x04 \x03(\tB\n\n\x08importerB\x07\n\x05inputJ\x04\x08\x01\x10\x02\x1ak\n\x14\x43\x61nonicalizeResponse\x12\n\n\x02id\x18\x01 \x01(\r\x12\r\n\x03url\x18\x02 \x01(\tH\x00\x12\x0f\n\x05\x65rror\x18\x03 \x01(\tH\x00\x12\x1d\n\x15\x63ontaining_url_unused\x18\x04 \x01(\x08\x42\x08\n\x06result\x1a\x93\x02\n\x0eImportResponse\x12\n\n\x02id\x18\x01 \x01(\r\x12V\n\x07success\x18\x02 \x01(\x0b\x32\x43.sass.embedded_protocol.InboundMessage.ImportResponse.ImportSuccessH\x00\x12\x0f\n\x05\x65rror\x18\x03 \x01(\tH\x00\x1a\x81\x01\n\rImportSuccess\x12\x10\n\x08\x63ontents\x18\x01 \x01(\t\x12.\n\x06syntax\x18\x02 \x01(\x0e\x32\x1e.sass.embedded_protocol.Syntax\x12\x1b\n\x0esource_map_url\x18\x03 \x01(\tH\x00\x88\x01\x01\x42\x11\n\x0f_source_map_urlB\x08\n\x06result\x1an\n\x12\x46ileImportResponse\x12\n\n\x02id\x18\x01 \x01(\r\x12\x12\n\x08\x66ile_url\x18\x02 \x01(\tH\x00\x12\x0f\n\x05\x65rror\x18\x03 \x01(\tH\x00\x12\x1d\n\x15\x63ontaining_url_unused\x18\x04 \x01(\x08\x42\x08\n\x06result\x1a\x90\x01\n\x14\x46unctionCallResponse\x12\n\n\x02id\x18\x01 \x01(\r\x12\x30\n\x07success\x18\x02 \x01(\x0b\x32\x1d.sass.embedded_protocol.ValueH\x00\x12\x0f\n\x05\x65rror\x18\x03 \x01(\tH\x00\x12\x1f\n\x17\x61\x63\x63\x65ssed_argument_lists\x18\x04 \x03(\rB\x08\n\x06resultB\t\n\x07message\"\xcb\x0f\n\x0fOutboundMessage\x12\x36\n\x05\x65rror\x18\x01 \x01(\x0b\x32%.sass.embedded_protocol.ProtocolErrorH\x00\x12S\n\x10\x63ompile_response\x18\x02 \x01(\x0b\x32\x37.sass.embedded_protocol.OutboundMessage.CompileResponseH\x00\x12\x45\n\tlog_event\x18\x03 \x01(\x0b\x32\x30.sass.embedded_protocol.OutboundMessage.LogEventH\x00\x12[\n\x14\x63\x61nonicalize_request\x18\x04 \x01(\x0b\x32;.sass.embedded_protocol.OutboundMessage.CanonicalizeRequestH\x00\x12O\n\x0eimport_request\x18\x05 \x01(\x0b\x32\x35.sass.embedded_protocol.OutboundMessage.ImportRequestH\x00\x12X\n\x13\x66ile_import_request\x18\x06 \x01(\x0b\x32\x39.sass.embedded_protocol.OutboundMessage.FileImportRequestH\x00\x12\\\n\x15\x66unction_call_request\x18\x07 \x01(\x0b\x32;.sass.embedded_protocol.OutboundMessage.FunctionCallRequestH\x00\x12S\n\x10version_response\x18\x08 \x01(\x0b\x32\x37.sass.embedded_protocol.OutboundMessage.VersionResponseH\x00\x1a\x8e\x01\n\x0fVersionResponse\x12\n\n\x02id\x18\x05 \x01(\r\x12\x18\n\x10protocol_version\x18\x01 \x01(\t\x12\x18\n\x10\x63ompiler_version\x18\x02 \x01(\t\x12\x1e\n\x16implementation_version\x18\x03 \x01(\t\x12\x1b\n\x13implementation_name\x18\x04 \x01(\t\x1a\xa2\x03\n\x0f\x43ompileResponse\x12Y\n\x07success\x18\x02 \x01(\x0b\x32\x46.sass.embedded_protocol.OutboundMessage.CompileResponse.CompileSuccessH\x00\x12Y\n\x07\x66\x61ilure\x18\x03 \x01(\x0b\x32\x46.sass.embedded_protocol.OutboundMessage.CompileResponse.CompileFailureH\x00\x12\x13\n\x0bloaded_urls\x18\x04 \x03(\t\x1a\x37\n\x0e\x43ompileSuccess\x12\x0b\n\x03\x63ss\x18\x01 \x01(\t\x12\x12\n\nsource_map\x18\x02 \x01(\tJ\x04\x08\x03\x10\x04\x1a{\n\x0e\x43ompileFailure\x12\x0f\n\x07message\x18\x01 \x01(\t\x12\x30\n\x04span\x18\x02 \x01(\x0b\x32\".sass.embedded_protocol.SourceSpan\x12\x13\n\x0bstack_trace\x18\x03 \x01(\t\x12\x11\n\tformatted\x18\x04 \x01(\tB\x08\n\x06resultJ\x04\x08\x01\x10\x02\x1a\xf1\x01\n\x08LogEvent\x12\x32\n\x04type\x18\x02 \x01(\x0e\x32$.sass.embedded_protocol.LogEventType\x12\x0f\n\x07message\x18\x03 \x01(\t\x12\x35\n\x04span\x18\x04 \x01(\x0b\x32\".sass.embedded_protocol.SourceSpanH\x00\x88\x01\x01\x12\x13\n\x0bstack_trace\x18\x05 \x01(\t\x12\x11\n\tformatted\x18\x06 \x01(\t\x12\x1d\n\x10\x64\x65precation_type\x18\x07 \x01(\tH\x01\x88\x01\x01\x42\x07\n\x05_spanB\x13\n\x11_deprecation_typeJ\x04\x08\x01\x10\x02\x1a\x8e\x01\n\x13\x43\x61nonicalizeRequest\x12\n\n\x02id\x18\x01 \x01(\r\x12\x13\n\x0bimporter_id\x18\x03 \x01(\r\x12\x0b\n\x03url\x18\x04 \x01(\t\x12\x13\n\x0b\x66rom_import\x18\x05 \x01(\x08\x12\x1b\n\x0e\x63ontaining_url\x18\x06 \x01(\tH\x00\x88\x01\x01\x42\x11\n\x0f_containing_urlJ\x04\x08\x02\x10\x03\x1a\x43\n\rImportRequest\x12\n\n\x02id\x18\x01 \x01(\r\x12\x13\n\x0bimporter_id\x18\x03 \x01(\r\x12\x0b\n\x03url\x18\x04 \x01(\tJ\x04\x08\x02\x10\x03\x1a\x8c\x01\n\x11\x46ileImportRequest\x12\n\n\x02id\x18\x01 \x01(\r\x12\x13\n\x0bimporter_id\x18\x03 \x01(\r\x12\x0b\n\x03url\x18\x04 \x01(\t\x12\x13\n\x0b\x66rom_import\x18\x05 \x01(\x08\x12\x1b\n\x0e\x63ontaining_url\x18\x06 \x01(\tH\x00\x88\x01\x01\x42\x11\n\x0f_containing_urlJ\x04\x08\x02\x10\x03\x1a\x8e\x01\n\x13\x46unctionCallRequest\x12\n\n\x02id\x18\x01 \x01(\r\x12\x0e\n\x04name\x18\x03 \x01(\tH\x00\x12\x15\n\x0b\x66unction_id\x18\x04 \x01(\rH\x00\x12\x30\n\targuments\x18\x05 \x03(\x0b\x32\x1d.sass.embedded_protocol.ValueB\x0c\n\nidentifierJ\x04\x08\x02\x10\x03\x42\t\n\x07message\"e\n\rProtocolError\x12\x37\n\x04type\x18\x01 \x01(\x0e\x32).sass.embedded_protocol.ProtocolErrorType\x12\n\n\x02id\x18\x02 \x01(\r\x12\x0f\n\x07message\x18\x03 \x01(\t\"\x87\x02\n\nSourceSpan\x12\x0c\n\x04text\x18\x01 \x01(\t\x12@\n\x05start\x18\x02 \x01(\x0b\x32\x31.sass.embedded_protocol.SourceSpan.SourceLocation\x12\x43\n\x03\x65nd\x18\x03 \x01(\x0b\x32\x31.sass.embedded_protocol.SourceSpan.SourceLocationH\x00\x88\x01\x01\x12\x0b\n\x03url\x18\x04 \x01(\t\x12\x0f\n\x07\x63ontext\x18\x05 \x01(\t\x1a>\n\x0eSourceLocation\x12\x0e\n\x06offset\x18\x01 \x01(\r\x12\x0c\n\x04line\x18\x02 \x01(\r\x12\x0e\n\x06\x63olumn\x18\x03 \x01(\rB\x06\n\x04_end\"\xf8\x11\n\x05Value\x12\x36\n\x06string\x18\x01 \x01(\x0b\x32$.sass.embedded_protocol.Value.StringH\x00\x12\x36\n\x06number\x18\x02 \x01(\x0b\x32$.sass.embedded_protocol.Value.NumberH\x00\x12\x32\n\x04list\x18\x05 \x01(\x0b\x32\".sass.embedded_protocol.Value.ListH\x00\x12\x30\n\x03map\x18\x06 \x01(\x0b\x32!.sass.embedded_protocol.Value.MapH\x00\x12;\n\tsingleton\x18\x07 \x01(\x0e\x32&.sass.embedded_protocol.SingletonValueH\x00\x12K\n\x11\x63ompiler_function\x18\x08 \x01(\x0b\x32..sass.embedded_protocol.Value.CompilerFunctionH\x00\x12\x43\n\rhost_function\x18\t \x01(\x0b\x32*.sass.embedded_protocol.Value.HostFunctionH\x00\x12\x43\n\rargument_list\x18\n \x01(\x0b\x32*.sass.embedded_protocol.Value.ArgumentListH\x00\x12@\n\x0b\x63\x61lculation\x18\x0c \x01(\x0b\x32).sass.embedded_protocol.Value.CalculationH\x00\x12\x45\n\x0e\x63ompiler_mixin\x18\r \x01(\x0b\x32+.sass.embedded_protocol.Value.CompilerMixinH\x00\x12\x34\n\x05\x63olor\x18\x0e \x01(\x0b\x32#.sass.embedded_protocol.Value.ColorH\x00\x1a&\n\x06String\x12\x0c\n\x04text\x18\x01 \x01(\t\x12\x0e\n\x06quoted\x18\x02 \x01(\x08\x1a\x41\n\x06Number\x12\r\n\x05value\x18\x01 \x01(\x01\x12\x12\n\nnumerators\x18\x02 \x03(\t\x12\x14\n\x0c\x64\x65nominators\x18\x03 \x03(\t\x1a\xa0\x01\n\x05\x43olor\x12\r\n\x05space\x18\x01 \x01(\t\x12\x15\n\x08\x63hannel1\x18\x02 \x01(\x01H\x00\x88\x01\x01\x12\x15\n\x08\x63hannel2\x18\x03 \x01(\x01H\x01\x88\x01\x01\x12\x15\n\x08\x63hannel3\x18\x04 \x01(\x01H\x02\x88\x01\x01\x12\x12\n\x05\x61lpha\x18\x05 \x01(\x01H\x03\x88\x01\x01\x42\x0b\n\t_channel1B\x0b\n\t_channel2B\x0b\n\t_channel3B\x08\n\x06_alpha\x1a\x87\x01\n\x04List\x12\x38\n\tseparator\x18\x01 \x01(\x0e\x32%.sass.embedded_protocol.ListSeparator\x12\x14\n\x0chas_brackets\x18\x02 \x01(\x08\x12/\n\x08\x63ontents\x18\x03 \x03(\x0b\x32\x1d.sass.embedded_protocol.Value\x1a\xa2\x01\n\x03Map\x12\x38\n\x07\x65ntries\x18\x01 \x03(\x0b\x32\'.sass.embedded_protocol.Value.Map.Entry\x1a\x61\n\x05\x45ntry\x12*\n\x03key\x18\x01 \x01(\x0b\x32\x1d.sass.embedded_protocol.Value\x12,\n\x05value\x18\x02 \x01(\x0b\x32\x1d.sass.embedded_protocol.Value\x1a\x1e\n\x10\x43ompilerFunction\x12\n\n\x02id\x18\x01 \x01(\r\x1a-\n\x0cHostFunction\x12\n\n\x02id\x18\x01 \x01(\r\x12\x11\n\tsignature\x18\x02 \x01(\t\x1a\x1b\n\rCompilerMixin\x12\n\n\x02id\x18\x01 \x01(\r\x1a\xa1\x02\n\x0c\x41rgumentList\x12\n\n\x02id\x18\x01 \x01(\r\x12\x38\n\tseparator\x18\x02 \x01(\x0e\x32%.sass.embedded_protocol.ListSeparator\x12/\n\x08\x63ontents\x18\x03 \x03(\x0b\x32\x1d.sass.embedded_protocol.Value\x12J\n\x08keywords\x18\x04 \x03(\x0b\x32\x38.sass.embedded_protocol.Value.ArgumentList.KeywordsEntry\x1aN\n\rKeywordsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12,\n\x05value\x18\x02 \x01(\x0b\x32\x1d.sass.embedded_protocol.Value:\x02\x38\x01\x1a\xef\x04\n\x0b\x43\x61lculation\x12\x0c\n\x04name\x18\x01 \x01(\t\x12M\n\targuments\x18\x02 \x03(\x0b\x32:.sass.embedded_protocol.Value.Calculation.CalculationValue\x1a\x95\x02\n\x10\x43\x61lculationValue\x12\x36\n\x06number\x18\x01 \x01(\x0b\x32$.sass.embedded_protocol.Value.NumberH\x00\x12\x10\n\x06string\x18\x02 \x01(\tH\x00\x12\x17\n\rinterpolation\x18\x03 \x01(\tH\x00\x12S\n\toperation\x18\x04 \x01(\x0b\x32>.sass.embedded_protocol.Value.Calculation.CalculationOperationH\x00\x12@\n\x0b\x63\x61lculation\x18\x05 \x01(\x0b\x32).sass.embedded_protocol.Value.CalculationH\x00\x42\x07\n\x05value\x1a\xea\x01\n\x14\x43\x61lculationOperation\x12=\n\x08operator\x18\x01 \x01(\x0e\x32+.sass.embedded_protocol.CalculationOperator\x12H\n\x04left\x18\x02 \x01(\x0b\x32:.sass.embedded_protocol.Value.Calculation.CalculationValue\x12I\n\x05right\x18\x03 \x01(\x0b\x32:.sass.embedded_protocol.Value.Calculation.CalculationValueB\x07\n\x05value\"4\n\x13NodePackageImporter\x12\x1d\n\x15\x65ntry_point_directory\x18\x01 \x01(\t*+\n\x0bOutputStyle\x12\x0c\n\x08\x45XPANDED\x10\x00\x12\x0e\n\nCOMPRESSED\x10\x01*)\n\x06Syntax\x12\x08\n\x04SCSS\x10\x00\x12\x0c\n\x08INDENTED\x10\x01\x12\x07\n\x03\x43SS\x10\x02*?\n\x0cLogEventType\x12\x0b\n\x07WARNING\x10\x00\x12\x17\n\x13\x44\x45PRECATION_WARNING\x10\x01\x12\t\n\x05\x44\x45\x42UG\x10\x02*8\n\x11ProtocolErrorType\x12\t\n\x05PARSE\x10\x00\x12\n\n\x06PARAMS\x10\x01\x12\x0c\n\x08INTERNAL\x10\x02*?\n\rListSeparator\x12\t\n\x05\x43OMMA\x10\x00\x12\t\n\x05SPACE\x10\x01\x12\t\n\x05SLASH\x10\x02\x12\r\n\tUNDECIDED\x10\x03*/\n\x0eSingletonValue\x12\x08\n\x04TRUE\x10\x00\x12\t\n\x05\x46\x41LSE\x10\x01\x12\x08\n\x04NULL\x10\x02*A\n\x13\x43\x61lculationOperator\x12\x08\n\x04PLUS\x10\x00\x12\t\n\x05MINUS\x10\x01\x12\t\n\x05TIMES\x10\x02\x12\n\n\x06\x44IVIDE\x10\x03\x42#\n\x1f\x63om.sass_lang.embedded_protocolP\x01\x62\x06proto3"
|
|
8
|
+
descriptor_data = "\n\x13\x65mbedded_sass.proto\x12\x16sass.embedded_protocol\"\xe8\x10\n\x0eInboundMessage\x12P\n\x0f\x63ompile_request\x18\x02 \x01(\x0b\x32\x35.sass.embedded_protocol.InboundMessage.CompileRequestH\x00\x12\\\n\x15\x63\x61nonicalize_response\x18\x03 \x01(\x0b\x32;.sass.embedded_protocol.InboundMessage.CanonicalizeResponseH\x00\x12P\n\x0fimport_response\x18\x04 \x01(\x0b\x32\x35.sass.embedded_protocol.InboundMessage.ImportResponseH\x00\x12Y\n\x14\x66ile_import_response\x18\x05 \x01(\x0b\x32\x39.sass.embedded_protocol.InboundMessage.FileImportResponseH\x00\x12]\n\x16\x66unction_call_response\x18\x06 \x01(\x0b\x32;.sass.embedded_protocol.InboundMessage.FunctionCallResponseH\x00\x12P\n\x0fversion_request\x18\x07 \x01(\x0b\x32\x35.sass.embedded_protocol.InboundMessage.VersionRequestH\x00\x1a\x1c\n\x0eVersionRequest\x12\n\n\x02id\x18\x01 \x01(\r\x1a\x98\x07\n\x0e\x43ompileRequest\x12S\n\x06string\x18\x02 \x01(\x0b\x32\x41.sass.embedded_protocol.InboundMessage.CompileRequest.StringInputH\x00\x12\x0e\n\x04path\x18\x03 \x01(\tH\x00\x12\x32\n\x05style\x18\x04 \x01(\x0e\x32#.sass.embedded_protocol.OutputStyle\x12\x12\n\nsource_map\x18\x05 \x01(\x08\x12Q\n\timporters\x18\x06 \x03(\x0b\x32>.sass.embedded_protocol.InboundMessage.CompileRequest.Importer\x12\x18\n\x10global_functions\x18\x07 \x03(\t\x12\x13\n\x0b\x61lert_color\x18\x08 \x01(\x08\x12\x13\n\x0b\x61lert_ascii\x18\t \x01(\x08\x12\x0f\n\x07verbose\x18\n \x01(\x08\x12\x12\n\nquiet_deps\x18\x0b \x01(\x08\x12\"\n\x1asource_map_include_sources\x18\x0c \x01(\x08\x12\x0f\n\x07\x63harset\x18\r \x01(\x08\x12\x0e\n\x06silent\x18\x0e \x01(\x08\x12\x19\n\x11\x66\x61tal_deprecation\x18\x0f \x03(\t\x12\x1b\n\x13silence_deprecation\x18\x10 \x03(\t\x12\x1a\n\x12\x66uture_deprecation\x18\x11 \x03(\t\x1a\xac\x01\n\x0bStringInput\x12\x0e\n\x06source\x18\x01 \x01(\t\x12\x0b\n\x03url\x18\x02 \x01(\t\x12.\n\x06syntax\x18\x03 \x01(\x0e\x32\x1e.sass.embedded_protocol.Syntax\x12P\n\x08importer\x18\x04 \x01(\x0b\x32>.sass.embedded_protocol.InboundMessage.CompileRequest.Importer\x1a\xc5\x01\n\x08Importer\x12\x0e\n\x04path\x18\x01 \x01(\tH\x00\x12\x15\n\x0bimporter_id\x18\x02 \x01(\rH\x00\x12\x1a\n\x10\x66ile_importer_id\x18\x03 \x01(\rH\x00\x12L\n\x15node_package_importer\x18\x05 \x01(\x0b\x32+.sass.embedded_protocol.NodePackageImporterH\x00\x12\x1c\n\x14non_canonical_scheme\x18\x04 \x03(\tB\n\n\x08importerB\x07\n\x05inputJ\x04\x08\x01\x10\x02\x1ak\n\x14\x43\x61nonicalizeResponse\x12\n\n\x02id\x18\x01 \x01(\r\x12\r\n\x03url\x18\x02 \x01(\tH\x00\x12\x0f\n\x05\x65rror\x18\x03 \x01(\tH\x00\x12\x1d\n\x15\x63ontaining_url_unused\x18\x04 \x01(\x08\x42\x08\n\x06result\x1a\x93\x02\n\x0eImportResponse\x12\n\n\x02id\x18\x01 \x01(\r\x12V\n\x07success\x18\x02 \x01(\x0b\x32\x43.sass.embedded_protocol.InboundMessage.ImportResponse.ImportSuccessH\x00\x12\x0f\n\x05\x65rror\x18\x03 \x01(\tH\x00\x1a\x81\x01\n\rImportSuccess\x12\x10\n\x08\x63ontents\x18\x01 \x01(\t\x12.\n\x06syntax\x18\x02 \x01(\x0e\x32\x1e.sass.embedded_protocol.Syntax\x12\x1b\n\x0esource_map_url\x18\x03 \x01(\tH\x00\x88\x01\x01\x42\x11\n\x0f_source_map_urlB\x08\n\x06result\x1an\n\x12\x46ileImportResponse\x12\n\n\x02id\x18\x01 \x01(\r\x12\x12\n\x08\x66ile_url\x18\x02 \x01(\tH\x00\x12\x0f\n\x05\x65rror\x18\x03 \x01(\tH\x00\x12\x1d\n\x15\x63ontaining_url_unused\x18\x04 \x01(\x08\x42\x08\n\x06result\x1a\x90\x01\n\x14\x46unctionCallResponse\x12\n\n\x02id\x18\x01 \x01(\r\x12\x30\n\x07success\x18\x02 \x01(\x0b\x32\x1d.sass.embedded_protocol.ValueH\x00\x12\x0f\n\x05\x65rror\x18\x03 \x01(\tH\x00\x12\x1f\n\x17\x61\x63\x63\x65ssed_argument_lists\x18\x04 \x03(\rB\x08\n\x06resultB\t\n\x07message\"\xcb\x0f\n\x0fOutboundMessage\x12\x36\n\x05\x65rror\x18\x01 \x01(\x0b\x32%.sass.embedded_protocol.ProtocolErrorH\x00\x12S\n\x10\x63ompile_response\x18\x02 \x01(\x0b\x32\x37.sass.embedded_protocol.OutboundMessage.CompileResponseH\x00\x12\x45\n\tlog_event\x18\x03 \x01(\x0b\x32\x30.sass.embedded_protocol.OutboundMessage.LogEventH\x00\x12[\n\x14\x63\x61nonicalize_request\x18\x04 \x01(\x0b\x32;.sass.embedded_protocol.OutboundMessage.CanonicalizeRequestH\x00\x12O\n\x0eimport_request\x18\x05 \x01(\x0b\x32\x35.sass.embedded_protocol.OutboundMessage.ImportRequestH\x00\x12X\n\x13\x66ile_import_request\x18\x06 \x01(\x0b\x32\x39.sass.embedded_protocol.OutboundMessage.FileImportRequestH\x00\x12\\\n\x15\x66unction_call_request\x18\x07 \x01(\x0b\x32;.sass.embedded_protocol.OutboundMessage.FunctionCallRequestH\x00\x12S\n\x10version_response\x18\x08 \x01(\x0b\x32\x37.sass.embedded_protocol.OutboundMessage.VersionResponseH\x00\x1a\x8e\x01\n\x0fVersionResponse\x12\n\n\x02id\x18\x05 \x01(\r\x12\x18\n\x10protocol_version\x18\x01 \x01(\t\x12\x18\n\x10\x63ompiler_version\x18\x02 \x01(\t\x12\x1e\n\x16implementation_version\x18\x03 \x01(\t\x12\x1b\n\x13implementation_name\x18\x04 \x01(\t\x1a\xa2\x03\n\x0f\x43ompileResponse\x12Y\n\x07success\x18\x02 \x01(\x0b\x32\x46.sass.embedded_protocol.OutboundMessage.CompileResponse.CompileSuccessH\x00\x12Y\n\x07\x66\x61ilure\x18\x03 \x01(\x0b\x32\x46.sass.embedded_protocol.OutboundMessage.CompileResponse.CompileFailureH\x00\x12\x13\n\x0bloaded_urls\x18\x04 \x03(\t\x1a\x37\n\x0e\x43ompileSuccess\x12\x0b\n\x03\x63ss\x18\x01 \x01(\t\x12\x12\n\nsource_map\x18\x02 \x01(\tJ\x04\x08\x03\x10\x04\x1a{\n\x0e\x43ompileFailure\x12\x0f\n\x07message\x18\x01 \x01(\t\x12\x30\n\x04span\x18\x02 \x01(\x0b\x32\".sass.embedded_protocol.SourceSpan\x12\x13\n\x0bstack_trace\x18\x03 \x01(\t\x12\x11\n\tformatted\x18\x04 \x01(\tB\x08\n\x06resultJ\x04\x08\x01\x10\x02\x1a\xf1\x01\n\x08LogEvent\x12\x32\n\x04type\x18\x02 \x01(\x0e\x32$.sass.embedded_protocol.LogEventType\x12\x0f\n\x07message\x18\x03 \x01(\t\x12\x35\n\x04span\x18\x04 \x01(\x0b\x32\".sass.embedded_protocol.SourceSpanH\x00\x88\x01\x01\x12\x13\n\x0bstack_trace\x18\x05 \x01(\t\x12\x11\n\tformatted\x18\x06 \x01(\t\x12\x1d\n\x10\x64\x65precation_type\x18\x07 \x01(\tH\x01\x88\x01\x01\x42\x07\n\x05_spanB\x13\n\x11_deprecation_typeJ\x04\x08\x01\x10\x02\x1a\x8e\x01\n\x13\x43\x61nonicalizeRequest\x12\n\n\x02id\x18\x01 \x01(\r\x12\x13\n\x0bimporter_id\x18\x03 \x01(\r\x12\x0b\n\x03url\x18\x04 \x01(\t\x12\x13\n\x0b\x66rom_import\x18\x05 \x01(\x08\x12\x1b\n\x0e\x63ontaining_url\x18\x06 \x01(\tH\x00\x88\x01\x01\x42\x11\n\x0f_containing_urlJ\x04\x08\x02\x10\x03\x1a\x43\n\rImportRequest\x12\n\n\x02id\x18\x01 \x01(\r\x12\x13\n\x0bimporter_id\x18\x03 \x01(\r\x12\x0b\n\x03url\x18\x04 \x01(\tJ\x04\x08\x02\x10\x03\x1a\x8c\x01\n\x11\x46ileImportRequest\x12\n\n\x02id\x18\x01 \x01(\r\x12\x13\n\x0bimporter_id\x18\x03 \x01(\r\x12\x0b\n\x03url\x18\x04 \x01(\t\x12\x13\n\x0b\x66rom_import\x18\x05 \x01(\x08\x12\x1b\n\x0e\x63ontaining_url\x18\x06 \x01(\tH\x00\x88\x01\x01\x42\x11\n\x0f_containing_urlJ\x04\x08\x02\x10\x03\x1a\x8e\x01\n\x13\x46unctionCallRequest\x12\n\n\x02id\x18\x01 \x01(\r\x12\x0e\n\x04name\x18\x03 \x01(\tH\x00\x12\x15\n\x0b\x66unction_id\x18\x04 \x01(\rH\x00\x12\x30\n\targuments\x18\x05 \x03(\x0b\x32\x1d.sass.embedded_protocol.ValueB\x0c\n\nidentifierJ\x04\x08\x02\x10\x03\x42\t\n\x07message\"e\n\rProtocolError\x12\x37\n\x04type\x18\x01 \x01(\x0e\x32).sass.embedded_protocol.ProtocolErrorType\x12\n\n\x02id\x18\x02 \x01(\r\x12\x0f\n\x07message\x18\x03 \x01(\t\"\x87\x02\n\nSourceSpan\x12\x0c\n\x04text\x18\x01 \x01(\t\x12@\n\x05start\x18\x02 \x01(\x0b\x32\x31.sass.embedded_protocol.SourceSpan.SourceLocation\x12\x43\n\x03\x65nd\x18\x03 \x01(\x0b\x32\x31.sass.embedded_protocol.SourceSpan.SourceLocationH\x00\x88\x01\x01\x12\x0b\n\x03url\x18\x04 \x01(\t\x12\x0f\n\x07\x63ontext\x18\x05 \x01(\t\x1a>\n\x0eSourceLocation\x12\x0e\n\x06offset\x18\x01 \x01(\r\x12\x0c\n\x04line\x18\x02 \x01(\r\x12\x0e\n\x06\x63olumn\x18\x03 \x01(\rB\x06\n\x04_end\"\xdf\x12\n\x05Value\x12\x36\n\x06string\x18\x01 \x01(\x0b\x32$.sass.embedded_protocol.Value.StringH\x00\x12\x36\n\x06number\x18\x02 \x01(\x0b\x32$.sass.embedded_protocol.Value.NumberH\x00\x12\x32\n\x04list\x18\x05 \x01(\x0b\x32\".sass.embedded_protocol.Value.ListH\x00\x12\x30\n\x03map\x18\x06 \x01(\x0b\x32!.sass.embedded_protocol.Value.MapH\x00\x12;\n\tsingleton\x18\x07 \x01(\x0e\x32&.sass.embedded_protocol.SingletonValueH\x00\x12K\n\x11\x63ompiler_function\x18\x08 \x01(\x0b\x32..sass.embedded_protocol.Value.CompilerFunctionH\x00\x12\x43\n\rhost_function\x18\t \x01(\x0b\x32*.sass.embedded_protocol.Value.HostFunctionH\x00\x12\x43\n\rargument_list\x18\n \x01(\x0b\x32*.sass.embedded_protocol.Value.ArgumentListH\x00\x12@\n\x0b\x63\x61lculation\x18\x0c \x01(\x0b\x32).sass.embedded_protocol.Value.CalculationH\x00\x12\x45\n\x0e\x63ompiler_mixin\x18\r \x01(\x0b\x32+.sass.embedded_protocol.Value.CompilerMixinH\x00\x12\x34\n\x05\x63olor\x18\x0e \x01(\x0b\x32#.sass.embedded_protocol.Value.ColorH\x00\x12G\n\x0f\x63ompiler_module\x18\x0f \x01(\x0b\x32,.sass.embedded_protocol.Value.CompilerModuleH\x00\x1a&\n\x06String\x12\x0c\n\x04text\x18\x01 \x01(\t\x12\x0e\n\x06quoted\x18\x02 \x01(\x08\x1a\x41\n\x06Number\x12\r\n\x05value\x18\x01 \x01(\x01\x12\x12\n\nnumerators\x18\x02 \x03(\t\x12\x14\n\x0c\x64\x65nominators\x18\x03 \x03(\t\x1a\xa0\x01\n\x05\x43olor\x12\r\n\x05space\x18\x01 \x01(\t\x12\x15\n\x08\x63hannel1\x18\x02 \x01(\x01H\x00\x88\x01\x01\x12\x15\n\x08\x63hannel2\x18\x03 \x01(\x01H\x01\x88\x01\x01\x12\x15\n\x08\x63hannel3\x18\x04 \x01(\x01H\x02\x88\x01\x01\x12\x12\n\x05\x61lpha\x18\x05 \x01(\x01H\x03\x88\x01\x01\x42\x0b\n\t_channel1B\x0b\n\t_channel2B\x0b\n\t_channel3B\x08\n\x06_alpha\x1a\x87\x01\n\x04List\x12\x38\n\tseparator\x18\x01 \x01(\x0e\x32%.sass.embedded_protocol.ListSeparator\x12\x14\n\x0chas_brackets\x18\x02 \x01(\x08\x12/\n\x08\x63ontents\x18\x03 \x03(\x0b\x32\x1d.sass.embedded_protocol.Value\x1a\xa2\x01\n\x03Map\x12\x38\n\x07\x65ntries\x18\x01 \x03(\x0b\x32\'.sass.embedded_protocol.Value.Map.Entry\x1a\x61\n\x05\x45ntry\x12*\n\x03key\x18\x01 \x01(\x0b\x32\x1d.sass.embedded_protocol.Value\x12,\n\x05value\x18\x02 \x01(\x0b\x32\x1d.sass.embedded_protocol.Value\x1a\x1e\n\x10\x43ompilerFunction\x12\n\n\x02id\x18\x01 \x01(\r\x1a-\n\x0cHostFunction\x12\n\n\x02id\x18\x01 \x01(\r\x12\x11\n\tsignature\x18\x02 \x01(\t\x1a\x1b\n\rCompilerMixin\x12\n\n\x02id\x18\x01 \x01(\r\x1a\x1c\n\x0e\x43ompilerModule\x12\n\n\x02id\x18\x01 \x01(\r\x1a\xa1\x02\n\x0c\x41rgumentList\x12\n\n\x02id\x18\x01 \x01(\r\x12\x38\n\tseparator\x18\x02 \x01(\x0e\x32%.sass.embedded_protocol.ListSeparator\x12/\n\x08\x63ontents\x18\x03 \x03(\x0b\x32\x1d.sass.embedded_protocol.Value\x12J\n\x08keywords\x18\x04 \x03(\x0b\x32\x38.sass.embedded_protocol.Value.ArgumentList.KeywordsEntry\x1aN\n\rKeywordsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12,\n\x05value\x18\x02 \x01(\x0b\x32\x1d.sass.embedded_protocol.Value:\x02\x38\x01\x1a\xef\x04\n\x0b\x43\x61lculation\x12\x0c\n\x04name\x18\x01 \x01(\t\x12M\n\targuments\x18\x02 \x03(\x0b\x32:.sass.embedded_protocol.Value.Calculation.CalculationValue\x1a\x95\x02\n\x10\x43\x61lculationValue\x12\x36\n\x06number\x18\x01 \x01(\x0b\x32$.sass.embedded_protocol.Value.NumberH\x00\x12\x10\n\x06string\x18\x02 \x01(\tH\x00\x12\x17\n\rinterpolation\x18\x03 \x01(\tH\x00\x12S\n\toperation\x18\x04 \x01(\x0b\x32>.sass.embedded_protocol.Value.Calculation.CalculationOperationH\x00\x12@\n\x0b\x63\x61lculation\x18\x05 \x01(\x0b\x32).sass.embedded_protocol.Value.CalculationH\x00\x42\x07\n\x05value\x1a\xea\x01\n\x14\x43\x61lculationOperation\x12=\n\x08operator\x18\x01 \x01(\x0e\x32+.sass.embedded_protocol.CalculationOperator\x12H\n\x04left\x18\x02 \x01(\x0b\x32:.sass.embedded_protocol.Value.Calculation.CalculationValue\x12I\n\x05right\x18\x03 \x01(\x0b\x32:.sass.embedded_protocol.Value.Calculation.CalculationValueB\x07\n\x05value\"4\n\x13NodePackageImporter\x12\x1d\n\x15\x65ntry_point_directory\x18\x01 \x01(\t*+\n\x0bOutputStyle\x12\x0c\n\x08\x45XPANDED\x10\x00\x12\x0e\n\nCOMPRESSED\x10\x01*)\n\x06Syntax\x12\x08\n\x04SCSS\x10\x00\x12\x0c\n\x08INDENTED\x10\x01\x12\x07\n\x03\x43SS\x10\x02*?\n\x0cLogEventType\x12\x0b\n\x07WARNING\x10\x00\x12\x17\n\x13\x44\x45PRECATION_WARNING\x10\x01\x12\t\n\x05\x44\x45\x42UG\x10\x02*8\n\x11ProtocolErrorType\x12\t\n\x05PARSE\x10\x00\x12\n\n\x06PARAMS\x10\x01\x12\x0c\n\x08INTERNAL\x10\x02*?\n\rListSeparator\x12\t\n\x05\x43OMMA\x10\x00\x12\t\n\x05SPACE\x10\x01\x12\t\n\x05SLASH\x10\x02\x12\r\n\tUNDECIDED\x10\x03*/\n\x0eSingletonValue\x12\x08\n\x04TRUE\x10\x00\x12\t\n\x05\x46\x41LSE\x10\x01\x12\x08\n\x04NULL\x10\x02*A\n\x13\x43\x61lculationOperator\x12\x08\n\x04PLUS\x10\x00\x12\t\n\x05MINUS\x10\x01\x12\t\n\x05TIMES\x10\x02\x12\n\n\x06\x44IVIDE\x10\x03\x42#\n\x1f\x63om.sass_lang.embedded_protocolP\x01\x62\x06proto3"
|
|
9
9
|
|
|
10
10
|
pool = ::Google::Protobuf::DescriptorPool.generated_pool
|
|
11
11
|
pool.add_serialized_file(descriptor_data)
|
|
@@ -45,6 +45,7 @@ module Sass
|
|
|
45
45
|
Value::CompilerFunction = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("sass.embedded_protocol.Value.CompilerFunction").msgclass
|
|
46
46
|
Value::HostFunction = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("sass.embedded_protocol.Value.HostFunction").msgclass
|
|
47
47
|
Value::CompilerMixin = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("sass.embedded_protocol.Value.CompilerMixin").msgclass
|
|
48
|
+
Value::CompilerModule = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("sass.embedded_protocol.Value.CompilerModule").msgclass
|
|
48
49
|
Value::ArgumentList = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("sass.embedded_protocol.Value.ArgumentList").msgclass
|
|
49
50
|
Value::Calculation = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("sass.embedded_protocol.Value.Calculation").msgclass
|
|
50
51
|
Value::Calculation::CalculationValue = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("sass.embedded_protocol.Value.Calculation.CalculationValue").msgclass
|
data/lib/sass/value/boolean.rb
CHANGED
data/lib/sass/value/color.rb
CHANGED
|
@@ -124,7 +124,7 @@ module Sass
|
|
|
124
124
|
return channel2 if channel == channels[2].name
|
|
125
125
|
return alpha if channel == 'alpha'
|
|
126
126
|
|
|
127
|
-
raise Sass::ScriptError.new("Color #{
|
|
127
|
+
raise Sass::ScriptError.new("Color #{inspect} doesn't have a channel named \"#{channel}\".", channel)
|
|
128
128
|
end
|
|
129
129
|
|
|
130
130
|
# @param channel [::String]
|
|
@@ -136,7 +136,7 @@ module Sass
|
|
|
136
136
|
return channel2_missing? if channel == channels[2].name
|
|
137
137
|
return alpha_missing? if channel == 'alpha'
|
|
138
138
|
|
|
139
|
-
raise Sass::ScriptError.new("Color #{
|
|
139
|
+
raise Sass::ScriptError.new("Color #{inspect} doesn't have a channel named \"#{channel}\".", channel)
|
|
140
140
|
end
|
|
141
141
|
|
|
142
142
|
# @param channel [::String]
|
|
@@ -151,7 +151,7 @@ module Sass
|
|
|
151
151
|
return channel2_powerless? if channel == channels[2].name
|
|
152
152
|
return false if channel == 'alpha'
|
|
153
153
|
|
|
154
|
-
raise Sass::ScriptError.new("Color #{
|
|
154
|
+
raise Sass::ScriptError.new("Color #{inspect} doesn't have a channel named \"#{channel}\".", channel)
|
|
155
155
|
end
|
|
156
156
|
|
|
157
157
|
# @param other [Color]
|
data/lib/sass/value/function.rb
CHANGED
|
@@ -43,6 +43,20 @@ module Sass
|
|
|
43
43
|
@hash ||= defined?(@id) ? [compile_context, id].hash : [signature, callback].hash
|
|
44
44
|
end
|
|
45
45
|
|
|
46
|
+
# @raise [ScriptError]
|
|
47
|
+
def to_s
|
|
48
|
+
return super unless defined?(@id)
|
|
49
|
+
|
|
50
|
+
raise Sass::ScriptError, "#{inspect} isn't a valid CSS value."
|
|
51
|
+
end
|
|
52
|
+
|
|
53
|
+
# @return [::String]
|
|
54
|
+
def inspect
|
|
55
|
+
return super unless defined?(@id)
|
|
56
|
+
|
|
57
|
+
'get-function(<anonymous>)'
|
|
58
|
+
end
|
|
59
|
+
|
|
46
60
|
# @return [Function]
|
|
47
61
|
def assert_function(_name = nil)
|
|
48
62
|
self
|
data/lib/sass/value/list.rb
CHANGED
|
@@ -58,6 +58,16 @@ module Sass
|
|
|
58
58
|
@contents
|
|
59
59
|
end
|
|
60
60
|
|
|
61
|
+
# @return [Hash<Value, Value>]
|
|
62
|
+
# @raise [ScriptError, ArgumentError, TypeError]
|
|
63
|
+
def to_h(...)
|
|
64
|
+
return super if block_given?
|
|
65
|
+
|
|
66
|
+
super do |element|
|
|
67
|
+
element.is_a?(Sass::Value::List) ? element.to_a : element
|
|
68
|
+
end
|
|
69
|
+
end
|
|
70
|
+
|
|
61
71
|
# @return [Map, nil]
|
|
62
72
|
def to_map
|
|
63
73
|
to_a.empty? ? Sass::Value::Map.new({}) : nil
|
data/lib/sass/value/map.rb
CHANGED
|
@@ -51,6 +51,12 @@ module Sass
|
|
|
51
51
|
contents.map { |key, value| Sass::Value::List.new([key, value], separator: ' ') }
|
|
52
52
|
end
|
|
53
53
|
|
|
54
|
+
# @return [Hash<Value, Value>]
|
|
55
|
+
# @raise [ScriptError, ArgumentError, TypeError]
|
|
56
|
+
def to_h(...)
|
|
57
|
+
contents.to_h(...)
|
|
58
|
+
end
|
|
59
|
+
|
|
54
60
|
# @return [Map]
|
|
55
61
|
def to_map
|
|
56
62
|
self
|
data/lib/sass/value/mixin.rb
CHANGED
|
@@ -28,6 +28,16 @@ module Sass
|
|
|
28
28
|
@hash ||= [compile_context, id].hash
|
|
29
29
|
end
|
|
30
30
|
|
|
31
|
+
# @raise [ScriptError]
|
|
32
|
+
def to_s
|
|
33
|
+
raise Sass::ScriptError, "#{inspect} isn't a valid CSS value."
|
|
34
|
+
end
|
|
35
|
+
|
|
36
|
+
# @return [::String]
|
|
37
|
+
def inspect
|
|
38
|
+
'get-mixin(<anonymous>)'
|
|
39
|
+
end
|
|
40
|
+
|
|
31
41
|
# @return [Mixin]
|
|
32
42
|
def assert_mixin(_name = nil)
|
|
33
43
|
self
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Sass
|
|
4
|
+
module Value
|
|
5
|
+
# Sass's module type.
|
|
6
|
+
#
|
|
7
|
+
# @see https://sass-lang.com/documentation/js-api/classes/sassmodule/
|
|
8
|
+
class Module
|
|
9
|
+
include Value
|
|
10
|
+
|
|
11
|
+
class << self
|
|
12
|
+
private :new
|
|
13
|
+
end
|
|
14
|
+
|
|
15
|
+
# @return [Object]
|
|
16
|
+
protected attr_reader :compile_context
|
|
17
|
+
|
|
18
|
+
# @return [Integer]
|
|
19
|
+
protected attr_reader :id
|
|
20
|
+
|
|
21
|
+
# @return [::Boolean]
|
|
22
|
+
def ==(other)
|
|
23
|
+
other.is_a?(Sass::Value::Module) && other.compile_context == compile_context && other.id == id
|
|
24
|
+
end
|
|
25
|
+
|
|
26
|
+
# @return [Integer]
|
|
27
|
+
def hash
|
|
28
|
+
@hash ||= [compile_context, id].hash
|
|
29
|
+
end
|
|
30
|
+
|
|
31
|
+
# @raise [ScriptError]
|
|
32
|
+
def to_s
|
|
33
|
+
raise Sass::ScriptError, "#{inspect} isn't a valid CSS value."
|
|
34
|
+
end
|
|
35
|
+
|
|
36
|
+
# @return [::String]
|
|
37
|
+
def inspect
|
|
38
|
+
'get-module(<anonymous>)'
|
|
39
|
+
end
|
|
40
|
+
|
|
41
|
+
# @return [Module]
|
|
42
|
+
def assert_module(_name = nil)
|
|
43
|
+
self
|
|
44
|
+
end
|
|
45
|
+
end
|
|
46
|
+
end
|
|
47
|
+
end
|
data/lib/sass/value/null.rb
CHANGED
|
@@ -30,6 +30,16 @@ module Sass
|
|
|
30
30
|
@hash ||= value.hash
|
|
31
31
|
end
|
|
32
32
|
|
|
33
|
+
# @return [::String]
|
|
34
|
+
def to_s
|
|
35
|
+
''
|
|
36
|
+
end
|
|
37
|
+
|
|
38
|
+
# @return [::String]
|
|
39
|
+
def inspect
|
|
40
|
+
'null'
|
|
41
|
+
end
|
|
42
|
+
|
|
33
43
|
# @return [::Boolean]
|
|
34
44
|
def to_bool # rubocop:disable Naming/PredicateMethod
|
|
35
45
|
false
|
data/lib/sass/value/number.rb
CHANGED
|
@@ -110,7 +110,7 @@ module Sass
|
|
|
110
110
|
# @return [Number]
|
|
111
111
|
# @raise [ScriptError]
|
|
112
112
|
def assert_unitless(name = nil)
|
|
113
|
-
raise Sass::ScriptError.new("Expected #{
|
|
113
|
+
raise Sass::ScriptError.new("Expected #{inspect} to have no units", name) unless unitless?
|
|
114
114
|
|
|
115
115
|
self
|
|
116
116
|
end
|
|
@@ -130,7 +130,7 @@ module Sass
|
|
|
130
130
|
# @return [Number]
|
|
131
131
|
# @raise [ScriptError]
|
|
132
132
|
def assert_unit(unit, name = nil)
|
|
133
|
-
raise Sass::ScriptError.new("Expected #{
|
|
133
|
+
raise Sass::ScriptError.new("Expected #{inspect} to have unit #{unit.inspect}", name) unless unit?(unit)
|
|
134
134
|
|
|
135
135
|
self
|
|
136
136
|
end
|
|
@@ -143,7 +143,7 @@ module Sass
|
|
|
143
143
|
# @return [Integer]
|
|
144
144
|
# @raise [ScriptError]
|
|
145
145
|
def assert_integer(name = nil)
|
|
146
|
-
raise Sass::ScriptError.new("#{
|
|
146
|
+
raise Sass::ScriptError.new("#{inspect} is not an integer", name) unless integer?
|
|
147
147
|
|
|
148
148
|
to_i
|
|
149
149
|
end
|
|
@@ -288,25 +288,25 @@ module Sass
|
|
|
288
288
|
|
|
289
289
|
compatibility_error = lambda {
|
|
290
290
|
unless other.nil?
|
|
291
|
-
message = "#{
|
|
291
|
+
message = "#{inspect} and"
|
|
292
292
|
message << " $#{other_name}:" unless other_name.nil?
|
|
293
293
|
message << " #{other} have incompatible units"
|
|
294
294
|
message << " (one has units and the other doesn't)" if unitless? || other_unitless
|
|
295
295
|
return Sass::ScriptError.new(message, name)
|
|
296
296
|
end
|
|
297
297
|
|
|
298
|
-
return Sass::ScriptError.new("Expected #{
|
|
298
|
+
return Sass::ScriptError.new("Expected #{inspect} to have no units", name) unless other_unitless
|
|
299
299
|
|
|
300
300
|
if new_numerator_units.length == 1 && new_denominator_units.empty?
|
|
301
301
|
type = Unit::TYPES_BY_UNIT[new_numerator_units.first]
|
|
302
302
|
return Sass::ScriptError.new(
|
|
303
|
-
"Expected #{
|
|
303
|
+
"Expected #{inspect} to have a #{type} unit (#{Unit::UNITS_BY_TYPE[type].join(', ')})", name
|
|
304
304
|
)
|
|
305
305
|
end
|
|
306
306
|
|
|
307
307
|
unit_length = new_numerator_units.length + new_denominator_units.length
|
|
308
308
|
units = unit_string(new_numerator_units, new_denominator_units)
|
|
309
|
-
Sass::ScriptError.new("Expected #{
|
|
309
|
+
Sass::ScriptError.new("Expected #{inspect} to have unit#{'s' if unit_length > 1} #{units}", name)
|
|
310
310
|
}
|
|
311
311
|
|
|
312
312
|
result = value
|
data/lib/sass/value/string.rb
CHANGED
|
@@ -24,6 +24,16 @@ module Sass
|
|
|
24
24
|
@quoted
|
|
25
25
|
end
|
|
26
26
|
|
|
27
|
+
# @return [String]
|
|
28
|
+
# @raise [TypeError]
|
|
29
|
+
def +(other)
|
|
30
|
+
unless other.respond_to?(:to_str)
|
|
31
|
+
raise TypeError, "no implicit conversion of #{other&.class.inspect} into String"
|
|
32
|
+
end
|
|
33
|
+
|
|
34
|
+
Sass::Value::String.new(to_str + other.to_str, quoted: quoted?)
|
|
35
|
+
end
|
|
36
|
+
|
|
27
37
|
# @return [::Boolean]
|
|
28
38
|
def ==(other)
|
|
29
39
|
other.is_a?(Sass::Value::String) && other.text == text
|
|
@@ -34,6 +44,18 @@ module Sass
|
|
|
34
44
|
@hash ||= text.hash
|
|
35
45
|
end
|
|
36
46
|
|
|
47
|
+
# @return [::String]
|
|
48
|
+
def to_s
|
|
49
|
+
@quoted ? Serializer.serialize_quoted_string(@text) : Serializer.serialize_unquoted_string(@text)
|
|
50
|
+
end
|
|
51
|
+
|
|
52
|
+
alias inspect to_s
|
|
53
|
+
|
|
54
|
+
# @return [::String]
|
|
55
|
+
def to_str
|
|
56
|
+
text.to_str
|
|
57
|
+
end
|
|
58
|
+
|
|
37
59
|
# @return [String]
|
|
38
60
|
def assert_string(_name = nil)
|
|
39
61
|
self
|
|
@@ -51,11 +73,6 @@ module Sass
|
|
|
51
73
|
|
|
52
74
|
index.negative? ? text.length + index : index - 1
|
|
53
75
|
end
|
|
54
|
-
|
|
55
|
-
# @return [::String]
|
|
56
|
-
def to_s
|
|
57
|
-
@quoted ? Serializer.serialize_quoted_string(@text) : Serializer.serialize_unquoted_string(@text)
|
|
58
|
-
end
|
|
59
76
|
end
|
|
60
77
|
end
|
|
61
78
|
end
|
data/lib/sass/value.rb
CHANGED
|
@@ -37,6 +37,37 @@ module Sass
|
|
|
37
37
|
[self]
|
|
38
38
|
end
|
|
39
39
|
|
|
40
|
+
# @return [Hash<Value, Value>]
|
|
41
|
+
# @raise [ScriptError, ArgumentError, TypeError]
|
|
42
|
+
def to_h(...)
|
|
43
|
+
to_a.to_h(...)
|
|
44
|
+
end
|
|
45
|
+
|
|
46
|
+
# @return [::String]
|
|
47
|
+
# @raise [ScriptError]
|
|
48
|
+
def to_s
|
|
49
|
+
s = nil
|
|
50
|
+
Sass.compile_string('$_:o(#{i()});', functions: { # rubocop:disable Lint/InterpolationCheck
|
|
51
|
+
'i()' => ->(_) { self },
|
|
52
|
+
'o($s)' => ->(args) { s = args[0].assert_string }
|
|
53
|
+
})
|
|
54
|
+
s.text
|
|
55
|
+
rescue Sass::CompileError => e
|
|
56
|
+
raise Sass::ScriptError.new(e.message), cause: nil
|
|
57
|
+
end
|
|
58
|
+
|
|
59
|
+
# @return [::String]
|
|
60
|
+
def inspect
|
|
61
|
+
s = nil
|
|
62
|
+
Sass.compile_string('@use "sass:meta";$_:o(meta.inspect(i()));', functions: {
|
|
63
|
+
'i()' => ->(_) { self },
|
|
64
|
+
'o($s)' => ->(args) { s = args[0].assert_string }
|
|
65
|
+
})
|
|
66
|
+
s.text
|
|
67
|
+
rescue StandardError
|
|
68
|
+
super
|
|
69
|
+
end
|
|
70
|
+
|
|
40
71
|
# @return [::Boolean]
|
|
41
72
|
def to_bool # rubocop:disable Naming/PredicateMethod
|
|
42
73
|
true
|
|
@@ -55,49 +86,55 @@ module Sass
|
|
|
55
86
|
# @return [Boolean]
|
|
56
87
|
# @raise [ScriptError]
|
|
57
88
|
def assert_boolean(name = nil)
|
|
58
|
-
raise Sass::ScriptError.new("#{
|
|
89
|
+
raise Sass::ScriptError.new("#{inspect} is not a boolean", name)
|
|
59
90
|
end
|
|
60
91
|
|
|
61
92
|
# @return [Calculation]
|
|
62
93
|
# @raise [ScriptError]
|
|
63
94
|
def assert_calculation(name = nil)
|
|
64
|
-
raise Sass::ScriptError.new("#{
|
|
95
|
+
raise Sass::ScriptError.new("#{inspect} is not a calculation", name)
|
|
65
96
|
end
|
|
66
97
|
|
|
67
98
|
# @return [Color]
|
|
68
99
|
# @raise [ScriptError]
|
|
69
100
|
def assert_color(name = nil)
|
|
70
|
-
raise Sass::ScriptError.new("#{
|
|
101
|
+
raise Sass::ScriptError.new("#{inspect} is not a color", name)
|
|
71
102
|
end
|
|
72
103
|
|
|
73
104
|
# @return [Function]
|
|
74
105
|
# @raise [ScriptError]
|
|
75
106
|
def assert_function(name = nil)
|
|
76
|
-
raise Sass::ScriptError.new("#{
|
|
107
|
+
raise Sass::ScriptError.new("#{inspect} is not a function", name)
|
|
77
108
|
end
|
|
78
109
|
|
|
79
110
|
# @return [Map]
|
|
80
111
|
# @raise [ScriptError]
|
|
81
112
|
def assert_map(name = nil)
|
|
82
|
-
raise Sass::ScriptError.new("#{
|
|
113
|
+
raise Sass::ScriptError.new("#{inspect} is not a map", name)
|
|
83
114
|
end
|
|
84
115
|
|
|
85
116
|
# @return [Mixin]
|
|
86
117
|
# @raise [ScriptError]
|
|
87
118
|
def assert_mixin(name = nil)
|
|
88
|
-
raise Sass::ScriptError.new("#{
|
|
119
|
+
raise Sass::ScriptError.new("#{inspect} is not a mixin", name)
|
|
120
|
+
end
|
|
121
|
+
|
|
122
|
+
# @return [Module]
|
|
123
|
+
# @raise [ScriptError]
|
|
124
|
+
def assert_module(name = nil)
|
|
125
|
+
raise Sass::ScriptError.new("#{inspect} is not a module", name)
|
|
89
126
|
end
|
|
90
127
|
|
|
91
128
|
# @return [Number]
|
|
92
129
|
# @raise [ScriptError]
|
|
93
130
|
def assert_number(name = nil)
|
|
94
|
-
raise Sass::ScriptError.new("#{
|
|
131
|
+
raise Sass::ScriptError.new("#{inspect} is not a number", name)
|
|
95
132
|
end
|
|
96
133
|
|
|
97
134
|
# @return [String]
|
|
98
135
|
# @raise [ScriptError]
|
|
99
136
|
def assert_string(name = nil)
|
|
100
|
-
raise Sass::ScriptError.new("#{
|
|
137
|
+
raise Sass::ScriptError.new("#{inspect} is not a string", name)
|
|
101
138
|
end
|
|
102
139
|
|
|
103
140
|
# @param sass_index [Number]
|
|
@@ -131,6 +168,7 @@ require_relative 'value/function'
|
|
|
131
168
|
require_relative 'value/fuzzy_math'
|
|
132
169
|
require_relative 'value/map'
|
|
133
170
|
require_relative 'value/mixin'
|
|
171
|
+
require_relative 'value/module'
|
|
134
172
|
require_relative 'value/null'
|
|
135
173
|
require_relative 'value/number'
|
|
136
174
|
require_relative 'value/string'
|
metadata
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: sass-embedded
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 1.
|
|
4
|
+
version: 1.105.1
|
|
5
5
|
platform: x86_64-linux-gnu
|
|
6
6
|
authors:
|
|
7
7
|
- なつき
|
|
@@ -52,7 +52,6 @@ files:
|
|
|
52
52
|
- lib/sass/compiler/session/path.rb
|
|
53
53
|
- lib/sass/compiler/session/protofier.rb
|
|
54
54
|
- lib/sass/compiler/session/stack_trace.rb
|
|
55
|
-
- lib/sass/compiler/session/struct.rb
|
|
56
55
|
- lib/sass/compiler/varint.rb
|
|
57
56
|
- lib/sass/dart-sass/sass
|
|
58
57
|
- lib/sass/dart-sass/src/LICENSE
|
|
@@ -107,6 +106,7 @@ files:
|
|
|
107
106
|
- lib/sass/value/list.rb
|
|
108
107
|
- lib/sass/value/map.rb
|
|
109
108
|
- lib/sass/value/mixin.rb
|
|
109
|
+
- lib/sass/value/module.rb
|
|
110
110
|
- lib/sass/value/null.rb
|
|
111
111
|
- lib/sass/value/number.rb
|
|
112
112
|
- lib/sass/value/number/unit.rb
|
|
@@ -116,8 +116,8 @@ licenses:
|
|
|
116
116
|
- MIT
|
|
117
117
|
metadata:
|
|
118
118
|
bug_tracker_uri: https://github.com/sass-contrib/sass-embedded-host-ruby/issues
|
|
119
|
-
documentation_uri: https://rubydoc.info/gems/sass-embedded/1.
|
|
120
|
-
source_code_uri: https://github.com/sass-contrib/sass-embedded-host-ruby/tree/v1.
|
|
119
|
+
documentation_uri: https://rubydoc.info/gems/sass-embedded/1.105.1
|
|
120
|
+
source_code_uri: https://github.com/sass-contrib/sass-embedded-host-ruby/tree/v1.105.1
|
|
121
121
|
funding_uri: https://github.com/sponsors/ntkme
|
|
122
122
|
rubygems_mfa_required: 'true'
|
|
123
123
|
rdoc_options: []
|
|
@@ -134,7 +134,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
134
134
|
- !ruby/object:Gem::Version
|
|
135
135
|
version: '0'
|
|
136
136
|
requirements: []
|
|
137
|
-
rubygems_version: 4.0.
|
|
137
|
+
rubygems_version: 4.0.21
|
|
138
138
|
specification_version: 4
|
|
139
139
|
summary: Use dart-sass with Ruby!
|
|
140
140
|
test_files: []
|
|
@@ -1,36 +0,0 @@
|
|
|
1
|
-
# frozen_string_literal: true
|
|
2
|
-
|
|
3
|
-
module Sass
|
|
4
|
-
class Compiler
|
|
5
|
-
class Session
|
|
6
|
-
# The {Struct} class.
|
|
7
|
-
#
|
|
8
|
-
# It creates {::Struct}-like objects from {::Hash}.
|
|
9
|
-
class Struct
|
|
10
|
-
def initialize(hash, attrs: nil, methods: nil)
|
|
11
|
-
@hash = hash
|
|
12
|
-
@attrs = attrs
|
|
13
|
-
@methods = methods
|
|
14
|
-
end
|
|
15
|
-
|
|
16
|
-
def method_missing(symbol, ...)
|
|
17
|
-
return super unless @hash.key?(symbol)
|
|
18
|
-
|
|
19
|
-
if @attrs&.include?(symbol)
|
|
20
|
-
@hash.send(:[], symbol, ...)
|
|
21
|
-
elsif @methods&.include?(symbol)
|
|
22
|
-
@hash[symbol].call(...)
|
|
23
|
-
else
|
|
24
|
-
super
|
|
25
|
-
end
|
|
26
|
-
end
|
|
27
|
-
|
|
28
|
-
def respond_to_missing?(symbol, _include_all)
|
|
29
|
-
@hash.key?(symbol) && (@attrs&.include?(symbol) || @methods&.include?(symbol))
|
|
30
|
-
end
|
|
31
|
-
end
|
|
32
|
-
|
|
33
|
-
private_constant :Struct
|
|
34
|
-
end
|
|
35
|
-
end
|
|
36
|
-
end
|