activestorage 6.1.4.2 → 6.1.7.7

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 86f114ff5bb227706f3f2a78663a22553f825c7611ab8c1f9650956055d4e4f6
4
- data.tar.gz: cf08ecb2a4a9b10bf3731d9d83f3c2c8e07cdfea2d4d89be96cda9a0354a6a9e
3
+ metadata.gz: 032d6dd88c8ee643447422778483da60fcc5ec8094fc6bdfe8bf1566c6774165
4
+ data.tar.gz: 25dd755d0ca9a307ec6c333c1334be8dacaa587af0201310fde12631b9b4f6ea
5
5
  SHA512:
6
- metadata.gz: 86622a3ff2fff69df77a45a5c34f2cf20494f8402e6d7e61f28a5973df2729b31030a5c4e44929b2a8467c9601c00927ede69e134a682a474f931019fb3f605f
7
- data.tar.gz: c9091f2557e3cb9053c13573bdb0b45f9f6a541efddf716e537ab9f67a78194ed84c839994554507fff7c7a17eccca5b50a80cf5f18e97b51c32d271f52b16dd
6
+ metadata.gz: 82828df0a37a96491207d0bfa3039d5c69901508844ecb55482b22671231e226bbc27a29f46d5034696b15e3e08948964a168314a895679572fb45db28096ad8
7
+ data.tar.gz: 27a05d7b52844b94f3148395fda1aaf7f5a4739f66e9ae5786ce5f038f13b062b2646538c9b1d6a4c5e6bbf8468e0f32f5690b5ab1feaa00ec823c496d23b682
data/CHANGELOG.md CHANGED
@@ -1,3 +1,103 @@
1
+ ## Rails 6.1.7.7 (February 21, 2024) ##
2
+
3
+ * Disables the session in `ActiveStorage::Blobs::ProxyController`
4
+ and `ActiveStorage::Representations::ProxyController`
5
+ in order to allow caching by default in some CDNs as CloudFlare
6
+
7
+ Fixes #44136
8
+
9
+ *Bruno Prieto*
10
+
11
+ ## Rails 6.1.7.6 (August 22, 2023) ##
12
+
13
+ * No changes.
14
+
15
+
16
+ ## Rails 6.1.7.5 (August 22, 2023) ##
17
+
18
+ * No changes.
19
+
20
+
21
+ ## Rails 6.1.7.4 (June 26, 2023) ##
22
+
23
+ * No changes.
24
+
25
+
26
+ ## Rails 6.1.7.3 (March 13, 2023) ##
27
+
28
+ * No changes.
29
+
30
+
31
+ ## Rails 6.1.7.2 (January 24, 2023) ##
32
+
33
+ * No changes.
34
+
35
+
36
+ ## Rails 6.1.7.1 (January 17, 2023) ##
37
+
38
+ * No changes.
39
+
40
+
41
+ ## Rails 6.1.7 (September 09, 2022) ##
42
+
43
+ * Respect Active Record's primary_key_type in Active Storage migrations. Backported from 7.0.
44
+
45
+ *fatkodima*
46
+
47
+ ## Rails 6.1.6.1 (July 12, 2022) ##
48
+
49
+ * No changes.
50
+
51
+
52
+ ## Rails 6.1.6 (May 09, 2022) ##
53
+
54
+ * No changes.
55
+
56
+
57
+ ## Rails 6.1.5.1 (April 26, 2022) ##
58
+
59
+ * No changes.
60
+
61
+
62
+ ## Rails 6.1.5 (March 09, 2022) ##
63
+
64
+ * Attachments can be deleted after their association is no longer defined.
65
+
66
+ Fixes #42514
67
+
68
+ *Don Sisco*
69
+
70
+
71
+ ## Rails 6.1.4.7 (March 08, 2022) ##
72
+
73
+ * Added image transformation validation via configurable allow-list.
74
+
75
+ Variant now offers a configurable allow-list for
76
+ transformation methods in addition to a configurable deny-list for arguments.
77
+
78
+ [CVE-2022-21831]
79
+
80
+
81
+ ## Rails 6.1.4.6 (February 11, 2022) ##
82
+
83
+ * No changes.
84
+
85
+
86
+ ## Rails 6.1.4.5 (February 11, 2022) ##
87
+
88
+ * No changes.
89
+
90
+
91
+ ## Rails 6.1.4.4 (December 15, 2021) ##
92
+
93
+ * No changes.
94
+
95
+
96
+ ## Rails 6.1.4.3 (December 14, 2021) ##
97
+
98
+ * No changes.
99
+
100
+
1
101
  ## Rails 6.1.4.2 (December 14, 2021) ##
