imagekitio 4.0.0 → 4.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (102) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +47 -0
  3. data/README.md +1 -1
  4. data/lib/imagekitio/client.rb +4 -0
  5. data/lib/imagekitio/helpers/helper.rb +4 -0
  6. data/lib/imagekitio/helpers/transformation_utils.rb +7 -0
  7. data/lib/imagekitio/internal/transport/base_client.rb +7 -1
  8. data/lib/imagekitio/internal/transport/pooled_net_requester.rb +17 -24
  9. data/lib/imagekitio/internal/type/base_model.rb +1 -0
  10. data/lib/imagekitio/internal/type/union.rb +20 -8
  11. data/lib/imagekitio/internal/util.rb +7 -2
  12. data/lib/imagekitio/models/base_overlay.rb +73 -3
  13. data/lib/imagekitio/models/beta/v2/file_upload_params.rb +2 -2
  14. data/lib/imagekitio/models/beta/v2/file_upload_response.rb +21 -1
  15. data/lib/imagekitio/models/extension_config.rb +674 -0
  16. data/lib/imagekitio/models/extensions.rb +559 -1
  17. data/lib/imagekitio/models/file_update_response.rb +21 -1
  18. data/lib/imagekitio/models/file_upload_params.rb +2 -2
  19. data/lib/imagekitio/models/file_upload_response.rb +21 -1
  20. data/lib/imagekitio/models/image_overlay.rb +12 -0
  21. data/lib/imagekitio/models/saved_extension.rb +62 -0
  22. data/lib/imagekitio/models/saved_extension_create_params.rb +42 -0
  23. data/lib/imagekitio/models/saved_extension_delete_params.rb +14 -0
  24. data/lib/imagekitio/models/saved_extension_get_params.rb +14 -0
  25. data/lib/imagekitio/models/saved_extension_list_params.rb +14 -0
  26. data/lib/imagekitio/models/saved_extension_list_response.rb +8 -0
  27. data/lib/imagekitio/models/saved_extension_update_params.rb +42 -0
  28. data/lib/imagekitio/models/solid_color_overlay_transformation.rb +24 -12
  29. data/lib/imagekitio/models/subtitle_overlay.rb +12 -0
  30. data/lib/imagekitio/models/subtitle_overlay_transformation.rb +4 -3
  31. data/lib/imagekitio/models/text_overlay.rb +6 -0
  32. data/lib/imagekitio/models/text_overlay_transformation.rb +35 -19
  33. data/lib/imagekitio/models/transformation.rb +62 -12
  34. data/lib/imagekitio/models/unsafe_unwrap_webhook_event.rb +2 -0
  35. data/lib/imagekitio/models/unwrap_webhook_event.rb +2 -0
  36. data/lib/imagekitio/models/update_file_request.rb +2 -2
  37. data/lib/imagekitio/models/upload_pre_transform_success_event.rb +21 -1
  38. data/lib/imagekitio/models/video_overlay.rb +12 -0
  39. data/lib/imagekitio/models.rb +14 -0
  40. data/lib/imagekitio/resources/beta/v2/files.rb +1 -1
  41. data/lib/imagekitio/resources/files/metadata.rb +1 -1
  42. data/lib/imagekitio/resources/files.rb +1 -1
  43. data/lib/imagekitio/resources/saved_extensions.rb +146 -0
  44. data/lib/imagekitio/version.rb +1 -1
  45. data/lib/imagekitio.rb +11 -1
  46. data/manifest.yaml +2 -0
  47. data/rbi/imagekitio/client.rbi +3 -0
  48. data/rbi/imagekitio/internal/transport/base_client.rbi +5 -0
  49. data/rbi/imagekitio/internal/transport/pooled_net_requester.rbi +6 -2
  50. data/rbi/imagekitio/internal/type/base_model.rbi +8 -4
  51. data/rbi/imagekitio/models/base_overlay.rbi +110 -1
  52. data/rbi/imagekitio/models/beta/v2/file_upload_params.rbi +8 -0
  53. data/rbi/imagekitio/models/beta/v2/file_upload_response.rbi +61 -0
  54. data/rbi/imagekitio/models/extension_config.rbi +1406 -0
  55. data/rbi/imagekitio/models/extensions.rbi +1162 -0
  56. data/rbi/imagekitio/models/file_update_response.rbi +61 -0
  57. data/rbi/imagekitio/models/file_upload_params.rbi +8 -0
  58. data/rbi/imagekitio/models/file_upload_response.rbi +61 -0
  59. data/rbi/imagekitio/models/image_overlay.rbi +18 -0
  60. data/rbi/imagekitio/models/saved_extension.rbi +114 -0
  61. data/rbi/imagekitio/models/saved_extension_create_params.rbi +85 -0
  62. data/rbi/imagekitio/models/saved_extension_delete_params.rbi +30 -0
  63. data/rbi/imagekitio/models/saved_extension_get_params.rbi +30 -0
  64. data/rbi/imagekitio/models/saved_extension_list_params.rbi +30 -0
  65. data/rbi/imagekitio/models/saved_extension_list_response.rbi +11 -0
  66. data/rbi/imagekitio/models/saved_extension_update_params.rbi +106 -0
  67. data/rbi/imagekitio/models/solid_color_overlay_transformation.rbi +33 -18
  68. data/rbi/imagekitio/models/subtitle_overlay.rbi +18 -0
  69. data/rbi/imagekitio/models/subtitle_overlay_transformation.rbi +6 -4
  70. data/rbi/imagekitio/models/text_overlay.rbi +9 -0
  71. data/rbi/imagekitio/models/text_overlay_transformation.rbi +47 -26
  72. data/rbi/imagekitio/models/transformation.rbi +99 -18
  73. data/rbi/imagekitio/models/update_file_request.rbi +8 -0
  74. data/rbi/imagekitio/models/upload_pre_transform_success_event.rbi +61 -0
  75. data/rbi/imagekitio/models/video_overlay.rbi +18 -0
  76. data/rbi/imagekitio/models.rbi +14 -0
  77. data/rbi/imagekitio/resources/beta/v2/files.rbi +2 -0
  78. data/rbi/imagekitio/resources/files.rbi +2 -0
  79. data/rbi/imagekitio/resources/saved_extensions.rbi +114 -0
  80. data/sig/imagekitio/client.rbs +2 -0
  81. data/sig/imagekitio/internal/transport/base_client.rbs +2 -0
  82. data/sig/imagekitio/internal/transport/pooled_net_requester.rbs +4 -1
  83. data/sig/imagekitio/models/base_overlay.rbs +22 -0
  84. data/sig/imagekitio/models/beta/v2/file_upload_response.rbs +21 -0
  85. data/sig/imagekitio/models/extension_config.rbs +606 -0
  86. data/sig/imagekitio/models/extensions.rbs +491 -0
  87. data/sig/imagekitio/models/file_update_response.rbs +21 -0
  88. data/sig/imagekitio/models/file_upload_response.rbs +21 -0
  89. data/sig/imagekitio/models/saved_extension.rbs +59 -0
  90. data/sig/imagekitio/models/saved_extension_create_params.rbs +36 -0
  91. data/sig/imagekitio/models/saved_extension_delete_params.rbs +15 -0
  92. data/sig/imagekitio/models/saved_extension_get_params.rbs +15 -0
  93. data/sig/imagekitio/models/saved_extension_list_params.rbs +15 -0
  94. data/sig/imagekitio/models/saved_extension_list_response.rbs +7 -0
  95. data/sig/imagekitio/models/saved_extension_update_params.rbs +44 -0
  96. data/sig/imagekitio/models/solid_color_overlay_transformation.rbs +1 -1
  97. data/sig/imagekitio/models/text_overlay_transformation.rbs +1 -1
  98. data/sig/imagekitio/models/transformation.rbs +15 -1
  99. data/sig/imagekitio/models/upload_pre_transform_success_event.rbs +21 -0
  100. data/sig/imagekitio/models.rbs +14 -0
  101. data/sig/imagekitio/resources/saved_extensions.rbs +33 -0
  102. metadata +43 -2
