Cloudinary_Cloudinary - Version 2.4.0

Version Notes

Release 2.4.0 notes:
- Provide free default transform field to extend default transformation capabilities
- Update documentation
- Update automated tests

Download this release

Release Info

Developer Cloudinary
Extension Cloudinary_Cloudinary
Version 2.4.0
Comparing to
See all releases


Code changes from version 2.3.0 to 2.4.0

app/code/community/Cloudinary/Cloudinary/Block/Adminhtml/System/Config/Form/Free.php ADDED
@@ -0,0 +1,26 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ class Cloudinary_Cloudinary_Block_Adminhtml_System_Config_Form_Free extends Mage_Adminhtml_Block_System_Config_Form_Field
4
+ {
5
+ public function __construct()
6
+ {
7
+ parent::__construct();
8
+ $this->setTemplate('cloudinary/system/config/free.phtml');
9
+ }
10
+
11
+ public function ajaxSampleSecretKey()
12
+ {
13
+ return Mage::getModel('adminhtml/url')->getSecretKey('cloudinaryajax', 'sample');
14
+ }
15
+
16
+ /**
17
+ * Get the button and scripts contents
18
+ *
19
+ * @param Varien_Data_Form_Element_Abstract $element
20
+ * @return string
21
+ */
22
+ protected function _getElementHtml(Varien_Data_Form_Element_Abstract $element)
23
+ {
24
+ return sprintf('%s%s', $element->getElementHtml(), $this->_toHtml());
25
+ }
26
+ }
app/code/community/Cloudinary/Cloudinary/Model/Configuration.php CHANGED
@@ -1,4 +1,5 @@
1
  <?php
 
2
  use CloudinaryExtension\Cloud;
3
  use CloudinaryExtension\ConfigurationBuilder;
4
  use CloudinaryExtension\ConfigurationInterface;
@@ -8,6 +9,7 @@ use CloudinaryExtension\Image\Transformation\Dpr;
8
  use CloudinaryExtension\Image\Transformation\FetchFormat;
9
  use CloudinaryExtension\Image\Transformation\Gravity;
10
  use CloudinaryExtension\Image\Transformation\Quality;
 
11
  use CloudinaryExtension\Security\CloudinaryEnvironmentVariable;
12
  use CloudinaryExtension\UploadConfig;
13
 
@@ -25,6 +27,7 @@ class Cloudinary_Cloudinary_Model_Configuration implements ConfigurationInterfac
25
  const CONFIG_DEFAULT_FETCH_FORMAT = 'cloudinary/transformations/cloudinary_fetch_format';
26
  const CONFIG_CDN_SUBDOMAIN = 'cloudinary/configuration/cloudinary_cdn_subdomain';
27
  const CONFIG_FOLDERED_MIGRATION = 'cloudinary/configuration/cloudinary_foldered_migration';
 
28
 
29
  private $environmentVariable;
30
 
@@ -60,7 +63,8 @@ class Cloudinary_Cloudinary_Model_Configuration implements ConfigurationInterfac
60
  ->withGravity(Gravity::fromString($this->getDefaultGravity()))
61
  ->withFetchFormat(FetchFormat::fromString($this->getFetchFormat()))
62
  ->withQuality(Quality::fromString($this->getImageQuality()))
63
- ->withDpr(Dpr::fromString($this->getImageDpr()));
 
64
 
65
  if ($this->isSmartServing()){
66
  $transformation
@@ -214,4 +218,9 @@ class Cloudinary_Cloudinary_Model_Configuration implements ConfigurationInterfac
214
  {
215
  return Mage::getStoreConfig(self::CONFIG_DEFAULT_DPR);
216
  }
 
 
 
 
 
217
  }
1
  <?php
2
+
3
  use CloudinaryExtension\Cloud;
4
  use CloudinaryExtension\ConfigurationBuilder;
5
  use CloudinaryExtension\ConfigurationInterface;
9
  use CloudinaryExtension\Image\Transformation\FetchFormat;
10
  use CloudinaryExtension\Image\Transformation\Gravity;
11
  use CloudinaryExtension\Image\Transformation\Quality;
12
+ use CloudinaryExtension\Image\Transformation\Freeform;
13
  use CloudinaryExtension\Security\CloudinaryEnvironmentVariable;
14
  use CloudinaryExtension\UploadConfig;
15
 
27
  const CONFIG_DEFAULT_FETCH_FORMAT = 'cloudinary/transformations/cloudinary_fetch_format';
28
  const CONFIG_CDN_SUBDOMAIN = 'cloudinary/configuration/cloudinary_cdn_subdomain';
29
  const CONFIG_FOLDERED_MIGRATION = 'cloudinary/configuration/cloudinary_foldered_migration';
30
+ const CONFIG_GLOBAL_FREEFORM = 'cloudinary/transformations/cloudinary_free_transform_global';
31
 
32
  private $environmentVariable;
33
 
63
  ->withGravity(Gravity::fromString($this->getDefaultGravity()))
64
  ->withFetchFormat(FetchFormat::fromString($this->getFetchFormat()))
65
  ->withQuality(Quality::fromString($this->getImageQuality()))
66
+ ->withDpr(Dpr::fromString($this->getImageDpr()))
67
+ ->withFreeform(Freeform::fromString($this->getDefaultGlobalFreeform()));
68
 
69
  if ($this->isSmartServing()){
70
  $transformation
218
  {
219
  return Mage::getStoreConfig(self::CONFIG_DEFAULT_DPR);
220
  }
221
+
222
+ private function getDefaultGlobalFreeform()
223
+ {
224
+ return Mage::getStoreConfig(self::CONFIG_GLOBAL_FREEFORM);
225
+ }
226
  }
app/code/community/Cloudinary/Cloudinary/Model/SynchronisedMediaUnifier.php CHANGED
@@ -35,7 +35,7 @@ class Cloudinary_Cloudinary_Model_SynchronisedMediaUnifier implements Synchroniz
35
  return array_reduce(
36
  $this->_synchronisedMediaRepositories,
37
  function($carry, $synchronisedMediaRepository) {
38
- return $carry + $synchronisedMediaRepository->findUnsynchronisedImages();
39
  },
40
  []
41
  );
@@ -49,7 +49,7 @@ class Cloudinary_Cloudinary_Model_SynchronisedMediaUnifier implements Synchroniz
49
  return array_reduce(
50
  $this->_synchronisedMediaRepositories,
51
  function($carry, $synchronisedMediaRepository) {
52
- return $carry + $synchronisedMediaRepository->findOrphanedSynchronisedImages();
53
  },
54
  []
55
  );
