packwerk 1.1.0 → 1.2.0

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 (124) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/ci.yml +14 -5
  3. data/.ruby-version +1 -1
  4. data/Gemfile +1 -1
  5. data/Gemfile.lock +129 -111
  6. data/README.md +8 -1
  7. data/USAGE.md +17 -16
  8. data/dev.yml +1 -1
  9. data/exe/packwerk +1 -1
  10. data/gemfiles/Gemfile-rails-6-0 +22 -0
  11. data/lib/packwerk/application_load_paths.rb +3 -2
  12. data/lib/packwerk/application_validator.rb +83 -67
  13. data/lib/packwerk/association_inspector.rb +23 -11
  14. data/lib/packwerk/checker.rb +4 -7
  15. data/lib/packwerk/cli.rb +32 -100
  16. data/lib/packwerk/configuration.rb +10 -2
  17. data/lib/packwerk/const_node_inspector.rb +13 -14
  18. data/lib/packwerk/constant_discovery.rb +2 -0
  19. data/lib/packwerk/constant_name_inspector.rb +0 -1
  20. data/lib/packwerk/dependency_checker.rb +12 -17
  21. data/lib/packwerk/deprecated_references.rb +7 -9
  22. data/lib/packwerk/file_processor.rb +0 -4
  23. data/lib/packwerk/formatters/offenses_formatter.rb +43 -0
  24. data/lib/packwerk/formatters/progress_formatter.rb +9 -4
  25. data/lib/packwerk/generators/configuration_file.rb +0 -1
  26. data/lib/packwerk/inflector.rb +0 -2
  27. data/lib/packwerk/node.rb +9 -2
  28. data/lib/packwerk/node_processor.rb +15 -32
  29. data/lib/packwerk/node_processor_factory.rb +0 -5
  30. data/lib/packwerk/node_visitor.rb +1 -4
  31. data/lib/packwerk/offense.rb +2 -8
  32. data/lib/packwerk/offense_collection.rb +84 -0
  33. data/lib/packwerk/offenses_formatter.rb +15 -0
  34. data/lib/packwerk/output_style.rb +20 -0
  35. data/lib/packwerk/output_styles/coloured.rb +29 -0
  36. data/lib/packwerk/output_styles/plain.rb +26 -0
  37. data/lib/packwerk/package.rb +8 -0
  38. data/lib/packwerk/package_set.rb +2 -3
  39. data/lib/packwerk/parse_run.rb +104 -0
  40. data/lib/packwerk/parsed_constant_definitions.rb +2 -4
  41. data/lib/packwerk/parsers/erb.rb +0 -2
  42. data/lib/packwerk/parsers/factory.rb +1 -3
  43. data/lib/packwerk/parsers.rb +0 -2
  44. data/lib/packwerk/privacy_checker.rb +22 -17
  45. data/lib/packwerk/reference_extractor.rb +0 -8
  46. data/lib/packwerk/reference_offense.rb +49 -0
  47. data/lib/packwerk/result.rb +9 -0
  48. data/lib/packwerk/run_context.rb +4 -21
  49. data/lib/packwerk/sanity_checker.rb +1 -3
  50. data/lib/packwerk/spring_command.rb +1 -1
  51. data/lib/packwerk/version.rb +1 -1
  52. data/lib/packwerk/violation_type.rb +0 -2
  53. data/lib/packwerk.rb +73 -34
  54. data/library.yml +1 -1
  55. data/packwerk.gemspec +1 -0
  56. data/service.yml +1 -4
  57. data/shipit.rubygems.yml +5 -1
  58. data/sorbet/rbi/gems/{actioncable@6.1.0.alpha-d80c18a391e33552ae2d943e68af56946f883f65.rbi → actioncable@7.0.0.alpha-d612542336d9a61381311c95a27d801bb4094779.rbi} +56 -36
  59. data/sorbet/rbi/gems/{actionmailbox@6.1.0.alpha-d80c18a391e33552ae2d943e68af56946f883f65.rbi → actionmailbox@7.0.0.alpha-d612542336d9a61381311c95a27d801bb4094779.rbi} +25 -28
  60. data/sorbet/rbi/gems/{actionmailer@6.1.0.alpha-d80c18a391e33552ae2d943e68af56946f883f65.rbi → actionmailer@7.0.0.alpha-d612542336d9a61381311c95a27d801bb4094779.rbi} +43 -24
  61. data/sorbet/rbi/gems/{actionpack@6.1.0.alpha-d80c18a391e33552ae2d943e68af56946f883f65.rbi → actionpack@7.0.0.alpha-d612542336d9a61381311c95a27d801bb4094779.rbi} +382 -284
  62. data/sorbet/rbi/gems/{actiontext@6.1.0.alpha-d80c18a391e33552ae2d943e68af56946f883f65.rbi → actiontext@7.0.0.alpha-d612542336d9a61381311c95a27d801bb4094779.rbi} +76 -40
  63. data/sorbet/rbi/gems/{actionview@6.1.0.alpha-d80c18a391e33552ae2d943e68af56946f883f65.rbi → actionview@7.0.0.alpha-d612542336d9a61381311c95a27d801bb4094779.rbi} +206 -195
  64. data/sorbet/rbi/gems/{activejob@6.1.0.alpha-d80c18a391e33552ae2d943e68af56946f883f65.rbi → activejob@7.0.0.alpha-d612542336d9a61381311c95a27d801bb4094779.rbi} +64 -75
  65. data/sorbet/rbi/gems/{activemodel@6.1.0.alpha-d80c18a391e33552ae2d943e68af56946f883f65.rbi → activemodel@7.0.0.alpha-d612542336d9a61381311c95a27d801bb4094779.rbi} +103 -56
  66. data/sorbet/rbi/gems/{activerecord@6.1.0.alpha-d80c18a391e33552ae2d943e68af56946f883f65.rbi → activerecord@7.0.0.alpha-d612542336d9a61381311c95a27d801bb4094779.rbi} +1250 -898
  67. data/sorbet/rbi/gems/{activestorage@6.1.0.alpha-d80c18a391e33552ae2d943e68af56946f883f65.rbi → activestorage@7.0.0.alpha-d612542336d9a61381311c95a27d801bb4094779.rbi} +92 -120
  68. data/sorbet/rbi/gems/{activesupport@6.1.0.alpha-d80c18a391e33552ae2d943e68af56946f883f65.rbi → activesupport@7.0.0.alpha-d612542336d9a61381311c95a27d801bb4094779.rbi} +292 -193
  69. data/sorbet/rbi/gems/{ast@2.4.1.rbi → ast@2.4.2.rbi} +2 -1
  70. data/sorbet/rbi/gems/{better_html@1.0.15.rbi → better_html@1.0.16.rbi} +2 -2
  71. data/sorbet/rbi/gems/{concurrent-ruby@1.1.6.rbi → concurrent-ruby@1.1.8.rbi} +12 -9
  72. data/sorbet/rbi/gems/{erubi@1.9.0.rbi → erubi@1.10.0.rbi} +3 -1
  73. data/sorbet/rbi/gems/{i18n@1.8.2.rbi → i18n@1.8.10.rbi} +19 -52
  74. data/sorbet/rbi/gems/{loofah@2.5.0.rbi → loofah@2.9.0.rbi} +3 -1
  75. data/sorbet/rbi/gems/marcel@1.0.0.rbi +70 -0
  76. data/sorbet/rbi/gems/{mini_mime@1.0.2.rbi → mini_mime@1.0.3.rbi} +6 -6
  77. data/sorbet/rbi/gems/{mini_portile2@2.4.0.rbi → minitest-focus@1.2.1.rbi} +2 -2
  78. data/sorbet/rbi/gems/{minitest@5.14.0.rbi → minitest@5.14.4.rbi} +31 -29
  79. data/sorbet/rbi/gems/{mocha@1.11.2.rbi → mocha@1.12.0.rbi} +25 -36
  80. data/sorbet/rbi/gems/{nio4r@2.5.2.rbi → nio4r@2.5.7.rbi} +21 -20
  81. data/sorbet/rbi/gems/{nokogiri@1.10.9.rbi → nokogiri@1.11.2.rbi} +193 -154
  82. data/sorbet/rbi/gems/parallel@1.20.1.rbi +117 -0
  83. data/sorbet/rbi/gems/parlour@6.0.0.rbi +1272 -0
  84. data/sorbet/rbi/gems/{parser@2.7.1.4.rbi → parser@3.0.0.0.rbi} +287 -174
  85. data/sorbet/rbi/gems/{pry@0.13.1.rbi → pry@0.14.0.rbi} +1 -1
  86. data/sorbet/rbi/gems/racc@1.5.2.rbi +57 -0
  87. data/sorbet/rbi/gems/{rack@2.2.2.rbi → rack@2.2.3.rbi} +23 -35
  88. data/sorbet/rbi/gems/{rails@6.1.0.alpha-d80c18a391e33552ae2d943e68af56946f883f65.rbi → rails@7.0.0.alpha-d612542336d9a61381311c95a27d801bb4094779.rbi} +1 -1
  89. data/sorbet/rbi/gems/{railties@6.1.0.alpha-d80c18a391e33552ae2d943e68af56946f883f65.rbi → railties@7.0.0.alpha-d612542336d9a61381311c95a27d801bb4094779.rbi} +132 -121
  90. data/sorbet/rbi/gems/{rake@13.0.1.rbi → rake@13.0.3.rbi} +16 -20
  91. data/sorbet/rbi/gems/{parallel@1.19.1.rbi → regexp_parser@2.1.1.rbi} +2 -2
  92. data/sorbet/rbi/gems/rubocop-ast@1.4.1.rbi +8 -0
  93. data/sorbet/rbi/gems/{rubocop-performance@1.5.2.rbi → rubocop-performance@1.10.2.rbi} +1 -1
  94. data/sorbet/rbi/gems/{rubocop-shopify@1.0.2.rbi → rubocop-shopify@2.0.1.rbi} +1 -1
  95. data/sorbet/rbi/gems/{rubocop-sorbet@0.3.7.rbi → rubocop-sorbet@0.6.1.rbi} +1 -1
  96. data/sorbet/rbi/gems/{rubocop@0.82.0.rbi → rubocop@1.12.0.rbi} +1 -1
  97. data/sorbet/rbi/gems/{ruby-progressbar@1.10.1.rbi → ruby-progressbar@1.11.0.rbi} +1 -1
  98. data/sorbet/rbi/gems/spoom@1.1.0.rbi +1061 -0
  99. data/sorbet/rbi/gems/{spring@2.1.0.rbi → spring@2.1.1.rbi} +7 -7
  100. data/sorbet/rbi/gems/{sprockets-rails@3.2.1.rbi → sprockets-rails@3.2.2.rbi} +88 -68
  101. data/sorbet/rbi/gems/{sprockets@4.0.0.rbi → sprockets@4.0.2.rbi} +8 -7
  102. data/sorbet/rbi/gems/{tapioca@0.4.5.rbi → tapioca@0.4.19.rbi} +109 -24
  103. data/sorbet/rbi/gems/{thor@1.0.1.rbi → thor@1.1.0.rbi} +16 -15
  104. data/sorbet/rbi/gems/{tzinfo@2.0.2.rbi → tzinfo@2.0.4.rbi} +21 -2
  105. data/sorbet/rbi/gems/{unicode-display_width@1.7.0.rbi → unicode-display_width@2.0.0.rbi} +1 -1
  106. data/sorbet/rbi/gems/{websocket-driver@0.7.1.rbi → websocket-driver@0.7.3.rbi} +29 -29
  107. data/sorbet/rbi/gems/{websocket-extensions@0.1.4.rbi → websocket-extensions@0.1.5.rbi} +2 -2
  108. data/sorbet/rbi/gems/zeitwerk@2.4.2.rbi +177 -0
  109. data/sorbet/tapioca/require.rb +1 -0
  110. metadata +78 -61
  111. data/lib/packwerk/cache_deprecated_references.rb +0 -47
  112. data/lib/packwerk/checking_deprecated_references.rb +0 -40
  113. data/lib/packwerk/commands/detect_stale_violations_command.rb +0 -63
  114. data/lib/packwerk/commands/offense_progress_marker.rb +0 -24
  115. data/lib/packwerk/detect_stale_deprecated_references.rb +0 -14
  116. data/lib/packwerk/output_styles.rb +0 -41
  117. data/lib/packwerk/reference_lister.rb +0 -23
  118. data/lib/packwerk/updating_deprecated_references.rb +0 -14
  119. data/sorbet/rbi/gems/jaro_winkler@1.5.4.rbi +0 -8
  120. data/sorbet/rbi/gems/marcel@0.3.3.rbi +0 -30
  121. data/sorbet/rbi/gems/mimemagic@0.3.5.rbi +0 -47
  122. data/sorbet/rbi/gems/parlour@4.0.1.rbi +0 -561
  123. data/sorbet/rbi/gems/spoom@1.0.4.rbi +0 -418
  124. data/sorbet/rbi/gems/zeitwerk@2.3.0.rbi +0 -8