@@ -8,12 +8,45 @@ module Imagekitio
8
8
  T.any(Imagekitio::BaseOverlay, Imagekitio::Internal::AnyHash)
9
9
  end
10
10
 
11
+ # Controls how the layer blends with the base image or underlying content. Maps to
12
+ # `lm` in the URL. By default, layers completely cover the base image beneath
13
+ # them. Layer modes change this behavior:
14
+ #
15
+ # - `multiply`: Multiplies the pixel values of the layer with the base image. The
16
+ # result is always darker than the original images. This is ideal for applying
17
+ # shadows or color tints.
18
+ # - `displace`: Uses the layer as a displacement map to distort pixels in the base
19
+ # image. The red channel controls horizontal displacement, and the green channel
20
+ # controls vertical displacement. Requires `x` or `y` parameter to control
21
+ # displacement magnitude.
22
+ # - `cutout`: Acts as an inverse mask where opaque areas of the layer turn the
23
+ # base image transparent, while transparent areas leave the base image
24
+ # unchanged. This mode functions like a hole-punch, effectively cutting the
25
+ # shape of the layer out of the underlying image.
26
+ # - `cutter`: Acts as a shape mask where only the parts of the base image that
27
+ # fall inside the opaque area of the layer are preserved. This mode functions
28
+ # like a cookie-cutter, trimming the base image to match the specific dimensions
29
+ # and shape of the layer. See
30
+ # [Layer modes](https://imagekit.io/docs/add-overlays-on-images#layer-modes).
31
+ sig { returns(T.nilable(Imagekitio::BaseOverlay::LayerMode::OrSymbol)) }
32
+ attr_reader :layer_mode
33
+
34
+ sig do
35
+ params(layer_mode: Imagekitio::BaseOverlay::LayerMode::OrSymbol).void
36
+ end
37
+ attr_writer :layer_mode
38
+
39
+ # Specifies the overlay's position relative to the parent asset. See
40
+ # [Position of Layer](https://imagekit.io/docs/transformations#position-of-layer).
11
41
  sig { returns(T.nilable(Imagekitio::OverlayPosition)) }
