sass-embedded 1.62.1-x86_64-darwin → 1.63.1-x86_64-darwin

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.
@@ -1,301 +1,34 @@
1
+ # frozen_string_literal: true
1
2
  # Generated by the protocol buffer compiler. DO NOT EDIT!
2
3
  # source: embedded_sass.proto
3
4
 
4
5
  require 'google/protobuf'
5
6
 
6
- Google::Protobuf::DescriptorPool.generated_pool.build do
7
- add_file("embedded_sass.proto", :syntax => :proto3) do
8
- add_message "sass.embedded_protocol.InboundMessage" do
9
- oneof :message do
10
- optional :compile_request, :message, 2, "sass.embedded_protocol.InboundMessage.CompileRequest"
11
- optional :canonicalize_response, :message, 3, "sass.embedded_protocol.InboundMessage.CanonicalizeResponse"
12
- optional :import_response, :message, 4, "sass.embedded_protocol.InboundMessage.ImportResponse"
13
- optional :file_import_response, :message, 5, "sass.embedded_protocol.InboundMessage.FileImportResponse"
14
- optional :function_call_response, :message, 6, "sass.embedded_protocol.InboundMessage.FunctionCallResponse"
15
- optional :version_request, :message, 7, "sass.embedded_protocol.InboundMessage.VersionRequest"
16
- end
17
- end
18
- add_message "sass.embedded_protocol.InboundMessage.VersionRequest" do
19
- optional :id, :uint32, 1
20
- end
21
- add_message "sass.embedded_protocol.InboundMessage.CompileRequest" do
22
- optional :id, :uint32, 1
23
- optional :style, :enum, 4, "sass.embedded_protocol.OutputStyle"
24
- optional :source_map, :bool, 5
25
- repeated :importers, :message, 6, "sass.embedded_protocol.InboundMessage.CompileRequest.Importer"
26
- repeated :global_functions, :string, 7
27
- optional :alert_color, :bool, 8
28
- optional :alert_ascii, :bool, 9
29
- optional :verbose, :bool, 10
30
- optional :quiet_deps, :bool, 11
31
- optional :source_map_include_sources, :bool, 12
32
- optional :charset, :bool, 13
33
- oneof :input do
34
- optional :string, :message, 2, "sass.embedded_protocol.InboundMessage.CompileRequest.StringInput"
35
- optional :path, :string, 3
36
- end
37
- end
38
- add_message "sass.embedded_protocol.InboundMessage.CompileRequest.StringInput" do
39
- optional :source, :string, 1
40
- optional :url, :string, 2
41
- optional :syntax, :enum, 3, "sass.embedded_protocol.Syntax"
42
- optional :importer, :message, 4, "sass.embedded_protocol.InboundMessage.CompileRequest.Importer"
43
- end
44
- add_message "sass.embedded_protocol.InboundMessage.CompileRequest.Importer" do
45
- oneof :importer do
46
- optional :path, :string, 1
47
- optional :importer_id, :uint32, 2
48
- optional :file_importer_id, :uint32, 3
49
- end
50
- end
51
- add_message "sass.embedded_protocol.InboundMessage.CanonicalizeResponse" do
52
- optional :id, :uint32, 1
53
- oneof :result do
54
- optional :url, :string, 2
55
- optional :error, :string, 3
56
- end
57
- end
58
- add_message "sass.embedded_protocol.InboundMessage.ImportResponse" do
59
- optional :id, :uint32, 1
60
- oneof :result do
61
- optional :success, :message, 2, "sass.embedded_protocol.InboundMessage.ImportResponse.ImportSuccess"
62
- optional :error, :string, 3
63
- end
64
- end
65
- add_message "sass.embedded_protocol.InboundMessage.ImportResponse.ImportSuccess" do
66
- optional :contents, :string, 1
67
- optional :syntax, :enum, 2, "sass.embedded_protocol.Syntax"
68
- optional :source_map_url, :string, 3
69
- end
70
- add_message "sass.embedded_protocol.InboundMessage.FileImportResponse" do
71
- optional :id, :uint32, 1
72
- oneof :result do
73
- optional :file_url, :string, 2
74
- optional :error, :string, 3
75
- end
76
- end
77
- add_message "sass.embedded_protocol.InboundMessage.FunctionCallResponse" do
78
- optional :id, :uint32, 1
79
- repeated :accessed_argument_lists, :uint32, 4
80
- oneof :result do
81
- optional :success, :message, 2, "sass.embedded_protocol.Value"
82
- optional :error, :string, 3
83
- end
84
- end
85
- add_message "sass.embedded_protocol.OutboundMessage" do
86
- oneof :message do
87
- optional :error, :message, 1, "sass.embedded_protocol.ProtocolError"
88
- optional :compile_response, :message, 2, "sass.embedded_protocol.OutboundMessage.CompileResponse"
89
- optional :log_event, :message, 3, "sass.embedded_protocol.OutboundMessage.LogEvent"
90
- optional :canonicalize_request, :message, 4, "sass.embedded_protocol.OutboundMessage.CanonicalizeRequest"
91
- optional :import_request, :message, 5, "sass.embedded_protocol.OutboundMessage.ImportRequest"
92
- optional :file_import_request, :message, 6, "sass.embedded_protocol.OutboundMessage.FileImportRequest"
93
- optional :function_call_request, :message, 7, "sass.embedded_protocol.OutboundMessage.FunctionCallRequest"
94
- optional :version_response, :message, 8, "sass.embedded_protocol.OutboundMessage.VersionResponse"
95
- end
96
- end
97
- add_message "sass.embedded_protocol.OutboundMessage.VersionResponse" do
98
- optional :id, :uint32, 5
99
- optional :protocol_version, :string, 1
100
- optional :compiler_version, :string, 2
101
- optional :implementation_version, :string, 3
102
- optional :implementation_name, :string, 4
103
- end
104
- add_message "sass.embedded_protocol.OutboundMessage.CompileResponse" do
105
- optional :id, :uint32, 1
106
- oneof :result do
107
- optional :success, :message, 2, "sass.embedded_protocol.OutboundMessage.CompileResponse.CompileSuccess"
108
- optional :failure, :message, 3, "sass.embedded_protocol.OutboundMessage.CompileResponse.CompileFailure"
109
- end
110
- end
111
- add_message "sass.embedded_protocol.OutboundMessage.CompileResponse.CompileSuccess" do
112
- optional :css, :string, 1
113
- optional :source_map, :string, 2
114
- repeated :loaded_urls, :string, 3
115
- end
116
- add_message "sass.embedded_protocol.OutboundMessage.CompileResponse.CompileFailure" do
117
- optional :message, :string, 1
118
- optional :span, :message, 2, "sass.embedded_protocol.SourceSpan"
119
- optional :stack_trace, :string, 3
120
- optional :formatted, :string, 4
121
- end
122
- add_message "sass.embedded_protocol.OutboundMessage.LogEvent" do
123
- optional :compilation_id, :uint32, 1
124
- optional :type, :enum, 2, "sass.embedded_protocol.LogEventType"
125
- optional :message, :string, 3
126
- optional :span, :message, 4, "sass.embedded_protocol.SourceSpan"
127
- optional :stack_trace, :string, 5
128
- optional :formatted, :string, 6
129
- end
130
- add_message "sass.embedded_protocol.OutboundMessage.CanonicalizeRequest" do
131
- optional :id, :uint32, 1
132
- optional :compilation_id, :uint32, 2
133
- optional :importer_id, :uint32, 3
134
- optional :url, :string, 4
135
- optional :from_import, :bool, 5
136
- end
137
- add_message "sass.embedded_protocol.OutboundMessage.ImportRequest" do
138
- optional :id, :uint32, 1
139
- optional :compilation_id, :uint32, 2
140
- optional :importer_id, :uint32, 3
141
- optional :url, :string, 4
142
- end
143
- add_message "sass.embedded_protocol.OutboundMessage.FileImportRequest" do
144
- optional :id, :uint32, 1
145
- optional :compilation_id, :uint32, 2
146
- optional :importer_id, :uint32, 3
147
- optional :url, :string, 4
148
- optional :from_import, :bool, 5
149
- end
150
- add_message "sass.embedded_protocol.OutboundMessage.FunctionCallRequest" do
151
- optional :id, :uint32, 1
152
- optional :compilation_id, :uint32, 2
153
- repeated :arguments, :message, 5, "sass.embedded_protocol.Value"
154
- oneof :identifier do
155
- optional :name, :string, 3
156
- optional :function_id, :uint32, 4
157
- end
158
- end
159
- add_message "sass.embedded_protocol.ProtocolError" do
160
- optional :type, :enum, 1, "sass.embedded_protocol.ProtocolErrorType"
161
- optional :id, :uint32, 2
162
- optional :message, :string, 3
163
- end
164
- add_message "sass.embedded_protocol.SourceSpan" do
165
- optional :text, :string, 1
166
- optional :start, :message, 2, "sass.embedded_protocol.SourceSpan.SourceLocation"
167
- optional :end, :message, 3, "sass.embedded_protocol.SourceSpan.SourceLocation"
168
- optional :url, :string, 4
169
- optional :context, :string, 5
170
- end
171
- add_message "sass.embedded_protocol.SourceSpan.SourceLocation" do
172
- optional :offset, :uint32, 1
173
- optional :line, :uint32, 2
174
- optional :column, :uint32, 3
175
- end
176
- add_message "sass.embedded_protocol.Value" do
177
- oneof :value do
178
- optional :string, :message, 1, "sass.embedded_protocol.Value.String"
179
- optional :number, :message, 2, "sass.embedded_protocol.Value.Number"
180
- optional :rgb_color, :message, 3, "sass.embedded_protocol.Value.RgbColor"
181
- optional :hsl_color, :message, 4, "sass.embedded_protocol.Value.HslColor"
182
- optional :list, :message, 5, "sass.embedded_protocol.Value.List"
183
- optional :map, :message, 6, "sass.embedded_protocol.Value.Map"
184
- optional :singleton, :enum, 7, "sass.embedded_protocol.SingletonValue"
185
- optional :compiler_function, :message, 8, "sass.embedded_protocol.Value.CompilerFunction"
186
- optional :host_function, :message, 9, "sass.embedded_protocol.Value.HostFunction"
187
- optional :argument_list, :message, 10, "sass.embedded_protocol.Value.ArgumentList"
188
- optional :hwb_color, :message, 11, "sass.embedded_protocol.Value.HwbColor"
189
- optional :calculation, :message, 12, "sass.embedded_protocol.Value.Calculation"
190
- end
191
- end
192
- add_message "sass.embedded_protocol.Value.String" do
193
- optional :text, :string, 1
194
- optional :quoted, :bool, 2
195
- end
196
- add_message "sass.embedded_protocol.Value.Number" do
197
- optional :value, :double, 1
198
- repeated :numerators, :string, 2
199
- repeated :denominators, :string, 3
200
- end
201
- add_message "sass.embedded_protocol.Value.RgbColor" do
202
- optional :red, :uint32, 1
203
- optional :green, :uint32, 2
204
- optional :blue, :uint32, 3
205
- optional :alpha, :double, 4
206
- end
207
- add_message "sass.embedded_protocol.Value.HslColor" do
208
- optional :hue, :double, 1
209
- optional :saturation, :double, 2
210
- optional :lightness, :double, 3
211
- optional :alpha, :double, 4
212
- end
213
- add_message "sass.embedded_protocol.Value.HwbColor" do
214
- optional :hue, :double, 1
215
- optional :whiteness, :double, 2
216
- optional :blackness, :double, 3
217
- optional :alpha, :double, 4
218
- end
219
- add_message "sass.embedded_protocol.Value.List" do
220
- optional :separator, :enum, 1, "sass.embedded_protocol.ListSeparator"
221
- optional :has_brackets, :bool, 2
222
- repeated :contents, :message, 3, "sass.embedded_protocol.Value"
223
- end
224
- add_message "sass.embedded_protocol.Value.Map" do
225
- repeated :entries, :message, 1, "sass.embedded_protocol.Value.Map.Entry"
226
- end
227
- add_message "sass.embedded_protocol.Value.Map.Entry" do
228
- optional :key, :message, 1, "sass.embedded_protocol.Value"
229
- optional :value, :message, 2, "sass.embedded_protocol.Value"
230
- end
231
- add_message "sass.embedded_protocol.Value.CompilerFunction" do
232
- optional :id, :uint32, 1
233
- end
234
- add_message "sass.embedded_protocol.Value.HostFunction" do
235
- optional :id, :uint32, 1
236
- optional :signature, :string, 2
237
- end
238
- add_message "sass.embedded_protocol.Value.ArgumentList" do
239
- optional :id, :uint32, 1
240
- optional :separator, :enum, 2, "sass.embedded_protocol.ListSeparator"
241
- repeated :contents, :message, 3, "sass.embedded_protocol.Value"
242
- map :keywords, :string, :message, 4, "sass.embedded_protocol.Value"
243
- end
244
- add_message "sass.embedded_protocol.Value.Calculation" do
245
- optional :name, :string, 1
246
- repeated :arguments, :message, 2, "sass.embedded_protocol.Value.Calculation.CalculationValue"
247
- end
248
- add_message "sass.embedded_protocol.Value.Calculation.CalculationValue" do
249
- oneof :value do
250
- optional :number, :message, 1, "sass.embedded_protocol.Value.Number"
251
- optional :string, :string, 2
252
- optional :interpolation, :string, 3
253
- optional :operation, :message, 4, "sass.embedded_protocol.Value.Calculation.CalculationOperation"
254
- optional :calculation, :message, 5, "sass.embedded_protocol.Value.Calculation"
255
- end
256
- end
257
- add_message "sass.embedded_protocol.Value.Calculation.CalculationOperation" do
258
- optional :operator, :enum, 1, "sass.embedded_protocol.CalculationOperator"
259
- optional :left, :message, 2, "sass.embedded_protocol.Value.Calculation.CalculationValue"
260
- optional :right, :message, 3, "sass.embedded_protocol.Value.Calculation.CalculationValue"
261
- end
262
- add_enum "sass.embedded_protocol.OutputStyle" do
263
- value :EXPANDED, 0
264
- value :COMPRESSED, 1
265
- end
266
- add_enum "sass.embedded_protocol.Syntax" do
267
- value :SCSS, 0
268
- value :INDENTED, 1
269
- value :CSS, 2
270
- end
271
- add_enum "sass.embedded_protocol.LogEventType" do
272
- value :WARNING, 0
273
- value :DEPRECATION_WARNING, 1
274
- value :DEBUG, 2
275
- end
276
- add_enum "sass.embedded_protocol.ProtocolErrorType" do
277
- value :PARSE, 0
278
- value :PARAMS, 1
279
- value :INTERNAL, 2
280
- end
281
- add_enum "sass.embedded_protocol.ListSeparator" do
282
- value :COMMA, 0
283
- value :SPACE, 1
284
- value :SLASH, 2
285
- value :UNDECIDED, 3
286
- end
287
- add_enum "sass.embedded_protocol.SingletonValue" do
288
- value :TRUE, 0
289
- value :FALSE, 1
290
- value :NULL, 2
291
- end
292
- add_enum "sass.embedded_protocol.CalculationOperator" do
293
- value :PLUS, 0
294
- value :MINUS, 1
295
- value :TIMES, 2
296
- value :DIVIDE, 3
7
+
8
+ descriptor_data = "\n\x13\x65mbedded_sass.proto\x12\x16sass.embedded_protocol\"\xd9\x0e\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\xc7\x05\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\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\x1aY\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\x42\n\n\x08importerB\x07\n\x05inputJ\x04\x08\x01\x10\x02\x1aL\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\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\x1aO\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\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\"\xb5\x0e\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\xbd\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(\tB\x07\n\x05_spanJ\x04\x08\x01\x10\x02\x1a^\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(\x08J\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\\\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(\x08J\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\"\xd4\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;\n\trgb_color\x18\x03 \x01(\x0b\x32&.sass.embedded_protocol.Value.RgbColorH\x00\x12;\n\thsl_color\x18\x04 \x01(\x0b\x32&.sass.embedded_protocol.Value.HslColorH\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\thwb_color\x18\x0b \x01(\x0b\x32&.sass.embedded_protocol.Value.HwbColorH\x00\x12@\n\x0b\x63\x61lculation\x18\x0c \x01(\x0b\x32).sass.embedded_protocol.Value.CalculationH\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\x43\n\x08RgbColor\x12\x0b\n\x03red\x18\x01 \x01(\r\x12\r\n\x05green\x18\x02 \x01(\r\x12\x0c\n\x04\x62lue\x18\x03 \x01(\r\x12\r\n\x05\x61lpha\x18\x04 \x01(\x01\x1aM\n\x08HslColor\x12\x0b\n\x03hue\x18\x01 \x01(\x01\x12\x12\n\nsaturation\x18\x02 \x01(\x01\x12\x11\n\tlightness\x18\x03 \x01(\x01\x12\r\n\x05\x61lpha\x18\x04 \x01(\x01\x1aL\n\x08HwbColor\x12\x0b\n\x03hue\x18\x01 \x01(\x01\x12\x11\n\twhiteness\x18\x02 \x01(\x01\x12\x11\n\tblackness\x18\x03 \x01(\x01\x12\r\n\x05\x61lpha\x18\x04 \x01(\x01\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\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*+\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\x62\x06proto3"
9
+
10
+ pool = Google::Protobuf::DescriptorPool.generated_pool
11
+
12
+ begin
13
+ pool.add_serialized_file(descriptor_data)
14
+ rescue TypeError => e
15
+ # Compatibility code: will be removed in the next major version.
16
+ require 'google/protobuf/descriptor_pb'
17
+ parsed = Google::Protobuf::FileDescriptorProto.decode(descriptor_data)
18
+ parsed.clear_dependency
19
+ serialized = parsed.class.encode(parsed)
20
+ file = pool.add_serialized_file(serialized)
21
+ warn "Warning: Protobuf detected an import path issue while loading generated file #{__FILE__}"
22
+ imports = [
23
+ ]
24
+ imports.each do |type_name, expected_filename|
25
+ import_file = pool.lookup(type_name).file_descriptor
26
+ if import_file.name != expected_filename
27
+ warn "- #{file.name} imports #{expected_filename}, but that import was loaded as #{import_file.name}"
297
28
  end
