diff --git a/api/CHANGELOG.md b/api/CHANGELOG.md index a4d58b01..51feb4f8 100644 --- a/api/CHANGELOG.md +++ b/api/CHANGELOG.md @@ -1,4 +1,47 @@ +## 2.0.0 + +### Breaking Changes + +- **Package structure migrated to follow Dart conventions** + - All public APIs now exported through main `lib/cloudinary_api.dart` file + - Internal implementation moved to `lib/src/` (private by convention) + - Models consolidated in `lib/src/models/` directory + - Uploader implementation consolidated in `lib/src/uploader/` + +### Migration Guide + +**Before:** + +```dart +import 'package:cloudinary_api/uploader/cloudinary_uploader.dart'; +import 'package:cloudinary_api/src/request/model/uploader_params.dart'; +import 'package:cloudinary_api/src/response/upload_result.dart'; +``` + +**After:** + +```dart +import 'package:cloudinary_api/cloudinary_api.dart'; +// All public APIs are now available through the main import +``` + +### What Changed + +- `lib/uploader/` → consolidated into `lib/src/uploader/` +- `lib/src/request/model/` → moved to `lib/src/models/` +- `lib/src/response/` → moved to `lib/src/models/` +- All models and public classes now properly exported through main library file +- Internal APIs remain accessible but use `lib/src/` imports explicitly + +### Benefits + +- Cleaner public API surface +- Better IDE autocomplete and documentation +- Follows official Dart package conventions +- Clearer separation between public and internal APIs + ## 1.1.1 + - Fix API parameters signature ## 1.1.0 diff --git a/api/uploader/analysis_options.yaml b/api/analysis_options.yaml similarity index 100% rename from api/uploader/analysis_options.yaml rename to api/analysis_options.yaml diff --git a/api/lib/cloudinary_api.dart b/api/lib/cloudinary_api.dart new file mode 100644 index 00000000..47ec2142 --- /dev/null +++ b/api/lib/cloudinary_api.dart @@ -0,0 +1,36 @@ +/// Cloudinary API Library +/// +/// A Dart SDK for uploading and managing media assets with Cloudinary. +library cloudinary_api; + +// Uploader +export 'src/uploader/cloudinary_uploader.dart'; +export 'src/uploader/uploader.dart'; +export 'src/uploader/uploader_response.dart'; + +// Models - Requests +export 'src/models/upload_request.dart'; +export 'src/models/uploader_request.dart'; +export 'src/models/payload.dart'; + +// Models - Responses +export 'src/models/upload_result.dart'; +export 'src/models/upload_error.dart'; + +// Models - Params +export 'src/models/uploader_params.dart'; +export 'src/models/params/access_control_rule.dart'; +export 'src/models/params/coordinates.dart'; +export 'src/models/params/eager_transformation.dart'; +export 'src/models/params/resource_type.dart'; +export 'src/models/params/responsive_breakpoint.dart'; + +// Abstract interfaces +export 'src/uploader/abstract_uploader_request.dart'; + +// Utilities +export 'src/uploader/utils.dart'; + +// HTTP types (for callbacks) +export 'src/http/request/multi_part_request.dart' + show ProgressCallback, CompletionCallback; diff --git a/api/lib/src/http/request/multi_part_request.dart b/api/lib/src/http/request/multi_part_request.dart index 1f00a202..89d32b2e 100644 --- a/api/lib/src/http/request/multi_part_request.dart +++ b/api/lib/src/http/request/multi_part_request.dart @@ -2,8 +2,8 @@ import 'dart:async'; import 'package:http/http.dart' as http; -import '../../../uploader/uploader_response.dart'; -import '../../response/upload_result.dart'; +import '../../uploader/uploader_response.dart'; +import '../../models/upload_result.dart'; typedef ProgressCallback = void Function(int bytesUploaded, int totalBytes); typedef CompletionCallback = void Function( diff --git a/api/lib/src/http/session/network_delegate.dart b/api/lib/src/http/session/network_delegate.dart index 95bd3846..50ecbd03 100644 --- a/api/lib/src/http/session/network_delegate.dart +++ b/api/lib/src/http/session/network_delegate.dart @@ -1,5 +1,4 @@ -import 'package:cloudinary_api/src/request/model/uploader_params.dart'; -import 'package:cloudinary_api/uploader/utils.dart'; +import 'package:cloudinary_api/src/uploader/utils.dart'; import 'package:cloudinary_url_gen/cloudinary.dart'; import 'package:http/http.dart' as http; diff --git a/api/lib/src/request/model/params/access_control_rule.dart b/api/lib/src/models/params/access_control_rule.dart similarity index 100% rename from api/lib/src/request/model/params/access_control_rule.dart rename to api/lib/src/models/params/access_control_rule.dart diff --git a/api/lib/src/request/model/params/coordinates.dart b/api/lib/src/models/params/coordinates.dart similarity index 100% rename from api/lib/src/request/model/params/coordinates.dart rename to api/lib/src/models/params/coordinates.dart diff --git a/api/lib/src/request/model/params/eager_transformation.dart b/api/lib/src/models/params/eager_transformation.dart similarity index 77% rename from api/lib/src/request/model/params/eager_transformation.dart rename to api/lib/src/models/params/eager_transformation.dart index 42b4df4c..4f79d628 100644 --- a/api/lib/src/request/model/params/eager_transformation.dart +++ b/api/lib/src/models/params/eager_transformation.dart @@ -1,4 +1,4 @@ -import 'package:cloudinary_url_gen/transformation/transformation.dart'; +import 'package:cloudinary_url_gen/cloudinary.dart'; class EagerTransformation { Transformation transformation; diff --git a/api/lib/src/request/model/params/resource_type.dart b/api/lib/src/models/params/resource_type.dart similarity index 100% rename from api/lib/src/request/model/params/resource_type.dart rename to api/lib/src/models/params/resource_type.dart diff --git a/api/lib/src/request/model/params/responsive_breakpoint.dart b/api/lib/src/models/params/responsive_breakpoint.dart similarity index 96% rename from api/lib/src/request/model/params/responsive_breakpoint.dart rename to api/lib/src/models/params/responsive_breakpoint.dart index 0c3ce18c..6e3e18a3 100644 --- a/api/lib/src/request/model/params/responsive_breakpoint.dart +++ b/api/lib/src/models/params/responsive_breakpoint.dart @@ -1,4 +1,4 @@ -import 'package:cloudinary_url_gen/transformation/transformation.dart'; +import 'package:cloudinary_url_gen/cloudinary.dart'; class ResponsiveBreakpoint { bool? createDerived; diff --git a/api/lib/src/request/payload.dart b/api/lib/src/models/payload.dart similarity index 100% rename from api/lib/src/request/payload.dart rename to api/lib/src/models/payload.dart diff --git a/api/lib/src/response/upload_error.dart b/api/lib/src/models/upload_error.dart similarity index 100% rename from api/lib/src/response/upload_error.dart rename to api/lib/src/models/upload_error.dart diff --git a/api/lib/src/request/upload_request.dart b/api/lib/src/models/upload_request.dart similarity index 73% rename from api/lib/src/request/upload_request.dart rename to api/lib/src/models/upload_request.dart index 58d9de8d..3694a540 100644 --- a/api/lib/src/request/upload_request.dart +++ b/api/lib/src/models/upload_request.dart @@ -1,7 +1,7 @@ -import '../../uploader/abstract_uploader_request.dart'; -import '../response/upload_result.dart'; +import '../uploader/abstract_uploader_request.dart'; +import 'upload_result.dart'; import '../http/request/multi_part_request.dart'; -import 'model/uploader_params.dart'; +import 'uploader_params.dart'; import 'payload.dart'; class UploadRequest implements AbstractUploaderRequest { @@ -19,7 +19,7 @@ class UploadRequest implements AbstractUploaderRequest { @override Map buildParams() { - var options = params?.buildParams() ?? {}; + var options = params?.buildParams() ?? {}; options.removeWhere((key, value) => value == null); return options; } diff --git a/api/lib/src/response/upload_result.dart b/api/lib/src/models/upload_result.dart similarity index 86% rename from api/lib/src/response/upload_result.dart rename to api/lib/src/models/upload_result.dart index a54c9a30..a82b0285 100644 --- a/api/lib/src/response/upload_result.dart +++ b/api/lib/src/models/upload_result.dart @@ -1,5 +1,5 @@ -import '../request/model/params/access_control_rule.dart'; -import '../request/model/params/coordinates.dart'; +import 'params/access_control_rule.dart'; +import 'params/coordinates.dart'; abstract class BaseUploadResult {} @@ -58,43 +58,43 @@ class UploadResult implements BaseUploadResult { UploadResult( {this.publicId, - this.version, - this.signature, - this.width, - this.height, - this.format, - this.resourceType, - this.createdAt, - this.tags, - this.pages, - this.bytes, - this.type, - this.etag, - this.placeholder, - this.url, - this.secureUrl, - this.folder, - this.accessMode, - this.originalFilename, - this.colors, - this.predominant, - this.eager, - this.status, - this.faces, - this.coordinates, - this.moderation, - this.responsiveBreakpoints, - this.accessControl, - this.qualityAnalysis, - this.cinemagraphAnalysis, - this.deleteToken, - this.context, - this.done, - this.accessibilityAnalysis, - this.imageMetadata, - this.video, - this.audio, - this.playbackUrl}); + this.version, + this.signature, + this.width, + this.height, + this.format, + this.resourceType, + this.createdAt, + this.tags, + this.pages, + this.bytes, + this.type, + this.etag, + this.placeholder, + this.url, + this.secureUrl, + this.folder, + this.accessMode, + this.originalFilename, + this.colors, + this.predominant, + this.eager, + this.status, + this.faces, + this.coordinates, + this.moderation, + this.responsiveBreakpoints, + this.accessControl, + this.qualityAnalysis, + this.cinemagraphAnalysis, + this.deleteToken, + this.context, + this.done, + this.accessibilityAnalysis, + this.imageMetadata, + this.video, + this.audio, + this.playbackUrl}); factory UploadResult.fromJson(Map data) { final publicId = data['public_id'] as String?; @@ -106,7 +106,7 @@ class UploadResult implements BaseUploadResult { final resourceType = data['resource_type'] as String?; final createdAt = data['created_at'] as String?; final tags = - (data['tags'] as List?)?.map((e) => e.toString()).toList(); + (data['tags'] as List?)?.map((e) => e.toString()).toList(); final pages = data['version'] as int?; final bytes = data['bytes'] as int?; final type = data['type'] as String?; @@ -121,7 +121,7 @@ class UploadResult implements BaseUploadResult { ?.map((value) => ResultColor.fromJson(value)) .toList(); final predominant = (data['predominant'] as Map?)?.map( - (key, value) => MapEntry( + (key, value) => MapEntry( key, (value as List) .map((e) => ResultColor.fromJson(e)) @@ -131,16 +131,16 @@ class UploadResult implements BaseUploadResult { .toList(); final status = data['status'] as String?; final faces = - (data['faces'] != null) ? Coordinates.fromJson(data['faces']) : null; + (data['faces'] != null) ? Coordinates.fromJson(data['faces']) : null; final coordinates = (data['coordinates'] as Map?) ?.map((key, value) => MapEntry(key, Coordinates.fromJson(value))); final moderation = (data['moderation'] as List?) ?.map((value) => ResultModeration.fromJson(value)) .toList(); final responsiveBreakpoints = - (data['responsive_breakpoints'] as List?) - ?.map((value) => ResultResponsiveBreakpoint.fromJson(value)) - .toList(); + (data['responsive_breakpoints'] as List?) + ?.map((value) => ResultResponsiveBreakpoint.fromJson(value)) + .toList(); final accessControl = (data['access_control'] as List?) ?.map((value) => AccessControlRule.fromJson(value)) .toList(); @@ -255,12 +255,12 @@ class ResultEager { ResultEager( {this.transformation, - this.width, - this.height, - this.bytes, - this.format, - this.url, - this.secureUrl}); + this.width, + this.height, + this.bytes, + this.format, + this.url, + this.secureUrl}); factory ResultEager.fromJson(Map data) { final transformation = data['transformation'] as String?; @@ -314,10 +314,10 @@ class ResultAccessibilityAnalysis { factory ResultAccessibilityAnalysis.fromJson(Map data) { final colorblindAccessibilityAnalysis = - ResultColorblindAccessibilityScore.fromJson( - data['colorblind_accessibility_analysis']); + ResultColorblindAccessibilityScore.fromJson( + data['colorblind_accessibility_analysis']); final colorblindAccessibilityScore = - data['colorblind_accessibility_score'] as double; + data['colorblind_accessibility_score'] as double; return ResultAccessibilityAnalysis( colorblindAccessibilityAnalysis, colorblindAccessibilityScore); } @@ -332,10 +332,10 @@ class AudioResultObject { AudioResultObject( {this.codec, - this.bitRate, - this.frequency, - this.channels, - this.channelLayout}); + this.bitRate, + this.frequency, + this.channels, + this.channelLayout}); factory AudioResultObject.fromJson(Map data) { final codec = data['codec'] as String?; @@ -365,13 +365,13 @@ class VideoResultObject { VideoResultObject( {this.pixFormat, - this.codec, - this.level, - this.profile, - this.bitRate, - this.dar, - this.timeBase, - this.metadata}); + this.codec, + this.level, + this.profile, + this.bitRate, + this.dar, + this.timeBase, + this.metadata}); factory VideoResultObject.fromJson(Map data) { final pixFormat = data['pix_format'] as String?; @@ -449,4 +449,4 @@ class ResultSingleBreakpointData { final secureUrl = data['secure_url'] as String; return ResultSingleBreakpointData(bytes, width, height, url, secureUrl); } -} \ No newline at end of file +} diff --git a/api/lib/src/request/model/uploader_params.dart b/api/lib/src/models/uploader_params.dart similarity index 76% rename from api/lib/src/request/model/uploader_params.dart rename to api/lib/src/models/uploader_params.dart index febcad3f..ab86a7bd 100644 --- a/api/lib/src/request/model/uploader_params.dart +++ b/api/lib/src/models/uploader_params.dart @@ -1,9 +1,9 @@ -import 'package:cloudinary_api/src/request/model/params/access_control_rule.dart'; -import 'package:cloudinary_api/src/request/model/params/coordinates.dart'; -import 'package:cloudinary_api/src/request/model/params/eager_transformation.dart'; -import 'package:cloudinary_api/src/request/model/params/responsive_breakpoint.dart'; -import 'package:cloudinary_api/uploader/encode_utils.dart'; -import 'package:cloudinary_url_gen/transformation/transformation.dart'; +import 'package:cloudinary_api/src/models/params/access_control_rule.dart'; +import 'package:cloudinary_api/src/models/params/coordinates.dart'; +import 'package:cloudinary_api/src/models/params/eager_transformation.dart'; +import 'package:cloudinary_api/src/models/params/responsive_breakpoint.dart'; +import 'package:cloudinary_api/src/uploader/encode_utils.dart'; +import 'package:cloudinary_url_gen/cloudinary.dart' hide Coordinates; abstract class UploaderParams { bool? unsigned; @@ -38,11 +38,11 @@ abstract class UploadAssetParams extends UploaderParams { Map? extraHeaders, int? timeout, }) : super( - unsigned: unsigned, - signature: signature, - extraHeaders: extraHeaders, - timeout: timeout, - ); + unsigned: unsigned, + signature: signature, + extraHeaders: extraHeaders, + timeout: timeout, + ); @override Map buildParams() { @@ -60,20 +60,20 @@ class ExplicitParams extends UploadAssetParams { UploadParams? params; ExplicitParams( - this.publicId, { - this.params, - bool? unsigned, - String? signature, - Map? extraHeaders, - int? timeout, - }) : super( - resourceType: 'image', - type: 'upload', - unsigned: unsigned, - signature: signature, - extraHeaders: extraHeaders, - timeout: timeout, - ); + this.publicId, { + this.params, + bool? unsigned, + String? signature, + Map? extraHeaders, + int? timeout, + }) : super( + resourceType: 'image', + type: 'upload', + unsigned: unsigned, + signature: signature, + extraHeaders: extraHeaders, + timeout: timeout, + ); @override Map buildParams() { @@ -106,13 +106,13 @@ class RenameParams extends UploadAssetParams { Map? extraHeaders, int? timeout, }) : super( - resourceType: resourceType ?? 'image', - type: type ?? 'upload', - unsigned: unsigned, - signature: signature, - extraHeaders: extraHeaders, - timeout: timeout, - ); + resourceType: resourceType ?? 'image', + type: type ?? 'upload', + unsigned: unsigned, + signature: signature, + extraHeaders: extraHeaders, + timeout: timeout, + ); @override Map buildParams() { @@ -148,12 +148,11 @@ class DestroyParams extends UploaderParams { Map? extraHeaders, int? timeout, }) : super( - unsigned: unsigned, - signature: signature, - extraHeaders: extraHeaders, - timeout: timeout, - ); - + unsigned: unsigned, + signature: signature, + extraHeaders: extraHeaders, + timeout: timeout, + ); @override Map buildParams() { @@ -180,11 +179,11 @@ class ContextParams extends UploaderParams { Map? extraHeaders, int? timeout, }) : super( - unsigned: unsigned, - signature: signature, - extraHeaders: extraHeaders, - timeout: timeout, - ); + unsigned: unsigned, + signature: signature, + extraHeaders: extraHeaders, + timeout: timeout, + ); @override Map buildParams() { @@ -212,11 +211,11 @@ class AddContextParams extends ContextParams { Map? extraHeaders, int? timeout, }) : super( - unsigned: unsigned, - signature: signature, - extraHeaders: extraHeaders, - timeout: timeout, - ); + unsigned: unsigned, + signature: signature, + extraHeaders: extraHeaders, + timeout: timeout, + ); @override Map buildParams() { @@ -238,11 +237,11 @@ class RemoveAllContextParams extends ContextParams { Map? extraHeaders, int? timeout, }) : super( - unsigned: unsigned, - signature: signature, - extraHeaders: extraHeaders, - timeout: timeout, - ); + unsigned: unsigned, + signature: signature, + extraHeaders: extraHeaders, + timeout: timeout, + ); @override Map buildParams() { @@ -255,18 +254,18 @@ class DownloadBackupAssetParams extends UploaderParams { String versionId; DownloadBackupAssetParams( - this.assetId, - this.versionId, { - bool? unsigned, - String? signature, - Map? extraHeaders, - int? timeout, - }) : super( - unsigned: unsigned, - signature: signature, - extraHeaders: extraHeaders, - timeout: timeout, - ); + this.assetId, + this.versionId, { + bool? unsigned, + String? signature, + Map? extraHeaders, + int? timeout, + }) : super( + unsigned: unsigned, + signature: signature, + extraHeaders: extraHeaders, + timeout: timeout, + ); @override Map buildParams() { @@ -336,61 +335,61 @@ class UploadParams extends UploadAssetParams { UploadParams( {this.backup, - this.exif, - this.faces, - this.filename, - this.colors, - @Deprecated('Use the mediaMetadata instead.') this.imageMetadata, - this.mediaMetadata, - this.useFilename, - this.uniqueFilename, - this.eagerAsync, - this.invalidate, - this.discardOriginalFilename, - this.overwrite, - this.phash, - this.returnDeleteToken, - this.async, - this.uploadPreset, - this.publicId, - this.callback, - this.format, - this.notificationUrl, - this.eagerNotificationUrl, - this.proxy, - this.folder, - this.allowedFormats, - this.moderation, - this.cinemagraphAnalysis, - this.qualityAnalysis, - this.accessMode, - this.responsiveBreakpoints, - Transformation? transformation, - this.eager, - this.signature, - this.timestamp, - this.headers, - this.tags, - this.faceCoordinates, - this.customCoordinates, - this.context, - this.accessControl, - this.ocr, - this.rawConvert, - this.categorization, - this.detection, - this.similaritySearch, - this.backgroundRemoval, - this.autoTagging, - this.accessibilityAnalysis, - this.filenameOverride, - this.autoChaptering, - this.autoTranscription, - bool unsigned = false, - String? resourceType, - String? type, - int? timeout, - Map? extraHeaders}) + this.exif, + this.faces, + this.filename, + this.colors, + @Deprecated('Use the mediaMetadata instead.') this.imageMetadata, + this.mediaMetadata, + this.useFilename, + this.uniqueFilename, + this.eagerAsync, + this.invalidate, + this.discardOriginalFilename, + this.overwrite, + this.phash, + this.returnDeleteToken, + this.async, + this.uploadPreset, + this.publicId, + this.callback, + this.format, + this.notificationUrl, + this.eagerNotificationUrl, + this.proxy, + this.folder, + this.allowedFormats, + this.moderation, + this.cinemagraphAnalysis, + this.qualityAnalysis, + this.accessMode, + this.responsiveBreakpoints, + Transformation? transformation, + this.eager, + this.signature, + this.timestamp, + this.headers, + this.tags, + this.faceCoordinates, + this.customCoordinates, + this.context, + this.accessControl, + this.ocr, + this.rawConvert, + this.categorization, + this.detection, + this.similaritySearch, + this.backgroundRemoval, + this.autoTagging, + this.accessibilityAnalysis, + this.filenameOverride, + this.autoChaptering, + this.autoTranscription, + bool unsigned = false, + String? resourceType, + String? type, + int? timeout, + Map? extraHeaders}) : super(resourceType: 'image', type: 'upload') { _transformation = transformation; super.unsigned = unsigned; diff --git a/api/lib/src/request/uploader_request.dart b/api/lib/src/models/uploader_request.dart similarity index 65% rename from api/lib/src/request/uploader_request.dart rename to api/lib/src/models/uploader_request.dart index 1146d5a5..a1f5bbcb 100644 --- a/api/lib/src/request/uploader_request.dart +++ b/api/lib/src/models/uploader_request.dart @@ -1,8 +1,8 @@ import 'package:cloudinary_api/src/http/request/multi_part_request.dart'; -import 'package:cloudinary_api/src/request/model/uploader_params.dart'; -import 'package:cloudinary_api/src/request/payload.dart'; -import 'package:cloudinary_api/uploader/abstract_uploader_request.dart'; -import '../response/upload_result.dart'; +import 'package:cloudinary_api/src/models/uploader_params.dart'; +import 'package:cloudinary_api/src/models/payload.dart'; +import 'package:cloudinary_api/src/uploader/abstract_uploader_request.dart'; +import 'upload_result.dart'; class UploaderRequest implements AbstractUploaderRequest { @override diff --git a/api/lib/src/request/network_request.dart b/api/lib/src/request/network_request.dart index e335c5e1..d11ad28a 100644 --- a/api/lib/src/request/network_request.dart +++ b/api/lib/src/request/network_request.dart @@ -1,5 +1,5 @@ import '../http/request/multi_part_request.dart'; -import 'payload.dart'; +import '../models/payload.dart'; class NetworkRequest { String url; diff --git a/api/lib/uploader/abstract_uploader_request.dart b/api/lib/src/uploader/abstract_uploader_request.dart similarity index 67% rename from api/lib/uploader/abstract_uploader_request.dart rename to api/lib/src/uploader/abstract_uploader_request.dart index 63af54bb..edcdc776 100644 --- a/api/lib/uploader/abstract_uploader_request.dart +++ b/api/lib/src/uploader/abstract_uploader_request.dart @@ -1,6 +1,6 @@ -import '../src/http/request/multi_part_request.dart'; -import '../src/request/model/uploader_params.dart'; -import '../src/request/payload.dart'; +import '../http/request/multi_part_request.dart'; +import '../models/uploader_params.dart'; +import '../models/payload.dart'; abstract class AbstractUploaderRequest { late Payload? payload; diff --git a/api/lib/uploader/cloudinary_uploader.dart b/api/lib/src/uploader/cloudinary_uploader.dart similarity index 72% rename from api/lib/uploader/cloudinary_uploader.dart rename to api/lib/src/uploader/cloudinary_uploader.dart index 943f4250..ab99ca24 100644 --- a/api/lib/uploader/cloudinary_uploader.dart +++ b/api/lib/src/uploader/cloudinary_uploader.dart @@ -1,4 +1,4 @@ -import 'package:cloudinary_api/uploader/uploader.dart'; +import 'package:cloudinary_api/src/uploader/uploader.dart'; import 'package:cloudinary_url_gen/cloudinary.dart'; extension CloudinaryUploader on Cloudinary { diff --git a/api/lib/uploader/encode_utils.dart b/api/lib/src/uploader/encode_utils.dart similarity index 88% rename from api/lib/uploader/encode_utils.dart rename to api/lib/src/uploader/encode_utils.dart index 15d538e4..ab66b12e 100644 --- a/api/lib/uploader/encode_utils.dart +++ b/api/lib/src/uploader/encode_utils.dart @@ -1,9 +1,9 @@ import 'dart:convert'; -import 'package:cloudinary_api/src/request/model/params/coordinates.dart'; -import 'package:cloudinary_api/src/request/model/params/eager_transformation.dart'; -import 'package:cloudinary_api/src/request/model/params/responsive_breakpoint.dart'; -import 'package:cloudinary_api/src/request/model/params/access_control_rule.dart'; +import 'package:cloudinary_api/src/models/params/coordinates.dart'; +import 'package:cloudinary_api/src/models/params/eager_transformation.dart'; +import 'package:cloudinary_api/src/models/params/responsive_breakpoint.dart'; +import 'package:cloudinary_api/src/models/params/access_control_rule.dart'; class EncodeUtils { EncodeUtils._privateConstructor(); diff --git a/api/lib/uploader/uploader.dart b/api/lib/src/uploader/uploader.dart similarity index 84% rename from api/lib/uploader/uploader.dart rename to api/lib/src/uploader/uploader.dart index 8b5a6be5..a0ebcefe 100644 --- a/api/lib/uploader/uploader.dart +++ b/api/lib/src/uploader/uploader.dart @@ -1,13 +1,13 @@ -import 'package:cloudinary_api/src/request/uploader_request.dart'; -import 'package:cloudinary_api/uploader/uploader_response.dart'; -import 'package:cloudinary_api/uploader/uploader_utils.dart'; -import 'package:cloudinary_api/uploader/utils.dart'; +import 'package:cloudinary_api/src/models/uploader_request.dart'; +import 'package:cloudinary_api/src/uploader/uploader_response.dart'; +import 'package:cloudinary_api/src/uploader/uploader_utils.dart'; +import 'package:cloudinary_api/src/uploader/utils.dart'; import 'package:cloudinary_url_gen/cloudinary.dart'; -import '../src/http/request/multi_part_request.dart'; -import '../src/request/model/uploader_params.dart'; -import '../src/request/payload.dart'; -import '../src/request/upload_request.dart'; -import '../src/response/upload_result.dart'; +import '../http/request/multi_part_request.dart'; +import '../models/uploader_params.dart'; +import '../models/payload.dart'; +import '../models/upload_request.dart'; +import '../models/upload_result.dart'; class Uploader { late final UploaderUtils _uploaderUtils; diff --git a/api/lib/uploader/uploader_response.dart b/api/lib/src/uploader/uploader_response.dart similarity index 59% rename from api/lib/uploader/uploader_response.dart rename to api/lib/src/uploader/uploader_response.dart index 344d2c02..91182d85 100644 --- a/api/lib/uploader/uploader_response.dart +++ b/api/lib/src/uploader/uploader_response.dart @@ -1,10 +1,10 @@ -import '../src/response/upload_error.dart'; +import '../models/upload_error.dart'; class UploaderResponse { int responseCode; T? data; UploadError? error; - String? rawResponse;//FIXME: Set variable to Map + String? rawResponse; //FIXME: Set variable to Map UploaderResponse(this.responseCode, this.data, this.error, this.rawResponse); } diff --git a/api/lib/uploader/uploader_utils.dart b/api/lib/src/uploader/uploader_utils.dart similarity index 92% rename from api/lib/uploader/uploader_utils.dart rename to api/lib/src/uploader/uploader_utils.dart index 2f2dac9a..a7d83a9f 100644 --- a/api/lib/uploader/uploader_utils.dart +++ b/api/lib/src/uploader/uploader_utils.dart @@ -4,19 +4,18 @@ import 'dart:io'; import 'dart:math'; import 'package:cloudinary_api/src/http/extensions/list_extension.dart'; -import 'package:cloudinary_api/uploader/uploader_response.dart'; -import 'package:cloudinary_api/uploader/utils.dart'; +import 'package:cloudinary_api/src/uploader/uploader_response.dart'; +import 'package:cloudinary_api/src/uploader/utils.dart'; import 'package:cloudinary_url_gen/cloudinary.dart'; -import 'package:cloudinary_url_gen/config/api_config.dart'; import 'package:http/http.dart' as http; import 'package:http/http.dart'; -import '../src/http/session/network_delegate.dart'; -import '../src/request/model/uploader_params.dart'; -import '../src/request/network_request.dart'; -import '../src/request/payload.dart'; -import '../src/request/upload_request.dart'; -import '../src/response/upload_error.dart'; -import '../src/response/upload_result.dart'; +import '../http/session/network_delegate.dart'; +import '../models/uploader_params.dart'; +import '../request/network_request.dart'; +import '../models/payload.dart'; +import '../models/upload_request.dart'; +import '../models/upload_error.dart'; +import '../models/upload_result.dart'; import 'abstract_uploader_request.dart'; class UploaderUtils { @@ -33,8 +32,8 @@ class UploaderUtils { var version = apiVersion; var resourceType = defaultResourceType; String filename = (request.params is UploadParams - ? (request.params as UploadParams).filename - : null) ?? + ? (request.params as UploadParams).filename + : null) ?? request.payload?.path ?? request.payload?.name ?? 'file'; @@ -56,8 +55,9 @@ class UploaderUtils { if (paramsMap['signature'] == null) { paramsMap['timestamp'] = (DateTime.now().millisecondsSinceEpoch / 1000).toString(); - paramsMap['signature'] = - Utils.apiSignRequest(paramsMap, config.apiSecret!, signatureVersion: cloudinary.config.cloudConfig.signatureVersion); + paramsMap['signature'] = Utils.apiSignRequest( + paramsMap, config.apiSecret!, + signatureVersion: cloudinary.config.cloudConfig.signatureVersion); paramsMap['api_key'] = config.apiKey; if (paramsMap['unsigned'] != null) { paramsMap.remove('unsigned'); diff --git a/api/lib/uploader/utils.dart b/api/lib/src/uploader/utils.dart similarity index 78% rename from api/lib/uploader/utils.dart rename to api/lib/src/uploader/utils.dart index e04b45b9..2201fce5 100644 --- a/api/lib/uploader/utils.dart +++ b/api/lib/src/uploader/utils.dart @@ -1,6 +1,7 @@ import 'dart:convert'; import 'dart:math'; -import 'package:cloudinary_url_gen/config/cloud_config.dart'; +import 'package:cloudinary_url_gen/cloudinary.dart' + show defaultSignatureVersion; import 'package:convert/convert.dart'; import 'package:crypto/crypto.dart'; @@ -11,11 +12,15 @@ class Utils { 'filename', ]; - static String apiSignRequest(Map paramsMap, String apiSecret, {int? signatureVersion = defaultSignatureVersion}) { - paramsMap.removeWhere((key, value) => value == null || _excludeKeys.contains(key)); + static String apiSignRequest(Map paramsMap, String apiSecret, + {int? signatureVersion = defaultSignatureVersion}) { + paramsMap.removeWhere( + (key, value) => value == null || _excludeKeys.contains(key)); String queryString = (paramsMap.keys.whereType().toList()..sort()) - .where((key) => paramsMap[key] is List ? (paramsMap[key] as List).isNotEmpty : paramsMap[key] != null) + .where((key) => paramsMap[key] is List + ? (paramsMap[key] as List).isNotEmpty + : paramsMap[key] != null) .map((key) { var value = paramsMap[key].toString().replaceAll(r'\', ''); if (signatureVersion == 2) { diff --git a/api/pubspec.yaml b/api/pubspec.yaml index e544ba92..808fd6a9 100644 --- a/api/pubspec.yaml +++ b/api/pubspec.yaml @@ -1,6 +1,6 @@ name: cloudinary_api description: Cloudinary is a cloud service that offers a solution to a web application's entire image management pipeline -version: 1.1.1 +version: 2.0.0 homepage: https://www.cloudinary.com repository: https://github.com/cloudinary/cloudinary_dart @@ -13,12 +13,16 @@ dependencies: crypto: ^3.0.3 convert: ^3.1.1 http_parser: ^4.0.2 - cloudinary_url_gen: ^1.8.0 + cloudinary_url_gen: + git: + url: https://github.com/mr7ssam/cloudinary_dart.git + path: url_gen dev_dependencies: - lints: ^3.0.0 + lints: ^6.0.0 test: ^1.25.0 + assets: - assets/sample.jpeg diff --git a/api/test/uploader_test.dart b/api/test/uploader_test.dart index 552fc676..e95bfc75 100644 --- a/api/test/uploader_test.dart +++ b/api/test/uploader_test.dart @@ -1,21 +1,20 @@ import 'dart:io'; import 'dart:math'; -import 'package:cloudinary_api/src/request/model/params/access_control_rule.dart'; -import 'package:cloudinary_api/src/request/model/params/coordinates.dart'; -import 'package:cloudinary_api/src/request/model/params/eager_transformation.dart'; -import 'package:cloudinary_api/src/request/model/params/resource_type.dart'; -import 'package:cloudinary_api/src/request/model/params/responsive_breakpoint.dart'; -import 'package:cloudinary_api/src/request/model/uploader_params.dart'; -import 'package:cloudinary_api/src/response/upload_result.dart'; -import 'package:cloudinary_api/uploader/cloudinary_uploader.dart'; -import 'package:cloudinary_api/uploader/uploader_response.dart'; -import 'package:cloudinary_api/uploader/utils.dart'; -import 'package:cloudinary_url_gen/cloudinary.dart'; -import 'package:cloudinary_url_gen/transformation/delivery/delivery_actions.dart'; -import 'package:cloudinary_url_gen/transformation/effect/effect.dart'; -import 'package:cloudinary_url_gen/transformation/resize/resize.dart'; -import 'package:cloudinary_url_gen/transformation/transformation.dart'; +import 'package:cloudinary_api/src/models/params/access_control_rule.dart'; +import 'package:cloudinary_api/src/models/params/coordinates.dart'; +import 'package:cloudinary_api/src/models/params/eager_transformation.dart'; +import 'package:cloudinary_api/src/models/params/resource_type.dart'; +import 'package:cloudinary_api/src/models/params/responsive_breakpoint.dart'; +import 'package:cloudinary_api/src/models/uploader_params.dart'; +import 'package:cloudinary_api/src/models/upload_result.dart'; +import 'package:cloudinary_api/src/uploader/cloudinary_uploader.dart'; +import 'package:cloudinary_api/src/uploader/uploader_response.dart'; +import 'package:cloudinary_api/src/uploader/utils.dart'; +import 'package:cloudinary_url_gen/cloudinary.dart' + show Cloudinary, Transformation, Resize, Effect; +import 'package:cloudinary_url_gen/src/transformation/delivery/delivery_actions.dart' + show Format; import 'package:cloudinary_url_gen/util/environment.dart'; import 'package:test/test.dart'; @@ -26,7 +25,6 @@ const remoteTestImageUrlString = 'http://cloudinary.com/images/old_logo.png'; String suffix = Environment.getEnvVariable('TRAVIS_JOB_ID') ?? Random().nextInt(99999).toString(); -String _contextTag = "context_tag_$suffix"; String _sdkTestTag = "cloudinary_dart_test_$suffix"; String _archiveTag = "${_sdkTestTag}_archive"; String _uploaderTag = "${_sdkTestTag}_uploader"; @@ -539,13 +537,17 @@ void main() { }); test('Test auto chaptering successful', () async { - var response = await cloudinary.uploader().upload(srcTestVideo, params: UploadParams(resourceType: ResourceType.video.name, autoChaptering: true)); + var response = await cloudinary.uploader().upload(srcTestVideo, + params: UploadParams( + resourceType: ResourceType.video.name, autoChaptering: true)); var result = resultOrThrow(response?.data); assert(result.playbackUrl != null); }); test('Test auto transcription successful', () async { - var response = await cloudinary.uploader().upload(srcTestVideo, params: UploadParams(resourceType: ResourceType.video.name, autoTranscription: true)); + var response = await cloudinary.uploader().upload(srcTestVideo, + params: UploadParams( + resourceType: ResourceType.video.name, autoTranscription: true)); var result = resultOrThrow(response?.data); assert(result.playbackUrl != null); }); @@ -560,7 +562,8 @@ void main() { 'notification_url': 'https://fake.com/callback?a=1&tags=hello,world' }; - final signatureWithAmpersand = Utils.apiSignRequest(paramsWithAmpersand, secret); + final signatureWithAmpersand = + Utils.apiSignRequest(paramsWithAmpersand, secret); final paramsSmuggled = { 'cloud_name': cloudName, @@ -572,15 +575,18 @@ void main() { final signatureSmuggled = Utils.apiSignRequest(paramsSmuggled, secret); expect(signatureWithAmpersand, isNot(equals(signatureSmuggled)), - reason: 'Signatures should be different to prevent parameter smuggling'); + reason: + 'Signatures should be different to prevent parameter smuggling'); const expectedSignature = '4fdf465dd89451cc1ed8ec5b3e314e8a51695704'; expect(signatureWithAmpersand, equals(expectedSignature)); - const expectedSmuggledSignature = '7b4e3a539ff1fa6e6700c41b3a2ee77586a025f9'; + const expectedSmuggledSignature = + '7b4e3a539ff1fa6e6700c41b3a2ee77586a025f9'; expect(signatureSmuggled, equals(expectedSmuggledSignature)); - final versionOneSignature = Utils.apiSignRequest(paramsSmuggled, secret, signatureVersion: 1); + final versionOneSignature = + Utils.apiSignRequest(paramsSmuggled, secret, signatureVersion: 1); expect(versionOneSignature, equals(signatureSmuggled)); }); } diff --git a/api/test/utils_test.dart b/api/test/utils_test.dart index 683f551a..5275af66 100644 --- a/api/test/utils_test.dart +++ b/api/test/utils_test.dart @@ -1,4 +1,4 @@ -import 'package:cloudinary_api/uploader/encode_utils.dart'; +import 'package:cloudinary_api/src/uploader/encode_utils.dart'; import 'package:test/expect.dart'; import 'package:test/scaffolding.dart'; diff --git a/api/uploader/cloudinary_dart.iml b/api/uploader/cloudinary_dart.iml deleted file mode 100644 index ddd7ebb8..00000000 --- a/api/uploader/cloudinary_dart.iml +++ /dev/null @@ -1,14 +0,0 @@ - - - - - - - - - - - - - - \ No newline at end of file diff --git a/url_gen/CHANGELOG.md b/url_gen/CHANGELOG.md index 03e85e7d..b9072104 100644 --- a/url_gen/CHANGELOG.md +++ b/url_gen/CHANGELOG.md @@ -1,4 +1,51 @@ +## 2.0.0 + +### Breaking Changes + +- **Package structure migrated to follow Dart conventions** + - All public APIs now exported through main `lib/cloudinary.dart` file + - Internal implementation moved to `lib/src/` (private by convention) + - Transformation classes moved to `lib/src/transformation/` + - Configuration classes moved to `lib/src/config/` + - Analytics moved to `lib/src/analytics/` + - Asset classes moved to `lib/src/asset/` + +### Migration Guide + +**Before:** + +```dart +import 'package:cloudinary_url_gen/transformation/transformation.dart'; +import 'package:cloudinary_url_gen/transformation/resize/resize.dart'; +import 'package:cloudinary_url_gen/config/cloudinary_config.dart'; +``` + +**After:** + +```dart +import 'package:cloudinary_url_gen/cloudinary.dart'; +// All public APIs are now available through the main import +``` + +### What Changed + +- `lib/transformation/` → moved to `lib/src/transformation/` +- `lib/config/` → moved to `lib/src/config/` +- `lib/analytics/` → moved to `lib/src/analytics/` +- `lib/asset/` → moved to `lib/src/asset/` +- All transformation, configuration, and asset classes now properly exported through main library file +- `lib/auth_token.dart` remains as a specialized export (common Dart pattern) + +### Benefits + +- Cleaner public API surface +- Better IDE autocomplete and documentation +- Follows official Dart package conventions +- Clearer separation between public and internal APIs +- Single import for most use cases + ## 1.8.0 + - Add signature version - Fix parsing field "bytes" in UploadResult diff --git a/url_gen/lib/cloudinary.dart b/url_gen/lib/cloudinary.dart index 7d4eb0ae..9f035b72 100644 --- a/url_gen/lib/cloudinary.dart +++ b/url_gen/lib/cloudinary.dart @@ -1,12 +1,57 @@ -import 'analytics/analytics.dart'; -import 'asset/cld_image.dart'; -import 'asset/cld_video.dart'; -import 'config/cloudinary_config.dart'; +/// Cloudinary URL Generation Library +/// +/// A Dart SDK for generating Cloudinary URLs with transformations. +library cloudinary; + +// Core +export 'src/analytics/analytics.dart'; +export 'src/asset/cld_image.dart'; +export 'src/asset/cld_video.dart'; +export 'src/asset/cld_asset.dart'; +export 'src/config/cloudinary_config.dart'; +export 'src/config/cloud_config.dart'; +export 'src/config/url_config.dart'; +export 'src/config/api_config.dart'; +export 'util/environment.dart'; + +// Transformation +export 'src/transformation/transformation.dart'; +export 'src/transformation/border.dart'; +export 'src/transformation/color.dart'; +export 'src/transformation/common.dart'; +export 'src/transformation/flag.dart'; +export 'src/transformation/named_transformation.dart'; +export 'src/transformation/region.dart'; +export 'src/transformation/rotate.dart'; +export 'src/transformation/round_corners.dart'; +export 'src/transformation/transformation_utils.dart'; + +// Transformation sub-packages +export 'src/transformation/adjust/adjust.dart'; +export 'src/transformation/background/background.dart'; +export 'src/transformation/coordinates/coordinates.dart'; +export 'src/transformation/delivery/delivery.dart'; +export 'src/transformation/effect/effect.dart'; +export 'src/transformation/extract/extract.dart'; +export 'src/transformation/gravity/gravity.dart'; +export 'src/transformation/layer/common.dart'; +export 'src/transformation/reshape/reshape.dart'; +export 'src/transformation/resize/resize.dart'; +export 'src/transformation/source/source.dart'; +export 'src/transformation/video_edit/video_edit.dart'; + +// Asset Builders +export 'src/asset/builders/general_asset_builder.dart'; + +import 'src/analytics/analytics.dart'; +import 'src/asset/cld_image.dart'; +import 'src/asset/cld_video.dart'; +import 'src/config/cloudinary_config.dart'; import 'util/environment.dart'; -import 'asset/cld_asset.dart'; +import 'src/asset/cld_asset.dart'; -String sdkVersion = '1.8.0'; +String sdkVersion = '2.0.0'; class Cloudinary { late CloudinaryConfig config; diff --git a/url_gen/lib/analytics/analytics.dart b/url_gen/lib/src/analytics/analytics.dart similarity index 85% rename from url_gen/lib/analytics/analytics.dart rename to url_gen/lib/src/analytics/analytics.dart index 54d231e4..3a351a51 100644 --- a/url_gen/lib/analytics/analytics.dart +++ b/url_gen/lib/src/analytics/analytics.dart @@ -1,10 +1,9 @@ -import 'package:cloudinary_url_gen/analytics/analytics_helper.dart'; +import 'package:cloudinary_url_gen/src/analytics/analytics_helper.dart'; -import '../cloudinary.dart'; -import '../src/extensions/string_extension.dart'; +import 'package:cloudinary_url_gen/cloudinary.dart'; +import '../extensions/string_extension.dart'; class Analytics { - final sdkTokenQueryKey = "_a"; final sdkQueryDelimiter = "="; final algoVersion = 'D'; @@ -18,8 +17,12 @@ class Analytics { Analytics(); - Analytics.fromParameters({ - String? sdk, String? version, String? techVersion, String? osType, String? osVersion}) { + Analytics.fromParameters( + {String? sdk, + String? version, + String? techVersion, + String? osType, + String? osVersion}) { this.sdk = sdk ?? this.sdk; sdkVersion = version ?? sdkVersion; this.techVersion = techVersion ?? getTechVersion(); @@ -103,7 +106,7 @@ class Analytics { } String getOsVersion() { - if(osVersion.isEmpty) { + if (osVersion.isEmpty) { osVersion = PlatformWrapper.getOperatingSystemVersion(); return getOSVersionString(osVersion); } @@ -115,12 +118,12 @@ class Analytics { } String getOsType() { - if (PlatformWrapper.isiOS()) { - return 'B'; - } else if (PlatformWrapper.isAndroid()) { - return 'A'; // 'A' stands for Android - } else { - return 'Z'; - } + if (PlatformWrapper.isiOS()) { + return 'B'; + } else if (PlatformWrapper.isAndroid()) { + return 'A'; // 'A' stands for Android + } else { + return 'Z'; + } } } diff --git a/url_gen/lib/analytics/analytics_helper.dart b/url_gen/lib/src/analytics/analytics_helper.dart similarity index 78% rename from url_gen/lib/analytics/analytics_helper.dart rename to url_gen/lib/src/analytics/analytics_helper.dart index 261eecfc..88d84e00 100644 --- a/url_gen/lib/analytics/analytics_helper.dart +++ b/url_gen/lib/src/analytics/analytics_helper.dart @@ -1,23 +1,22 @@ import 'dart:io'; class PlatformWrapper { - static bool? kIsWeb; static bool isWeb() { if (kIsWeb != null) { return kIsWeb!; } - try { - kIsWeb = bool.fromEnvironment('dart.library.js_util'); - } catch (e) { - kIsWeb = false; - } + try { + kIsWeb = bool.fromEnvironment('dart.library.js_util'); + } catch (e) { + kIsWeb = false; + } return kIsWeb!; } static String getOperatingSystemVersion() { - if(!isWeb()) { + if (!isWeb()) { try { return Platform.operatingSystemVersion; } catch (e) { @@ -28,10 +27,10 @@ class PlatformWrapper { } static String getVersion() { - if(!isWeb()) { + if (!isWeb()) { try { return Platform.version.split(" ")[0]; - } catch(e) { + } catch (e) { return '0'; } } @@ -39,10 +38,10 @@ class PlatformWrapper { } static bool isiOS() { - if(!isWeb()) { + if (!isWeb()) { try { return Platform.isIOS; - } catch(e) { + } catch (e) { return false; } } @@ -50,7 +49,7 @@ class PlatformWrapper { } static bool isAndroid() { - if(!isWeb()) { + if (!isWeb()) { try { return Platform.isAndroid; } catch (e) { @@ -59,4 +58,4 @@ class PlatformWrapper { } return false; } -} \ No newline at end of file +} diff --git a/url_gen/lib/asset/builders/general_asset_builder.dart b/url_gen/lib/src/asset/builders/general_asset_builder.dart similarity index 100% rename from url_gen/lib/asset/builders/general_asset_builder.dart rename to url_gen/lib/src/asset/builders/general_asset_builder.dart diff --git a/url_gen/lib/asset/cld_asset.dart b/url_gen/lib/src/asset/cld_asset.dart similarity index 99% rename from url_gen/lib/asset/cld_asset.dart rename to url_gen/lib/src/asset/cld_asset.dart index c7dfb3f7..59fb1c28 100644 --- a/url_gen/lib/asset/cld_asset.dart +++ b/url_gen/lib/src/asset/cld_asset.dart @@ -2,10 +2,10 @@ import 'dart:convert'; import 'package:crypto/crypto.dart'; import '../analytics/analytics.dart'; -import '../auth_token.dart'; +import 'package:cloudinary_url_gen/auth_token.dart'; import '../config/cloud_config.dart'; import '../config/url_config.dart'; -import '../src/extensions/string_extension.dart'; +import '../extensions/string_extension.dart'; import '../transformation/transformation.dart'; import 'builders/general_asset_builder.dart'; diff --git a/url_gen/lib/asset/cld_image.dart b/url_gen/lib/src/asset/cld_image.dart similarity index 100% rename from url_gen/lib/asset/cld_image.dart rename to url_gen/lib/src/asset/cld_image.dart diff --git a/url_gen/lib/asset/cld_video.dart b/url_gen/lib/src/asset/cld_video.dart similarity index 100% rename from url_gen/lib/asset/cld_video.dart rename to url_gen/lib/src/asset/cld_video.dart diff --git a/url_gen/lib/config/api_config.dart b/url_gen/lib/src/config/api_config.dart similarity index 100% rename from url_gen/lib/config/api_config.dart rename to url_gen/lib/src/config/api_config.dart diff --git a/url_gen/lib/config/cloud_config.dart b/url_gen/lib/src/config/cloud_config.dart similarity index 96% rename from url_gen/lib/config/cloud_config.dart rename to url_gen/lib/src/config/cloud_config.dart index 909d6b00..c925a78f 100644 --- a/url_gen/lib/config/cloud_config.dart +++ b/url_gen/lib/src/config/cloud_config.dart @@ -1,4 +1,4 @@ -import '../auth_token.dart'; +import 'package:cloudinary_url_gen/auth_token.dart'; const String cloudNameKey = 'cloud_name'; const String apiKeyKey = "api_key"; diff --git a/url_gen/lib/config/cloudinary_config.dart b/url_gen/lib/src/config/cloudinary_config.dart similarity index 92% rename from url_gen/lib/config/cloudinary_config.dart rename to url_gen/lib/src/config/cloudinary_config.dart index 8660a2b6..c04eb09d 100644 --- a/url_gen/lib/config/cloudinary_config.dart +++ b/url_gen/lib/src/config/cloudinary_config.dart @@ -1,8 +1,5 @@ -import 'package:cloudinary_url_gen/config/api_config.dart'; - -import '../src/extensions/string_extension.dart'; -import 'cloud_config.dart'; -import 'url_config.dart'; +import '../../cloudinary.dart'; +import '../extensions/string_extension.dart'; class CloudinaryConfig { CloudConfig cloudConfig; diff --git a/url_gen/lib/config/url_config.dart b/url_gen/lib/src/config/url_config.dart similarity index 98% rename from url_gen/lib/config/url_config.dart rename to url_gen/lib/src/config/url_config.dart index 1542b2bc..01829e00 100644 --- a/url_gen/lib/config/url_config.dart +++ b/url_gen/lib/src/config/url_config.dart @@ -1,6 +1,6 @@ import 'dart:core'; -import '../src/extensions/bool_extension.dart'; +import '../extensions/bool_extension.dart'; const bool defaultSecure = true; const bool defaultForceVersion = true; diff --git a/url_gen/lib/src/extensions/string_extension.dart b/url_gen/lib/src/extensions/string_extension.dart index f7889661..4f4d5efc 100644 --- a/url_gen/lib/src/extensions/string_extension.dart +++ b/url_gen/lib/src/extensions/string_extension.dart @@ -1,4 +1,4 @@ -import '../../transformation/common.dart'; +import '../transformation/common.dart'; extension StringManipulations on String? { bool get isNullOrBlank => (this == null) ? true : this!.trim().isEmpty; diff --git a/url_gen/lib/transformation/adjust/adjust.dart b/url_gen/lib/src/transformation/adjust/adjust.dart similarity index 100% rename from url_gen/lib/transformation/adjust/adjust.dart rename to url_gen/lib/src/transformation/adjust/adjust.dart diff --git a/url_gen/lib/transformation/adjust/adjust_actions.dart b/url_gen/lib/src/transformation/adjust/adjust_actions.dart similarity index 99% rename from url_gen/lib/transformation/adjust/adjust_actions.dart rename to url_gen/lib/src/transformation/adjust/adjust_actions.dart index 3cd5c366..7e373e8d 100644 --- a/url_gen/lib/transformation/adjust/adjust_actions.dart +++ b/url_gen/lib/src/transformation/adjust/adjust_actions.dart @@ -1,4 +1,4 @@ -import '../../src/extensions/string_extension.dart'; +import '../../extensions/string_extension.dart'; import '../color.dart'; import '../common.dart'; import 'adjust.dart'; diff --git a/url_gen/lib/transformation/background/background.dart b/url_gen/lib/src/transformation/background/background.dart similarity index 100% rename from url_gen/lib/transformation/background/background.dart rename to url_gen/lib/src/transformation/background/background.dart diff --git a/url_gen/lib/transformation/background/blurred_background.dart b/url_gen/lib/src/transformation/background/blurred_background.dart similarity index 85% rename from url_gen/lib/transformation/background/blurred_background.dart rename to url_gen/lib/src/transformation/background/blurred_background.dart index c2890607..4d821aeb 100644 --- a/url_gen/lib/transformation/background/blurred_background.dart +++ b/url_gen/lib/src/transformation/background/blurred_background.dart @@ -1,5 +1,5 @@ -import '../../src/extensions/string_extension.dart'; -import '../../src/util/validations.dart'; +import '../../extensions/string_extension.dart'; +import '../../util/validations.dart'; import 'background.dart'; class BlurredBackground extends Background { diff --git a/url_gen/lib/transformation/background/border_background.dart b/url_gen/lib/src/transformation/background/border_background.dart similarity index 93% rename from url_gen/lib/transformation/background/border_background.dart rename to url_gen/lib/src/transformation/background/border_background.dart index fd76349a..faad2cd8 100644 --- a/url_gen/lib/transformation/background/border_background.dart +++ b/url_gen/lib/src/transformation/background/border_background.dart @@ -1,4 +1,4 @@ -import '../../src/extensions/string_extension.dart'; +import '../../extensions/string_extension.dart'; import '../common.dart'; import 'background.dart'; diff --git a/url_gen/lib/transformation/background/border_gradient_background.dart b/url_gen/lib/src/transformation/background/border_gradient_background.dart similarity index 96% rename from url_gen/lib/transformation/background/border_gradient_background.dart rename to url_gen/lib/src/transformation/background/border_gradient_background.dart index 0e5d9d6f..bc9b54b7 100644 --- a/url_gen/lib/transformation/background/border_gradient_background.dart +++ b/url_gen/lib/src/transformation/background/border_gradient_background.dart @@ -1,4 +1,4 @@ -import '../../src/extensions/string_extension.dart'; +import '../../extensions/string_extension.dart'; import '../color.dart'; import 'background.dart'; diff --git a/url_gen/lib/transformation/background/color_background.dart b/url_gen/lib/src/transformation/background/color_background.dart similarity index 100% rename from url_gen/lib/transformation/background/color_background.dart rename to url_gen/lib/src/transformation/background/color_background.dart diff --git a/url_gen/lib/transformation/background/predominant_background.dart b/url_gen/lib/src/transformation/background/predominant_background.dart similarity index 96% rename from url_gen/lib/transformation/background/predominant_background.dart rename to url_gen/lib/src/transformation/background/predominant_background.dart index 0c1c5f4a..a464b5f6 100644 --- a/url_gen/lib/transformation/background/predominant_background.dart +++ b/url_gen/lib/src/transformation/background/predominant_background.dart @@ -1,4 +1,4 @@ -import '../../src/extensions/string_extension.dart'; +import '../../extensions/string_extension.dart'; import '../color.dart'; import 'border_gradient_background.dart'; import 'background.dart'; diff --git a/url_gen/lib/transformation/border.dart b/url_gen/lib/src/transformation/border.dart similarity index 93% rename from url_gen/lib/transformation/border.dart rename to url_gen/lib/src/transformation/border.dart index b43fa9bc..caae2400 100644 --- a/url_gen/lib/transformation/border.dart +++ b/url_gen/lib/src/transformation/border.dart @@ -1,4 +1,4 @@ -import '../src/extensions/string_extension.dart'; +import '../extensions/string_extension.dart'; import 'common.dart'; import 'round_corners.dart'; diff --git a/url_gen/lib/transformation/color.dart b/url_gen/lib/src/transformation/color.dart similarity index 99% rename from url_gen/lib/transformation/color.dart rename to url_gen/lib/src/transformation/color.dart index 2f2305db..f1abb344 100644 --- a/url_gen/lib/transformation/color.dart +++ b/url_gen/lib/src/transformation/color.dart @@ -1,4 +1,4 @@ -import '../src/extensions/string_extension.dart'; +import '../extensions/string_extension.dart'; class Color { String value; diff --git a/url_gen/lib/transformation/common.dart b/url_gen/lib/src/transformation/common.dart similarity index 100% rename from url_gen/lib/transformation/common.dart rename to url_gen/lib/src/transformation/common.dart diff --git a/url_gen/lib/transformation/coordinates/coordinates.dart b/url_gen/lib/src/transformation/coordinates/coordinates.dart similarity index 92% rename from url_gen/lib/transformation/coordinates/coordinates.dart rename to url_gen/lib/src/transformation/coordinates/coordinates.dart index 3ea4f6c8..b37ce912 100644 --- a/url_gen/lib/transformation/coordinates/coordinates.dart +++ b/url_gen/lib/src/transformation/coordinates/coordinates.dart @@ -1,5 +1,5 @@ -import 'package:cloudinary_url_gen/src/extensions/string_extension.dart'; -import 'package:cloudinary_url_gen/transformation/common.dart'; +import '../../extensions/string_extension.dart'; +import '../common.dart'; class Coordinates { late List coordinates; diff --git a/url_gen/lib/transformation/delivery/delivery.dart b/url_gen/lib/src/transformation/delivery/delivery.dart similarity index 100% rename from url_gen/lib/transformation/delivery/delivery.dart rename to url_gen/lib/src/transformation/delivery/delivery.dart diff --git a/url_gen/lib/transformation/delivery/delivery_actions.dart b/url_gen/lib/src/transformation/delivery/delivery_actions.dart similarity index 99% rename from url_gen/lib/transformation/delivery/delivery_actions.dart rename to url_gen/lib/src/transformation/delivery/delivery_actions.dart index 2c0a6e0c..4179fb66 100644 --- a/url_gen/lib/transformation/delivery/delivery_actions.dart +++ b/url_gen/lib/src/transformation/delivery/delivery_actions.dart @@ -1,4 +1,4 @@ -import '../../src/extensions/string_extension.dart'; +import '../../extensions/string_extension.dart'; import '../common.dart'; /// Quality Builder diff --git a/url_gen/lib/transformation/effect/effect.dart b/url_gen/lib/src/transformation/effect/effect.dart similarity index 94% rename from url_gen/lib/transformation/effect/effect.dart rename to url_gen/lib/src/transformation/effect/effect.dart index 7b5aae69..0a651845 100644 --- a/url_gen/lib/transformation/effect/effect.dart +++ b/url_gen/lib/src/transformation/effect/effect.dart @@ -295,18 +295,26 @@ class Effect extends Action { static GenerativeRemove generativeRemove(dynamic prompt, {bool? multiple, dynamic region, bool? removeShadow}) { - return GenerativeRemove(prompt, multiple: multiple, region: region, removeShadow: removeShadow); + return GenerativeRemove(prompt, + multiple: multiple, region: region, removeShadow: removeShadow); } - static GenerativeReplace generativeReplace({required String from, required String to, bool? preserveGeometry, bool? multiple}) { - return GenerativeReplace(from,to, preserveGeometry: preserveGeometry, multiple: multiple); + static GenerativeReplace generativeReplace({ + required String from, + required String to, + bool? preserveGeometry, + bool? multiple, + }) { + return GenerativeReplace(from, to, + preserveGeometry: preserveGeometry, multiple: multiple); } static GenerativeRestore generativeRestore() { return GenerativeRestore(); } - static GenerativeBackgroundReplace generativeBackgroundReplace({String? prompt}) { + static GenerativeBackgroundReplace generativeBackgroundReplace( + {String? prompt}) { return GenerativeBackgroundReplace(prompt); } @@ -314,8 +322,10 @@ class Effect extends Action { return BlurFaces(strength: strength); } - static BlurRegion blurRegion({dynamic strength, dynamic width, dynamic height, dynamic x, dynamic y}) { - return BlurRegion(strength: strength, width: width, height: height, x: x, y: y); + static BlurRegion blurRegion( + {dynamic strength, dynamic width, dynamic height, dynamic x, dynamic y}) { + return BlurRegion( + strength: strength, width: width, height: height, x: x, y: y); } static Upscale upscale() { diff --git a/url_gen/lib/transformation/effect/effect_actions.dart b/url_gen/lib/src/transformation/effect/effect_actions.dart similarity index 95% rename from url_gen/lib/transformation/effect/effect_actions.dart rename to url_gen/lib/src/transformation/effect/effect_actions.dart index 2f65d2e9..9fc0f889 100644 --- a/url_gen/lib/transformation/effect/effect_actions.dart +++ b/url_gen/lib/src/transformation/effect/effect_actions.dart @@ -1,7 +1,7 @@ import 'dart:core'; -import 'package:cloudinary_url_gen/src/extensions/string_extension.dart'; -import 'package:cloudinary_url_gen/src/util/validations.dart'; +import '../../extensions/string_extension.dart'; +import '../../util/validations.dart'; import '../coordinates/coordinates.dart'; import '../gravity/gravity.dart'; @@ -986,7 +986,8 @@ class GenerativeReplace extends Effect { bool? _preserveGeometry; bool? _multiple; - GenerativeReplace(this.from, this.to, {bool? preserveGeometry, bool? multiple}) { + GenerativeReplace(this.from, this.to, + {bool? preserveGeometry, bool? multiple}) { _preserveGeometry = preserveGeometry; _multiple = multiple; } @@ -1003,10 +1004,13 @@ class GenerativeReplace extends Effect { @override String toString() { - return super.toString().joinWithValues(['gen_replace'], actionSeparator: paramKeyValueSeparator).joinWithValues([ + return super.toString().joinWithValues(['gen_replace'], + actionSeparator: paramKeyValueSeparator).joinWithValues([ 'from_$from', 'to_$to', - (_preserveGeometry != null ? 'preserve-geometry_$_preserveGeometry' : null), + (_preserveGeometry != null + ? 'preserve-geometry_$_preserveGeometry' + : null), (_multiple != null ? 'multiple_$_multiple' : null) ], separator: newParamSeparator); } @@ -1018,7 +1022,8 @@ class GenerativeRemove extends Effect { dynamic _region; bool? _removeShadow; - GenerativeRemove(this._prompt, {bool? multiple, dynamic region, bool? removeShadow}) { + GenerativeRemove(this._prompt, + {bool? multiple, dynamic region, bool? removeShadow}) { _multiple = multiple; _region = region; _removeShadow = removeShadow; @@ -1052,8 +1057,8 @@ class GenerativeRemove extends Effect { (_removeShadow != null ? 'remove-shadow_$_removeShadow' : null), (_region != null ? (_region is List - ? 'region_(${(_region as List).join(');(')})' - : 'region_($_region)') + ? 'region_(${(_region as List).join(');(')})' + : 'region_($_region)') : null), ], separator: newParamSeparator); } @@ -1062,14 +1067,17 @@ class GenerativeRemove extends Effect { class Enhance extends Effect { @override String toString() { - return super.toString().joinWithValues(['enhance'], actionSeparator: paramKeyValueSeparator); + return super + .toString() + .joinWithValues(['enhance'], actionSeparator: paramKeyValueSeparator); } } class GenerativeRestore extends Effect { @override String toString() { - return super.toString().joinWithValues(['gen_restore'], actionSeparator: paramKeyValueSeparator); + return super.toString().joinWithValues(['gen_restore'], + actionSeparator: paramKeyValueSeparator); } } @@ -1085,19 +1093,22 @@ class GenerativeBackgroundReplace extends Effect { @override String toString() { - return super.toString().joinWithValues(['gen_background_replace'], actionSeparator: paramKeyValueSeparator).joinWithValues([_prompt != null ? 'prompt_$_prompt' : null]); + return super.toString().joinWithValues(['gen_background_replace'], + actionSeparator: + paramKeyValueSeparator).joinWithValues( + [_prompt != null ? 'prompt_$_prompt' : null]); } } class BlurRegion extends Effect { - dynamic _strength; dynamic _width; dynamic _height; dynamic _x; dynamic _y; - BlurRegion({dynamic strength, dynamic width, dynamic height, dynamic x, dynamic y}) { + BlurRegion( + {dynamic strength, dynamic width, dynamic height, dynamic x, dynamic y}) { _strength = strength; _width = width; _height = height; @@ -1132,8 +1143,10 @@ class BlurRegion extends Effect { @override String toString() { - return super.toString().joinWithValues(['blur_region'], actionSeparator: paramKeyValueSeparator) - .joinWithValues([(_strength != null ? '$_strength' : null)]).joinWithValues([ + return super.toString().joinWithValues(['blur_region'], + actionSeparator: + paramKeyValueSeparator).joinWithValues( + [(_strength != null ? '$_strength' : null)]).joinWithValues([ (_width != null ? 'w_$_width' : null), (_height != null ? 'h_$_height' : null), (_x != null ? 'x_$_x' : null), @@ -1143,7 +1156,6 @@ class BlurRegion extends Effect { } class BlurFaces extends Effect { - dynamic _strength; BlurFaces({strength: dynamic}) { @@ -1157,14 +1169,19 @@ class BlurFaces extends Effect { @override String toString() { - return super.toString().joinWithValues(['blur_faces'], actionSeparator: paramKeyValueSeparator).joinWithValues([(_strength != null ? '$_strength' : null)]); + return super.toString().joinWithValues(['blur_faces'], + actionSeparator: + paramKeyValueSeparator).joinWithValues( + [(_strength != null ? '$_strength' : null)]); } } class Upscale extends Effect { @override String toString() { - return super.toString().joinWithValues(['upscale'], actionSeparator: paramKeyValueSeparator); + return super + .toString() + .joinWithValues(['upscale'], actionSeparator: paramKeyValueSeparator); } } diff --git a/url_gen/lib/transformation/effect/objects/foreground_object.dart b/url_gen/lib/src/transformation/effect/objects/foreground_object.dart similarity index 100% rename from url_gen/lib/transformation/effect/objects/foreground_object.dart rename to url_gen/lib/src/transformation/effect/objects/foreground_object.dart diff --git a/url_gen/lib/transformation/extract/extract.dart b/url_gen/lib/src/transformation/extract/extract.dart similarity index 100% rename from url_gen/lib/transformation/extract/extract.dart rename to url_gen/lib/src/transformation/extract/extract.dart diff --git a/url_gen/lib/transformation/flag.dart b/url_gen/lib/src/transformation/flag.dart similarity index 100% rename from url_gen/lib/transformation/flag.dart rename to url_gen/lib/src/transformation/flag.dart diff --git a/url_gen/lib/transformation/gravity/focus_on.dart b/url_gen/lib/src/transformation/gravity/focus_on.dart similarity index 96% rename from url_gen/lib/transformation/gravity/focus_on.dart rename to url_gen/lib/src/transformation/gravity/focus_on.dart index 25de3f99..fb243620 100644 --- a/url_gen/lib/transformation/gravity/focus_on.dart +++ b/url_gen/lib/src/transformation/gravity/focus_on.dart @@ -1,4 +1,4 @@ -import '../../src/extensions/string_extension.dart'; +import '../../extensions/string_extension.dart'; import '../common.dart'; /// Defines the objects that can be focused on. diff --git a/url_gen/lib/transformation/gravity/gravity.dart b/url_gen/lib/src/transformation/gravity/gravity.dart similarity index 98% rename from url_gen/lib/transformation/gravity/gravity.dart rename to url_gen/lib/src/transformation/gravity/gravity.dart index 4341a422..5c32dbe6 100644 --- a/url_gen/lib/transformation/gravity/gravity.dart +++ b/url_gen/lib/src/transformation/gravity/gravity.dart @@ -1,4 +1,4 @@ -import '../../src/extensions/string_extension.dart'; +import '../../extensions/string_extension.dart'; import 'focus_on.dart'; /// Defines the focal gravity for certain methods of cropping. diff --git a/url_gen/lib/transformation/layer/common.dart b/url_gen/lib/src/transformation/layer/common.dart similarity index 76% rename from url_gen/lib/transformation/layer/common.dart rename to url_gen/lib/src/transformation/layer/common.dart index 47a38932..e8e192d0 100644 --- a/url_gen/lib/transformation/layer/common.dart +++ b/url_gen/lib/src/transformation/layer/common.dart @@ -1,10 +1,9 @@ -import 'package:cloudinary_url_gen/src/extensions/string_extension.dart'; -import 'package:cloudinary_url_gen/transformation/layer/position/base_layer_position.dart'; -import 'package:cloudinary_url_gen/transformation/layer/position/blend_mode.dart'; -import 'package:cloudinary_url_gen/transformation/layer/position/timeline.dart'; -import 'package:cloudinary_url_gen/transformation/source/source.dart'; -import 'package:cloudinary_url_gen/transformation/transformation_utils.dart'; - +import '../../extensions/string_extension.dart'; +import 'position/base_layer_position.dart'; +import 'position/blend_mode.dart'; +import 'position/timeline.dart'; +import '../source/source.dart'; +import '../transformation_utils.dart'; import '../common.dart'; String buildLayerComponent(String sourceParamKey, Source source, diff --git a/url_gen/lib/transformation/layer/position/base_layer_position.dart b/url_gen/lib/src/transformation/layer/position/base_layer_position.dart similarity index 100% rename from url_gen/lib/transformation/layer/position/base_layer_position.dart rename to url_gen/lib/src/transformation/layer/position/base_layer_position.dart diff --git a/url_gen/lib/transformation/layer/position/blend_mode.dart b/url_gen/lib/src/transformation/layer/position/blend_mode.dart similarity index 89% rename from url_gen/lib/transformation/layer/position/blend_mode.dart rename to url_gen/lib/src/transformation/layer/position/blend_mode.dart index 7334f8e3..ee196a9c 100644 --- a/url_gen/lib/transformation/layer/position/blend_mode.dart +++ b/url_gen/lib/src/transformation/layer/position/blend_mode.dart @@ -1,4 +1,4 @@ -import 'package:cloudinary_url_gen/src/extensions/string_extension.dart'; +import '../../../extensions/string_extension.dart'; class BlendMode { String value; diff --git a/url_gen/lib/transformation/layer/position/position.dart b/url_gen/lib/src/transformation/layer/position/position.dart similarity index 85% rename from url_gen/lib/transformation/layer/position/position.dart rename to url_gen/lib/src/transformation/layer/position/position.dart index b116a0d0..e3c980dd 100644 --- a/url_gen/lib/transformation/layer/position/position.dart +++ b/url_gen/lib/src/transformation/layer/position/position.dart @@ -1,4 +1,4 @@ -import 'package:cloudinary_url_gen/transformation/layer/position/base_layer_position.dart'; +import 'base_layer_position.dart'; import '../../common.dart'; diff --git a/url_gen/lib/transformation/layer/position/timeline.dart b/url_gen/lib/src/transformation/layer/position/timeline.dart similarity index 100% rename from url_gen/lib/transformation/layer/position/timeline.dart rename to url_gen/lib/src/transformation/layer/position/timeline.dart diff --git a/url_gen/lib/transformation/named_transformation.dart b/url_gen/lib/src/transformation/named_transformation.dart similarity index 100% rename from url_gen/lib/transformation/named_transformation.dart rename to url_gen/lib/src/transformation/named_transformation.dart diff --git a/url_gen/lib/transformation/region.dart b/url_gen/lib/src/transformation/region.dart similarity index 94% rename from url_gen/lib/transformation/region.dart rename to url_gen/lib/src/transformation/region.dart index 41b8dbfd..de33d2ee 100644 --- a/url_gen/lib/transformation/region.dart +++ b/url_gen/lib/src/transformation/region.dart @@ -1,4 +1,4 @@ -import '../src/extensions/string_extension.dart'; +import '../extensions/string_extension.dart'; import 'common.dart'; class Region { diff --git a/url_gen/lib/transformation/reshape/reshape.dart b/url_gen/lib/src/transformation/reshape/reshape.dart similarity index 81% rename from url_gen/lib/transformation/reshape/reshape.dart rename to url_gen/lib/src/transformation/reshape/reshape.dart index e9ba4322..b72de947 100644 --- a/url_gen/lib/transformation/reshape/reshape.dart +++ b/url_gen/lib/src/transformation/reshape/reshape.dart @@ -1,5 +1,5 @@ -import 'package:cloudinary_url_gen/transformation/reshape/reshape_actions.dart'; -import 'package:cloudinary_url_gen/transformation/source/source.dart'; +import '../reshape/reshape_actions.dart'; +import '../source/source.dart'; import '../common.dart'; diff --git a/url_gen/lib/transformation/reshape/reshape_actions.dart b/url_gen/lib/src/transformation/reshape/reshape_actions.dart similarity index 87% rename from url_gen/lib/transformation/reshape/reshape_actions.dart rename to url_gen/lib/src/transformation/reshape/reshape_actions.dart index ee430427..3f4722e9 100644 --- a/url_gen/lib/transformation/reshape/reshape_actions.dart +++ b/url_gen/lib/src/transformation/reshape/reshape_actions.dart @@ -1,7 +1,7 @@ -import 'package:cloudinary_url_gen/src/extensions/string_extension.dart'; -import 'package:cloudinary_url_gen/transformation/layer/common.dart'; -import 'package:cloudinary_url_gen/transformation/layer/position/position.dart'; -import 'package:cloudinary_url_gen/transformation/reshape/reshape.dart'; +import '../../extensions/string_extension.dart'; +import '../layer/common.dart'; +import '../layer/position/position.dart'; +import '../reshape/reshape.dart'; import '../common.dart'; import '../source/source.dart'; diff --git a/url_gen/lib/transformation/resize/common.dart b/url_gen/lib/src/transformation/resize/common.dart similarity index 100% rename from url_gen/lib/transformation/resize/common.dart rename to url_gen/lib/src/transformation/resize/common.dart diff --git a/url_gen/lib/transformation/resize/crop.dart b/url_gen/lib/src/transformation/resize/crop.dart similarity index 100% rename from url_gen/lib/transformation/resize/crop.dart rename to url_gen/lib/src/transformation/resize/crop.dart diff --git a/url_gen/lib/transformation/resize/fill.dart b/url_gen/lib/src/transformation/resize/fill.dart similarity index 100% rename from url_gen/lib/transformation/resize/fill.dart rename to url_gen/lib/src/transformation/resize/fill.dart diff --git a/url_gen/lib/transformation/resize/fit.dart b/url_gen/lib/src/transformation/resize/fit.dart similarity index 100% rename from url_gen/lib/transformation/resize/fit.dart rename to url_gen/lib/src/transformation/resize/fit.dart diff --git a/url_gen/lib/transformation/resize/pad.dart b/url_gen/lib/src/transformation/resize/pad.dart similarity index 100% rename from url_gen/lib/transformation/resize/pad.dart rename to url_gen/lib/src/transformation/resize/pad.dart diff --git a/url_gen/lib/transformation/resize/resize.dart b/url_gen/lib/src/transformation/resize/resize.dart similarity index 100% rename from url_gen/lib/transformation/resize/resize.dart rename to url_gen/lib/src/transformation/resize/resize.dart diff --git a/url_gen/lib/transformation/resize/scale.dart b/url_gen/lib/src/transformation/resize/scale.dart similarity index 100% rename from url_gen/lib/transformation/resize/scale.dart rename to url_gen/lib/src/transformation/resize/scale.dart diff --git a/url_gen/lib/transformation/rotate.dart b/url_gen/lib/src/transformation/rotate.dart similarity index 100% rename from url_gen/lib/transformation/rotate.dart rename to url_gen/lib/src/transformation/rotate.dart diff --git a/url_gen/lib/transformation/round_corners.dart b/url_gen/lib/src/transformation/round_corners.dart similarity index 100% rename from url_gen/lib/transformation/round_corners.dart rename to url_gen/lib/src/transformation/round_corners.dart diff --git a/url_gen/lib/transformation/source/image_source.dart b/url_gen/lib/src/transformation/source/image_source.dart similarity index 67% rename from url_gen/lib/transformation/source/image_source.dart rename to url_gen/lib/src/transformation/source/image_source.dart index 18cf8f34..8f20cf8f 100644 --- a/url_gen/lib/transformation/source/image_source.dart +++ b/url_gen/lib/src/transformation/source/image_source.dart @@ -1,7 +1,7 @@ -import 'package:cloudinary_url_gen/src/extensions/string_extension.dart'; -import 'package:cloudinary_url_gen/transformation/common.dart'; -import 'package:cloudinary_url_gen/transformation/source/source.dart'; -import 'package:cloudinary_url_gen/transformation/transformation.dart'; +import '../../extensions/string_extension.dart'; +import '../common.dart'; +import '../source/source.dart'; +import '../transformation.dart'; class ImageSource extends Source { late String _publicId; diff --git a/url_gen/lib/transformation/source/source.dart b/url_gen/lib/src/transformation/source/source.dart similarity index 80% rename from url_gen/lib/transformation/source/source.dart rename to url_gen/lib/src/transformation/source/source.dart index 02998fb5..68f56243 100644 --- a/url_gen/lib/transformation/source/source.dart +++ b/url_gen/lib/src/transformation/source/source.dart @@ -1,4 +1,4 @@ -import 'package:cloudinary_url_gen/transformation/source/image_source.dart'; +import '../source/image_source.dart'; import '../common.dart'; import '../transformation.dart'; diff --git a/url_gen/lib/transformation/transformation.dart b/url_gen/lib/src/transformation/transformation.dart similarity index 100% rename from url_gen/lib/transformation/transformation.dart rename to url_gen/lib/src/transformation/transformation.dart diff --git a/url_gen/lib/transformation/transformation_utils.dart b/url_gen/lib/src/transformation/transformation_utils.dart similarity index 100% rename from url_gen/lib/transformation/transformation_utils.dart rename to url_gen/lib/src/transformation/transformation_utils.dart diff --git a/url_gen/lib/transformation/video_edit/transcode/transcode.dart b/url_gen/lib/src/transformation/video_edit/transcode/transcode.dart similarity index 100% rename from url_gen/lib/transformation/video_edit/transcode/transcode.dart rename to url_gen/lib/src/transformation/video_edit/transcode/transcode.dart diff --git a/url_gen/lib/transformation/video_edit/transcode/transcode_actions.dart b/url_gen/lib/src/transformation/video_edit/transcode/transcode_actions.dart similarity index 85% rename from url_gen/lib/transformation/video_edit/transcode/transcode_actions.dart rename to url_gen/lib/src/transformation/video_edit/transcode/transcode_actions.dart index 9b89183c..2b5a3a18 100644 --- a/url_gen/lib/transformation/video_edit/transcode/transcode_actions.dart +++ b/url_gen/lib/src/transformation/video_edit/transcode/transcode_actions.dart @@ -1,4 +1,4 @@ -import 'package:cloudinary_url_gen/src/extensions/string_extension.dart'; +import '../../../extensions/string_extension.dart'; import 'transcode.dart'; @@ -45,7 +45,6 @@ class VideoCodecAction extends Transcode { } class VideoCodec { - dynamic codec; VideoCodec(this.codec); @@ -73,7 +72,8 @@ class H265Codec extends VideoCodec { dynamic _level; bool? _bFrames; - H265Codec({VideoCodecProfile? profile, dynamic level, bool? bFrames}): super('h265') { + H265Codec({VideoCodecProfile? profile, dynamic level, bool? bFrames}) + : super('h265') { _profile = profile; _level = level; _bFrames = bFrames; @@ -96,16 +96,19 @@ class H265Codec extends VideoCodec { @override String toString() { - return (codec as String).joinWithValues([(_profile != null) ? _profile.toString() : null, (_level != null) ? _level.toString() : null, (_bFrames != null && !_bFrames!) ? 'bframes_no' : null]); + return (codec as String).joinWithValues([ + (_profile != null) ? _profile.toString() : null, + (_level != null) ? _level.toString() : null, + (_bFrames != null && !_bFrames!) ? 'bframes_no' : null + ]); } } class H264Codec extends VideoCodec { - VideoCodecProfile? _profile; dynamic _level; - H264Codec({VideoCodecProfile? profile, dynamic level}): super('h264') { + H264Codec({VideoCodecProfile? profile, dynamic level}) : super('h264') { _profile = profile; _level = level; } @@ -122,12 +125,14 @@ class H264Codec extends VideoCodec { @override String toString() { - return (codec as String).joinWithValues([(_profile != null) ? _profile.toString() : null, (_level != null) ? _level.toString() : null]); + return (codec as String).joinWithValues([ + (_profile != null) ? _profile.toString() : null, + (_level != null) ? _level.toString() : null + ]); } } class VideoCodecProfile extends Transcode { - String value; VideoCodecProfile(this.value); @@ -144,7 +149,6 @@ class VideoCodecProfile extends Transcode { } class VideoCodecLevel { - String value; VideoCodecLevel(this.value); diff --git a/url_gen/lib/transformation/video_edit/video_edit.dart b/url_gen/lib/src/transformation/video_edit/video_edit.dart similarity index 100% rename from url_gen/lib/transformation/video_edit/video_edit.dart rename to url_gen/lib/src/transformation/video_edit/video_edit.dart diff --git a/url_gen/lib/transformation/video_edit/video_edit_actions.dart b/url_gen/lib/src/transformation/video_edit/video_edit_actions.dart similarity index 96% rename from url_gen/lib/transformation/video_edit/video_edit_actions.dart rename to url_gen/lib/src/transformation/video_edit/video_edit_actions.dart index 4f2279de..e25870f2 100644 --- a/url_gen/lib/transformation/video_edit/video_edit_actions.dart +++ b/url_gen/lib/src/transformation/video_edit/video_edit_actions.dart @@ -1,5 +1,5 @@ -import 'package:cloudinary_url_gen/src/extensions/string_extension.dart'; -import 'package:cloudinary_url_gen/transformation/video_edit/video_edit.dart'; +import '../../extensions/string_extension.dart'; +import '../video_edit/video_edit.dart'; import '../color.dart'; import '../common.dart'; diff --git a/url_gen/pubspec.yaml b/url_gen/pubspec.yaml index 5aed7058..f122af08 100644 --- a/url_gen/pubspec.yaml +++ b/url_gen/pubspec.yaml @@ -1,6 +1,6 @@ name: cloudinary_url_gen description: Cloudinary is a cloud service that offers a solution to a web application's entire image management pipeline -version: 1.8.0 +version: 2.0.0 homepage: https://www.cloudinary.com repository: https://github.com/cloudinary/cloudinary_dart @@ -13,6 +13,6 @@ dependencies: universal_io: ^2.2.0 dev_dependencies: - lints: ^3.0.0 + lints: ^6.0.0 test: ^1.25.5 diff --git a/url_gen/test/analytics_test.dart b/url_gen/test/analytics_test.dart index 167bf5b8..53224954 100644 --- a/url_gen/test/analytics_test.dart +++ b/url_gen/test/analytics_test.dart @@ -1,33 +1,55 @@ import 'package:test/test.dart'; -import 'package:cloudinary_url_gen/analytics/analytics.dart'; +import 'package:cloudinary_url_gen/src/analytics/analytics.dart'; import 'tests_utils.dart'; void main() { group('Analytics Tests', () { test('Should successfully generate analytics string', () { - var analytics = Analytics.fromParameters(sdk: 'R', version: '1.24.0', techVersion: '12.0', osType: 'Z', osVersion: '17.0') + var analytics = Analytics.fromParameters( + sdk: 'R', + version: '1.24.0', + techVersion: '12.0', + osType: 'Z', + osVersion: '17.0') .generateAnalyticsString(); cldAssert('DARAlhAMZRA0', analytics); }); test('Should successfully generate analytics string', () { - var analytics = - Analytics.fromParameters(sdk: 'R', version: '1.24.0-beta.6', techVersion: '12.0', osType: 'Z', osVersion: '17.0') - .generateAnalyticsString(); + var analytics = Analytics.fromParameters( + sdk: 'R', + version: '1.24.0-beta.6', + techVersion: '12.0', + osType: 'Z', + osVersion: '17.0') + .generateAnalyticsString(); cldAssert('DARAlhAMZRA0', analytics); }); test( 'Test sucessfully generate analytics string with patch for tech version', () { - var analytics = Analytics.fromParameters(sdk: 'R', version: '1.24.0', techVersion: '12.0.1', osType: 'Z', osVersion: '17.0') + var analytics = Analytics.fromParameters( + sdk: 'R', + version: '1.24.0', + techVersion: '12.0.1', + osType: 'Z', + osVersion: '17.0') .generateAnalyticsString(); cldAssert('DARAlhAMZRA0', analytics); }); - test('Test successfully generate analytics token with misbehaved version string', () { - var analytics = Analytics.fromParameters(sdk: 'R', version: '1.24.0', techVersion: '12.0.1', osType: 'Z', osVersion: 'sdk_gphone64_arm64-userdebug 13 TE1A.220922.031 10278734 dev-keys') - .generateAnalyticsString(); - cldAssert('DARAlhAMZAA0', analytics); + test( + 'Test successfully generate analytics token with misbehaved version string', + () { + var analytics = Analytics.fromParameters( + sdk: 'R', + version: '1.24.0', + techVersion: '12.0.1', + osType: 'Z', + osVersion: + 'sdk_gphone64_arm64-userdebug 13 TE1A.220922.031 10278734 dev-keys') + .generateAnalyticsString(); + cldAssert('DARAlhAMZAA0', analytics); }); }); } diff --git a/url_gen/test/authtoken_test.dart b/url_gen/test/authtoken_test.dart index d12d973a..fb39b0d5 100644 --- a/url_gen/test/authtoken_test.dart +++ b/url_gen/test/authtoken_test.dart @@ -1,8 +1,8 @@ import 'package:test/test.dart'; import 'dart:io'; -import '../lib/auth_token.dart'; -import '../lib/cloudinary.dart'; +import 'package:cloudinary_url_gen/auth_token.dart'; +import 'package:cloudinary_url_gen/cloudinary.dart'; import 'tests_utils.dart'; void main() { diff --git a/url_gen/test/cloudinary_test.dart b/url_gen/test/cloudinary_test.dart index 0b17b3ff..db49213d 100644 --- a/url_gen/test/cloudinary_test.dart +++ b/url_gen/test/cloudinary_test.dart @@ -1,7 +1,6 @@ import 'package:test/test.dart'; -import '../lib/cloudinary.dart'; -import '../lib/config/cloudinary_config.dart'; +import 'package:cloudinary_url_gen/cloudinary.dart'; void main() { group('Cloud Config Tests', () { diff --git a/url_gen/test/config_test.dart b/url_gen/test/config_test.dart index 573c7684..972ce842 100644 --- a/url_gen/test/config_test.dart +++ b/url_gen/test/config_test.dart @@ -1,9 +1,6 @@ import 'package:test/test.dart'; -import '../lib/cloudinary.dart'; -import '../lib/config/cloud_config.dart'; -import '../lib/config/cloudinary_config.dart'; -import '../lib/config/url_config.dart'; +import 'package:cloudinary_url_gen/cloudinary.dart'; void main() { group('Cloud Config Tests', () { diff --git a/url_gen/test/tests_utils.dart b/url_gen/test/tests_utils.dart index 661b19ca..60647e7a 100644 --- a/url_gen/test/tests_utils.dart +++ b/url_gen/test/tests_utils.dart @@ -1,6 +1,6 @@ import 'dart:io'; -import '../lib/auth_token.dart'; +import 'package:cloudinary_url_gen/auth_token.dart'; class TestUtils { static bool compareAuthToken(AuthToken? first, AuthToken? second) { diff --git a/url_gen/test/transformation/adjust_test.dart b/url_gen/test/transformation/adjust_test.dart index e6a47e6b..ca81d188 100644 --- a/url_gen/test/transformation/adjust_test.dart +++ b/url_gen/test/transformation/adjust_test.dart @@ -1,8 +1,8 @@ import 'package:test/scaffolding.dart'; -import '../../lib/transformation/adjust/adjust.dart'; -import '../../lib/transformation/adjust/adjust_actions.dart'; -import '../../lib/transformation/color.dart'; +import 'package:cloudinary_url_gen/src/transformation/adjust/adjust.dart'; +import 'package:cloudinary_url_gen/src/transformation/adjust/adjust_actions.dart'; +import 'package:cloudinary_url_gen/src/transformation/color.dart'; import '../tests_utils.dart'; void main() { diff --git a/url_gen/test/transformation/border_test.dart b/url_gen/test/transformation/border_test.dart index 45e18d62..83c46627 100644 --- a/url_gen/test/transformation/border_test.dart +++ b/url_gen/test/transformation/border_test.dart @@ -1,9 +1,9 @@ import 'package:test/scaffolding.dart'; -import '../../lib/transformation/border.dart'; -import '../../lib/transformation/color.dart'; -import '../../lib/transformation/round_corners.dart'; -import '../../lib/transformation/transformation.dart'; +import 'package:cloudinary_url_gen/src/transformation/border.dart'; +import 'package:cloudinary_url_gen/src/transformation/color.dart'; +import 'package:cloudinary_url_gen/src/transformation/round_corners.dart'; +import 'package:cloudinary_url_gen/src/transformation/transformation.dart'; import '../tests_utils.dart'; void main() { diff --git a/url_gen/test/transformation/delivery_test.dart b/url_gen/test/transformation/delivery_test.dart index 13c23e51..416c69f8 100644 --- a/url_gen/test/transformation/delivery_test.dart +++ b/url_gen/test/transformation/delivery_test.dart @@ -1,6 +1,6 @@ +import 'package:cloudinary_url_gen/cloudinary.dart' show Delivery; +import 'package:cloudinary_url_gen/src/transformation/delivery/delivery_actions.dart'; import 'package:test/test.dart'; -import '../../lib/transformation/delivery/delivery.dart'; -import '../../lib/transformation/delivery/delivery_actions.dart'; import '../tests_utils.dart'; void main() { @@ -75,7 +75,8 @@ void main() { }); test('Test delivery color space from icc syntax', () { - cldAssert('cs_icc:test_public_id', Delivery.colorSpaceFromICC('test_public_id')); + cldAssert( + 'cs_icc:test_public_id', Delivery.colorSpaceFromICC('test_public_id')); }); test('Test default image syntax', () { diff --git a/url_gen/test/transformation/effect_test.dart b/url_gen/test/transformation/effect_test.dart index f10a7dd5..bdfd379e 100644 --- a/url_gen/test/transformation/effect_test.dart +++ b/url_gen/test/transformation/effect_test.dart @@ -1,10 +1,10 @@ -import 'package:cloudinary_url_gen/transformation/color.dart'; -import 'package:cloudinary_url_gen/transformation/coordinates/coordinates.dart'; -import 'package:cloudinary_url_gen/transformation/effect/effect.dart'; -import 'package:cloudinary_url_gen/transformation/effect/effect_actions.dart'; -import 'package:cloudinary_url_gen/transformation/effect/objects/foreground_object.dart'; -import 'package:cloudinary_url_gen/transformation/gravity/gravity.dart'; -import 'package:cloudinary_url_gen/transformation/region.dart'; +import 'package:cloudinary_url_gen/src/transformation/color.dart'; +import 'package:cloudinary_url_gen/src/transformation/coordinates/coordinates.dart'; +import 'package:cloudinary_url_gen/src/transformation/effect/effect.dart'; +import 'package:cloudinary_url_gen/src/transformation/effect/effect_actions.dart'; +import 'package:cloudinary_url_gen/src/transformation/effect/objects/foreground_object.dart'; +import 'package:cloudinary_url_gen/src/transformation/gravity/gravity.dart'; +import 'package:cloudinary_url_gen/src/transformation/region.dart'; import 'package:test/test.dart'; import '../tests_utils.dart'; @@ -328,17 +328,24 @@ void main() { 'e_gen_remove:prompt_(dog);region_(x_10;y_10;w_10;h_10);(x_20;y_20;w_20;h_20)', Effect.generativeRemove('dog', region: [Rectangle(10, 10, 10, 10), Rectangle(20, 20, 20, 20)])); - cldAssert('e_gen_remove:prompt_(dog);remove-shadow_true', Effect.generativeRemove('dog', removeShadow: true)); + cldAssert('e_gen_remove:prompt_(dog);remove-shadow_true', + Effect.generativeRemove('dog', removeShadow: true)); }); test('Test successful generative replace effect', () { cldAssert('e_gen_replace:from_baloon;to_airplane', Effect.generativeReplace(from: 'baloon', to: 'airplane')); - cldAssert('e_gen_replace:from_baloon;to_airplane;preserve-geometry_false', - Effect.generativeReplace(from: 'baloon', to: 'airplane', preserveGeometry: false)); - cldAssert('e_gen_replace:from_baloon;to_airplane;preserve-geometry_true', - Effect.generativeReplace(from: 'baloon', to: 'airplane', preserveGeometry: true)); - cldAssert('e_gen_replace:from_baloon;to_airplane;multiple_true', - Effect.generativeReplace(from: 'baloon', to: 'airplane', multiple: true)); + cldAssert( + 'e_gen_replace:from_baloon;to_airplane;preserve-geometry_false', + Effect.generativeReplace( + from: 'baloon', to: 'airplane', preserveGeometry: false)); + cldAssert( + 'e_gen_replace:from_baloon;to_airplane;preserve-geometry_true', + Effect.generativeReplace( + from: 'baloon', to: 'airplane', preserveGeometry: true)); + cldAssert( + 'e_gen_replace:from_baloon;to_airplane;multiple_true', + Effect.generativeReplace( + from: 'baloon', to: 'airplane', multiple: true)); }); test('Test successful generative restore effect', () { @@ -347,7 +354,8 @@ void main() { test('Test successful generative background replace effect', () { cldAssert('e_gen_background_replace', Effect.generativeBackgroundReplace()); - cldAssert('e_gen_background_replace:prompt_dog', Effect.generativeBackgroundReplace(prompt: 'dog')); + cldAssert('e_gen_background_replace:prompt_dog', + Effect.generativeBackgroundReplace(prompt: 'dog')); }); test('Test successful upscale effect', () { @@ -367,8 +375,17 @@ void main() { test('Test successful blur region effect', () { cldAssert('e_blur_region', Effect.blurRegion()); cldAssert('e_blur_region:600', Effect.blurRegion().strength(600)); - cldAssert('e_blur_region:400,w_300,h_400,x_200,y_50', Effect.blurRegion().strength(400).width(300).height(400).x(200).y(50)); - cldAssert('e_blur_region,w_0.5,h_0.25,x_0.3,y_0.3', Effect.blurRegion().width(0.5).height(0.25).x(0.3).y(0.3)); - cldAssert('e_blur_region:\$var1,w_\$var2,h_\$var3,x_\$var4,y_\$var5', Effect.blurRegion().strength("\$var1").width("\$var2").height("\$var3").x("\$var4").y("\$var5")); + cldAssert('e_blur_region:400,w_300,h_400,x_200,y_50', + Effect.blurRegion().strength(400).width(300).height(400).x(200).y(50)); + cldAssert('e_blur_region,w_0.5,h_0.25,x_0.3,y_0.3', + Effect.blurRegion().width(0.5).height(0.25).x(0.3).y(0.3)); + cldAssert( + 'e_blur_region:\$var1,w_\$var2,h_\$var3,x_\$var4,y_\$var5', + Effect.blurRegion() + .strength("\$var1") + .width("\$var2") + .height("\$var3") + .x("\$var4") + .y("\$var5")); }); } diff --git a/url_gen/test/transformation/extract_test.dart b/url_gen/test/transformation/extract_test.dart index b51a91bc..2e0bac95 100644 --- a/url_gen/test/transformation/extract_test.dart +++ b/url_gen/test/transformation/extract_test.dart @@ -1,6 +1,6 @@ import 'package:test/scaffolding.dart'; -import '../../lib/transformation/extract/extract.dart'; +import 'package:cloudinary_url_gen/src/transformation/extract/extract.dart'; import '../tests_utils.dart'; void main() { diff --git a/url_gen/test/transformation/gravity_test.dart b/url_gen/test/transformation/gravity_test.dart index b8c3da80..b26f1c0e 100644 --- a/url_gen/test/transformation/gravity_test.dart +++ b/url_gen/test/transformation/gravity_test.dart @@ -1,7 +1,8 @@ +import 'package:cloudinary_url_gen/cloudinary.dart' show Gravity; +import 'package:cloudinary_url_gen/src/transformation/gravity/focus_on.dart' + show FocusOn; import 'package:test/scaffolding.dart'; -import '../../lib/transformation/gravity/focus_on.dart'; -import '../../lib/transformation/gravity/gravity.dart'; import '../tests_utils.dart'; void main() { diff --git a/url_gen/test/transformation/reshape_test.dart b/url_gen/test/transformation/reshape_test.dart index 7751529b..f6a44a52 100644 --- a/url_gen/test/transformation/reshape_test.dart +++ b/url_gen/test/transformation/reshape_test.dart @@ -1,9 +1,9 @@ -import 'package:cloudinary_url_gen/transformation/color.dart'; -import 'package:cloudinary_url_gen/transformation/layer/position/position.dart'; -import 'package:cloudinary_url_gen/transformation/reshape/reshape.dart'; -import 'package:cloudinary_url_gen/transformation/resize/resize.dart'; -import 'package:cloudinary_url_gen/transformation/source/source.dart'; -import 'package:cloudinary_url_gen/transformation/transformation.dart'; +import 'package:cloudinary_url_gen/src/transformation/color.dart'; +import 'package:cloudinary_url_gen/src/transformation/layer/position/position.dart'; +import 'package:cloudinary_url_gen/src/transformation/reshape/reshape.dart'; +import 'package:cloudinary_url_gen/src/transformation/resize/resize.dart'; +import 'package:cloudinary_url_gen/src/transformation/source/source.dart'; +import 'package:cloudinary_url_gen/src/transformation/transformation.dart'; import 'package:test/scaffolding.dart'; import '../tests_utils.dart'; diff --git a/url_gen/test/transformation/resize_test.dart b/url_gen/test/transformation/resize_test.dart index 59d2f9a7..b374405b 100644 --- a/url_gen/test/transformation/resize_test.dart +++ b/url_gen/test/transformation/resize_test.dart @@ -1,11 +1,11 @@ +import 'package:cloudinary_url_gen/cloudinary.dart' + show Resize, Gravity, Background, Color; +import 'package:cloudinary_url_gen/src/transformation/background/border_background.dart' + show BorderBackground; +import 'package:cloudinary_url_gen/src/transformation/gravity/focus_on.dart' + show FocusOn; import 'package:test/scaffolding.dart'; -import '../../lib/transformation/background/background.dart'; -import '../../lib/transformation/background/border_background.dart'; -import '../../lib/transformation/color.dart'; -import '../../lib/transformation/gravity/focus_on.dart'; -import '../../lib/transformation/gravity/gravity.dart'; -import '../../lib/transformation/resize/resize.dart'; import '../tests_utils.dart'; void main() { @@ -367,13 +367,29 @@ void main() { test("Test successful auto pad formatting", () { cldAssert('c_auto_pad', Resize.autoPad()); cldAssert('c_auto_pad,h_10,w_10', Resize.autoPad().width(10).height(10)); - cldAssert('c_auto_pad,g_auto', Resize.autoPad().gravity(Gravity.autoGravity())); + cldAssert( + 'c_auto_pad,g_auto', Resize.autoPad().gravity(Gravity.autoGravity())); }); test("Test successful resize auto formatting", () { cldAssert("c_auto", Resize.auto()); - cldAssert("c_auto,h_100,w_100", Resize.auto()..width(100)..height(100)); - cldAssert("c_auto,g_auto,h_100,w_100", Resize.auto()..width(100)..height(100)..gravity(Gravity.autoGravity())); - cldAssert("ar_1,c_auto,g_auto,h_100,w_100", Resize.auto()..width(100)..height(100)..aspectRatio(1)..gravity(Gravity.autoGravity())); + cldAssert( + "c_auto,h_100,w_100", + Resize.auto() + ..width(100) + ..height(100)); + cldAssert( + "c_auto,g_auto,h_100,w_100", + Resize.auto() + ..width(100) + ..height(100) + ..gravity(Gravity.autoGravity())); + cldAssert( + "ar_1,c_auto,g_auto,h_100,w_100", + Resize.auto() + ..width(100) + ..height(100) + ..aspectRatio(1) + ..gravity(Gravity.autoGravity())); }); } diff --git a/url_gen/test/transformation/round_corners_test.dart b/url_gen/test/transformation/round_corners_test.dart index 8d60e68a..43d02ec4 100644 --- a/url_gen/test/transformation/round_corners_test.dart +++ b/url_gen/test/transformation/round_corners_test.dart @@ -1,7 +1,8 @@ +import 'package:cloudinary_url_gen/cloudinary.dart' show Transformation; +import 'package:cloudinary_url_gen/src/transformation/round_corners.dart' + show RoundCorners; import 'package:test/scaffolding.dart'; -import '../../lib/transformation/round_corners.dart'; -import '../../lib/transformation/transformation.dart'; import '../tests_utils.dart'; void main() { diff --git a/url_gen/test/transformation/transcode_test.dart b/url_gen/test/transformation/transcode_test.dart index 83ca0547..8cad3eb7 100644 --- a/url_gen/test/transformation/transcode_test.dart +++ b/url_gen/test/transformation/transcode_test.dart @@ -1,5 +1,5 @@ -import 'package:cloudinary_url_gen/transformation/video_edit/transcode/transcode.dart'; -import 'package:cloudinary_url_gen/transformation/video_edit/transcode/transcode_actions.dart'; +import 'package:cloudinary_url_gen/src/transformation/video_edit/transcode/transcode.dart'; +import 'package:cloudinary_url_gen/src/transformation/video_edit/transcode/transcode_actions.dart'; import 'package:test/scaffolding.dart'; import '../tests_utils.dart'; @@ -13,9 +13,21 @@ void main() { test('Test successful video codec', () { cldAssert('vc_vp8', Transcode.videoCodec(VideoCodec.vp8())); - cldAssert("vc_h264:baseline", Transcode.videoCodec(VideoCodec.h264(profile: VideoCodecProfile.baseline()))); - cldAssert("vc_h264:high:3.1", Transcode.videoCodec(VideoCodec.h264(profile: VideoCodecProfile.high(), level: VideoCodecLevel.vcl31()))); + cldAssert( + "vc_h264:baseline", + Transcode.videoCodec( + VideoCodec.h264(profile: VideoCodecProfile.baseline()))); + cldAssert( + "vc_h264:high:3.1", + Transcode.videoCodec(VideoCodec.h264( + profile: VideoCodecProfile.high(), + level: VideoCodecLevel.vcl31()))); cldAssert("vc_h265", Transcode.videoCodec(VideoCodec.h265())); - cldAssert("vc_h265:auto:auto:bframes_no", Transcode.videoCodec(VideoCodec.h265(profile: VideoCodecProfile.auto(), level: VideoCodecLevel.auto(), bFrames: false))); + cldAssert( + "vc_h265:auto:auto:bframes_no", + Transcode.videoCodec(VideoCodec.h265( + profile: VideoCodecProfile.auto(), + level: VideoCodecLevel.auto(), + bFrames: false))); }); } diff --git a/url_gen/test/transformation/trasnformation_test.dart b/url_gen/test/transformation/trasnformation_test.dart index 5fd7198c..18a90604 100644 --- a/url_gen/test/transformation/trasnformation_test.dart +++ b/url_gen/test/transformation/trasnformation_test.dart @@ -1,13 +1,14 @@ +import 'package:cloudinary_url_gen/cloudinary.dart' + show RotationMode, Effect, Resize, Adjust, NamedTransformation; +import 'package:cloudinary_url_gen/src/transformation/delivery/delivery.dart' + show Delivery; +import 'package:cloudinary_url_gen/src/transformation/delivery/delivery_actions.dart' + show Quality; +import 'package:cloudinary_url_gen/src/transformation/rotate.dart' show Rotate; +import 'package:cloudinary_url_gen/src/transformation/transformation.dart' + show Transformation; import 'package:test/scaffolding.dart'; -import '../../lib/transformation/adjust/adjust.dart'; -import '../../lib/transformation/delivery/delivery.dart'; -import '../../lib/transformation/delivery/delivery_actions.dart'; -import '../../lib/transformation/effect/effect.dart'; -import '../../lib/transformation/named_transformation.dart'; -import '../../lib/transformation/resize/resize.dart'; -import '../../lib/transformation/rotate.dart'; -import '../../lib/transformation/transformation.dart'; import '../tests_utils.dart'; void main() { diff --git a/url_gen/test/transformation/video_edit_test.dart b/url_gen/test/transformation/video_edit_test.dart index e5aebacf..d5548767 100644 --- a/url_gen/test/transformation/video_edit_test.dart +++ b/url_gen/test/transformation/video_edit_test.dart @@ -1,7 +1,7 @@ -import 'package:cloudinary_url_gen/transformation/color.dart'; -import 'package:cloudinary_url_gen/transformation/delivery/delivery_actions.dart'; -import 'package:cloudinary_url_gen/transformation/video_edit/video_edit.dart'; -import 'package:cloudinary_url_gen/transformation/video_edit/video_edit_actions.dart'; +import 'package:cloudinary_url_gen/src/transformation/color.dart'; +import 'package:cloudinary_url_gen/src/transformation/delivery/delivery_actions.dart'; +import 'package:cloudinary_url_gen/src/transformation/video_edit/video_edit.dart'; +import 'package:cloudinary_url_gen/src/transformation/video_edit/video_edit_actions.dart'; import 'package:test/scaffolding.dart'; import '../tests_utils.dart'; diff --git a/url_gen/test/url_test.dart b/url_gen/test/url_test.dart index dba6683a..cbd24693 100644 --- a/url_gen/test/url_test.dart +++ b/url_gen/test/url_test.dart @@ -1,15 +1,8 @@ import 'package:test/test.dart'; -import '../lib/analytics/analytics.dart'; -import '../lib/asset/cld_asset.dart'; -import '../lib/auth_token.dart'; -import '../lib/cloudinary.dart'; -import '../lib/config/cloudinary_config.dart'; -import '../lib/config/url_config.dart'; -import '../lib/transformation/delivery/delivery.dart'; -import '../lib/transformation/delivery/delivery_actions.dart'; -import '../lib/transformation/resize/resize.dart'; -import '../lib/transformation/transformation.dart'; +import 'package:cloudinary_url_gen/auth_token.dart'; +import 'package:cloudinary_url_gen/cloudinary.dart'; +import 'package:cloudinary_url_gen/src/transformation/delivery/delivery_actions.dart'; import 'tests_utils.dart'; const defaultRootPath = 'https://res.cloudinary.com/test123/';