packwerk 3.2.2 → 3.2.3

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.
Files changed (45) hide show
  1. checksums.yaml +4 -4
  2. data/lib/packwerk/application_validator.rb +2 -1
  3. data/lib/packwerk/graph.rb +15 -56
  4. data/lib/packwerk/reference_checking/checkers/dependency_checker.rb +1 -2
  5. data/lib/packwerk/run_context.rb +5 -0
  6. data/lib/packwerk/validators/dependency_validator.rb +5 -4
  7. data/lib/packwerk/version.rb +1 -1
  8. data/sorbet/rbi/gems/{actionpack@7.0.3.1.rbi → actionpack@7.0.8.7.rbi} +1338 -1227
  9. data/sorbet/rbi/gems/{actionview@7.0.3.1.rbi → actionview@7.0.8.7.rbi} +548 -503
  10. data/sorbet/rbi/gems/{activesupport@7.0.3.1.rbi → activesupport@7.0.8.7.rbi} +714 -635
  11. data/sorbet/rbi/gems/{better_html@2.0.1.rbi → better_html@2.1.1.rbi} +21 -21
  12. data/sorbet/rbi/gems/{concurrent-ruby@1.1.10.rbi → concurrent-ruby@1.3.5.rbi} +1390 -1366
  13. data/sorbet/rbi/gems/{constant_resolver@0.2.0.rbi → constant_resolver@0.3.0.rbi} +22 -13
  14. data/sorbet/rbi/gems/{erubi@1.11.0.rbi → erubi@1.13.1.rbi} +28 -17
  15. data/sorbet/rbi/gems/{i18n@1.12.0.rbi → i18n@1.14.7.rbi} +234 -172
  16. data/sorbet/rbi/gems/{json@2.6.2.rbi → json@2.7.2.rbi} +94 -74
  17. data/sorbet/rbi/gems/language_server-protocol@3.17.0.3.rbi +14237 -0
  18. data/sorbet/rbi/gems/{loofah@2.18.0.rbi → loofah@2.24.0.rbi} +470 -243
  19. data/sorbet/rbi/gems/{minitest@5.16.2.rbi → minitest@5.25.4.rbi} +577 -472
  20. data/sorbet/rbi/gems/{mocha@1.14.0.rbi → mocha@2.5.0.rbi} +468 -684
  21. data/sorbet/rbi/gems/{nokogiri@1.15.3.rbi → nokogiri@1.18.4.rbi} +1756 -869
  22. data/sorbet/rbi/gems/{parallel@1.24.0.rbi → parallel@1.25.1.rbi} +26 -20
  23. data/sorbet/rbi/gems/{racc@1.7.1.rbi → racc@1.8.1.rbi} +36 -36
  24. data/sorbet/rbi/gems/{rack-test@2.0.2.rbi → rack-test@2.2.0.rbi} +87 -114
  25. data/sorbet/rbi/gems/{rack@2.2.4.rbi → rack@2.2.13.rbi} +243 -195
  26. data/sorbet/rbi/gems/rails-dom-testing@2.2.0.rbi +754 -0
  27. data/sorbet/rbi/gems/rails-html-sanitizer@1.6.2.rbi +764 -0
  28. data/sorbet/rbi/gems/{railties@7.0.3.1.rbi → railties@7.0.8.7.rbi} +146 -140
  29. data/sorbet/rbi/gems/{regexp_parser@2.5.0.rbi → regexp_parser@2.9.2.rbi} +947 -542
  30. data/sorbet/rbi/gems/{rexml@3.2.5.rbi → rexml@3.3.9.rbi} +452 -312
  31. data/sorbet/rbi/gems/{rubocop-ast@1.21.0.rbi → rubocop-ast@1.31.3.rbi} +717 -588
  32. data/sorbet/rbi/gems/{rubocop@1.34.1.rbi → rubocop@1.64.1.rbi} +10916 -4406
  33. data/sorbet/rbi/gems/{ruby-progressbar@1.11.0.rbi → ruby-progressbar@1.13.0.rbi} +359 -281
  34. data/sorbet/rbi/gems/ruby2_keywords@0.0.5.rbi +8 -0
  35. data/sorbet/rbi/gems/{tzinfo@2.0.5.rbi → tzinfo@2.0.6.rbi} +144 -141
  36. data/sorbet/rbi/gems/{unicode-display_width@2.2.0.rbi → unicode-display_width@2.5.0.rbi} +24 -7
  37. metadata +36 -41
  38. data/sorbet/rbi/gems/language_server-protocol@3.16.0.3.rbi +0 -8
  39. data/sorbet/rbi/gems/prettier_print@0.1.0.rbi +0 -8
  40. data/sorbet/rbi/gems/rails-dom-testing@2.0.3.rbi +0 -455
  41. data/sorbet/rbi/gems/rails-html-sanitizer@1.4.3.rbi +0 -542
  42. data/sorbet/rbi/gems/ruby-lsp@0.2.3.rbi +0 -11
  43. data/sorbet/rbi/gems/syntax_tree@3.3.0.rbi +0 -8
  44. /data/sorbet/rbi/gems/{builder@3.2.4.rbi → builder@3.3.0.rbi} +0 -0
  45. /data/sorbet/rbi/gems/{parser@3.3.1.0.rbi → parser@3.3.3.0.rbi} +0 -0