@@ -1,6 +1,6 @@
1
1
  # DO NOT EDIT MANUALLY
2
2
  # This is an autogenerated file for types exported from the `activestorage` gem.
3
- # Please instead update this file by running `dev typecheck update`.
3
+ # Please instead update this file by running `bin/tapioca sync`.
4
4
 
5
5
  # typed: true
6
6
 
@@ -27,6 +27,8 @@ module ActiveStorage
27
27
  def queues=(val); end
28
28
  def replace_on_assign_to_many; end
29
29
  def replace_on_assign_to_many=(val); end
30
+ def resolve_model_to_route; end
31
+ def resolve_model_to_route=(val); end
30
32
  def routes_prefix; end
31
33
  def routes_prefix=(val); end
32
34
  def service_urls_expire_in; end
@@ -67,6 +69,8 @@ module ActiveStorage
67
69
  def railtie_routes_url_helpers(include_path_helpers = T.unsafe(nil)); end
68
70
  def replace_on_assign_to_many; end
69
71
  def replace_on_assign_to_many=(val); end
72
+ def resolve_model_to_route; end
73
+ def resolve_model_to_route=(val); end
70
74
  def routes_prefix; end
71
75
  def routes_prefix=(val); end
72
76
  def service_urls_expire_in; end
@@ -143,6 +147,7 @@ class ActiveStorage::Analyzer::VideoAnalyzer < ::ActiveStorage::Analyzer
143
147
 