35
  return array_reduce(
36
  $this->_synchronisedMediaRepositories,
37
  function($carry, $synchronisedMediaRepository) {
38
+ return array_merge($carry, $synchronisedMediaRepository->findUnsynchronisedImages());
39
  },
40
  []
41
  );
49
  return array_reduce(
50
  $this->_synchronisedMediaRepositories,
51
  function($carry, $synchronisedMediaRepository) {
52
+ return array_merge($carry, $synchronisedMediaRepository->findOrphanedSynchronisedImages());
53
  },
54
  []
55
  );
app/code/community/Cloudinary/Cloudinary/Model/System/Config/Free.php ADDED
@@ -0,0 +1,105 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ use CloudinaryExtension\CloudinaryImageProvider;
4
+ use CloudinaryExtension\ConfigurationInterface;
5
+ use CloudinaryExtension\Image;
6
+ use CloudinaryExtension\Image\Transformation;
7
+ use CloudinaryExtension\Image\Transformation\Freeform;
8
+
9
+ class Cloudinary_Cloudinary_Model_System_Config_Free extends Mage_Core_Model_Config_Data
10
+ {
11
+ const ERROR_FORMAT = 'Incorrect custom transform - %s';
12
+ const ERROR_DEFAULT = 'please update';
13
+
14
+ /**
15
+ * @var ConfigurationInterface
16
+ */
17
+ private $configuration;
18
+
19
+ /**
20
+ * @param string $resourceModel
21
+ */
22
+ protected function _init($resourceModel)
23
+ {
24
+ $this->configuration = Mage::getModel('cloudinary_cloudinary/configuration');
25
+ return parent::_init($resourceModel);
26
+ }
27
+
28
+ /**
29
+ * @return Mage_Core_Model_Abstract
30
+ */
31
+ protected function _beforeSave()
32
+ {
33
+ if (!$this->hasAccountConfigured()) {
34
+ return parent::_beforeSave();
35
+ }
36
+
37
+ $transform = $this->configuration
38
+ ->getDefaultTransformation()
39
+ ->withFreeform(Freeform::fromString($this->getValue()));
40
+
41
+ $this->validateImageUrl($this->sampleImageUrl($transform));
42
+
43
+ return $this;
44
+ }
45
+
46
+ /**
47
+ * @param string $url
48
+ */
49
+ public function validateImageUrl($url)
50
+ {
51
+ try {
52
+ $response = $this->httpRequest($url);
53
+ } catch (Exception $e) {
54
+ throw new Mage_Core_Exception(sprintf(self::ERROR_FORMAT, self::ERROR_DEFAULT));
55
+ }
56
+
57
+ if ($response->isError()) {
58
+ throw new Mage_Core_Exception($this->formatError($response));
59
+ }
60
+ }
61
+
62
+ /**
63
+ * @param Zend_Http_Response $response
64
+ * @return string
65
+ */
66
+ public function formatError(Zend_Http_Response $response)
67
+ {
68
+ return sprintf(
69
+ self::ERROR_FORMAT,
70
+ $response->getStatus() == 400 ? $response->getHeader('x-cld-error') : self::ERROR_DEFAULT
71
+ );
72
+ }
73
+
74
+ /**
75
+ * @param string $url
76
+ * @return Zend_Http_Response
77
+ */
78
+ public function httpRequest($url)
79
+ {
80
+ $client = new Varien_Http_Client($url);
81
+ $client->setMethod(Varien_Http_Client::GET);
82
+ return $client->request();
83
+ }
84
+
85
+ /**
86
+ * @return bool
87
+ */
88
+ public function hasAccountConfigured()
89
+ {
90
+ return (string)$this->configuration->getCloud() !== '';
91
+ }
92
+
93
+ /**
94
+ * @param Transformation $transformation
95
+ * @return string
96
+ */
97
+ public function sampleImageUrl(Transformation $transformation)
98
+ {
99
+ $imageProvider = CloudinaryImageProvider::fromConfiguration($this->configuration);
100
+ return (string)$imageProvider->retrieveTransformed(
101
+ Image::fromPath('sample'),
102
+ $transformation
103
+ );
104
+ }
105
+ }
app/code/community/Cloudinary/Cloudinary/Model/System/Config/Source/Dropdown/Quality.php CHANGED
@@ -41,6 +41,10 @@ class Cloudinary_Cloudinary_Model_System_Config_Source_Dropdown_Quality
41
  'value' => '100',
42
  'label' => '100%',
43
  ),
 
 
 
 
44
  );
45
  }
46
  }
41
  'value' => '100',
42
  'label' => '100%',
43
  ),
44
+ array(
45
+ 'value' => 'auto',
46
+ 'label' => 'Auto',
47
+ ),
48
  );
49
  }
50
  }
app/code/community/Cloudinary/Cloudinary/controllers/Adminhtml/CloudinaryajaxController.php ADDED
@@ -0,0 +1,61 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ use CloudinaryExtension\Image\Transformation;
4
+ use CloudinaryExtension\Image\Transformation\Freeform;
5
+
6
+ class Cloudinary_Cloudinary_Adminhtml_CloudinaryajaxController extends Mage_Adminhtml_Controller_Action
7
+ {
8
+ public function sampleAction()
9
+ {
10
+ try {
11
+ $freeTransform = $this->getRequest()->getParam('free');
12
+ $freeModel = Mage::getModel('cloudinary_cloudinary/system_config_free');
13
+ $url = $freeModel->sampleImageUrl($this->defaultTransform($freeTransform));
14
+ $this->validate($freeModel, $url);
15
+ $this->jsonReponse(
16
+ 200,
17
+ ['url' => $url]
18
+ );
19
+ } catch (\Exception $e) {
20
+ $this->jsonReponse(401, ['error' => $e->getMessage()]);
21
+ }
22
+ }
23
+
24
+ /**
25
+ * @param int $code
26
+ * @param array $payload
27
+ */
28
+ private function jsonReponse($code, array $payload)
29
+ {
30
+ $this->getResponse()
31
+ ->clearHeaders()
32
+ ->setHeader('Content-type', 'application/json')
33
+ ->setHttpResponseCode($code)
34
+ ->setBody(Mage::helper('core')->jsonEncode($payload));
35
+ }
36
+
37
+ /**
38
+ * @param string $freeTransforma
39
+ * @return Transformation
40
+ */
41
+ private function defaultTransform($freeTransform)
42
+ {
43
+ return Mage::getModel('cloudinary_cloudinary/configuration')
44
+ ->getDefaultTransformation()
45
+ ->withFreeform(Freeform::fromString($freeTransform));
46
+ }
47
+
48
+ /**
49
+ * @param Cloudinary_Cloudinary_Model_System_Config_Free $model
50
+ * @param string $url
51
+ * @throws Exception
52
+ */
53
+ private function validate(Cloudinary_Cloudinary_Model_System_Config_Free $model, $url)
54
+ {
55
+ if (!$model->hasAccountConfigured()) {
56
+ throw new \Exception('Cloudinary credentials required');
57
+ }
58
+
59
+ $model->validateImageUrl($url);
60
+ }
61
+ }
app/code/community/Cloudinary/Cloudinary/etc/config.xml CHANGED
@@ -2,7 +2,7 @@
2
  <config>
