packwerk 2.1.1 → 2.2.1

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 (189) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/ci.yml +29 -20
  3. data/.github/workflows/cla.yml +22 -0
  4. data/.rubocop.yml +48 -19
  5. data/Gemfile +7 -2
  6. data/Gemfile.lock +204 -177
  7. data/README.md +7 -2
  8. data/RESOLVING_VIOLATIONS.md +81 -0
  9. data/Rakefile +1 -1
  10. data/USAGE.md +14 -5
  11. data/bin/m +1 -1
  12. data/bin/rake +1 -1
  13. data/bin/rubocop +1 -1
  14. data/bin/srb +1 -1
  15. data/bin/tapioca +1 -1
  16. data/gemfiles/Gemfile-rails-6-0 +1 -1
  17. data/gemfiles/Gemfile-rails-6-1 +22 -0
  18. data/lib/packwerk/application_load_paths.rb +12 -18
  19. data/lib/packwerk/application_validator.rb +7 -6
  20. data/lib/packwerk/association_inspector.rb +17 -15
  21. data/lib/packwerk/cache.rb +36 -29
  22. data/lib/packwerk/cli.rb +14 -8
  23. data/lib/packwerk/const_node_inspector.rb +8 -7
  24. data/lib/packwerk/constant_name_inspector.rb +2 -2
  25. data/lib/packwerk/deprecated_references.rb +34 -19
  26. data/lib/packwerk/file_processor.rb +25 -23
  27. data/lib/packwerk/files_for_processing.rb +33 -35
  28. data/lib/packwerk/formatters/offenses_formatter.rb +3 -3
  29. data/lib/packwerk/formatters/progress_formatter.rb +2 -2
  30. data/lib/packwerk/node.rb +1 -294
  31. data/lib/packwerk/node_helpers.rb +335 -0
  32. data/lib/packwerk/node_processor.rb +6 -5
  33. data/lib/packwerk/node_processor_factory.rb +3 -3
  34. data/lib/packwerk/node_visitor.rb +1 -1
  35. data/lib/packwerk/offense_collection.rb +6 -3
  36. data/lib/packwerk/offenses_formatter.rb +2 -2
  37. data/lib/packwerk/package.rb +3 -0
  38. data/lib/packwerk/package_set.rb +3 -1
  39. data/lib/packwerk/parse_run.rb +15 -13
  40. data/lib/packwerk/parsed_constant_definitions.rb +23 -20
  41. data/lib/packwerk/parsers/erb.rb +3 -3
  42. data/lib/packwerk/parsers/parser_interface.rb +2 -0
  43. data/lib/packwerk/reference_checking/checkers/checker.rb +16 -3
  44. data/lib/packwerk/reference_checking/checkers/dependency_checker.rb +16 -0
  45. data/lib/packwerk/reference_checking/checkers/privacy_checker.rb +18 -0
  46. data/lib/packwerk/reference_checking/reference_checker.rb +4 -4
  47. data/lib/packwerk/reference_extractor.rb +51 -54
  48. data/lib/packwerk/reference_offense.rb +3 -27
  49. data/lib/packwerk/run_context.rb +9 -7
  50. data/lib/packwerk/spring_command.rb +1 -1
  51. data/lib/packwerk/version.rb +1 -1
  52. data/lib/packwerk.rb +1 -0
  53. data/packwerk.gemspec +4 -11
  54. data/sorbet/rbi/gems/actioncable@7.0.3.1.rbi +2754 -0
  55. data/sorbet/rbi/gems/actionmailbox@7.0.3.1.rbi +1496 -0
  56. data/sorbet/rbi/gems/actionmailer@7.0.3.1.rbi +2362 -0
  57. data/sorbet/rbi/gems/actionpack@7.0.3.1.rbi +19397 -0
  58. data/sorbet/rbi/gems/actiontext@7.0.3.1.rbi +1569 -0
  59. data/sorbet/rbi/gems/actionview@7.0.3.1.rbi +14907 -0
  60. data/sorbet/rbi/gems/activejob@7.0.3.1.rbi +2553 -0
  61. data/sorbet/rbi/gems/activemodel@7.0.3.1.rbi +5999 -0
  62. data/sorbet/rbi/gems/activerecord@7.0.3.1.rbi +37832 -0
  63. data/sorbet/rbi/gems/activestorage@7.0.3.1.rbi +2321 -0
  64. data/sorbet/rbi/gems/activesupport@7.0.3.1.rbi +18818 -0
  65. data/sorbet/rbi/gems/concurrent-ruby@1.1.10.rbi +11722 -0
  66. data/sorbet/rbi/gems/constant_resolver@0.2.0.rbi +90 -0
  67. data/sorbet/rbi/gems/diff-lcs@1.5.0.rbi +1079 -0
  68. data/sorbet/rbi/gems/digest@3.1.0.rbi +189 -0
  69. data/sorbet/rbi/gems/erubi@1.11.0.rbi +140 -0
  70. data/sorbet/rbi/gems/globalid@1.0.0.rbi +572 -0
  71. data/sorbet/rbi/gems/i18n@1.12.0.rbi +2296 -0
  72. data/sorbet/rbi/gems/json@2.6.2.rbi +1548 -0
  73. data/sorbet/rbi/gems/language_server-protocol@3.16.0.3.rbi +8 -0
  74. data/sorbet/rbi/gems/loofah@2.18.0.rbi +877 -0
  75. data/sorbet/rbi/gems/m@1.6.0.rbi +257 -0
  76. data/sorbet/rbi/gems/marcel@1.0.2.rbi +220 -0
  77. data/sorbet/rbi/gems/mini_mime@1.1.2.rbi +170 -0
  78. data/sorbet/rbi/gems/mini_portile2@2.8.0.rbi +8 -0
  79. data/sorbet/rbi/gems/minitest-focus@1.3.1.rbi +104 -0
  80. data/sorbet/rbi/gems/minitest@5.16.2.rbi +2136 -0
  81. data/sorbet/rbi/gems/mocha@1.14.0.rbi +4177 -0
  82. data/sorbet/rbi/gems/net-imap@0.2.3.rbi +2147 -0
  83. data/sorbet/rbi/gems/net-pop@0.1.1.rbi +926 -0
  84. data/sorbet/rbi/gems/net-protocol@0.1.3.rbi +11 -0
  85. data/sorbet/rbi/gems/net-smtp@0.3.1.rbi +1108 -0
  86. data/sorbet/rbi/gems/netrc@0.11.0.rbi +153 -0
  87. data/sorbet/rbi/gems/nio4r@2.5.8.rbi +292 -0
  88. data/sorbet/rbi/gems/nokogiri@1.13.8.rbi +6478 -0
  89. data/sorbet/rbi/gems/parallel@1.22.1.rbi +277 -0
  90. data/sorbet/rbi/gems/parser@3.1.2.1.rbi +9029 -0
  91. data/sorbet/rbi/gems/prettier_print@0.1.0.rbi +8 -0
  92. data/sorbet/rbi/gems/pry@0.14.1.rbi +8 -0
  93. data/sorbet/rbi/gems/racc@1.6.0.rbi +152 -0
  94. data/sorbet/rbi/gems/rack-test@2.0.2.rbi +953 -0
  95. data/sorbet/rbi/gems/rack@2.2.4.rbi +5636 -0
  96. data/sorbet/rbi/gems/rails-html-sanitizer@1.4.3.rbi +688 -0
  97. data/sorbet/rbi/gems/rails@7.0.3.1.rbi +8 -0
  98. data/sorbet/rbi/gems/railties@7.0.3.1.rbi +3507 -0
  99. data/sorbet/rbi/gems/rainbow@3.1.1.rbi +392 -0
  100. data/sorbet/rbi/gems/rake@13.0.6.rbi +2924 -0
  101. data/sorbet/rbi/gems/rbi@0.0.15.rbi +3007 -0
  102. data/sorbet/rbi/gems/regexp_parser@2.5.0.rbi +3383 -0
  103. data/sorbet/rbi/gems/rexml@3.2.5.rbi +4714 -0
  104. data/sorbet/rbi/gems/rubocop-ast@1.21.0.rbi +6961 -0
  105. data/sorbet/rbi/gems/rubocop-performance@1.14.3.rbi +2986 -0
  106. data/sorbet/rbi/gems/{rubocop-shopify@2.0.1.rbi → rubocop-shopify@2.9.0.rbi} +4 -4
  107. data/sorbet/rbi/gems/rubocop-sorbet@0.6.11.rbi +992 -0
  108. data/sorbet/rbi/gems/rubocop@1.34.1.rbi +51820 -0
  109. data/sorbet/rbi/gems/ruby-lsp@0.2.1.rbi +11 -0
  110. data/sorbet/rbi/gems/smart_properties@1.17.0.rbi +474 -0
  111. data/sorbet/rbi/gems/spoom@1.1.11.rbi +2181 -0
  112. data/sorbet/rbi/gems/spring@4.0.0.rbi +411 -0
  113. data/sorbet/rbi/gems/strscan@3.0.4.rbi +8 -0
  114. data/sorbet/rbi/gems/syntax_tree@3.3.0.rbi +8 -0
  115. data/sorbet/rbi/gems/tapioca@0.9.2.rbi +3181 -0
  116. data/sorbet/rbi/gems/thor@1.2.1.rbi +3956 -0
  117. data/sorbet/rbi/gems/timeout@0.3.0.rbi +142 -0
  118. data/sorbet/rbi/gems/tzinfo@2.0.5.rbi +5896 -0
  119. data/sorbet/rbi/gems/unicode-display_width@2.2.0.rbi +48 -0
  120. data/sorbet/rbi/gems/unparser@0.6.5.rbi +4529 -0
  121. data/sorbet/rbi/gems/webrick@1.7.0.rbi +2582 -0
  122. data/sorbet/rbi/gems/websocket-driver@0.7.5.rbi +993 -0
  123. data/sorbet/rbi/gems/yard-sorbet@0.6.1.rbi +388 -0
  124. data/sorbet/rbi/gems/yard@0.9.28.rbi +18242 -0
  125. data/sorbet/rbi/gems/zeitwerk@2.6.0.rbi +867 -0
  126. data/sorbet/rbi/shims/psych.rbi +5 -0
  127. data/sorbet/tapioca/require.rb +2 -3
  128. metadata +88 -143
  129. data/.github/probots.yml +0 -2
  130. data/library.yml +0 -6
  131. data/service.yml +0 -1
  132. data/sorbet/rbi/gems/actioncable@7.0.0.alpha-d612542336d9a61381311c95a27d801bb4094779.rbi +0 -860
  133. data/sorbet/rbi/gems/actionmailbox@7.0.0.alpha-d612542336d9a61381311c95a27d801bb4094779.rbi +0 -568
  134. data/sorbet/rbi/gems/actionmailer@7.0.0.alpha-d612542336d9a61381311c95a27d801bb4094779.rbi +0 -587
  135. data/sorbet/rbi/gems/actionpack@7.0.0.alpha-d612542336d9a61381311c95a27d801bb4094779.rbi +0 -5314
  136. data/sorbet/rbi/gems/actiontext@7.0.0.alpha-d612542336d9a61381311c95a27d801bb4094779.rbi +0 -699
  137. data/sorbet/rbi/gems/actionview@7.0.0.alpha-d612542336d9a61381311c95a27d801bb4094779.rbi +0 -2515
  138. data/sorbet/rbi/gems/activejob@7.0.0.alpha-d612542336d9a61381311c95a27d801bb4094779.rbi +0 -624
  139. data/sorbet/rbi/gems/activemodel@7.0.0.alpha-d612542336d9a61381311c95a27d801bb4094779.rbi +0 -1248
  140. data/sorbet/rbi/gems/activerecord@7.0.0.alpha-d612542336d9a61381311c95a27d801bb4094779.rbi +0 -8363
  141. data/sorbet/rbi/gems/activestorage@7.0.0.alpha-d612542336d9a61381311c95a27d801bb4094779.rbi +0 -876
  142. data/sorbet/rbi/gems/activesupport@7.0.0.alpha-d612542336d9a61381311c95a27d801bb4094779.rbi +0 -3987
  143. data/sorbet/rbi/gems/colorize@0.8.1.rbi +0 -40
  144. data/sorbet/rbi/gems/commander@4.5.2.rbi +0 -8
  145. data/sorbet/rbi/gems/concurrent-ruby@1.1.8.rbi +0 -1969
  146. data/sorbet/rbi/gems/constant_resolver@0.1.5.rbi +0 -26
  147. data/sorbet/rbi/gems/erubi@1.10.0.rbi +0 -41
  148. data/sorbet/rbi/gems/globalid@0.4.2.rbi +0 -178
  149. data/sorbet/rbi/gems/highline@2.0.3.rbi +0 -8
  150. data/sorbet/rbi/gems/i18n@1.8.10.rbi +0 -600
  151. data/sorbet/rbi/gems/loofah@2.9.0.rbi +0 -274
  152. data/sorbet/rbi/gems/m@1.5.1.rbi +0 -108
  153. data/sorbet/rbi/gems/marcel@1.0.0.rbi +0 -70
  154. data/sorbet/rbi/gems/mini_mime@1.0.3.rbi +0 -71
  155. data/sorbet/rbi/gems/minitest-focus@1.2.1.rbi +0 -8
  156. data/sorbet/rbi/gems/minitest@5.14.4.rbi +0 -544
  157. data/sorbet/rbi/gems/mocha@1.12.0.rbi +0 -953
  158. data/sorbet/rbi/gems/nio4r@2.5.7.rbi +0 -90
  159. data/sorbet/rbi/gems/nokogiri@1.11.2.rbi +0 -1647
  160. data/sorbet/rbi/gems/parallel@1.20.1.rbi +0 -117
  161. data/sorbet/rbi/gems/parlour@6.0.0.rbi +0 -1272
  162. data/sorbet/rbi/gems/parser@3.0.0.0.rbi +0 -1745
  163. data/sorbet/rbi/gems/pry@0.14.0.rbi +0 -8
  164. data/sorbet/rbi/gems/psych@3.3.2.rbi +0 -24
  165. data/sorbet/rbi/gems/racc@1.5.2.rbi +0 -57
  166. data/sorbet/rbi/gems/rack-test@1.1.0.rbi +0 -335
  167. data/sorbet/rbi/gems/rack@2.2.3.rbi +0 -1718
  168. data/sorbet/rbi/gems/rails-html-sanitizer@1.3.0.rbi +0 -213
  169. data/sorbet/rbi/gems/rails@7.0.0.alpha-d612542336d9a61381311c95a27d801bb4094779.rbi +0 -8
  170. data/sorbet/rbi/gems/railties@7.0.0.alpha-d612542336d9a61381311c95a27d801bb4094779.rbi +0 -880
  171. data/sorbet/rbi/gems/rainbow@3.0.0.rbi +0 -155
  172. data/sorbet/rbi/gems/rake@13.0.3.rbi +0 -837
  173. data/sorbet/rbi/gems/regexp_parser@2.1.1.rbi +0 -8
  174. data/sorbet/rbi/gems/rexml@3.2.4.rbi +0 -8
  175. data/sorbet/rbi/gems/rubocop-ast@1.4.1.rbi +0 -8
  176. data/sorbet/rbi/gems/rubocop-performance@1.10.2.rbi +0 -8
  177. data/sorbet/rbi/gems/rubocop-sorbet@0.6.1.rbi +0 -8
  178. data/sorbet/rbi/gems/rubocop@1.12.0.rbi +0 -8
  179. data/sorbet/rbi/gems/smart_properties@1.15.0.rbi +0 -168
  180. data/sorbet/rbi/gems/spoom@1.1.0.rbi +0 -1061
  181. data/sorbet/rbi/gems/spring@2.1.1.rbi +0 -160
  182. data/sorbet/rbi/gems/sprockets-rails@3.2.2.rbi +0 -451
  183. data/sorbet/rbi/gems/sprockets@4.0.2.rbi +0 -1133
  184. data/sorbet/rbi/gems/tapioca@0.4.19.rbi +0 -603
  185. data/sorbet/rbi/gems/thor@1.1.0.rbi +0 -893
  186. data/sorbet/rbi/gems/tzinfo@2.0.4.rbi +0 -566
  187. data/sorbet/rbi/gems/unicode-display_width@2.0.0.rbi +0 -8
  188. data/sorbet/rbi/gems/websocket-driver@0.7.3.rbi +0 -438
  189. data/sorbet/rbi/gems/zeitwerk@2.4.2.rbi +0 -177