12
42
  attr_reader :position
13
43
 
14
44
  sig { params(position: Imagekitio::OverlayPosition::OrHash).void }
15
45
  attr_writer :position
16
46
 
47
+ # Specifies timing information for the overlay (only applicable if the base asset
48
+ # is a video). See
49
+ # [Position of Layer](https://imagekit.io/docs/transformations#position-of-layer).
17
50
  sig { returns(T.nilable(Imagekitio::OverlayTiming)) }
18
51
  attr_reader :timing
19
52
 
@@ -22,16 +55,47 @@ module Imagekitio
22
55
 
23
56
  sig do
24
57
  params(
58
+ layer_mode: Imagekitio::BaseOverlay::LayerMode::OrSymbol,
25
59
  position: Imagekitio::OverlayPosition::OrHash,
26
60
  timing: Imagekitio::OverlayTiming::OrHash
27
61
  ).returns(T.attached_class)
28
62
  end
29
- def self.new(position: nil, timing: nil)
63
+ def self.new(
64
+ # Controls how the layer blends with the base image or underlying content. Maps to
65
+ # `lm` in the URL. By default, layers completely cover the base image beneath
66
+ # them. Layer modes change this behavior:
67
+ #
68
+ # - `multiply`: Multiplies the pixel values of the layer with the base image. The
69
+ # result is always darker than the original images. This is ideal for applying
70
+ # shadows or color tints.
71
+ # - `displace`: Uses the layer as a displacement map to distort pixels in the base
72
+ # image. The red channel controls horizontal displacement, and the green channel
73
+ # controls vertical displacement. Requires `x` or `y` parameter to control
74
+ # displacement magnitude.
75
+ # - `cutout`: Acts as an inverse mask where opaque areas of the layer turn the
76
+ # base image transparent, while transparent areas leave the base image
77
+ # unchanged. This mode functions like a hole-punch, effectively cutting the
78
+ # shape of the layer out of the underlying image.
79
+ # - `cutter`: Acts as a shape mask where only the parts of the base image that
80
+ # fall inside the opaque area of the layer are preserved. This mode functions
81
+ # like a cookie-cutter, trimming the base image to match the specific dimensions
82
+ # and shape of the layer. See
83
+ # [Layer modes](https://imagekit.io/docs/add-overlays-on-images#layer-modes).
84
+ layer_mode: nil,
85
+ # Specifies the overlay's position relative to the parent asset. See
86
+ # [Position of Layer](https://imagekit.io/docs/transformations#position-of-layer).
87
+ position: nil,
88
+ # Specifies timing information for the overlay (only applicable if the base asset
89
+ # is a video). See
90
+ # [Position of Layer](https://imagekit.io/docs/transformations#position-of-layer).
91
+ timing: nil
92
+ )
30
93
  end
31
94
 
32
95
  sig do