3
  <modules>
4
  <Cloudinary_Cloudinary>
5
- <version>2.3.0</version>
6
  </Cloudinary_Cloudinary>
7
  </modules>
8
  <global>
2
  <config>
3
  <modules>
4
  <Cloudinary_Cloudinary>
5
+ <version>2.4.0</version>
6
  </Cloudinary_Cloudinary>
7
  </modules>
8
  <global>
app/code/community/Cloudinary/Cloudinary/etc/system.xml CHANGED
@@ -124,6 +124,16 @@
124
  <show_in_store>1</show_in_store>
125
  <source_model>cloudinary_cloudinary/system_config_source_dropdown_dpr</source_model>
126
  </cloudinary_image_dpr>
 
 
 
 
 
 
 
 
 
 
127
  </fields>
128
  </transformations>
129
  </groups>
124
  <show_in_store>1</show_in_store>
125
  <source_model>cloudinary_cloudinary/system_config_source_dropdown_dpr</source_model>
126
  </cloudinary_image_dpr>
127
+ <cloudinary_free_transform_global>
128
+ <label>Global custom transform</label>
129
+ <frontend_type>text</frontend_type>
130
+ <sort_order>5</sort_order>
131
+ <show_in_default>1</show_in_default>
132
+ <show_in_website>1</show_in_website>
133
+ <show_in_store>1</show_in_store>
134
+ <frontend_model>cloudinary_cloudinary/adminhtml_system_config_form_free</frontend_model>
135
+ <backend_model>cloudinary_cloudinary/system_config_free</backend_model>
136
+ </cloudinary_free_transform_global>
137
  </fields>
138
  </transformations>
139
  </groups>
app/design/adminhtml/default/default/template/cloudinary/system/config/free.phtml ADDED
@@ -0,0 +1,99 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <p class="note">
2
+ <span>
3
+ Custom transformations will be added to the default image transformations settings chosen above.<br />
4
+ For information about the full range of transforms available see the
5
+ <a href="http://cloudinary.com/documentation/image_transformation_reference" target="_blank">Cloudinary documentation</a>.
6
+ <br />
7
+ You may need to clear or rebuild the Magento block and full page caches to see the changes in the front end.
8
+ </span>
9
+ </p>
10
+
11
+ <button id="cloudinary_custom_transform_preview_button" title="Preview" type="button" class="scalable" onclick="cloudinary.updatePreview()" style="margin-top: 10px;">
12
+ <span><span><span>Preview custom transformation</span></span></span>
13
+ </button>
14
+
15
+ <div id="cloudinary_custom_transform_preview" style="margin-top: 10px;"></div>
16
+
17
+ <script language="javascript">
18
+
19
+ window.cloudinary = {
20
+
21
+ currentTransform: '',
22
+
23
+ secret: '<?php echo $this->ajaxSampleSecretKey(); ?>',
24
+
25
+ getTransformText: function() {
26
+ return $('cloudinary_transformations_cloudinary_free_transform_global').value
27
+ },
28
+
29
+ getSampleImageUrl: function() {
30
+ return '/admin/cloudinaryajax/sample/free/' + this.getTransformText() + '/key/' + this.secret;
31
+ },
32
+
33
+ getImageHtml: function(src) {
34
+ var id = 'cloudinary_custom_transform_preview_image',
35
+ style = 'width: auto; height: auto; max-width: 500px; max-height: 500px; min-height: 50px;',
36
+ footer = '<p>Image size restricted for viewing purposes</p>';
37
+ return '<img id="' + id + '" src="' + src + '" style="' + style + '" />' + footer;
38
+ },
39
+
40
+ getErrorHtml: function(message) {
41
+ return '<ul class="messages"><li class="error-msg">' + message + '</li></ul>';
42
+ },
43
+
44
+ updatePreviewImage: function(url) {
45
+ var $image = $('cloudinary_custom_transform_preview_image');
46
+
47
+ if (!$image) {
48
+ $('cloudinary_custom_transform_preview').update(this.getImageHtml(url));
49
+ } else {
50
+ $image.writeAttribute('src', url);
51
+ }
52
+ },
53
+
54
+ updatePreview: function() {
55
+ var self = this;
56
+
57
+ if (!self.isPreviewActive()) {
58
+ return;
59
+ }
60
+
61
+ self.currentTransform = self.getTransformText();
62
+ self.setPreviewActiveState(false);
63
+
64
+ new Ajax.Request(this.getSampleImageUrl(), {
65
+ onSuccess: function(response) {
66
+ self.updatePreviewImage(response.responseJSON.url);
67
+ },
68
+ onFailure: function(response) {
69
+ $('cloudinary_custom_transform_preview').update(self.getErrorHtml(response.responseJSON.error));
70
+ }
71
+ });
72
+ },
73
+
74
+ setPreviewActiveState: function(state) {
75
+ if (state && (this.currentTransform !== this.getTransformText())) {
76
+ $('cloudinary_custom_transform_preview_button').removeClassName('disabled');
77
+ } else {
78
+ $('cloudinary_custom_transform_preview_button').addClassName('disabled');
79
+ }
80
+ },
81
+
82
+ isPreviewActive: function() {
83
+ return !$('cloudinary_custom_transform_preview_button').hasClassName('disabled');
84
+ },
85
+
86
+ addPreviewListener: function(id) {
87
+ var self = this;
88
+
89
+ $(id).on('change', function() { self.setPreviewActiveState(true); })
90
+ $(id).on('keydown', function() { self.setPreviewActiveState(true); })
91
+ $(id).on('paste', function() { self.setPreviewActiveState(true); })
92
+ $(id).on('input', function() { self.setPreviewActiveState(true); })
93
+ }
94
+
95
+ };
96
+
97
+ window.cloudinary.addPreviewListener('cloudinary_transformations_cloudinary_free_transform_global');
98
+
99
+ </script>
lib/CloudinaryExtension/Image/Transformation.php CHANGED
@@ -9,6 +9,7 @@ use CloudinaryExtension\Image\Transformation\Format;
9
  use CloudinaryExtension\Image\Transformation\Gravity;
