packwerk 2.2.0 → 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 (187) 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 +201 -175
  7. data/README.md +1 -1
  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_validator.rb +7 -6
  19. data/lib/packwerk/association_inspector.rb +17 -15
  20. data/lib/packwerk/cache.rb +36 -29
  21. data/lib/packwerk/cli.rb +5 -6
  22. data/lib/packwerk/const_node_inspector.rb +8 -7
  23. data/lib/packwerk/constant_name_inspector.rb +2 -2
  24. data/lib/packwerk/deprecated_references.rb +34 -19
  25. data/lib/packwerk/file_processor.rb +14 -14
  26. data/lib/packwerk/files_for_processing.rb +27 -31
  27. data/lib/packwerk/formatters/offenses_formatter.rb +3 -3
  28. data/lib/packwerk/formatters/progress_formatter.rb +2 -2
  29. data/lib/packwerk/node.rb +1 -294
  30. data/lib/packwerk/node_helpers.rb +335 -0
  31. data/lib/packwerk/node_processor.rb +6 -5
  32. data/lib/packwerk/node_processor_factory.rb +3 -3
  33. data/lib/packwerk/node_visitor.rb +1 -1
  34. data/lib/packwerk/offense_collection.rb +6 -3
  35. data/lib/packwerk/offenses_formatter.rb +2 -2
  36. data/lib/packwerk/package.rb +3 -0
  37. data/lib/packwerk/package_set.rb +2 -0
  38. data/lib/packwerk/parse_run.rb +15 -13
  39. data/lib/packwerk/parsed_constant_definitions.rb +23 -20
  40. data/lib/packwerk/parsers/erb.rb +3 -3
  41. data/lib/packwerk/reference_checking/checkers/checker.rb +16 -3
  42. data/lib/packwerk/reference_checking/checkers/dependency_checker.rb +16 -0
  43. data/lib/packwerk/reference_checking/checkers/privacy_checker.rb +18 -0
  44. data/lib/packwerk/reference_checking/reference_checker.rb +3 -1
  45. data/lib/packwerk/reference_extractor.rb +51 -48
  46. data/lib/packwerk/reference_offense.rb +3 -27
  47. data/lib/packwerk/run_context.rb +3 -3
  48. data/lib/packwerk/spring_command.rb +1 -1
  49. data/lib/packwerk/version.rb +1 -1
  50. data/lib/packwerk.rb +1 -0
  51. data/packwerk.gemspec +4 -12
  52. data/sorbet/rbi/gems/actioncable@7.0.3.1.rbi +2754 -0
  53. data/sorbet/rbi/gems/actionmailbox@7.0.3.1.rbi +1496 -0
  54. data/sorbet/rbi/gems/actionmailer@7.0.3.1.rbi +2362 -0
  55. data/sorbet/rbi/gems/actionpack@7.0.3.1.rbi +19397 -0
  56. data/sorbet/rbi/gems/actiontext@7.0.3.1.rbi +1569 -0
  57. data/sorbet/rbi/gems/actionview@7.0.3.1.rbi +14907 -0
  58. data/sorbet/rbi/gems/activejob@7.0.3.1.rbi +2553 -0
  59. data/sorbet/rbi/gems/activemodel@7.0.3.1.rbi +5999 -0
  60. data/sorbet/rbi/gems/activerecord@7.0.3.1.rbi +37832 -0
  61. data/sorbet/rbi/gems/activestorage@7.0.3.1.rbi +2321 -0
  62. data/sorbet/rbi/gems/activesupport@7.0.3.1.rbi +18818 -0
  63. data/sorbet/rbi/gems/concurrent-ruby@1.1.10.rbi +11722 -0
  64. data/sorbet/rbi/gems/constant_resolver@0.2.0.rbi +90 -0
  65. data/sorbet/rbi/gems/diff-lcs@1.5.0.rbi +1079 -0
  66. data/sorbet/rbi/gems/digest@3.1.0.rbi +189 -0
  67. data/sorbet/rbi/gems/erubi@1.11.0.rbi +140 -0
  68. data/sorbet/rbi/gems/globalid@1.0.0.rbi +572 -0
  69. data/sorbet/rbi/gems/i18n@1.12.0.rbi +2296 -0
  70. data/sorbet/rbi/gems/json@2.6.2.rbi +1548 -0
  71. data/sorbet/rbi/gems/language_server-protocol@3.16.0.3.rbi +8 -0
  72. data/sorbet/rbi/gems/loofah@2.18.0.rbi +877 -0
  73. data/sorbet/rbi/gems/m@1.6.0.rbi +257 -0
  74. data/sorbet/rbi/gems/marcel@1.0.2.rbi +220 -0
  75. data/sorbet/rbi/gems/mini_mime@1.1.2.rbi +170 -0
  76. data/sorbet/rbi/gems/mini_portile2@2.8.0.rbi +8 -0
  77. data/sorbet/rbi/gems/minitest-focus@1.3.1.rbi +104 -0
  78. data/sorbet/rbi/gems/minitest@5.16.2.rbi +2136 -0
  79. data/sorbet/rbi/gems/mocha@1.14.0.rbi +4177 -0
  80. data/sorbet/rbi/gems/net-imap@0.2.3.rbi +2147 -0
  81. data/sorbet/rbi/gems/net-pop@0.1.1.rbi +926 -0
  82. data/sorbet/rbi/gems/net-protocol@0.1.3.rbi +11 -0
  83. data/sorbet/rbi/gems/net-smtp@0.3.1.rbi +1108 -0
  84. data/sorbet/rbi/gems/netrc@0.11.0.rbi +153 -0
  85. data/sorbet/rbi/gems/nio4r@2.5.8.rbi +292 -0
  86. data/sorbet/rbi/gems/nokogiri@1.13.8.rbi +6478 -0
  87. data/sorbet/rbi/gems/parallel@1.22.1.rbi +277 -0
  88. data/sorbet/rbi/gems/parser@3.1.2.1.rbi +9029 -0
  89. data/sorbet/rbi/gems/prettier_print@0.1.0.rbi +8 -0
  90. data/sorbet/rbi/gems/pry@0.14.1.rbi +8 -0
  91. data/sorbet/rbi/gems/racc@1.6.0.rbi +152 -0
  92. data/sorbet/rbi/gems/rack-test@2.0.2.rbi +953 -0
  93. data/sorbet/rbi/gems/rack@2.2.4.rbi +5636 -0
  94. data/sorbet/rbi/gems/rails-html-sanitizer@1.4.3.rbi +688 -0
  95. data/sorbet/rbi/gems/rails@7.0.3.1.rbi +8 -0
  96. data/sorbet/rbi/gems/railties@7.0.3.1.rbi +3507 -0
  97. data/sorbet/rbi/gems/rainbow@3.1.1.rbi +392 -0
  98. data/sorbet/rbi/gems/rake@13.0.6.rbi +2924 -0
  99. data/sorbet/rbi/gems/rbi@0.0.15.rbi +3007 -0
  100. data/sorbet/rbi/gems/regexp_parser@2.5.0.rbi +3383 -0
  101. data/sorbet/rbi/gems/rexml@3.2.5.rbi +4714 -0
  102. data/sorbet/rbi/gems/rubocop-ast@1.21.0.rbi +6961 -0
  103. data/sorbet/rbi/gems/rubocop-performance@1.14.3.rbi +2986 -0
  104. data/sorbet/rbi/gems/{rubocop-shopify@2.0.1.rbi → rubocop-shopify@2.9.0.rbi} +4 -4
  105. data/sorbet/rbi/gems/rubocop-sorbet@0.6.11.rbi +992 -0
  106. data/sorbet/rbi/gems/rubocop@1.34.1.rbi +51820 -0
  107. data/sorbet/rbi/gems/ruby-lsp@0.2.1.rbi +11 -0
  108. data/sorbet/rbi/gems/smart_properties@1.17.0.rbi +474 -0
  109. data/sorbet/rbi/gems/spoom@1.1.11.rbi +2181 -0
  110. data/sorbet/rbi/gems/spring@4.0.0.rbi +411 -0
  111. data/sorbet/rbi/gems/strscan@3.0.4.rbi +8 -0
  112. data/sorbet/rbi/gems/syntax_tree@3.3.0.rbi +8 -0
  113. data/sorbet/rbi/gems/tapioca@0.9.2.rbi +3181 -0
  114. data/sorbet/rbi/gems/thor@1.2.1.rbi +3956 -0
  115. data/sorbet/rbi/gems/timeout@0.3.0.rbi +142 -0
  116. data/sorbet/rbi/gems/tzinfo@2.0.5.rbi +5896 -0
  117. data/sorbet/rbi/gems/unicode-display_width@2.2.0.rbi +48 -0
  118. data/sorbet/rbi/gems/unparser@0.6.5.rbi +4529 -0
  119. data/sorbet/rbi/gems/webrick@1.7.0.rbi +2582 -0
  120. data/sorbet/rbi/gems/websocket-driver@0.7.5.rbi +993 -0
  121. data/sorbet/rbi/gems/yard-sorbet@0.6.1.rbi +388 -0
  122. data/sorbet/rbi/gems/yard@0.9.28.rbi +18242 -0
  123. data/sorbet/rbi/gems/zeitwerk@2.6.0.rbi +867 -0
  124. data/sorbet/rbi/shims/psych.rbi +5 -0
  125. data/sorbet/tapioca/require.rb +2 -3
  126. metadata +88 -157
  127. data/.github/probots.yml +0 -2
  128. data/library.yml +0 -6
  129. data/service.yml +0 -1
  130. data/sorbet/rbi/gems/actioncable@7.0.0.alpha-d612542336d9a61381311c95a27d801bb4094779.rbi +0 -860
  131. data/sorbet/rbi/gems/actionmailbox@7.0.0.alpha-d612542336d9a61381311c95a27d801bb4094779.rbi +0 -568
  132. data/sorbet/rbi/gems/actionmailer@7.0.0.alpha-d612542336d9a61381311c95a27d801bb4094779.rbi +0 -587
  133. data/sorbet/rbi/gems/actionpack@7.0.0.alpha-d612542336d9a61381311c95a27d801bb4094779.rbi +0 -5314
  134. data/sorbet/rbi/gems/actiontext@7.0.0.alpha-d612542336d9a61381311c95a27d801bb4094779.rbi +0 -699
  135. data/sorbet/rbi/gems/actionview@7.0.0.alpha-d612542336d9a61381311c95a27d801bb4094779.rbi +0 -2515
  136. data/sorbet/rbi/gems/activejob@7.0.0.alpha-d612542336d9a61381311c95a27d801bb4094779.rbi +0 -624
  137. data/sorbet/rbi/gems/activemodel@7.0.0.alpha-d612542336d9a61381311c95a27d801bb4094779.rbi +0 -1248
  138. data/sorbet/rbi/gems/activerecord@7.0.0.alpha-d612542336d9a61381311c95a27d801bb4094779.rbi +0 -8363
  139. data/sorbet/rbi/gems/activestorage@7.0.0.alpha-d612542336d9a61381311c95a27d801bb4094779.rbi +0 -876
  140. data/sorbet/rbi/gems/activesupport@7.0.0.alpha-d612542336d9a61381311c95a27d801bb4094779.rbi +0 -3987
  141. data/sorbet/rbi/gems/colorize@0.8.1.rbi +0 -40
  142. data/sorbet/rbi/gems/commander@4.5.2.rbi +0 -8
  143. data/sorbet/rbi/gems/concurrent-ruby@1.1.8.rbi +0 -1969
  144. data/sorbet/rbi/gems/constant_resolver@0.1.5.rbi +0 -26
  145. data/sorbet/rbi/gems/erubi@1.10.0.rbi +0 -41
  146. data/sorbet/rbi/gems/globalid@0.4.2.rbi +0 -178
  147. data/sorbet/rbi/gems/highline@2.0.3.rbi +0 -8
  148. data/sorbet/rbi/gems/i18n@1.8.10.rbi +0 -600
  149. data/sorbet/rbi/gems/loofah@2.9.0.rbi +0 -274
  150. data/sorbet/rbi/gems/m@1.5.1.rbi +0 -108
  151. data/sorbet/rbi/gems/marcel@1.0.0.rbi +0 -70
  152. data/sorbet/rbi/gems/mini_mime@1.0.3.rbi +0 -71
  153. data/sorbet/rbi/gems/minitest-focus@1.2.1.rbi +0 -8
  154. data/sorbet/rbi/gems/minitest@5.14.4.rbi +0 -544
  155. data/sorbet/rbi/gems/mocha@1.12.0.rbi +0 -953
  156. data/sorbet/rbi/gems/nio4r@2.5.7.rbi +0 -90
  157. data/sorbet/rbi/gems/nokogiri@1.11.2.rbi +0 -1647
  158. data/sorbet/rbi/gems/parallel@1.20.1.rbi +0 -117
  159. data/sorbet/rbi/gems/parlour@6.0.0.rbi +0 -1272
  160. data/sorbet/rbi/gems/parser@3.0.0.0.rbi +0 -1745
  161. data/sorbet/rbi/gems/pry@0.14.0.rbi +0 -8
  162. data/sorbet/rbi/gems/psych@3.3.2.rbi +0 -24
  163. data/sorbet/rbi/gems/racc@1.5.2.rbi +0 -57
  164. data/sorbet/rbi/gems/rack-test@1.1.0.rbi +0 -335
  165. data/sorbet/rbi/gems/rack@2.2.3.rbi +0 -1718
  166. data/sorbet/rbi/gems/rails-html-sanitizer@1.3.0.rbi +0 -213
  167. data/sorbet/rbi/gems/rails@7.0.0.alpha-d612542336d9a61381311c95a27d801bb4094779.rbi +0 -8
  168. data/sorbet/rbi/gems/railties@7.0.0.alpha-d612542336d9a61381311c95a27d801bb4094779.rbi +0 -880
  169. data/sorbet/rbi/gems/rainbow@3.0.0.rbi +0 -155
  170. data/sorbet/rbi/gems/rake@13.0.3.rbi +0 -837
  171. data/sorbet/rbi/gems/regexp_parser@2.1.1.rbi +0 -8
  172. data/sorbet/rbi/gems/rexml@3.2.4.rbi +0 -8
  173. data/sorbet/rbi/gems/rubocop-ast@1.4.1.rbi +0 -8
  174. data/sorbet/rbi/gems/rubocop-performance@1.10.2.rbi +0 -8
  175. data/sorbet/rbi/gems/rubocop-sorbet@0.6.1.rbi +0 -8
  176. data/sorbet/rbi/gems/rubocop@1.12.0.rbi +0 -8
  177. data/sorbet/rbi/gems/smart_properties@1.15.0.rbi +0 -168
  178. data/sorbet/rbi/gems/spoom@1.1.0.rbi +0 -1061
  179. data/sorbet/rbi/gems/spring@2.1.1.rbi +0 -160
  180. data/sorbet/rbi/gems/sprockets-rails@3.2.2.rbi +0 -451
  181. data/sorbet/rbi/gems/sprockets@4.0.2.rbi +0 -1133
  182. data/sorbet/rbi/gems/tapioca@0.4.19.rbi +0 -603
  183. data/sorbet/rbi/gems/thor@1.1.0.rbi +0 -893
  184. data/sorbet/rbi/gems/tzinfo@2.0.4.rbi +0 -566
  185. data/sorbet/rbi/gems/unicode-display_width@2.0.0.rbi +0 -8
  186. data/sorbet/rbi/gems/websocket-driver@0.7.3.rbi +0 -438
  187. 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