144
148
  def angle; end
145
149
  def computed_height; end
150
+ def container; end
146
151
  def display_aspect_ratio; end
147
152
  def display_height_scale; end
148
153
  def duration; end
@@ -264,12 +269,16 @@ module ActiveStorage::Attached::Model
264
269
 
265
270
  def attachment_changes; end
266
271
  def changed_for_autosave?; end
267
- def reload(*_); end
272
+ def reload(*_arg0); end
273
+
274
+ private
275
+
276
+ def initialize_dup(*_arg0); end
268
277
  end
269
278
 
270
279
  module ActiveStorage::Attached::Model::ClassMethods
271
- def has_many_attached(name, dependent: T.unsafe(nil), service: T.unsafe(nil)); end
272
- def has_one_attached(name, dependent: T.unsafe(nil), service: T.unsafe(nil)); end
280
+ def has_many_attached(name, dependent: T.unsafe(nil), service: T.unsafe(nil), strict_loading: T.unsafe(nil)); end
281
+ def has_one_attached(name, dependent: T.unsafe(nil), service: T.unsafe(nil), strict_loading: T.unsafe(nil)); end
273
282
 
274
283
  private
275
284
 
@@ -292,32 +301,36 @@ class ActiveStorage::Attached::One < ::ActiveStorage::Attached
292
301
  def write_attachment(attachment); end