33
96
  override.returns(
34
97
  {
98
+ layer_mode: Imagekitio::BaseOverlay::LayerMode::OrSymbol,
35
99
  position: Imagekitio::OverlayPosition,
36
100
  timing: Imagekitio::OverlayTiming
37
101
  }
@@ -39,6 +103,51 @@ module Imagekitio
39
103
  end
40
104
  def to_hash
41
105
  end
106
+
107
+ # Controls how the layer blends with the base image or underlying content. Maps to
108
+ # `lm` in the URL. By default, layers completely cover the base image beneath
109
+ # them. Layer modes change this behavior:
110
+ #
111
+ # - `multiply`: Multiplies the pixel values of the layer with the base image. The
112
+ # result is always darker than the original images. This is ideal for applying
113
+ # shadows or color tints.
114
+ # - `displace`: Uses the layer as a displacement map to distort pixels in the base
115
+ # image. The red channel controls horizontal displacement, and the green channel
116
+ # controls vertical displacement. Requires `x` or `y` parameter to control
117
+ # displacement magnitude.
118
+ # - `cutout`: Acts as an inverse mask where opaque areas of the layer turn the
119
+ # base image transparent, while transparent areas leave the base image
120
+ # unchanged. This mode functions like a hole-punch, effectively cutting the
121
+ # shape of the layer out of the underlying image.
122
+ # - `cutter`: Acts as a shape mask where only the parts of the base image that
123
+ # fall inside the opaque area of the layer are preserved. This mode functions
124
+ # like a cookie-cutter, trimming the base image to match the specific dimensions
125
+ # and shape of the layer. See
126
+ # [Layer modes](https://imagekit.io/docs/add-overlays-on-images#layer-modes).
127
+ module LayerMode
128
+ extend Imagekitio::Internal::Type::Enum
129
+
130
+ TaggedSymbol =
131
+ T.type_alias { T.all(Symbol, Imagekitio::BaseOverlay::LayerMode) }
132
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
133
+
134
+ MULTIPLY =
135
+ T.let(:multiply, Imagekitio::BaseOverlay::LayerMode::TaggedSymbol)
136
+ CUTTER =
137
+ T.let(:cutter, Imagekitio::BaseOverlay::LayerMode::TaggedSymbol)
138
+ CUTOUT =
139
+ T.let(:cutout, Imagekitio::BaseOverlay::LayerMode::TaggedSymbol)
140
+ DISPLACE =
141
+ T.let(:displace, Imagekitio::BaseOverlay::LayerMode::TaggedSymbol)
142
+
143
+ sig do
144
+ override.returns(
145
+ T::Array[Imagekitio::BaseOverlay::LayerMode::TaggedSymbol]
146
+ )
147
+ end
148
+ def self.values
149
+ end
150
+ end
42
151
  end
43
152
  end
44
153
  end
@@ -98,6 +98,8 @@ module Imagekitio
98
98
  T.any(
99
99
  Imagekitio::ExtensionItem::RemoveBg,
100
100
  Imagekitio::ExtensionItem::AIAutoDescription,
101
+ Imagekitio::ExtensionItem::AITasks,
102
+ Imagekitio::ExtensionItem::SavedExtension,
101
103
  Imagekitio::ExtensionItem::AutoTaggingExtension
102
104
  )
103
105
  ]
@@ -113,6 +115,8 @@ module Imagekitio
113
115
  T.any(
114
116
  Imagekitio::ExtensionItem::RemoveBg::OrHash,
115
117
  Imagekitio::ExtensionItem::AIAutoDescription::OrHash,
118
+ Imagekitio::ExtensionItem::AITasks::OrHash,
119
+ Imagekitio::ExtensionItem::SavedExtension::OrHash,
116
120
  Imagekitio::ExtensionItem::AutoTaggingExtension::OrHash
117
121
  )
118
122
  ]
@@ -280,6 +284,8 @@ module Imagekitio
280
284
  T.any(
281
285
  Imagekitio::ExtensionItem::RemoveBg::OrHash,
282
286
  Imagekitio::ExtensionItem::AIAutoDescription::OrHash,
287
+ Imagekitio::ExtensionItem::AITasks::OrHash,
288
+ Imagekitio::ExtensionItem::SavedExtension::OrHash,
283
289
  Imagekitio::ExtensionItem::AutoTaggingExtension::OrHash
284
290
  )
285
291
  ],