10
  use CloudinaryExtension\Image\Transformation\Quality;
11
  use CloudinaryExtension\Image\Transformation\Crop;
 
12
 
13
  class Transformation
14
  {
@@ -19,6 +20,7 @@ class Transformation
19
  private $quality;
20
  private $dpr;
21
  private $flags;
 
22
 
23
  public function __construct()
24
  {
@@ -63,6 +65,12 @@ class Transformation
63
  return $this;
64
  }
65
 
 
 
 
 
 
 
66
  public function addFlags(array $flags = [])
67
  {
68
  $this->flags += $flags;
@@ -84,8 +92,8 @@ class Transformation
84
  'width' => $this->dimensions ? $this->dimensions->getWidth() : null,
85
  'height' => $this->dimensions ? $this->dimensions->getHeight() : null,
86
  'dpr' => (string)$this->dpr,
87
- 'flags' => $this->flags
 
88
  );
89
  }
90
  }
91
-
9
  use CloudinaryExtension\Image\Transformation\Gravity;
10
  use CloudinaryExtension\Image\Transformation\Quality;
11
  use CloudinaryExtension\Image\Transformation\Crop;
12
+ use CloudinaryExtension\Image\Transformation\Freeform;
13
 
14
  class Transformation
15
  {
20
  private $quality;
21
  private $dpr;
22
  private $flags;
23
+ private $freeform;
24
 
25
  public function __construct()
26
  {
65
  return $this;
66
  }
67
 
68
+ public function withFreeform(Freeform $freeform)
69
+ {
70
+ $this->freeform = $freeform;
71
+ return $this;
72
+ }
73
+
74
  public function addFlags(array $flags = [])
75
  {
76
  $this->flags += $flags;
92
  'width' => $this->dimensions ? $this->dimensions->getWidth() : null,
93
  'height' => $this->dimensions ? $this->dimensions->getHeight() : null,
94
  'dpr' => (string)$this->dpr,
95
+ 'flags' => $this->flags,
96
+ 'raw_transformation' => (string)$this->freeform
97
  );
98
  }
99
  }
 
lib/CloudinaryExtension/Image/Transformation/Freeform.php ADDED
@@ -0,0 +1,37 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ namespace CloudinaryExtension\Image\Transformation;
4
+
5
+ class Freeform
6
+ {
7
+ /**
8
+ * @var string
9
+ */
10
+ private $urlParameters;
11
+
12
+ /**
13
+ * Freeform constructor.
14
+ * @param string $urlParameters
15
+ */
16
+ public function __construct($urlParameters)
17
+ {
18
+ $this->urlParameters = $urlParameters;
19
+ }
20
+
21
+ /**
22
+ * @param string $value
23
+ * @return Freeform
24
+ */
25
+ public static function fromString($value)
26
+ {
27
+ return new Freeform($value);
28
+ }
29
+
30
+ /**
31
+ * @return string
32
+ */
33
+ public function __toString()
34
+ {
35
+ return $this->urlParameters;
36
+ }
37
+ }
package.xml CHANGED
@@ -1,20 +1,22 @@
1
  <?xml version="1.0"?>
2
  <package>
3
  <name>Cloudinary_Cloudinary</name>
4
- <version>2.3.0</version>
5
  <stability>stable</stability>
6
  <license>MIT License (MITL)</license>
7
  <channel>community</channel>
8
  <extends/>
9
  <summary>Cloudinary - Image Management In The Cloud</summary>
10
  <description>Cloudinary supercharges your images! Upload images to the cloud, deliver optimized via a fast CDN, perform smart resizing and apply effects.</description>
11
- <notes> Release 2.3.0 notes:&#xD;
12
- - Provide auto upload mapping feature&#xD;
 
 
13
  </notes>
14
  <authors><author><name>Cloudinary</name><user>cloudinary</user><email>accounts+magento@cloudinary.com</email></author></authors>