@@ -0,0 +1,764 @@
1
+ # typed: true
2
+
3
+ # DO NOT EDIT MANUALLY
4
+ # This is an autogenerated file for types exported from the `rails-html-sanitizer` gem.
5
+ # Please instead update this file by running `bin/tapioca gem rails-html-sanitizer`.
6
+
7
+ # source://rails-html-sanitizer//lib/rails-html-sanitizer.rb#14
8
+ module ActionView
9
+ class << self
10
+ # source://actionview/7.0.8.7/lib/action_view.rb#90
11
+ def eager_load!; end
12
+
13
+ # source://actionview/7.0.8.7/lib/action_view/gem_version.rb#5
14
+ def gem_version; end
15
+
16
+ # source://actionview/7.0.8.7/lib/action_view/version.rb#7
17
+ def version; end
18
+ end
19
+ end
20
+
21
+ # source://rails-html-sanitizer//lib/rails-html-sanitizer.rb#15
22
+ module ActionView::Helpers
23
+ include ::ActionView::Helpers::SanitizeHelper
24
+ include ::ActionView::Helpers::TextHelper
25
+ include ::ActionView::Helpers::UrlHelper
26
+ include ::ActionView::Helpers::SanitizeHelper
27
+ include ::ActionView::Helpers::TextHelper
28
+ include ::ActionView::Helpers::FormTagHelper
29
+ include ::ActionView::Helpers::FormHelper
30
+ include ::ActionView::Helpers::TranslationHelper
31
+
32
+ mixes_in_class_methods ::ActionView::Helpers::UrlHelper::ClassMethods
33
+ mixes_in_class_methods ::ActionView::Helpers::SanitizeHelper::ClassMethods
34
+
35
+ class << self
36
+ # source://actionview/7.0.8.7/lib/action_view/helpers.rb#34
37
+ def eager_load!; end
38
+ end
39
+ end
40
+
41
+ # source://rails-html-sanitizer//lib/rails-html-sanitizer.rb#16
42
+ module ActionView::Helpers::SanitizeHelper
43
+ mixes_in_class_methods ::ActionView::Helpers::SanitizeHelper::ClassMethods
44
+
45
+ # source://actionview/7.0.8.7/lib/action_view/helpers/sanitize_helper.rb#81
46
+ def sanitize(html, options = T.unsafe(nil)); end
47
+
48
+ # source://actionview/7.0.8.7/lib/action_view/helpers/sanitize_helper.rb#86
49
+ def sanitize_css(style); end
50
+
51
+ # source://actionview/7.0.8.7/lib/action_view/helpers/sanitize_helper.rb#120
52
+ def strip_links(html); end
53
+
54
+ # source://actionview/7.0.8.7/lib/action_view/helpers/sanitize_helper.rb#103
55
+ def strip_tags(html); end
56
+ end
57
+
58
+ # source://rails-html-sanitizer//lib/rails-html-sanitizer.rb#17
59
+ module ActionView::Helpers::SanitizeHelper::ClassMethods
60
+ # source://actionview/7.0.8.7/lib/action_view/helpers/sanitize_helper.rb#145
61
+ def full_sanitizer; end
62
+
63
+ # source://actionview/7.0.8.7/lib/action_view/helpers/sanitize_helper.rb#125
64
+ def full_sanitizer=(_arg0); end
65
+
66
+ # source://actionview/7.0.8.7/lib/action_view/helpers/sanitize_helper.rb#155
67
+ def link_sanitizer; end
68
+
69
+ # source://actionview/7.0.8.7/lib/action_view/helpers/sanitize_helper.rb#125
70
+ def link_sanitizer=(_arg0); end
71
+
72
+ # source://actionview/7.0.8.7/lib/action_view/helpers/sanitize_helper.rb#165
73
+ def safe_list_sanitizer; end
74
+
75
+ # source://actionview/7.0.8.7/lib/action_view/helpers/sanitize_helper.rb#125
76
+ def safe_list_sanitizer=(_arg0); end
77
+
78
+ # source://actionview/7.0.8.7/lib/action_view/helpers/sanitize_helper.rb#135
79
+ def sanitized_allowed_attributes; end
80
+
81
+ # Replaces the allowed HTML attributes for the +sanitize+ helper.
82
+ #
83
+ # class Application < Rails::Application
84
+ # config.action_view.sanitized_allowed_attributes = ['onclick', 'longdesc']
85
+ # end
86
+ #
87
+ # source://rails-html-sanitizer//lib/rails-html-sanitizer.rb#34
88
+ def sanitized_allowed_attributes=(attributes); end
89
+
90
+ # source://rails-html-sanitizer//lib/rails-html-sanitizer.rb#47
91
+ def sanitized_allowed_css_keywords; end
92
+
93
+ # source://rails-html-sanitizer//lib/rails-html-sanitizer.rb#48
94
+ def sanitized_allowed_css_keywords=(_); end
95
+
96
+ # source://rails-html-sanitizer//lib/rails-html-sanitizer.rb#47
97
+ def sanitized_allowed_css_properties; end
98
+
99
+ # source://rails-html-sanitizer//lib/rails-html-sanitizer.rb#48
100
+ def sanitized_allowed_css_properties=(_); end
101
+
102
+ # source://rails-html-sanitizer//lib/rails-html-sanitizer.rb#47
103
+ def sanitized_allowed_protocols; end
104
+
105
+ # source://rails-html-sanitizer//lib/rails-html-sanitizer.rb#48
106
+ def sanitized_allowed_protocols=(_); end
107
+
108
+ # source://actionview/7.0.8.7/lib/action_view/helpers/sanitize_helper.rb#131
109
+ def sanitized_allowed_tags; end
110
+
111
+ # Replaces the allowed tags for the +sanitize+ helper.
112
+ #
113
+ # class Application < Rails::Application
114
+ # config.action_view.sanitized_allowed_tags = 'table', 'tr', 'td'
115
+ # end
116
+ #
117
+ # source://rails-html-sanitizer//lib/rails-html-sanitizer.rb#24
118
+ def sanitized_allowed_tags=(tags); end
119
+
120
+ # source://rails-html-sanitizer//lib/rails-html-sanitizer.rb#47
121
+ def sanitized_bad_tags; end
122
+
123
+ # source://rails-html-sanitizer//lib/rails-html-sanitizer.rb#48
124
+ def sanitized_bad_tags=(_); end
125
+
126
+ # source://rails-html-sanitizer//lib/rails-html-sanitizer.rb#47
127
+ def sanitized_protocol_separator; end
128
+
129
+ # source://rails-html-sanitizer//lib/rails-html-sanitizer.rb#48
130
+ def sanitized_protocol_separator=(_); end
131
+
132
+ # source://rails-html-sanitizer//lib/rails-html-sanitizer.rb#47
133
+ def sanitized_shorthand_css_properties; end
134
+
135
+ # source://rails-html-sanitizer//lib/rails-html-sanitizer.rb#48
136
+ def sanitized_shorthand_css_properties=(_); end
137
+
138
+ # source://rails-html-sanitizer//lib/rails-html-sanitizer.rb#47
139
+ def sanitized_uri_attributes; end
140
+
141
+ # source://rails-html-sanitizer//lib/rails-html-sanitizer.rb#48
142
+ def sanitized_uri_attributes=(_); end
143
+
144
+ # source://actionview/7.0.8.7/lib/action_view/helpers/sanitize_helper.rb#127
145
+ def sanitizer_vendor; end
146
+
147
+ private
148
+
149
+ # source://rails-html-sanitizer//lib/rails-html-sanitizer.rb#52
150
+ def deprecate_option(name); end
151
+ end
152
+
153
+ # source://rails-html-sanitizer//lib/rails/html/sanitizer/version.rb#3
154
+ module Rails
155
+ class << self
156
+ # source://railties/7.0.8.7/lib/rails.rb#38
157
+ def app_class; end
158
+
159
+ # source://railties/7.0.8.7/lib/rails.rb#38
160
+ def app_class=(_arg0); end
161
+
162
+ # source://railties/7.0.8.7/lib/rails.rb#39
163
+ def application; end
164
+
165
+ # source://railties/7.0.8.7/lib/rails.rb#37
166
+ def application=(_arg0); end
167
+
168
+ # source://railties/7.0.8.7/lib/rails.rb#123
169
+ def autoloaders; end
170
+
171
+ # source://railties/7.0.8.7/lib/rails.rb#50
172
+ def backtrace_cleaner; end
173
+
174
+ # source://railties/7.0.8.7/lib/rails.rb#38
175
+ def cache; end
176
+
177
+ # source://railties/7.0.8.7/lib/rails.rb#38
178
+ def cache=(_arg0); end
179
+
180
+ # source://railties/7.0.8.7/lib/rails.rb#46
181
+ def configuration; end
182
+
183
+ # source://railties/7.0.8.7/lib/rails.rb#72
184
+ def env; end
185
+
186
+ # source://railties/7.0.8.7/lib/rails.rb#79
187
+ def env=(environment); end
188
+
189
+ # source://railties/7.0.8.7/lib/rails.rb#90
190
+ def error; end
191
+
192
+ # source://railties/7.0.8.7/lib/rails/gem_version.rb#5
193
+ def gem_version; end
194
+
195
+ # source://railties/7.0.8.7/lib/rails.rb#103
196
+ def groups(*groups); end
197
+
198
+ # source://railties/7.0.8.7/lib/rails.rb#43
199
+ def initialize!(*_arg0, **_arg1, &_arg2); end
200
+
201
+ # source://railties/7.0.8.7/lib/rails.rb#43
202
+ def initialized?(*_arg0, **_arg1, &_arg2); end
203
+
204
+ # source://railties/7.0.8.7/lib/rails.rb#38
205
+ def logger; end
206
+
207
+ # source://railties/7.0.8.7/lib/rails.rb#38
208
+ def logger=(_arg0); end
209
+
210
+ # source://railties/7.0.8.7/lib/rails.rb#119
211
+ def public_path; end
212
+
213
+ # source://railties/7.0.8.7/lib/rails.rb#63
214
+ def root; end
215
+
216
+ # source://railties/7.0.8.7/lib/rails/version.rb#7
217
+ def version; end
218
+ end
219
+ end
220
+
221
+ # source://rails-html-sanitizer//lib/rails/html/sanitizer/version.rb#4
222
+ module Rails::HTML; end
223
+
224
+ # source://rails-html-sanitizer//lib/rails/html/sanitizer.rb#194
225
+ module Rails::HTML4; end
226
+
227
+ # == Rails::HTML4::FullSanitizer
228
+ #
229
+ # Removes all tags from HTML4 but strips out scripts, forms and comments.
230
+ #
231
+ # full_sanitizer = Rails::HTML4::FullSanitizer.new
232
+ # full_sanitizer.sanitize("<b>Bold</b> no more! <a href='more.html'>See more here</a>...")
233
+ # # => "Bold no more! See more here..."
234
+ #
235
+ # source://rails-html-sanitizer//lib/rails/html/sanitizer.rb#225
236
+ class Rails::HTML4::FullSanitizer < ::Rails::HTML::Sanitizer
237
+ include ::Rails::HTML::Concern::ComposedSanitize
238
+ include ::Rails::HTML::Concern::Parser::HTML4
239
+ include ::Rails::HTML::Concern::Scrubber::Full
240
+ include ::Rails::HTML::Concern::Serializer::UTF8Encode
241
+ end
242
+
243
+ # == Rails::HTML4::LinkSanitizer
244
+ #
245
+ # Removes +a+ tags and +href+ attributes from HTML4 leaving only the link text.
246
+ #
247
+ # link_sanitizer = Rails::HTML4::LinkSanitizer.new
248
+ # link_sanitizer.sanitize('<a href="example.com">Only the link text will be kept.</a>')
249
+ # # => "Only the link text will be kept."
250
+ #
251
+ # source://rails-html-sanitizer//lib/rails/html/sanitizer.rb#240
252
+ class Rails::HTML4::LinkSanitizer < ::Rails::HTML::Sanitizer
253
+ include ::Rails::HTML::Concern::ComposedSanitize
254
+ include ::Rails::HTML::Concern::Parser::HTML4
255
+ include ::Rails::HTML::Concern::Scrubber::Link
256
+ include ::Rails::HTML::Concern::Serializer::UTF8Encode
257
+ end
258
+
259
+ # == Rails::HTML4::SafeListSanitizer
260
+ #
261
+ # Sanitizes HTML4 and CSS from an extensive safe list.
262
+ #
263
+ # === Whitespace
264
+ #
265
+ # We can't make any guarantees about whitespace being kept or stripped. Loofah uses Nokogiri,
266
+ # which wraps either a C or Java parser for the respective Ruby implementation. Those two
267
+ # parsers determine how whitespace is ultimately handled.
268
+ #
269
+ # When the stripped markup will be rendered the users browser won't take whitespace into account
270
+ # anyway. It might be better to suggest your users wrap their whitespace sensitive content in
271
+ # pre tags or that you do so automatically.
272
+ #
273
+ # === Options
274
+ #
275
+ # Sanitizes both html and css via the safe lists found in
276
+ # Rails::HTML::Concern::Scrubber::SafeList
277
+ #
278
+ # SafeListSanitizer also accepts options to configure the safe list used when sanitizing html.
279
+ # There's a class level option:
280
+ #
281
+ # Rails::HTML4::SafeListSanitizer.allowed_tags = %w(table tr td)
282
+ # Rails::HTML4::SafeListSanitizer.allowed_attributes = %w(id class style)
283
+ #
284
+ # Tags and attributes can also be passed to +sanitize+. Passed options take precedence over the
285
+ # class level options.
286
+ #
287
+ # === Examples
288
+ #
289
+ # safe_list_sanitizer = Rails::HTML4::SafeListSanitizer.new
290
+ #
291
+ # # default: sanitize via a extensive safe list of allowed elements
292
+ # safe_list_sanitizer.sanitize(@article.body)
293
+ #
294
+ # # sanitize via the supplied tags and attributes
295
+ # safe_list_sanitizer.sanitize(
296
+ # @article.body,
297
+ # tags: %w(table tr td),
298
+ # attributes: %w(id class style),
299
+ # )
300
+ #
301
+ # # sanitize via a custom Loofah scrubber
302
+ # safe_list_sanitizer.sanitize(@article.body, scrubber: ArticleScrubber.new)
303
+ #
304
+ # # prune nodes from the tree instead of stripping tags and leaving inner content
305
+ # safe_list_sanitizer = Rails::HTML4::SafeListSanitizer.new(prune: true)
306
+ #
307
+ # # the sanitizer can also sanitize CSS
308
+ # safe_list_sanitizer.sanitize_css('background-color: #000;')
309
+ #
310
+ # source://rails-html-sanitizer//lib/rails/html/sanitizer.rb#298
311
+ class Rails::HTML4::SafeListSanitizer < ::Rails::HTML::Sanitizer
312
+ include ::Rails::HTML::Concern::ComposedSanitize
313
+ include ::Rails::HTML::Concern::Parser::HTML4
314
+ include ::Rails::HTML::Concern::Scrubber::SafeList
315
+ include ::Rails::HTML::Concern::Serializer::UTF8Encode
316
+
317
+ class << self
318
+ # source://rails-html-sanitizer//lib/rails/html/sanitizer.rb#145
319
+ def allowed_attributes; end
320
+
321
+ # source://rails-html-sanitizer//lib/rails/html/sanitizer.rb#145
322
+ def allowed_attributes=(_arg0); end
323
+
324
+ # source://rails-html-sanitizer//lib/rails/html/sanitizer.rb#144
325
+ def allowed_tags; end
326
+
327
+ # source://rails-html-sanitizer//lib/rails/html/sanitizer.rb#144
328
+ def allowed_tags=(_arg0); end
329
+ end
330
+ end
331
+
332
+ # source://rails-html-sanitizer//lib/rails/html/sanitizer.rb#195
333
+ module Rails::HTML4::Sanitizer
334
+ extend ::Rails::HTML4::Sanitizer::VendorMethods
335
+ end
336
+
337
+ # source://rails-html-sanitizer//lib/rails/html/sanitizer.rb#196
338
+ module Rails::HTML4::Sanitizer::VendorMethods
339
+ # source://rails-html-sanitizer//lib/rails/html/sanitizer.rb#197
340
+ def full_sanitizer; end
341
+
342
+ # source://rails-html-sanitizer//lib/rails/html/sanitizer.rb#201
343
+ def link_sanitizer; end
344
+
345
+ # source://rails-html-sanitizer//lib/rails/html/sanitizer.rb#205
346
+ def safe_list_sanitizer; end
347
+
348
+ # source://rails-html-sanitizer//lib/rails/html/sanitizer.rb#209
349
+ def white_list_sanitizer; end
350
+ end
351
+
352
+ # source://rails-html-sanitizer//lib/rails/html/sanitizer.rb#306
353
+ module Rails::HTML5; end
354
+
355
+ # == Rails::HTML5::FullSanitizer
356
+ #
357
+ # Removes all tags from HTML5 but strips out scripts, forms and comments.
358
+ #
359
+ # full_sanitizer = Rails::HTML5::FullSanitizer.new
360
+ # full_sanitizer.sanitize("<b>Bold</b> no more! <a href='more.html'>See more here</a>...")
361
+ # # => "Bold no more! See more here..."
362
+ #
363
+ # source://rails-html-sanitizer//lib/rails/html/sanitizer.rb#335
364
+ class Rails::HTML5::FullSanitizer < ::Rails::HTML::Sanitizer
365
+ include ::Rails::HTML::Concern::ComposedSanitize
366
+ include ::Rails::HTML::Concern::Parser::HTML5
367
+ include ::Rails::HTML::Concern::Scrubber::Full
368
+ include ::Rails::HTML::Concern::Serializer::UTF8Encode
369
+ end
370
+
371
+ # == Rails::HTML5::LinkSanitizer
372
+ #
373
+ # Removes +a+ tags and +href+ attributes from HTML5 leaving only the link text.
374
+ #
375
+ # link_sanitizer = Rails::HTML5::LinkSanitizer.new
376
+ # link_sanitizer.sanitize('<a href="example.com">Only the link text will be kept.</a>')
377
+ # # => "Only the link text will be kept."
378
+ #
379
+ # source://rails-html-sanitizer//lib/rails/html/sanitizer.rb#350
380
+ class Rails::HTML5::LinkSanitizer < ::Rails::HTML::Sanitizer
381
+ include ::Rails::HTML::Concern::ComposedSanitize
382
+ include ::Rails::HTML::Concern::Parser::HTML5
383
+ include ::Rails::HTML::Concern::Scrubber::Link
384
+ include ::Rails::HTML::Concern::Serializer::UTF8Encode
385
+ end
386
+
387
+ # == Rails::HTML5::SafeListSanitizer
388
+ #
389
+ # Sanitizes HTML5 and CSS from an extensive safe list.
390
+ #
391
+ # === Whitespace
392
+ #
393
+ # We can't make any guarantees about whitespace being kept or stripped. Loofah uses Nokogiri,
394
+ # which wraps either a C or Java parser for the respective Ruby implementation. Those two
395
+ # parsers determine how whitespace is ultimately handled.
396
+ #
397
+ # When the stripped markup will be rendered the users browser won't take whitespace into account
398
+ # anyway. It might be better to suggest your users wrap their whitespace sensitive content in
399
+ # pre tags or that you do so automatically.
400
+ #
401
+ # === Options
402
+ #
403
+ # Sanitizes both html and css via the safe lists found in
404
+ # Rails::HTML::Concern::Scrubber::SafeList
405
+ #
406
+ # SafeListSanitizer also accepts options to configure the safe list used when sanitizing html.
407
+ # There's a class level option:
408
+ #
409
+ # Rails::HTML5::SafeListSanitizer.allowed_tags = %w(table tr td)
410
+ # Rails::HTML5::SafeListSanitizer.allowed_attributes = %w(id class style)
411
+ #
412
+ # Tags and attributes can also be passed to +sanitize+. Passed options take precedence over the
413
+ # class level options.
414
+ #
415
+ # === Examples
416
+ #
417
+ # safe_list_sanitizer = Rails::HTML5::SafeListSanitizer.new
418
+ #
419
+ # # default: sanitize via a extensive safe list of allowed elements
420
+ # safe_list_sanitizer.sanitize(@article.body)
421
+ #
422
+ # # sanitize via the supplied tags and attributes
423
+ # safe_list_sanitizer.sanitize(
424
+ # @article.body,
425
+ # tags: %w(table tr td),
426
+ # attributes: %w(id class style),
427
+ # )
428
+ #
429
+ # # sanitize via a custom Loofah scrubber
430
+ # safe_list_sanitizer.sanitize(@article.body, scrubber: ArticleScrubber.new)
431
+ #
432
+ # # prune nodes from the tree instead of stripping tags and leaving inner content
433
+ # safe_list_sanitizer = Rails::HTML5::SafeListSanitizer.new(prune: true)
434
+ #
435
+ # # the sanitizer can also sanitize CSS
436
+ # safe_list_sanitizer.sanitize_css('background-color: #000;')
437
+ #
438
+ # source://rails-html-sanitizer//lib/rails/html/sanitizer.rb#408
439
+ class Rails::HTML5::SafeListSanitizer < ::Rails::HTML::Sanitizer
440
+ include ::Rails::HTML::Concern::ComposedSanitize
441
+ include ::Rails::HTML::Concern::Parser::HTML5
442
+ include ::Rails::HTML::Concern::Scrubber::SafeList
443
+ include ::Rails::HTML::Concern::Serializer::UTF8Encode
444
+
445
+ class << self
446
+ # source://rails-html-sanitizer//lib/rails/html/sanitizer.rb#145
447
+ def allowed_attributes; end
448
+
449
+ # source://rails-html-sanitizer//lib/rails/html/sanitizer.rb#145
450
+ def allowed_attributes=(_arg0); end
451
+
452
+ # source://rails-html-sanitizer//lib/rails/html/sanitizer.rb#144
453
+ def allowed_tags; end
454
+
455
+ # source://rails-html-sanitizer//lib/rails/html/sanitizer.rb#144
456
+ def allowed_tags=(_arg0); end
457
+ end
458
+ end
459
+
460
+ # source://rails-html-sanitizer//lib/rails/html/sanitizer.rb#307
461
+ class Rails::HTML5::Sanitizer
462
+ class << self
463
+ # source://rails-html-sanitizer//lib/rails/html/sanitizer.rb#309
464
+ def full_sanitizer; end
465
+
466
+ # source://rails-html-sanitizer//lib/rails/html/sanitizer.rb#313
467
+ def link_sanitizer; end
468
+
469
+ # source://rails-html-sanitizer//lib/rails/html/sanitizer.rb#317
470
+ def safe_list_sanitizer; end
471
+
472
+ # source://rails-html-sanitizer//lib/rails/html/sanitizer.rb#321
473
+ def white_list_sanitizer; end
474
+ end
475
+ end
476
+
477
+ # source://rails-html-sanitizer//lib/rails/html/sanitizer.rb#33
478
+ module Rails::HTML::Concern; end
479
+
480
+ # source://rails-html-sanitizer//lib/rails/html/sanitizer.rb#34
481
+ module Rails::HTML::Concern::ComposedSanitize
482
+ # source://rails-html-sanitizer//lib/rails/html/sanitizer.rb#35
483
+ def sanitize(html, options = T.unsafe(nil)); end
484
+ end
485
+
486
+ # source://rails-html-sanitizer//lib/rails/html/sanitizer.rb#43
487
+ module Rails::HTML::Concern::Parser; end
488
+
489
+ # source://rails-html-sanitizer//lib/rails/html/sanitizer.rb#44
490
+ module Rails::HTML::Concern::Parser::HTML4
491
+ # source://rails-html-sanitizer//lib/rails/html/sanitizer.rb#45
492
+ def parse_fragment(html); end
493
+ end
494
+
495
+ # source://rails-html-sanitizer//lib/rails/html/sanitizer.rb#50
496
+ module Rails::HTML::Concern::Parser::HTML5
497
+ # source://rails-html-sanitizer//lib/rails/html/sanitizer.rb#51
498
+ def parse_fragment(html); end
499
+ end
500
+
501
+ # source://rails-html-sanitizer//lib/rails/html/sanitizer.rb#57
502
+ module Rails::HTML::Concern::Scrubber; end
503
+
504
+ # source://rails-html-sanitizer//lib/rails/html/sanitizer.rb#58
505
+ module Rails::HTML::Concern::Scrubber::Full
506
+ # source://rails-html-sanitizer//lib/rails/html/sanitizer.rb#59
507
+ def scrub(fragment, options = T.unsafe(nil)); end
508
+ end
509
+
510
+ # source://rails-html-sanitizer//lib/rails/html/sanitizer.rb#64
511
+ module Rails::HTML::Concern::Scrubber::Link
512
+ # source://rails-html-sanitizer//lib/rails/html/sanitizer.rb#65
513
+ def initialize; end
514
+
515
+ # source://rails-html-sanitizer//lib/rails/html/sanitizer.rb#72
516
+ def scrub(fragment, options = T.unsafe(nil)); end
517
+ end
518
+
519
+ # source://rails-html-sanitizer//lib/rails/html/sanitizer.rb#77
520
+ module Rails::HTML::Concern::Scrubber::SafeList
521
+ # source://rails-html-sanitizer//lib/rails/html/sanitizer.rb#152
522
+ def initialize(prune: T.unsafe(nil)); end
523
+
524
+ # source://rails-html-sanitizer//lib/rails/html/sanitizer.rb#169
525
+ def sanitize_css(style_string); end
526
+
527
+ # source://rails-html-sanitizer//lib/rails/html/sanitizer.rb#156
528
+ def scrub(fragment, options = T.unsafe(nil)); end
529
+
530
+ private
531
+
532
+ # source://rails-html-sanitizer//lib/rails/html/sanitizer.rb#178
533
+ def allowed_attributes(options); end
534
+
535
+ # source://rails-html-sanitizer//lib/rails/html/sanitizer.rb#174
536
+ def allowed_tags(options); end
537
+
538
+ class << self
539
+ # @private
540
+ #
541
+ # source://rails-html-sanitizer//lib/rails/html/sanitizer.rb#142
542
+ def included(klass); end
543
+ end
544
+ end
545
+
546
+ # The default safe list for attributes
547
+ #
548
+ # source://rails-html-sanitizer//lib/rails/html/sanitizer.rb#126
549
+ Rails::HTML::Concern::Scrubber::SafeList::DEFAULT_ALLOWED_ATTRIBUTES = T.let(T.unsafe(nil), Set)
550
+
551
+ # The default safe list for tags
552
+ #
553
+ # source://rails-html-sanitizer//lib/rails/html/sanitizer.rb#79
554
+ Rails::HTML::Concern::Scrubber::SafeList::DEFAULT_ALLOWED_TAGS = T.let(T.unsafe(nil), Set)
555
+
556
+ # source://rails-html-sanitizer//lib/rails/html/sanitizer.rb#184
557
+ module Rails::HTML::Concern::Serializer; end
558
+
559
+ # source://rails-html-sanitizer//lib/rails/html/sanitizer.rb#185
560
+ module Rails::HTML::Concern::Serializer::UTF8Encode
561
+ # source://rails-html-sanitizer//lib/rails/html/sanitizer.rb#186
562
+ def serialize(fragment); end
563
+ end
564
+
565
+ # source://rails-html-sanitizer//lib/rails/html/sanitizer.rb#418
566
+ Rails::HTML::FullSanitizer = Rails::HTML4::FullSanitizer
567
+
568
+ # source://rails-html-sanitizer//lib/rails/html/sanitizer.rb#419
569
+ Rails::HTML::LinkSanitizer = Rails::HTML4::LinkSanitizer
570
+
571
+ # === Rails::HTML::PermitScrubber
572
+ #
573
+ # +Rails::HTML::PermitScrubber+ allows you to permit only your own tags and/or attributes.
574
+ #
575
+ # +Rails::HTML::PermitScrubber+ can be subclassed to determine:
576
+ # - When a node should be skipped via +skip_node?+.
577
+ # - When a node is allowed via +allowed_node?+.
578
+ # - When an attribute should be scrubbed via +scrub_attribute?+.
579
+ #
580
+ # Subclasses don't need to worry if tags or attributes are set or not.
581
+ # If tags or attributes are not set, Loofah's behavior will be used.
582
+ # If you override +allowed_node?+ and no tags are set, it will not be called.
583
+ # Instead Loofahs behavior will be used.
584
+ # Likewise for +scrub_attribute?+ and attributes respectively.
585
+ #
586
+ # Text and CDATA nodes are skipped by default.
587
+ # Unallowed elements will be stripped, i.e. element is removed but its subtree kept.
588
+ # Supplied tags and attributes should be Enumerables.
589
+ #
590
+ # +tags=+
591
+ # If set, elements excluded will be stripped.
592
+ # If not, elements are stripped based on Loofahs +HTML5::Scrub.allowed_element?+.
593
+ #
594
+ # +attributes=+
595
+ # If set, attributes excluded will be removed.
596
+ # If not, attributes are removed based on Loofahs +HTML5::Scrub.scrub_attributes+.
597
+ #
598
+ # class CommentScrubber < Rails::HTML::PermitScrubber
599
+ # def initialize
600
+ # super
601
+ # self.tags = %w(form script comment blockquote)
602
+ # end
603
+ #
604
+ # def skip_node?(node)
605
+ # node.text?
606
+ # end
607
+ #
608
+ # def scrub_attribute?(name)
609
+ # name == "style"
610
+ # end
611
+ # end
612
+ #
613
+ # See the documentation for +Nokogiri::XML::Node+ to understand what's possible
614
+ # with nodes: https://nokogiri.org/rdoc/Nokogiri/XML/Node.html
615
+ #
616
+ # source://rails-html-sanitizer//lib/rails/html/scrubbers.rb#49
617
+ class Rails::HTML::PermitScrubber < ::Loofah::Scrubber
618
+ # @return [PermitScrubber] a new instance of PermitScrubber
619
+ #
620
+ # source://rails-html-sanitizer//lib/rails/html/scrubbers.rb#52
621
+ def initialize(prune: T.unsafe(nil)); end
622
+
623
+ # Returns the value of attribute attributes.
624
+ #
625
+ # source://rails-html-sanitizer//lib/rails/html/scrubbers.rb#50
626
+ def attributes; end
627
+
628
+ # source://rails-html-sanitizer//lib/rails/html/scrubbers.rb#62
629
+ def attributes=(attributes); end
630
+
631
+ # Returns the value of attribute prune.
632
+ #
633
+ # source://rails-html-sanitizer//lib/rails/html/scrubbers.rb#50
634
+ def prune; end
635
+
636
+ # source://rails-html-sanitizer//lib/rails/html/scrubbers.rb#66
637
+ def scrub(node); end
638
+
639
+ # Returns the value of attribute tags.
640
+ #
641
+ # source://rails-html-sanitizer//lib/rails/html/scrubbers.rb#50
642
+ def tags; end
643
+
644
+ # source://rails-html-sanitizer//lib/rails/html/scrubbers.rb#58
645
+ def tags=(tags); end
646
+
647
+ protected
648
+
649
+ # @return [Boolean]
650
+ #
651
+ # source://rails-html-sanitizer//lib/rails/html/scrubbers.rb#83
652
+ def allowed_node?(node); end
653
+
654
+ # @return [Boolean]
655
+ #
656
+ # source://rails-html-sanitizer//lib/rails/html/scrubbers.rb#95
657
+ def keep_node?(node); end
658
+
659
+ # source://rails-html-sanitizer//lib/rails/html/scrubbers.rb#162
660
+ def scrub_attribute(node, attr_node); end
661
+
662
+ # @return [Boolean]
663
+ #
664
+ # source://rails-html-sanitizer//lib/rails/html/scrubbers.rb#91
665
+ def scrub_attribute?(name); end
666
+
667
+ # source://rails-html-sanitizer//lib/rails/html/scrubbers.rb#112
668
+ def scrub_attributes(node); end
669
+
670
+ # source://rails-html-sanitizer//lib/rails/html/scrubbers.rb#128
671
+ def scrub_css_attribute(node); end
672
+
673
+ # source://rails-html-sanitizer//lib/rails/html/scrubbers.rb#103
674
+ def scrub_node(node); end
675
+
676
+ # @return [Boolean]
677
+ #
678
+ # source://rails-html-sanitizer//lib/rails/html/scrubbers.rb#87
679
+ def skip_node?(node); end
680
+
681
+ # source://rails-html-sanitizer//lib/rails/html/scrubbers.rb#137
682
+ def validate!(var, name); end
683
+ end
684
+
685
+ # source://rails-html-sanitizer//lib/rails/html/sanitizer.rb#420
686
+ Rails::HTML::SafeListSanitizer = Rails::HTML4::SafeListSanitizer
687
+
688
+ # source://rails-html-sanitizer//lib/rails/html/sanitizer/version.rb#5
689
+ class Rails::HTML::Sanitizer
690
+ extend ::Rails::HTML4::Sanitizer::VendorMethods
691
+
692
+ # @raise [NotImplementedError]
693
+ #
694
+ # source://rails-html-sanitizer//lib/rails/html/sanitizer.rb#18
695
+ def sanitize(html, options = T.unsafe(nil)); end
696
+
697
+ private
698
+
699
+ # source://rails-html-sanitizer//lib/rails/html/sanitizer.rb#28
700
+ def properly_encode(fragment, options); end
701
+
702
+ # source://rails-html-sanitizer//lib/rails/html/sanitizer.rb#23
703
+ def remove_xpaths(node, xpaths); end
704
+
705
+ class << self
706
+ # source://rails-html-sanitizer//lib/rails/html/sanitizer.rb#13
707
+ def best_supported_vendor; end
708
+
709
+ # @return [Boolean]
710
+ #
711
+ # source://rails-html-sanitizer//lib/rails/html/sanitizer.rb#7
712
+ def html5_support?; end
713
+ end
714
+ end
715
+
716
+ # source://rails-html-sanitizer//lib/rails/html/sanitizer/version.rb#6
717
+ Rails::HTML::Sanitizer::VERSION = T.let(T.unsafe(nil), String)
718
+
719
+ # === Rails::HTML::TargetScrubber
720
+ #
721
+ # Where +Rails::HTML::PermitScrubber+ picks out tags and attributes to permit in
722
+ # sanitization, +Rails::HTML::TargetScrubber+ targets them for removal.
723
+ #
724
+ # +tags=+
725
+ # If set, elements included will be stripped.
726
+ #
727
+ # +attributes=+
728
+ # If set, attributes included will be removed.
729
+ #
730
+ # source://rails-html-sanitizer//lib/rails/html/scrubbers.rb#195
731
+ class Rails::HTML::TargetScrubber < ::Rails::HTML::PermitScrubber
732
+ # @return [Boolean]
733
+ #
734
+ # source://rails-html-sanitizer//lib/rails/html/scrubbers.rb#196
735
+ def allowed_node?(node); end
736
+
737
+ # @return [Boolean]
738
+ #
739
+ # source://rails-html-sanitizer//lib/rails/html/scrubbers.rb#200
740
+ def scrub_attribute?(name); end
741
+ end
742
+
743
+ # === Rails::HTML::TextOnlyScrubber
744
+ #
745
+ # +Rails::HTML::TextOnlyScrubber+ allows you to permit text nodes.
746
+ #
747
+ # Unallowed elements will be stripped, i.e. element is removed but its subtree kept.
748
+ #
749
+ # source://rails-html-sanitizer//lib/rails/html/scrubbers.rb#210
750
+ class Rails::HTML::TextOnlyScrubber < ::Loofah::Scrubber
751
+ # @return [TextOnlyScrubber] a new instance of TextOnlyScrubber
752
+ #
753
+ # source://rails-html-sanitizer//lib/rails/html/scrubbers.rb#211
754
+ def initialize; end
755
+
756
+ # source://rails-html-sanitizer//lib/rails/html/scrubbers.rb#215
757
+ def scrub(node); end
758
+ end
759
+
760
+ # source://rails-html-sanitizer//lib/rails/html/sanitizer.rb#421
761
+ Rails::HTML::WhiteListSanitizer = Rails::HTML4::SafeListSanitizer
762
+
763
+ # source://rails-html-sanitizer//lib/rails-html-sanitizer.rb#11
764
+ Rails::Html = Rails::HTML