293
302
  end
294
303
 
295
- class ActiveStorage::Attachment < ::ActiveRecord::Base
304
+ class ActiveStorage::Attachment < ::ActiveStorage::Record
296
305
  def autosave_associated_records_for_blob(*args); end
297
306
  def autosave_associated_records_for_record(*args); end
298
307
  def method_missing(method, *args, &block); end
299
308
  def purge; end
300
309
  def purge_later; end
310
+ def signed_id(*_arg0, &_arg1); end
311
+ def validate_associated_records_for_blob(*args); end
312
+ def variant(transformations); end
301
313
 
302
314
  private
303
315
 
304
316
  def analyze_blob_later; end
305
317
  def dependent; end
306
- def identify_blob; end
307
318
  def mirror_blob_later; end
308
319
  def purge_dependent_blob_later; end
309
320
  def respond_to_missing?(name, include_private = T.unsafe(nil)); end
321
+ def variants; end
310
322
 
311
323
  class << self
312
324
  def __callbacks; end
313
325
  def _reflections; end
314
326
  def _validators; end
315
- def attribute_type_decorations; end
316
327
  def defined_enums; end
317
328
  end
318
329
  end
319
330
 
320
331
  class ActiveStorage::BaseController < ::ActionController::Base
332
+ include(::ActionController::Live)
333
+ include(::ActiveStorage::Streaming)
321
334
  include(::ActiveStorage::SetCurrent)