298
29
  end
30
+ warn "Each proto file must use a consistent fully-qualified name."
31
+ warn "This will become an error in the next major version."
299
32
  end
300
33
 
301
34
  module Sass
@@ -4,25 +4,27 @@ module Sass
4
4
  # An exception thrown because a Sass compilation failed.
5
5
  class CompileError < StandardError
6
6
  # @return [String, nil]
7
- attr_accessor :sass_stack
7
+ attr_reader :sass_stack
8
8
 
9
9
  # @return [Logger::SourceSpan, nil]
10
- attr_accessor :span
10
+ attr_reader :span
11
11
 
12
- def initialize(message, full_message, sass_stack, span)
12
+ # @return [Array<String>]
13
+ attr_reader :loaded_urls
14
+
15
+ def initialize(message, full_message, sass_stack, span, loaded_urls)
13
16
  super(message)
14
- @full_message = full_message == '' ? nil : full_message.dup
15
- @sass_stack = sass_stack == '' ? nil : sass_stack
17
+ @full_message = full_message
18
+ @sass_stack = sass_stack
16
19
  @span = span
20
+ @loaded_urls = loaded_urls
17
21
  end
18
22
 
19
23
  # @return [String]
20
24
  def full_message(...)
21
- if @full_message.nil?
22
- super(...)
23
- else
24
- @full_message
25
- end
25
+ return super(...) if @full_message.nil?
26
+
27
+ @full_message = +@full_message
26
28
  end