@@ -1,213 +0,0 @@
1
- # DO NOT EDIT MANUALLY
2
- # This is an autogenerated file for types exported from the `rails-html-sanitizer` gem.
3
- # Please instead update this file by running `dev typecheck update`.
4
-
5
- # typed: true
6
-
7
- module ActionView
8
- extend(::ActiveSupport::Autoload)
9
-
10
- class << self
11
- def eager_load!; end
12
- def gem_version; end
13
- def version; end
14
- end
15
- end
16
-
17
- ActionView::ENCODING_FLAG = T.let(T.unsafe(nil), String)
18
-
19
- module ActionView::Helpers
20
- include(::ActiveSupport::Benchmarkable)
21
- include(::ActionView::Helpers::ActiveModelHelper)
22
- include(::ActionView::Helpers::AssetUrlHelper)
23
- include(::ActionView::Helpers::AtomFeedHelper)
24
- include(::ActionView::Helpers::CacheHelper)
25
- include(::ActionView::Helpers::SanitizeHelper)
26
- include(::ActionView::Helpers::CaptureHelper)
27
- include(::ActionView::Helpers::ControllerHelper)
28
- include(::ActionView::Helpers::CspHelper)
29
- include(::ActionView::Helpers::CsrfHelper)
30
- include(::ActionView::Helpers::DateHelper)
31
- include(::ActionView::Helpers::OutputSafetyHelper)
32
- include(::ActionView::Helpers::TagHelper)
33
- include(::ActionView::Helpers::DebugHelper)
34
- include(::ActionView::Helpers::TextHelper)
35
- include(::ActionView::Helpers::FormOptionsHelper)
36
- include(::ActionView::Helpers::JavaScriptHelper)
37
- include(::ActionView::Helpers::NumberHelper)
38
- include(::ActionView::Helpers::RenderingHelper)
39
- extend(::ActiveSupport::Autoload)
40
- extend(::ActiveSupport::Concern)
41
-
42
- include(::ActionView::Helpers::TagHelper)
43
- include(::ActionView::Helpers::AssetTagHelper)
44
- include(::ActionView::Helpers::UrlHelper)
45
- include(::ActionView::Helpers::SanitizeHelper)
46
- include(::ActionView::Helpers::TextHelper)
47
- include(::ActionView::Helpers::FormTagHelper)
48
- include(::ActionView::Helpers::FormHelper)
49
- include(::ActionView::Helpers::TranslationHelper)
50
-
51
- class << self
52
- def eager_load!; end
53
- end
54
- end
55
-
56
- module ActionView::Helpers::SanitizeHelper
57
- extend(::ActiveSupport::Concern)
58
-
59
- mixes_in_class_methods(::ActionView::Helpers::SanitizeHelper::ClassMethods)
60
-
61
- def sanitize(html, options = T.unsafe(nil)); end
62
- def sanitize_css(style); end
63
- def strip_links(html); end
64
- def strip_tags(html); end
65
- end
66
-
67
- module ActionView::Helpers::SanitizeHelper::ClassMethods
68
- def full_sanitizer; end
69
- def full_sanitizer=(_); end
70
- def link_sanitizer; end
71
- def link_sanitizer=(_); end
72
- def safe_list_sanitizer; end
73
- def safe_list_sanitizer=(_); end
74
- def sanitized_allowed_attributes; end
75
- def sanitized_allowed_attributes=(attributes); end
76
- def sanitized_allowed_css_keywords; end
77
- def sanitized_allowed_css_keywords=(_); end
78
- def sanitized_allowed_css_properties; end
79
- def sanitized_allowed_css_properties=(_); end
80
- def sanitized_allowed_protocols; end
81
- def sanitized_allowed_protocols=(_); end
82
- def sanitized_allowed_tags; end
83
- def sanitized_allowed_tags=(tags); end
84
- def sanitized_bad_tags; end
85
- def sanitized_bad_tags=(_); end
86
- def sanitized_protocol_separator; end
87
- def sanitized_protocol_separator=(_); end
88
- def sanitized_shorthand_css_properties; end
89
- def sanitized_shorthand_css_properties=(_); end
90
- def sanitized_uri_attributes; end
91
- def sanitized_uri_attributes=(_); end
92
- def sanitizer_vendor; end
93
-
94
- private
95
-
96
- def deprecate_option(name); end
97
- end
98
-
99
- ActionView::TemplateError = ActionView::Template::Error
100
-
101
- module Rails
102
- extend(::ActiveSupport::Autoload)
103
-
104
- class << self
105
- def app_class; end
106
- def app_class=(_); end
107
- def application; end
108
- def application=(_); end
109
- def autoloaders; end
110
- def backtrace_cleaner; end
111
- def cache; end
112
- def cache=(_); end
113
- def configuration; end
114
- def env; end
115
- def env=(environment); end
116
- def gem_version; end
117
- def groups(*groups); end
118
- def initialize!(*args, &block); end
119
- def initialized?(*args, &block); end
120
- def logger; end
121
- def logger=(_); end
122
- def public_path; end
123
- def root; end
124
- def version; end
125
- end
126
- end
127
-
128
- module Rails::Html
129
- end
130
-
131
- class Rails::Html::FullSanitizer < ::Rails::Html::Sanitizer
132
- def sanitize(html, options = T.unsafe(nil)); end
133
- end
134
-
135
- class Rails::Html::LinkSanitizer < ::Rails::Html::Sanitizer
136
- def initialize; end
137
-
138
- def sanitize(html, options = T.unsafe(nil)); end
139
- end
140
-
141
- class Rails::Html::PermitScrubber < ::Loofah::Scrubber
142
- def initialize; end
143
-
144
- def attributes; end
145
- def attributes=(attributes); end
146
- def scrub(node); end
147
- def tags; end
148
- def tags=(tags); end
149
-
150
- protected
151
-
152
- def allowed_node?(node); end
153
- def keep_node?(node); end
154
- def scrub_attribute(node, attr_node); end
155
- def scrub_attribute?(name); end
156
- def scrub_attributes(node); end
157
- def scrub_css_attribute(node); end
158
- def scrub_node(node); end
159
- def skip_node?(node); end
160
- def validate!(var, name); end
161
- end
162
-
163
- class Rails::Html::SafeListSanitizer < ::Rails::Html::Sanitizer
164
- def initialize; end
165
-
166
- def sanitize(html, options = T.unsafe(nil)); end
167
- def sanitize_css(style_string); end
168
-
169
- private
170
-
171
- def allowed_attributes(options); end
172
- def allowed_tags(options); end
173
-
174
- class << self
175
- def allowed_attributes; end
176
- def allowed_attributes=(_); end
177
- def allowed_tags; end
178
- def allowed_tags=(_); end
179
- end
180
- end
181
-
182
- class Rails::Html::Sanitizer
183
- def sanitize(html, options = T.unsafe(nil)); end
184
-
185
- private
186
-
187
- def properly_encode(fragment, options); end
188
- def remove_xpaths(node, xpaths); end
189
-
190
- class << self
191
- def full_sanitizer; end
192
- def link_sanitizer; end
193
- def safe_list_sanitizer; end
194
- def white_list_sanitizer; end
195
- end
196
- end
197
-
198
- Rails::Html::Sanitizer::VERSION = T.let(T.unsafe(nil), String)
199
-
200
- class Rails::Html::TargetScrubber < ::Rails::Html::PermitScrubber
201
- def allowed_node?(node); end
202
- def scrub_attribute?(name); end
203
- end
204
-
205
- class Rails::Html::TextOnlyScrubber < ::Loofah::Scrubber
206
- def initialize; end
207
-
208
- def scrub(node); end
209
- end
210
-
211
- Rails::Html::WhiteListSanitizer = Rails::Html::SafeListSanitizer
212
-
213
- Rails::Html::XPATHS_TO_REMOVE = T.let(T.unsafe(nil), Array)
@@ -1,8 +0,0 @@
1
- # DO NOT EDIT MANUALLY
2
- # This is an autogenerated file for types exported from the `rails` gem.
3
- # Please instead update this file by running `bin/tapioca sync`.
4
-
5
- # typed: true
6
-
7
- # THIS IS AN EMPTY RBI FILE.
8
- # see https://github.com/Shopify/tapioca/blob/master/README.md#manual-gem-requires