322
335
 
323
336
 
@@ -327,55 +340,17 @@ class ActiveStorage::BaseController < ::ActionController::Base
327
340
 
328
341
  class << self
329
342
  def __callbacks; end
330
- def _helpers; end
343
+ def etag_with_template_digest; end
331
344
  def middleware_stack; end
332
345
  end
333
346
  end
334
347
 
335
- module ActiveStorage::BaseController::HelperMethods
336
- include(::ActionController::Base::HelperMethods)
337
- end
338
-
339
348
  class ActiveStorage::BaseJob < ::ActiveJob::Base
340
349
  end
341
350
 
342
- class ActiveStorage::Blob < ::ActiveRecord::Base
343
- include(::ActiveStorage::Blob::Analyzable)
344
- include(::ActiveStorage::Blob::Identifiable)
345
- include(::ActiveStorage::Blob::Representable)
346
-
347
- def after_add_for_variant_records; end
348
- def after_add_for_variant_records=(_); end
349
- def after_add_for_variant_records?; end
350
- def after_remove_for_variant_records; end
351
- def after_remove_for_variant_records=(_); end
352
- def after_remove_for_variant_records?; end
353
- def autosave_associated_records_for_variant_records(*args); end
354
- def before_add_for_variant_records; end
355
- def before_add_for_variant_records=(_); end
356
- def before_add_for_variant_records?; end
357
- def before_remove_for_variant_records; end
358
- def before_remove_for_variant_records=(_); end
359
- def before_remove_for_variant_records?; end
360
- def validate_associated_records_for_variant_records(*args); end
361
-
351
+ class ActiveStorage::Blob < ::ActiveStorage::Record
362
352
  class << self
363
- def __callbacks; end
364
- def _reflections; end
365
353
  def _validators; end
366
- def after_add_for_variant_records; end
367
- def after_add_for_variant_records=(value); end
368
- def after_add_for_variant_records?; end
369
- def after_remove_for_variant_records; end
370
- def after_remove_for_variant_records=(value); end
371
- def after_remove_for_variant_records?; end
372
- def attribute_type_decorations; end
373
- def before_add_for_variant_records; end
374
- def before_add_for_variant_records=(value); end
375
- def before_add_for_variant_records?; end
376
- def before_remove_for_variant_records; end
377
- def before_remove_for_variant_records=(value); end
378
- def before_remove_for_variant_records?; end
379
354
  def defined_enums; end