27
29
  end
28
30
  end
@@ -16,7 +16,7 @@ module Sass
16
16
 
17
17
  def initialize(css, source_map, loaded_urls)
18
18
  @css = css
19
- @source_map = source_map == '' ? nil : source_map
19
+ @source_map = source_map
20
20
  @loaded_urls = loaded_urls
21
21
  end
22
22
  end
data/lib/sass/elf.rb ADDED
@@ -0,0 +1,276 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Sass
4
+ # The {ELF} class.
5
+ #
6
+ # It parses ELF header to extract interpreter.
7
+ # @see https://github.com/torvalds/linux/blob/HEAD/include/uapi/linux/elf.h
8
+ # @see https://github.com/torvalds/linux/blob/HEAD/kernel/kexec_elf.c
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
28
+
29
+ # rubocop:enable Naming/ConstantName
30
+
31
+ # These constants are for the segment types stored in the image headers
32
+ PT_NULL = 0
33
+ PT_LOAD = 1
34
+ PT_DYNAMIC = 2
35
+ PT_INTERP = 3
36
+ PT_NOTE = 4
37
+ PT_SHLIB = 5
38
+ PT_PHDR = 6
39
+ PT_TLS = 7
40
+ PT_LOOS = 0x60000000
41
+ PT_HIOS = 0x6fffffff
42
+ PT_LOPROC = 0x70000000
43
+ 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
+
49
+ # These constants define the different elf file types
50
+ ET_NONE = 0
51
+ ET_REL = 1
52
+ ET_EXEC = 2
53
+ ET_DYN = 3
54
+ ET_CORE = 4
55
+ ET_LOPROC = 0xff00
56
+ ET_HIPROC = 0xffff
57
+
58
+ EI_NIDENT = 16
59
+
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
+ # e_ident[] indexes
121
+ EI_MAG0 = 0
122
+ EI_MAG1 = 1
123
+ EI_MAG2 = 2
124
+ EI_MAG3 = 3
125
+ EI_CLASS = 4
126
+ EI_DATA = 5
127
+ EI_VERSION = 6
128
+ EI_OSABI = 7
129
+ EI_PAD = 8
130
+
131
+ # EI_MAG
132
+ ELFMAG0 = 0x7f
133
+ ELFMAG1 = 'E'.ord
134
+ ELFMAG2 = 'L'.ord
135
+ ELFMAG3 = 'F'.ord
136
+ ELFMAG = [ELFMAG0, ELFMAG1, ELFMAG2, ELFMAG3].pack('C*')
137
+ SELFMAG = 4
138
+
139
+ # e_ident[EI_CLASS]
140
+ ELFCLASSNONE = 0
141
+ ELFCLASS32 = 1
142
+ ELFCLASS64 = 2
143
+ ELFCLASSNUM = 3
144
+
145
+ # e_ident[EI_DATA]
146
+ ELFDATANONE = 0
147
+ ELFDATA2LSB = 1
148
+ ELFDATA2MSB = 2
149
+
150
+ def initialize(buffer)
151
+ @buffer = buffer
152
+ @ehdr = read_ehdr
153
+ @buffer.seek(@ehdr[:e_phoff], :SET)
154
+ @proghdrs = Array.new(@ehdr[:e_phnum]) do
155
+ read_phdr
156
+ end
157
+ end
158
+
159
+ def relocatable?
160
+ @ehdr[:e_type] == ET_REL
161
+ end
162
+
163
+ def executable?
164
+ @ehdr[:e_type] == ET_EXEC
165
+ end
166
+
167
+ def shared_object?
168
+ @ehdr[:e_type] == ET_DYN
169
+ end
170
+
171
+ def core?
172
+ @ehdr[:e_type] == ET_CORE
173
+ end
174
+
175
+ def interpreter
176
+ phdr = @proghdrs.find { |p| p[:p_type] == PT_INTERP }
177
+ return if phdr.nil?
178
+
179
+ @buffer.seek(phdr[:p_offset], :SET)
180
+ interpreter = @buffer.read(phdr[:p_filesz])
181
+ raise ArgumentError unless interpreter.end_with?("\0")
182
+
183
+ interpreter.chomp!("\0")
184
+ end
185
+
186
+ private
187
+
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
257
+ end
258
+
259
+ INTERPRETER = begin
260
+ proc_self_exe = '/proc/self/exe'
261
+ if File.exist?(proc_self_exe)
262
+ File.open(proc_self_exe, 'rb') do |file|
263
+ elf = ELF.new(file)
264
+ interpreter = elf.interpreter
265
+ if interpreter.nil? && elf.shared_object?
266
+ File.readlink(proc_self_exe)
267
+ else
268
+ interpreter
269
+ end
270
+ end
271
+ end
272
+ end
273
+ end
274
+
275
+ private_constant :ELF
276
+ end
@@ -27,7 +27,7 @@ module Sass
27
27
  @mutex.synchronize do
28
28
  begin
29
29
  id = @dispatcher.subscribe(observer)
30
- rescue EOFError
30
+ rescue Errno::EBUSY
31
31
  @dispatcher = Dispatcher.new
32
32
  id = @dispatcher.subscribe(observer)
33
33
  end
@@ -48,8 +48,8 @@ module Sass
48
48
  @dispatcher.unsubscribe(id)
49
49
  end
50
50
 
51
- def send_message(...)
52
- @dispatcher.send_message(...)
51
+ def send_proto(...)
52
+ @dispatcher.send_proto(...)
53
53
  end
54
54
  end
55
55