15
- <date>2017-05-10</date>
16
- <time>15:02:55</time>
17
- <contents><target name="magecommunity"><dir name="Cloudinary"><dir name="Cloudinary"><dir name="Block"><dir name="Adminhtml"><dir name="Manage"><file name="Grid.php" hash="b6a05f6ba08c5ba0d08846a7b0a06776"/></dir><file name="Manage.php" hash="9cd8997737c1191cff57dc8530daa26c"/><dir name="Page"><file name="Menu.php" hash="891d6a4c075ba03c9a20658076c86ad0"/></dir><dir name="System"><dir name="Config"><dir name="Form"><file name="Foldered.php" hash="925c3c8b3938495afe4d2f917bd58f95"/></dir><file name="Signup.php" hash="ed6accbe7a4ce16bb0679eaf0c2dbb22"/></dir></dir></dir></dir><dir name="Helper"><file name="Autoloader.php" hash="393b3e2fc25e63ca28157152d2542b18"/><file name="Console.php" hash="7c909e3226c51c05d6da1f6ff9cbbfc9"/><file name="Cron.php" hash="805557370a2006b15444b7a62bbbc65a"/><file name="Data.php" hash="42c9d44f1bbe530e30cf5379846dea65"/><file name="Image.php" hash="af1c1d734793d6b08feaa7e1abd591d0"/></dir><dir name="Model"><dir name="AutoUploadMapping"><file name="Configuration.php" hash="a9c2e1176ec36cea6f5183b24793dc2d"/></dir><dir name="Catalog"><dir name="Product"><file name="Image.php" hash="b5d14bcb836158890152c9fed191f8bc"/><dir name="Media"><file name="Config.php" hash="c2dbac447d4a22c920c19b0d4eb2672e"/></dir><file name="Media.php" hash="05726616a07d7d08933e9654e6107283"/></dir></dir><dir name="Cms"><dir name="Adminhtml"><dir name="Template"><file name="Filter.php" hash="792893f6b4e884a8e42847d457a6068c"/></dir></dir><file name="Synchronisation.php" hash="8d830a18f169a0ff5f7d865e3afcb710"/><dir name="Template"><file name="Filter.php" hash="c3fe64f98128043de13e92156a26ab02"/></dir><file name="Uploader.php" hash="021195c01a7e6fd9e72c5a30ebd11554"/><dir name="Wysiwyg"><dir name="Images"><file name="Storage.php" hash="0d23e557d6db06308886d9307fe92665"/></dir></dir></dir><file name="CollectionCounter.php" hash="e69953aee5d966a3ec13d33533f017e0"/><file name="Configuration.php" hash="2054e73d40d952cc0a4f5755107f2502"/><file name="Cron.php" hash="a7296d26862df0d382023d33496bb80a"/><dir name="Exception"><file name="BadFilePathException.php" hash="68135da8dfe2f0589a531b4bd36e3330"/></dir><file name="Image.php" hash="84d42417651e2feefdb1b0c048f61ca4"/><file name="Logger.php" hash="ab5e45b0769c9dbee33025a202a87fee"/><file name="MagentoFolderTranslator.php" hash="37219fc1804d6ad8d1686af8509e1963"/><file name="Migration.php" hash="30f671877307d93904fd823d01d35c1d"/><file name="MigrationError.php" hash="67eca6725679a5dae6eab65efae39c64"/><file name="Observer.php" hash="e8437f1dd16c3251f0b0d69a80aa8f8b"/><dir name="Resource"><dir name="Cms"><dir name="Synchronisation"><file name="Collection.php" hash="226db91ad96a348f0d937781358f9dec"/></dir></dir><dir name="Media"><file name="Collection.php" hash="f54d914a6f79c7b3ab51f822bf64de39"/></dir><file name="Migration.php" hash="69a545d0627016afc03ea097641aa749"/><dir name="MigrationError"><file name="Collection.php" hash="3c5ef530b18b4cd7763a610b84cd3d41"/></dir><file name="MigrationError.php" hash="e6de24a80cb0daed6ead44c699dce535"/><dir name="Synchronisation"><file name="Collection.php" hash="d16275121feb30e57b9b54122e26f05c"/></dir><file name="Synchronisation.php" hash="5b721d854d8f89bc3310e46081be7153"/></dir><file name="Synchronisation.php" hash="05414c5959efc7656b8e101617005d9a"/><file name="SynchronisedMediaUnifier.php" hash="899abd4ef47be0ce3604cfc8790c582a"/><file name="SynchronizationChecker.php" hash="f01a4eab976e491d201206ce838dc686"/><dir name="System"><dir name="Config"><dir name="Source"><dir name="Dropdown"><file name="Dpr.php" hash="2b9bfd5f836dbdb5d7224d298264f540"/><file name="Gravity.php" hash="c241498e2093640892170673cd7550cd"/><file name="Quality.php" hash="e0c5902f5c36c96fb8a8ba7cc741ce1f"/></dir></dir></dir></dir></dir><dir name="controllers"><dir name="Adminhtml"><file name="CloudinaryController.php" hash="d44f610256d0d7a5633a94977442787b"/></dir></dir><dir name="data"><dir name="cloudinary_setup"><file name="data-upgrade-0.1.0-0.1.1.php" hash="4c6ce6cd9ab0d94654afb4a398fb3d6c"/><file name="data-upgrade-1.1.2-1.1.3.php" hash="fe2026874346017303a8f41a9d0d6c0d"/></dir></dir><dir name="etc"><file name="adminhtml.xml" hash="46e365e2f4b1d543aad248dfcfb99c50"/><file name="config.xml" hash="769c420587a7088db6199738e4474e17"/><file name="system.xml" hash="2116e6b1db2dbaa826938abdafc3e418"/></dir><dir name="sql"><dir name="cloudinary_setup"><file name="install-0.1.0.php" hash="55d93b3dab573c2a932edbb5a2fa4865"/><file name="upgrade-0.1.0-0.1.1.php" hash="6c8d430fbf7b9714586b67db3d455008"/><file name="upgrade-1.1.3-1.1.4.php" hash="d6314fc1843b2061d0d04ae60c4d8091"/><file name="upgrade-1.1.4-1.1.5.php" hash="5b035e4b600cbbc743e9ff6a7b505230"/><file name="upgrade-1.1.5-1.1.6.php" hash="323c5e50635018be420cf524072f6a92"/><file name="upgrade-2.0.0-2.1.0.php" hash="9d053bed5099e064eed808a090755b03"/></dir></dir></dir></dir></target><target name="mageetc"><dir name="modules"><file name="Cloudinary_Cloudinary.xml" hash="9337962a4ccf8a43164d5d71dfd2d756"/></dir></target><target name="magelib"><dir name="CloudinaryExtension"><dir name="AutoUploadMapping"><file name="ApiClient.php" hash="c37bfa114f18192ad34422a277c86afa"/><file name="Configuration.php" hash="0c28915836a4d7ba4390f2831c86aa6f"/><file name="RequestProcessor.php" hash="ef82cf531a21b4879b9facadd8085070"/></dir><file name="Cloud.php" hash="59b0debf9ae297e4e824e39ba819b1d1"/><file name="CloudinaryImageManager.php" hash="94af20e7b144adc4a27ee011aabbefe3"/><file name="CloudinaryImageProvider.php" hash="c4199a5384e6c42316ab4c5c74ed35e3"/><file name="ConfigurationBuilder.php" hash="c8832b207d9228ef14b3c74100ee74c4"/><file name="ConfigurationInterface.php" hash="4129b1e282fb0000b78946f07baa740c"/><file name="CredentialValidator.php" hash="965b0bd024f668aabcc9f30ef2e3c240"/><file name="Credentials.php" hash="71054eb4af7b6496608ffd14912bdbe4"/><dir name="Exception"><file name="ApiError.php" hash="d6fb1e32ca96183e9800c3706de37206"/><file name="FileExists.php" hash="6969387c67deef15a378cb94b9d269ac"/><file name="InvalidCredentials.php" hash="abecc635a25f6c9896c605ad16e1f7d7"/><file name="MigrationError.php" hash="92ea7aa65f4e14e606fa107d33f3ad30"/></dir><file name="FolderTranslator.php" hash="19a335acf751d67bd7efe46829602490"/><dir name="Image"><file name="ImageFactory.php" hash="0a2e066331584d33a9c4ec03787fd6e5"/><file name="LocalImage.php" hash="ab9b814b1a006baf05b9904af3ebce74"/><file name="Synchronizable.php" hash="b842f71ed25718838233207b7748f1bf"/><file name="SynchronizationChecker.php" hash="f2c45545766a81fede68138cf84dd1af"/><dir name="Transformation"><file name="Crop.php" hash="84e57281780a57326c938ac776641e8b"/><file name="Dimensions.php" hash="86a36c564aa41a08da2cf383d611c060"/><file name="Dpr.php" hash="f78cd1bfabaf3088ca8d4af972bfd453"/><file name="FetchFormat.php" hash="c745a6d80b509755cb6ae9fe37b95d76"/><file name="Gravity.php" hash="c1c2adf4dbbeaa6b06d67d2014300559"/><file name="Quality.php" hash="23a857f3910aecf6e45645194ff7f54e"/></dir><file name="Transformation.php" hash="7037bb18dcf82ee729deb6a06344faab"/></dir><file name="Image.php" hash="3090cfbaa3b2a90b5ef4a2a94b165581"/><file name="ImageInterface.php" hash="4a7c7e39d7fda0b0fa99affcac78ec8c"/><file name="ImageProvider.php" hash="a615c472cdc8a6ad7d887133db35c262"/><dir name="Migration"><file name="BatchUploader.php" hash="87d9dcf1c07fb9975283d7e4f577f1b9"/><file name="Logger.php" hash="648b47bb065de0c81b386ac300b4f9a3"/><file name="Queue.php" hash="add92864192b0950c29c91ffe5e5a3ee"/><file name="SynchronizedMediaRepository.php" hash="6b4e07f253aad9b845c68d51a1ab4166"/><file name="Task.php" hash="ac11d06c531d48b38cf88f6e8f2bdc19"/></dir><dir name="Security"><file name="ApiSignature.php" hash="049c7db2684ec2a6cf5bb4efcd064951"/><file name="CloudinaryEnvironmentVariable.php" hash="418af61bdbcfef955df29ac47c54415b"/><file name="ConsoleUrl.php" hash="4e748cfe0f5a0aeab2307c623179c6f9"/><file name="EnvironmentVariable.php" hash="297fa60b819ffc028b9a32dae6eef63d"/><file name="Key.php" hash="ac3a50b59f2a7db1edcf30386759c7ec"/><file name="Secret.php" hash="b1010679976575d57752dbb07f1b94ed"/><file name="SignedConsoleUrl.php" hash="791e1f1080be23423c2ad87f431f6221"/></dir><file name="SynchroniseAssetsRepositoryInterface.php" hash="e0d8e270ae2c74214e82e53e04e3dc0f"/><file name="UploadConfig.php" hash="a68f1ea7b84574ec36a8d2fac9bd6054"/><file name="UploadResponseValidator.php" hash="2d20dba12898b277b20b010d24f18859"/><file name="UrlGenerator.php" hash="06d223e5628c68570a2af4f8fb2306ce"/><file name="ValidateRemoteUrlRequest.php" hash="c2e2eb712e5293ad508a23610dfbbd6d"/></dir><dir name="Cloudinary"><file name="Api.php" hash="d71322346c3625db7c3563cdad191e8c"/><file name="AuthToken.php" hash="bec8b856baf85d89a249c932c3eba39f"/><file name="Cloudinary.php" hash="f2ec7b7bc8fc7c978f7773c3d4ccc5dd"/><file name="CloudinaryField.php" hash="411714580d21b58115ab07737367173a"/><file name="Helpers.php" hash="4db8371fc84d34be49c8ea04eee7d6eb"/><file name="PreloadedFile.php" hash="73cc9e276f96553814f05eae592d11ee"/><file name="Uploader.php" hash="eae92a330d19654028a8d16410616421"/><file name="cacert.pem" hash="c4290b9deb70d0bef2f88b67fc68c8ec"/></dir></target><target name="magedesign"><dir name="adminhtml"><dir name="default"><dir name="default"><dir name="layout"><dir name="cloudinary"><file name="cloudinary.xml" hash="e5a2def3fccdb6a365364dcf23964d08"/></dir></dir><dir name="template"><dir name="cloudinary"><file name="manage.phtml" hash="7630d346f45d7118748b647be3501fa3"/><dir name="system"><dir name="config"><file name="signup.phtml" hash="2a0e06990eb542f22531ac2ebb5996f5"/></dir></dir></dir></dir></dir></dir></dir></target></contents>
18
  <compatible/>
