imagekitio 3.1.0 → 4.0.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/.ignore +2 -0
- data/CHANGELOG.md +116 -0
- data/README.md +534 -705
- data/SECURITY.md +27 -0
- data/lib/imagekitio/client.rb +122 -195
- data/lib/imagekitio/errors.rb +226 -2
- data/lib/imagekitio/file_part.rb +58 -0
- data/lib/imagekitio/helpers/crypto_utils.rb +25 -0
- data/lib/imagekitio/helpers/helper.rb +689 -0
- data/lib/imagekitio/helpers/transformation_utils.rb +164 -0
- data/lib/imagekitio/helpers/uuid_utils.rb +18 -0
- data/lib/imagekitio/internal/transport/base_client.rb +567 -0
- data/lib/imagekitio/internal/transport/pooled_net_requester.rb +217 -0
- data/lib/imagekitio/internal/type/array_of.rb +168 -0
- data/lib/imagekitio/internal/type/base_model.rb +530 -0
- data/lib/imagekitio/internal/type/base_page.rb +55 -0
- data/lib/imagekitio/internal/type/boolean.rb +77 -0
- data/lib/imagekitio/internal/type/converter.rb +327 -0
- data/lib/imagekitio/internal/type/enum.rb +156 -0
- data/lib/imagekitio/internal/type/file_input.rb +111 -0
- data/lib/imagekitio/internal/type/hash_of.rb +188 -0
- data/lib/imagekitio/internal/type/request_parameters.rb +42 -0
- data/lib/imagekitio/internal/type/union.rb +250 -0
- data/lib/imagekitio/internal/type/unknown.rb +81 -0
- data/lib/imagekitio/internal/util.rb +915 -0
- data/lib/imagekitio/internal.rb +20 -0
- data/lib/imagekitio/models/accounts/origin_create_params.rb +24 -0
- data/lib/imagekitio/models/accounts/origin_delete_params.rb +16 -0
- data/lib/imagekitio/models/accounts/origin_get_params.rb +16 -0
- data/lib/imagekitio/models/accounts/origin_list_params.rb +16 -0
- data/lib/imagekitio/models/accounts/origin_list_response.rb +11 -0
- data/lib/imagekitio/models/accounts/origin_request.rb +547 -0
- data/lib/imagekitio/models/accounts/origin_response.rb +568 -0
- data/lib/imagekitio/models/accounts/origin_update_params.rb +24 -0
- data/lib/imagekitio/models/accounts/url_endpoint_create_params.rb +16 -0
- data/lib/imagekitio/models/accounts/url_endpoint_delete_params.rb +16 -0
- data/lib/imagekitio/models/accounts/url_endpoint_get_params.rb +16 -0
- data/lib/imagekitio/models/accounts/url_endpoint_list_params.rb +16 -0
- data/lib/imagekitio/models/accounts/url_endpoint_list_response.rb +11 -0
- data/lib/imagekitio/models/accounts/url_endpoint_request.rb +110 -0
- data/lib/imagekitio/models/accounts/url_endpoint_response.rb +123 -0
- data/lib/imagekitio/models/accounts/url_endpoint_update_params.rb +16 -0
- data/lib/imagekitio/models/accounts/usage_get_params.rb +37 -0
- data/lib/imagekitio/models/accounts/usage_get_response.rb +51 -0
- data/lib/imagekitio/models/asset_list_params.rb +158 -0
- data/lib/imagekitio/models/asset_list_response.rb +24 -0
- data/lib/imagekitio/models/base_overlay.rb +21 -0
- data/lib/imagekitio/models/base_webhook_event.rb +24 -0
- data/lib/imagekitio/models/beta/v2/file_upload_params.rb +510 -0
- data/lib/imagekitio/models/beta/v2/file_upload_response.rb +618 -0
- data/lib/imagekitio/models/cache/invalidation_create_params.rb +27 -0
- data/lib/imagekitio/models/cache/invalidation_create_response.rb +23 -0
- data/lib/imagekitio/models/cache/invalidation_get_params.rb +16 -0
- data/lib/imagekitio/models/cache/invalidation_get_response.rb +35 -0
- data/lib/imagekitio/models/custom_metadata_field.rb +243 -0
- data/lib/imagekitio/models/custom_metadata_field_create_params.rb +238 -0
- data/lib/imagekitio/models/custom_metadata_field_delete_params.rb +14 -0
- data/lib/imagekitio/models/custom_metadata_field_delete_response.rb +10 -0
- data/lib/imagekitio/models/custom_metadata_field_list_params.rb +36 -0
- data/lib/imagekitio/models/custom_metadata_field_list_response.rb +9 -0
- data/lib/imagekitio/models/custom_metadata_field_update_params.rb +212 -0
- data/lib/imagekitio/models/extensions.rb +136 -0
- data/lib/imagekitio/models/file.rb +497 -0
- data/lib/imagekitio/models/file_copy_params.rb +43 -0
- data/lib/imagekitio/models/file_copy_response.rb +10 -0
- data/lib/imagekitio/models/file_delete_params.rb +14 -0
- data/lib/imagekitio/models/file_get_params.rb +14 -0
- data/lib/imagekitio/models/file_move_params.rb +33 -0
- data/lib/imagekitio/models/file_move_response.rb +10 -0
- data/lib/imagekitio/models/file_rename_params.rb +61 -0
- data/lib/imagekitio/models/file_rename_response.rb +21 -0
- data/lib/imagekitio/models/file_update_params.rb +22 -0
- data/lib/imagekitio/models/file_update_response.rb +104 -0
- data/lib/imagekitio/models/file_upload_params.rb +540 -0
- data/lib/imagekitio/models/file_upload_response.rb +611 -0
- data/lib/imagekitio/models/files/bulk_add_tags_params.rb +35 -0
- data/lib/imagekitio/models/files/bulk_add_tags_response.rb +24 -0
- data/lib/imagekitio/models/files/bulk_delete_params.rb +27 -0
- data/lib/imagekitio/models/files/bulk_delete_response.rb +24 -0
- data/lib/imagekitio/models/files/bulk_remove_ai_tags_params.rb +35 -0
- data/lib/imagekitio/models/files/bulk_remove_ai_tags_response.rb +24 -0
- data/lib/imagekitio/models/files/bulk_remove_tags_params.rb +35 -0
- data/lib/imagekitio/models/files/bulk_remove_tags_response.rb +24 -0
- data/lib/imagekitio/models/files/metadata_get_from_url_params.rb +28 -0
- data/lib/imagekitio/models/files/metadata_get_params.rb +16 -0
- data/lib/imagekitio/models/files/version_delete_params.rb +22 -0
- data/lib/imagekitio/models/files/version_delete_response.rb +12 -0
- data/lib/imagekitio/models/files/version_get_params.rb +22 -0
- data/lib/imagekitio/models/files/version_list_params.rb +16 -0
- data/lib/imagekitio/models/files/version_list_response.rb +10 -0
- data/lib/imagekitio/models/files/version_restore_params.rb +22 -0
- data/lib/imagekitio/models/folder.rb +76 -0
- data/lib/imagekitio/models/folder_copy_params.rb +44 -0
- data/lib/imagekitio/models/folder_copy_response.rb +23 -0
- data/lib/imagekitio/models/folder_create_params.rb +43 -0
- data/lib/imagekitio/models/folder_create_response.rb +10 -0
- data/lib/imagekitio/models/folder_delete_params.rb +25 -0
- data/lib/imagekitio/models/folder_delete_response.rb +10 -0
- data/lib/imagekitio/models/folder_move_params.rb +34 -0
- data/lib/imagekitio/models/folder_move_response.rb +23 -0
- data/lib/imagekitio/models/folder_rename_params.rb +59 -0
- data/lib/imagekitio/models/folder_rename_response.rb +23 -0
- data/lib/imagekitio/models/folders/job_get_params.rb +16 -0
- data/lib/imagekitio/models/folders/job_get_response.rb +74 -0
- data/lib/imagekitio/models/get_image_attributes_options.rb +68 -0
- data/lib/imagekitio/models/image_overlay.rb +66 -0
- data/lib/imagekitio/models/metadata.rb +483 -0
- data/lib/imagekitio/models/overlay.rb +28 -0
- data/lib/imagekitio/models/overlay_position.rb +101 -0
- data/lib/imagekitio/models/overlay_timing.rb +97 -0
- data/lib/imagekitio/models/responsive_image_attributes.rb +48 -0
- data/lib/imagekitio/models/solid_color_overlay.rb +42 -0
- data/lib/imagekitio/models/solid_color_overlay_transformation.rb +135 -0
- data/lib/imagekitio/models/src_options.rb +96 -0
- data/lib/imagekitio/models/streaming_resolution.rb +22 -0
- data/lib/imagekitio/models/subtitle_overlay.rb +64 -0
- data/lib/imagekitio/models/subtitle_overlay_transformation.rb +113 -0
- data/lib/imagekitio/models/text_overlay.rb +65 -0
- data/lib/imagekitio/models/text_overlay_transformation.rb +267 -0
- data/lib/imagekitio/models/transformation.rb +1100 -0
- data/lib/imagekitio/models/transformation_position.rb +19 -0
- data/lib/imagekitio/models/unsafe_unwrap_webhook_event.rb +36 -0
- data/lib/imagekitio/models/unwrap_webhook_event.rb +36 -0
- data/lib/imagekitio/models/update_file_request.rb +164 -0
- data/lib/imagekitio/models/upload_post_transform_error_event.rb +180 -0
- data/lib/imagekitio/models/upload_post_transform_success_event.rb +143 -0
- data/lib/imagekitio/models/upload_pre_transform_error_event.rb +108 -0
- data/lib/imagekitio/models/upload_pre_transform_success_event.rb +690 -0
- data/lib/imagekitio/models/video_overlay.rb +64 -0
- data/lib/imagekitio/models/video_transformation_accepted_event.rb +279 -0
- data/lib/imagekitio/models/video_transformation_error_event.rb +326 -0
- data/lib/imagekitio/models/video_transformation_ready_event.rb +379 -0
- data/lib/imagekitio/models/webhook_unsafe_unwrap_params.rb +14 -0
- data/lib/imagekitio/models/webhook_unwrap_params.rb +14 -0
- data/lib/imagekitio/models.rb +160 -0
- data/lib/imagekitio/request_options.rb +77 -0
- data/lib/imagekitio/resources/accounts/origins.rb +145 -0
- data/lib/imagekitio/resources/accounts/url_endpoints.rb +151 -0
- data/lib/imagekitio/resources/accounts/usage.rb +46 -0
- data/lib/imagekitio/resources/accounts.rb +26 -0
- data/lib/imagekitio/resources/assets.rb +54 -0
- data/lib/imagekitio/resources/beta/v2/files.rb +110 -0
- data/lib/imagekitio/resources/beta/v2.rb +20 -0
- data/lib/imagekitio/resources/beta.rb +18 -0
- data/lib/imagekitio/resources/cache/invalidation.rb +66 -0
- data/lib/imagekitio/resources/cache.rb +18 -0
- data/lib/imagekitio/resources/custom_metadata_fields.rb +133 -0
- data/lib/imagekitio/resources/files/bulk.rb +131 -0
- data/lib/imagekitio/resources/files/metadata.rb +69 -0
- data/lib/imagekitio/resources/files/versions.rb +132 -0
- data/lib/imagekitio/resources/files.rb +305 -0
- data/lib/imagekitio/resources/folders/job.rb +39 -0
- data/lib/imagekitio/resources/folders.rb +166 -0
- data/lib/imagekitio/resources/webhooks.rb +30 -0
- data/lib/imagekitio/version.rb +5 -0
- data/lib/imagekitio.rb +181 -13
- data/manifest.yaml +15 -0
- data/rbi/imagekitio/client.rbi +92 -0
- data/rbi/imagekitio/errors.rbi +205 -0
- data/rbi/imagekitio/file_part.rbi +37 -0
- data/rbi/imagekitio/helpers/helper.rbi +41 -0
- data/rbi/imagekitio/internal/transport/base_client.rbi +295 -0
- data/rbi/imagekitio/internal/transport/pooled_net_requester.rbi +80 -0
- data/rbi/imagekitio/internal/type/array_of.rbi +104 -0
- data/rbi/imagekitio/internal/type/base_model.rbi +304 -0
- data/rbi/imagekitio/internal/type/base_page.rbi +42 -0
- data/rbi/imagekitio/internal/type/boolean.rbi +58 -0
- data/rbi/imagekitio/internal/type/converter.rbi +216 -0
- data/rbi/imagekitio/internal/type/enum.rbi +82 -0
- data/rbi/imagekitio/internal/type/file_input.rbi +59 -0
- data/rbi/imagekitio/internal/type/hash_of.rbi +104 -0
- data/rbi/imagekitio/internal/type/request_parameters.rbi +29 -0
- data/rbi/imagekitio/internal/type/union.rbi +128 -0
- data/rbi/imagekitio/internal/type/unknown.rbi +58 -0
- data/rbi/imagekitio/internal/util.rbi +487 -0
- data/rbi/imagekitio/internal.rbi +18 -0
- data/rbi/imagekitio/models/accounts/origin_create_params.rbi +81 -0
- data/rbi/imagekitio/models/accounts/origin_delete_params.rbi +34 -0
- data/rbi/imagekitio/models/accounts/origin_get_params.rbi +34 -0
- data/rbi/imagekitio/models/accounts/origin_list_params.rbi +34 -0
- data/rbi/imagekitio/models/accounts/origin_list_response.rbi +15 -0
- data/rbi/imagekitio/models/accounts/origin_request.rbi +775 -0
- data/rbi/imagekitio/models/accounts/origin_response.rbi +718 -0
- data/rbi/imagekitio/models/accounts/origin_update_params.rbi +81 -0
- data/rbi/imagekitio/models/accounts/url_endpoint_create_params.rbi +34 -0
- data/rbi/imagekitio/models/accounts/url_endpoint_delete_params.rbi +34 -0
- data/rbi/imagekitio/models/accounts/url_endpoint_get_params.rbi +34 -0
- data/rbi/imagekitio/models/accounts/url_endpoint_list_params.rbi +34 -0
- data/rbi/imagekitio/models/accounts/url_endpoint_list_response.rbi +15 -0
- data/rbi/imagekitio/models/accounts/url_endpoint_request.rbi +218 -0
- data/rbi/imagekitio/models/accounts/url_endpoint_response.rbi +213 -0
- data/rbi/imagekitio/models/accounts/url_endpoint_update_params.rbi +34 -0
- data/rbi/imagekitio/models/accounts/usage_get_params.rbi +60 -0
- data/rbi/imagekitio/models/accounts/usage_get_response.rbi +89 -0
- data/rbi/imagekitio/models/asset_list_params.rbi +281 -0
- data/rbi/imagekitio/models/asset_list_response.rbi +28 -0
- data/rbi/imagekitio/models/base_overlay.rbi +44 -0
- data/rbi/imagekitio/models/base_webhook_event.rbi +33 -0
- data/rbi/imagekitio/models/beta/v2/file_upload_params.rbi +861 -0
- data/rbi/imagekitio/models/beta/v2/file_upload_response.rbi +1197 -0
- data/rbi/imagekitio/models/cache/invalidation_create_params.rbi +45 -0
- data/rbi/imagekitio/models/cache/invalidation_create_response.rbi +37 -0
- data/rbi/imagekitio/models/cache/invalidation_get_params.rbi +34 -0
- data/rbi/imagekitio/models/cache/invalidation_get_response.rbi +93 -0
- data/rbi/imagekitio/models/custom_metadata_field.rbi +422 -0
- data/rbi/imagekitio/models/custom_metadata_field_create_params.rbi +443 -0
- data/rbi/imagekitio/models/custom_metadata_field_delete_params.rbi +30 -0
- data/rbi/imagekitio/models/custom_metadata_field_delete_response.rbi +23 -0
- data/rbi/imagekitio/models/custom_metadata_field_list_params.rbi +66 -0
- data/rbi/imagekitio/models/custom_metadata_field_list_response.rbi +11 -0
- data/rbi/imagekitio/models/custom_metadata_field_update_params.rbi +376 -0
- data/rbi/imagekitio/models/extensions.rbi +274 -0
- data/rbi/imagekitio/models/file.rbi +789 -0
- data/rbi/imagekitio/models/file_copy_params.rbi +66 -0
- data/rbi/imagekitio/models/file_copy_response.rbi +23 -0
- data/rbi/imagekitio/models/file_delete_params.rbi +27 -0
- data/rbi/imagekitio/models/file_get_params.rbi +27 -0
- data/rbi/imagekitio/models/file_move_params.rbi +51 -0
- data/rbi/imagekitio/models/file_move_response.rbi +23 -0
- data/rbi/imagekitio/models/file_rename_params.rbi +102 -0
- data/rbi/imagekitio/models/file_rename_response.rbi +35 -0
- data/rbi/imagekitio/models/file_update_params.rbi +58 -0
- data/rbi/imagekitio/models/file_update_response.rbi +322 -0
- data/rbi/imagekitio/models/file_upload_params.rbi +897 -0
- data/rbi/imagekitio/models/file_upload_response.rbi +1176 -0
- data/rbi/imagekitio/models/files/bulk_add_tags_params.rbi +56 -0
- data/rbi/imagekitio/models/files/bulk_add_tags_response.rbi +41 -0
- data/rbi/imagekitio/models/files/bulk_delete_params.rbi +48 -0
- data/rbi/imagekitio/models/files/bulk_delete_response.rbi +41 -0
- data/rbi/imagekitio/models/files/bulk_remove_ai_tags_params.rbi +56 -0
- data/rbi/imagekitio/models/files/bulk_remove_ai_tags_response.rbi +41 -0
- data/rbi/imagekitio/models/files/bulk_remove_tags_params.rbi +56 -0
- data/rbi/imagekitio/models/files/bulk_remove_tags_response.rbi +41 -0
- data/rbi/imagekitio/models/files/metadata_get_from_url_params.rbi +47 -0
- data/rbi/imagekitio/models/files/metadata_get_params.rbi +34 -0
- data/rbi/imagekitio/models/files/version_delete_params.rbi +40 -0
- data/rbi/imagekitio/models/files/version_delete_response.rbi +25 -0
- data/rbi/imagekitio/models/files/version_get_params.rbi +40 -0
- data/rbi/imagekitio/models/files/version_list_params.rbi +34 -0
- data/rbi/imagekitio/models/files/version_list_response.rbi +13 -0
- data/rbi/imagekitio/models/files/version_restore_params.rbi +40 -0
- data/rbi/imagekitio/models/folder.rbi +121 -0
- data/rbi/imagekitio/models/folder_copy_params.rbi +68 -0
- data/rbi/imagekitio/models/folder_copy_response.rbi +33 -0
- data/rbi/imagekitio/models/folder_create_params.rbi +71 -0
- data/rbi/imagekitio/models/folder_create_response.rbi +23 -0
- data/rbi/imagekitio/models/folder_delete_params.rbi +40 -0
- data/rbi/imagekitio/models/folder_delete_response.rbi +23 -0
- data/rbi/imagekitio/models/folder_move_params.rbi +53 -0
- data/rbi/imagekitio/models/folder_move_response.rbi +33 -0
- data/rbi/imagekitio/models/folder_rename_params.rbi +98 -0
- data/rbi/imagekitio/models/folder_rename_response.rbi +33 -0
- data/rbi/imagekitio/models/folders/job_get_params.rbi +34 -0
- data/rbi/imagekitio/models/folders/job_get_response.rbi +173 -0
- data/rbi/imagekitio/models/get_image_attributes_options.rbi +121 -0
- data/rbi/imagekitio/models/image_overlay.rbi +109 -0
- data/rbi/imagekitio/models/metadata.rbi +813 -0
- data/rbi/imagekitio/models/overlay.rbi +28 -0
- data/rbi/imagekitio/models/overlay_position.rbi +148 -0
- data/rbi/imagekitio/models/overlay_timing.rbi +135 -0
- data/rbi/imagekitio/models/responsive_image_attributes.rbi +74 -0
- data/rbi/imagekitio/models/solid_color_overlay.rbi +79 -0
- data/rbi/imagekitio/models/solid_color_overlay_transformation.rbi +218 -0
- data/rbi/imagekitio/models/src_options.rbi +159 -0
- data/rbi/imagekitio/models/streaming_resolution.rbi +38 -0
- data/rbi/imagekitio/models/subtitle_overlay.rbi +114 -0
- data/rbi/imagekitio/models/subtitle_overlay_transformation.rbi +215 -0
- data/rbi/imagekitio/models/text_overlay.rbi +110 -0
- data/rbi/imagekitio/models/text_overlay_transformation.rbi +451 -0
- data/rbi/imagekitio/models/transformation.rbi +1646 -0
- data/rbi/imagekitio/models/transformation_position.rbi +28 -0
- data/rbi/imagekitio/models/unsafe_unwrap_webhook_event.rbi +33 -0
- data/rbi/imagekitio/models/unwrap_webhook_event.rbi +31 -0
- data/rbi/imagekitio/models/update_file_request.rbi +316 -0
- data/rbi/imagekitio/models/upload_post_transform_error_event.rbi +434 -0
- data/rbi/imagekitio/models/upload_post_transform_success_event.rbi +327 -0
- data/rbi/imagekitio/models/upload_pre_transform_error_event.rbi +244 -0
- data/rbi/imagekitio/models/upload_pre_transform_success_event.rbi +1300 -0
- data/rbi/imagekitio/models/video_overlay.rbi +105 -0
- data/rbi/imagekitio/models/video_transformation_accepted_event.rbi +659 -0
- data/rbi/imagekitio/models/video_transformation_error_event.rbi +772 -0
- data/rbi/imagekitio/models/video_transformation_ready_event.rbi +864 -0
- data/rbi/imagekitio/models/webhook_unsafe_unwrap_params.rbi +30 -0
- data/rbi/imagekitio/models/webhook_unwrap_params.rbi +27 -0
- data/rbi/imagekitio/models.rbi +135 -0
- data/rbi/imagekitio/request_options.rbi +59 -0
- data/rbi/imagekitio/resources/accounts/origins.rbi +91 -0
- data/rbi/imagekitio/resources/accounts/url_endpoints.rbi +129 -0
- data/rbi/imagekitio/resources/accounts/usage.rbi +36 -0
- data/rbi/imagekitio/resources/accounts.rbi +21 -0
- data/rbi/imagekitio/resources/assets.rbi +74 -0
- data/rbi/imagekitio/resources/beta/v2/files.rbi +193 -0
- data/rbi/imagekitio/resources/beta/v2.rbi +17 -0
- data/rbi/imagekitio/resources/beta.rbi +15 -0
- data/rbi/imagekitio/resources/cache/invalidation.rbi +44 -0
- data/rbi/imagekitio/resources/cache.rbi +15 -0
- data/rbi/imagekitio/resources/custom_metadata_fields.rbi +106 -0
- data/rbi/imagekitio/resources/files/bulk.rbi +88 -0
- data/rbi/imagekitio/resources/files/metadata.rbi +49 -0
- data/rbi/imagekitio/resources/files/versions.rbi +89 -0
- data/rbi/imagekitio/resources/files.rbi +364 -0
- data/rbi/imagekitio/resources/folders/job.rbi +29 -0
- data/rbi/imagekitio/resources/folders.rbi +146 -0
- data/rbi/imagekitio/resources/webhooks.rbi +50 -0
- data/rbi/imagekitio/version.rbi +5 -0
- data/sig/imagekitio/client.rbs +47 -0
- data/sig/imagekitio/errors.rbs +117 -0
- data/sig/imagekitio/file_part.rbs +21 -0
- data/sig/imagekitio/helpers/helper.rbs +24 -0
- data/sig/imagekitio/internal/transport/base_client.rbs +131 -0
- data/sig/imagekitio/internal/transport/pooled_net_requester.rbs +45 -0
- data/sig/imagekitio/internal/type/array_of.rbs +48 -0
- data/sig/imagekitio/internal/type/base_model.rbs +102 -0
- data/sig/imagekitio/internal/type/base_page.rbs +24 -0
- data/sig/imagekitio/internal/type/boolean.rbs +26 -0
- data/sig/imagekitio/internal/type/converter.rbs +79 -0
- data/sig/imagekitio/internal/type/enum.rbs +32 -0
- data/sig/imagekitio/internal/type/file_input.rbs +25 -0
- data/sig/imagekitio/internal/type/hash_of.rbs +48 -0
- data/sig/imagekitio/internal/type/request_parameters.rbs +19 -0
- data/sig/imagekitio/internal/type/union.rbs +52 -0
- data/sig/imagekitio/internal/type/unknown.rbs +26 -0
- data/sig/imagekitio/internal/util.rbs +185 -0
- data/sig/imagekitio/internal.rbs +9 -0
- data/sig/imagekitio/models/accounts/origin_create_params.rbs +30 -0
- data/sig/imagekitio/models/accounts/origin_delete_params.rbs +17 -0
- data/sig/imagekitio/models/accounts/origin_get_params.rbs +17 -0
- data/sig/imagekitio/models/accounts/origin_list_params.rbs +17 -0
- data/sig/imagekitio/models/accounts/origin_list_response.rbs +10 -0
- data/sig/imagekitio/models/accounts/origin_request.rbs +468 -0
- data/sig/imagekitio/models/accounts/origin_response.rbs +418 -0
- data/sig/imagekitio/models/accounts/origin_update_params.rbs +30 -0
- data/sig/imagekitio/models/accounts/url_endpoint_create_params.rbs +17 -0
- data/sig/imagekitio/models/accounts/url_endpoint_delete_params.rbs +17 -0
- data/sig/imagekitio/models/accounts/url_endpoint_get_params.rbs +17 -0
- data/sig/imagekitio/models/accounts/url_endpoint_list_params.rbs +17 -0
- data/sig/imagekitio/models/accounts/url_endpoint_list_response.rbs +10 -0
- data/sig/imagekitio/models/accounts/url_endpoint_request.rbs +97 -0
- data/sig/imagekitio/models/accounts/url_endpoint_response.rbs +96 -0
- data/sig/imagekitio/models/accounts/url_endpoint_update_params.rbs +17 -0
- data/sig/imagekitio/models/accounts/usage_get_params.rbs +30 -0
- data/sig/imagekitio/models/accounts/usage_get_response.rbs +52 -0
- data/sig/imagekitio/models/asset_list_params.rbs +138 -0
- data/sig/imagekitio/models/asset_list_response.rbs +16 -0
- data/sig/imagekitio/models/base_overlay.rbs +31 -0
- data/sig/imagekitio/models/base_webhook_event.rbs +15 -0
- data/sig/imagekitio/models/beta/v2/file_upload_params.rbs +310 -0
- data/sig/imagekitio/models/beta/v2/file_upload_response.rbs +487 -0
- data/sig/imagekitio/models/cache/invalidation_create_params.rbs +25 -0
- data/sig/imagekitio/models/cache/invalidation_create_response.rbs +17 -0
- data/sig/imagekitio/models/cache/invalidation_get_params.rbs +17 -0
- data/sig/imagekitio/models/cache/invalidation_get_response.rbs +35 -0
- data/sig/imagekitio/models/custom_metadata_field.rbs +178 -0
- data/sig/imagekitio/models/custom_metadata_field_create_params.rbs +179 -0
- data/sig/imagekitio/models/custom_metadata_field_delete_params.rbs +15 -0
- data/sig/imagekitio/models/custom_metadata_field_delete_response.rbs +11 -0
- data/sig/imagekitio/models/custom_metadata_field_list_params.rbs +32 -0
- data/sig/imagekitio/models/custom_metadata_field_list_response.rbs +8 -0
- data/sig/imagekitio/models/custom_metadata_field_update_params.rbs +152 -0
- data/sig/imagekitio/models/extensions.rbs +132 -0
- data/sig/imagekitio/models/file.rbs +384 -0
- data/sig/imagekitio/models/file_copy_params.rbs +38 -0
- data/sig/imagekitio/models/file_copy_response.rbs +11 -0
- data/sig/imagekitio/models/file_delete_params.rbs +15 -0
- data/sig/imagekitio/models/file_get_params.rbs +14 -0
- data/sig/imagekitio/models/file_move_params.rbs +28 -0
- data/sig/imagekitio/models/file_move_response.rbs +11 -0
- data/sig/imagekitio/models/file_rename_params.rbs +34 -0
- data/sig/imagekitio/models/file_rename_response.rbs +15 -0
- data/sig/imagekitio/models/file_update_params.rbs +28 -0
- data/sig/imagekitio/models/file_update_response.rbs +120 -0
- data/sig/imagekitio/models/file_upload_params.rbs +327 -0
- data/sig/imagekitio/models/file_upload_response.rbs +483 -0
- data/sig/imagekitio/models/files/bulk_add_tags_params.rbs +30 -0
- data/sig/imagekitio/models/files/bulk_add_tags_response.rbs +20 -0
- data/sig/imagekitio/models/files/bulk_delete_params.rbs +26 -0
- data/sig/imagekitio/models/files/bulk_delete_response.rbs +20 -0
- data/sig/imagekitio/models/files/bulk_remove_ai_tags_params.rbs +30 -0
- data/sig/imagekitio/models/files/bulk_remove_ai_tags_response.rbs +20 -0
- data/sig/imagekitio/models/files/bulk_remove_tags_params.rbs +30 -0
- data/sig/imagekitio/models/files/bulk_remove_tags_response.rbs +20 -0
- data/sig/imagekitio/models/files/metadata_get_from_url_params.rbs +25 -0
- data/sig/imagekitio/models/files/metadata_get_params.rbs +17 -0
- data/sig/imagekitio/models/files/version_delete_params.rbs +25 -0
- data/sig/imagekitio/models/files/version_delete_response.rbs +13 -0
- data/sig/imagekitio/models/files/version_get_params.rbs +25 -0
- data/sig/imagekitio/models/files/version_list_params.rbs +17 -0
- data/sig/imagekitio/models/files/version_list_response.rbs +9 -0
- data/sig/imagekitio/models/files/version_restore_params.rbs +25 -0
- data/sig/imagekitio/models/folder.rbs +69 -0
- data/sig/imagekitio/models/folder_copy_params.rbs +38 -0
- data/sig/imagekitio/models/folder_copy_response.rbs +13 -0
- data/sig/imagekitio/models/folder_create_params.rbs +28 -0
- data/sig/imagekitio/models/folder_create_response.rbs +11 -0
- data/sig/imagekitio/models/folder_delete_params.rbs +23 -0
- data/sig/imagekitio/models/folder_delete_response.rbs +11 -0
- data/sig/imagekitio/models/folder_move_params.rbs +28 -0
- data/sig/imagekitio/models/folder_move_response.rbs +13 -0
- data/sig/imagekitio/models/folder_rename_params.rbs +34 -0
- data/sig/imagekitio/models/folder_rename_response.rbs +13 -0
- data/sig/imagekitio/models/folders/job_get_params.rbs +17 -0
- data/sig/imagekitio/models/folders/job_get_response.rbs +72 -0
- data/sig/imagekitio/models/get_image_attributes_options.rbs +43 -0
- data/sig/imagekitio/models/image_overlay.rbs +59 -0
- data/sig/imagekitio/models/metadata.rbs +546 -0
- data/sig/imagekitio/models/overlay.rbs +16 -0
- data/sig/imagekitio/models/overlay_position.rbs +85 -0
- data/sig/imagekitio/models/overlay_timing.rbs +66 -0
- data/sig/imagekitio/models/responsive_image_attributes.rbs +36 -0
- data/sig/imagekitio/models/solid_color_overlay.rbs +38 -0
- data/sig/imagekitio/models/solid_color_overlay_transformation.rbs +97 -0
- data/sig/imagekitio/models/src_options.rbs +64 -0
- data/sig/imagekitio/models/streaming_resolution.rbs +20 -0
- data/sig/imagekitio/models/subtitle_overlay.rbs +59 -0
- data/sig/imagekitio/models/subtitle_overlay_transformation.rbs +78 -0
- data/sig/imagekitio/models/text_overlay.rbs +59 -0
- data/sig/imagekitio/models/text_overlay_transformation.rbs +195 -0
- data/sig/imagekitio/models/transformation.rbs +763 -0
- data/sig/imagekitio/models/transformation_position.rbs +14 -0
- data/sig/imagekitio/models/unsafe_unwrap_webhook_event.rbs +18 -0
- data/sig/imagekitio/models/unwrap_webhook_event.rbs +18 -0
- data/sig/imagekitio/models/update_file_request.rbs +122 -0
- data/sig/imagekitio/models/upload_post_transform_error_event.rbs +192 -0
- data/sig/imagekitio/models/upload_post_transform_success_event.rbs +142 -0
- data/sig/imagekitio/models/upload_pre_transform_error_event.rbs +115 -0
- data/sig/imagekitio/models/upload_pre_transform_success_event.rbs +541 -0
- data/sig/imagekitio/models/video_overlay.rbs +59 -0
- data/sig/imagekitio/models/video_transformation_accepted_event.rbs +261 -0
- data/sig/imagekitio/models/video_transformation_error_event.rbs +300 -0
- data/sig/imagekitio/models/video_transformation_ready_event.rbs +359 -0
- data/sig/imagekitio/models/webhook_unsafe_unwrap_params.rbs +15 -0
- data/sig/imagekitio/models/webhook_unwrap_params.rbs +15 -0
- data/sig/imagekitio/models.rbs +119 -0
- data/sig/imagekitio/request_options.rbs +36 -0
- data/sig/imagekitio/resources/accounts/origins.rbs +34 -0
- data/sig/imagekitio/resources/accounts/url_endpoints.rbs +40 -0
- data/sig/imagekitio/resources/accounts/usage.rbs +15 -0
- data/sig/imagekitio/resources/accounts.rbs +13 -0
- data/sig/imagekitio/resources/assets.rbs +18 -0
- data/sig/imagekitio/resources/beta/v2/files.rbs +35 -0
- data/sig/imagekitio/resources/beta/v2.rbs +11 -0
- data/sig/imagekitio/resources/beta.rbs +9 -0
- data/sig/imagekitio/resources/cache/invalidation.rbs +19 -0
- data/sig/imagekitio/resources/cache.rbs +9 -0
- data/sig/imagekitio/resources/custom_metadata_fields.rbs +32 -0
- data/sig/imagekitio/resources/files/bulk.rbs +32 -0
- data/sig/imagekitio/resources/files/metadata.rbs +19 -0
- data/sig/imagekitio/resources/files/versions.rbs +32 -0
- data/sig/imagekitio/resources/files.rbs +76 -0
- data/sig/imagekitio/resources/folders/job.rbs +14 -0
- data/sig/imagekitio/resources/folders.rbs +40 -0
- data/sig/imagekitio/resources/webhooks.rbs +27 -0
- data/sig/imagekitio/version.rbs +3 -0
- metadata +470 -136
- data/Rakefile +0 -27
- data/lib/active_storage/active_storage.rb +0 -7
- data/lib/active_storage/service/ik_file.rb +0 -115
- data/lib/active_storage/service/image_kit_io_service.rb +0 -188
- data/lib/carrierwave/carrierwave.rb +0 -83
- data/lib/carrierwave/storage/ik_file.rb +0 -51
- data/lib/carrierwave/storage/imagekit_store.rb +0 -68
- data/lib/carrierwave/support/uri_filename.rb +0 -12
- data/lib/imagekitio/api_service/bulk.rb +0 -58
- data/lib/imagekitio/api_service/custom_metadata_field.rb +0 -52
- data/lib/imagekitio/api_service/file.rb +0 -221
- data/lib/imagekitio/api_service/folder.rb +0 -49
- data/lib/imagekitio/base.rb +0 -12
- data/lib/imagekitio/configurable.rb +0 -43
- data/lib/imagekitio/constant.rb +0 -36
- data/lib/imagekitio/constants/default.rb +0 -22
- data/lib/imagekitio/constants/error.rb +0 -69
- data/lib/imagekitio/constants/file.rb +0 -11
- data/lib/imagekitio/constants/supported_transformation.rb +0 -39
- data/lib/imagekitio/constants/url.rb +0 -14
- data/lib/imagekitio/railtie.rb +0 -4
- data/lib/imagekitio/request.rb +0 -98
- data/lib/imagekitio/sdk/version.rb +0 -5
- data/lib/imagekitio/url.rb +0 -216
- data/lib/imagekitio/utils/calculation.rb +0 -45
- data/lib/imagekitio/utils/formatter.rb +0 -48
- data/lib/imagekitio/utils/option_validator.rb +0 -36
- data/lib/tasks/imagekitio/imagekitio_tasks.rake +0 -4
data/SECURITY.md
ADDED
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
# Security Policy
|
|
2
|
+
|
|
3
|
+
## Reporting Security Issues
|
|
4
|
+
|
|
5
|
+
This SDK is generated by [Stainless Software Inc](http://stainless.com). Stainless takes security seriously, and encourages you to report any security vulnerability promptly so that appropriate action can be taken.
|
|
6
|
+
|
|
7
|
+
To report a security issue, please contact the Stainless team at security@stainless.com.
|
|
8
|
+
|
|
9
|
+
## Responsible Disclosure
|
|
10
|
+
|
|
11
|
+
We appreciate the efforts of security researchers and individuals who help us maintain the security of
|
|
12
|
+
SDKs we generate. If you believe you have found a security vulnerability, please adhere to responsible
|
|
13
|
+
disclosure practices by allowing us a reasonable amount of time to investigate and address the issue
|
|
14
|
+
before making any information public.
|
|
15
|
+
|
|
16
|
+
## Reporting Non-SDK Related Security Issues
|
|
17
|
+
|
|
18
|
+
If you encounter security issues that are not directly related to SDKs but pertain to the services
|
|
19
|
+
or products provided by ImageKit, please follow the respective company's security reporting guidelines.
|
|
20
|
+
|
|
21
|
+
### ImageKit Terms and Policies
|
|
22
|
+
|
|
23
|
+
Please contact developer@imagekit.io for any questions or concerns regarding the security of our services.
|
|
24
|
+
|
|
25
|
+
---
|
|
26
|
+
|
|
27
|
+
Thank you for helping us keep the SDKs and systems they interact with secure.
|
data/lib/imagekitio/client.rb
CHANGED
|
@@ -1,202 +1,129 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
2
|
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
attr_reader :
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
3
|
+
module Imagekitio
|
|
4
|
+
class Client < Imagekitio::Internal::Transport::BaseClient
|
|
5
|
+
# Default max number of retries to attempt after a failed retryable request.
|
|
6
|
+
DEFAULT_MAX_RETRIES = 2
|
|
7
|
+
|
|
8
|
+
# Default per-request timeout.
|
|
9
|
+
DEFAULT_TIMEOUT_IN_SECONDS = 60.0
|
|
10
|
+
|
|
11
|
+
# Default initial retry delay in seconds.
|
|
12
|
+
# Overall delay is calculated using exponential backoff + jitter.
|
|
13
|
+
DEFAULT_INITIAL_RETRY_DELAY = 0.5
|
|
14
|
+
|
|
15
|
+
# Default max retry delay in seconds.
|
|
16
|
+
DEFAULT_MAX_RETRY_DELAY = 8.0
|
|
17
|
+
|
|
18
|
+
# Your ImageKit private API key (starts with `private_`). You can find this in the
|
|
19
|
+
# [ImageKit dashboard](https://imagekit.io/dashboard/developer/api-keys).
|
|
20
|
+
# @return [String]
|
|
21
|
+
attr_reader :private_key
|
|
22
|
+
|
|
23
|
+
# ImageKit uses your API key as username and ignores the password. The SDK sets a
|
|
24
|
+
# dummy value. You can ignore this field.
|
|
25
|
+
# @return [String, nil]
|
|
26
|
+
attr_reader :password
|
|
27
|
+
|
|
28
|
+
# @return [Imagekitio::Resources::CustomMetadataFields]
|
|
29
|
+
attr_reader :custom_metadata_fields
|
|
30
|
+
|
|
31
|
+
# @return [Imagekitio::Resources::Files]
|
|
32
|
+
attr_reader :files
|
|
33
|
+
|
|
34
|
+
# @return [Imagekitio::Resources::Assets]
|
|
35
|
+
attr_reader :assets
|
|
36
|
+
|
|
37
|
+
# @return [Imagekitio::Resources::Cache]
|
|
38
|
+
attr_reader :cache
|
|
39
|
+
|
|
40
|
+
# @return [Imagekitio::Resources::Folders]
|
|
41
|
+
attr_reader :folders
|
|
42
|
+
|
|
43
|
+
# @return [Imagekitio::Resources::Accounts]
|
|
44
|
+
attr_reader :accounts
|
|
45
|
+
|
|
46
|
+
# @return [Imagekitio::Resources::Beta]
|
|
47
|
+
attr_reader :beta
|
|
48
|
+
|
|
49
|
+
# @return [Imagekitio::Resources::Webhooks]
|
|
50
|
+
attr_reader :webhooks
|
|
51
|
+
|
|
52
|
+
# @return [Imagekitio::Helper]
|
|
53
|
+
attr_reader :helper
|
|
54
|
+
|
|
55
|
+
# @api private
|
|
56
|
+
#
|
|
57
|
+
# @return [Hash{String=>String}]
|
|
58
|
+
private def auth_headers
|
|
59
|
+
return {} if @private_key.nil? || @password.nil?
|
|
60
|
+
|
|
61
|
+
base64_credentials = ["#{@private_key}:#{@password}"].pack("m0")
|
|
62
|
+
{"authorization" => "Basic #{base64_credentials}"}
|
|
63
|
+
end
|
|
64
|
+
|
|
65
|
+
# @api private
|
|
66
|
+
#
|
|
67
|
+
# @return [Boolean]
|
|
68
|
+
def base_url_overridden? = @base_url_overridden
|
|
69
|
+
|
|
70
|
+
# Creates and returns a new client for interacting with the API.
|
|
71
|
+
#
|
|
72
|
+
# @param private_key [String, nil] Your ImageKit private API key (starts with `private_`). You can find this in the
|
|
73
|
+
# [ImageKit dashboard](https://imagekit.io/dashboard/developer/api-keys). Defaults
|
|
74
|
+
# to `ENV["IMAGEKIT_PRIVATE_KEY"]`
|
|
75
|
+
#
|
|
76
|
+
# @param password [String, nil] ImageKit uses your API key as username and ignores the password. The SDK sets a
|
|
77
|
+
# dummy value. You can ignore this field. Defaults to
|
|
78
|
+
# `ENV["OPTIONAL_IMAGEKIT_IGNORES_THIS"]`
|
|
79
|
+
#
|
|
80
|
+
# @param base_url [String, nil] Override the default base URL for the API, e.g.,
|
|
81
|
+
# `"https://api.example.com/v2/"`. Defaults to `ENV["IMAGE_KIT_BASE_URL"]`
|
|
82
|
+
#
|
|
83
|
+
# @param max_retries [Integer] Max number of retries to attempt after a failed retryable request.
|
|
84
|
+
#
|
|
85
|
+
# @param timeout [Float]
|
|
86
|
+
#
|
|
87
|
+
# @param initial_retry_delay [Float]
|
|
88
|
+
#
|
|
89
|
+
# @param max_retry_delay [Float]
|
|
90
|
+
def initialize(
|
|
91
|
+
private_key: ENV["IMAGEKIT_PRIVATE_KEY"],
|
|
92
|
+
password: ENV.fetch("OPTIONAL_IMAGEKIT_IGNORES_THIS", "do_not_set"),
|
|
93
|
+
base_url: ENV["IMAGE_KIT_BASE_URL"],
|
|
94
|
+
max_retries: self.class::DEFAULT_MAX_RETRIES,
|
|
95
|
+
timeout: self.class::DEFAULT_TIMEOUT_IN_SECONDS,
|
|
96
|
+
initial_retry_delay: self.class::DEFAULT_INITIAL_RETRY_DELAY,
|
|
97
|
+
max_retry_delay: self.class::DEFAULT_MAX_RETRY_DELAY
|
|
98
|
+
)
|
|
99
|
+
@base_url_overridden = !base_url.nil?
|
|
100
|
+
|
|
101
|
+
base_url ||= "https://api.imagekit.io"
|
|
102
|
+
|
|
103
|
+
if private_key.nil? || private_key.to_s.empty?
|
|
104
|
+
raise ArgumentError.new("private_key is required, and can be set via environ: \"IMAGEKIT_PRIVATE_KEY\"")
|
|
26
105
|
end
|
|
27
|
-
unless(public_key.is_a?(String) && public_key.to_s.strip.length != 0)
|
|
28
|
-
raise ArgumentError, constants.MISSING_PUBLIC_KEY
|
|
29
|
-
end
|
|
30
|
-
unless(url_endpoint.is_a?(String) && url_endpoint.to_s.strip.length != 0)
|
|
31
|
-
raise ArgumentError, constants.MISSING_URL_ENDPOINT
|
|
32
|
-
end
|
|
33
|
-
|
|
34
|
-
@private_key = private_key
|
|
35
|
-
@public_key = public_key
|
|
36
|
-
@url_endpoint = url_endpoint
|
|
37
|
-
@transformation_position = transformation_pos
|
|
38
|
-
@options = options
|
|
39
|
-
|
|
40
|
-
@ik_req = Request.new(private_key, public_key, url_endpoint)
|
|
41
|
-
@url_obj = Url.new(@ik_req)
|
|
42
|
-
@file_service = ApiService::File.new(@ik_req)
|
|
43
|
-
@custom_metadata_field_service = ApiService::CustomMetadataField.new(@ik_req)
|
|
44
|
-
@folder_service = ApiService::Folder.new(@ik_req)
|
|
45
|
-
@bulk_service = ApiService::Bulk.new(@ik_req)
|
|
46
|
-
end
|
|
47
|
-
|
|
48
|
-
def set_ik_request(ik_req)
|
|
49
|
-
# setter for imagekit request mainly will be used for
|
|
50
|
-
# test
|
|
51
|
-
@ik_req = ik_req
|
|
52
|
-
end
|
|
53
|
-
|
|
54
|
-
def url(options = {})
|
|
55
|
-
@url_obj.generate_url(options)
|
|
56
|
-
end
|
|
57
|
-
|
|
58
|
-
def upload_file(file: nil, file_name: nil, **options)
|
|
59
|
-
# upload file to imagekit server
|
|
60
|
-
@file_service.upload(file: file, file_name: file_name, **options)
|
|
61
|
-
end
|
|
62
|
-
|
|
63
|
-
def list_files(options = {})
|
|
64
|
-
# list all files
|
|
65
|
-
@file_service.list(**options)
|
|
66
|
-
end
|
|
67
|
-
|
|
68
|
-
def file_versions(file_id: nil)
|
|
69
|
-
@file_service.get_file_versions(file_id: file_id)
|
|
70
|
-
end
|
|
71
|
-
|
|
72
|
-
def file_version_detail(file_id: nil, version_id: nil)
|
|
73
|
-
@file_service.get_file_version_detail(file_id: file_id, version_id: version_id)
|
|
74
|
-
end
|
|
75
|
-
|
|
76
|
-
def delete_file_version(file_id: nil, version_id: nil)
|
|
77
|
-
@file_service.delete_file_version(file_id: file_id, version_id: version_id)
|
|
78
|
-
end
|
|
79
|
-
|
|
80
|
-
def restore_file_version(file_id: nil, version_id: nil)
|
|
81
|
-
@file_service.restore_file_version(file_id: file_id, version_id: version_id)
|
|
82
|
-
end
|
|
83
|
-
|
|
84
|
-
def get_file_details(file_id: nil)
|
|
85
|
-
# Get file detail by file-id or file_url
|
|
86
|
-
@file_service.details(file_identifier: file_id)
|
|
87
|
-
end
|
|
88
|
-
|
|
89
|
-
def update_file_details(file_id: nil, **options)
|
|
90
|
-
# update file details by file id and other options payload
|
|
91
|
-
@file_service.update_details(file_id: file_id, **options)
|
|
92
|
-
end
|
|
93
|
-
|
|
94
|
-
def delete_file(file_id: nil)
|
|
95
|
-
# Delete a file by file-id
|
|
96
|
-
@file_service.delete(file_id: file_id)
|
|
97
|
-
end
|
|
98
|
-
|
|
99
|
-
def get_file_metadata(file_id: nil)
|
|
100
|
-
# Get metadata of a file by file-id
|
|
101
|
-
@file_service.get_metadata(file_id: file_id)
|
|
102
|
-
end
|
|
103
|
-
|
|
104
|
-
def purge_file_cache(file_url: nil)
|
|
105
|
-
# Purge cache from ImageKitIo server by file_url
|
|
106
|
-
@file_service.purge_cache(file_url: file_url)
|
|
107
|
-
end
|
|
108
|
-
|
|
109
|
-
def purge_file_cache_status(request_id: nil)
|
|
110
|
-
@file_service.purge_cache_status(request_id: request_id.to_s)
|
|
111
|
-
end
|
|
112
|
-
|
|
113
|
-
# Get metadata from remote_file_url
|
|
114
|
-
# param remote_file_url: url string of remote file
|
|
115
|
-
def get_remote_file_url_metadata(remote_file_url: "")
|
|
116
|
-
@file_service.get_metadata_from_remote_url(remote_file_url: remote_file_url)
|
|
117
|
-
end
|
|
118
|
-
|
|
119
|
-
def stream_file(file_url: nil, &block)
|
|
120
|
-
@file_service.stream_file(remote_file_url: file_url, &block)
|
|
121
|
-
end
|
|
122
|
-
|
|
123
|
-
def copy_file(source_file_path: nil, destination_path: nil, include_file_versions: false)
|
|
124
|
-
@file_service.copy(source_file_path: source_file_path, destination_path: destination_path, include_file_versions: include_file_versions)
|
|
125
|
-
end
|
|
126
|
-
|
|
127
|
-
def move_file(source_file_path: nil, destination_path: nil)
|
|
128
|
-
@file_service.move(source_file_path: source_file_path, destination_path: destination_path)
|
|
129
|
-
end
|
|
130
|
-
|
|
131
|
-
def rename_file(file_path: nil, new_file_name: nil, **options)
|
|
132
|
-
@file_service.rename(file_path: file_path, new_file_name: new_file_name, **options)
|
|
133
|
-
end
|
|
134
|
-
|
|
135
|
-
def add_bulk_tags(file_ids: [], tags: [])
|
|
136
|
-
@bulk_service.add_tags(file_ids: file_ids, tags: tags)
|
|
137
|
-
end
|
|
138
|
-
|
|
139
|
-
def delete_bulk_files(file_ids: [])
|
|
140
|
-
# Delete file in bulks by list of file id
|
|
141
|
-
@bulk_service.remove_files(file_ids: file_ids)
|
|
142
|
-
end
|
|
143
|
-
|
|
144
|
-
def delete_bulk_tags(file_ids: [], tags: [])
|
|
145
|
-
@bulk_service.remove_tags(file_ids: file_ids, tags: tags)
|
|
146
|
-
end
|
|
147
|
-
|
|
148
|
-
def delete_bulk_ai_tags(file_ids: [], ai_tags: [])
|
|
149
|
-
@bulk_service.remove_ai_tags(file_ids: file_ids, ai_tags: ai_tags)
|
|
150
|
-
end
|
|
151
|
-
|
|
152
|
-
def bulk_job_status(job_id: nil)
|
|
153
|
-
@bulk_service.job_status(job_id: job_id)
|
|
154
|
-
end
|
|
155
|
-
|
|
156
|
-
def create_folder(folder_name: nil, parent_folder_path: "/")
|
|
157
|
-
@folder_service.create(folder_name: folder_name, parent_folder_path: parent_folder_path)
|
|
158
|
-
end
|
|
159
|
-
|
|
160
|
-
def delete_folder(folder_path: nil)
|
|
161
|
-
@folder_service.delete(folder_path: folder_path)
|
|
162
|
-
end
|
|
163
|
-
|
|
164
|
-
def copy_folder(source_folder_path: nil, destination_path: nil, include_file_versions: false)
|
|
165
|
-
@folder_service.copy(source_folder_path: source_folder_path, destination_path: destination_path, include_file_versions: include_file_versions)
|
|
166
|
-
end
|
|
167
|
-
|
|
168
|
-
def move_folder(source_folder_path: nil, destination_path: nil)
|
|
169
|
-
@folder_service.move(source_folder_path: source_folder_path, destination_path: destination_path)
|
|
170
|
-
end
|
|
171
|
-
|
|
172
|
-
def create_custom_metadata_field(name: nil, label: nil, schema: {})
|
|
173
|
-
@custom_metadata_field_service.create(name: name, label: label, schema: schema)
|
|
174
|
-
end
|
|
175
|
-
|
|
176
|
-
def get_custom_metadata_fields(options = {})
|
|
177
|
-
@custom_metadata_field_service.list(**options)
|
|
178
|
-
end
|
|
179
|
-
|
|
180
|
-
def update_custom_metadata_field(id: nil, label: nil, schema: nil)
|
|
181
|
-
@custom_metadata_field_service.update(id: id, label: label, schema: schema)
|
|
182
|
-
end
|
|
183
|
-
|
|
184
|
-
def delete_custom_metadata_field(id: nil)
|
|
185
|
-
@custom_metadata_field_service.delete(id: id)
|
|
186
|
-
end
|
|
187
|
-
|
|
188
|
-
def phash_distance(first, second)
|
|
189
|
-
# Get hamming distance between two phash(image hash) to check
|
|
190
|
-
# similarity between images
|
|
191
|
-
if first.to_s.strip == "" || second.to_s.strip == ""
|
|
192
|
-
raise ArgumentError, constants.MISSING_PHASH_VALUE
|
|
193
|
-
end
|
|
194
|
-
hamming_distance(first, second)
|
|
195
|
-
end
|
|
196
106
|
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
107
|
+
@private_key = private_key.to_s
|
|
108
|
+
@password = password.to_s
|
|
109
|
+
|
|
110
|
+
super(
|
|
111
|
+
base_url: base_url,
|
|
112
|
+
timeout: timeout,
|
|
113
|
+
max_retries: max_retries,
|
|
114
|
+
initial_retry_delay: initial_retry_delay,
|
|
115
|
+
max_retry_delay: max_retry_delay
|
|
116
|
+
)
|
|
117
|
+
|
|
118
|
+
@custom_metadata_fields = Imagekitio::Resources::CustomMetadataFields.new(client: self)
|
|
119
|
+
@files = Imagekitio::Resources::Files.new(client: self)
|
|
120
|
+
@assets = Imagekitio::Resources::Assets.new(client: self)
|
|
121
|
+
@cache = Imagekitio::Resources::Cache.new(client: self)
|
|
122
|
+
@folders = Imagekitio::Resources::Folders.new(client: self)
|
|
123
|
+
@accounts = Imagekitio::Resources::Accounts.new(client: self)
|
|
124
|
+
@beta = Imagekitio::Resources::Beta.new(client: self)
|
|
125
|
+
@webhooks = Imagekitio::Resources::Webhooks.new(client: self)
|
|
126
|
+
@helper = Imagekitio::Helper.new(client: self)
|
|
200
127
|
end
|
|
201
128
|
end
|
|
202
129
|
end
|
data/lib/imagekitio/errors.rb
CHANGED
|
@@ -1,4 +1,228 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Imagekitio
|
|
4
|
+
module Errors
|
|
5
|
+
class Error < StandardError
|
|
6
|
+
# @!attribute cause
|
|
7
|
+
#
|
|
8
|
+
# @return [StandardError, nil]
|
|
9
|
+
end
|
|
10
|
+
|
|
11
|
+
class ConversionError < Imagekitio::Errors::Error
|
|
12
|
+
# @return [StandardError, nil]
|
|
13
|
+
def cause = @cause.nil? ? super : @cause
|
|
14
|
+
|
|
15
|
+
# @api private
|
|
16
|
+
#
|
|
17
|
+
# @param on [Class<StandardError>]
|
|
18
|
+
# @param method [Symbol]
|
|
19
|
+
# @param target [Object]
|
|
20
|
+
# @param value [Object]
|
|
21
|
+
# @param cause [StandardError, nil]
|
|
22
|
+
def initialize(on:, method:, target:, value:, cause: nil)
|
|
23
|
+
cls = on.name.split("::").last
|
|
24
|
+
|
|
25
|
+
message = [
|
|
26
|
+
"Failed to parse #{cls}.#{method} from #{value.class} to #{target.inspect}.",
|
|
27
|
+
"To get the unparsed API response, use #{cls}[#{method.inspect}].",
|
|
28
|
+
cause && "Cause: #{cause.message}"
|
|
29
|
+
].filter(&:itself).join(" ")
|
|
30
|
+
|
|
31
|
+
@cause = cause
|
|
32
|
+
super(message)
|
|
33
|
+
end
|
|
34
|
+
end
|
|
35
|
+
|
|
36
|
+
class APIError < Imagekitio::Errors::Error
|
|
37
|
+
# @return [URI::Generic]
|
|
38
|
+
attr_accessor :url
|
|
39
|
+
|
|
40
|
+
# @return [Integer, nil]
|
|
41
|
+
attr_accessor :status
|
|
42
|
+
|
|
43
|
+
# @return [Hash{String=>String}, nil]
|
|
44
|
+
attr_accessor :headers
|
|
45
|
+
|
|
46
|
+
# @return [Object, nil]
|
|
47
|
+
attr_accessor :body
|
|
48
|
+
|
|
49
|
+
# @api private
|
|
50
|
+
#
|
|
51
|
+
# @param url [URI::Generic]
|
|
52
|
+
# @param status [Integer, nil]
|
|
53
|
+
# @param headers [Hash{String=>String}, nil]
|
|
54
|
+
# @param body [Object, nil]
|
|
55
|
+
# @param request [nil]
|
|
56
|
+
# @param response [nil]
|
|
57
|
+
# @param message [String, nil]
|
|
58
|
+
def initialize(url:, status: nil, headers: nil, body: nil, request: nil, response: nil, message: nil)
|
|
59
|
+
@url = url
|
|
60
|
+
@status = status
|
|
61
|
+
@headers = headers
|
|
62
|
+
@body = body
|
|
63
|
+
@request = request
|
|
64
|
+
@response = response
|
|
65
|
+
super(message)
|
|
66
|
+
end
|
|
67
|
+
end
|
|
68
|
+
|
|
69
|
+
class APIConnectionError < Imagekitio::Errors::APIError
|
|
70
|
+
# @!attribute status
|
|
71
|
+
#
|
|
72
|
+
# @return [nil]
|
|
73
|
+
|
|
74
|
+
# @!attribute body
|
|
75
|
+
#
|
|
76
|
+
# @return [nil]
|
|
77
|
+
|
|
78
|
+
# @api private
|
|
79
|
+
#
|
|
80
|
+
# @param url [URI::Generic]
|
|
81
|
+
# @param status [nil]
|
|
82
|
+
# @param headers [Hash{String=>String}, nil]
|
|
83
|
+
# @param body [nil]
|
|
84
|
+
# @param request [nil]
|
|
85
|
+
# @param response [nil]
|
|
86
|
+
# @param message [String, nil]
|
|
87
|
+
def initialize(
|
|
88
|
+
url:,
|
|
89
|
+
status: nil,
|
|
90
|
+
headers: nil,
|
|
91
|
+
body: nil,
|
|
92
|
+
request: nil,
|
|
93
|
+
response: nil,
|
|
94
|
+
message: "Connection error."
|
|
95
|
+
)
|
|
96
|
+
super
|
|
97
|
+
end
|
|
98
|
+
end
|
|
99
|
+
|
|
100
|
+
class APITimeoutError < Imagekitio::Errors::APIConnectionError
|
|
101
|
+
# @api private
|
|
102
|
+
#
|
|
103
|
+
# @param url [URI::Generic]
|
|
104
|
+
# @param status [nil]
|
|
105
|
+
# @param headers [Hash{String=>String}, nil]
|
|
106
|
+
# @param body [nil]
|
|
107
|
+
# @param request [nil]
|
|
108
|
+
# @param response [nil]
|
|
109
|
+
# @param message [String, nil]
|
|
110
|
+
def initialize(
|
|
111
|
+
url:,
|
|
112
|
+
status: nil,
|
|
113
|
+
headers: nil,
|
|
114
|
+
body: nil,
|
|
115
|
+
request: nil,
|
|
116
|
+
response: nil,
|
|
117
|
+
message: "Request timed out."
|
|
118
|
+
)
|
|
119
|
+
super
|
|
120
|
+
end
|
|
121
|
+
end
|
|
122
|
+
|
|
123
|
+
class APIStatusError < Imagekitio::Errors::APIError
|
|
124
|
+
# @api private
|
|
125
|
+
#
|
|
126
|
+
# @param url [URI::Generic]
|
|
127
|
+
# @param status [Integer]
|
|
128
|
+
# @param headers [Hash{String=>String}, nil]
|
|
129
|
+
# @param body [Object, nil]
|
|
130
|
+
# @param request [nil]
|
|
131
|
+
# @param response [nil]
|
|
132
|
+
# @param message [String, nil]
|
|
133
|
+
#
|
|
134
|
+
# @return [self]
|
|
135
|
+
def self.for(url:, status:, headers:, body:, request:, response:, message: nil)
|
|
136
|
+
kwargs =
|
|
137
|
+
{
|
|
138
|
+
url: url,
|
|
139
|
+
status: status,
|
|
140
|
+
headers: headers,
|
|
141
|
+
body: body,
|
|
142
|
+
request: request,
|
|
143
|
+
response: response,
|
|
144
|
+
message: message
|
|
145
|
+
}
|
|
146
|
+
|
|
147
|
+
case status
|
|
148
|
+
in 400
|
|
149
|
+
Imagekitio::Errors::BadRequestError.new(**kwargs)
|
|
150
|
+
in 401
|
|
151
|
+
Imagekitio::Errors::AuthenticationError.new(**kwargs)
|
|
152
|
+
in 403
|
|
153
|
+
Imagekitio::Errors::PermissionDeniedError.new(**kwargs)
|
|
154
|
+
in 404
|
|
155
|
+
Imagekitio::Errors::NotFoundError.new(**kwargs)
|
|
156
|
+
in 409
|
|
157
|
+
Imagekitio::Errors::ConflictError.new(**kwargs)
|
|
158
|
+
in 422
|
|
159
|
+
Imagekitio::Errors::UnprocessableEntityError.new(**kwargs)
|
|
160
|
+
in 429
|
|
161
|
+
Imagekitio::Errors::RateLimitError.new(**kwargs)
|
|
162
|
+
in (500..)
|
|
163
|
+
Imagekitio::Errors::InternalServerError.new(**kwargs)
|
|
164
|
+
else
|
|
165
|
+
Imagekitio::Errors::APIStatusError.new(**kwargs)
|
|
166
|
+
end
|
|
167
|
+
end
|
|
168
|
+
|
|
169
|
+
# @!parse
|
|
170
|
+
# # @return [Integer]
|
|
171
|
+
# attr_accessor :status
|
|
172
|
+
|
|
173
|
+
# @api private
|
|
174
|
+
#
|
|
175
|
+
# @param url [URI::Generic]
|
|
176
|
+
# @param status [Integer]
|
|
177
|
+
# @param headers [Hash{String=>String}, nil]
|
|
178
|
+
# @param body [Object, nil]
|
|
179
|
+
# @param request [nil]
|
|
180
|
+
# @param response [nil]
|
|
181
|
+
# @param message [String, nil]
|
|
182
|
+
def initialize(url:, status:, headers:, body:, request:, response:, message: nil)
|
|
183
|
+
message ||= {url: url.to_s, status: status, body: body}
|
|
184
|
+
super(
|
|
185
|
+
url: url,
|
|
186
|
+
status: status,
|
|
187
|
+
headers: headers,
|
|
188
|
+
body: body,
|
|
189
|
+
request: request,
|
|
190
|
+
response: response,
|
|
191
|
+
message: message&.to_s
|
|
192
|
+
)
|
|
193
|
+
end
|
|
194
|
+
end
|
|
195
|
+
|
|
196
|
+
class BadRequestError < Imagekitio::Errors::APIStatusError
|
|
197
|
+
HTTP_STATUS = 400
|
|
198
|
+
end
|
|
199
|
+
|
|
200
|
+
class AuthenticationError < Imagekitio::Errors::APIStatusError
|
|
201
|
+
HTTP_STATUS = 401
|
|
202
|
+
end
|
|
203
|
+
|
|
204
|
+
class PermissionDeniedError < Imagekitio::Errors::APIStatusError
|
|
205
|
+
HTTP_STATUS = 403
|
|
206
|
+
end
|
|
207
|
+
|
|
208
|
+
class NotFoundError < Imagekitio::Errors::APIStatusError
|
|
209
|
+
HTTP_STATUS = 404
|
|
210
|
+
end
|
|
211
|
+
|
|
212
|
+
class ConflictError < Imagekitio::Errors::APIStatusError
|
|
213
|
+
HTTP_STATUS = 409
|
|
214
|
+
end
|
|
215
|
+
|
|
216
|
+
class UnprocessableEntityError < Imagekitio::Errors::APIStatusError
|
|
217
|
+
HTTP_STATUS = 422
|
|
218
|
+
end
|
|
219
|
+
|
|
220
|
+
class RateLimitError < Imagekitio::Errors::APIStatusError
|
|
221
|
+
HTTP_STATUS = 429
|
|
222
|
+
end
|
|
223
|
+
|
|
224
|
+
class InternalServerError < Imagekitio::Errors::APIStatusError
|
|
225
|
+
HTTP_STATUS = (500..)
|
|
226
|
+
end
|
|
3
227
|
end
|
|
4
228
|
end
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Imagekitio
|
|
4
|
+
class FilePart
|
|
5
|
+
# @return [Pathname, StringIO, IO, String]
|
|
6
|
+
attr_reader :content
|
|
7
|
+
|
|
8
|
+
# @return [String, nil]
|
|
9
|
+
attr_reader :content_type
|
|
10
|
+
|
|
11
|
+
# @return [String, nil]
|
|
12
|
+
attr_reader :filename
|
|
13
|
+
|
|
14
|
+
# @api private
|
|
15
|
+
#
|
|
16
|
+
# @return [String]
|
|
17
|
+
private def read
|
|
18
|
+
case content
|
|
19
|
+
in Pathname
|
|
20
|
+
content.read(binmode: true)
|
|
21
|
+
in StringIO
|
|
22
|
+
content.string
|
|
23
|
+
in IO
|
|
24
|
+
content.read
|
|
25
|
+
in String
|
|
26
|
+
content
|
|
27
|
+
end
|
|
28
|
+
end
|
|
29
|
+
|
|
30
|
+
# @param a [Object]
|
|
31
|
+
#
|
|
32
|
+
# @return [String]
|
|
33
|
+
def to_json(*a) = read.to_json(*a)
|
|
34
|
+
|
|
35
|
+
# @param a [Object]
|
|
36
|
+
#
|
|
37
|
+
# @return [String]
|
|
38
|
+
def to_yaml(*a) = read.to_yaml(*a)
|
|
39
|
+
|
|
40
|
+
# @param content [Pathname, StringIO, IO, String]
|
|
41
|
+
# @param filename [Pathname, String, nil]
|
|
42
|
+
# @param content_type [String, nil]
|
|
43
|
+
def initialize(content, filename: nil, content_type: nil)
|
|
44
|
+
@content_type = content_type
|
|
45
|
+
@filename =
|
|
46
|
+
case [filename, (@content = content)]
|
|
47
|
+
in [String | Pathname, _]
|
|
48
|
+
::File.basename(filename)
|
|
49
|
+
in [nil, Pathname]
|
|
50
|
+
content.basename.to_path
|
|
51
|
+
in [nil, IO]
|
|
52
|
+
content.to_path
|
|
53
|
+
else
|
|
54
|
+
filename
|
|
55
|
+
end
|
|
56
|
+
end
|
|
57
|
+
end
|
|
58
|
+
end
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
require "openssl"
|
|
4
|
+
require "digest"
|
|
5
|
+
|
|
6
|
+
module Imagekitio
|
|
7
|
+
# @api private
|
|
8
|
+
# Crypto utilities for ImageKit SDK
|
|
9
|
+
# Provides HMAC-SHA1 functionality for URL signing and authentication
|
|
10
|
+
module CryptoUtils
|
|
11
|
+
class << self
|
|
12
|
+
# Creates an HMAC-SHA1 hash
|
|
13
|
+
#
|
|
14
|
+
# @param key [String] The secret key for HMAC generation
|
|
15
|
+
# @param data [String] The data to be signed
|
|
16
|
+
# @return [String] Hex-encoded HMAC-SHA1 hash
|
|
17
|
+
# @raise [StandardError] if HMAC generation fails
|
|
18
|
+
def create_hmac_sha1(key, data)
|
|
19
|
+
OpenSSL::HMAC.hexdigest("SHA1", key, data)
|
|
20
|
+
rescue StandardError => e
|
|
21
|
+
raise StandardError, "Failed to generate HMAC-SHA1 signature: #{e.message}"
|
|
22
|
+
end
|
|
23
|
+
end
|
|
24
|
+
end
|
|
25
|
+
end
|