@@ -431,6 +437,8 @@ module Imagekitio
431
437
  T.any(
432
438
  Imagekitio::ExtensionItem::RemoveBg,
433
439
  Imagekitio::ExtensionItem::AIAutoDescription,
440
+ Imagekitio::ExtensionItem::AITasks,
441
+ Imagekitio::ExtensionItem::SavedExtension,
434
442
  Imagekitio::ExtensionItem::AutoTaggingExtension
435
443
  )
436
444
  ],
@@ -516,6 +516,23 @@ module Imagekitio
516
516
  end
517
517
  attr_writer :ai_auto_description
518
518
 
519
+ sig do
520
+ returns(
521
+ T.nilable(
522
+ Imagekitio::Models::Beta::V2::FileUploadResponse::ExtensionStatus::AITasks::TaggedSymbol
523
+ )
524
+ )
525
+ end
526
+ attr_reader :ai_tasks
527
+
528
+ sig do
529
+ params(
530
+ ai_tasks:
531
+ Imagekitio::Models::Beta::V2::FileUploadResponse::ExtensionStatus::AITasks::OrSymbol
532
+ ).void
533
+ end
534
+ attr_writer :ai_tasks
535
+
519
536
  sig do
520
537
  returns(
521
538
  T.nilable(
@@ -580,6 +597,8 @@ module Imagekitio
580
597
  params(
581
598
  ai_auto_description:
582
599
  Imagekitio::Models::Beta::V2::FileUploadResponse::ExtensionStatus::AIAutoDescription::OrSymbol,
600
+ ai_tasks:
601
+ Imagekitio::Models::Beta::V2::FileUploadResponse::ExtensionStatus::AITasks::OrSymbol,
583
602
  aws_auto_tagging:
584
603
  Imagekitio::Models::Beta::V2::FileUploadResponse::ExtensionStatus::AwsAutoTagging::OrSymbol,
585
604
  google_auto_tagging:
@@ -590,6 +609,7 @@ module Imagekitio
590
609
  end
591
610
  def self.new(
592
611
  ai_auto_description: nil,
612
+ ai_tasks: nil,
593
613
  aws_auto_tagging: nil,
594
614
  google_auto_tagging: nil,
595
615
  remove_bg: nil
@@ -601,6 +621,8 @@ module Imagekitio
601
621
  {
602
622
  ai_auto_description:
603
623
  Imagekitio::Models::Beta::V2::FileUploadResponse::ExtensionStatus::AIAutoDescription::TaggedSymbol,
624
+ ai_tasks:
625
+ Imagekitio::Models::Beta::V2::FileUploadResponse::ExtensionStatus::AITasks::TaggedSymbol,
604
626
  aws_auto_tagging:
605
627
  Imagekitio::Models::Beta::V2::FileUploadResponse::ExtensionStatus::AwsAutoTagging::TaggedSymbol,
606
628
  google_auto_tagging:
@@ -652,6 +674,45 @@ module Imagekitio
652
674
  end
653
675
  end
654
676
 
677
+ module AITasks
678
+ extend Imagekitio::Internal::Type::Enum
679
+
680
+ TaggedSymbol =
681
+ T.type_alias do
682
+ T.all(
683
+ Symbol,
684
+ Imagekitio::Models::Beta::V2::FileUploadResponse::ExtensionStatus::AITasks
685
+ )
686
+ end
687
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
688
+
689
+ SUCCESS =
690
+ T.let(
691
+ :success,
692
+ Imagekitio::Models::Beta::V2::FileUploadResponse::ExtensionStatus::AITasks::TaggedSymbol
693
+ )
694
+ PENDING =
695
+ T.let(
696
+ :pending,
697
+ Imagekitio::Models::Beta::V2::FileUploadResponse::ExtensionStatus::AITasks::TaggedSymbol
698
+ )
699
+ FAILED =
700
+ T.let(
701
+ :failed,
702
+ Imagekitio::Models::Beta::V2::FileUploadResponse::ExtensionStatus::AITasks::TaggedSymbol
703
+ )
704
+
705
+ sig do
706
+ override.returns(
707
+ T::Array[
708
+ Imagekitio::Models::Beta::V2::FileUploadResponse::ExtensionStatus::AITasks::TaggedSymbol
709
+ ]
710
+ )
711
+ end
712
+ def self.values
713
+ end
714
+ end
715
+
655
716
  module AwsAutoTagging
656
717
  extend Imagekitio::Internal::Type::Enum
657
718