380
355
  end
381
356
  end
@@ -395,12 +370,12 @@ end
395
370
  module ActiveStorage::Blob::Identifiable
396
371
  def identified?; end
397
372
  def identify; end
373
+ def identify_without_saving; end
398
374
 
399
375
  private
400
376
 
401
377
  def download_identifiable_chunk; end
402
378
  def identify_content_type; end
403
- def update_service_metadata; end
404
379
  end
405
380
 
406
381
  module ActiveStorage::Blob::Representable
@@ -415,30 +390,12 @@ module ActiveStorage::Blob::Representable
415
390
 
416
391
  private
417
392
 
393
+ def default_variant_format; end
394
+ def default_variant_transformations; end
395
+ def format; end
418
396
  def variant_class; end
419
397
  end
420
398
 
421
- class ActiveStorage::BlobsController < ::ActiveStorage::BaseController
422
- include(::ActiveStorage::SetBlob)
423
-
424
- def show; end
425
-
426
- private
427
-
428
- def _layout(lookup_context, formats); end
429
-
430
- class << self
431
- def __callbacks; end
432
- def _helpers; end
433
- def middleware_stack; end
434
- end
435
- end
436
-
437
- module ActiveStorage::BlobsController::HelperMethods
438
- include(::ActionController::Base::HelperMethods)
439
- include(::ActiveStorage::BaseController::HelperMethods)
440
- end
441
-
442
399
  class ActiveStorage::Current < ::ActiveSupport::CurrentAttributes
443
400
  class << self
444
401
  def host; end
@@ -457,16 +414,10 @@ class ActiveStorage::DirectUploadsController < ::ActiveStorage::BaseController
457
414
 
458
415
  class << self
459
416
  def __callbacks; end
460
- def _helpers; end
461
417
  def middleware_stack; end
462
418
  end
463
419
  end
464
420
 
465
- module ActiveStorage::DirectUploadsController::HelperMethods
466
- include(::ActionController::Base::HelperMethods)
467
- include(::ActiveStorage::BaseController::HelperMethods)
468
- end
469
-
470
421
  class ActiveStorage::DiskController < ::ActiveStorage::BaseController
471
422
  include(::ActiveStorage::FileServer)
472
423
 
@@ -483,16 +434,10 @@ class ActiveStorage::DiskController < ::ActiveStorage::BaseController
483
434
 
484
435
  class << self
485
436
  def __callbacks; end
486
- def _helpers; end
487
437
  def middleware_stack; end
488
438
  end
489
439
  end
490
440
 
491
- module ActiveStorage::DiskController::HelperMethods
492
- include(::ActionController::Base::HelperMethods)
493
- include(::ActiveStorage::BaseController::HelperMethods)
494
- end
495
-
496
441
  class ActiveStorage::Downloader
497
442
  def initialize(service); end
498
443
 
@@ -528,7 +473,7 @@ class ActiveStorage::Filename
528
473
  def initialize(filename); end
529
474
 
530
475
  def <=>(other); end
531
- def as_json(*_); end
476
+ def as_json(*_arg0); end
532
477
  def base; end
533
478
  def extension; end
534
479
  def extension_with_delimiter; end
@@ -542,6 +487,23 @@ class ActiveStorage::Filename
542
487
  end
543
488
  end
544
489
 
490
+ class ActiveStorage::FixtureSet
491
+ include(::ActiveSupport::Testing::FileFixtures)
492
+ include(::ActiveRecord::SecureToken)
493
+ extend(::ActiveRecord::SecureToken::ClassMethods)
494
+
495
+ def file_fixture_path; end
496
+ def file_fixture_path?; end
497
+ def prepare(instance, **attributes); end
498
+
499
+ class << self
500
+ def blob(filename:, **attributes); end
501
+ def file_fixture_path; end
502
+ def file_fixture_path=(value); end
503
+ def file_fixture_path?; end
504
+ end
505
+ end
506
+
545
507
  class ActiveStorage::IntegrityError < ::ActiveStorage::Error
