packwerk 2.2.0 → 2.2.2

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