imagekitio 4.0.0 → 4.1.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.
- checksums.yaml +4 -4
- data/CHANGELOG.md +34 -0
- data/README.md +1 -1
- data/lib/imagekitio/client.rb +4 -0
- data/lib/imagekitio/helpers/helper.rb +4 -0
- data/lib/imagekitio/helpers/transformation_utils.rb +7 -0
- data/lib/imagekitio/internal/transport/base_client.rb +7 -1
- data/lib/imagekitio/internal/transport/pooled_net_requester.rb +17 -24
- data/lib/imagekitio/internal/type/base_model.rb +1 -0
- data/lib/imagekitio/internal/type/union.rb +20 -8
- data/lib/imagekitio/internal/util.rb +7 -2
- data/lib/imagekitio/models/base_overlay.rb +73 -3
- data/lib/imagekitio/models/beta/v2/file_upload_params.rb +2 -2
- data/lib/imagekitio/models/beta/v2/file_upload_response.rb +21 -1
- data/lib/imagekitio/models/extension_config.rb +674 -0
- data/lib/imagekitio/models/extensions.rb +559 -1
- data/lib/imagekitio/models/file_update_response.rb +21 -1
- data/lib/imagekitio/models/file_upload_params.rb +2 -2
- data/lib/imagekitio/models/file_upload_response.rb +21 -1
- data/lib/imagekitio/models/image_overlay.rb +12 -0
- data/lib/imagekitio/models/saved_extension.rb +62 -0
- data/lib/imagekitio/models/saved_extension_create_params.rb +42 -0
- data/lib/imagekitio/models/saved_extension_delete_params.rb +14 -0
- data/lib/imagekitio/models/saved_extension_get_params.rb +14 -0
- data/lib/imagekitio/models/saved_extension_list_params.rb +14 -0
- data/lib/imagekitio/models/saved_extension_list_response.rb +8 -0
- data/lib/imagekitio/models/saved_extension_update_params.rb +42 -0
- data/lib/imagekitio/models/solid_color_overlay_transformation.rb +24 -12
- data/lib/imagekitio/models/subtitle_overlay.rb +12 -0
- data/lib/imagekitio/models/subtitle_overlay_transformation.rb +4 -3
- data/lib/imagekitio/models/text_overlay.rb +6 -0
- data/lib/imagekitio/models/text_overlay_transformation.rb +35 -19
- data/lib/imagekitio/models/transformation.rb +62 -12
- data/lib/imagekitio/models/unsafe_unwrap_webhook_event.rb +2 -0
- data/lib/imagekitio/models/unwrap_webhook_event.rb +2 -0
- data/lib/imagekitio/models/update_file_request.rb +2 -2
- data/lib/imagekitio/models/upload_pre_transform_success_event.rb +21 -1
- data/lib/imagekitio/models/video_overlay.rb +12 -0
- data/lib/imagekitio/models.rb +14 -0
- data/lib/imagekitio/resources/beta/v2/files.rb +1 -1
- data/lib/imagekitio/resources/files/metadata.rb +1 -1
- data/lib/imagekitio/resources/files.rb +1 -1
- data/lib/imagekitio/resources/saved_extensions.rb +146 -0
- data/lib/imagekitio/version.rb +1 -1
- data/lib/imagekitio.rb +11 -1
- data/manifest.yaml +2 -0
- data/rbi/imagekitio/client.rbi +3 -0
- data/rbi/imagekitio/internal/transport/base_client.rbi +5 -0
- data/rbi/imagekitio/internal/transport/pooled_net_requester.rbi +6 -2
- data/rbi/imagekitio/internal/type/base_model.rbi +8 -4
- data/rbi/imagekitio/models/base_overlay.rbi +110 -1
- data/rbi/imagekitio/models/beta/v2/file_upload_params.rbi +8 -0
- data/rbi/imagekitio/models/beta/v2/file_upload_response.rbi +61 -0
- data/rbi/imagekitio/models/extension_config.rbi +1403 -0
- data/rbi/imagekitio/models/extensions.rbi +1159 -0
- data/rbi/imagekitio/models/file_update_response.rbi +61 -0
- data/rbi/imagekitio/models/file_upload_params.rbi +8 -0
- data/rbi/imagekitio/models/file_upload_response.rbi +61 -0
- data/rbi/imagekitio/models/image_overlay.rbi +18 -0
- data/rbi/imagekitio/models/saved_extension.rbi +114 -0
- data/rbi/imagekitio/models/saved_extension_create_params.rbi +85 -0
- data/rbi/imagekitio/models/saved_extension_delete_params.rbi +30 -0
- data/rbi/imagekitio/models/saved_extension_get_params.rbi +30 -0
- data/rbi/imagekitio/models/saved_extension_list_params.rbi +30 -0
- data/rbi/imagekitio/models/saved_extension_list_response.rbi +11 -0
- data/rbi/imagekitio/models/saved_extension_update_params.rbi +106 -0
- data/rbi/imagekitio/models/solid_color_overlay_transformation.rbi +33 -18
- data/rbi/imagekitio/models/subtitle_overlay.rbi +18 -0
- data/rbi/imagekitio/models/subtitle_overlay_transformation.rbi +6 -4
- data/rbi/imagekitio/models/text_overlay.rbi +9 -0
- data/rbi/imagekitio/models/text_overlay_transformation.rbi +47 -26
- data/rbi/imagekitio/models/transformation.rbi +99 -18
- data/rbi/imagekitio/models/update_file_request.rbi +8 -0
- data/rbi/imagekitio/models/upload_pre_transform_success_event.rbi +61 -0
- data/rbi/imagekitio/models/video_overlay.rbi +18 -0
- data/rbi/imagekitio/models.rbi +14 -0
- data/rbi/imagekitio/resources/beta/v2/files.rbi +2 -0
- data/rbi/imagekitio/resources/files.rbi +2 -0
- data/rbi/imagekitio/resources/saved_extensions.rbi +114 -0
- data/sig/imagekitio/client.rbs +2 -0
- data/sig/imagekitio/internal/transport/base_client.rbs +2 -0
- data/sig/imagekitio/internal/transport/pooled_net_requester.rbs +4 -1
- data/sig/imagekitio/models/base_overlay.rbs +22 -0
- data/sig/imagekitio/models/beta/v2/file_upload_response.rbs +21 -0
- data/sig/imagekitio/models/extension_config.rbs +604 -0
- data/sig/imagekitio/models/extensions.rbs +489 -0
- data/sig/imagekitio/models/file_update_response.rbs +21 -0
- data/sig/imagekitio/models/file_upload_response.rbs +21 -0
- data/sig/imagekitio/models/saved_extension.rbs +59 -0
- data/sig/imagekitio/models/saved_extension_create_params.rbs +36 -0
- data/sig/imagekitio/models/saved_extension_delete_params.rbs +15 -0
- data/sig/imagekitio/models/saved_extension_get_params.rbs +15 -0
- data/sig/imagekitio/models/saved_extension_list_params.rbs +15 -0
- data/sig/imagekitio/models/saved_extension_list_response.rbs +7 -0
- data/sig/imagekitio/models/saved_extension_update_params.rbs +44 -0
- data/sig/imagekitio/models/solid_color_overlay_transformation.rbs +1 -1
- data/sig/imagekitio/models/text_overlay_transformation.rbs +1 -1
- data/sig/imagekitio/models/transformation.rbs +15 -1
- data/sig/imagekitio/models/upload_pre_transform_success_event.rbs +21 -0
- data/sig/imagekitio/models.rbs +14 -0
- data/sig/imagekitio/resources/saved_extensions.rbs +33 -0
- metadata +43 -2
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 6717d24cd84488c01c7393c38be3ac3c51ef9f217b4d9492f32c68eb6d3df003
|
|
4
|
+
data.tar.gz: 919ade7e57e4398449e88960776149fba5330d6372bcdda23c565d0611cbd575
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 1253e7406eab7e10d9433e87a5b09bc5bcd6949650cfd9c8780a8ebf0e21972fb31817825dec837e86dc43acfb14af3a2cd53fb04f3f35d9e3643e2510f992fd
|
|
7
|
+
data.tar.gz: 30dd22521808a03e97eb958ffdde26953606a3203af915dbfab69f7413c7f9ee5dd9aca905ffed50f7c9d4d06c777d893a2ce81b0af95e0374c8333d996f4d27
|
data/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,39 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## 4.1.0 (2026-01-16)
|
|
4
|
+
|
|
5
|
+
Full Changelog: [v4.0.0...v4.1.0](https://github.com/imagekit-developer/imagekit-ruby/compare/v4.0.0...v4.1.0)
|
|
6
|
+
|
|
7
|
+
### Features
|
|
8
|
+
|
|
9
|
+
* add layer_mode property to overlays and new transformation options ([97042ce](https://github.com/imagekit-developer/imagekit-ruby/commit/97042ce9bffaf101ab98dd7394caaf4df9a873ea))
|
|
10
|
+
* **api:** Add saved extensions API and enhance transformation options ([f1dc75e](https://github.com/imagekit-developer/imagekit-ruby/commit/f1dc75ecbe0a4a39472fdc10e9dc8f02e75ddc07))
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
### Bug Fixes
|
|
14
|
+
|
|
15
|
+
* add ai-tasks property to response schemas with enum values ([aad5e54](https://github.com/imagekit-developer/imagekit-ruby/commit/aad5e5413676af916e8149f07ae78aaff7c5c313))
|
|
16
|
+
* better thread safety via early initializing SSL store during HTTP client creation ([2bc0835](https://github.com/imagekit-developer/imagekit-ruby/commit/2bc0835981c29b717f0ad3a7d78c3c78027874e0))
|
|
17
|
+
* calling `break` out of streams should be instantaneous ([55bf4a9](https://github.com/imagekit-developer/imagekit-ruby/commit/55bf4a9b768f18f4adad903b2c9d93178a670151))
|
|
18
|
+
* issue where json.parse errors when receiving HTTP 204 with nobody ([dd32cb1](https://github.com/imagekit-developer/imagekit-ruby/commit/dd32cb1572bc155db85ed898011374889996b3fd))
|
|
19
|
+
* remove redundant base64 require statement ([4c73b42](https://github.com/imagekit-developer/imagekit-ruby/commit/4c73b425564e980b21dfd1f3554f8a2e45aaeecf))
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
### Chores
|
|
23
|
+
|
|
24
|
+
* bump dependency version and update sorbet types ([8d89fb2](https://github.com/imagekit-developer/imagekit-ruby/commit/8d89fb2c1654420f83bb7efedcc9056c5a7e3c79))
|
|
25
|
+
* **client:** send user-agent header ([796027d](https://github.com/imagekit-developer/imagekit-ruby/commit/796027d185c93067c32bac98323d8a82aeaf9bfe))
|
|
26
|
+
* explicitly require "base64" gem ([1b4181d](https://github.com/imagekit-developer/imagekit-ruby/commit/1b4181d4e57d2c12306f6d3f43b832f63ab68053))
|
|
27
|
+
* **internal:** codegen related update ([3a93def](https://github.com/imagekit-developer/imagekit-ruby/commit/3a93def2d09609b359824a627183833ae59d74e1))
|
|
28
|
+
* **internal:** codegen related update ([4c161f0](https://github.com/imagekit-developer/imagekit-ruby/commit/4c161f048927df137a12d33a5a1b79af1c561b8b))
|
|
29
|
+
* move `cgi` into dependencies for ruby 4 ([54261ef](https://github.com/imagekit-developer/imagekit-ruby/commit/54261ef9f24e206d2180dc0a205464154af4c3ed))
|
|
30
|
+
|
|
31
|
+
|
|
32
|
+
### Documentation
|
|
33
|
+
|
|
34
|
+
* prominently feature MCP server setup in root SDK readmes ([777f8cf](https://github.com/imagekit-developer/imagekit-ruby/commit/777f8cf5cc692eed3e8f6217caf25a85d17201f7))
|
|
35
|
+
* remove MCP Server section from README ([db0f71c](https://github.com/imagekit-developer/imagekit-ruby/commit/db0f71cce159f4c395fe8c7c0526d4108934fc6b))
|
|
36
|
+
|
|
3
37
|
## 4.0.0 (2025-11-03)
|
|
4
38
|
|
|
5
39
|
Full Changelog: [v0.0.1...v4.0.0](https://github.com/imagekit-developer/imagekit-ruby/compare/v0.0.1...v4.0.0)
|
data/README.md
CHANGED
data/lib/imagekitio/client.rb
CHANGED
|
@@ -31,6 +31,9 @@ module Imagekitio
|
|
|
31
31
|
# @return [Imagekitio::Resources::Files]
|
|
32
32
|
attr_reader :files
|
|
33
33
|
|
|
34
|
+
# @return [Imagekitio::Resources::SavedExtensions]
|
|
35
|
+
attr_reader :saved_extensions
|
|
36
|
+
|
|
34
37
|
# @return [Imagekitio::Resources::Assets]
|
|
35
38
|
attr_reader :assets
|
|
36
39
|
|
|
@@ -117,6 +120,7 @@ module Imagekitio
|
|
|
117
120
|
|
|
118
121
|
@custom_metadata_fields = Imagekitio::Resources::CustomMetadataFields.new(client: self)
|
|
119
122
|
@files = Imagekitio::Resources::Files.new(client: self)
|
|
123
|
+
@saved_extensions = Imagekitio::Resources::SavedExtensions.new(client: self)
|
|
120
124
|
@assets = Imagekitio::Resources::Assets.new(client: self)
|
|
121
125
|
@cache = Imagekitio::Resources::Cache.new(client: self)
|
|
122
126
|
@folders = Imagekitio::Resources::Folders.new(client: self)
|
|
@@ -626,6 +626,10 @@ module Imagekitio
|
|
|
626
626
|
|
|
627
627
|
# Add overlay properties like position, timing, transformations (matching Node.js)
|
|
628
628
|
def add_overlay_properties(parts, overlay)
|
|
629
|
+
# Add layer_mode property
|
|
630
|
+
layer_mode = safe_get(overlay, :layer_mode)
|
|
631
|
+
parts << "lm-#{layer_mode}" if layer_mode
|
|
632
|
+
|
|
629
633
|
# Add position properties
|
|
630
634
|
position = safe_get(overlay, :position)
|
|
631
635
|
if position
|
|
@@ -82,6 +82,9 @@ module Imagekitio
|
|
|
82
82
|
"unsharp_mask" => "e-usm",
|
|
83
83
|
"unsharpMask" => "e-usm",
|
|
84
84
|
"gradient" => "e-gradient",
|
|
85
|
+
"color_replace" => "cr",
|
|
86
|
+
"colorReplace" => "cr",
|
|
87
|
+
"distort" => "e-distort",
|
|
85
88
|
|
|
86
89
|
# Other flags & finishing
|
|
87
90
|
"progressive" => "pr",
|
|
@@ -109,6 +112,10 @@ module Imagekitio
|
|
|
109
112
|
"line_height" => "lh",
|
|
110
113
|
"lineHeight" => "lh",
|
|
111
114
|
|
|
115
|
+
# Overlay transformations
|
|
116
|
+
"layer_mode" => "lm",
|
|
117
|
+
"layerMode" => "lm",
|
|
118
|
+
|
|
112
119
|
# Subtitles transformations
|
|
113
120
|
"font_outline" => "fol",
|
|
114
121
|
"fontOutline" => "fol",
|
|
@@ -201,7 +201,8 @@ module Imagekitio
|
|
|
201
201
|
self.class::PLATFORM_HEADERS,
|
|
202
202
|
{
|
|
203
203
|
"accept" => "application/json",
|
|
204
|
-
"content-type" => "application/json"
|
|
204
|
+
"content-type" => "application/json",
|
|
205
|
+
"user-agent" => user_agent
|
|
205
206
|
},
|
|
206
207
|
headers
|
|
207
208
|
)
|
|
@@ -219,6 +220,11 @@ module Imagekitio
|
|
|
219
220
|
# @return [Hash{String=>String}]
|
|
220
221
|
private def auth_headers = {}
|
|
221
222
|
|
|
223
|
+
# @api private
|
|
224
|
+
#
|
|
225
|
+
# @return [String]
|
|
226
|
+
private def user_agent = "#{self.class.name}/Ruby #{Imagekitio::VERSION}"
|
|
227
|
+
|
|
222
228
|
# @api private
|
|
223
229
|
#
|
|
224
230
|
# @return [String]
|
|
@@ -16,10 +16,11 @@ module Imagekitio
|
|
|
16
16
|
class << self
|
|
17
17
|
# @api private
|
|
18
18
|
#
|
|
19
|
+
# @param cert_store [OpenSSL::X509::Store]
|
|
19
20
|
# @param url [URI::Generic]
|
|
20
21
|
#
|
|
21
22
|
# @return [Net::HTTP]
|
|
22
|
-
def connect(url)
|
|
23
|
+
def connect(cert_store:, url:)
|
|
23
24
|
port =
|
|
24
25
|
case [url.port, url.scheme]
|
|
25
26
|
in [Integer, _]
|
|
@@ -34,18 +35,7 @@ module Imagekitio
|
|
|
34
35
|
_1.use_ssl = %w[https wss].include?(url.scheme)
|
|
35
36
|
_1.max_retries = 0
|
|
36
37
|
|
|
37
|
-
|
|
38
|
-
# platforms. Similar to: https://github.com/stripe/stripe-ruby/pull/397
|
|
39
|
-
# Without this fix you may see errors like:
|
|
40
|
-
# .rbenv/versions/3.2.0/lib/ruby/3.2.0/net/protocol.rb:46:in `connect_nonblock':
|
|
41
|
-
# SSL_connect returned=1 errno=0 peeraddr=52.23.130.57:443 state=error:
|
|
42
|
-
# certificate verify failed (unable to get certificate CRL) (OpenSSL::SSL::SSLError)
|
|
43
|
-
if _1.use_ssl?
|
|
44
|
-
cert_store = OpenSSL::X509::Store.new
|
|
45
|
-
cert_store.set_default_paths
|
|
46
|
-
_1.cert_store = cert_store
|
|
47
|
-
_1.verify_mode = OpenSSL::SSL::VERIFY_PEER
|
|
48
|
-
end
|
|
38
|
+
(_1.cert_store = cert_store) if _1.use_ssl?
|
|
49
39
|
end
|
|
50
40
|
end
|
|
51
41
|
|
|
@@ -115,7 +105,7 @@ module Imagekitio
|
|
|
115
105
|
pool =
|
|
116
106
|
@mutex.synchronize do
|
|
117
107
|
@pools[origin] ||= ConnectionPool.new(size: @size) do
|
|
118
|
-
self.class.connect(url)
|
|
108
|
+
self.class.connect(cert_store: @cert_store, url: url)
|
|
119
109
|
end
|
|
120
110
|
end
|
|
121
111
|
|
|
@@ -163,17 +153,19 @@ module Imagekitio
|
|
|
163
153
|
end
|
|
164
154
|
|
|
165
155
|
self.class.calibrate_socket_timeout(conn, deadline)
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
156
|
+
::Kernel.catch(:jump) do
|
|
157
|
+
conn.request(req) do |rsp|
|
|
158
|
+
y << [req, rsp]
|
|
159
|
+
::Kernel.throw(:jump) if finished
|
|
160
|
+
|
|
161
|
+
rsp.read_body do |bytes|
|
|
162
|
+
y << bytes.force_encoding(Encoding::BINARY)
|
|
163
|
+
::Kernel.throw(:jump) if finished
|
|
164
|
+
|
|
165
|
+
self.class.calibrate_socket_timeout(conn, deadline)
|
|
166
|
+
end
|
|
167
|
+
eof = true
|
|
175
168
|
end
|
|
176
|
-
eof = true
|
|
177
169
|
end
|
|
178
170
|
end
|
|
179
171
|
ensure
|
|
@@ -205,6 +197,7 @@ module Imagekitio
|
|
|
205
197
|
def initialize(size: self.class::DEFAULT_MAX_CONNECTIONS)
|
|
206
198
|
@mutex = Mutex.new
|
|
207
199
|
@size = size
|
|
200
|
+
@cert_store = OpenSSL::X509::Store.new.tap(&:set_default_paths)
|
|
208
201
|
@pools = {}
|
|
209
202
|
end
|
|
210
203
|
|
|
@@ -6,16 +6,28 @@ module Imagekitio
|
|
|
6
6
|
# @api private
|
|
7
7
|
#
|
|
8
8
|
# @example
|
|
9
|
-
# # `
|
|
10
|
-
# case
|
|
11
|
-
# when Imagekitio::
|
|
12
|
-
#
|
|
13
|
-
# when Imagekitio::
|
|
14
|
-
#
|
|
15
|
-
# when Imagekitio::
|
|
9
|
+
# # `extension_config` is a `Imagekitio::ExtensionConfig`
|
|
10
|
+
# case extension_config
|
|
11
|
+
# when Imagekitio::ExtensionConfig::RemoveBg
|
|
12
|
+
# puts(extension_config.name)
|
|
13
|
+
# when Imagekitio::ExtensionConfig::AIAutoDescription
|
|
14
|
+
# puts(extension_config.name)
|
|
15
|
+
# when Imagekitio::ExtensionConfig::AITasks
|
|
16
|
+
# puts(extension_config.tasks)
|
|
17
|
+
# else
|
|
18
|
+
# puts(extension_config)
|
|
19
|
+
# end
|
|
20
|
+
#
|
|
21
|
+
# @example
|
|
22
|
+
# case extension_config
|
|
23
|
+
# in {name: :"remove-bg", options: options}
|
|
24
|
+
# puts(options)
|
|
25
|
+
# in {name: :"ai-auto-description"}
|
|
16
26
|
# # ...
|
|
27
|
+
# in {name: :"ai-tasks", tasks: tasks}
|
|
28
|
+
# puts(tasks)
|
|
17
29
|
# else
|
|
18
|
-
# puts(
|
|
30
|
+
# puts(extension_config)
|
|
19
31
|
# end
|
|
20
32
|
module Union
|
|
21
33
|
include Imagekitio::Internal::Type::Converter
|
|
@@ -657,7 +657,8 @@ module Imagekitio
|
|
|
657
657
|
def decode_content(headers, stream:, suppress_error: false)
|
|
658
658
|
case (content_type = headers["content-type"])
|
|
659
659
|
in Imagekitio::Internal::Util::JSON_CONTENT
|
|
660
|
-
json = stream.to_a.join
|
|
660
|
+
return nil if (json = stream.to_a.join).empty?
|
|
661
|
+
|
|
661
662
|
begin
|
|
662
663
|
JSON.parse(json, symbolize_names: true)
|
|
663
664
|
rescue JSON::ParserError => e
|
|
@@ -667,7 +668,11 @@ module Imagekitio
|
|
|
667
668
|
in Imagekitio::Internal::Util::JSONL_CONTENT
|
|
668
669
|
lines = decode_lines(stream)
|
|
669
670
|
chain_fused(lines) do |y|
|
|
670
|
-
lines.each
|
|
671
|
+
lines.each do
|
|
672
|
+
next if _1.empty?
|
|
673
|
+
|
|
674
|
+
y << JSON.parse(_1, symbolize_names: true)
|
|
675
|
+
end
|
|
671
676
|
end
|
|
672
677
|
in %r{^text/event-stream}
|
|
673
678
|
lines = decode_lines(stream)
|
|
@@ -3,19 +3,89 @@
|
|
|
3
3
|
module Imagekitio
|
|
4
4
|
module Models
|
|
5
5
|
class BaseOverlay < Imagekitio::Internal::Type::BaseModel
|
|
6
|
+
# @!attribute layer_mode
|
|
7
|
+
# Controls how the layer blends with the base image or underlying content. Maps to
|
|
8
|
+
# `lm` in the URL. By default, layers completely cover the base image beneath
|
|
9
|
+
# them. Layer modes change this behavior:
|
|
10
|
+
#
|
|
11
|
+
# - `multiply`: Multiplies the pixel values of the layer with the base image. The
|
|
12
|
+
# result is always darker than the original images. This is ideal for applying
|
|
13
|
+
# shadows or color tints.
|
|
14
|
+
# - `displace`: Uses the layer as a displacement map to distort pixels in the base
|
|
15
|
+
# image. The red channel controls horizontal displacement, and the green channel
|
|
16
|
+
# controls vertical displacement. Requires `x` or `y` parameter to control
|
|
17
|
+
# displacement magnitude.
|
|
18
|
+
# - `cutout`: Acts as an inverse mask where opaque areas of the layer turn the
|
|
19
|
+
# base image transparent, while transparent areas leave the base image
|
|
20
|
+
# unchanged. This mode functions like a hole-punch, effectively cutting the
|
|
21
|
+
# shape of the layer out of the underlying image.
|
|
22
|
+
# - `cutter`: Acts as a shape mask where only the parts of the base image that
|
|
23
|
+
# fall inside the opaque area of the layer are preserved. This mode functions
|
|
24
|
+
# like a cookie-cutter, trimming the base image to match the specific dimensions
|
|
25
|
+
# and shape of the layer. See
|
|
26
|
+
# [Layer modes](https://imagekit.io/docs/add-overlays-on-images#layer-modes).
|
|
27
|
+
#
|
|
28
|
+
# @return [Symbol, Imagekitio::Models::BaseOverlay::LayerMode, nil]
|
|
29
|
+
optional :layer_mode, enum: -> { Imagekitio::BaseOverlay::LayerMode }, api_name: :layerMode
|
|
30
|
+
|
|
6
31
|
# @!attribute position
|
|
32
|
+
# Specifies the overlay's position relative to the parent asset. See
|
|
33
|
+
# [Position of Layer](https://imagekit.io/docs/transformations#position-of-layer).
|
|
7
34
|
#
|
|
8
35
|
# @return [Imagekitio::Models::OverlayPosition, nil]
|
|
9
36
|
optional :position, -> { Imagekitio::OverlayPosition }
|
|
10
37
|
|
|
11
38
|
# @!attribute timing
|
|
39
|
+
# Specifies timing information for the overlay (only applicable if the base asset
|
|
40
|
+
# is a video). See
|
|
41
|
+
# [Position of Layer](https://imagekit.io/docs/transformations#position-of-layer).
|
|
12
42
|
#
|
|
13
43
|
# @return [Imagekitio::Models::OverlayTiming, nil]
|
|
14
44
|
optional :timing, -> { Imagekitio::OverlayTiming }
|
|
15
45
|
|
|
16
|
-
# @!method initialize(position: nil, timing: nil)
|
|
17
|
-
#
|
|
18
|
-
#
|
|
46
|
+
# @!method initialize(layer_mode: nil, position: nil, timing: nil)
|
|
47
|
+
# Some parameter documentations has been truncated, see
|
|
48
|
+
# {Imagekitio::Models::BaseOverlay} for more details.
|
|
49
|
+
#
|
|
50
|
+
# @param layer_mode [Symbol, Imagekitio::Models::BaseOverlay::LayerMode] Controls how the layer blends with the base image or underlying content. Maps to
|
|
51
|
+
#
|
|
52
|
+
# @param position [Imagekitio::Models::OverlayPosition] Specifies the overlay's position relative to the parent asset.
|
|
53
|
+
#
|
|
54
|
+
# @param timing [Imagekitio::Models::OverlayTiming] Specifies timing information for the overlay (only applicable if the base asset
|
|
55
|
+
|
|
56
|
+
# Controls how the layer blends with the base image or underlying content. Maps to
|
|
57
|
+
# `lm` in the URL. By default, layers completely cover the base image beneath
|
|
58
|
+
# them. Layer modes change this behavior:
|
|
59
|
+
#
|
|
60
|
+
# - `multiply`: Multiplies the pixel values of the layer with the base image. The
|
|
61
|
+
# result is always darker than the original images. This is ideal for applying
|
|
62
|
+
# shadows or color tints.
|
|
63
|
+
# - `displace`: Uses the layer as a displacement map to distort pixels in the base
|
|
64
|
+
# image. The red channel controls horizontal displacement, and the green channel
|
|
65
|
+
# controls vertical displacement. Requires `x` or `y` parameter to control
|
|
66
|
+
# displacement magnitude.
|
|
67
|
+
# - `cutout`: Acts as an inverse mask where opaque areas of the layer turn the
|
|
68
|
+
# base image transparent, while transparent areas leave the base image
|
|
69
|
+
# unchanged. This mode functions like a hole-punch, effectively cutting the
|
|
70
|
+
# shape of the layer out of the underlying image.
|
|
71
|
+
# - `cutter`: Acts as a shape mask where only the parts of the base image that
|
|
72
|
+
# fall inside the opaque area of the layer are preserved. This mode functions
|
|
73
|
+
# like a cookie-cutter, trimming the base image to match the specific dimensions
|
|
74
|
+
# and shape of the layer. See
|
|
75
|
+
# [Layer modes](https://imagekit.io/docs/add-overlays-on-images#layer-modes).
|
|
76
|
+
#
|
|
77
|
+
# @see Imagekitio::Models::BaseOverlay#layer_mode
|
|
78
|
+
module LayerMode
|
|
79
|
+
extend Imagekitio::Internal::Type::Enum
|
|
80
|
+
|
|
81
|
+
MULTIPLY = :multiply
|
|
82
|
+
CUTTER = :cutter
|
|
83
|
+
CUTOUT = :cutout
|
|
84
|
+
DISPLACE = :displace
|
|
85
|
+
|
|
86
|
+
# @!method self.values
|
|
87
|
+
# @return [Array<Symbol>]
|
|
88
|
+
end
|
|
19
89
|
end
|
|
20
90
|
end
|
|
21
91
|
end
|
|
@@ -149,7 +149,7 @@ module Imagekitio
|
|
|
149
149
|
# Array of extensions to be applied to the asset. Each extension can be configured
|
|
150
150
|
# with specific parameters based on the extension type.
|
|
151
151
|
#
|
|
152
|
-
# @return [Array<Imagekitio::Models::ExtensionItem::RemoveBg, Imagekitio::Models::ExtensionItem::AIAutoDescription, Imagekitio::Models::ExtensionItem::AutoTaggingExtension>, nil]
|
|
152
|
+
# @return [Array<Imagekitio::Models::ExtensionItem::RemoveBg, Imagekitio::Models::ExtensionItem::AIAutoDescription, Imagekitio::Models::ExtensionItem::AITasks, Imagekitio::Models::ExtensionItem::SavedExtension, Imagekitio::Models::ExtensionItem::AutoTaggingExtension>, nil]
|
|
153
153
|
optional :extensions, -> { Imagekitio::Internal::Type::ArrayOf[union: Imagekitio::ExtensionItem] }
|
|
154
154
|
|
|
155
155
|
# @!attribute folder
|
|
@@ -286,7 +286,7 @@ module Imagekitio
|
|
|
286
286
|
#
|
|
287
287
|
# @param description [String] Optional text to describe the contents of the file.
|
|
288
288
|
#
|
|
289
|
-
# @param extensions [Array<Imagekitio::Models::ExtensionItem::RemoveBg, Imagekitio::Models::ExtensionItem::AIAutoDescription, Imagekitio::Models::ExtensionItem::AutoTaggingExtension>] Array of extensions to be applied to the asset. Each extension can be configured
|
|
289
|
+
# @param extensions [Array<Imagekitio::Models::ExtensionItem::RemoveBg, Imagekitio::Models::ExtensionItem::AIAutoDescription, Imagekitio::Models::ExtensionItem::AITasks, Imagekitio::Models::ExtensionItem::SavedExtension, Imagekitio::Models::ExtensionItem::AutoTaggingExtension>] Array of extensions to be applied to the asset. Each extension can be configured
|
|
290
290
|
#
|
|
291
291
|
# @param folder [String] The folder path in which the image has to be uploaded. If the folder(s) didn't e
|
|
292
292
|
#
|
|
@@ -299,6 +299,13 @@ module Imagekitio
|
|
|
299
299
|
enum: -> { Imagekitio::Models::Beta::V2::FileUploadResponse::ExtensionStatus::AIAutoDescription },
|
|
300
300
|
api_name: :"ai-auto-description"
|
|
301
301
|
|
|
302
|
+
# @!attribute ai_tasks
|
|
303
|
+
#
|
|
304
|
+
# @return [Symbol, Imagekitio::Models::Beta::V2::FileUploadResponse::ExtensionStatus::AITasks, nil]
|
|
305
|
+
optional :ai_tasks,
|
|
306
|
+
enum: -> { Imagekitio::Models::Beta::V2::FileUploadResponse::ExtensionStatus::AITasks },
|
|
307
|
+
api_name: :"ai-tasks"
|
|
308
|
+
|
|
302
309
|
# @!attribute aws_auto_tagging
|
|
303
310
|
#
|
|
304
311
|
# @return [Symbol, Imagekitio::Models::Beta::V2::FileUploadResponse::ExtensionStatus::AwsAutoTagging, nil]
|
|
@@ -320,7 +327,7 @@ module Imagekitio
|
|
|
320
327
|
enum: -> { Imagekitio::Models::Beta::V2::FileUploadResponse::ExtensionStatus::RemoveBg },
|
|
321
328
|
api_name: :"remove-bg"
|
|
322
329
|
|
|
323
|
-
# @!method initialize(ai_auto_description: nil, aws_auto_tagging: nil, google_auto_tagging: nil, remove_bg: nil)
|
|
330
|
+
# @!method initialize(ai_auto_description: nil, ai_tasks: nil, aws_auto_tagging: nil, google_auto_tagging: nil, remove_bg: nil)
|
|
324
331
|
# Extension names with their processing status at the time of completion of the
|
|
325
332
|
# request. It could have one of the following status values:
|
|
326
333
|
#
|
|
@@ -332,6 +339,7 @@ module Imagekitio
|
|
|
332
339
|
# If no extension was requested, then this parameter is not returned.
|
|
333
340
|
#
|
|
334
341
|
# @param ai_auto_description [Symbol, Imagekitio::Models::Beta::V2::FileUploadResponse::ExtensionStatus::AIAutoDescription]
|
|
342
|
+
# @param ai_tasks [Symbol, Imagekitio::Models::Beta::V2::FileUploadResponse::ExtensionStatus::AITasks]
|
|
335
343
|
# @param aws_auto_tagging [Symbol, Imagekitio::Models::Beta::V2::FileUploadResponse::ExtensionStatus::AwsAutoTagging]
|
|
336
344
|
# @param google_auto_tagging [Symbol, Imagekitio::Models::Beta::V2::FileUploadResponse::ExtensionStatus::GoogleAutoTagging]
|
|
337
345
|
# @param remove_bg [Symbol, Imagekitio::Models::Beta::V2::FileUploadResponse::ExtensionStatus::RemoveBg]
|
|
@@ -348,6 +356,18 @@ module Imagekitio
|
|
|
348
356
|
# @return [Array<Symbol>]
|
|
349
357
|
end
|
|
350
358
|
|
|
359
|
+
# @see Imagekitio::Models::Beta::V2::FileUploadResponse::ExtensionStatus#ai_tasks
|
|
360
|
+
module AITasks
|
|
361
|
+
extend Imagekitio::Internal::Type::Enum
|
|
362
|
+
|
|
363
|
+
SUCCESS = :success
|
|
364
|
+
PENDING = :pending
|
|
365
|
+
FAILED = :failed
|
|
366
|
+
|
|
367
|
+
# @!method self.values
|
|
368
|
+
# @return [Array<Symbol>]
|
|
369
|
+
end
|
|
370
|
+
|
|
351
371
|
# @see Imagekitio::Models::Beta::V2::FileUploadResponse::ExtensionStatus#aws_auto_tagging
|
|
352
372
|
module AwsAutoTagging
|
|
353
373
|
extend Imagekitio::Internal::Type::Enum
|