546
508
  end
547
509
 
@@ -580,7 +542,9 @@ class ActiveStorage::Preview
580
542
  def initialize(blob, variation_or_variation_key); end
581
543
 
582
544
  def blob; end
545
+ def download(&block); end
583
546
  def image; end
547
+ def key; end
584
548
  def processed; end
585
549
  def service_url(*args, &block); end
586
550
  def url(**options); end
@@ -598,6 +562,9 @@ end
598
562
  class ActiveStorage::Preview::UnprocessedError < ::StandardError
599
563
  end
600
564
 
565
+ class ActiveStorage::PreviewError < ::ActiveStorage::Error
566
+ end
567
+
601
568
  class ActiveStorage::Previewer
602
569
  def initialize(blob); end
603
570
 
@@ -670,6 +637,13 @@ class ActiveStorage::PurgeJob < ::ActiveStorage::BaseJob
670
637
  end
671
638
  end
672
639
 
640
+ class ActiveStorage::Record < ::ActiveRecord::Base
641
+ class << self
642
+ def _validators; end
643
+ def defined_enums; end
644
+ end
645
+ end
646
+
673
647
  module ActiveStorage::Reflection
674
648
  end
675
649
 
@@ -684,11 +658,16 @@ module ActiveStorage::Reflection::ActiveRecordExtensions::ClassMethods
684
658
  def reflect_on_attachment(attachment); end
685
659
  end
686
660
 
687
- class ActiveStorage::Reflection::HasManyAttachedReflection < ::ActiveRecord::Reflection::MacroReflection
661
+ class ActiveStorage::Reflection::HasAttachedReflection < ::ActiveRecord::Reflection::MacroReflection
662
+ def variant(name, transformations); end
663
+ def variants; end
664
+ end
665
+
666
+ class ActiveStorage::Reflection::HasManyAttachedReflection < ::ActiveStorage::Reflection::HasAttachedReflection
688
667
  def macro; end
689
668
  end
690
669
 
691
- class ActiveStorage::Reflection::HasOneAttachedReflection < ::ActiveRecord::Reflection::MacroReflection
670
+ class ActiveStorage::Reflection::HasOneAttachedReflection < ::ActiveStorage::Reflection::HasAttachedReflection
692
671
  def macro; end
693
672
  end
694
673
 
@@ -700,27 +679,6 @@ module ActiveStorage::Reflection::ReflectionExtension
700
679
  def reflection_class_for(macro); end
701
680
  end
702
681
 
703
- class ActiveStorage::RepresentationsController < ::ActiveStorage::BaseController
704
- include(::ActiveStorage::SetBlob)
705
-
706
- def show; end
707
-
708
- private
709
-
710
- def _layout(lookup_context, formats); end
711
-
712
- class << self
713
- def __callbacks; end
714
- def _helpers; end
715
- def middleware_stack; end
716
- end
717
- end
718
-
719
- module ActiveStorage::RepresentationsController::HelperMethods
720
- include(::ActionController::Base::HelperMethods)
721
- include(::ActiveStorage::BaseController::HelperMethods)
722
- end
723
-
724
682
  class ActiveStorage::Service
725
683
  extend(::ActiveSupport::Autoload)
726
684
 
@@ -731,7 +689,7 @@ class ActiveStorage::Service
731
689
  def exist?(key); end
732
690
  def headers_for_direct_upload(key, filename:, content_type:, content_length:, checksum:); end
733
691
  def name; end
734
- def name=(_); end
692
+ def name=(_arg0); end
735
693
  def open(*args, **options, &block); end
736
694
  def public?; end
737
695
  def update_metadata(key, **metadata); end
@@ -743,8 +701,8 @@ class ActiveStorage::Service
743
701
 