19
  <dependencies><required><php><min>5.4.0</min><max>7.1.0</max></php></required></dependencies>
20
  </package>
1
  <?xml version="1.0"?>
2
  <package>
3
  <name>Cloudinary_Cloudinary</name>
4
+ <version>2.4.0</version>
5
  <stability>stable</stability>
6
  <license>MIT License (MITL)</license>
7
  <channel>community</channel>
8
  <extends/>
9
  <summary>Cloudinary - Image Management In The Cloud</summary>
10
  <description>Cloudinary supercharges your images! Upload images to the cloud, deliver optimized via a fast CDN, perform smart resizing and apply effects.</description>
11
+ <notes> Release 2.4.0 notes:&#xD;
12
+ - Provide free default transform field to extend default transformation capabilities&#xD;
13
+ - Update documentation&#xD;
14
+ - Update automated tests&#xD;
15
  </notes>
16
  <authors><author><name>Cloudinary</name><user>cloudinary</user><email>accounts+magento@cloudinary.com</email></author></authors>
17
+ <date>2017-05-24</date>
18
+ <time>10:42:40</time>
19
+ <contents><target name="magecommunity"><dir name="Cloudinary"><dir name="Cloudinary"><dir name="Block"><dir name="Adminhtml"><dir name="Manage"><file name="Grid.php" hash="b6a05f6ba08c5ba0d08846a7b0a06776"/></dir><file name="Manage.php" hash="9cd8997737c1191cff57dc8530daa26c"/><dir name="Page"><file name="Menu.php" hash="891d6a4c075ba03c9a20658076c86ad0"/></dir><dir name="System"><dir name="Config"><dir name="Form"><file name="Foldered.php" hash="925c3c8b3938495afe4d2f917bd58f95"/><file name="Free.php" hash="33a3aff8e241d6ca142c6dfb59c1a90b"/></dir><file name="Signup.php" hash="ed6accbe7a4ce16bb0679eaf0c2dbb22"/></dir></dir></dir></dir><dir name="Helper"><file name="Autoloader.php" hash="393b3e2fc25e63ca28157152d2542b18"/><file name="Console.php" hash="7c909e3226c51c05d6da1f6ff9cbbfc9"/><file name="Cron.php" hash="805557370a2006b15444b7a62bbbc65a"/><file name="Data.php" hash="42c9d44f1bbe530e30cf5379846dea65"/><file name="Image.php" hash="af1c1d734793d6b08feaa7e1abd591d0"/></dir><dir name="Model"><dir name="AutoUploadMapping"><file name="Configuration.php" hash="a9c2e1176ec36cea6f5183b24793dc2d"/></dir><dir name="Catalog"><dir name="Product"><file name="Image.php" hash="b5d14bcb836158890152c9fed191f8bc"/><dir name="Media"><file name="Config.php" hash="c2dbac447d4a22c920c19b0d4eb2672e"/></dir><file name="Media.php" hash="05726616a07d7d08933e9654e6107283"/></dir></dir><dir name="Cms"><dir name="Adminhtml"><dir name="Template"><file name="Filter.php" hash="792893f6b4e884a8e42847d457a6068c"/></dir></dir><file name="Synchronisation.php" hash="8d830a18f169a0ff5f7d865e3afcb710"/><dir name="Template"><file name="Filter.php" hash="c3fe64f98128043de13e92156a26ab02"/></dir><file name="Uploader.php" hash="021195c01a7e6fd9e72c5a30ebd11554"/><dir name="Wysiwyg"><dir name="Images"><file name="Storage.php" hash="0d23e557d6db06308886d9307fe92665"/></dir></dir></dir><file name="CollectionCounter.php" hash="e69953aee5d966a3ec13d33533f017e0"/><file name="Configuration.php" hash="2a7dd1504e77f3e1b7ffd67e3a1b9f02"/><file name="Cron.php" hash="a7296d26862df0d382023d33496bb80a"/><dir name="Exception"><file name="BadFilePathException.php" hash="68135da8dfe2f0589a531b4bd36e3330"/></dir><file name="Image.php" hash="84d42417651e2feefdb1b0c048f61ca4"/><file name="Logger.php" hash="ab5e45b0769c9dbee33025a202a87fee"/><file name="MagentoFolderTranslator.php" hash="37219fc1804d6ad8d1686af8509e1963"/><file name="Migration.php" hash="30f671877307d93904fd823d01d35c1d"/><file name="MigrationError.php" hash="67eca6725679a5dae6eab65efae39c64"/><file name="Observer.php" hash="e8437f1dd16c3251f0b0d69a80aa8f8b"/><dir name="Resource"><dir name="Cms"><dir name="Synchronisation"><file name="Collection.php" hash="226db91ad96a348f0d937781358f9dec"/></dir></dir><dir name="Media"><file name="Collection.php" hash="f54d914a6f79c7b3ab51f822bf64de39"/></dir><file name="Migration.php" hash="69a545d0627016afc03ea097641aa749"/><dir name="MigrationError"><file name="Collection.php" hash="3c5ef530b18b4cd7763a610b84cd3d41"/></dir><file name="MigrationError.php" hash="e6de24a80cb0daed6ead44c699dce535"/><dir name="Synchronisation"><file name="Collection.php" hash="d16275121feb30e57b9b54122e26f05c"/></dir><file name="Synchronisation.php" hash="5b721d854d8f89bc3310e46081be7153"/></dir><file name="Synchronisation.php" hash="05414c5959efc7656b8e101617005d9a"/><file name="SynchronisedMediaUnifier.php" hash="4467ead90fe094ecbea9657266984492"/><file name="SynchronizationChecker.php" hash="f01a4eab976e491d201206ce838dc686"/><dir name="System"><dir name="Config"><file name="Free.php" hash="a4c47b0b5d60d2e40d12975c98d69eae"/><dir name="Source"><dir name="Dropdown"><file name="Dpr.php" hash="2b9bfd5f836dbdb5d7224d298264f540"/><file name="Gravity.php" hash="c241498e2093640892170673cd7550cd"/><file name="Quality.php" hash="09920e6156a1d6088879cdcea616e312"/></dir></dir></dir></dir></dir><dir name="controllers"><dir name="Adminhtml"><file name="CloudinaryController.php" hash="d44f610256d0d7a5633a94977442787b"/><file name="CloudinaryajaxController.php" hash="dbc6b59db79182a6e9069d4a63bc0c0d"/></dir></dir><dir name="data"><dir name="cloudinary_setup"><file name="data-upgrade-0.1.0-0.1.1.php" hash="4c6ce6cd9ab0d94654afb4a398fb3d6c"/><file name="data-upgrade-1.1.2-1.1.3.php" hash="fe2026874346017303a8f41a9d0d6c0d"/></dir></dir><dir name="etc"><file name="adminhtml.xml" hash="46e365e2f4b1d543aad248dfcfb99c50"/><file name="config.xml" hash="23eb36fc50149011960cad7e1fc5a392"/><file name="system.xml" hash="eebd58fc59405594c4599baee1c94365"/></dir><dir name="sql"><dir name="cloudinary_setup"><file name="install-0.1.0.php" hash="55d93b3dab573c2a932edbb5a2fa4865"/><file name="upgrade-0.1.0-0.1.1.php" hash="6c8d430fbf7b9714586b67db3d455008"/><file name="upgrade-1.1.3-1.1.4.php" hash="d6314fc1843b2061d0d04ae60c4d8091"/><file name="upgrade-1.1.4-1.1.5.php" hash="5b035e4b600cbbc743e9ff6a7b505230"/><file name="upgrade-1.1.5-1.1.6.php" hash="323c5e50635018be420cf524072f6a92"/><file name="upgrade-2.0.0-2.1.0.php" hash="9d053bed5099e064eed808a090755b03"/></dir></dir></dir></dir></target><target name="mageetc"><dir name="modules"><file name="Cloudinary_Cloudinary.xml" hash="9337962a4ccf8a43164d5d71dfd2d756"/></dir></target><target name="magelib"><dir name="CloudinaryExtension"><dir name="AutoUploadMapping"><file name="ApiClient.php" hash="c37bfa114f18192ad34422a277c86afa"/><file name="Configuration.php" hash="0c28915836a4d7ba4390f2831c86aa6f"/><file name="RequestProcessor.php" hash="ef82cf531a21b4879b9facadd8085070"/></dir><file name="Cloud.php" hash="59b0debf9ae297e4e824e39ba819b1d1"/><file name="CloudinaryImageManager.php" hash="94af20e7b144adc4a27ee011aabbefe3"/><file name="CloudinaryImageProvider.php" hash="c4199a5384e6c42316ab4c5c74ed35e3"/><file name="ConfigurationBuilder.php" hash="c8832b207d9228ef14b3c74100ee74c4"/><file name="ConfigurationInterface.php" hash="4129b1e282fb0000b78946f07baa740c"/><file name="CredentialValidator.php" hash="965b0bd024f668aabcc9f30ef2e3c240"/><file name="Credentials.php" hash="71054eb4af7b6496608ffd14912bdbe4"/><dir name="Exception"><file name="ApiError.php" hash="d6fb1e32ca96183e9800c3706de37206"/><file name="FileExists.php" hash="6969387c67deef15a378cb94b9d269ac"/><file name="InvalidCredentials.php" hash="abecc635a25f6c9896c605ad16e1f7d7"/><file name="MigrationError.php" hash="92ea7aa65f4e14e606fa107d33f3ad30"/></dir><file name="FolderTranslator.php" hash="19a335acf751d67bd7efe46829602490"/><dir name="Image"><file name="ImageFactory.php" hash="0a2e066331584d33a9c4ec03787fd6e5"/><file name="LocalImage.php" hash="ab9b814b1a006baf05b9904af3ebce74"/><file name="Synchronizable.php" hash="b842f71ed25718838233207b7748f1bf"/><file name="SynchronizationChecker.php" hash="f2c45545766a81fede68138cf84dd1af"/><dir name="Transformation"><file name="Crop.php" hash="84e57281780a57326c938ac776641e8b"/><file name="Dimensions.php" hash="86a36c564aa41a08da2cf383d611c060"/><file name="Dpr.php" hash="f78cd1bfabaf3088ca8d4af972bfd453"/><file name="FetchFormat.php" hash="c745a6d80b509755cb6ae9fe37b95d76"/><file name="Freeform.php" hash="fdcbcea659f8908af54f30492b306fb5"/><file name="Gravity.php" hash="c1c2adf4dbbeaa6b06d67d2014300559"/><file name="Quality.php" hash="23a857f3910aecf6e45645194ff7f54e"/></dir><file name="Transformation.php" hash="35d6080fe0824517319164f3ba4edb44"/></dir><file name="Image.php" hash="3090cfbaa3b2a90b5ef4a2a94b165581"/><file name="ImageInterface.php" hash="4a7c7e39d7fda0b0fa99affcac78ec8c"/><file name="ImageProvider.php" hash="a615c472cdc8a6ad7d887133db35c262"/><dir name="Migration"><file name="BatchUploader.php" hash="87d9dcf1c07fb9975283d7e4f577f1b9"/><file name="Logger.php" hash="648b47bb065de0c81b386ac300b4f9a3"/><file name="Queue.php" hash="add92864192b0950c29c91ffe5e5a3ee"/><file name="SynchronizedMediaRepository.php" hash="6b4e07f253aad9b845c68d51a1ab4166"/><file name="Task.php" hash="ac11d06c531d48b38cf88f6e8f2bdc19"/></dir><dir name="Security"><file name="ApiSignature.php" hash="049c7db2684ec2a6cf5bb4efcd064951"/><file name="CloudinaryEnvironmentVariable.php" hash="418af61bdbcfef955df29ac47c54415b"/><file name="ConsoleUrl.php" hash="4e748cfe0f5a0aeab2307c623179c6f9"/><file name="EnvironmentVariable.php" hash="297fa60b819ffc028b9a32dae6eef63d"/><file name="Key.php" hash="ac3a50b59f2a7db1edcf30386759c7ec"/><file name="Secret.php" hash="b1010679976575d57752dbb07f1b94ed"/><file name="SignedConsoleUrl.php" hash="791e1f1080be23423c2ad87f431f6221"/></dir><file name="SynchroniseAssetsRepositoryInterface.php" hash="e0d8e270ae2c74214e82e53e04e3dc0f"/><file name="UploadConfig.php" hash="a68f1ea7b84574ec36a8d2fac9bd6054"/><file name="UploadResponseValidator.php" hash="2d20dba12898b277b20b010d24f18859"/><file name="UrlGenerator.php" hash="06d223e5628c68570a2af4f8fb2306ce"/><file name="ValidateRemoteUrlRequest.php" hash="c2e2eb712e5293ad508a23610dfbbd6d"/></dir><dir name="Cloudinary"><file name="Api.php" hash="d71322346c3625db7c3563cdad191e8c"/><file name="AuthToken.php" hash="bec8b856baf85d89a249c932c3eba39f"/><file name="Cloudinary.php" hash="f2ec7b7bc8fc7c978f7773c3d4ccc5dd"/><file name="CloudinaryField.php" hash="411714580d21b58115ab07737367173a"/><file name="Helpers.php" hash="4db8371fc84d34be49c8ea04eee7d6eb"/><file name="PreloadedFile.php" hash="73cc9e276f96553814f05eae592d11ee"/><file name="Uploader.php" hash="eae92a330d19654028a8d16410616421"/><file name="cacert.pem" hash="c4290b9deb70d0bef2f88b67fc68c8ec"/></dir></target><target name="magedesign"><dir name="adminhtml"><dir name="default"><dir name="default"><dir name="layout"><dir name="cloudinary"><file name="cloudinary.xml" hash="e5a2def3fccdb6a365364dcf23964d08"/></dir></dir><dir name="template"><dir name="cloudinary"><file name="manage.phtml" hash="7630d346f45d7118748b647be3501fa3"/><dir name="system"><dir name="config"><file name="free.phtml" hash="77ed47576496e0b28ff4eaf155ded5b6"/><file name="signup.phtml" hash="2a0e06990eb542f22531ac2ebb5996f5"/></dir></dir></dir></dir></dir></dir></dir></target></contents>
20
  <compatible/>
21
  <dependencies><required><php><min>5.4.0</min><max>7.1.0</max></php></required></dependencies>
22
  </package>