2
102
 
3
103
  * No changes.
@@ -17,7 +117,7 @@
17
117
 
18
118
  * Fix Active Storage update task when running in an engine.
19
119
 
20
- Justin Malčić*
120
+ *Justin Malčić*
21
121
 
22
122
  * Don't raise an error if the mime type is not recognized.
23
123
 
data/MIT-LICENSE CHANGED
@@ -1,4 +1,4 @@
1
- Copyright (c) 2017-2020 David Heinemeier Hansson, Basecamp
1
+ Copyright (c) 2017-2022 David Heinemeier Hansson, Basecamp
2
2
 
3
3
  Permission is hereby granted, free of charge, to any person obtaining
4
4
  a copy of this software and associated documentation files (the
@@ -4,6 +4,7 @@
4
4
  class ActiveStorage::Blobs::ProxyController < ActiveStorage::BaseController
5
5
  include ActiveStorage::SetBlob
6
6
  include ActiveStorage::SetHeaders
7
+ include ActiveStorage::DisableSession
7
8
 
8
9
  def show
9
10
  http_cache_forever public: true do
@@ -3,6 +3,7 @@
3
3
  # Proxy files through application. This avoids having a redirect and makes files easier to cache.
4
4
  class ActiveStorage::Representations::ProxyController < ActiveStorage::Representations::BaseController
5
5
  include ActiveStorage::SetHeaders
6
+ include ActiveStorage::DisableSession
6
7
 
7
8
  def show
8
9
  http_cache_forever public: true do
@@ -0,0 +1,12 @@
1
+ # frozen_string_literal: true
2
+
3
+ # This concern disables the session in order to allow caching by default in some CDNs as CloudFlare.
4
+ module ActiveStorage::DisableSession
5
+ extend ActiveSupport::Concern
6
+
7
+ included do
8
+ before_action do
9
+ request.session_options[:skip] = true
10
+ end
11
+ end
12
+ end
@@ -51,7 +51,7 @@ class ActiveStorage::Attachment < ActiveStorage::Record
51
51
  end
52
52
 
53
53
  def dependent
54
- record.attachment_reflections[name]&.options[:dependent]
54
+ record.attachment_reflections[name]&.options&.fetch(:dependent, nil)
55
55
  end
56
56
  end
57
57
 
@@ -4,7 +4,7 @@
4
4
  # These variants are used to create thumbnails, fixed-size avatars, or any other derivative image from the
5
5
  # original.
6
6
  #
7
- # Variants rely on {ImageProcessing}[https://github.com/janko-m/image_processing] gem for the actual transformations
7
+ # Variants rely on {ImageProcessing}[https://github.com/janko/image_processing] gem for the actual transformations
8
8
  # of the file, so you must add <tt>gem "image_processing"</tt> to your Gemfile if you wish to use variants. By
9
9
  # default, images will be processed with {ImageMagick}[http://imagemagick.org] using the
10
10
  # {MiniMagick}[https://github.com/minimagick/minimagick] gem, but you can also switch to the
@@ -46,9 +46,9 @@
46
46
  #
47
47
  # Visit the following links for a list of available ImageProcessing commands and ImageMagick/libvips operations:
48
48
  #
49
- # * {ImageProcessing::MiniMagick}[https://github.com/janko-m/image_processing/blob/master/doc/minimagick.md#methods]
49
+ # * {ImageProcessing::MiniMagick}[https://github.com/janko/image_processing/blob/master/doc/minimagick.md#methods]
50
50
  # * {ImageMagick reference}[https://www.imagemagick.org/script/mogrify.php]
51
- # * {ImageProcessing::Vips}[https://github.com/janko-m/image_processing/blob/master/doc/vips.md#methods]
51
+ # * {ImageProcessing::Vips}[https://github.com/janko/image_processing/blob/master/doc/vips.md#methods]
52
52
  # * {ruby-vips reference}[http://www.rubydoc.info/gems/ruby-vips/Vips/Image]
53
53
  class ActiveStorage::Variant
54
54
  attr_reader :blob, :variation
@@ -10,7 +10,7 @@ require "mini_mime"
10
10
  #
11
11
  # ActiveStorage::Variation.new(resize_to_limit: [100, 100], monochrome: true, trim: true, rotate: "-90")
12
12
  #
13
- # The options map directly to {ImageProcessing}[https://github.com/janko-m/image_processing] commands.
13
+ # The options map directly to {ImageProcessing}[https://github.com/janko/image_processing] commands.
14
14
  class ActiveStorage::Variation
15
15
  attr_reader :transformations
16
16
 
@@ -1,6 +1,9 @@
1
1
  class CreateActiveStorageTables < ActiveRecord::Migration[5.2]
2
2
  def change
3
- create_table :active_storage_blobs do |t|
3
+ # Use Active Record's configured type for primary and foreign keys
4
+ primary_key_type, foreign_key_type = primary_and_foreign_key_types
5
+
6
+ create_table :active_storage_blobs, id: primary_key_type do |t|
4
7
  t.string :key, null: false
5
8
  t.string :filename, null: false
6
9
  t.string :content_type
@@ -13,10 +16,10 @@ class CreateActiveStorageTables < ActiveRecord::Migration[5.2]
13
16
  t.index [ :key ], unique: true
14
17
  end
15
18
 
16
- create_table :active_storage_attachments do |t|
19
+ create_table :active_storage_attachments, id: primary_key_type do |t|
17
20
  t.string :name, null: false
18
- t.references :record, null: false, polymorphic: true, index: false
19
- t.references :blob, null: false
21
+ t.references :record, null: false, polymorphic: true, index: false, type: foreign_key_type
22
+ t.references :blob, null: false, type: foreign_key_type
20
23
 
21
24
  t.datetime :created_at, null: false
22
25
 
@@ -24,12 +27,21 @@ class CreateActiveStorageTables < ActiveRecord::Migration[5.2]
24
27
  t.foreign_key :active_storage_blobs, column: :blob_id
25
28
  end
26
29
 
27
- create_table :active_storage_variant_records do |t|
28
- t.belongs_to :blob, null: false, index: false
30
+ create_table :active_storage_variant_records, id: primary_key_type do |t|
31
+ t.belongs_to :blob, null: false, index: false, type: foreign_key_type
29
32
  t.string :variation_digest, null: false
30
33
 
31
34
  t.index %i[ blob_id variation_digest ], name: "index_active_storage_variant_records_uniqueness", unique: true
32
35
  t.foreign_key :active_storage_blobs, column: :blob_id
33
36
  end
34
37
  end
38
+
39
+ private
40
+ def primary_and_foreign_key_types
41
+ config = Rails.configuration.generators
42
+ setting = config.options[config.orm][:primary_key_type]
43
+ primary_key_type = setting || :primary_key
44
+ foreign_key_type = setting || :bigint
45
+ [primary_key_type, foreign_key_type]
46
+ end
35
47
  end
@@ -1,5 +1,7 @@
1
1
  class AddServiceNameToActiveStorageBlobs < ActiveRecord::Migration[6.0]
2
2
  def up
3
+ return unless table_exists?(:active_storage_blobs)
4
+
3
5
  unless column_exists?(:active_storage_blobs, :service_name)
4
6
  add_column :active_storage_blobs, :service_name, :string
5
7
 
@@ -12,6 +14,8 @@ class AddServiceNameToActiveStorageBlobs < ActiveRecord::Migration[6.0]
12
14
  end
13
15
 
14
16
  def down
17
+ return unless table_exists?(:active_storage_blobs)
18
+
15
19
  remove_column :active_storage_blobs, :service_name
16
20
  end
17
21
  end
@@ -1,11 +1,26 @@
1
1
  class CreateActiveStorageVariantRecords < ActiveRecord::Migration[6.0]
2
2
  def change
3
- create_table :active_storage_variant_records do |t|
4
- t.belongs_to :blob, null: false, index: false
3
+ return unless table_exists?(:active_storage_blobs)
4
+
5
+ # Use Active Record's configured type for primary key
6
+ create_table :active_storage_variant_records, id: primary_key_type, if_not_exists: true do |t|
7
+ t.belongs_to :blob, null: false, index: false, type: blobs_primary_key_type
5
8
  t.string :variation_digest, null: false
6
9
 
7
10
  t.index %i[ blob_id variation_digest ], name: "index_active_storage_variant_records_uniqueness", unique: true
8
11
  t.foreign_key :active_storage_blobs, column: :blob_id
9
12
  end
10
13
  end
14
+
15
+ private
16
+ def primary_key_type
17
+ config = Rails.configuration.generators
18
+ config.options[config.orm][:primary_key_type] || :primary_key
19
+ end
20
+
21
+ def blobs_primary_key_type
22
+ pkey_name = connection.primary_key(:active_storage_blobs)
23
+ pkey_column = connection.columns(:active_storage_blobs).find { |c| c.name == pkey_name }
24
+ pkey_column.bigint? ? :bigint : pkey_column.type
25
+ end
11
26
  end
@@ -86,6 +86,21 @@ module ActiveStorage
86
86
  ActiveStorage.draw_routes = app.config.active_storage.draw_routes != false
87
87
  ActiveStorage.resolve_model_to_route = app.config.active_storage.resolve_model_to_route || :rails_storage_redirect
88
88
 
89
+ ActiveStorage.supported_image_processing_methods += app.config.active_storage.supported_image_processing_methods || []
90
+ ActiveStorage.unsupported_image_processing_arguments = app.config.active_storage.unsupported_image_processing_arguments || %w(
91
+ -debug
92
+ -display
93
+ -distribute-cache
94
+ -help
95
+ -path
96
+ -print
97
+ -set
98
+ -verbose
99
+ -version
100
+ -write
101
+ -write-mask
102
+ )
103
+
89
104
  ActiveStorage.variable_content_types = app.config.active_storage.variable_content_types || []
90
105
  ActiveStorage.web_image_content_types = app.config.active_storage.web_image_content_types || []
91
106
  ActiveStorage.content_types_to_serve_as_binary = app.config.active_storage.content_types_to_serve_as_binary || []
@@ -9,8 +9,8 @@ module ActiveStorage
9
9
  module VERSION
10
10
  MAJOR = 6
11
11
  MINOR = 1
12
- TINY = 4
13
- PRE = "2"
12
+ TINY = 7
13
+ PRE = "7"
14
14
 
15
15
  STRING = [MAJOR, MINOR, TINY, PRE].compact.join(".")
16
16
  end
@@ -1,5 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
+ require "shellwords"
4
+
3
5
  module ActiveStorage
4
6
  class Previewer::VideoPreviewer < Previewer
5
7
  class << self
@@ -13,6 +13,9 @@ module ActiveStorage
13
13
  module Transformers
14
14
  class ImageProcessingTransformer < Transformer
15
15
  private
16
+ class UnsupportedImageProcessingMethod < StandardError; end
17
+ class UnsupportedImageProcessingArgument < StandardError; end
18
+
16
19
  def process(file, format:)
17
20
  processor.
18
21
  source(file).
@@ -28,6 +31,10 @@ module ActiveStorage
28
31
 
29
32
  def operations
30
33
  transformations.each_with_object([]) do |(name, argument), list|
34
+ if ActiveStorage.variant_processor == :mini_magick
35
+ validate_transformation(name, argument)
36
+ end
37
+
31
38
  if name.to_s == "combine_options"
32
39
  raise ArgumentError, <<~ERROR.squish
33
40
  Active Storage's ImageProcessing transformer doesn't support :combine_options,
@@ -40,6 +47,64 @@ module ActiveStorage
40
47
  end
41
48
  end
42
49
  end
50
+
51
+ def validate_transformation(name, argument)
52
+ method_name = name.to_s.tr("-", "_")
53
+
54
+ unless ActiveStorage.supported_image_processing_methods.any? { |method| method_name == method }
55
+ raise UnsupportedImageProcessingMethod, <<~ERROR.squish
56
+ One or more of the provided transformation methods is not supported.
57
+ ERROR
58
+ end
59
+
60
+ if argument.present?
61
+ if argument.is_a?(String) || argument.is_a?(Symbol)
62
+ validate_arg_string(argument)
63
+ elsif argument.is_a?(Array)
64
+ validate_arg_array(argument)
65
+ elsif argument.is_a?(Hash)
66
+ validate_arg_hash(argument)
67
+ end
68
+ end
69
+ end
70
+
71
+ def validate_arg_string(argument)
72
+ unsupported_arguments = ActiveStorage.unsupported_image_processing_arguments.any? do |bad_arg|
73
+ argument.to_s.downcase.include?(bad_arg)
74
+ end
75
+
76
+ raise UnsupportedImageProcessingArgument if unsupported_arguments
77
+ end
78
+
79
+ def validate_arg_array(argument)
80
+ argument.each do |arg|
81
+ if arg.is_a?(Integer) || arg.is_a?(Float)
82
+ next
83
+ elsif arg.is_a?(String) || arg.is_a?(Symbol)
84
+ validate_arg_string(arg)
85
+ elsif arg.is_a?(Array)
86
+ validate_arg_array(arg)
87
+ elsif arg.is_a?(Hash)
88
+ validate_arg_hash(arg)
89
+ end
90
+ end
91
+ end
92
+
93
+ def validate_arg_hash(argument)
94
+ argument.each do |key, value|
95
+ validate_arg_string(key)
96
+
97
+ if value.is_a?(Integer) || value.is_a?(Float)
98
+ next
99
+ elsif value.is_a?(String) || value.is_a?(Symbol)
100
+ validate_arg_string(value)
101
+ elsif value.is_a?(Array)
102
+ validate_arg_array(value)
103
+ elsif value.is_a?(Hash)
104
+ validate_arg_hash(value)
105
+ end
106
+ end
107
+ end
43
108
  end
44
109
  end
45
110
  end
@@ -1,7 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  #--
4
- # Copyright (c) 2017-2020 David Heinemeier Hansson, Basecamp
4
+ # Copyright (c) 2017-2022 David Heinemeier Hansson, Basecamp
5
5
  #
6
6
  # Permission is hereby granted, free of charge, to any person obtaining
7
7
  # a copy of this software and associated documentation files (the
@@ -58,6 +58,297 @@ module ActiveStorage
58
58
  mattr_accessor :content_types_to_serve_as_binary, default: []
59
59
  mattr_accessor :content_types_allowed_inline, default: []
60
60
 
61
+ mattr_accessor :supported_image_processing_methods, default: [
62
+ "adaptive_blur",
63
+ "adaptive_resize",
64
+ "adaptive_sharpen",
65
+ "adjoin",
66
+ "affine",
67
+ "alpha",
68
+ "annotate",
69
+ "antialias",
70
+ "append",
71
+ "apply",
72
+ "attenuate",
73
+ "authenticate",
74
+ "auto_gamma",
75
+ "auto_level",
76
+ "auto_orient",
77
+ "auto_threshold",
78
+ "backdrop",
79
+ "background",
80
+ "bench",
81
+ "bias",
82
+ "bilateral_blur",
83
+ "black_point_compensation",
84
+ "black_threshold",
85
+ "blend",
86
+ "blue_primary",
87
+ "blue_shift",
88
+ "blur",
89
+ "border",
90
+ "bordercolor",
91
+ "borderwidth",
92
+ "brightness_contrast",
93
+ "cache",
94
+ "canny",
95
+ "caption",
96
+ "channel",
97
+ "channel_fx",
98
+ "charcoal",
99
+ "chop",
100
+ "clahe",
101
+ "clamp",
102
+ "clip",
103
+ "clip_path",
104
+ "clone",
105
+ "clut",
106
+ "coalesce",
107
+ "colorize",
108
+ "colormap",
109
+ "color_matrix",
110
+ "colors",
111
+ "colorspace",
112
+ "colourspace",
113
+ "color_threshold",
114
+ "combine",
115
+ "combine_options",
116
+ "comment",
117
+ "compare",
118
+ "complex",
119
+ "compose",
120
+ "composite",
121
+ "compress",
122
+ "connected_components",
123
+ "contrast",
124
+ "contrast_stretch",
125
+ "convert",
126
+ "convolve",
127
+ "copy",
128
+ "crop",
129
+ "cycle",
130
+ "deconstruct",
131
+ "define",
132
+ "delay",
133
+ "delete",
134
+ "density",
135
+ "depth",
136
+ "descend",
137
+ "deskew",
138
+ "despeckle",
139
+ "direction",
140
+ "displace",
141
+ "dispose",
142
+ "dissimilarity_threshold",
143
+ "dissolve",
144
+ "distort",
145
+ "dither",
146
+ "draw",
147
+ "duplicate",
148
+ "edge",
149
+ "emboss",
150
+ "encoding",
151
+ "endian",
152
+ "enhance",
153
+ "equalize",
154
+ "evaluate",
155
+ "evaluate_sequence",
156
+ "extent",
157
+ "extract",
158
+ "family",
159
+ "features",
160
+ "fft",
161
+ "fill",
162
+ "filter",
163
+ "flatten",
164
+ "flip",
165
+ "floodfill",
166
+ "flop",
167
+ "font",
168
+ "foreground",
169
+ "format",
170
+ "frame",
171
+ "function",
172
+ "fuzz",
173
+ "fx",
174
+ "gamma",
175
+ "gaussian_blur",
176
+ "geometry",
177
+ "gravity",
178
+ "grayscale",
179
+ "green_primary",
180
+ "hald_clut",
181
+ "highlight_color",
182
+ "hough_lines",
183
+ "iconGeometry",
184
+ "iconic",
185
+ "identify",
186
+ "ift",
187
+ "illuminant",
188
+ "immutable",
189
+ "implode",
190
+ "insert",
191
+ "intensity",
192
+ "intent",
193
+ "interlace",
194
+ "interline_spacing",
195
+ "interpolate",
196
+ "interpolative_resize",
197
+ "interword_spacing",
198
+ "kerning",
199
+ "kmeans",
200
+ "kuwahara",
201
+ "label",
202
+ "lat",
203
+ "layers",
204
+ "level",
205
+ "level_colors",
206
+ "limit",
207
+ "limits",
208
+ "linear_stretch",
209
+ "linewidth",
210
+ "liquid_rescale",
211
+ "list",
212
+ "loader",
213
+ "log",
214
+ "loop",
215
+ "lowlight_color",
216
+ "magnify",
217
+ "map",
218
+ "mattecolor",
219
+ "median",
220
+ "mean_shift",
221
+ "metric",
222
+ "mode",
223
+ "modulate",
224
+ "moments",
225
+ "monitor",
226
+ "monochrome",
227
+ "morph",
228
+ "morphology",
229
+ "mosaic",
230
+ "motion_blur",
231
+ "name",
232
+ "negate",
233
+ "noise",
234
+ "normalize",
235
+ "opaque",
236
+ "ordered_dither",
237
+ "orient",
238
+ "page",
239
+ "paint",
240
+ "pause",
241
+ "perceptible",
242
+ "ping",
243
+ "pointsize",
244
+ "polaroid",
245
+ "poly",
246
+ "posterize",
247
+ "precision",
248
+ "preview",
249
+ "process",
250
+ "quality",
251
+ "quantize",
252
+ "quiet",
253
+ "radial_blur",
254
+ "raise",
255
+ "random_threshold",
256
+ "range_threshold",
257
+ "red_primary",
258
+ "regard_warnings",
259
+ "region",
260
+ "remote",
261
+ "render",
262
+ "repage",
263
+ "resample",
264
+ "resize",
265
+ "resize_to_fill",
266
+ "resize_to_fit",
267
+ "resize_to_limit",
268
+ "resize_and_pad",
269
+ "respect_parentheses",
270
+ "reverse",
271
+ "roll",
272
+ "rotate",
273
+ "sample",
274
+ "sampling_factor",
275
+ "saver",
276
+ "scale",
277
+ "scene",
278
+ "screen",
279
+ "seed",
280
+ "segment",
281
+ "selective_blur",
282
+ "separate",
283
+ "sepia_tone",
284
+ "shade",
285
+ "shadow",
286
+ "shared_memory",
287
+ "sharpen",
288
+ "shave",
289
+ "shear",
290
+ "sigmoidal_contrast",
291
+ "silent",
292
+ "similarity_threshold",
293
+ "size",
294
+ "sketch",
295
+ "smush",
296
+ "snaps",
297
+ "solarize",
298
+ "sort_pixels",
299
+ "sparse_color",
300
+ "splice",
301
+ "spread",
302
+ "statistic",
303
+ "stegano",
304
+ "stereo",
305
+ "storage_type",
306
+ "stretch",
307
+ "strip",
308
+ "stroke",
309
+ "strokewidth",
310
+ "style",
311
+ "subimage_search",
312
+ "swap",
313
+ "swirl",
314
+ "synchronize",
315
+ "taint",
316
+ "text_font",
317
+ "threshold",
318
+ "thumbnail",
319
+ "tile_offset",
320
+ "tint",
321
+ "title",
322
+ "transform",
323
+ "transparent",
324
+ "transparent_color",
325
+ "transpose",
326
+ "transverse",
327
+ "treedepth",
328
+ "trim",
329
+ "type",
330
+ "undercolor",
331
+ "unique_colors",
332
+ "units",
333
+ "unsharp",
334
+ "update",
335
+ "valid_image",
336
+ "view",
337
+ "vignette",
338
+ "virtual_pixel",
339
+ "visual",
340
+ "watermark",
341
+ "wave",
342
+ "wavelet_denoise",
343
+ "weight",
344
+ "white_balance",
345
+ "white_point",
346
+ "white_threshold",
347
+ "window",
348
+ "window_group"
349
+ ]
350
+ mattr_accessor :unsupported_image_processing_arguments
351
+
61
352
  mattr_accessor :service_urls_expire_in, default: 5.minutes
62
353
 
63
354
  mattr_accessor :routes_prefix, default: "/rails/active_storage"
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: activestorage
3
3
  version: !ruby/object:Gem::Version
4
- version: 6.1.4.2
4
+ version: 6.1.7.7
5
5
  platform: ruby
6
6
  authors:
7
7
  - David Heinemeier Hansson
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2021-12-14 00:00:00.000000000 Z
11
+ date: 2024-02-21 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activesupport
@@ -16,70 +16,70 @@ dependencies:
16
16
  requirements:
17
17
  - - '='
18
18
  - !ruby/object:Gem::Version
19
- version: 6.1.4.2
19
+ version: 6.1.7.7
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - '='
25
25
  - !ruby/object:Gem::Version
26
- version: 6.1.4.2
26
+ version: 6.1.7.7
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: actionpack
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
31
  - - '='
32
32
  - !ruby/object:Gem::Version
33
- version: 6.1.4.2
33
+ version: 6.1.7.7
34
34
  type: :runtime
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
38
  - - '='
39
39
  - !ruby/object:Gem::Version
40
- version: 6.1.4.2
40
+ version: 6.1.7.7
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: activejob
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
45
  - - '='
46
46
  - !ruby/object:Gem::Version
47
- version: 6.1.4.2
47
+ version: 6.1.7.7
48
48
  type: :runtime
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
52
  - - '='
53
53
  - !ruby/object:Gem::Version
54
- version: 6.1.4.2
54
+ version: 6.1.7.7
55
55
  - !ruby/object:Gem::Dependency
56
56
  name: activerecord
57
57
  requirement: !ruby/object:Gem::Requirement
58
58
  requirements:
59
59
  - - '='
60
60
  - !ruby/object:Gem::Version
61
- version: 6.1.4.2
61
+ version: 6.1.7.7
62
62
  type: :runtime
63
63
  prerelease: false
64
64
  version_requirements: !ruby/object:Gem::Requirement
65
65
  requirements:
66
66
  - - '='
67
67
  - !ruby/object:Gem::Version
68
- version: 6.1.4.2
68
+ version: 6.1.7.7
69
69
  - !ruby/object:Gem::Dependency
70
70
  name: marcel
71
71
  requirement: !ruby/object:Gem::Requirement
72
72
  requirements:
73
73
  - - "~>"
74
74
  - !ruby/object:Gem::Version
75
- version: 1.0.0
75
+ version: '1.0'
76
76
  type: :runtime
77
77
  prerelease: false
78
78
  version_requirements: !ruby/object:Gem::Requirement
79
79
  requirements:
80
80
  - - "~>"
81
81
  - !ruby/object:Gem::Version
82
- version: 1.0.0
82
+ version: '1.0'
83
83
  - !ruby/object:Gem::Dependency
84
84
  name: mini_mime
85
85
  requirement: !ruby/object:Gem::Requirement
@@ -112,6 +112,7 @@ files:
112
112
  - app/controllers/active_storage/representations/base_controller.rb
113
113
  - app/controllers/active_storage/representations/proxy_controller.rb
114
114
  - app/controllers/active_storage/representations/redirect_controller.rb
115
+ - app/controllers/concerns/active_storage/disable_session.rb
115
116
  - app/controllers/concerns/active_storage/file_server.rb
116
117
  - app/controllers/concerns/active_storage/set_blob.rb
117
118
  - app/controllers/concerns/active_storage/set_current.rb
@@ -188,10 +189,11 @@ licenses:
188
189
  - MIT
189
190
  metadata:
190
191
  bug_tracker_uri: https://github.com/rails/rails/issues
191
- changelog_uri: https://github.com/rails/rails/blob/v6.1.4.2/activestorage/CHANGELOG.md
192
- documentation_uri: https://api.rubyonrails.org/v6.1.4.2/
192
+ changelog_uri: https://github.com/rails/rails/blob/v6.1.7.7/activestorage/CHANGELOG.md
193
+ documentation_uri: https://api.rubyonrails.org/v6.1.7.7/
193
194
  mailing_list_uri: https://discuss.rubyonrails.org/c/rubyonrails-talk
194
- source_code_uri: https://github.com/rails/rails/tree/v6.1.4.2/activestorage
195
+ source_code_uri: https://github.com/rails/rails/tree/v6.1.7.7/activestorage
196
+ rubygems_mfa_required: 'true'
195
197
  post_install_message:
196
198
  rdoc_options: []
197
199
  require_paths:
@@ -207,7 +209,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
207
209
  - !ruby/object:Gem::Version
208
210
  version: '0'
209
211
  requirements: []
210
- rubygems_version: 3.2.15
212
+ rubygems_version: 3.2.22
211
213
  signing_key:
212
214
  specification_version: 4
213
215
  summary: Local and cloud file storage framework.