744
702
  def content_disposition_with(filename:, type: T.unsafe(nil)); end
745
703
  def instrument(operation, payload = T.unsafe(nil), &block); end
746
- def private_url(key, expires_in:, filename:, disposition:, content_type:, **_); end
747
- def public_url(key, **_); end
704
+ def private_url(key, expires_in:, filename:, disposition:, content_type:, **_arg5); end
705
+ def public_url(key, **_arg1); end
748
706
  def service_name; end
749
707
 
750
708
  class << self
@@ -794,6 +752,18 @@ module ActiveStorage::SetCurrent
794
752
  extend(::ActiveSupport::Concern)
795
753
  end
796
754
 
755
+ module ActiveStorage::Streaming
756
+ include(::ActionController::Live)
757
+ extend(::ActionController::Live::ClassMethods)
758
+
759
+
760
+ private
761
+
762
+ def send_blob_stream(blob, disposition: T.unsafe(nil)); end
763
+ end
764
+
765
+ ActiveStorage::Streaming::DEFAULT_BLOB_STREAMING_DISPOSITION = T.let(T.unsafe(nil), String)
766
+
797
767
  module ActiveStorage::Transformers
798
768
  extend(::ActiveSupport::Autoload)
799
769
  end
@@ -832,13 +802,15 @@ class ActiveStorage::Variant
832
802
  def initialize(blob, variation_or_variation_key); end
833
803
 
834
804
  def blob; end
835
- def content_type(*args, &block); end
836
- def filename(*args, &block); end
837
- def format(*args, &block); end
805
+ def content_type(*_arg0, &_arg1); end
806
+ def content_type_for_serving(*_arg0, &_arg1); end
807
+ def download(&block); end
808
+ def filename; end
809
+ def forced_disposition_for_serving; end
838
810
  def image; end
839
811
  def key; end
840
812
  def processed; end
841
- def service(*args, &block); end
813
+ def service(*_arg0, &_arg1); end
842
814
  def service_url(*args, &block); end
843
815
  def url(expires_in: T.unsafe(nil), disposition: T.unsafe(nil)); end
844
816
  def variation; end
@@ -847,20 +819,15 @@ class ActiveStorage::Variant
847
819
 
848
820
  def process; end
849
821
  def processed?; end
850
- def specification; end
851
- end
852
-
853
- class ActiveStorage::Variant::Specification < ::OpenStruct
854
822
  end
855
823
 
856
- class ActiveStorage::VariantRecord < ::ActiveRecord::Base
824
+ class ActiveStorage::VariantRecord < ::ActiveStorage::Record
857
825
  def autosave_associated_records_for_blob(*args); end
858
826
 
859
827
  class << self
860
828
  def __callbacks; end
861
829
  def _reflections; end
862
830
  def _validators; end
863
- def attribute_type_decorations; end
864
831
  def defined_enums; end
865
832
  end
866
833
  end
@@ -869,12 +836,14 @@ class ActiveStorage::VariantWithRecord
869
836
  def initialize(blob, variation); end
870
837
 
871
838
  def blob; end
839
+ def download(*_arg0, &_arg1); end
872
840
  def image; end
841
+ def key(*_arg0, &_arg1); end
873
842
  def process; end
874
843
  def processed; end
875
844
  def processed?; end
876
845
  def service_url(*args, &block); end
877
- def url(**options); end
846
+ def url(*_arg0, &_arg1); end
878
847
  def variation; end
879
848
 
880
849
  private
@@ -887,9 +856,12 @@ end
887
856
  class ActiveStorage::Variation
888
857
  def initialize(transformations); end
889
858
 
859
+ def content_type; end
860
+ def default_to(defaults); end
890
861
  def digest; end
862
+ def format; end
891
863
  def key; end
892
- def transform(file, format: T.unsafe(nil), &block); end
864
+ def transform(file, &block); end
893
865
  def transformations; end
894
866
 
895
867
  private