next-cloudinary 0.1.0 → 0.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -1,7 +1,7 @@
1
1
  <img align="center" height="50" src="https://res.cloudinary.com/cloudinary-marketing/image/upload/f_auto,q_auto,h_100/v1595456749/creative_source/Logo/PNG/cloudinary_logo_blue_0720_2x.png" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<img align="center" height="30" src="https://user-images.githubusercontent.com/1045274/189200861-1089b9db-5a78-4b43-9f6c-dfb1752c92f9.png" />
2
2
 
3
3
  <!-- ALL-CONTRIBUTORS-BADGE:START - Do not remove or modify this section -->
4
- [![All Contributors](https://img.shields.io/badge/all_contributors-4-orange.svg?style=flat-square)](#contributors-)
4
+ [![All Contributors](https://img.shields.io/badge/all_contributors-5-orange.svg?style=flat-square)](#contributors-)
5
5
  <!-- ALL-CONTRIBUTORS-BADGE:END -->
6
6
 
7
7
  # Cloudinary Next.js Component
@@ -273,11 +273,9 @@ See the examples above under Overlays to learn more about the available configur
273
273
  <td align="center"><a href="https://github.com/danielolaviobr"><img src="https://avatars.githubusercontent.com/u/64712584?v=4?s=100" width="100px;" alt="Daniel Olavio"/><br /><sub><b>Daniel Olavio</b></sub></a><br /><a href="https://github.com/colbyfayock/next-cloudinary/commits?author=danielolaviobr" title="Code">💻</a></td>
274
274
  <td align="center"><a href="http://www.ramadevsign.com"><img src="https://avatars.githubusercontent.com/u/50571688?v=4?s=100" width="100px;" alt="ramadevsign"/><br /><sub><b>ramadevsign</b></sub></a><br /><a href="#tool-orama254" title="Tools">🔧</a></td>
275
275
  <td align="center"><a href="https://kbravh.dev"><img src="https://avatars.githubusercontent.com/u/30562119?v=4?s=100" width="100px;" alt="Karey Higuera"/><br /><sub><b>Karey Higuera</b></sub></a><br /><a href="https://github.com/colbyfayock/next-cloudinary/commits?author=kbravh" title="Tests">⚠️</a> <a href="https://github.com/colbyfayock/next-cloudinary/commits?author=kbravh" title="Code">💻</a></td>
276
+ <td align="center"><a href="https://github.com/Azanul"><img src="https://avatars.githubusercontent.com/u/42029519?v=4?s=100" width="100px;" alt="Azanul Haque"/><br /><sub><b>Azanul Haque</b></sub></a><br /><a href="#tool-Azanul" title="Tools">🔧</a></td>
276
277
  </tr>
277
278
  </tbody>
278
- <tfoot>
279
-
280
- </tfoot>
281
279
  </table>
282
280
 
283
281
  <!-- markdownlint-restore -->
package/babel.config.js CHANGED
@@ -1,3 +1,9 @@
1
- module.exports = {
2
- presets: [['@babel/preset-env', {targets: {node: 'current'}}]],
3
- };
1
+ module.exports = api => {
2
+ if ( api.env('test') ) {
3
+ return {
4
+ presets: [['@babel/preset-env', {targets: {node: 'current'}}]],
5
+ }
6
+ }
7
+
8
+ return {};
9
+ };
@@ -51,6 +51,33 @@ var cld$1 = new urlGen.Cloudinary({
51
51
  analytics: false
52
52
  }
53
53
  });
54
+ /**
55
+ * Retrieves the public id of a cloudiary image url. If no url is recognized it returns the parameter it self.
56
+ * If it's recognized that is a url and it's not possible to get the public id, it warns the user.
57
+ *
58
+ * @param {string} src The cloudiary url or public id.
59
+ *
60
+ * @return {string} The images public id
61
+ */
62
+
63
+ function getPublicId(src) {
64
+ if (src.includes('res.cloudinary.com')) {
65
+ var regexWithTransformations = /(https?)\:\/\/(res.cloudinary.com)\/([^\/]+)\/(image|video|raw)\/(upload|authenticated)\/(.*)\/(v[0-9]+)\/(.+)(?:\.[a-z]{3})?/;
66
+ var regexWithoutTransformations = /(https?)\:\/\/(res.cloudinary.com)\/([^\/]+)\/(image|video|raw)\/(upload|authenticated)\/(v[0-9]+)\/(.+)(?:\.[a-z]{3})?/;
67
+ var withTransformations = src.match(regexWithTransformations);
68
+ var withoutTransformations = src.match(regexWithoutTransformations);
69
+
70
+ if (withTransformations) {
71
+ return withTransformations[withTransformations.length - 1];
72
+ } else if (withoutTransformations) {
73
+ return withoutTransformations[withoutTransformations.length - 1];
74
+ } else {
75
+ console.warn("Not possible to retrieve the publicUrl from " + src + ", make sure it's a valid cloudinary image url.");
76
+ }
77
+ }
78
+
79
+ return src;
80
+ }
54
81
  /**
55
82
  * createPlaceholderUrl
56
83
  */
@@ -516,26 +543,35 @@ var zoompanPlugin = {
516
543
  plugin: plugin
517
544
  };
518
545
 
519
- var cld = new urlGen.Cloudinary({
520
- cloud: {
521
- cloudName: process.env.NEXT_PUBLIC_CLOUDINARY_CLOUD_NAME
522
- },
523
- url: {
524
- // Used to avoid issues with SSR particularly for the blurred placeholder
525
- analytics: false
526
- }
527
- });
546
+ var cld;
528
547
  var transformationPlugins = [// Background Removal must always come first
529
548
  removeBackgroundPlugin, croppingPlugin, effectsPlugin, overlaysPlugin, underlaysPlugin, zoompanPlugin, // Raw transformations needs to be last simply to make sure
530
549
  // it's always expected to applied the same way
531
550
  rawTransformationsPlugin];
532
- function cloudinaryLoader(defaultOptions, cldOptions) {
551
+ function cloudinaryLoader(defaultOptions, cldOptions, cldConfig) {
552
+ if (cldConfig === void 0) {
553
+ cldConfig = {};
554
+ }
555
+
556
+ if (!cld) {
557
+ cld = new urlGen.Cloudinary(_extends({
558
+ cloud: {
559
+ cloudName: process.env.NEXT_PUBLIC_CLOUDINARY_CLOUD_NAME
560
+ },
561
+ url: {
562
+ // Used to avoid issues with SSR particularly for the blurred placeholder
563
+ analytics: false
564
+ }
565
+ }, cldConfig));
566
+ }
567
+
533
568
  var options = _extends({
534
569
  format: 'auto',
535
570
  quality: 'auto'
536
571
  }, defaultOptions);
537
572
 
538
- var cldImage = cld.image(options.src);
573
+ var publicId = getPublicId(options.src);
574
+ var cldImage = cld.image(publicId);
539
575
  transformationPlugins.forEach(function (_ref) {
540
576
  var plugin = _ref.plugin;
541
577
 
@@ -589,8 +625,9 @@ var CldImage = function CldImage(props) {
589
625
  // https://nextjs.org/docs/api-reference/next/image#blurdataurl
590
626
 
591
627
  if (imageProps.placeholder) {
628
+ var publicId = getPublicId(props.src);
592
629
  imageProps.blurDataURL = createPlaceholderUrl({
593
- src: props.src,
630
+ src: publicId,
594
631
  placeholder: props.placeholder
595
632
  });
596
633
 
@@ -1 +1 @@
1
- {"version":3,"file":"next-cloudinary.js","sources":["../src/lib/cloudinary.js","../src/plugins/cropping.js","../src/plugins/effects.js","../src/constants/qualifiers.js","../src/plugins/overlays.js","../src/plugins/raw-transformations.js","../src/plugins/remove-background.js","../src/plugins/underlays.js","../src/plugins/zoompan.js","../src/loaders/cloudinary-loader.js","../src/components/CldImage/CldImage.js"],"sourcesContent":["import { Cloudinary } from '@cloudinary/url-gen';\n\nconst cld = new Cloudinary({\n cloud: {\n cloudName: process.env.NEXT_PUBLIC_CLOUDINARY_CLOUD_NAME\n },\n url: {\n // Used to avoid issues with SSR particularly for the blurred placeholder\n analytics: false\n }\n});\n\n/**\n * createPlaceholderUrl\n */\n\nexport function createPlaceholderUrl({ src, placeholder }) {\n const cldImage = cld.image(src)\n .resize('c_limit,w_100')\n .delivery('q_1')\n .format('auto');\n\n if ( placeholder === 'grayscale' ) {\n cldImage.effect('e_grayscale');\n }\n\n if ( placeholder.includes('color:') ) {\n const color = placeholder.split(':').splice(1).join(':')\n cldImage.effect('e_grayscale');\n cldImage.effect(`e_colorize:60,co_${color}`);\n }\n\n return cldImage.toURL();\n}","const cropsGravityAuto = [ 'crop', 'fill', 'lfill', 'fill_pad', 'thumb' ];\n\nexport const props = ['crop', 'gravity'];\n\nexport function plugin({ cldImage, options, cldOptions } = {}) {\n const { width, height } = options;\n const { crop = 'limit', gravity } = cldOptions;\n\n let transformationString = `c_${crop},w_${width}`;\n\n if ( !gravity && cropsGravityAuto.includes(crop) ) {\n gravity = 'auto';\n }\n\n if ( !['limit'].includes(crop) ) {\n transformationString = `${transformationString},h_${height}`;\n }\n\n if ( gravity ) {\n if ( gravity === 'auto' && !cropsGravityAuto.includes(crop) ) {\n console.warn('Auto gravity can only be used with crop, fill, lfill, fill_pad or thumb. Not applying gravity.');\n } else {\n transformationString = `${transformationString},g_${gravity}`;\n }\n }\n\n cldImage.resize(transformationString);\n}","const params = [\n 'art',\n {\n prop: 'autoBrightness',\n effect: 'auto_brightness',\n },\n {\n prop: 'autoColor',\n effect: 'auto_color',\n },\n {\n prop: 'autoContrast',\n effect: 'auto_contrast',\n },\n {\n prop: 'assistColorblind',\n effect: 'assist_colorblind',\n },\n 'blackwhite',\n 'blur',\n {\n prop: 'blurFaces',\n effect: 'blur_faces',\n },\n {\n prop: 'blurRegion',\n effect: 'blur_region',\n },\n 'brightness',\n {\n prop: 'brightnessHSB',\n effect: 'brightness_hsb',\n },\n 'cartoonify',\n 'colorize',\n 'contrast',\n 'distort',\n {\n prop: 'fillLight',\n effect: 'fill_light',\n },\n 'gamma',\n {\n prop: 'gradientFade',\n effect: 'gradient_fade',\n },\n 'grayscale',\n 'improve',\n 'negate',\n {\n prop: 'oilPaint',\n effect: 'oil_paint',\n },\n 'outline',\n 'pixelate',\n {\n prop: 'pixelateFaces',\n effect: 'pixelate_faces',\n },\n {\n prop: 'pixelateRegion',\n effect: 'pixelate_region',\n },\n 'redeye',\n {\n prop: 'replaceColor',\n effect: 'replace_color',\n },\n 'saturation',\n 'sepia',\n 'shadow',\n 'sharpen',\n 'shear',\n {\n prop: 'simulateColorblind',\n effect: 'simulate_colorblind',\n },\n 'tint',\n {\n prop: 'unsharpMask',\n effect: 'unsharp_mask',\n },\n 'vectorize',\n 'vibrance',\n 'vignette',\n];\n\nexport const props = params.map(param => param.prop || param);\n\nexport function plugin({ cldImage, cldOptions } = {}) {\n params.forEach(key => {\n\n const prop = key.prop || key;\n const effect = key.effect || key;\n\n if ( prop === 'oilPaint' && cldOptions[prop]) {\n console.log('cldOptions[prop]', cldOptions[prop])\n }\n if ( cldOptions[prop] === true ) {\n cldImage.effect(`e_${effect}`);\n } else if ( typeof cldOptions[prop] === 'string' ) {\n cldImage.effect(`e_${effect}:${cldOptions[prop]}`);\n }\n });\n}","// aspectRatio\n\nexport const primary = {\n aspectRatio: {\n qualifier: 'ar'\n },\n crop: {\n qualifier: 'c'\n },\n gravity: {\n qualifier: 'g'\n },\n height: {\n qualifier: 'h'\n },\n width: {\n qualifier: 'w'\n },\n};\n\nexport const position = {\n angle: {\n qualifier: 'a'\n },\n gravity: {\n qualifier: 'g'\n },\n x: {\n qualifier: 'x'\n },\n y: {\n qualifier: 'y'\n },\n}\n\nexport const text = {\n color: {\n qualifier: 'co',\n location: 'primary'\n },\n fontFamily: {\n qualifier: false\n },\n fontSize: {\n qualifier: false\n },\n fontWeight: {\n qualifier: false\n },\n letterSpacing: {\n qualifier: 'letter_spacing'\n },\n textDecoration: {\n qualifier: false\n }\n}","import {\n primary as qualifiersPrimary,\n text as qualifiersText,\n position as qualifiersPosition\n} from '../constants/qualifiers';\n\nexport const props = ['overlays'];\n\nexport function plugin({ cldImage, options, cldOptions } = {}) {\n const { overlays = [] } = cldOptions;\n\n const type = 'overlay';\n const typeQualifier = 'l';\n\n overlays.forEach(({ publicId, position, text, effects: layerEffects = [], ...options }) => {\n const hasPublicId = typeof publicId === 'string';\n const hasText = typeof text === 'object';\n const hasPosition = typeof position === 'object';\n\n if ( !hasPublicId && !hasText ) {\n console.warn(`An ${type} is missing Public ID or Text`);\n return;\n }\n\n // Start to construct the transformation string using text or the public ID\n // if it's image-based\n\n let layerTransformation;\n\n if ( hasText ) {\n layerTransformation = `${typeQualifier}_text`;\n } else {\n layerTransformation = `${typeQualifier}_${publicId.replace(/\\//g, ':')}`;\n }\n\n // Begin organizing transformations based on what it is and the location\n // it needs to be placed in the URL\n\n const primary = [];\n const applied = [];\n\n // Gemeral options\n\n Object.keys(options).forEach(key => {\n if ( !qualifiersPrimary[key] ) return;\n const { qualifier } = qualifiersPrimary[key];\n primary.push(`${qualifier}_${options[key]}`);\n });\n\n // Layer effects\n\n layerEffects.forEach(effect => {\n Object.keys(effect).forEach(key => {\n if ( !qualifiersPrimary[key] ) return;\n const { qualifier } = qualifiersPrimary[key];\n primary.push(`${qualifier}_${effect[key]}`);\n });\n });\n\n // Text styling\n\n if ( hasText ) {\n const textTransformations = [];\n\n Object.keys(text).forEach(key => {\n if ( !qualifiersText[key] ) return;\n\n const { qualifier, location } = qualifiersText[key];\n\n if ( location === 'primary' ) {\n primary.push(`${qualifier}_${text[key]}`);\n } else {\n textTransformations.push(text[key]);\n }\n });\n\n layerTransformation = `${layerTransformation}:${textTransformations.join('_')}:${text.text}`\n }\n\n // Positioning\n\n if ( hasPosition ) {\n Object.keys(position).forEach(key => {\n if ( !qualifiersPosition[key] ) return;\n\n const { qualifier } = qualifiersPosition[key];\n\n applied.push(`${qualifier}_${position[key]}`);\n });\n }\n\n // Add all primary transformations\n\n layerTransformation = `${layerTransformation},${primary.join(',')}`;\n\n // Add all applied transformations\n\n layerTransformation = `${layerTransformation}/fl_layer_apply`;\n\n if ( applied.length > 0 ) {\n layerTransformation = `${layerTransformation},${applied.join(',')}`;\n }\n\n // Finally add it to the image\n\n cldImage.addTransformation(layerTransformation);\n });\n}","export const props = ['rawTransformations'];\n\nexport function plugin({ cldImage, cldOptions } = {}) {\n const { rawTransformations = [] } = cldOptions;\n\n rawTransformations.forEach(transformation => {\n cldImage.addTransformation(transformation);\n });\n}","export const props = ['removeBackground'];\n\nexport function plugin({ cldImage, options, cldOptions } = {}) {\n const { removeBackground = false } = cldOptions;\n if ( removeBackground ) {\n cldImage.effect('e_background_removal');\n }\n}","import {\n primary as qualifiersPrimary,\n text as qualifiersText,\n position as qualifiersPosition\n} from '../constants/qualifiers';\n\nexport const props = ['underlays'];\n\nexport function plugin({ cldImage, options, cldOptions } = {}) {\n const { underlays = [] } = cldOptions;\n\n const type = 'underlay';\n const typeQualifier = 'u';\n\n underlays.forEach(({ publicId, type, position, text, effects: layerEffects = [], ...options }) => {\n const hasPublicId = typeof publicId === 'string';\n const hasPosition = typeof position === 'object';\n\n if ( !hasPublicId ) {\n console.warn(`An ${type} is missing a Public ID`);\n return;\n }\n\n // Start to construct the transformation string using text or the public ID\n // if it's image-based\n\n let layerTransformation = `${typeQualifier}_${publicId.replace(/\\//g, ':')}`;\n\n // Begin organizing transformations based on what it is and the location\n // it needs to be placed in the URL\n\n const primary = [];\n const applied = [];\n\n // Gemeral options\n\n Object.keys(options).forEach(key => {\n if ( !qualifiersPrimary[key] ) return;\n const { qualifier } = qualifiersPrimary[key];\n primary.push(`${qualifier}_${options[key]}`);\n });\n\n // Layer effects\n\n layerEffects.forEach(effect => {\n Object.keys(effect).forEach(key => {\n if ( !qualifiersPrimary[key] ) return;\n const { qualifier } = qualifiersPrimary[key];\n primary.push(`${qualifier}_${effect[key]}`);\n });\n });\n\n // Positioning\n\n if ( hasPosition ) {\n Object.keys(position).forEach(key => {\n if ( !qualifiersPosition[key] ) return;\n\n const { qualifier } = qualifiersPosition[key];\n\n applied.push(`${qualifier}_${position[key]}`);\n });\n }\n\n // Add all primary transformations\n\n layerTransformation = `${layerTransformation},${primary.join(',')}`;\n\n // Add all applied transformations\n\n layerTransformation = `${layerTransformation}/fl_layer_apply`;\n\n if ( applied.length > 0 ) {\n layerTransformation = `${layerTransformation},${applied.join(',')}`;\n }\n\n // Finally add it to the image\n\n cldImage.addTransformation(layerTransformation);\n });\n}","export const props = ['zoompan'];\n\nexport function plugin({ cldImage, cldOptions } = {}) {\n const { zoompan = false } = cldOptions;\n const options = {};\n\n if ( zoompan === true ) {\n cldImage.effect('e_zoompan');\n } else if ( typeof zoompan === 'string' ) {\n if ( zoompan === 'loop' ) {\n cldImage.effect('e_zoompan');\n cldImage.effect('e_loop');\n } else {\n cldImage.effect(`e_zoompan:${zoompan}`);\n }\n } else if ( typeof zoompan === 'object' ) {\n let zoompanEffect = 'e_zoompan';\n\n if ( typeof zoompan.options === 'string' ) {\n zoompanEffect = `${zoompanEffect}${zoompan.options}`;\n }\n\n cldImage.effect(zoompanEffect);\n\n let loopEffect;\n\n if ( zoompan.loop === true ) {\n loopEffect = 'e_loop';\n } else if ( typeof zoompan.loop === 'string' ) {\n loopEffect = `e_loop${zoompan.loop}`;\n }\n\n if ( loopEffect ) {\n cldImage.effect(loopEffect);\n }\n }\n\n if ( zoompan !== false ) {\n options.format = 'gif';\n }\n\n return {\n options\n }\n}","import { Cloudinary } from '@cloudinary/url-gen';\n\nimport * as croppingPlugin from '../plugins/cropping';\nimport * as effectsPlugin from '../plugins/effects';\nimport * as overlaysPlugin from '../plugins/overlays';\nimport * as rawTransformationsPlugin from '../plugins/raw-transformations';\nimport * as removeBackgroundPlugin from '../plugins/remove-background';\nimport * as underlaysPlugin from '../plugins/underlays';\nimport * as zoompanPlugin from '../plugins/zoompan';\n\nimport {\n primary as qualifiersPrimary,\n text as qualifiersText,\n position as qualifiersPosition\n} from '../constants/qualifiers';\n\nconst cld = new Cloudinary({\n cloud: {\n cloudName: process.env.NEXT_PUBLIC_CLOUDINARY_CLOUD_NAME\n },\n url: {\n // Used to avoid issues with SSR particularly for the blurred placeholder\n analytics: false\n }\n});\n\nexport const transformationPlugins = [\n // Background Removal must always come first\n removeBackgroundPlugin,\n\n croppingPlugin,\n effectsPlugin,\n overlaysPlugin,\n underlaysPlugin,\n zoompanPlugin,\n\n // Raw transformations needs to be last simply to make sure\n // it's always expected to applied the same way\n\n rawTransformationsPlugin\n];\n\nexport function cloudinaryLoader(defaultOptions, cldOptions) {\n const options = {\n format: 'auto',\n quality: 'auto',\n ...defaultOptions\n };\n\n const cldImage = cld.image(options.src);\n\n transformationPlugins.forEach(({ plugin }) => {\n const { options: pluginOptions } = plugin({\n cldImage,\n options,\n cldOptions\n }) || {};\n\n if ( pluginOptions?.format ) {\n options.format = pluginOptions.format;\n }\n });\n\n return cldImage\n .format(options.format)\n .delivery(`q_${options.quality}`)\n .toURL();\n}","import Image from 'next/image';\n\nimport { createPlaceholderUrl } from '../../lib/cloudinary';\nimport { cloudinaryLoader, transformationPlugins } from '../../loaders/cloudinary-loader';\n\nconst CldImage = props => {\n\n const CLD_OPTIONS = [];\n\n transformationPlugins.forEach(({ props = [] }) => {\n props.forEach(prop => {\n if ( CLD_OPTIONS.includes(prop) ) {\n throw new Error(`Option ${prop} already exists!`);\n }\n CLD_OPTIONS.push(prop);\n });\n })\n\n // Construct the base Image component props by filtering out Cloudinary-specific props\n\n const imageProps = {};\n\n Object.keys(props)\n .filter(key => !CLD_OPTIONS.includes(key))\n .forEach(key => imageProps[key] = props[key]);\n\n // Construct Cloudinary-specific props by looking for values for any of the supported prop keys\n\n const cldOptions = {};\n\n CLD_OPTIONS.forEach(key => {\n if ( props[key] ) {\n cldOptions[key] = props[key];\n }\n });\n\n // If we see a placeholder option, configure a Cloudinary-based URL.\n // The resulting image will always be blurred per Next.js, so we're\n // limited on options for placeholders.\n //\n // We need to do this logic here as we potentially need to mutate\n // an Image component prop as opposed to simply the URL\n //\n // https://nextjs.org/docs/api-reference/next/image#blurdataurl\n\n if ( imageProps.placeholder ) {\n imageProps.blurDataURL = createPlaceholderUrl({\n src: props.src,\n placeholder: props.placeholder\n });\n\n if ( imageProps.placeholder !== 'blur' ) {\n imageProps.placeholder = 'blur';\n }\n }\n\n return (\n <Image\n {...imageProps}\n loader={(options) => cloudinaryLoader({ ...imageProps, options }, cldOptions)}\n />\n );\n}\n\nexport default CldImage;"],"names":["cld","Cloudinary","cloud","cloudName","process","env","NEXT_PUBLIC_CLOUDINARY_CLOUD_NAME","url","analytics","createPlaceholderUrl","src","placeholder","cldImage","image","resize","delivery","format","effect","includes","color","split","splice","join","toURL","cropsGravityAuto","props","plugin","options","cldOptions","width","height","crop","gravity","transformationString","console","warn","params","prop","map","param","forEach","key","log","primary","aspectRatio","qualifier","position","angle","x","y","text","location","fontFamily","fontSize","fontWeight","letterSpacing","textDecoration","overlays","type","typeQualifier","publicId","effects","layerEffects","_excluded","hasPublicId","hasText","hasPosition","layerTransformation","replace","applied","Object","keys","qualifiersPrimary","push","textTransformations","qualifiersText","qualifiersPosition","length","addTransformation","rawTransformations","transformation","removeBackground","underlays","zoompan","zoompanEffect","loopEffect","loop","transformationPlugins","removeBackgroundPlugin","croppingPlugin","effectsPlugin","overlaysPlugin","underlaysPlugin","zoompanPlugin","rawTransformationsPlugin","cloudinaryLoader","defaultOptions","quality","pluginOptions","CldImage","CLD_OPTIONS","Error","imageProps","filter","blurDataURL","_jsx","Image"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEA,IAAMA,KAAG,GAAG,IAAIC,iBAAJ,CAAe;AACzBC,EAAAA,KAAK,EAAE;AACLC,IAAAA,SAAS,EAAEC,OAAO,CAACC,GAAR,CAAYC,iCAAAA;GAFA;AAIzBC,EAAAA,GAAG,EAAE;AACH;AACAC,IAAAA,SAAS,EAAE,KAAA;AAFR,GAAA;AAJoB,CAAf,CAAZ,CAAA;AAUA;AACA;AACA;;AAEO,SAASC,oBAAT,CAAoD,IAAA,EAAA;EAAA,IAApBC,GAAoB,QAApBA,GAAoB;MAAfC,WAAe,QAAfA,WAAe,CAAA;AACzD,EAAA,IAAMC,QAAQ,GAAGZ,KAAG,CAACa,KAAJ,CAAUH,GAAV,CACII,CAAAA,MADJ,CACW,eADX,CAAA,CAEIC,QAFJ,CAEa,KAFb,EAGIC,MAHJ,CAGW,MAHX,CAAjB,CAAA;;EAKA,IAAKL,WAAW,KAAK,WAArB,EAAmC;IACjCC,QAAQ,CAACK,MAAT,CAAgB,aAAhB,CAAA,CAAA;AACD,GAAA;;AAED,EAAA,IAAKN,WAAW,CAACO,QAAZ,CAAqB,QAArB,CAAL,EAAsC;AACpC,IAAA,IAAMC,KAAK,GAAGR,WAAW,CAACS,KAAZ,CAAkB,GAAlB,CAAuBC,CAAAA,MAAvB,CAA8B,CAA9B,CAAA,CAAiCC,IAAjC,CAAsC,GAAtC,CAAd,CAAA;IACAV,QAAQ,CAACK,MAAT,CAAgB,aAAhB,CAAA,CAAA;IACAL,QAAQ,CAACK,MAAT,CAAA,mBAAA,GAAoCE,KAApC,CAAA,CAAA;AACD,GAAA;;EAED,OAAOP,QAAQ,CAACW,KAAT,EAAP,CAAA;AACD;;ACjCD,IAAMC,gBAAgB,GAAG,CAAE,MAAF,EAAU,MAAV,EAAkB,OAAlB,EAA2B,UAA3B,EAAuC,OAAvC,CAAzB,CAAA;AAEO,IAAMC,OAAK,GAAG,CAAC,MAAD,EAAS,SAAT,CAAd,CAAA;AAEA,SAASC,QAAT,CAAwD,KAAA,EAAA;AAAA,EAAA,IAAA,IAAA,GAAA,KAAA,KAAA,KAAA,CAAA,GAAJ,EAAI,GAAA,KAAA;MAAtCd,QAAsC,QAAtCA,QAAsC;MAA5Be,OAA4B,QAA5BA,OAA4B;MAAnBC,UAAmB,QAAnBA,UAAmB,CAAA;;AAC7D,EAAA,IAAQC,KAAR,GAA0BF,OAA1B,CAAQE,KAAR;AAAA,MAAeC,MAAf,GAA0BH,OAA1B,CAAeG,MAAf,CAAA;EACA,IAAoCF,gBAAAA,GAAAA,UAApC,CAAQG,IAAR;MAAQA,IAAR,iCAAe,OAAf,GAAA,gBAAA;AAAA,MAAwBC,OAAxB,GAAoCJ,UAApC,CAAwBI,OAAxB,CAAA;AAEA,EAAA,IAAIC,oBAAoB,GAAA,IAAA,GAAQF,IAAR,GAAA,KAAA,GAAkBF,KAA1C,CAAA;;EAEA,IAAK,CAACG,OAAD,IAAYR,gBAAgB,CAACN,QAAjB,CAA0Ba,IAA1B,CAAjB,EAAmD;IACjD,cAAA,CAAA,SAAA,CAAA,CAAA;AACD,GAAA;;EAED,IAAK,CAAC,CAAC,OAAD,CAAA,CAAUb,QAAV,CAAmBa,IAAnB,CAAN,EAAiC;IAC/BE,oBAAoB,GAAMA,oBAAN,GAAA,KAAA,GAAgCH,MAApD,CAAA;AACD,GAAA;;AAED,EAAA,IAAKE,OAAL,EAAe;IACb,IAAKA,OAAO,KAAK,MAAZ,IAAsB,CAACR,gBAAgB,CAACN,QAAjB,CAA0Ba,IAA1B,CAA5B,EAA8D;MAC5DG,OAAO,CAACC,IAAR,CAAa,gGAAb,CAAA,CAAA;AACD,KAFD,MAEO;MACLF,oBAAoB,GAAMA,oBAAN,GAAA,KAAA,GAAgCD,OAApD,CAAA;AACD,KAAA;AACF,GAAA;;EAEDpB,QAAQ,CAACE,MAAT,CAAgBmB,oBAAhB,CAAA,CAAA;AACD;;;;;;;;AC3BD,IAAMG,MAAM,GAAG,CACb,KADa,EAEb;AACEC,EAAAA,IAAI,EAAE,gBADR;AAEEpB,EAAAA,MAAM,EAAE,iBAAA;AAFV,CAFa,EAMb;AACEoB,EAAAA,IAAI,EAAE,WADR;AAEEpB,EAAAA,MAAM,EAAE,YAAA;AAFV,CANa,EAUb;AACEoB,EAAAA,IAAI,EAAE,cADR;AAEEpB,EAAAA,MAAM,EAAE,eAAA;AAFV,CAVa,EAcb;AACEoB,EAAAA,IAAI,EAAE,kBADR;AAEEpB,EAAAA,MAAM,EAAE,mBAAA;AAFV,CAda,EAkBb,YAlBa,EAmBb,MAnBa,EAoBb;AACEoB,EAAAA,IAAI,EAAE,WADR;AAEEpB,EAAAA,MAAM,EAAE,YAAA;AAFV,CApBa,EAwBb;AACEoB,EAAAA,IAAI,EAAE,YADR;AAEEpB,EAAAA,MAAM,EAAE,aAAA;AAFV,CAxBa,EA4Bb,YA5Ba,EA6Bb;AACEoB,EAAAA,IAAI,EAAE,eADR;AAEEpB,EAAAA,MAAM,EAAE,gBAAA;AAFV,CA7Ba,EAiCb,YAjCa,EAkCb,UAlCa,EAmCb,UAnCa,EAoCb,SApCa,EAqCb;AACEoB,EAAAA,IAAI,EAAE,WADR;AAEEpB,EAAAA,MAAM,EAAE,YAAA;AAFV,CArCa,EAyCb,OAzCa,EA0Cb;AACEoB,EAAAA,IAAI,EAAE,cADR;AAEEpB,EAAAA,MAAM,EAAE,eAAA;AAFV,CA1Ca,EA8Cb,WA9Ca,EA+Cb,SA/Ca,EAgDb,QAhDa,EAiDb;AACEoB,EAAAA,IAAI,EAAE,UADR;AAEEpB,EAAAA,MAAM,EAAE,WAAA;AAFV,CAjDa,EAqDb,SArDa,EAsDb,UAtDa,EAuDb;AACEoB,EAAAA,IAAI,EAAE,eADR;AAEEpB,EAAAA,MAAM,EAAE,gBAAA;AAFV,CAvDa,EA2Db;AACEoB,EAAAA,IAAI,EAAE,gBADR;AAEEpB,EAAAA,MAAM,EAAE,iBAAA;AAFV,CA3Da,EA+Db,QA/Da,EAgEb;AACEoB,EAAAA,IAAI,EAAE,cADR;AAEEpB,EAAAA,MAAM,EAAE,eAAA;AAFV,CAhEa,EAoEb,YApEa,EAqEb,OArEa,EAsEb,QAtEa,EAuEb,SAvEa,EAwEb,OAxEa,EAyEb;AACEoB,EAAAA,IAAI,EAAE,oBADR;AAEEpB,EAAAA,MAAM,EAAE,qBAAA;AAFV,CAzEa,EA6Eb,MA7Ea,EA8Eb;AACEoB,EAAAA,IAAI,EAAE,aADR;AAEEpB,EAAAA,MAAM,EAAE,cAAA;AAFV,CA9Ea,EAkFb,WAlFa,EAmFb,UAnFa,EAoFb,UApFa,CAAf,CAAA;AAuFO,IAAMQ,OAAK,GAAGW,MAAM,CAACE,GAAP,CAAW,UAAAC,KAAK,EAAA;AAAA,EAAA,OAAIA,KAAK,CAACF,IAAN,IAAcE,KAAlB,CAAA;AAAA,CAAhB,CAAd,CAAA;AAEA,SAASb,QAAT,CAA+C,KAAA,EAAA;AAAA,EAAA,IAAA,IAAA,GAAA,KAAA,KAAA,KAAA,CAAA,GAAJ,EAAI,GAAA,KAAA;MAA7Bd,QAA6B,QAA7BA,QAA6B;MAAnBgB,UAAmB,QAAnBA,UAAmB,CAAA;;AACpDQ,EAAAA,MAAM,CAACI,OAAP,CAAe,UAAAC,GAAG,EAAI;AAEpB,IAAA,IAAMJ,IAAI,GAAGI,GAAG,CAACJ,IAAJ,IAAYI,GAAzB,CAAA;AACA,IAAA,IAAMxB,MAAM,GAAGwB,GAAG,CAACxB,MAAJ,IAAcwB,GAA7B,CAAA;;IAEA,IAAKJ,IAAI,KAAK,UAAT,IAAuBT,UAAU,CAACS,IAAD,CAAtC,EAA8C;MAC5CH,OAAO,CAACQ,GAAR,CAAY,kBAAZ,EAAgCd,UAAU,CAACS,IAAD,CAA1C,CAAA,CAAA;AACD,KAAA;;AACD,IAAA,IAAKT,UAAU,CAACS,IAAD,CAAV,KAAqB,IAA1B,EAAiC;MAC/BzB,QAAQ,CAACK,MAAT,CAAA,IAAA,GAAqBA,MAArB,CAAA,CAAA;KADF,MAEO,IAAK,OAAOW,UAAU,CAACS,IAAD,CAAjB,KAA4B,QAAjC,EAA4C;MACjDzB,QAAQ,CAACK,MAAT,CAAqBA,IAAAA,GAAAA,MAArB,SAA+BW,UAAU,CAACS,IAAD,CAAzC,CAAA,CAAA;AACD,KAAA;GAZH,CAAA,CAAA;AAcD;;;;;;;;ACxGD;AAEO,IAAMM,OAAO,GAAG;AACrBC,EAAAA,WAAW,EAAE;AACXC,IAAAA,SAAS,EAAE,IAAA;GAFQ;AAIrBd,EAAAA,IAAI,EAAE;AACJc,IAAAA,SAAS,EAAE,GAAA;GALQ;AAOrBb,EAAAA,OAAO,EAAE;AACPa,IAAAA,SAAS,EAAE,GAAA;GARQ;AAUrBf,EAAAA,MAAM,EAAE;AACNe,IAAAA,SAAS,EAAE,GAAA;GAXQ;AAarBhB,EAAAA,KAAK,EAAE;AACLgB,IAAAA,SAAS,EAAE,GAAA;AADN,GAAA;AAbc,EAAhB;AAkBA,IAAMC,QAAQ,GAAG;AACtBC,EAAAA,KAAK,EAAE;AACLF,IAAAA,SAAS,EAAE,GAAA;GAFS;AAItBb,EAAAA,OAAO,EAAE;AACPa,IAAAA,SAAS,EAAE,GAAA;GALS;AAOtBG,EAAAA,CAAC,EAAE;AACDH,IAAAA,SAAS,EAAE,GAAA;GARS;AAUtBI,EAAAA,CAAC,EAAE;AACDJ,IAAAA,SAAS,EAAE,GAAA;AADV,GAAA;AAVmB,EAAjB;AAeA,IAAMK,IAAI,GAAG;AAClB/B,EAAAA,KAAK,EAAE;AACL0B,IAAAA,SAAS,EAAE,IADN;AAELM,IAAAA,QAAQ,EAAE,SAAA;GAHM;AAKlBC,EAAAA,UAAU,EAAE;AACVP,IAAAA,SAAS,EAAE,KAAA;GANK;AAQlBQ,EAAAA,QAAQ,EAAE;AACRR,IAAAA,SAAS,EAAE,KAAA;GATK;AAWlBS,EAAAA,UAAU,EAAE;AACVT,IAAAA,SAAS,EAAE,KAAA;GAZK;AAclBU,EAAAA,aAAa,EAAE;AACbV,IAAAA,SAAS,EAAE,gBAAA;GAfK;AAiBlBW,EAAAA,cAAc,EAAE;AACdX,IAAAA,SAAS,EAAE,KAAA;AADG,GAAA;AAjBE;;;AC7Bb,IAAMpB,OAAK,GAAG,CAAC,UAAD,CAAd,CAAA;AAEA,SAASC,QAAT,CAAwD,KAAA,EAAA;AAAA,EAAA,IAAA,IAAA,GAAA,KAAA,KAAA,KAAA,CAAA,GAAJ,EAAI,GAAA,KAAA,CAAA;MAAtCd,QAAsC,QAAtCA,QAAsC,CAAA;MAAnBgB,UAAmB,QAAnBA,WAAmB;;EAC7D,IAA0BA,oBAAAA,GAAAA,UAA1B,CAAQ6B,QAAR;MAAQA,QAAR,qCAAmB,EAAnB,GAAA,oBAAA,CAAA;EAEA,IAAMC,IAAI,GAAG,SAAb,CAAA;EACA,IAAMC,aAAa,GAAG,GAAtB,CAAA;EAEAF,QAAQ,CAACjB,OAAT,CAAiB,UAA0E,KAAA,EAAA;IAAA,IAAvEoB,QAAuE,SAAvEA,QAAuE;QAA7Dd,UAA6D,SAA7DA,QAA6D;QAAnDI,MAAmD,SAAnDA,IAAmD;AAAA,QAAA,aAAA,GAAA,KAAA,CAA7CW,OAA6C;QAApCC,YAAoC,8BAArB,EAAqB,GAAA,aAAA;AAAA,QAAdnC,OAAc,GAAA,6BAAA,CAAA,KAAA,EAAAoC,WAAA,CAAA,CAAA;;AACzF,IAAA,IAAMC,WAAW,GAAG,OAAOJ,QAAP,KAAoB,QAAxC,CAAA;AACA,IAAA,IAAMK,OAAO,GAAG,OAAOf,MAAP,KAAgB,QAAhC,CAAA;AACA,IAAA,IAAMgB,WAAW,GAAG,OAAOpB,UAAP,KAAoB,QAAxC,CAAA;;AAEA,IAAA,IAAK,CAACkB,WAAD,IAAgB,CAACC,OAAtB,EAAgC;MAC9B/B,OAAO,CAACC,IAAR,CAAA,KAAA,GAAmBuB,IAAnB,GAAA,+BAAA,CAAA,CAAA;AACA,MAAA,OAAA;AACD,KARwF;AAWzF;;;AAEA,IAAA,IAAIS,mBAAJ,CAAA;;AAEA,IAAA,IAAKF,OAAL,EAAe;MACbE,mBAAmB,GAAMR,aAAN,GAAnB,OAAA,CAAA;AACD,KAFD,MAEO;MACLQ,mBAAmB,GAAMR,aAAN,GAAA,GAAA,GAAuBC,QAAQ,CAACQ,OAAT,CAAiB,KAAjB,EAAwB,GAAxB,CAA1C,CAAA;AACD,KAnBwF;AAsBzF;;;IAEA,IAAMzB,SAAO,GAAG,EAAhB,CAAA;AACA,IAAA,IAAM0B,OAAO,GAAG,EAAhB,CAzByF;;IA6BzFC,MAAM,CAACC,IAAP,CAAY5C,OAAZ,EAAqBa,OAArB,CAA6B,UAAAC,GAAG,EAAI;AAClC,MAAA,IAAK,CAAC+B,OAAiB,CAAC/B,GAAD,CAAvB,EAA+B,OAAA;AAC/B,MAAA,IAAQI,SAAR,GAAsB2B,OAAiB,CAAC/B,GAAD,CAAvC,CAAQI,SAAR,CAAA;MACAF,SAAO,CAAC8B,IAAR,CAAgB5B,SAAhB,SAA6BlB,OAAO,CAACc,GAAD,CAApC,CAAA,CAAA;AACD,KAJD,EA7ByF;;AAqCzFqB,IAAAA,YAAY,CAACtB,OAAb,CAAqB,UAAAvB,MAAM,EAAI;MAC7BqD,MAAM,CAACC,IAAP,CAAYtD,MAAZ,EAAoBuB,OAApB,CAA4B,UAAAC,GAAG,EAAI;AACjC,QAAA,IAAK,CAAC+B,OAAiB,CAAC/B,GAAD,CAAvB,EAA+B,OAAA;AAC/B,QAAA,IAAQI,SAAR,GAAsB2B,OAAiB,CAAC/B,GAAD,CAAvC,CAAQI,SAAR,CAAA;QACAF,SAAO,CAAC8B,IAAR,CAAgB5B,SAAhB,SAA6B5B,MAAM,CAACwB,GAAD,CAAnC,CAAA,CAAA;OAHF,CAAA,CAAA;AAKD,KAND,EArCyF;;AA+CzF,IAAA,IAAKwB,OAAL,EAAe;MACb,IAAMS,mBAAmB,GAAG,EAA5B,CAAA;MAEAJ,MAAM,CAACC,IAAP,CAAYrB,MAAZ,EAAkBV,OAAlB,CAA0B,UAAAC,GAAG,EAAI;AAC/B,QAAA,IAAK,CAACkC,IAAc,CAAClC,GAAD,CAApB,EAA4B,OAAA;QAE5B,IAAgCkC,mBAAAA,GAAAA,IAAc,CAAClC,GAAD,CAA9C;YAAQI,SAAR,uBAAQA,SAAR;YAAmBM,QAAnB,uBAAmBA,QAAnB,CAAA;;QAEA,IAAKA,QAAQ,KAAK,SAAlB,EAA8B;UAC5BR,SAAO,CAAC8B,IAAR,CAAgB5B,SAAhB,SAA6BK,MAAI,CAACT,GAAD,CAAjC,CAAA,CAAA;AACD,SAFD,MAEO;AACLiC,UAAAA,mBAAmB,CAACD,IAApB,CAAyBvB,MAAI,CAACT,GAAD,CAA7B,CAAA,CAAA;AACD,SAAA;OATH,CAAA,CAAA;AAYA0B,MAAAA,mBAAmB,GAAMA,mBAAN,GAA6BO,GAAAA,GAAAA,mBAAmB,CAACpD,IAApB,CAAyB,GAAzB,CAA7B,GAAA,GAAA,GAA8D4B,MAAI,CAACA,IAAtF,CAAA;AACD,KA/DwF;;;AAmEzF,IAAA,IAAKgB,WAAL,EAAmB;MACjBI,MAAM,CAACC,IAAP,CAAYzB,UAAZ,EAAsBN,OAAtB,CAA8B,UAAAC,GAAG,EAAI;AACnC,QAAA,IAAK,CAACmC,QAAkB,CAACnC,GAAD,CAAxB,EAAgC,OAAA;AAEhC,QAAA,IAAQI,SAAR,GAAsB+B,QAAkB,CAACnC,GAAD,CAAxC,CAAQI,SAAR,CAAA;QAEAwB,OAAO,CAACI,IAAR,CAAgB5B,SAAhB,SAA6BC,UAAQ,CAACL,GAAD,CAArC,CAAA,CAAA;OALF,CAAA,CAAA;AAOD,KA3EwF;;;IA+EzF0B,mBAAmB,GAAMA,mBAAN,GAAA,GAAA,GAA6BxB,SAAO,CAACrB,IAAR,CAAa,GAAb,CAAhD,CA/EyF;;IAmFzF6C,mBAAmB,GAAMA,mBAAN,GAAnB,iBAAA,CAAA;;AAEA,IAAA,IAAKE,OAAO,CAACQ,MAAR,GAAiB,CAAtB,EAA0B;MACxBV,mBAAmB,GAAMA,mBAAN,GAA6BE,GAAAA,GAAAA,OAAO,CAAC/C,IAAR,CAAa,GAAb,CAAhD,CAAA;AACD,KAvFwF;;;IA2FzFV,QAAQ,CAACkE,iBAAT,CAA2BX,mBAA3B,CAAA,CAAA;GA3FF,CAAA,CAAA;AA6FD;;;;;;;;AC3GM,IAAM1C,OAAK,GAAG,CAAC,oBAAD,CAAd,CAAA;AAEA,SAASC,QAAT,CAA+C,KAAA,EAAA;AAAA,EAAA,IAAA,IAAA,GAAA,KAAA,KAAA,KAAA,CAAA,GAAJ,EAAI,GAAA,KAAA;MAA7Bd,QAA6B,QAA7BA,QAA6B;MAAnBgB,UAAmB,QAAnBA,UAAmB,CAAA;;EACpD,IAAoCA,qBAAAA,GAAAA,UAApC,CAAQmD,kBAAR;MAAQA,kBAAR,sCAA6B,EAA7B,GAAA,qBAAA,CAAA;AAEAA,EAAAA,kBAAkB,CAACvC,OAAnB,CAA2B,UAAAwC,cAAc,EAAI;IAC3CpE,QAAQ,CAACkE,iBAAT,CAA2BE,cAA3B,CAAA,CAAA;GADF,CAAA,CAAA;AAGD;;;;;;;;ACRM,IAAMvD,OAAK,GAAG,CAAC,kBAAD,CAAd,CAAA;AAEA,SAASC,QAAT,CAAwD,KAAA,EAAA;AAAA,EAAA,IAAA,IAAA,GAAA,KAAA,KAAA,KAAA,CAAA,GAAJ,EAAI,GAAA,KAAA,CAAA;MAAtCd,QAAsC,QAAtCA,QAAsC,CAAA;MAAnBgB,UAAmB,QAAnBA,WAAmB;;EAC7D,IAAqCA,qBAAAA,GAAAA,UAArC,CAAQqD,gBAAR;MAAQA,gBAAR,sCAA2B,KAA3B,GAAA,qBAAA,CAAA;;AACA,EAAA,IAAKA,gBAAL,EAAwB;IACtBrE,QAAQ,CAACK,MAAT,CAAgB,sBAAhB,CAAA,CAAA;AACD,GAAA;AACF;;;;;;;;;ACDM,IAAMQ,OAAK,GAAG,CAAC,WAAD,CAAd,CAAA;AAEA,SAASC,QAAT,CAAwD,KAAA,EAAA;AAAA,EAAA,IAAA,IAAA,GAAA,KAAA,KAAA,KAAA,CAAA,GAAJ,EAAI,GAAA,KAAA,CAAA;MAAtCd,QAAsC,QAAtCA,QAAsC,CAAA;MAAnBgB,UAAmB,QAAnBA,WAAmB;;EAC7D,IAA2BA,qBAAAA,GAAAA,UAA3B,CAAQsD,SAAR;MAAQA,SAAR,sCAAoB,EAApB,GAAA,qBAAA,CAAA;EAGA,IAAMvB,aAAa,GAAG,GAAtB,CAAA;EAEAuB,SAAS,CAAC1C,OAAV,CAAkB,UAAgF,KAAA,EAAA;IAA7EoB,IAAAA,QAA6E,SAA7EA,QAA6E,CAAA;QAAnEF,IAAmE,SAAnEA,IAAmE,CAAA;QAA7DZ,UAA6D,SAA7DA,QAA6D,CAAA;QAAA,aAAA,GAAA,KAAA,CAA7Ce,OAA6C,CAAA;QAApCC,YAAoC,8BAArB,EAAqB,GAAA,aAAA,CAAA;AAAA,QAAdnC,OAAc,GAAA,6BAAA,CAAA,KAAA,EAAA,SAAA,EAAA;;AAChG,IAAA,IAAMqC,WAAW,GAAG,OAAOJ,QAAP,KAAoB,QAAxC,CAAA;AACA,IAAA,IAAMM,WAAW,GAAG,OAAOpB,UAAP,KAAoB,QAAxC,CAAA;;IAEA,IAAK,CAACkB,WAAN,EAAoB;MAClB9B,OAAO,CAACC,IAAR,CAAA,KAAA,GAAmBuB,IAAnB,GAAA,yBAAA,CAAA,CAAA;AACA,MAAA,OAAA;AACD,KAP+F;AAUhG;;;AAEA,IAAA,IAAIS,mBAAmB,GAAMR,aAAN,GAAA,GAAA,GAAuBC,QAAQ,CAACQ,OAAT,CAAiB,KAAjB,EAAwB,GAAxB,CAA9C,CAZgG;AAehG;;IAEA,IAAMzB,SAAO,GAAG,EAAhB,CAAA;AACA,IAAA,IAAM0B,OAAO,GAAG,EAAhB,CAlBgG;;IAsBhGC,MAAM,CAACC,IAAP,CAAY5C,OAAZ,EAAqBa,OAArB,CAA6B,UAAAC,GAAG,EAAI;AAClC,MAAA,IAAK,CAAC+B,OAAiB,CAAC/B,GAAD,CAAvB,EAA+B,OAAA;AAC/B,MAAA,IAAQI,SAAR,GAAsB2B,OAAiB,CAAC/B,GAAD,CAAvC,CAAQI,SAAR,CAAA;MACAF,SAAO,CAAC8B,IAAR,CAAgB5B,SAAhB,SAA6BlB,OAAO,CAACc,GAAD,CAApC,CAAA,CAAA;AACD,KAJD,EAtBgG;;AA8BhGqB,IAAAA,YAAY,CAACtB,OAAb,CAAqB,UAAAvB,MAAM,EAAI;MAC7BqD,MAAM,CAACC,IAAP,CAAYtD,MAAZ,EAAoBuB,OAApB,CAA4B,UAAAC,GAAG,EAAI;AACjC,QAAA,IAAK,CAAC+B,OAAiB,CAAC/B,GAAD,CAAvB,EAA+B,OAAA;AAC/B,QAAA,IAAQI,SAAR,GAAsB2B,OAAiB,CAAC/B,GAAD,CAAvC,CAAQI,SAAR,CAAA;QACAF,SAAO,CAAC8B,IAAR,CAAgB5B,SAAhB,SAA6B5B,MAAM,CAACwB,GAAD,CAAnC,CAAA,CAAA;OAHF,CAAA,CAAA;AAKD,KAND,EA9BgG;;AAwChG,IAAA,IAAKyB,WAAL,EAAmB;MACjBI,MAAM,CAACC,IAAP,CAAYzB,UAAZ,EAAsBN,OAAtB,CAA8B,UAAAC,GAAG,EAAI;AACnC,QAAA,IAAK,CAACmC,QAAkB,CAACnC,GAAD,CAAxB,EAAgC,OAAA;AAEhC,QAAA,IAAQI,SAAR,GAAsB+B,QAAkB,CAACnC,GAAD,CAAxC,CAAQI,SAAR,CAAA;QAEAwB,OAAO,CAACI,IAAR,CAAgB5B,SAAhB,SAA6BC,UAAQ,CAACL,GAAD,CAArC,CAAA,CAAA;OALF,CAAA,CAAA;AAOD,KAhD+F;;;IAoDhG0B,mBAAmB,GAAMA,mBAAN,GAAA,GAAA,GAA6BxB,SAAO,CAACrB,IAAR,CAAa,GAAb,CAAhD,CApDgG;;IAwDhG6C,mBAAmB,GAAMA,mBAAN,GAAnB,iBAAA,CAAA;;AAEA,IAAA,IAAKE,OAAO,CAACQ,MAAR,GAAiB,CAAtB,EAA0B;MACxBV,mBAAmB,GAAMA,mBAAN,GAA6BE,GAAAA,GAAAA,OAAO,CAAC/C,IAAR,CAAa,GAAb,CAAhD,CAAA;AACD,KA5D+F;;;IAgEhGV,QAAQ,CAACkE,iBAAT,CAA2BX,mBAA3B,CAAA,CAAA;GAhEF,CAAA,CAAA;AAkED;;;;;;;;AChFM,IAAM1C,KAAK,GAAG,CAAC,SAAD,CAAd,CAAA;AAEA,SAASC,MAAT,CAA+C,KAAA,EAAA;AAAA,EAAA,IAAA,IAAA,GAAA,KAAA,KAAA,KAAA,CAAA,GAAJ,EAAI,GAAA,KAAA;MAA7Bd,QAA6B,QAA7BA,QAA6B;MAAnBgB,UAAmB,QAAnBA,UAAmB,CAAA;;EACpD,IAA4BA,mBAAAA,GAAAA,UAA5B,CAAQuD,OAAR;MAAQA,OAAR,oCAAkB,KAAlB,GAAA,mBAAA,CAAA;EACA,IAAMxD,OAAO,GAAG,EAAhB,CAAA;;EAEA,IAAKwD,OAAO,KAAK,IAAjB,EAAwB;IACtBvE,QAAQ,CAACK,MAAT,CAAgB,WAAhB,CAAA,CAAA;AACD,GAFD,MAEO,IAAK,OAAOkE,OAAP,KAAmB,QAAxB,EAAmC;IACxC,IAAKA,OAAO,KAAK,MAAjB,EAA0B;MACxBvE,QAAQ,CAACK,MAAT,CAAgB,WAAhB,CAAA,CAAA;MACAL,QAAQ,CAACK,MAAT,CAAgB,QAAhB,CAAA,CAAA;AACD,KAHD,MAGO;MACLL,QAAQ,CAACK,MAAT,CAAA,YAAA,GAA6BkE,OAA7B,CAAA,CAAA;AACD,KAAA;AACF,GAPM,MAOA,IAAK,OAAOA,OAAP,KAAmB,QAAxB,EAAmC;IACxC,IAAIC,aAAa,GAAG,WAApB,CAAA;;AAEA,IAAA,IAAK,OAAOD,OAAO,CAACxD,OAAf,KAA2B,QAAhC,EAA2C;AACzCyD,MAAAA,aAAa,GAAMA,EAAAA,GAAAA,aAAN,GAAsBD,OAAO,CAACxD,OAA3C,CAAA;AACD,KAAA;;IAEDf,QAAQ,CAACK,MAAT,CAAgBmE,aAAhB,CAAA,CAAA;AAEA,IAAA,IAAIC,UAAJ,CAAA;;AAEA,IAAA,IAAKF,OAAO,CAACG,IAAR,KAAiB,IAAtB,EAA6B;AAC3BD,MAAAA,UAAU,GAAG,QAAb,CAAA;KADF,MAEO,IAAK,OAAOF,OAAO,CAACG,IAAf,KAAwB,QAA7B,EAAwC;MAC7CD,UAAU,GAAA,QAAA,GAAYF,OAAO,CAACG,IAA9B,CAAA;AACD,KAAA;;AAED,IAAA,IAAKD,UAAL,EAAkB;MAChBzE,QAAQ,CAACK,MAAT,CAAgBoE,UAAhB,CAAA,CAAA;AACD,KAAA;AACF,GAAA;;EAED,IAAKF,OAAO,KAAK,KAAjB,EAAyB;IACvBxD,OAAO,CAACX,MAAR,GAAiB,KAAjB,CAAA;AACD,GAAA;;EAED,OAAO;AACLW,IAAAA,OAAO,EAAPA,OAAAA;GADF,CAAA;AAGD;;;;;;;;AC5BD,IAAM3B,GAAG,GAAG,IAAIC,iBAAJ,CAAe;AACzBC,EAAAA,KAAK,EAAE;AACLC,IAAAA,SAAS,EAAEC,OAAO,CAACC,GAAR,CAAYC,iCAAAA;GAFA;AAIzBC,EAAAA,GAAG,EAAE;AACH;AACAC,IAAAA,SAAS,EAAE,KAAA;AAFR,GAAA;AAJoB,CAAf,CAAZ,CAAA;AAUO,IAAM+E,qBAAqB,GAAG;AAEnCC,sBAFmC,EAInCC,cAJmC,EAKnCC,aALmC,EAMnCC,cANmC,EAOnCC,eAPmC,EAQnCC,aARmC;AAWnC;AAEAC,wBAbmC,CAA9B,CAAA;AAgBA,SAASC,gBAAT,CAA0BC,cAA1B,EAA0CpE,UAA1C,EAAsD;AAC3D,EAAA,IAAMD,OAAO,GAAA,QAAA,CAAA;AACXX,IAAAA,MAAM,EAAE,MADG;AAEXiF,IAAAA,OAAO,EAAE,MAAA;AAFE,GAAA,EAGRD,cAHQ,CAAb,CAAA;;EAMA,IAAMpF,QAAQ,GAAGZ,GAAG,CAACa,KAAJ,CAAUc,OAAO,CAACjB,GAAlB,CAAjB,CAAA;EAEA6E,qBAAqB,CAAC/C,OAAtB,CAA8B,UAAgB,IAAA,EAAA;IAAA,IAAbd,MAAa,QAAbA,MAAa,CAAA;;AAC5C,IAAA,IAAA,KAAA,GAAmCA,MAAM,CAAC;AACxCd,MAAAA,QAAQ,EAARA,QADwC;AAExCe,MAAAA,OAAO,EAAPA,OAFwC;AAGxCC,MAAAA,UAAU,EAAVA,UAAAA;KAHuC,CAAN,IAI7B,EAJN;QAAiBsE,aAAjB,SAAQvE,OAAR,CAAA;;AAMA,IAAA,IAAKuE,aAAL,IAAA,IAAA,IAAKA,aAAa,CAAElF,MAApB,EAA6B;AAC3BW,MAAAA,OAAO,CAACX,MAAR,GAAiBkF,aAAa,CAAClF,MAA/B,CAAA;AACD,KAAA;GATH,CAAA,CAAA;AAYA,EAAA,OAAOJ,QAAQ,CACNI,MADF,CACSW,OAAO,CAACX,MADjB,CAEED,CAAAA,QAFF,QAEgBY,OAAO,CAACsE,OAFxB,CAAA,CAGE1E,KAHF,EAAP,CAAA;AAID;;AC9DD,IAAM4E,QAAQ,GAAG,SAAXA,QAAW,CAAA1E,KAAK,EAAI;EAExB,IAAM2E,WAAW,GAAG,EAApB,CAAA;EAEAb,qBAAqB,CAAC/C,OAAtB,CAA8B,UAAoB,IAAA,EAAA;AAAA,IAAA,IAAA,UAAA,GAAA,IAAA,CAAjBf,KAAiB;QAAjBA,KAAiB,2BAAT,EAAS,GAAA,UAAA,CAAA;AAChDA,IAAAA,KAAK,CAACe,OAAN,CAAc,UAAAH,IAAI,EAAI;AACpB,MAAA,IAAK+D,WAAW,CAAClF,QAAZ,CAAqBmB,IAArB,CAAL,EAAkC;AAChC,QAAA,MAAM,IAAIgE,KAAJ,CAAoBhE,SAAAA,GAAAA,IAApB,GAAN,kBAAA,CAAA,CAAA;AACD,OAAA;;MACD+D,WAAW,CAAC3B,IAAZ,CAAiBpC,IAAjB,CAAA,CAAA;KAJF,CAAA,CAAA;AAMD,GAPD,EAJwB;;EAexB,IAAMiE,UAAU,GAAG,EAAnB,CAAA;EAEAhC,MAAM,CAACC,IAAP,CAAY9C,KAAZ,EACG8E,MADH,CACU,UAAA9D,GAAG,EAAA;AAAA,IAAA,OAAI,CAAC2D,WAAW,CAAClF,QAAZ,CAAqBuB,GAArB,CAAL,CAAA;AAAA,GADb,CAEGD,CAAAA,OAFH,CAEW,UAAAC,GAAG,EAAA;IAAA,OAAI6D,UAAU,CAAC7D,GAAD,CAAV,GAAkBhB,KAAK,CAACgB,GAAD,CAA3B,CAAA;AAAA,GAFd,EAjBwB;;EAuBxB,IAAMb,UAAU,GAAG,EAAnB,CAAA;AAEAwE,EAAAA,WAAW,CAAC5D,OAAZ,CAAoB,UAAAC,GAAG,EAAI;AACzB,IAAA,IAAKhB,KAAK,CAACgB,GAAD,CAAV,EAAkB;AAChBb,MAAAA,UAAU,CAACa,GAAD,CAAV,GAAkBhB,KAAK,CAACgB,GAAD,CAAvB,CAAA;AACD,KAAA;AACF,GAJD,EAzBwB;AAgCxB;AACA;AACA;AACA;AACA;AACA;AACA;;EAEA,IAAK6D,UAAU,CAAC3F,WAAhB,EAA8B;AAC5B2F,IAAAA,UAAU,CAACE,WAAX,GAAyB/F,oBAAoB,CAAC;MAC5CC,GAAG,EAAEe,KAAK,CAACf,GADiC;MAE5CC,WAAW,EAAEc,KAAK,CAACd,WAAAA;AAFyB,KAAD,CAA7C,CAAA;;AAKA,IAAA,IAAK2F,UAAU,CAAC3F,WAAX,KAA2B,MAAhC,EAAyC;MACvC2F,UAAU,CAAC3F,WAAX,GAAyB,MAAzB,CAAA;AACD,KAAA;AACF,GAAA;;EAED,oBACE8F,cAAA,CAACC,yBAAD,EAAA,QAAA,CAAA,EAAA,EACMJ,UADN,EAAA;IAEE,MAAM,EAAE,gBAAC3E,OAAD,EAAA;MAAA,OAAaoE,gBAAgB,cAAMO,UAAN,EAAA;AAAkB3E,QAAAA,OAAO,EAAPA,OAAAA;AAAlB,OAAA,CAAA,EAA6BC,UAA7B,CAA7B,CAAA;AAAA,KAAA;GAHZ,CAAA,CAAA,CAAA;AAMD;;;;;;;;"}
1
+ {"version":3,"file":"next-cloudinary.js","sources":["../src/lib/cloudinary.js","../src/plugins/cropping.js","../src/plugins/effects.js","../src/constants/qualifiers.js","../src/plugins/overlays.js","../src/plugins/raw-transformations.js","../src/plugins/remove-background.js","../src/plugins/underlays.js","../src/plugins/zoompan.js","../src/loaders/cloudinary-loader.js","../src/components/CldImage/CldImage.js"],"sourcesContent":["import { Cloudinary } from '@cloudinary/url-gen';\n\nconst cld = new Cloudinary({\n cloud: {\n cloudName: process.env.NEXT_PUBLIC_CLOUDINARY_CLOUD_NAME\n },\n url: {\n // Used to avoid issues with SSR particularly for the blurred placeholder\n analytics: false\n }\n});\n\n/**\n * Retrieves the public id of a cloudiary image url. If no url is recognized it returns the parameter it self.\n * If it's recognized that is a url and it's not possible to get the public id, it warns the user.\n *\n * @param {string} src The cloudiary url or public id.\n *\n * @return {string} The images public id\n */\nexport function getPublicId(src) {\n if ( src.includes('res.cloudinary.com') ) {\n const regexWithTransformations = /(https?)\\:\\/\\/(res.cloudinary.com)\\/([^\\/]+)\\/(image|video|raw)\\/(upload|authenticated)\\/(.*)\\/(v[0-9]+)\\/(.+)(?:\\.[a-z]{3})?/\n const regexWithoutTransformations = /(https?)\\:\\/\\/(res.cloudinary.com)\\/([^\\/]+)\\/(image|video|raw)\\/(upload|authenticated)\\/(v[0-9]+)\\/(.+)(?:\\.[a-z]{3})?/\n\n const withTransformations = src.match(regexWithTransformations)\n const withoutTransformations = src.match(regexWithoutTransformations)\n\n if ( withTransformations ) {\n return withTransformations[withTransformations.length - 1]\n } else if ( withoutTransformations ) {\n return withoutTransformations[withoutTransformations.length - 1]\n } else {\n console.warn(`Not possible to retrieve the publicUrl from ${src}, make sure it's a valid cloudinary image url.`)\n }\n }\n return src;\n}\n\n/**\n * createPlaceholderUrl\n */\n\nexport function createPlaceholderUrl({ src, placeholder }) {\n const cldImage = cld.image(src)\n .resize('c_limit,w_100')\n .delivery('q_1')\n .format('auto');\n\n if ( placeholder === 'grayscale' ) {\n cldImage.effect('e_grayscale');\n }\n\n if ( placeholder.includes('color:') ) {\n const color = placeholder.split(':').splice(1).join(':')\n cldImage.effect('e_grayscale');\n cldImage.effect(`e_colorize:60,co_${color}`);\n }\n\n return cldImage.toURL();\n}\n","const cropsGravityAuto = [ 'crop', 'fill', 'lfill', 'fill_pad', 'thumb' ];\n\nexport const props = ['crop', 'gravity'];\n\nexport function plugin({ cldImage, options, cldOptions } = {}) {\n const { width, height } = options;\n const { crop = 'limit', gravity } = cldOptions;\n\n let transformationString = `c_${crop},w_${width}`;\n\n if ( !gravity && cropsGravityAuto.includes(crop) ) {\n gravity = 'auto';\n }\n\n if ( !['limit'].includes(crop) ) {\n transformationString = `${transformationString},h_${height}`;\n }\n\n if ( gravity ) {\n if ( gravity === 'auto' && !cropsGravityAuto.includes(crop) ) {\n console.warn('Auto gravity can only be used with crop, fill, lfill, fill_pad or thumb. Not applying gravity.');\n } else {\n transformationString = `${transformationString},g_${gravity}`;\n }\n }\n\n cldImage.resize(transformationString);\n}","const params = [\n 'art',\n {\n prop: 'autoBrightness',\n effect: 'auto_brightness',\n },\n {\n prop: 'autoColor',\n effect: 'auto_color',\n },\n {\n prop: 'autoContrast',\n effect: 'auto_contrast',\n },\n {\n prop: 'assistColorblind',\n effect: 'assist_colorblind',\n },\n 'blackwhite',\n 'blur',\n {\n prop: 'blurFaces',\n effect: 'blur_faces',\n },\n {\n prop: 'blurRegion',\n effect: 'blur_region',\n },\n 'brightness',\n {\n prop: 'brightnessHSB',\n effect: 'brightness_hsb',\n },\n 'cartoonify',\n 'colorize',\n 'contrast',\n 'distort',\n {\n prop: 'fillLight',\n effect: 'fill_light',\n },\n 'gamma',\n {\n prop: 'gradientFade',\n effect: 'gradient_fade',\n },\n 'grayscale',\n 'improve',\n 'negate',\n {\n prop: 'oilPaint',\n effect: 'oil_paint',\n },\n 'outline',\n 'pixelate',\n {\n prop: 'pixelateFaces',\n effect: 'pixelate_faces',\n },\n {\n prop: 'pixelateRegion',\n effect: 'pixelate_region',\n },\n 'redeye',\n {\n prop: 'replaceColor',\n effect: 'replace_color',\n },\n 'saturation',\n 'sepia',\n 'shadow',\n 'sharpen',\n 'shear',\n {\n prop: 'simulateColorblind',\n effect: 'simulate_colorblind',\n },\n 'tint',\n {\n prop: 'unsharpMask',\n effect: 'unsharp_mask',\n },\n 'vectorize',\n 'vibrance',\n 'vignette',\n];\n\nexport const props = params.map(param => param.prop || param);\n\nexport function plugin({ cldImage, cldOptions } = {}) {\n params.forEach(key => {\n\n const prop = key.prop || key;\n const effect = key.effect || key;\n\n if ( prop === 'oilPaint' && cldOptions[prop]) {\n console.log('cldOptions[prop]', cldOptions[prop])\n }\n if ( cldOptions[prop] === true ) {\n cldImage.effect(`e_${effect}`);\n } else if ( typeof cldOptions[prop] === 'string' ) {\n cldImage.effect(`e_${effect}:${cldOptions[prop]}`);\n }\n });\n}","// aspectRatio\n\nexport const primary = {\n aspectRatio: {\n qualifier: 'ar'\n },\n crop: {\n qualifier: 'c'\n },\n gravity: {\n qualifier: 'g'\n },\n height: {\n qualifier: 'h'\n },\n width: {\n qualifier: 'w'\n },\n};\n\nexport const position = {\n angle: {\n qualifier: 'a'\n },\n gravity: {\n qualifier: 'g'\n },\n x: {\n qualifier: 'x'\n },\n y: {\n qualifier: 'y'\n },\n}\n\nexport const text = {\n color: {\n qualifier: 'co',\n location: 'primary'\n },\n fontFamily: {\n qualifier: false\n },\n fontSize: {\n qualifier: false\n },\n fontWeight: {\n qualifier: false\n },\n letterSpacing: {\n qualifier: 'letter_spacing'\n },\n textDecoration: {\n qualifier: false\n }\n}","import {\n primary as qualifiersPrimary,\n text as qualifiersText,\n position as qualifiersPosition\n} from '../constants/qualifiers';\n\nexport const props = ['overlays'];\n\nexport function plugin({ cldImage, options, cldOptions } = {}) {\n const { overlays = [] } = cldOptions;\n\n const type = 'overlay';\n const typeQualifier = 'l';\n\n overlays.forEach(({ publicId, position, text, effects: layerEffects = [], ...options }) => {\n const hasPublicId = typeof publicId === 'string';\n const hasText = typeof text === 'object';\n const hasPosition = typeof position === 'object';\n\n if ( !hasPublicId && !hasText ) {\n console.warn(`An ${type} is missing Public ID or Text`);\n return;\n }\n\n // Start to construct the transformation string using text or the public ID\n // if it's image-based\n\n let layerTransformation;\n\n if ( hasText ) {\n layerTransformation = `${typeQualifier}_text`;\n } else {\n layerTransformation = `${typeQualifier}_${publicId.replace(/\\//g, ':')}`;\n }\n\n // Begin organizing transformations based on what it is and the location\n // it needs to be placed in the URL\n\n const primary = [];\n const applied = [];\n\n // Gemeral options\n\n Object.keys(options).forEach(key => {\n if ( !qualifiersPrimary[key] ) return;\n const { qualifier } = qualifiersPrimary[key];\n primary.push(`${qualifier}_${options[key]}`);\n });\n\n // Layer effects\n\n layerEffects.forEach(effect => {\n Object.keys(effect).forEach(key => {\n if ( !qualifiersPrimary[key] ) return;\n const { qualifier } = qualifiersPrimary[key];\n primary.push(`${qualifier}_${effect[key]}`);\n });\n });\n\n // Text styling\n\n if ( hasText ) {\n const textTransformations = [];\n\n Object.keys(text).forEach(key => {\n if ( !qualifiersText[key] ) return;\n\n const { qualifier, location } = qualifiersText[key];\n\n if ( location === 'primary' ) {\n primary.push(`${qualifier}_${text[key]}`);\n } else {\n textTransformations.push(text[key]);\n }\n });\n\n layerTransformation = `${layerTransformation}:${textTransformations.join('_')}:${text.text}`\n }\n\n // Positioning\n\n if ( hasPosition ) {\n Object.keys(position).forEach(key => {\n if ( !qualifiersPosition[key] ) return;\n\n const { qualifier } = qualifiersPosition[key];\n\n applied.push(`${qualifier}_${position[key]}`);\n });\n }\n\n // Add all primary transformations\n\n layerTransformation = `${layerTransformation},${primary.join(',')}`;\n\n // Add all applied transformations\n\n layerTransformation = `${layerTransformation}/fl_layer_apply`;\n\n if ( applied.length > 0 ) {\n layerTransformation = `${layerTransformation},${applied.join(',')}`;\n }\n\n // Finally add it to the image\n\n cldImage.addTransformation(layerTransformation);\n });\n}","export const props = ['rawTransformations'];\n\nexport function plugin({ cldImage, cldOptions } = {}) {\n const { rawTransformations = [] } = cldOptions;\n\n rawTransformations.forEach(transformation => {\n cldImage.addTransformation(transformation);\n });\n}","export const props = ['removeBackground'];\n\nexport function plugin({ cldImage, options, cldOptions } = {}) {\n const { removeBackground = false } = cldOptions;\n if ( removeBackground ) {\n cldImage.effect('e_background_removal');\n }\n}","import {\n primary as qualifiersPrimary,\n text as qualifiersText,\n position as qualifiersPosition\n} from '../constants/qualifiers';\n\nexport const props = ['underlays'];\n\nexport function plugin({ cldImage, options, cldOptions } = {}) {\n const { underlays = [] } = cldOptions;\n\n const type = 'underlay';\n const typeQualifier = 'u';\n\n underlays.forEach(({ publicId, type, position, text, effects: layerEffects = [], ...options }) => {\n const hasPublicId = typeof publicId === 'string';\n const hasPosition = typeof position === 'object';\n\n if ( !hasPublicId ) {\n console.warn(`An ${type} is missing a Public ID`);\n return;\n }\n\n // Start to construct the transformation string using text or the public ID\n // if it's image-based\n\n let layerTransformation = `${typeQualifier}_${publicId.replace(/\\//g, ':')}`;\n\n // Begin organizing transformations based on what it is and the location\n // it needs to be placed in the URL\n\n const primary = [];\n const applied = [];\n\n // Gemeral options\n\n Object.keys(options).forEach(key => {\n if ( !qualifiersPrimary[key] ) return;\n const { qualifier } = qualifiersPrimary[key];\n primary.push(`${qualifier}_${options[key]}`);\n });\n\n // Layer effects\n\n layerEffects.forEach(effect => {\n Object.keys(effect).forEach(key => {\n if ( !qualifiersPrimary[key] ) return;\n const { qualifier } = qualifiersPrimary[key];\n primary.push(`${qualifier}_${effect[key]}`);\n });\n });\n\n // Positioning\n\n if ( hasPosition ) {\n Object.keys(position).forEach(key => {\n if ( !qualifiersPosition[key] ) return;\n\n const { qualifier } = qualifiersPosition[key];\n\n applied.push(`${qualifier}_${position[key]}`);\n });\n }\n\n // Add all primary transformations\n\n layerTransformation = `${layerTransformation},${primary.join(',')}`;\n\n // Add all applied transformations\n\n layerTransformation = `${layerTransformation}/fl_layer_apply`;\n\n if ( applied.length > 0 ) {\n layerTransformation = `${layerTransformation},${applied.join(',')}`;\n }\n\n // Finally add it to the image\n\n cldImage.addTransformation(layerTransformation);\n });\n}","export const props = ['zoompan'];\n\nexport function plugin({ cldImage, cldOptions } = {}) {\n const { zoompan = false } = cldOptions;\n const options = {};\n\n if ( zoompan === true ) {\n cldImage.effect('e_zoompan');\n } else if ( typeof zoompan === 'string' ) {\n if ( zoompan === 'loop' ) {\n cldImage.effect('e_zoompan');\n cldImage.effect('e_loop');\n } else {\n cldImage.effect(`e_zoompan:${zoompan}`);\n }\n } else if ( typeof zoompan === 'object' ) {\n let zoompanEffect = 'e_zoompan';\n\n if ( typeof zoompan.options === 'string' ) {\n zoompanEffect = `${zoompanEffect}${zoompan.options}`;\n }\n\n cldImage.effect(zoompanEffect);\n\n let loopEffect;\n\n if ( zoompan.loop === true ) {\n loopEffect = 'e_loop';\n } else if ( typeof zoompan.loop === 'string' ) {\n loopEffect = `e_loop${zoompan.loop}`;\n }\n\n if ( loopEffect ) {\n cldImage.effect(loopEffect);\n }\n }\n\n if ( zoompan !== false ) {\n options.format = 'gif';\n }\n\n return {\n options\n }\n}","import { Cloudinary } from '@cloudinary/url-gen';\nimport { getPublicId } from '../lib/cloudinary';\n\nimport * as croppingPlugin from '../plugins/cropping';\nimport * as effectsPlugin from '../plugins/effects';\nimport * as overlaysPlugin from '../plugins/overlays';\nimport * as rawTransformationsPlugin from '../plugins/raw-transformations';\nimport * as removeBackgroundPlugin from '../plugins/remove-background';\nimport * as underlaysPlugin from '../plugins/underlays';\nimport * as zoompanPlugin from '../plugins/zoompan';\n\nimport {\n primary as qualifiersPrimary,\n text as qualifiersText,\n position as qualifiersPosition\n} from '../constants/qualifiers';\n\nlet cld;\n\nexport const transformationPlugins = [\n // Background Removal must always come first\n removeBackgroundPlugin,\n\n croppingPlugin,\n effectsPlugin,\n overlaysPlugin,\n underlaysPlugin,\n zoompanPlugin,\n\n // Raw transformations needs to be last simply to make sure\n // it's always expected to applied the same way\n\n rawTransformationsPlugin\n];\n\nexport function cloudinaryLoader(defaultOptions, cldOptions, cldConfig = {}) {\n if ( !cld ) {\n cld = new Cloudinary({\n cloud: {\n cloudName: process.env.NEXT_PUBLIC_CLOUDINARY_CLOUD_NAME\n },\n url: {\n // Used to avoid issues with SSR particularly for the blurred placeholder\n analytics: false\n },\n ...cldConfig\n });\n }\n\n const options = {\n format: 'auto',\n quality: 'auto',\n ...defaultOptions\n };\n const publicId = getPublicId(options.src);\n\n const cldImage = cld.image(publicId);\n\n transformationPlugins.forEach(({ plugin }) => {\n const { options: pluginOptions } = plugin({\n cldImage,\n options,\n cldOptions\n }) || {};\n\n if ( pluginOptions?.format ) {\n options.format = pluginOptions.format;\n }\n });\n\n return cldImage\n .format(options.format)\n .delivery(`q_${options.quality}`)\n .toURL();\n}","import Image from 'next/image';\n\nimport { createPlaceholderUrl, getPublicId } from '../../lib/cloudinary';\nimport { cloudinaryLoader, transformationPlugins } from '../../loaders/cloudinary-loader';\n\nconst CldImage = props => {\n\n const CLD_OPTIONS = [];\n\n transformationPlugins.forEach(({ props = [] }) => {\n props.forEach(prop => {\n if ( CLD_OPTIONS.includes(prop) ) {\n throw new Error(`Option ${prop} already exists!`);\n }\n CLD_OPTIONS.push(prop);\n });\n })\n\n // Construct the base Image component props by filtering out Cloudinary-specific props\n\n const imageProps = {};\n\n Object.keys(props)\n .filter(key => !CLD_OPTIONS.includes(key))\n .forEach(key => imageProps[key] = props[key]);\n\n // Construct Cloudinary-specific props by looking for values for any of the supported prop keys\n\n const cldOptions = {};\n\n CLD_OPTIONS.forEach(key => {\n if ( props[key] ) {\n cldOptions[key] = props[key];\n }\n });\n\n // If we see a placeholder option, configure a Cloudinary-based URL.\n // The resulting image will always be blurred per Next.js, so we're\n // limited on options for placeholders.\n //\n // We need to do this logic here as we potentially need to mutate\n // an Image component prop as opposed to simply the URL\n //\n // https://nextjs.org/docs/api-reference/next/image#blurdataurl\n\n if ( imageProps.placeholder ) {\n const publicId = getPublicId(props.src);\n\n imageProps.blurDataURL = createPlaceholderUrl({\n src: publicId,\n placeholder: props.placeholder\n });\n\n if ( imageProps.placeholder !== 'blur' ) {\n imageProps.placeholder = 'blur';\n }\n }\n\n return (\n <Image\n {...imageProps}\n loader={(options) => cloudinaryLoader({ ...imageProps, options }, cldOptions)}\n />\n );\n}\n\nexport default CldImage;"],"names":["cld","Cloudinary","cloud","cloudName","process","env","NEXT_PUBLIC_CLOUDINARY_CLOUD_NAME","url","analytics","getPublicId","src","includes","regexWithTransformations","regexWithoutTransformations","withTransformations","match","withoutTransformations","length","console","warn","createPlaceholderUrl","placeholder","cldImage","image","resize","delivery","format","effect","color","split","splice","join","toURL","cropsGravityAuto","props","plugin","options","cldOptions","width","height","crop","gravity","transformationString","params","prop","map","param","forEach","key","log","primary","aspectRatio","qualifier","position","angle","x","y","text","location","fontFamily","fontSize","fontWeight","letterSpacing","textDecoration","overlays","type","typeQualifier","publicId","effects","layerEffects","_excluded","hasPublicId","hasText","hasPosition","layerTransformation","replace","applied","Object","keys","qualifiersPrimary","push","textTransformations","qualifiersText","qualifiersPosition","addTransformation","rawTransformations","transformation","removeBackground","underlays","zoompan","zoompanEffect","loopEffect","loop","transformationPlugins","removeBackgroundPlugin","croppingPlugin","effectsPlugin","overlaysPlugin","underlaysPlugin","zoompanPlugin","rawTransformationsPlugin","cloudinaryLoader","defaultOptions","cldConfig","quality","pluginOptions","CldImage","CLD_OPTIONS","Error","imageProps","filter","blurDataURL","_jsx","Image"],"mappings":"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"}
@@ -43,6 +43,33 @@ const cld$1 = new Cloudinary({
43
43
  analytics: false
44
44
  }
45
45
  });
46
+ /**
47
+ * Retrieves the public id of a cloudiary image url. If no url is recognized it returns the parameter it self.
48
+ * If it's recognized that is a url and it's not possible to get the public id, it warns the user.
49
+ *
50
+ * @param {string} src The cloudiary url or public id.
51
+ *
52
+ * @return {string} The images public id
53
+ */
54
+
55
+ function getPublicId(src) {
56
+ if (src.includes('res.cloudinary.com')) {
57
+ const regexWithTransformations = /(https?)\:\/\/(res.cloudinary.com)\/([^\/]+)\/(image|video|raw)\/(upload|authenticated)\/(.*)\/(v[0-9]+)\/(.+)(?:\.[a-z]{3})?/;
58
+ const regexWithoutTransformations = /(https?)\:\/\/(res.cloudinary.com)\/([^\/]+)\/(image|video|raw)\/(upload|authenticated)\/(v[0-9]+)\/(.+)(?:\.[a-z]{3})?/;
59
+ const withTransformations = src.match(regexWithTransformations);
60
+ const withoutTransformations = src.match(regexWithoutTransformations);
61
+
62
+ if (withTransformations) {
63
+ return withTransformations[withTransformations.length - 1];
64
+ } else if (withoutTransformations) {
65
+ return withoutTransformations[withoutTransformations.length - 1];
66
+ } else {
67
+ console.warn(`Not possible to retrieve the publicUrl from ${src}, make sure it's a valid cloudinary image url.`);
68
+ }
69
+ }
70
+
71
+ return src;
72
+ }
46
73
  /**
47
74
  * createPlaceholderUrl
48
75
  */
@@ -526,26 +553,31 @@ var zoompanPlugin = {
526
553
  plugin: plugin
527
554
  };
528
555
 
529
- const cld = new Cloudinary({
530
- cloud: {
531
- cloudName: process.env.NEXT_PUBLIC_CLOUDINARY_CLOUD_NAME
532
- },
533
- url: {
534
- // Used to avoid issues with SSR particularly for the blurred placeholder
535
- analytics: false
536
- }
537
- });
556
+ let cld;
538
557
  const transformationPlugins = [// Background Removal must always come first
539
558
  removeBackgroundPlugin, croppingPlugin, effectsPlugin, overlaysPlugin, underlaysPlugin, zoompanPlugin, // Raw transformations needs to be last simply to make sure
540
559
  // it's always expected to applied the same way
541
560
  rawTransformationsPlugin];
542
- function cloudinaryLoader(defaultOptions, cldOptions) {
561
+ function cloudinaryLoader(defaultOptions, cldOptions, cldConfig = {}) {
562
+ if (!cld) {
563
+ cld = new Cloudinary(_extends({
564
+ cloud: {
565
+ cloudName: process.env.NEXT_PUBLIC_CLOUDINARY_CLOUD_NAME
566
+ },
567
+ url: {
568
+ // Used to avoid issues with SSR particularly for the blurred placeholder
569
+ analytics: false
570
+ }
571
+ }, cldConfig));
572
+ }
573
+
543
574
  const options = _extends({
544
575
  format: 'auto',
545
576
  quality: 'auto'
546
577
  }, defaultOptions);
547
578
 
548
- const cldImage = cld.image(options.src);
579
+ const publicId = getPublicId(options.src);
580
+ const cldImage = cld.image(publicId);
549
581
  transformationPlugins.forEach(({
550
582
  plugin
551
583
  }) => {
@@ -596,8 +628,9 @@ const CldImage = props => {
596
628
  // https://nextjs.org/docs/api-reference/next/image#blurdataurl
597
629
 
598
630
  if (imageProps.placeholder) {
631
+ const publicId = getPublicId(props.src);
599
632
  imageProps.blurDataURL = createPlaceholderUrl({
600
- src: props.src,
633
+ src: publicId,
601
634
  placeholder: props.placeholder
602
635
  });
603
636
 
@@ -1 +1 @@
1
- {"version":3,"file":"next-cloudinary.modern.mjs","sources":["../src/lib/cloudinary.js","../src/plugins/cropping.js","../src/plugins/effects.js","../src/constants/qualifiers.js","../src/plugins/overlays.js","../src/plugins/raw-transformations.js","../src/plugins/remove-background.js","../src/plugins/underlays.js","../src/plugins/zoompan.js","../src/loaders/cloudinary-loader.js","../src/components/CldImage/CldImage.js"],"sourcesContent":["import { Cloudinary } from '@cloudinary/url-gen';\n\nconst cld = new Cloudinary({\n cloud: {\n cloudName: process.env.NEXT_PUBLIC_CLOUDINARY_CLOUD_NAME\n },\n url: {\n // Used to avoid issues with SSR particularly for the blurred placeholder\n analytics: false\n }\n});\n\n/**\n * createPlaceholderUrl\n */\n\nexport function createPlaceholderUrl({ src, placeholder }) {\n const cldImage = cld.image(src)\n .resize('c_limit,w_100')\n .delivery('q_1')\n .format('auto');\n\n if ( placeholder === 'grayscale' ) {\n cldImage.effect('e_grayscale');\n }\n\n if ( placeholder.includes('color:') ) {\n const color = placeholder.split(':').splice(1).join(':')\n cldImage.effect('e_grayscale');\n cldImage.effect(`e_colorize:60,co_${color}`);\n }\n\n return cldImage.toURL();\n}","const cropsGravityAuto = [ 'crop', 'fill', 'lfill', 'fill_pad', 'thumb' ];\n\nexport const props = ['crop', 'gravity'];\n\nexport function plugin({ cldImage, options, cldOptions } = {}) {\n const { width, height } = options;\n const { crop = 'limit', gravity } = cldOptions;\n\n let transformationString = `c_${crop},w_${width}`;\n\n if ( !gravity && cropsGravityAuto.includes(crop) ) {\n gravity = 'auto';\n }\n\n if ( !['limit'].includes(crop) ) {\n transformationString = `${transformationString},h_${height}`;\n }\n\n if ( gravity ) {\n if ( gravity === 'auto' && !cropsGravityAuto.includes(crop) ) {\n console.warn('Auto gravity can only be used with crop, fill, lfill, fill_pad or thumb. Not applying gravity.');\n } else {\n transformationString = `${transformationString},g_${gravity}`;\n }\n }\n\n cldImage.resize(transformationString);\n}","const params = [\n 'art',\n {\n prop: 'autoBrightness',\n effect: 'auto_brightness',\n },\n {\n prop: 'autoColor',\n effect: 'auto_color',\n },\n {\n prop: 'autoContrast',\n effect: 'auto_contrast',\n },\n {\n prop: 'assistColorblind',\n effect: 'assist_colorblind',\n },\n 'blackwhite',\n 'blur',\n {\n prop: 'blurFaces',\n effect: 'blur_faces',\n },\n {\n prop: 'blurRegion',\n effect: 'blur_region',\n },\n 'brightness',\n {\n prop: 'brightnessHSB',\n effect: 'brightness_hsb',\n },\n 'cartoonify',\n 'colorize',\n 'contrast',\n 'distort',\n {\n prop: 'fillLight',\n effect: 'fill_light',\n },\n 'gamma',\n {\n prop: 'gradientFade',\n effect: 'gradient_fade',\n },\n 'grayscale',\n 'improve',\n 'negate',\n {\n prop: 'oilPaint',\n effect: 'oil_paint',\n },\n 'outline',\n 'pixelate',\n {\n prop: 'pixelateFaces',\n effect: 'pixelate_faces',\n },\n {\n prop: 'pixelateRegion',\n effect: 'pixelate_region',\n },\n 'redeye',\n {\n prop: 'replaceColor',\n effect: 'replace_color',\n },\n 'saturation',\n 'sepia',\n 'shadow',\n 'sharpen',\n 'shear',\n {\n prop: 'simulateColorblind',\n effect: 'simulate_colorblind',\n },\n 'tint',\n {\n prop: 'unsharpMask',\n effect: 'unsharp_mask',\n },\n 'vectorize',\n 'vibrance',\n 'vignette',\n];\n\nexport const props = params.map(param => param.prop || param);\n\nexport function plugin({ cldImage, cldOptions } = {}) {\n params.forEach(key => {\n\n const prop = key.prop || key;\n const effect = key.effect || key;\n\n if ( prop === 'oilPaint' && cldOptions[prop]) {\n console.log('cldOptions[prop]', cldOptions[prop])\n }\n if ( cldOptions[prop] === true ) {\n cldImage.effect(`e_${effect}`);\n } else if ( typeof cldOptions[prop] === 'string' ) {\n cldImage.effect(`e_${effect}:${cldOptions[prop]}`);\n }\n });\n}","// aspectRatio\n\nexport const primary = {\n aspectRatio: {\n qualifier: 'ar'\n },\n crop: {\n qualifier: 'c'\n },\n gravity: {\n qualifier: 'g'\n },\n height: {\n qualifier: 'h'\n },\n width: {\n qualifier: 'w'\n },\n};\n\nexport const position = {\n angle: {\n qualifier: 'a'\n },\n gravity: {\n qualifier: 'g'\n },\n x: {\n qualifier: 'x'\n },\n y: {\n qualifier: 'y'\n },\n}\n\nexport const text = {\n color: {\n qualifier: 'co',\n location: 'primary'\n },\n fontFamily: {\n qualifier: false\n },\n fontSize: {\n qualifier: false\n },\n fontWeight: {\n qualifier: false\n },\n letterSpacing: {\n qualifier: 'letter_spacing'\n },\n textDecoration: {\n qualifier: false\n }\n}","import {\n primary as qualifiersPrimary,\n text as qualifiersText,\n position as qualifiersPosition\n} from '../constants/qualifiers';\n\nexport const props = ['overlays'];\n\nexport function plugin({ cldImage, options, cldOptions } = {}) {\n const { overlays = [] } = cldOptions;\n\n const type = 'overlay';\n const typeQualifier = 'l';\n\n overlays.forEach(({ publicId, position, text, effects: layerEffects = [], ...options }) => {\n const hasPublicId = typeof publicId === 'string';\n const hasText = typeof text === 'object';\n const hasPosition = typeof position === 'object';\n\n if ( !hasPublicId && !hasText ) {\n console.warn(`An ${type} is missing Public ID or Text`);\n return;\n }\n\n // Start to construct the transformation string using text or the public ID\n // if it's image-based\n\n let layerTransformation;\n\n if ( hasText ) {\n layerTransformation = `${typeQualifier}_text`;\n } else {\n layerTransformation = `${typeQualifier}_${publicId.replace(/\\//g, ':')}`;\n }\n\n // Begin organizing transformations based on what it is and the location\n // it needs to be placed in the URL\n\n const primary = [];\n const applied = [];\n\n // Gemeral options\n\n Object.keys(options).forEach(key => {\n if ( !qualifiersPrimary[key] ) return;\n const { qualifier } = qualifiersPrimary[key];\n primary.push(`${qualifier}_${options[key]}`);\n });\n\n // Layer effects\n\n layerEffects.forEach(effect => {\n Object.keys(effect).forEach(key => {\n if ( !qualifiersPrimary[key] ) return;\n const { qualifier } = qualifiersPrimary[key];\n primary.push(`${qualifier}_${effect[key]}`);\n });\n });\n\n // Text styling\n\n if ( hasText ) {\n const textTransformations = [];\n\n Object.keys(text).forEach(key => {\n if ( !qualifiersText[key] ) return;\n\n const { qualifier, location } = qualifiersText[key];\n\n if ( location === 'primary' ) {\n primary.push(`${qualifier}_${text[key]}`);\n } else {\n textTransformations.push(text[key]);\n }\n });\n\n layerTransformation = `${layerTransformation}:${textTransformations.join('_')}:${text.text}`\n }\n\n // Positioning\n\n if ( hasPosition ) {\n Object.keys(position).forEach(key => {\n if ( !qualifiersPosition[key] ) return;\n\n const { qualifier } = qualifiersPosition[key];\n\n applied.push(`${qualifier}_${position[key]}`);\n });\n }\n\n // Add all primary transformations\n\n layerTransformation = `${layerTransformation},${primary.join(',')}`;\n\n // Add all applied transformations\n\n layerTransformation = `${layerTransformation}/fl_layer_apply`;\n\n if ( applied.length > 0 ) {\n layerTransformation = `${layerTransformation},${applied.join(',')}`;\n }\n\n // Finally add it to the image\n\n cldImage.addTransformation(layerTransformation);\n });\n}","export const props = ['rawTransformations'];\n\nexport function plugin({ cldImage, cldOptions } = {}) {\n const { rawTransformations = [] } = cldOptions;\n\n rawTransformations.forEach(transformation => {\n cldImage.addTransformation(transformation);\n });\n}","export const props = ['removeBackground'];\n\nexport function plugin({ cldImage, options, cldOptions } = {}) {\n const { removeBackground = false } = cldOptions;\n if ( removeBackground ) {\n cldImage.effect('e_background_removal');\n }\n}","import {\n primary as qualifiersPrimary,\n text as qualifiersText,\n position as qualifiersPosition\n} from '../constants/qualifiers';\n\nexport const props = ['underlays'];\n\nexport function plugin({ cldImage, options, cldOptions } = {}) {\n const { underlays = [] } = cldOptions;\n\n const type = 'underlay';\n const typeQualifier = 'u';\n\n underlays.forEach(({ publicId, type, position, text, effects: layerEffects = [], ...options }) => {\n const hasPublicId = typeof publicId === 'string';\n const hasPosition = typeof position === 'object';\n\n if ( !hasPublicId ) {\n console.warn(`An ${type} is missing a Public ID`);\n return;\n }\n\n // Start to construct the transformation string using text or the public ID\n // if it's image-based\n\n let layerTransformation = `${typeQualifier}_${publicId.replace(/\\//g, ':')}`;\n\n // Begin organizing transformations based on what it is and the location\n // it needs to be placed in the URL\n\n const primary = [];\n const applied = [];\n\n // Gemeral options\n\n Object.keys(options).forEach(key => {\n if ( !qualifiersPrimary[key] ) return;\n const { qualifier } = qualifiersPrimary[key];\n primary.push(`${qualifier}_${options[key]}`);\n });\n\n // Layer effects\n\n layerEffects.forEach(effect => {\n Object.keys(effect).forEach(key => {\n if ( !qualifiersPrimary[key] ) return;\n const { qualifier } = qualifiersPrimary[key];\n primary.push(`${qualifier}_${effect[key]}`);\n });\n });\n\n // Positioning\n\n if ( hasPosition ) {\n Object.keys(position).forEach(key => {\n if ( !qualifiersPosition[key] ) return;\n\n const { qualifier } = qualifiersPosition[key];\n\n applied.push(`${qualifier}_${position[key]}`);\n });\n }\n\n // Add all primary transformations\n\n layerTransformation = `${layerTransformation},${primary.join(',')}`;\n\n // Add all applied transformations\n\n layerTransformation = `${layerTransformation}/fl_layer_apply`;\n\n if ( applied.length > 0 ) {\n layerTransformation = `${layerTransformation},${applied.join(',')}`;\n }\n\n // Finally add it to the image\n\n cldImage.addTransformation(layerTransformation);\n });\n}","export const props = ['zoompan'];\n\nexport function plugin({ cldImage, cldOptions } = {}) {\n const { zoompan = false } = cldOptions;\n const options = {};\n\n if ( zoompan === true ) {\n cldImage.effect('e_zoompan');\n } else if ( typeof zoompan === 'string' ) {\n if ( zoompan === 'loop' ) {\n cldImage.effect('e_zoompan');\n cldImage.effect('e_loop');\n } else {\n cldImage.effect(`e_zoompan:${zoompan}`);\n }\n } else if ( typeof zoompan === 'object' ) {\n let zoompanEffect = 'e_zoompan';\n\n if ( typeof zoompan.options === 'string' ) {\n zoompanEffect = `${zoompanEffect}${zoompan.options}`;\n }\n\n cldImage.effect(zoompanEffect);\n\n let loopEffect;\n\n if ( zoompan.loop === true ) {\n loopEffect = 'e_loop';\n } else if ( typeof zoompan.loop === 'string' ) {\n loopEffect = `e_loop${zoompan.loop}`;\n }\n\n if ( loopEffect ) {\n cldImage.effect(loopEffect);\n }\n }\n\n if ( zoompan !== false ) {\n options.format = 'gif';\n }\n\n return {\n options\n }\n}","import { Cloudinary } from '@cloudinary/url-gen';\n\nimport * as croppingPlugin from '../plugins/cropping';\nimport * as effectsPlugin from '../plugins/effects';\nimport * as overlaysPlugin from '../plugins/overlays';\nimport * as rawTransformationsPlugin from '../plugins/raw-transformations';\nimport * as removeBackgroundPlugin from '../plugins/remove-background';\nimport * as underlaysPlugin from '../plugins/underlays';\nimport * as zoompanPlugin from '../plugins/zoompan';\n\nimport {\n primary as qualifiersPrimary,\n text as qualifiersText,\n position as qualifiersPosition\n} from '../constants/qualifiers';\n\nconst cld = new Cloudinary({\n cloud: {\n cloudName: process.env.NEXT_PUBLIC_CLOUDINARY_CLOUD_NAME\n },\n url: {\n // Used to avoid issues with SSR particularly for the blurred placeholder\n analytics: false\n }\n});\n\nexport const transformationPlugins = [\n // Background Removal must always come first\n removeBackgroundPlugin,\n\n croppingPlugin,\n effectsPlugin,\n overlaysPlugin,\n underlaysPlugin,\n zoompanPlugin,\n\n // Raw transformations needs to be last simply to make sure\n // it's always expected to applied the same way\n\n rawTransformationsPlugin\n];\n\nexport function cloudinaryLoader(defaultOptions, cldOptions) {\n const options = {\n format: 'auto',\n quality: 'auto',\n ...defaultOptions\n };\n\n const cldImage = cld.image(options.src);\n\n transformationPlugins.forEach(({ plugin }) => {\n const { options: pluginOptions } = plugin({\n cldImage,\n options,\n cldOptions\n }) || {};\n\n if ( pluginOptions?.format ) {\n options.format = pluginOptions.format;\n }\n });\n\n return cldImage\n .format(options.format)\n .delivery(`q_${options.quality}`)\n .toURL();\n}","import Image from 'next/image';\n\nimport { createPlaceholderUrl } from '../../lib/cloudinary';\nimport { cloudinaryLoader, transformationPlugins } from '../../loaders/cloudinary-loader';\n\nconst CldImage = props => {\n\n const CLD_OPTIONS = [];\n\n transformationPlugins.forEach(({ props = [] }) => {\n props.forEach(prop => {\n if ( CLD_OPTIONS.includes(prop) ) {\n throw new Error(`Option ${prop} already exists!`);\n }\n CLD_OPTIONS.push(prop);\n });\n })\n\n // Construct the base Image component props by filtering out Cloudinary-specific props\n\n const imageProps = {};\n\n Object.keys(props)\n .filter(key => !CLD_OPTIONS.includes(key))\n .forEach(key => imageProps[key] = props[key]);\n\n // Construct Cloudinary-specific props by looking for values for any of the supported prop keys\n\n const cldOptions = {};\n\n CLD_OPTIONS.forEach(key => {\n if ( props[key] ) {\n cldOptions[key] = props[key];\n }\n });\n\n // If we see a placeholder option, configure a Cloudinary-based URL.\n // The resulting image will always be blurred per Next.js, so we're\n // limited on options for placeholders.\n //\n // We need to do this logic here as we potentially need to mutate\n // an Image component prop as opposed to simply the URL\n //\n // https://nextjs.org/docs/api-reference/next/image#blurdataurl\n\n if ( imageProps.placeholder ) {\n imageProps.blurDataURL = createPlaceholderUrl({\n src: props.src,\n placeholder: props.placeholder\n });\n\n if ( imageProps.placeholder !== 'blur' ) {\n imageProps.placeholder = 'blur';\n }\n }\n\n return (\n <Image\n {...imageProps}\n loader={(options) => cloudinaryLoader({ ...imageProps, options }, cldOptions)}\n />\n );\n}\n\nexport default CldImage;"],"names":["cld","Cloudinary","cloud","cloudName","process","env","NEXT_PUBLIC_CLOUDINARY_CLOUD_NAME","url","analytics","createPlaceholderUrl","src","placeholder","cldImage","image","resize","delivery","format","effect","includes","color","split","splice","join","toURL","cropsGravityAuto","props","plugin","options","cldOptions","width","height","crop","gravity","transformationString","console","warn","params","prop","map","param","forEach","key","log","primary","aspectRatio","qualifier","position","angle","x","y","text","location","fontFamily","fontSize","fontWeight","letterSpacing","textDecoration","overlays","type","typeQualifier","publicId","effects","layerEffects","_excluded","hasPublicId","hasText","hasPosition","layerTransformation","replace","applied","Object","keys","qualifiersPrimary","push","textTransformations","qualifiersText","qualifiersPosition","length","addTransformation","rawTransformations","transformation","removeBackground","underlays","zoompan","zoompanEffect","loopEffect","loop","transformationPlugins","removeBackgroundPlugin","croppingPlugin","effectsPlugin","overlaysPlugin","underlaysPlugin","zoompanPlugin","rawTransformationsPlugin","cloudinaryLoader","defaultOptions","quality","pluginOptions","CldImage","CLD_OPTIONS","Error","imageProps","filter","blurDataURL","_jsx"],"mappings":"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"}
1
+ {"version":3,"file":"next-cloudinary.modern.mjs","sources":["../src/lib/cloudinary.js","../src/plugins/cropping.js","../src/plugins/effects.js","../src/constants/qualifiers.js","../src/plugins/overlays.js","../src/plugins/raw-transformations.js","../src/plugins/remove-background.js","../src/plugins/underlays.js","../src/plugins/zoompan.js","../src/loaders/cloudinary-loader.js","../src/components/CldImage/CldImage.js"],"sourcesContent":["import { Cloudinary } from '@cloudinary/url-gen';\n\nconst cld = new Cloudinary({\n cloud: {\n cloudName: process.env.NEXT_PUBLIC_CLOUDINARY_CLOUD_NAME\n },\n url: {\n // Used to avoid issues with SSR particularly for the blurred placeholder\n analytics: false\n }\n});\n\n/**\n * Retrieves the public id of a cloudiary image url. If no url is recognized it returns the parameter it self.\n * If it's recognized that is a url and it's not possible to get the public id, it warns the user.\n *\n * @param {string} src The cloudiary url or public id.\n *\n * @return {string} The images public id\n */\nexport function getPublicId(src) {\n if ( src.includes('res.cloudinary.com') ) {\n const regexWithTransformations = /(https?)\\:\\/\\/(res.cloudinary.com)\\/([^\\/]+)\\/(image|video|raw)\\/(upload|authenticated)\\/(.*)\\/(v[0-9]+)\\/(.+)(?:\\.[a-z]{3})?/\n const regexWithoutTransformations = /(https?)\\:\\/\\/(res.cloudinary.com)\\/([^\\/]+)\\/(image|video|raw)\\/(upload|authenticated)\\/(v[0-9]+)\\/(.+)(?:\\.[a-z]{3})?/\n\n const withTransformations = src.match(regexWithTransformations)\n const withoutTransformations = src.match(regexWithoutTransformations)\n\n if ( withTransformations ) {\n return withTransformations[withTransformations.length - 1]\n } else if ( withoutTransformations ) {\n return withoutTransformations[withoutTransformations.length - 1]\n } else {\n console.warn(`Not possible to retrieve the publicUrl from ${src}, make sure it's a valid cloudinary image url.`)\n }\n }\n return src;\n}\n\n/**\n * createPlaceholderUrl\n */\n\nexport function createPlaceholderUrl({ src, placeholder }) {\n const cldImage = cld.image(src)\n .resize('c_limit,w_100')\n .delivery('q_1')\n .format('auto');\n\n if ( placeholder === 'grayscale' ) {\n cldImage.effect('e_grayscale');\n }\n\n if ( placeholder.includes('color:') ) {\n const color = placeholder.split(':').splice(1).join(':')\n cldImage.effect('e_grayscale');\n cldImage.effect(`e_colorize:60,co_${color}`);\n }\n\n return cldImage.toURL();\n}\n","const cropsGravityAuto = [ 'crop', 'fill', 'lfill', 'fill_pad', 'thumb' ];\n\nexport const props = ['crop', 'gravity'];\n\nexport function plugin({ cldImage, options, cldOptions } = {}) {\n const { width, height } = options;\n const { crop = 'limit', gravity } = cldOptions;\n\n let transformationString = `c_${crop},w_${width}`;\n\n if ( !gravity && cropsGravityAuto.includes(crop) ) {\n gravity = 'auto';\n }\n\n if ( !['limit'].includes(crop) ) {\n transformationString = `${transformationString},h_${height}`;\n }\n\n if ( gravity ) {\n if ( gravity === 'auto' && !cropsGravityAuto.includes(crop) ) {\n console.warn('Auto gravity can only be used with crop, fill, lfill, fill_pad or thumb. Not applying gravity.');\n } else {\n transformationString = `${transformationString},g_${gravity}`;\n }\n }\n\n cldImage.resize(transformationString);\n}","const params = [\n 'art',\n {\n prop: 'autoBrightness',\n effect: 'auto_brightness',\n },\n {\n prop: 'autoColor',\n effect: 'auto_color',\n },\n {\n prop: 'autoContrast',\n effect: 'auto_contrast',\n },\n {\n prop: 'assistColorblind',\n effect: 'assist_colorblind',\n },\n 'blackwhite',\n 'blur',\n {\n prop: 'blurFaces',\n effect: 'blur_faces',\n },\n {\n prop: 'blurRegion',\n effect: 'blur_region',\n },\n 'brightness',\n {\n prop: 'brightnessHSB',\n effect: 'brightness_hsb',\n },\n 'cartoonify',\n 'colorize',\n 'contrast',\n 'distort',\n {\n prop: 'fillLight',\n effect: 'fill_light',\n },\n 'gamma',\n {\n prop: 'gradientFade',\n effect: 'gradient_fade',\n },\n 'grayscale',\n 'improve',\n 'negate',\n {\n prop: 'oilPaint',\n effect: 'oil_paint',\n },\n 'outline',\n 'pixelate',\n {\n prop: 'pixelateFaces',\n effect: 'pixelate_faces',\n },\n {\n prop: 'pixelateRegion',\n effect: 'pixelate_region',\n },\n 'redeye',\n {\n prop: 'replaceColor',\n effect: 'replace_color',\n },\n 'saturation',\n 'sepia',\n 'shadow',\n 'sharpen',\n 'shear',\n {\n prop: 'simulateColorblind',\n effect: 'simulate_colorblind',\n },\n 'tint',\n {\n prop: 'unsharpMask',\n effect: 'unsharp_mask',\n },\n 'vectorize',\n 'vibrance',\n 'vignette',\n];\n\nexport const props = params.map(param => param.prop || param);\n\nexport function plugin({ cldImage, cldOptions } = {}) {\n params.forEach(key => {\n\n const prop = key.prop || key;\n const effect = key.effect || key;\n\n if ( prop === 'oilPaint' && cldOptions[prop]) {\n console.log('cldOptions[prop]', cldOptions[prop])\n }\n if ( cldOptions[prop] === true ) {\n cldImage.effect(`e_${effect}`);\n } else if ( typeof cldOptions[prop] === 'string' ) {\n cldImage.effect(`e_${effect}:${cldOptions[prop]}`);\n }\n });\n}","// aspectRatio\n\nexport const primary = {\n aspectRatio: {\n qualifier: 'ar'\n },\n crop: {\n qualifier: 'c'\n },\n gravity: {\n qualifier: 'g'\n },\n height: {\n qualifier: 'h'\n },\n width: {\n qualifier: 'w'\n },\n};\n\nexport const position = {\n angle: {\n qualifier: 'a'\n },\n gravity: {\n qualifier: 'g'\n },\n x: {\n qualifier: 'x'\n },\n y: {\n qualifier: 'y'\n },\n}\n\nexport const text = {\n color: {\n qualifier: 'co',\n location: 'primary'\n },\n fontFamily: {\n qualifier: false\n },\n fontSize: {\n qualifier: false\n },\n fontWeight: {\n qualifier: false\n },\n letterSpacing: {\n qualifier: 'letter_spacing'\n },\n textDecoration: {\n qualifier: false\n }\n}","import {\n primary as qualifiersPrimary,\n text as qualifiersText,\n position as qualifiersPosition\n} from '../constants/qualifiers';\n\nexport const props = ['overlays'];\n\nexport function plugin({ cldImage, options, cldOptions } = {}) {\n const { overlays = [] } = cldOptions;\n\n const type = 'overlay';\n const typeQualifier = 'l';\n\n overlays.forEach(({ publicId, position, text, effects: layerEffects = [], ...options }) => {\n const hasPublicId = typeof publicId === 'string';\n const hasText = typeof text === 'object';\n const hasPosition = typeof position === 'object';\n\n if ( !hasPublicId && !hasText ) {\n console.warn(`An ${type} is missing Public ID or Text`);\n return;\n }\n\n // Start to construct the transformation string using text or the public ID\n // if it's image-based\n\n let layerTransformation;\n\n if ( hasText ) {\n layerTransformation = `${typeQualifier}_text`;\n } else {\n layerTransformation = `${typeQualifier}_${publicId.replace(/\\//g, ':')}`;\n }\n\n // Begin organizing transformations based on what it is and the location\n // it needs to be placed in the URL\n\n const primary = [];\n const applied = [];\n\n // Gemeral options\n\n Object.keys(options).forEach(key => {\n if ( !qualifiersPrimary[key] ) return;\n const { qualifier } = qualifiersPrimary[key];\n primary.push(`${qualifier}_${options[key]}`);\n });\n\n // Layer effects\n\n layerEffects.forEach(effect => {\n Object.keys(effect).forEach(key => {\n if ( !qualifiersPrimary[key] ) return;\n const { qualifier } = qualifiersPrimary[key];\n primary.push(`${qualifier}_${effect[key]}`);\n });\n });\n\n // Text styling\n\n if ( hasText ) {\n const textTransformations = [];\n\n Object.keys(text).forEach(key => {\n if ( !qualifiersText[key] ) return;\n\n const { qualifier, location } = qualifiersText[key];\n\n if ( location === 'primary' ) {\n primary.push(`${qualifier}_${text[key]}`);\n } else {\n textTransformations.push(text[key]);\n }\n });\n\n layerTransformation = `${layerTransformation}:${textTransformations.join('_')}:${text.text}`\n }\n\n // Positioning\n\n if ( hasPosition ) {\n Object.keys(position).forEach(key => {\n if ( !qualifiersPosition[key] ) return;\n\n const { qualifier } = qualifiersPosition[key];\n\n applied.push(`${qualifier}_${position[key]}`);\n });\n }\n\n // Add all primary transformations\n\n layerTransformation = `${layerTransformation},${primary.join(',')}`;\n\n // Add all applied transformations\n\n layerTransformation = `${layerTransformation}/fl_layer_apply`;\n\n if ( applied.length > 0 ) {\n layerTransformation = `${layerTransformation},${applied.join(',')}`;\n }\n\n // Finally add it to the image\n\n cldImage.addTransformation(layerTransformation);\n });\n}","export const props = ['rawTransformations'];\n\nexport function plugin({ cldImage, cldOptions } = {}) {\n const { rawTransformations = [] } = cldOptions;\n\n rawTransformations.forEach(transformation => {\n cldImage.addTransformation(transformation);\n });\n}","export const props = ['removeBackground'];\n\nexport function plugin({ cldImage, options, cldOptions } = {}) {\n const { removeBackground = false } = cldOptions;\n if ( removeBackground ) {\n cldImage.effect('e_background_removal');\n }\n}","import {\n primary as qualifiersPrimary,\n text as qualifiersText,\n position as qualifiersPosition\n} from '../constants/qualifiers';\n\nexport const props = ['underlays'];\n\nexport function plugin({ cldImage, options, cldOptions } = {}) {\n const { underlays = [] } = cldOptions;\n\n const type = 'underlay';\n const typeQualifier = 'u';\n\n underlays.forEach(({ publicId, type, position, text, effects: layerEffects = [], ...options }) => {\n const hasPublicId = typeof publicId === 'string';\n const hasPosition = typeof position === 'object';\n\n if ( !hasPublicId ) {\n console.warn(`An ${type} is missing a Public ID`);\n return;\n }\n\n // Start to construct the transformation string using text or the public ID\n // if it's image-based\n\n let layerTransformation = `${typeQualifier}_${publicId.replace(/\\//g, ':')}`;\n\n // Begin organizing transformations based on what it is and the location\n // it needs to be placed in the URL\n\n const primary = [];\n const applied = [];\n\n // Gemeral options\n\n Object.keys(options).forEach(key => {\n if ( !qualifiersPrimary[key] ) return;\n const { qualifier } = qualifiersPrimary[key];\n primary.push(`${qualifier}_${options[key]}`);\n });\n\n // Layer effects\n\n layerEffects.forEach(effect => {\n Object.keys(effect).forEach(key => {\n if ( !qualifiersPrimary[key] ) return;\n const { qualifier } = qualifiersPrimary[key];\n primary.push(`${qualifier}_${effect[key]}`);\n });\n });\n\n // Positioning\n\n if ( hasPosition ) {\n Object.keys(position).forEach(key => {\n if ( !qualifiersPosition[key] ) return;\n\n const { qualifier } = qualifiersPosition[key];\n\n applied.push(`${qualifier}_${position[key]}`);\n });\n }\n\n // Add all primary transformations\n\n layerTransformation = `${layerTransformation},${primary.join(',')}`;\n\n // Add all applied transformations\n\n layerTransformation = `${layerTransformation}/fl_layer_apply`;\n\n if ( applied.length > 0 ) {\n layerTransformation = `${layerTransformation},${applied.join(',')}`;\n }\n\n // Finally add it to the image\n\n cldImage.addTransformation(layerTransformation);\n });\n}","export const props = ['zoompan'];\n\nexport function plugin({ cldImage, cldOptions } = {}) {\n const { zoompan = false } = cldOptions;\n const options = {};\n\n if ( zoompan === true ) {\n cldImage.effect('e_zoompan');\n } else if ( typeof zoompan === 'string' ) {\n if ( zoompan === 'loop' ) {\n cldImage.effect('e_zoompan');\n cldImage.effect('e_loop');\n } else {\n cldImage.effect(`e_zoompan:${zoompan}`);\n }\n } else if ( typeof zoompan === 'object' ) {\n let zoompanEffect = 'e_zoompan';\n\n if ( typeof zoompan.options === 'string' ) {\n zoompanEffect = `${zoompanEffect}${zoompan.options}`;\n }\n\n cldImage.effect(zoompanEffect);\n\n let loopEffect;\n\n if ( zoompan.loop === true ) {\n loopEffect = 'e_loop';\n } else if ( typeof zoompan.loop === 'string' ) {\n loopEffect = `e_loop${zoompan.loop}`;\n }\n\n if ( loopEffect ) {\n cldImage.effect(loopEffect);\n }\n }\n\n if ( zoompan !== false ) {\n options.format = 'gif';\n }\n\n return {\n options\n }\n}","import { Cloudinary } from '@cloudinary/url-gen';\nimport { getPublicId } from '../lib/cloudinary';\n\nimport * as croppingPlugin from '../plugins/cropping';\nimport * as effectsPlugin from '../plugins/effects';\nimport * as overlaysPlugin from '../plugins/overlays';\nimport * as rawTransformationsPlugin from '../plugins/raw-transformations';\nimport * as removeBackgroundPlugin from '../plugins/remove-background';\nimport * as underlaysPlugin from '../plugins/underlays';\nimport * as zoompanPlugin from '../plugins/zoompan';\n\nimport {\n primary as qualifiersPrimary,\n text as qualifiersText,\n position as qualifiersPosition\n} from '../constants/qualifiers';\n\nlet cld;\n\nexport const transformationPlugins = [\n // Background Removal must always come first\n removeBackgroundPlugin,\n\n croppingPlugin,\n effectsPlugin,\n overlaysPlugin,\n underlaysPlugin,\n zoompanPlugin,\n\n // Raw transformations needs to be last simply to make sure\n // it's always expected to applied the same way\n\n rawTransformationsPlugin\n];\n\nexport function cloudinaryLoader(defaultOptions, cldOptions, cldConfig = {}) {\n if ( !cld ) {\n cld = new Cloudinary({\n cloud: {\n cloudName: process.env.NEXT_PUBLIC_CLOUDINARY_CLOUD_NAME\n },\n url: {\n // Used to avoid issues with SSR particularly for the blurred placeholder\n analytics: false\n },\n ...cldConfig\n });\n }\n\n const options = {\n format: 'auto',\n quality: 'auto',\n ...defaultOptions\n };\n const publicId = getPublicId(options.src);\n\n const cldImage = cld.image(publicId);\n\n transformationPlugins.forEach(({ plugin }) => {\n const { options: pluginOptions } = plugin({\n cldImage,\n options,\n cldOptions\n }) || {};\n\n if ( pluginOptions?.format ) {\n options.format = pluginOptions.format;\n }\n });\n\n return cldImage\n .format(options.format)\n .delivery(`q_${options.quality}`)\n .toURL();\n}","import Image from 'next/image';\n\nimport { createPlaceholderUrl, getPublicId } from '../../lib/cloudinary';\nimport { cloudinaryLoader, transformationPlugins } from '../../loaders/cloudinary-loader';\n\nconst CldImage = props => {\n\n const CLD_OPTIONS = [];\n\n transformationPlugins.forEach(({ props = [] }) => {\n props.forEach(prop => {\n if ( CLD_OPTIONS.includes(prop) ) {\n throw new Error(`Option ${prop} already exists!`);\n }\n CLD_OPTIONS.push(prop);\n });\n })\n\n // Construct the base Image component props by filtering out Cloudinary-specific props\n\n const imageProps = {};\n\n Object.keys(props)\n .filter(key => !CLD_OPTIONS.includes(key))\n .forEach(key => imageProps[key] = props[key]);\n\n // Construct Cloudinary-specific props by looking for values for any of the supported prop keys\n\n const cldOptions = {};\n\n CLD_OPTIONS.forEach(key => {\n if ( props[key] ) {\n cldOptions[key] = props[key];\n }\n });\n\n // If we see a placeholder option, configure a Cloudinary-based URL.\n // The resulting image will always be blurred per Next.js, so we're\n // limited on options for placeholders.\n //\n // We need to do this logic here as we potentially need to mutate\n // an Image component prop as opposed to simply the URL\n //\n // https://nextjs.org/docs/api-reference/next/image#blurdataurl\n\n if ( imageProps.placeholder ) {\n const publicId = getPublicId(props.src);\n\n imageProps.blurDataURL = createPlaceholderUrl({\n src: publicId,\n placeholder: props.placeholder\n });\n\n if ( imageProps.placeholder !== 'blur' ) {\n imageProps.placeholder = 'blur';\n }\n }\n\n return (\n <Image\n {...imageProps}\n loader={(options) => cloudinaryLoader({ ...imageProps, options }, cldOptions)}\n />\n );\n}\n\nexport default CldImage;"],"names":["cld","Cloudinary","cloud","cloudName","process","env","NEXT_PUBLIC_CLOUDINARY_CLOUD_NAME","url","analytics","getPublicId","src","includes","regexWithTransformations","regexWithoutTransformations","withTransformations","match","withoutTransformations","length","console","warn","createPlaceholderUrl","placeholder","cldImage","image","resize","delivery","format","effect","color","split","splice","join","toURL","cropsGravityAuto","props","plugin","options","cldOptions","width","height","crop","gravity","transformationString","params","prop","map","param","forEach","key","log","primary","aspectRatio","qualifier","position","angle","x","y","text","location","fontFamily","fontSize","fontWeight","letterSpacing","textDecoration","overlays","type","typeQualifier","publicId","effects","layerEffects","_excluded","hasPublicId","hasText","hasPosition","layerTransformation","replace","applied","Object","keys","qualifiersPrimary","push","textTransformations","qualifiersText","qualifiersPosition","addTransformation","rawTransformations","transformation","removeBackground","underlays","zoompan","zoompanEffect","loopEffect","loop","transformationPlugins","removeBackgroundPlugin","croppingPlugin","effectsPlugin","overlaysPlugin","underlaysPlugin","zoompanPlugin","rawTransformationsPlugin","cloudinaryLoader","defaultOptions","cldConfig","quality","pluginOptions","CldImage","CLD_OPTIONS","Error","imageProps","filter","blurDataURL","_jsx"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEA,MAAMA,KAAG,GAAG,IAAIC,UAAJ,CAAe;AACzBC,EAAAA,KAAK,EAAE;AACLC,IAAAA,SAAS,EAAEC,OAAO,CAACC,GAAR,CAAYC,iCAAAA;GAFA;AAIzBC,EAAAA,GAAG,EAAE;AACH;AACAC,IAAAA,SAAS,EAAE,KAAA;AAFR,GAAA;AAJoB,CAAf,CAAZ,CAAA;AAUA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACO,SAASC,WAAT,CAAqBC,GAArB,EAA0B;AAC/B,EAAA,IAAKA,GAAG,CAACC,QAAJ,CAAa,oBAAb,CAAL,EAA0C;IACxC,MAAMC,wBAAwB,GAAG,+HAAjC,CAAA;IACA,MAAMC,2BAA2B,GAAG,yHAApC,CAAA;AAEA,IAAA,MAAMC,mBAAmB,GAAGJ,GAAG,CAACK,KAAJ,CAAUH,wBAAV,CAA5B,CAAA;AACA,IAAA,MAAMI,sBAAsB,GAAGN,GAAG,CAACK,KAAJ,CAAUF,2BAAV,CAA/B,CAAA;;AAEA,IAAA,IAAKC,mBAAL,EAA2B;AACzB,MAAA,OAAOA,mBAAmB,CAACA,mBAAmB,CAACG,MAApB,GAA6B,CAA9B,CAA1B,CAAA;KADF,MAEO,IAAKD,sBAAL,EAA8B;AACnC,MAAA,OAAOA,sBAAsB,CAACA,sBAAsB,CAACC,MAAvB,GAAgC,CAAjC,CAA7B,CAAA;AACD,KAFM,MAEA;AACLC,MAAAA,OAAO,CAACC,IAAR,CAAc,CAAA,4CAAA,EAA8CT,GAAI,CAAhE,8CAAA,CAAA,CAAA,CAAA;AACD,KAAA;AACF,GAAA;;AACD,EAAA,OAAOA,GAAP,CAAA;AACD,CAAA;AAED;AACA;AACA;;AAEO,SAASU,oBAAT,CAA8B;EAAEV,GAAF;AAAOW,EAAAA,WAAAA;AAAP,CAA9B,EAAoD;AACzD,EAAA,MAAMC,QAAQ,GAAGtB,KAAG,CAACuB,KAAJ,CAAUb,GAAV,CACIc,CAAAA,MADJ,CACW,eADX,CAAA,CAEIC,QAFJ,CAEa,KAFb,EAGIC,MAHJ,CAGW,MAHX,CAAjB,CAAA;;EAKA,IAAKL,WAAW,KAAK,WAArB,EAAmC;IACjCC,QAAQ,CAACK,MAAT,CAAgB,aAAhB,CAAA,CAAA;AACD,GAAA;;AAED,EAAA,IAAKN,WAAW,CAACV,QAAZ,CAAqB,QAArB,CAAL,EAAsC;AACpC,IAAA,MAAMiB,KAAK,GAAGP,WAAW,CAACQ,KAAZ,CAAkB,GAAlB,CAAuBC,CAAAA,MAAvB,CAA8B,CAA9B,CAAA,CAAiCC,IAAjC,CAAsC,GAAtC,CAAd,CAAA;IACAT,QAAQ,CAACK,MAAT,CAAgB,aAAhB,CAAA,CAAA;AACAL,IAAAA,QAAQ,CAACK,MAAT,CAAiB,CAAA,iBAAA,EAAmBC,KAAM,CAA1C,CAAA,CAAA,CAAA;AACD,GAAA;;EAED,OAAON,QAAQ,CAACU,KAAT,EAAP,CAAA;AACD;;AC5DD,MAAMC,gBAAgB,GAAG,CAAE,MAAF,EAAU,MAAV,EAAkB,OAAlB,EAA2B,UAA3B,EAAuC,OAAvC,CAAzB,CAAA;AAEO,MAAMC,OAAK,GAAG,CAAC,MAAD,EAAS,SAAT,CAAd,CAAA;AAEA,SAASC,QAAT,CAAgB;EAAEb,QAAF;EAAYc,OAAZ;AAAqBC,EAAAA,UAAAA;AAArB,CAAA,GAAoC,EAApD,EAAwD;EAC7D,MAAM;IAAEC,KAAF;AAASC,IAAAA,MAAAA;AAAT,GAAA,GAAoBH,OAA1B,CAAA;EACA,MAAM;AAAEI,IAAAA,IAAI,GAAG,OAAT;AAAkBC,IAAAA,OAAAA;AAAlB,GAAA,GAA8BJ,UAApC,CAAA;AAEA,EAAA,IAAIK,oBAAoB,GAAI,CAAA,EAAA,EAAIF,IAAK,CAAA,GAAA,EAAKF,KAAM,CAAhD,CAAA,CAAA;;EAEA,IAAK,CAACG,OAAD,IAAYR,gBAAgB,CAACtB,QAAjB,CAA0B6B,IAA1B,CAAjB,EAAmD;AACjDC,IAAAA,OAAO,GAAG,MAAV,CAAA;AACD,GAAA;;EAED,IAAK,CAAC,CAAC,OAAD,CAAA,CAAU9B,QAAV,CAAmB6B,IAAnB,CAAN,EAAiC;AAC/BE,IAAAA,oBAAoB,GAAI,CAAA,EAAEA,oBAAqB,CAAA,GAAA,EAAKH,MAAO,CAA3D,CAAA,CAAA;AACD,GAAA;;AAED,EAAA,IAAKE,OAAL,EAAe;IACb,IAAKA,OAAO,KAAK,MAAZ,IAAsB,CAACR,gBAAgB,CAACtB,QAAjB,CAA0B6B,IAA1B,CAA5B,EAA8D;MAC5DtB,OAAO,CAACC,IAAR,CAAa,gGAAb,CAAA,CAAA;AACD,KAFD,MAEO;AACLuB,MAAAA,oBAAoB,GAAI,CAAA,EAAEA,oBAAqB,CAAA,GAAA,EAAKD,OAAQ,CAA5D,CAAA,CAAA;AACD,KAAA;AACF,GAAA;;EAEDnB,QAAQ,CAACE,MAAT,CAAgBkB,oBAAhB,CAAA,CAAA;AACD;;;;;;;;AC3BD,MAAMC,MAAM,GAAG,CACb,KADa,EAEb;AACEC,EAAAA,IAAI,EAAE,gBADR;AAEEjB,EAAAA,MAAM,EAAE,iBAAA;AAFV,CAFa,EAMb;AACEiB,EAAAA,IAAI,EAAE,WADR;AAEEjB,EAAAA,MAAM,EAAE,YAAA;AAFV,CANa,EAUb;AACEiB,EAAAA,IAAI,EAAE,cADR;AAEEjB,EAAAA,MAAM,EAAE,eAAA;AAFV,CAVa,EAcb;AACEiB,EAAAA,IAAI,EAAE,kBADR;AAEEjB,EAAAA,MAAM,EAAE,mBAAA;AAFV,CAda,EAkBb,YAlBa,EAmBb,MAnBa,EAoBb;AACEiB,EAAAA,IAAI,EAAE,WADR;AAEEjB,EAAAA,MAAM,EAAE,YAAA;AAFV,CApBa,EAwBb;AACEiB,EAAAA,IAAI,EAAE,YADR;AAEEjB,EAAAA,MAAM,EAAE,aAAA;AAFV,CAxBa,EA4Bb,YA5Ba,EA6Bb;AACEiB,EAAAA,IAAI,EAAE,eADR;AAEEjB,EAAAA,MAAM,EAAE,gBAAA;AAFV,CA7Ba,EAiCb,YAjCa,EAkCb,UAlCa,EAmCb,UAnCa,EAoCb,SApCa,EAqCb;AACEiB,EAAAA,IAAI,EAAE,WADR;AAEEjB,EAAAA,MAAM,EAAE,YAAA;AAFV,CArCa,EAyCb,OAzCa,EA0Cb;AACEiB,EAAAA,IAAI,EAAE,cADR;AAEEjB,EAAAA,MAAM,EAAE,eAAA;AAFV,CA1Ca,EA8Cb,WA9Ca,EA+Cb,SA/Ca,EAgDb,QAhDa,EAiDb;AACEiB,EAAAA,IAAI,EAAE,UADR;AAEEjB,EAAAA,MAAM,EAAE,WAAA;AAFV,CAjDa,EAqDb,SArDa,EAsDb,UAtDa,EAuDb;AACEiB,EAAAA,IAAI,EAAE,eADR;AAEEjB,EAAAA,MAAM,EAAE,gBAAA;AAFV,CAvDa,EA2Db;AACEiB,EAAAA,IAAI,EAAE,gBADR;AAEEjB,EAAAA,MAAM,EAAE,iBAAA;AAFV,CA3Da,EA+Db,QA/Da,EAgEb;AACEiB,EAAAA,IAAI,EAAE,cADR;AAEEjB,EAAAA,MAAM,EAAE,eAAA;AAFV,CAhEa,EAoEb,YApEa,EAqEb,OArEa,EAsEb,QAtEa,EAuEb,SAvEa,EAwEb,OAxEa,EAyEb;AACEiB,EAAAA,IAAI,EAAE,oBADR;AAEEjB,EAAAA,MAAM,EAAE,qBAAA;AAFV,CAzEa,EA6Eb,MA7Ea,EA8Eb;AACEiB,EAAAA,IAAI,EAAE,aADR;AAEEjB,EAAAA,MAAM,EAAE,cAAA;AAFV,CA9Ea,EAkFb,WAlFa,EAmFb,UAnFa,EAoFb,UApFa,CAAf,CAAA;AAuFO,MAAMO,OAAK,GAAGS,MAAM,CAACE,GAAP,CAAWC,KAAK,IAAIA,KAAK,CAACF,IAAN,IAAcE,KAAlC,CAAd,CAAA;AAEA,SAASX,QAAT,CAAgB;EAAEb,QAAF;AAAYe,EAAAA,UAAAA;AAAZ,CAAA,GAA2B,EAA3C,EAA+C;AACpDM,EAAAA,MAAM,CAACI,OAAP,CAAeC,GAAG,IAAI;AAEpB,IAAA,MAAMJ,IAAI,GAAGI,GAAG,CAACJ,IAAJ,IAAYI,GAAzB,CAAA;AACA,IAAA,MAAMrB,MAAM,GAAGqB,GAAG,CAACrB,MAAJ,IAAcqB,GAA7B,CAAA;;IAEA,IAAKJ,IAAI,KAAK,UAAT,IAAuBP,UAAU,CAACO,IAAD,CAAtC,EAA8C;MAC5C1B,OAAO,CAAC+B,GAAR,CAAY,kBAAZ,EAAgCZ,UAAU,CAACO,IAAD,CAA1C,CAAA,CAAA;AACD,KAAA;;AACD,IAAA,IAAKP,UAAU,CAACO,IAAD,CAAV,KAAqB,IAA1B,EAAiC;AAC/BtB,MAAAA,QAAQ,CAACK,MAAT,CAAiB,CAAA,EAAA,EAAIA,MAAO,CAA5B,CAAA,CAAA,CAAA;KADF,MAEO,IAAK,OAAOU,UAAU,CAACO,IAAD,CAAjB,KAA4B,QAAjC,EAA4C;MACjDtB,QAAQ,CAACK,MAAT,CAAiB,CAAIA,EAAAA,EAAAA,MAAO,IAAGU,UAAU,CAACO,IAAD,CAAO,CAAhD,CAAA,CAAA,CAAA;AACD,KAAA;GAZH,CAAA,CAAA;AAcD;;;;;;;;ACxGD;AAEO,MAAMM,OAAO,GAAG;AACrBC,EAAAA,WAAW,EAAE;AACXC,IAAAA,SAAS,EAAE,IAAA;GAFQ;AAIrBZ,EAAAA,IAAI,EAAE;AACJY,IAAAA,SAAS,EAAE,GAAA;GALQ;AAOrBX,EAAAA,OAAO,EAAE;AACPW,IAAAA,SAAS,EAAE,GAAA;GARQ;AAUrBb,EAAAA,MAAM,EAAE;AACNa,IAAAA,SAAS,EAAE,GAAA;GAXQ;AAarBd,EAAAA,KAAK,EAAE;AACLc,IAAAA,SAAS,EAAE,GAAA;AADN,GAAA;AAbc,EAAhB;AAkBA,MAAMC,QAAQ,GAAG;AACtBC,EAAAA,KAAK,EAAE;AACLF,IAAAA,SAAS,EAAE,GAAA;GAFS;AAItBX,EAAAA,OAAO,EAAE;AACPW,IAAAA,SAAS,EAAE,GAAA;GALS;AAOtBG,EAAAA,CAAC,EAAE;AACDH,IAAAA,SAAS,EAAE,GAAA;GARS;AAUtBI,EAAAA,CAAC,EAAE;AACDJ,IAAAA,SAAS,EAAE,GAAA;AADV,GAAA;AAVmB,EAAjB;AAeA,MAAMK,IAAI,GAAG;AAClB7B,EAAAA,KAAK,EAAE;AACLwB,IAAAA,SAAS,EAAE,IADN;AAELM,IAAAA,QAAQ,EAAE,SAAA;GAHM;AAKlBC,EAAAA,UAAU,EAAE;AACVP,IAAAA,SAAS,EAAE,KAAA;GANK;AAQlBQ,EAAAA,QAAQ,EAAE;AACRR,IAAAA,SAAS,EAAE,KAAA;GATK;AAWlBS,EAAAA,UAAU,EAAE;AACVT,IAAAA,SAAS,EAAE,KAAA;GAZK;AAclBU,EAAAA,aAAa,EAAE;AACbV,IAAAA,SAAS,EAAE,gBAAA;GAfK;AAiBlBW,EAAAA,cAAc,EAAE;AACdX,IAAAA,SAAS,EAAE,KAAA;AADG,GAAA;AAjBE;;;AC7Bb,MAAMlB,OAAK,GAAG,CAAC,UAAD,CAAd,CAAA;AAEA,SAASC,QAAT,CAAgB;EAAEb,QAAF;EAAYc,OAAZ;AAAqBC,EAAAA,UAAAA;AAArB,CAAA,GAAoC,EAApD,EAAwD;EAC7D,MAAM;AAAE2B,IAAAA,QAAQ,GAAG,EAAA;AAAb,GAAA,GAAoB3B,UAA1B,CAAA;EAEA,MAAM4B,IAAI,GAAG,SAAb,CAAA;EACA,MAAMC,aAAa,GAAG,GAAtB,CAAA;EAEAF,QAAQ,CAACjB,OAAT,CAAiB,IAA0E,IAAA;IAAA,IAAzE;MAAEoB,QAAF;gBAAYd,UAAZ;YAAsBI,MAAtB;MAA4BW,OAAO,EAAEC,YAAY,GAAG,EAAA;KAAqB,GAAA,IAAA;AAAA,QAAdjC,OAAc,GAAA,6BAAA,CAAA,IAAA,EAAAkC,WAAA,CAAA,CAAA;;AACzF,IAAA,MAAMC,WAAW,GAAG,OAAOJ,QAAP,KAAoB,QAAxC,CAAA;AACA,IAAA,MAAMK,OAAO,GAAG,OAAOf,MAAP,KAAgB,QAAhC,CAAA;AACA,IAAA,MAAMgB,WAAW,GAAG,OAAOpB,UAAP,KAAoB,QAAxC,CAAA;;AAEA,IAAA,IAAK,CAACkB,WAAD,IAAgB,CAACC,OAAtB,EAAgC;AAC9BtD,MAAAA,OAAO,CAACC,IAAR,CAAc,CAAA,GAAA,EAAK8C,IAAK,CAAxB,6BAAA,CAAA,CAAA,CAAA;AACA,MAAA,OAAA;AACD,KARwF;AAWzF;;;AAEA,IAAA,IAAIS,mBAAJ,CAAA;;AAEA,IAAA,IAAKF,OAAL,EAAe;MACbE,mBAAmB,GAAI,CAAER,EAAAA,aAAc,CAAvC,KAAA,CAAA,CAAA;AACD,KAFD,MAEO;AACLQ,MAAAA,mBAAmB,GAAI,CAAA,EAAER,aAAc,CAAA,CAAA,EAAGC,QAAQ,CAACQ,OAAT,CAAiB,KAAjB,EAAwB,GAAxB,CAA6B,CAAvE,CAAA,CAAA;AACD,KAnBwF;AAsBzF;;;IAEA,MAAMzB,SAAO,GAAG,EAAhB,CAAA;AACA,IAAA,MAAM0B,OAAO,GAAG,EAAhB,CAzByF;;IA6BzFC,MAAM,CAACC,IAAP,CAAY1C,OAAZ,EAAqBW,OAArB,CAA6BC,GAAG,IAAI;AAClC,MAAA,IAAK,CAAC+B,OAAiB,CAAC/B,GAAD,CAAvB,EAA+B,OAAA;MAC/B,MAAM;AAAEI,QAAAA,SAAAA;OAAc2B,GAAAA,OAAiB,CAAC/B,GAAD,CAAvC,CAAA;MACAE,SAAO,CAAC8B,IAAR,CAAc,CAAE5B,EAAAA,SAAU,IAAGhB,OAAO,CAACY,GAAD,CAAM,CAA1C,CAAA,CAAA,CAAA;AACD,KAJD,EA7ByF;;AAqCzFqB,IAAAA,YAAY,CAACtB,OAAb,CAAqBpB,MAAM,IAAI;MAC7BkD,MAAM,CAACC,IAAP,CAAYnD,MAAZ,EAAoBoB,OAApB,CAA4BC,GAAG,IAAI;AACjC,QAAA,IAAK,CAAC+B,OAAiB,CAAC/B,GAAD,CAAvB,EAA+B,OAAA;QAC/B,MAAM;AAAEI,UAAAA,SAAAA;SAAc2B,GAAAA,OAAiB,CAAC/B,GAAD,CAAvC,CAAA;QACAE,SAAO,CAAC8B,IAAR,CAAc,CAAE5B,EAAAA,SAAU,IAAGzB,MAAM,CAACqB,GAAD,CAAM,CAAzC,CAAA,CAAA,CAAA;OAHF,CAAA,CAAA;AAKD,KAND,EArCyF;;AA+CzF,IAAA,IAAKwB,OAAL,EAAe;MACb,MAAMS,mBAAmB,GAAG,EAA5B,CAAA;MAEAJ,MAAM,CAACC,IAAP,CAAYrB,MAAZ,EAAkBV,OAAlB,CAA0BC,GAAG,IAAI;AAC/B,QAAA,IAAK,CAACkC,IAAc,CAAClC,GAAD,CAApB,EAA4B,OAAA;QAE5B,MAAM;UAAEI,SAAF;AAAaM,UAAAA,QAAAA;SAAawB,GAAAA,IAAc,CAAClC,GAAD,CAA9C,CAAA;;QAEA,IAAKU,QAAQ,KAAK,SAAlB,EAA8B;UAC5BR,SAAO,CAAC8B,IAAR,CAAc,CAAE5B,EAAAA,SAAU,IAAGK,MAAI,CAACT,GAAD,CAAM,CAAvC,CAAA,CAAA,CAAA;AACD,SAFD,MAEO;AACLiC,UAAAA,mBAAmB,CAACD,IAApB,CAAyBvB,MAAI,CAACT,GAAD,CAA7B,CAAA,CAAA;AACD,SAAA;OATH,CAAA,CAAA;AAYA0B,MAAAA,mBAAmB,GAAI,CAAA,EAAEA,mBAAoB,CAAA,CAAA,EAAGO,mBAAmB,CAAClD,IAApB,CAAyB,GAAzB,CAA8B,CAAA,CAAA,EAAG0B,MAAI,CAACA,IAAK,CAA3F,CAAA,CAAA;AACD,KA/DwF;;;AAmEzF,IAAA,IAAKgB,WAAL,EAAmB;MACjBI,MAAM,CAACC,IAAP,CAAYzB,UAAZ,EAAsBN,OAAtB,CAA8BC,GAAG,IAAI;AACnC,QAAA,IAAK,CAACmC,QAAkB,CAACnC,GAAD,CAAxB,EAAgC,OAAA;QAEhC,MAAM;AAAEI,UAAAA,SAAAA;SAAc+B,GAAAA,QAAkB,CAACnC,GAAD,CAAxC,CAAA;QAEA4B,OAAO,CAACI,IAAR,CAAc,CAAE5B,EAAAA,SAAU,IAAGC,UAAQ,CAACL,GAAD,CAAM,CAA3C,CAAA,CAAA,CAAA;OALF,CAAA,CAAA;AAOD,KA3EwF;;;AA+EzF0B,IAAAA,mBAAmB,GAAI,CAAA,EAAEA,mBAAoB,CAAA,CAAA,EAAGxB,SAAO,CAACnB,IAAR,CAAa,GAAb,CAAkB,CAAlE,CAAA,CA/EyF;;IAmFzF2C,mBAAmB,GAAI,CAAEA,EAAAA,mBAAoB,CAA7C,eAAA,CAAA,CAAA;;AAEA,IAAA,IAAKE,OAAO,CAAC3D,MAAR,GAAiB,CAAtB,EAA0B;MACxByD,mBAAmB,GAAI,CAAEA,EAAAA,mBAAoB,CAAGE,CAAAA,EAAAA,OAAO,CAAC7C,IAAR,CAAa,GAAb,CAAkB,CAAlE,CAAA,CAAA;AACD,KAvFwF;;;IA2FzFT,QAAQ,CAAC8D,iBAAT,CAA2BV,mBAA3B,CAAA,CAAA;GA3FF,CAAA,CAAA;AA6FD;;;;;;;;AC3GM,MAAMxC,OAAK,GAAG,CAAC,oBAAD,CAAd,CAAA;AAEA,SAASC,QAAT,CAAgB;EAAEb,QAAF;AAAYe,EAAAA,UAAAA;AAAZ,CAAA,GAA2B,EAA3C,EAA+C;EACpD,MAAM;AAAEgD,IAAAA,kBAAkB,GAAG,EAAA;AAAvB,GAAA,GAA8BhD,UAApC,CAAA;AAEAgD,EAAAA,kBAAkB,CAACtC,OAAnB,CAA2BuC,cAAc,IAAI;IAC3ChE,QAAQ,CAAC8D,iBAAT,CAA2BE,cAA3B,CAAA,CAAA;GADF,CAAA,CAAA;AAGD;;;;;;;;ACRM,MAAMpD,OAAK,GAAG,CAAC,kBAAD,CAAd,CAAA;AAEA,SAASC,QAAT,CAAgB;EAAEb,QAAF;EAAYc,OAAZ;AAAqBC,EAAAA,UAAAA;AAArB,CAAA,GAAoC,EAApD,EAAwD;EAC7D,MAAM;AAAEkD,IAAAA,gBAAgB,GAAG,KAAA;AAArB,GAAA,GAA+BlD,UAArC,CAAA;;AACA,EAAA,IAAKkD,gBAAL,EAAwB;IACtBjE,QAAQ,CAACK,MAAT,CAAgB,sBAAhB,CAAA,CAAA;AACD,GAAA;AACF;;;;;;;;;ACDM,MAAMO,OAAK,GAAG,CAAC,WAAD,CAAd,CAAA;AAEA,SAASC,QAAT,CAAgB;EAAEb,QAAF;EAAYc,OAAZ;AAAqBC,EAAAA,UAAAA;AAArB,CAAA,GAAoC,EAApD,EAAwD;EAC7D,MAAM;AAAEmD,IAAAA,SAAS,GAAG,EAAA;AAAd,GAAA,GAAqBnD,UAA3B,CAAA;EAGA,MAAM6B,aAAa,GAAG,GAAtB,CAAA;EAEAsB,SAAS,CAACzC,OAAV,CAAkB,IAAgF,IAAA;IAAA,IAA/E;MAAEoB,QAAF;MAAYF,IAAZ;gBAAkBZ,UAAlB;MAAkCe,OAAO,EAAEC,YAAY,GAAG,EAAA;KAAqB,GAAA,IAAA;AAAA,QAAdjC,OAAc,GAAA,6BAAA,CAAA,IAAA,EAAA,SAAA,CAAA,CAAA;;AAChG,IAAA,MAAMmC,WAAW,GAAG,OAAOJ,QAAP,KAAoB,QAAxC,CAAA;AACA,IAAA,MAAMM,WAAW,GAAG,OAAOpB,UAAP,KAAoB,QAAxC,CAAA;;IAEA,IAAK,CAACkB,WAAN,EAAoB;AAClBrD,MAAAA,OAAO,CAACC,IAAR,CAAc,CAAA,GAAA,EAAK8C,IAAK,CAAxB,uBAAA,CAAA,CAAA,CAAA;AACA,MAAA,OAAA;AACD,KAP+F;AAUhG;;;AAEA,IAAA,IAAIS,mBAAmB,GAAI,CAAER,EAAAA,aAAc,IAAGC,QAAQ,CAACQ,OAAT,CAAiB,KAAjB,EAAwB,GAAxB,CAA6B,CAAA,CAA3E,CAZgG;AAehG;;IAEA,MAAMzB,SAAO,GAAG,EAAhB,CAAA;AACA,IAAA,MAAM0B,OAAO,GAAG,EAAhB,CAlBgG;;IAsBhGC,MAAM,CAACC,IAAP,CAAY1C,OAAZ,EAAqBW,OAArB,CAA6BC,GAAG,IAAI;AAClC,MAAA,IAAK,CAAC+B,OAAiB,CAAC/B,GAAD,CAAvB,EAA+B,OAAA;MAC/B,MAAM;AAAEI,QAAAA,SAAAA;OAAc2B,GAAAA,OAAiB,CAAC/B,GAAD,CAAvC,CAAA;MACAE,SAAO,CAAC8B,IAAR,CAAc,CAAE5B,EAAAA,SAAU,IAAGhB,OAAO,CAACY,GAAD,CAAM,CAA1C,CAAA,CAAA,CAAA;AACD,KAJD,EAtBgG;;AA8BhGqB,IAAAA,YAAY,CAACtB,OAAb,CAAqBpB,MAAM,IAAI;MAC7BkD,MAAM,CAACC,IAAP,CAAYnD,MAAZ,EAAoBoB,OAApB,CAA4BC,GAAG,IAAI;AACjC,QAAA,IAAK,CAAC+B,OAAiB,CAAC/B,GAAD,CAAvB,EAA+B,OAAA;QAC/B,MAAM;AAAEI,UAAAA,SAAAA;SAAc2B,GAAAA,OAAiB,CAAC/B,GAAD,CAAvC,CAAA;QACAE,SAAO,CAAC8B,IAAR,CAAc,CAAE5B,EAAAA,SAAU,IAAGzB,MAAM,CAACqB,GAAD,CAAM,CAAzC,CAAA,CAAA,CAAA;OAHF,CAAA,CAAA;AAKD,KAND,EA9BgG;;AAwChG,IAAA,IAAKyB,WAAL,EAAmB;MACjBI,MAAM,CAACC,IAAP,CAAYzB,UAAZ,EAAsBN,OAAtB,CAA8BC,GAAG,IAAI;AACnC,QAAA,IAAK,CAACmC,QAAkB,CAACnC,GAAD,CAAxB,EAAgC,OAAA;QAEhC,MAAM;AAAEI,UAAAA,SAAAA;SAAc+B,GAAAA,QAAkB,CAACnC,GAAD,CAAxC,CAAA;QAEA4B,OAAO,CAACI,IAAR,CAAc,CAAE5B,EAAAA,SAAU,IAAGC,UAAQ,CAACL,GAAD,CAAM,CAA3C,CAAA,CAAA,CAAA;OALF,CAAA,CAAA;AAOD,KAhD+F;;;AAoDhG0B,IAAAA,mBAAmB,GAAI,CAAA,EAAEA,mBAAoB,CAAA,CAAA,EAAGxB,SAAO,CAACnB,IAAR,CAAa,GAAb,CAAkB,CAAlE,CAAA,CApDgG;;IAwDhG2C,mBAAmB,GAAI,CAAEA,EAAAA,mBAAoB,CAA7C,eAAA,CAAA,CAAA;;AAEA,IAAA,IAAKE,OAAO,CAAC3D,MAAR,GAAiB,CAAtB,EAA0B;MACxByD,mBAAmB,GAAI,CAAEA,EAAAA,mBAAoB,CAAGE,CAAAA,EAAAA,OAAO,CAAC7C,IAAR,CAAa,GAAb,CAAkB,CAAlE,CAAA,CAAA;AACD,KA5D+F;;;IAgEhGT,QAAQ,CAAC8D,iBAAT,CAA2BV,mBAA3B,CAAA,CAAA;GAhEF,CAAA,CAAA;AAkED;;;;;;;;AChFM,MAAMxC,KAAK,GAAG,CAAC,SAAD,CAAd,CAAA;AAEA,SAASC,MAAT,CAAgB;EAAEb,QAAF;AAAYe,EAAAA,UAAAA;AAAZ,CAAA,GAA2B,EAA3C,EAA+C;EACpD,MAAM;AAAEoD,IAAAA,OAAO,GAAG,KAAA;AAAZ,GAAA,GAAsBpD,UAA5B,CAAA;EACA,MAAMD,OAAO,GAAG,EAAhB,CAAA;;EAEA,IAAKqD,OAAO,KAAK,IAAjB,EAAwB;IACtBnE,QAAQ,CAACK,MAAT,CAAgB,WAAhB,CAAA,CAAA;AACD,GAFD,MAEO,IAAK,OAAO8D,OAAP,KAAmB,QAAxB,EAAmC;IACxC,IAAKA,OAAO,KAAK,MAAjB,EAA0B;MACxBnE,QAAQ,CAACK,MAAT,CAAgB,WAAhB,CAAA,CAAA;MACAL,QAAQ,CAACK,MAAT,CAAgB,QAAhB,CAAA,CAAA;AACD,KAHD,MAGO;AACLL,MAAAA,QAAQ,CAACK,MAAT,CAAiB,CAAA,UAAA,EAAY8D,OAAQ,CAArC,CAAA,CAAA,CAAA;AACD,KAAA;AACF,GAPM,MAOA,IAAK,OAAOA,OAAP,KAAmB,QAAxB,EAAmC;IACxC,IAAIC,aAAa,GAAG,WAApB,CAAA;;AAEA,IAAA,IAAK,OAAOD,OAAO,CAACrD,OAAf,KAA2B,QAAhC,EAA2C;AACzCsD,MAAAA,aAAa,GAAI,CAAEA,EAAAA,aAAc,GAAED,OAAO,CAACrD,OAAQ,CAAnD,CAAA,CAAA;AACD,KAAA;;IAEDd,QAAQ,CAACK,MAAT,CAAgB+D,aAAhB,CAAA,CAAA;AAEA,IAAA,IAAIC,UAAJ,CAAA;;AAEA,IAAA,IAAKF,OAAO,CAACG,IAAR,KAAiB,IAAtB,EAA6B;AAC3BD,MAAAA,UAAU,GAAG,QAAb,CAAA;KADF,MAEO,IAAK,OAAOF,OAAO,CAACG,IAAf,KAAwB,QAA7B,EAAwC;AAC7CD,MAAAA,UAAU,GAAI,CAAA,MAAA,EAAQF,OAAO,CAACG,IAAK,CAAnC,CAAA,CAAA;AACD,KAAA;;AAED,IAAA,IAAKD,UAAL,EAAkB;MAChBrE,QAAQ,CAACK,MAAT,CAAgBgE,UAAhB,CAAA,CAAA;AACD,KAAA;AACF,GAAA;;EAED,IAAKF,OAAO,KAAK,KAAjB,EAAyB;IACvBrD,OAAO,CAACV,MAAR,GAAiB,KAAjB,CAAA;AACD,GAAA;;EAED,OAAO;AACLU,IAAAA,OAAAA;GADF,CAAA;AAGD;;;;;;;;AC3BD,IAAIpC,GAAJ,CAAA;AAEO,MAAM6F,qBAAqB,GAAG;AAEnCC,sBAFmC,EAInCC,cAJmC,EAKnCC,aALmC,EAMnCC,cANmC,EAOnCC,eAPmC,EAQnCC,aARmC;AAWnC;AAEAC,wBAbmC,CAA9B,CAAA;AAgBA,SAASC,gBAAT,CAA0BC,cAA1B,EAA0CjE,UAA1C,EAAsDkE,SAAS,GAAG,EAAlE,EAAsE;EAC3E,IAAK,CAACvG,GAAN,EAAY;IACVA,GAAG,GAAG,IAAIC,UAAJ,CAAA,QAAA,CAAA;AACJC,MAAAA,KAAK,EAAE;AACLC,QAAAA,SAAS,EAAEC,OAAO,CAACC,GAAR,CAAYC,iCAAAA;OAFrB;AAIJC,MAAAA,GAAG,EAAE;AACH;AACAC,QAAAA,SAAS,EAAE,KAAA;AAFR,OAAA;AAJD,KAAA,EAQD+F,SARC,CAAN,CAAA,CAAA;AAUD,GAAA;;AAED,EAAA,MAAMnE,OAAO,GAAA,QAAA,CAAA;AACXV,IAAAA,MAAM,EAAE,MADG;AAEX8E,IAAAA,OAAO,EAAE,MAAA;AAFE,GAAA,EAGRF,cAHQ,CAAb,CAAA;;AAKA,EAAA,MAAMnC,QAAQ,GAAG1D,WAAW,CAAC2B,OAAO,CAAC1B,GAAT,CAA5B,CAAA;AAEA,EAAA,MAAMY,QAAQ,GAAGtB,GAAG,CAACuB,KAAJ,CAAU4C,QAAV,CAAjB,CAAA;EAEA0B,qBAAqB,CAAC9C,OAAtB,CAA8B,CAAC;AAAEZ,IAAAA,MAAAA;AAAF,GAAD,KAAgB;IAC5C,MAAM;AAAEC,MAAAA,OAAO,EAAEqE,aAAAA;AAAX,KAAA,GAA6BtE,MAAM,CAAC;MACxCb,QADwC;MAExCc,OAFwC;AAGxCC,MAAAA,UAAAA;KAHuC,CAAN,IAI7B,EAJN,CAAA;;AAMA,IAAA,IAAKoE,aAAL,IAAA,IAAA,IAAKA,aAAa,CAAE/E,MAApB,EAA6B;AAC3BU,MAAAA,OAAO,CAACV,MAAR,GAAiB+E,aAAa,CAAC/E,MAA/B,CAAA;AACD,KAAA;GATH,CAAA,CAAA;AAYA,EAAA,OAAOJ,QAAQ,CACNI,MADF,CACSU,OAAO,CAACV,MADjB,CAAA,CAEED,QAFF,CAEY,KAAIW,OAAO,CAACoE,OAAQ,CAFhC,CAAA,CAAA,CAGExE,KAHF,EAAP,CAAA;AAID;;ACrEK0E,MAAAA,QAAQ,GAAGxE,KAAK,IAAI;EAExB,MAAMyE,WAAW,GAAG,EAApB,CAAA;EAEAd,qBAAqB,CAAC9C,OAAtB,CAA8B,CAAC;IAAEb,KAAK,EAALA,MAAK,GAAG,EAAA;AAAV,GAAD,KAAoB;AAChDA,IAAAA,MAAK,CAACa,OAAN,CAAcH,IAAI,IAAI;AACpB,MAAA,IAAK+D,WAAW,CAAChG,QAAZ,CAAqBiC,IAArB,CAAL,EAAkC;AAChC,QAAA,MAAM,IAAIgE,KAAJ,CAAW,CAAShE,OAAAA,EAAAA,IAAK,kBAAzB,CAAN,CAAA;AACD,OAAA;;MACD+D,WAAW,CAAC3B,IAAZ,CAAiBpC,IAAjB,CAAA,CAAA;KAJF,CAAA,CAAA;AAMD,GAPD,EAJwB;;EAexB,MAAMiE,UAAU,GAAG,EAAnB,CAAA;AAEAhC,EAAAA,MAAM,CAACC,IAAP,CAAY5C,KAAZ,CACG4E,CAAAA,MADH,CACU9D,GAAG,IAAI,CAAC2D,WAAW,CAAChG,QAAZ,CAAqBqC,GAArB,CADlB,CAAA,CAEGD,OAFH,CAEWC,GAAG,IAAI6D,UAAU,CAAC7D,GAAD,CAAV,GAAkBd,KAAK,CAACc,GAAD,CAFzC,EAjBwB;;EAuBxB,MAAMX,UAAU,GAAG,EAAnB,CAAA;AAEAsE,EAAAA,WAAW,CAAC5D,OAAZ,CAAoBC,GAAG,IAAI;AACzB,IAAA,IAAKd,KAAK,CAACc,GAAD,CAAV,EAAkB;AAChBX,MAAAA,UAAU,CAACW,GAAD,CAAV,GAAkBd,KAAK,CAACc,GAAD,CAAvB,CAAA;AACD,KAAA;AACF,GAJD,EAzBwB;AAgCxB;AACA;AACA;AACA;AACA;AACA;AACA;;EAEA,IAAK6D,UAAU,CAACxF,WAAhB,EAA8B;AAC5B,IAAA,MAAM8C,QAAQ,GAAG1D,WAAW,CAACyB,KAAK,CAACxB,GAAP,CAA5B,CAAA;AAEAmG,IAAAA,UAAU,CAACE,WAAX,GAAyB3F,oBAAoB,CAAC;AAC5CV,MAAAA,GAAG,EAAEyD,QADuC;MAE5C9C,WAAW,EAAEa,KAAK,CAACb,WAAAA;AAFyB,KAAD,CAA7C,CAAA;;AAKA,IAAA,IAAKwF,UAAU,CAACxF,WAAX,KAA2B,MAAhC,EAAyC;MACvCwF,UAAU,CAACxF,WAAX,GAAyB,MAAzB,CAAA;AACD,KAAA;AACF,GAAA;;EAED,oBACE2F,GAAA,CAAC,KAAD,EAAA,QAAA,CAAA,EAAA,EACMH,UADN,EAAA;AAEE,IAAA,MAAM,EAAGzE,OAAD,IAAaiE,gBAAgB,cAAMQ,UAAN,EAAA;AAAkBzE,MAAAA,OAAAA;AAAlB,KAAA,CAAA,EAA6BC,UAA7B,CAAA;GAHzC,CAAA,CAAA,CAAA;AAMD;;;;"}
@@ -47,6 +47,33 @@ var cld$1 = new Cloudinary({
47
47
  analytics: false
48
48
  }
49
49
  });
50
+ /**
51
+ * Retrieves the public id of a cloudiary image url. If no url is recognized it returns the parameter it self.
52
+ * If it's recognized that is a url and it's not possible to get the public id, it warns the user.
53
+ *
54
+ * @param {string} src The cloudiary url or public id.
55
+ *
56
+ * @return {string} The images public id
57
+ */
58
+
59
+ function getPublicId(src) {
60
+ if (src.includes('res.cloudinary.com')) {
61
+ var regexWithTransformations = /(https?)\:\/\/(res.cloudinary.com)\/([^\/]+)\/(image|video|raw)\/(upload|authenticated)\/(.*)\/(v[0-9]+)\/(.+)(?:\.[a-z]{3})?/;
62
+ var regexWithoutTransformations = /(https?)\:\/\/(res.cloudinary.com)\/([^\/]+)\/(image|video|raw)\/(upload|authenticated)\/(v[0-9]+)\/(.+)(?:\.[a-z]{3})?/;
63
+ var withTransformations = src.match(regexWithTransformations);
64
+ var withoutTransformations = src.match(regexWithoutTransformations);
65
+
66
+ if (withTransformations) {
67
+ return withTransformations[withTransformations.length - 1];
68
+ } else if (withoutTransformations) {
69
+ return withoutTransformations[withoutTransformations.length - 1];
70
+ } else {
71
+ console.warn("Not possible to retrieve the publicUrl from " + src + ", make sure it's a valid cloudinary image url.");
72
+ }
73
+ }
74
+
75
+ return src;
76
+ }
50
77
  /**
51
78
  * createPlaceholderUrl
52
79
  */
@@ -512,26 +539,35 @@ var zoompanPlugin = {
512
539
  plugin: plugin
513
540
  };
514
541
 
515
- var cld = new Cloudinary({
516
- cloud: {
517
- cloudName: process.env.NEXT_PUBLIC_CLOUDINARY_CLOUD_NAME
518
- },
519
- url: {
520
- // Used to avoid issues with SSR particularly for the blurred placeholder
521
- analytics: false
522
- }
523
- });
542
+ var cld;
524
543
  var transformationPlugins = [// Background Removal must always come first
525
544
  removeBackgroundPlugin, croppingPlugin, effectsPlugin, overlaysPlugin, underlaysPlugin, zoompanPlugin, // Raw transformations needs to be last simply to make sure
526
545
  // it's always expected to applied the same way
527
546
  rawTransformationsPlugin];
528
- function cloudinaryLoader(defaultOptions, cldOptions) {
547
+ function cloudinaryLoader(defaultOptions, cldOptions, cldConfig) {
548
+ if (cldConfig === void 0) {
549
+ cldConfig = {};
550
+ }
551
+
552
+ if (!cld) {
553
+ cld = new Cloudinary(_extends({
554
+ cloud: {
555
+ cloudName: process.env.NEXT_PUBLIC_CLOUDINARY_CLOUD_NAME
556
+ },
557
+ url: {
558
+ // Used to avoid issues with SSR particularly for the blurred placeholder
559
+ analytics: false
560
+ }
561
+ }, cldConfig));
562
+ }
563
+
529
564
  var options = _extends({
530
565
  format: 'auto',
531
566
  quality: 'auto'
532
567
  }, defaultOptions);
533
568
 
534
- var cldImage = cld.image(options.src);
569
+ var publicId = getPublicId(options.src);
570
+ var cldImage = cld.image(publicId);
535
571
  transformationPlugins.forEach(function (_ref) {
536
572
  var plugin = _ref.plugin;
537
573
 
@@ -585,8 +621,9 @@ var CldImage = function CldImage(props) {
585
621
  // https://nextjs.org/docs/api-reference/next/image#blurdataurl
586
622
 
587
623
  if (imageProps.placeholder) {
624
+ var publicId = getPublicId(props.src);
588
625
  imageProps.blurDataURL = createPlaceholderUrl({
589
- src: props.src,
626
+ src: publicId,
590
627
  placeholder: props.placeholder
591
628
  });
592
629
 
@@ -1 +1 @@
1
- {"version":3,"file":"next-cloudinary.module.js","sources":["../src/lib/cloudinary.js","../src/plugins/cropping.js","../src/plugins/effects.js","../src/constants/qualifiers.js","../src/plugins/overlays.js","../src/plugins/raw-transformations.js","../src/plugins/remove-background.js","../src/plugins/underlays.js","../src/plugins/zoompan.js","../src/loaders/cloudinary-loader.js","../src/components/CldImage/CldImage.js"],"sourcesContent":["import { Cloudinary } from '@cloudinary/url-gen';\n\nconst cld = new Cloudinary({\n cloud: {\n cloudName: process.env.NEXT_PUBLIC_CLOUDINARY_CLOUD_NAME\n },\n url: {\n // Used to avoid issues with SSR particularly for the blurred placeholder\n analytics: false\n }\n});\n\n/**\n * createPlaceholderUrl\n */\n\nexport function createPlaceholderUrl({ src, placeholder }) {\n const cldImage = cld.image(src)\n .resize('c_limit,w_100')\n .delivery('q_1')\n .format('auto');\n\n if ( placeholder === 'grayscale' ) {\n cldImage.effect('e_grayscale');\n }\n\n if ( placeholder.includes('color:') ) {\n const color = placeholder.split(':').splice(1).join(':')\n cldImage.effect('e_grayscale');\n cldImage.effect(`e_colorize:60,co_${color}`);\n }\n\n return cldImage.toURL();\n}","const cropsGravityAuto = [ 'crop', 'fill', 'lfill', 'fill_pad', 'thumb' ];\n\nexport const props = ['crop', 'gravity'];\n\nexport function plugin({ cldImage, options, cldOptions } = {}) {\n const { width, height } = options;\n const { crop = 'limit', gravity } = cldOptions;\n\n let transformationString = `c_${crop},w_${width}`;\n\n if ( !gravity && cropsGravityAuto.includes(crop) ) {\n gravity = 'auto';\n }\n\n if ( !['limit'].includes(crop) ) {\n transformationString = `${transformationString},h_${height}`;\n }\n\n if ( gravity ) {\n if ( gravity === 'auto' && !cropsGravityAuto.includes(crop) ) {\n console.warn('Auto gravity can only be used with crop, fill, lfill, fill_pad or thumb. Not applying gravity.');\n } else {\n transformationString = `${transformationString},g_${gravity}`;\n }\n }\n\n cldImage.resize(transformationString);\n}","const params = [\n 'art',\n {\n prop: 'autoBrightness',\n effect: 'auto_brightness',\n },\n {\n prop: 'autoColor',\n effect: 'auto_color',\n },\n {\n prop: 'autoContrast',\n effect: 'auto_contrast',\n },\n {\n prop: 'assistColorblind',\n effect: 'assist_colorblind',\n },\n 'blackwhite',\n 'blur',\n {\n prop: 'blurFaces',\n effect: 'blur_faces',\n },\n {\n prop: 'blurRegion',\n effect: 'blur_region',\n },\n 'brightness',\n {\n prop: 'brightnessHSB',\n effect: 'brightness_hsb',\n },\n 'cartoonify',\n 'colorize',\n 'contrast',\n 'distort',\n {\n prop: 'fillLight',\n effect: 'fill_light',\n },\n 'gamma',\n {\n prop: 'gradientFade',\n effect: 'gradient_fade',\n },\n 'grayscale',\n 'improve',\n 'negate',\n {\n prop: 'oilPaint',\n effect: 'oil_paint',\n },\n 'outline',\n 'pixelate',\n {\n prop: 'pixelateFaces',\n effect: 'pixelate_faces',\n },\n {\n prop: 'pixelateRegion',\n effect: 'pixelate_region',\n },\n 'redeye',\n {\n prop: 'replaceColor',\n effect: 'replace_color',\n },\n 'saturation',\n 'sepia',\n 'shadow',\n 'sharpen',\n 'shear',\n {\n prop: 'simulateColorblind',\n effect: 'simulate_colorblind',\n },\n 'tint',\n {\n prop: 'unsharpMask',\n effect: 'unsharp_mask',\n },\n 'vectorize',\n 'vibrance',\n 'vignette',\n];\n\nexport const props = params.map(param => param.prop || param);\n\nexport function plugin({ cldImage, cldOptions } = {}) {\n params.forEach(key => {\n\n const prop = key.prop || key;\n const effect = key.effect || key;\n\n if ( prop === 'oilPaint' && cldOptions[prop]) {\n console.log('cldOptions[prop]', cldOptions[prop])\n }\n if ( cldOptions[prop] === true ) {\n cldImage.effect(`e_${effect}`);\n } else if ( typeof cldOptions[prop] === 'string' ) {\n cldImage.effect(`e_${effect}:${cldOptions[prop]}`);\n }\n });\n}","// aspectRatio\n\nexport const primary = {\n aspectRatio: {\n qualifier: 'ar'\n },\n crop: {\n qualifier: 'c'\n },\n gravity: {\n qualifier: 'g'\n },\n height: {\n qualifier: 'h'\n },\n width: {\n qualifier: 'w'\n },\n};\n\nexport const position = {\n angle: {\n qualifier: 'a'\n },\n gravity: {\n qualifier: 'g'\n },\n x: {\n qualifier: 'x'\n },\n y: {\n qualifier: 'y'\n },\n}\n\nexport const text = {\n color: {\n qualifier: 'co',\n location: 'primary'\n },\n fontFamily: {\n qualifier: false\n },\n fontSize: {\n qualifier: false\n },\n fontWeight: {\n qualifier: false\n },\n letterSpacing: {\n qualifier: 'letter_spacing'\n },\n textDecoration: {\n qualifier: false\n }\n}","import {\n primary as qualifiersPrimary,\n text as qualifiersText,\n position as qualifiersPosition\n} from '../constants/qualifiers';\n\nexport const props = ['overlays'];\n\nexport function plugin({ cldImage, options, cldOptions } = {}) {\n const { overlays = [] } = cldOptions;\n\n const type = 'overlay';\n const typeQualifier = 'l';\n\n overlays.forEach(({ publicId, position, text, effects: layerEffects = [], ...options }) => {\n const hasPublicId = typeof publicId === 'string';\n const hasText = typeof text === 'object';\n const hasPosition = typeof position === 'object';\n\n if ( !hasPublicId && !hasText ) {\n console.warn(`An ${type} is missing Public ID or Text`);\n return;\n }\n\n // Start to construct the transformation string using text or the public ID\n // if it's image-based\n\n let layerTransformation;\n\n if ( hasText ) {\n layerTransformation = `${typeQualifier}_text`;\n } else {\n layerTransformation = `${typeQualifier}_${publicId.replace(/\\//g, ':')}`;\n }\n\n // Begin organizing transformations based on what it is and the location\n // it needs to be placed in the URL\n\n const primary = [];\n const applied = [];\n\n // Gemeral options\n\n Object.keys(options).forEach(key => {\n if ( !qualifiersPrimary[key] ) return;\n const { qualifier } = qualifiersPrimary[key];\n primary.push(`${qualifier}_${options[key]}`);\n });\n\n // Layer effects\n\n layerEffects.forEach(effect => {\n Object.keys(effect).forEach(key => {\n if ( !qualifiersPrimary[key] ) return;\n const { qualifier } = qualifiersPrimary[key];\n primary.push(`${qualifier}_${effect[key]}`);\n });\n });\n\n // Text styling\n\n if ( hasText ) {\n const textTransformations = [];\n\n Object.keys(text).forEach(key => {\n if ( !qualifiersText[key] ) return;\n\n const { qualifier, location } = qualifiersText[key];\n\n if ( location === 'primary' ) {\n primary.push(`${qualifier}_${text[key]}`);\n } else {\n textTransformations.push(text[key]);\n }\n });\n\n layerTransformation = `${layerTransformation}:${textTransformations.join('_')}:${text.text}`\n }\n\n // Positioning\n\n if ( hasPosition ) {\n Object.keys(position).forEach(key => {\n if ( !qualifiersPosition[key] ) return;\n\n const { qualifier } = qualifiersPosition[key];\n\n applied.push(`${qualifier}_${position[key]}`);\n });\n }\n\n // Add all primary transformations\n\n layerTransformation = `${layerTransformation},${primary.join(',')}`;\n\n // Add all applied transformations\n\n layerTransformation = `${layerTransformation}/fl_layer_apply`;\n\n if ( applied.length > 0 ) {\n layerTransformation = `${layerTransformation},${applied.join(',')}`;\n }\n\n // Finally add it to the image\n\n cldImage.addTransformation(layerTransformation);\n });\n}","export const props = ['rawTransformations'];\n\nexport function plugin({ cldImage, cldOptions } = {}) {\n const { rawTransformations = [] } = cldOptions;\n\n rawTransformations.forEach(transformation => {\n cldImage.addTransformation(transformation);\n });\n}","export const props = ['removeBackground'];\n\nexport function plugin({ cldImage, options, cldOptions } = {}) {\n const { removeBackground = false } = cldOptions;\n if ( removeBackground ) {\n cldImage.effect('e_background_removal');\n }\n}","import {\n primary as qualifiersPrimary,\n text as qualifiersText,\n position as qualifiersPosition\n} from '../constants/qualifiers';\n\nexport const props = ['underlays'];\n\nexport function plugin({ cldImage, options, cldOptions } = {}) {\n const { underlays = [] } = cldOptions;\n\n const type = 'underlay';\n const typeQualifier = 'u';\n\n underlays.forEach(({ publicId, type, position, text, effects: layerEffects = [], ...options }) => {\n const hasPublicId = typeof publicId === 'string';\n const hasPosition = typeof position === 'object';\n\n if ( !hasPublicId ) {\n console.warn(`An ${type} is missing a Public ID`);\n return;\n }\n\n // Start to construct the transformation string using text or the public ID\n // if it's image-based\n\n let layerTransformation = `${typeQualifier}_${publicId.replace(/\\//g, ':')}`;\n\n // Begin organizing transformations based on what it is and the location\n // it needs to be placed in the URL\n\n const primary = [];\n const applied = [];\n\n // Gemeral options\n\n Object.keys(options).forEach(key => {\n if ( !qualifiersPrimary[key] ) return;\n const { qualifier } = qualifiersPrimary[key];\n primary.push(`${qualifier}_${options[key]}`);\n });\n\n // Layer effects\n\n layerEffects.forEach(effect => {\n Object.keys(effect).forEach(key => {\n if ( !qualifiersPrimary[key] ) return;\n const { qualifier } = qualifiersPrimary[key];\n primary.push(`${qualifier}_${effect[key]}`);\n });\n });\n\n // Positioning\n\n if ( hasPosition ) {\n Object.keys(position).forEach(key => {\n if ( !qualifiersPosition[key] ) return;\n\n const { qualifier } = qualifiersPosition[key];\n\n applied.push(`${qualifier}_${position[key]}`);\n });\n }\n\n // Add all primary transformations\n\n layerTransformation = `${layerTransformation},${primary.join(',')}`;\n\n // Add all applied transformations\n\n layerTransformation = `${layerTransformation}/fl_layer_apply`;\n\n if ( applied.length > 0 ) {\n layerTransformation = `${layerTransformation},${applied.join(',')}`;\n }\n\n // Finally add it to the image\n\n cldImage.addTransformation(layerTransformation);\n });\n}","export const props = ['zoompan'];\n\nexport function plugin({ cldImage, cldOptions } = {}) {\n const { zoompan = false } = cldOptions;\n const options = {};\n\n if ( zoompan === true ) {\n cldImage.effect('e_zoompan');\n } else if ( typeof zoompan === 'string' ) {\n if ( zoompan === 'loop' ) {\n cldImage.effect('e_zoompan');\n cldImage.effect('e_loop');\n } else {\n cldImage.effect(`e_zoompan:${zoompan}`);\n }\n } else if ( typeof zoompan === 'object' ) {\n let zoompanEffect = 'e_zoompan';\n\n if ( typeof zoompan.options === 'string' ) {\n zoompanEffect = `${zoompanEffect}${zoompan.options}`;\n }\n\n cldImage.effect(zoompanEffect);\n\n let loopEffect;\n\n if ( zoompan.loop === true ) {\n loopEffect = 'e_loop';\n } else if ( typeof zoompan.loop === 'string' ) {\n loopEffect = `e_loop${zoompan.loop}`;\n }\n\n if ( loopEffect ) {\n cldImage.effect(loopEffect);\n }\n }\n\n if ( zoompan !== false ) {\n options.format = 'gif';\n }\n\n return {\n options\n }\n}","import { Cloudinary } from '@cloudinary/url-gen';\n\nimport * as croppingPlugin from '../plugins/cropping';\nimport * as effectsPlugin from '../plugins/effects';\nimport * as overlaysPlugin from '../plugins/overlays';\nimport * as rawTransformationsPlugin from '../plugins/raw-transformations';\nimport * as removeBackgroundPlugin from '../plugins/remove-background';\nimport * as underlaysPlugin from '../plugins/underlays';\nimport * as zoompanPlugin from '../plugins/zoompan';\n\nimport {\n primary as qualifiersPrimary,\n text as qualifiersText,\n position as qualifiersPosition\n} from '../constants/qualifiers';\n\nconst cld = new Cloudinary({\n cloud: {\n cloudName: process.env.NEXT_PUBLIC_CLOUDINARY_CLOUD_NAME\n },\n url: {\n // Used to avoid issues with SSR particularly for the blurred placeholder\n analytics: false\n }\n});\n\nexport const transformationPlugins = [\n // Background Removal must always come first\n removeBackgroundPlugin,\n\n croppingPlugin,\n effectsPlugin,\n overlaysPlugin,\n underlaysPlugin,\n zoompanPlugin,\n\n // Raw transformations needs to be last simply to make sure\n // it's always expected to applied the same way\n\n rawTransformationsPlugin\n];\n\nexport function cloudinaryLoader(defaultOptions, cldOptions) {\n const options = {\n format: 'auto',\n quality: 'auto',\n ...defaultOptions\n };\n\n const cldImage = cld.image(options.src);\n\n transformationPlugins.forEach(({ plugin }) => {\n const { options: pluginOptions } = plugin({\n cldImage,\n options,\n cldOptions\n }) || {};\n\n if ( pluginOptions?.format ) {\n options.format = pluginOptions.format;\n }\n });\n\n return cldImage\n .format(options.format)\n .delivery(`q_${options.quality}`)\n .toURL();\n}","import Image from 'next/image';\n\nimport { createPlaceholderUrl } from '../../lib/cloudinary';\nimport { cloudinaryLoader, transformationPlugins } from '../../loaders/cloudinary-loader';\n\nconst CldImage = props => {\n\n const CLD_OPTIONS = [];\n\n transformationPlugins.forEach(({ props = [] }) => {\n props.forEach(prop => {\n if ( CLD_OPTIONS.includes(prop) ) {\n throw new Error(`Option ${prop} already exists!`);\n }\n CLD_OPTIONS.push(prop);\n });\n })\n\n // Construct the base Image component props by filtering out Cloudinary-specific props\n\n const imageProps = {};\n\n Object.keys(props)\n .filter(key => !CLD_OPTIONS.includes(key))\n .forEach(key => imageProps[key] = props[key]);\n\n // Construct Cloudinary-specific props by looking for values for any of the supported prop keys\n\n const cldOptions = {};\n\n CLD_OPTIONS.forEach(key => {\n if ( props[key] ) {\n cldOptions[key] = props[key];\n }\n });\n\n // If we see a placeholder option, configure a Cloudinary-based URL.\n // The resulting image will always be blurred per Next.js, so we're\n // limited on options for placeholders.\n //\n // We need to do this logic here as we potentially need to mutate\n // an Image component prop as opposed to simply the URL\n //\n // https://nextjs.org/docs/api-reference/next/image#blurdataurl\n\n if ( imageProps.placeholder ) {\n imageProps.blurDataURL = createPlaceholderUrl({\n src: props.src,\n placeholder: props.placeholder\n });\n\n if ( imageProps.placeholder !== 'blur' ) {\n imageProps.placeholder = 'blur';\n }\n }\n\n return (\n <Image\n {...imageProps}\n loader={(options) => cloudinaryLoader({ ...imageProps, options }, cldOptions)}\n />\n );\n}\n\nexport default CldImage;"],"names":["cld","Cloudinary","cloud","cloudName","process","env","NEXT_PUBLIC_CLOUDINARY_CLOUD_NAME","url","analytics","createPlaceholderUrl","src","placeholder","cldImage","image","resize","delivery","format","effect","includes","color","split","splice","join","toURL","cropsGravityAuto","props","plugin","options","cldOptions","width","height","crop","gravity","transformationString","console","warn","params","prop","map","param","forEach","key","log","primary","aspectRatio","qualifier","position","angle","x","y","text","location","fontFamily","fontSize","fontWeight","letterSpacing","textDecoration","overlays","type","typeQualifier","publicId","effects","layerEffects","_excluded","hasPublicId","hasText","hasPosition","layerTransformation","replace","applied","Object","keys","qualifiersPrimary","push","textTransformations","qualifiersText","qualifiersPosition","length","addTransformation","rawTransformations","transformation","removeBackground","underlays","zoompan","zoompanEffect","loopEffect","loop","transformationPlugins","removeBackgroundPlugin","croppingPlugin","effectsPlugin","overlaysPlugin","underlaysPlugin","zoompanPlugin","rawTransformationsPlugin","cloudinaryLoader","defaultOptions","quality","pluginOptions","CldImage","CLD_OPTIONS","Error","imageProps","filter","blurDataURL","_jsx"],"mappings":"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"}
1
+ {"version":3,"file":"next-cloudinary.module.js","sources":["../src/lib/cloudinary.js","../src/plugins/cropping.js","../src/plugins/effects.js","../src/constants/qualifiers.js","../src/plugins/overlays.js","../src/plugins/raw-transformations.js","../src/plugins/remove-background.js","../src/plugins/underlays.js","../src/plugins/zoompan.js","../src/loaders/cloudinary-loader.js","../src/components/CldImage/CldImage.js"],"sourcesContent":["import { Cloudinary } from '@cloudinary/url-gen';\n\nconst cld = new Cloudinary({\n cloud: {\n cloudName: process.env.NEXT_PUBLIC_CLOUDINARY_CLOUD_NAME\n },\n url: {\n // Used to avoid issues with SSR particularly for the blurred placeholder\n analytics: false\n }\n});\n\n/**\n * Retrieves the public id of a cloudiary image url. If no url is recognized it returns the parameter it self.\n * If it's recognized that is a url and it's not possible to get the public id, it warns the user.\n *\n * @param {string} src The cloudiary url or public id.\n *\n * @return {string} The images public id\n */\nexport function getPublicId(src) {\n if ( src.includes('res.cloudinary.com') ) {\n const regexWithTransformations = /(https?)\\:\\/\\/(res.cloudinary.com)\\/([^\\/]+)\\/(image|video|raw)\\/(upload|authenticated)\\/(.*)\\/(v[0-9]+)\\/(.+)(?:\\.[a-z]{3})?/\n const regexWithoutTransformations = /(https?)\\:\\/\\/(res.cloudinary.com)\\/([^\\/]+)\\/(image|video|raw)\\/(upload|authenticated)\\/(v[0-9]+)\\/(.+)(?:\\.[a-z]{3})?/\n\n const withTransformations = src.match(regexWithTransformations)\n const withoutTransformations = src.match(regexWithoutTransformations)\n\n if ( withTransformations ) {\n return withTransformations[withTransformations.length - 1]\n } else if ( withoutTransformations ) {\n return withoutTransformations[withoutTransformations.length - 1]\n } else {\n console.warn(`Not possible to retrieve the publicUrl from ${src}, make sure it's a valid cloudinary image url.`)\n }\n }\n return src;\n}\n\n/**\n * createPlaceholderUrl\n */\n\nexport function createPlaceholderUrl({ src, placeholder }) {\n const cldImage = cld.image(src)\n .resize('c_limit,w_100')\n .delivery('q_1')\n .format('auto');\n\n if ( placeholder === 'grayscale' ) {\n cldImage.effect('e_grayscale');\n }\n\n if ( placeholder.includes('color:') ) {\n const color = placeholder.split(':').splice(1).join(':')\n cldImage.effect('e_grayscale');\n cldImage.effect(`e_colorize:60,co_${color}`);\n }\n\n return cldImage.toURL();\n}\n","const cropsGravityAuto = [ 'crop', 'fill', 'lfill', 'fill_pad', 'thumb' ];\n\nexport const props = ['crop', 'gravity'];\n\nexport function plugin({ cldImage, options, cldOptions } = {}) {\n const { width, height } = options;\n const { crop = 'limit', gravity } = cldOptions;\n\n let transformationString = `c_${crop},w_${width}`;\n\n if ( !gravity && cropsGravityAuto.includes(crop) ) {\n gravity = 'auto';\n }\n\n if ( !['limit'].includes(crop) ) {\n transformationString = `${transformationString},h_${height}`;\n }\n\n if ( gravity ) {\n if ( gravity === 'auto' && !cropsGravityAuto.includes(crop) ) {\n console.warn('Auto gravity can only be used with crop, fill, lfill, fill_pad or thumb. Not applying gravity.');\n } else {\n transformationString = `${transformationString},g_${gravity}`;\n }\n }\n\n cldImage.resize(transformationString);\n}","const params = [\n 'art',\n {\n prop: 'autoBrightness',\n effect: 'auto_brightness',\n },\n {\n prop: 'autoColor',\n effect: 'auto_color',\n },\n {\n prop: 'autoContrast',\n effect: 'auto_contrast',\n },\n {\n prop: 'assistColorblind',\n effect: 'assist_colorblind',\n },\n 'blackwhite',\n 'blur',\n {\n prop: 'blurFaces',\n effect: 'blur_faces',\n },\n {\n prop: 'blurRegion',\n effect: 'blur_region',\n },\n 'brightness',\n {\n prop: 'brightnessHSB',\n effect: 'brightness_hsb',\n },\n 'cartoonify',\n 'colorize',\n 'contrast',\n 'distort',\n {\n prop: 'fillLight',\n effect: 'fill_light',\n },\n 'gamma',\n {\n prop: 'gradientFade',\n effect: 'gradient_fade',\n },\n 'grayscale',\n 'improve',\n 'negate',\n {\n prop: 'oilPaint',\n effect: 'oil_paint',\n },\n 'outline',\n 'pixelate',\n {\n prop: 'pixelateFaces',\n effect: 'pixelate_faces',\n },\n {\n prop: 'pixelateRegion',\n effect: 'pixelate_region',\n },\n 'redeye',\n {\n prop: 'replaceColor',\n effect: 'replace_color',\n },\n 'saturation',\n 'sepia',\n 'shadow',\n 'sharpen',\n 'shear',\n {\n prop: 'simulateColorblind',\n effect: 'simulate_colorblind',\n },\n 'tint',\n {\n prop: 'unsharpMask',\n effect: 'unsharp_mask',\n },\n 'vectorize',\n 'vibrance',\n 'vignette',\n];\n\nexport const props = params.map(param => param.prop || param);\n\nexport function plugin({ cldImage, cldOptions } = {}) {\n params.forEach(key => {\n\n const prop = key.prop || key;\n const effect = key.effect || key;\n\n if ( prop === 'oilPaint' && cldOptions[prop]) {\n console.log('cldOptions[prop]', cldOptions[prop])\n }\n if ( cldOptions[prop] === true ) {\n cldImage.effect(`e_${effect}`);\n } else if ( typeof cldOptions[prop] === 'string' ) {\n cldImage.effect(`e_${effect}:${cldOptions[prop]}`);\n }\n });\n}","// aspectRatio\n\nexport const primary = {\n aspectRatio: {\n qualifier: 'ar'\n },\n crop: {\n qualifier: 'c'\n },\n gravity: {\n qualifier: 'g'\n },\n height: {\n qualifier: 'h'\n },\n width: {\n qualifier: 'w'\n },\n};\n\nexport const position = {\n angle: {\n qualifier: 'a'\n },\n gravity: {\n qualifier: 'g'\n },\n x: {\n qualifier: 'x'\n },\n y: {\n qualifier: 'y'\n },\n}\n\nexport const text = {\n color: {\n qualifier: 'co',\n location: 'primary'\n },\n fontFamily: {\n qualifier: false\n },\n fontSize: {\n qualifier: false\n },\n fontWeight: {\n qualifier: false\n },\n letterSpacing: {\n qualifier: 'letter_spacing'\n },\n textDecoration: {\n qualifier: false\n }\n}","import {\n primary as qualifiersPrimary,\n text as qualifiersText,\n position as qualifiersPosition\n} from '../constants/qualifiers';\n\nexport const props = ['overlays'];\n\nexport function plugin({ cldImage, options, cldOptions } = {}) {\n const { overlays = [] } = cldOptions;\n\n const type = 'overlay';\n const typeQualifier = 'l';\n\n overlays.forEach(({ publicId, position, text, effects: layerEffects = [], ...options }) => {\n const hasPublicId = typeof publicId === 'string';\n const hasText = typeof text === 'object';\n const hasPosition = typeof position === 'object';\n\n if ( !hasPublicId && !hasText ) {\n console.warn(`An ${type} is missing Public ID or Text`);\n return;\n }\n\n // Start to construct the transformation string using text or the public ID\n // if it's image-based\n\n let layerTransformation;\n\n if ( hasText ) {\n layerTransformation = `${typeQualifier}_text`;\n } else {\n layerTransformation = `${typeQualifier}_${publicId.replace(/\\//g, ':')}`;\n }\n\n // Begin organizing transformations based on what it is and the location\n // it needs to be placed in the URL\n\n const primary = [];\n const applied = [];\n\n // Gemeral options\n\n Object.keys(options).forEach(key => {\n if ( !qualifiersPrimary[key] ) return;\n const { qualifier } = qualifiersPrimary[key];\n primary.push(`${qualifier}_${options[key]}`);\n });\n\n // Layer effects\n\n layerEffects.forEach(effect => {\n Object.keys(effect).forEach(key => {\n if ( !qualifiersPrimary[key] ) return;\n const { qualifier } = qualifiersPrimary[key];\n primary.push(`${qualifier}_${effect[key]}`);\n });\n });\n\n // Text styling\n\n if ( hasText ) {\n const textTransformations = [];\n\n Object.keys(text).forEach(key => {\n if ( !qualifiersText[key] ) return;\n\n const { qualifier, location } = qualifiersText[key];\n\n if ( location === 'primary' ) {\n primary.push(`${qualifier}_${text[key]}`);\n } else {\n textTransformations.push(text[key]);\n }\n });\n\n layerTransformation = `${layerTransformation}:${textTransformations.join('_')}:${text.text}`\n }\n\n // Positioning\n\n if ( hasPosition ) {\n Object.keys(position).forEach(key => {\n if ( !qualifiersPosition[key] ) return;\n\n const { qualifier } = qualifiersPosition[key];\n\n applied.push(`${qualifier}_${position[key]}`);\n });\n }\n\n // Add all primary transformations\n\n layerTransformation = `${layerTransformation},${primary.join(',')}`;\n\n // Add all applied transformations\n\n layerTransformation = `${layerTransformation}/fl_layer_apply`;\n\n if ( applied.length > 0 ) {\n layerTransformation = `${layerTransformation},${applied.join(',')}`;\n }\n\n // Finally add it to the image\n\n cldImage.addTransformation(layerTransformation);\n });\n}","export const props = ['rawTransformations'];\n\nexport function plugin({ cldImage, cldOptions } = {}) {\n const { rawTransformations = [] } = cldOptions;\n\n rawTransformations.forEach(transformation => {\n cldImage.addTransformation(transformation);\n });\n}","export const props = ['removeBackground'];\n\nexport function plugin({ cldImage, options, cldOptions } = {}) {\n const { removeBackground = false } = cldOptions;\n if ( removeBackground ) {\n cldImage.effect('e_background_removal');\n }\n}","import {\n primary as qualifiersPrimary,\n text as qualifiersText,\n position as qualifiersPosition\n} from '../constants/qualifiers';\n\nexport const props = ['underlays'];\n\nexport function plugin({ cldImage, options, cldOptions } = {}) {\n const { underlays = [] } = cldOptions;\n\n const type = 'underlay';\n const typeQualifier = 'u';\n\n underlays.forEach(({ publicId, type, position, text, effects: layerEffects = [], ...options }) => {\n const hasPublicId = typeof publicId === 'string';\n const hasPosition = typeof position === 'object';\n\n if ( !hasPublicId ) {\n console.warn(`An ${type} is missing a Public ID`);\n return;\n }\n\n // Start to construct the transformation string using text or the public ID\n // if it's image-based\n\n let layerTransformation = `${typeQualifier}_${publicId.replace(/\\//g, ':')}`;\n\n // Begin organizing transformations based on what it is and the location\n // it needs to be placed in the URL\n\n const primary = [];\n const applied = [];\n\n // Gemeral options\n\n Object.keys(options).forEach(key => {\n if ( !qualifiersPrimary[key] ) return;\n const { qualifier } = qualifiersPrimary[key];\n primary.push(`${qualifier}_${options[key]}`);\n });\n\n // Layer effects\n\n layerEffects.forEach(effect => {\n Object.keys(effect).forEach(key => {\n if ( !qualifiersPrimary[key] ) return;\n const { qualifier } = qualifiersPrimary[key];\n primary.push(`${qualifier}_${effect[key]}`);\n });\n });\n\n // Positioning\n\n if ( hasPosition ) {\n Object.keys(position).forEach(key => {\n if ( !qualifiersPosition[key] ) return;\n\n const { qualifier } = qualifiersPosition[key];\n\n applied.push(`${qualifier}_${position[key]}`);\n });\n }\n\n // Add all primary transformations\n\n layerTransformation = `${layerTransformation},${primary.join(',')}`;\n\n // Add all applied transformations\n\n layerTransformation = `${layerTransformation}/fl_layer_apply`;\n\n if ( applied.length > 0 ) {\n layerTransformation = `${layerTransformation},${applied.join(',')}`;\n }\n\n // Finally add it to the image\n\n cldImage.addTransformation(layerTransformation);\n });\n}","export const props = ['zoompan'];\n\nexport function plugin({ cldImage, cldOptions } = {}) {\n const { zoompan = false } = cldOptions;\n const options = {};\n\n if ( zoompan === true ) {\n cldImage.effect('e_zoompan');\n } else if ( typeof zoompan === 'string' ) {\n if ( zoompan === 'loop' ) {\n cldImage.effect('e_zoompan');\n cldImage.effect('e_loop');\n } else {\n cldImage.effect(`e_zoompan:${zoompan}`);\n }\n } else if ( typeof zoompan === 'object' ) {\n let zoompanEffect = 'e_zoompan';\n\n if ( typeof zoompan.options === 'string' ) {\n zoompanEffect = `${zoompanEffect}${zoompan.options}`;\n }\n\n cldImage.effect(zoompanEffect);\n\n let loopEffect;\n\n if ( zoompan.loop === true ) {\n loopEffect = 'e_loop';\n } else if ( typeof zoompan.loop === 'string' ) {\n loopEffect = `e_loop${zoompan.loop}`;\n }\n\n if ( loopEffect ) {\n cldImage.effect(loopEffect);\n }\n }\n\n if ( zoompan !== false ) {\n options.format = 'gif';\n }\n\n return {\n options\n }\n}","import { Cloudinary } from '@cloudinary/url-gen';\nimport { getPublicId } from '../lib/cloudinary';\n\nimport * as croppingPlugin from '../plugins/cropping';\nimport * as effectsPlugin from '../plugins/effects';\nimport * as overlaysPlugin from '../plugins/overlays';\nimport * as rawTransformationsPlugin from '../plugins/raw-transformations';\nimport * as removeBackgroundPlugin from '../plugins/remove-background';\nimport * as underlaysPlugin from '../plugins/underlays';\nimport * as zoompanPlugin from '../plugins/zoompan';\n\nimport {\n primary as qualifiersPrimary,\n text as qualifiersText,\n position as qualifiersPosition\n} from '../constants/qualifiers';\n\nlet cld;\n\nexport const transformationPlugins = [\n // Background Removal must always come first\n removeBackgroundPlugin,\n\n croppingPlugin,\n effectsPlugin,\n overlaysPlugin,\n underlaysPlugin,\n zoompanPlugin,\n\n // Raw transformations needs to be last simply to make sure\n // it's always expected to applied the same way\n\n rawTransformationsPlugin\n];\n\nexport function cloudinaryLoader(defaultOptions, cldOptions, cldConfig = {}) {\n if ( !cld ) {\n cld = new Cloudinary({\n cloud: {\n cloudName: process.env.NEXT_PUBLIC_CLOUDINARY_CLOUD_NAME\n },\n url: {\n // Used to avoid issues with SSR particularly for the blurred placeholder\n analytics: false\n },\n ...cldConfig\n });\n }\n\n const options = {\n format: 'auto',\n quality: 'auto',\n ...defaultOptions\n };\n const publicId = getPublicId(options.src);\n\n const cldImage = cld.image(publicId);\n\n transformationPlugins.forEach(({ plugin }) => {\n const { options: pluginOptions } = plugin({\n cldImage,\n options,\n cldOptions\n }) || {};\n\n if ( pluginOptions?.format ) {\n options.format = pluginOptions.format;\n }\n });\n\n return cldImage\n .format(options.format)\n .delivery(`q_${options.quality}`)\n .toURL();\n}","import Image from 'next/image';\n\nimport { createPlaceholderUrl, getPublicId } from '../../lib/cloudinary';\nimport { cloudinaryLoader, transformationPlugins } from '../../loaders/cloudinary-loader';\n\nconst CldImage = props => {\n\n const CLD_OPTIONS = [];\n\n transformationPlugins.forEach(({ props = [] }) => {\n props.forEach(prop => {\n if ( CLD_OPTIONS.includes(prop) ) {\n throw new Error(`Option ${prop} already exists!`);\n }\n CLD_OPTIONS.push(prop);\n });\n })\n\n // Construct the base Image component props by filtering out Cloudinary-specific props\n\n const imageProps = {};\n\n Object.keys(props)\n .filter(key => !CLD_OPTIONS.includes(key))\n .forEach(key => imageProps[key] = props[key]);\n\n // Construct Cloudinary-specific props by looking for values for any of the supported prop keys\n\n const cldOptions = {};\n\n CLD_OPTIONS.forEach(key => {\n if ( props[key] ) {\n cldOptions[key] = props[key];\n }\n });\n\n // If we see a placeholder option, configure a Cloudinary-based URL.\n // The resulting image will always be blurred per Next.js, so we're\n // limited on options for placeholders.\n //\n // We need to do this logic here as we potentially need to mutate\n // an Image component prop as opposed to simply the URL\n //\n // https://nextjs.org/docs/api-reference/next/image#blurdataurl\n\n if ( imageProps.placeholder ) {\n const publicId = getPublicId(props.src);\n\n imageProps.blurDataURL = createPlaceholderUrl({\n src: publicId,\n placeholder: props.placeholder\n });\n\n if ( imageProps.placeholder !== 'blur' ) {\n imageProps.placeholder = 'blur';\n }\n }\n\n return (\n <Image\n {...imageProps}\n loader={(options) => cloudinaryLoader({ ...imageProps, options }, cldOptions)}\n />\n );\n}\n\nexport default CldImage;"],"names":["cld","Cloudinary","cloud","cloudName","process","env","NEXT_PUBLIC_CLOUDINARY_CLOUD_NAME","url","analytics","getPublicId","src","includes","regexWithTransformations","regexWithoutTransformations","withTransformations","match","withoutTransformations","length","console","warn","createPlaceholderUrl","placeholder","cldImage","image","resize","delivery","format","effect","color","split","splice","join","toURL","cropsGravityAuto","props","plugin","options","cldOptions","width","height","crop","gravity","transformationString","params","prop","map","param","forEach","key","log","primary","aspectRatio","qualifier","position","angle","x","y","text","location","fontFamily","fontSize","fontWeight","letterSpacing","textDecoration","overlays","type","typeQualifier","publicId","effects","layerEffects","_excluded","hasPublicId","hasText","hasPosition","layerTransformation","replace","applied","Object","keys","qualifiersPrimary","push","textTransformations","qualifiersText","qualifiersPosition","addTransformation","rawTransformations","transformation","removeBackground","underlays","zoompan","zoompanEffect","loopEffect","loop","transformationPlugins","removeBackgroundPlugin","croppingPlugin","effectsPlugin","overlaysPlugin","underlaysPlugin","zoompanPlugin","rawTransformationsPlugin","cloudinaryLoader","defaultOptions","cldConfig","quality","pluginOptions","CldImage","CLD_OPTIONS","Error","imageProps","filter","blurDataURL","_jsx"],"mappings":"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"}
@@ -52,6 +52,33 @@
52
52
  analytics: false
53
53
  }
54
54
  });
55
+ /**
56
+ * Retrieves the public id of a cloudiary image url. If no url is recognized it returns the parameter it self.
57
+ * If it's recognized that is a url and it's not possible to get the public id, it warns the user.
58
+ *
59
+ * @param {string} src The cloudiary url or public id.
60
+ *
61
+ * @return {string} The images public id
62
+ */
63
+
64
+ function getPublicId(src) {
65
+ if (src.includes('res.cloudinary.com')) {
66
+ var regexWithTransformations = /(https?)\:\/\/(res.cloudinary.com)\/([^\/]+)\/(image|video|raw)\/(upload|authenticated)\/(.*)\/(v[0-9]+)\/(.+)(?:\.[a-z]{3})?/;
67
+ var regexWithoutTransformations = /(https?)\:\/\/(res.cloudinary.com)\/([^\/]+)\/(image|video|raw)\/(upload|authenticated)\/(v[0-9]+)\/(.+)(?:\.[a-z]{3})?/;
68
+ var withTransformations = src.match(regexWithTransformations);
69
+ var withoutTransformations = src.match(regexWithoutTransformations);
70
+
71
+ if (withTransformations) {
72
+ return withTransformations[withTransformations.length - 1];
73
+ } else if (withoutTransformations) {
74
+ return withoutTransformations[withoutTransformations.length - 1];
75
+ } else {
76
+ console.warn("Not possible to retrieve the publicUrl from " + src + ", make sure it's a valid cloudinary image url.");
77
+ }
78
+ }
79
+
80
+ return src;
81
+ }
55
82
  /**
56
83
  * createPlaceholderUrl
57
84
  */
@@ -517,26 +544,35 @@
517
544
  plugin: plugin
518
545
  };
519
546
 
520
- var cld = new urlGen.Cloudinary({
521
- cloud: {
522
- cloudName: process.env.NEXT_PUBLIC_CLOUDINARY_CLOUD_NAME
523
- },
524
- url: {
525
- // Used to avoid issues with SSR particularly for the blurred placeholder
526
- analytics: false
527
- }
528
- });
547
+ var cld;
529
548
  var transformationPlugins = [// Background Removal must always come first
530
549
  removeBackgroundPlugin, croppingPlugin, effectsPlugin, overlaysPlugin, underlaysPlugin, zoompanPlugin, // Raw transformations needs to be last simply to make sure
531
550
  // it's always expected to applied the same way
532
551
  rawTransformationsPlugin];
533
- function cloudinaryLoader(defaultOptions, cldOptions) {
552
+ function cloudinaryLoader(defaultOptions, cldOptions, cldConfig) {
553
+ if (cldConfig === void 0) {
554
+ cldConfig = {};
555
+ }
556
+
557
+ if (!cld) {
558
+ cld = new urlGen.Cloudinary(_extends({
559
+ cloud: {
560
+ cloudName: process.env.NEXT_PUBLIC_CLOUDINARY_CLOUD_NAME
561
+ },
562
+ url: {
563
+ // Used to avoid issues with SSR particularly for the blurred placeholder
564
+ analytics: false
565
+ }
566
+ }, cldConfig));
567
+ }
568
+
534
569
  var options = _extends({
535
570
  format: 'auto',
536
571
  quality: 'auto'
537
572
  }, defaultOptions);
538
573
 
539
- var cldImage = cld.image(options.src);
574
+ var publicId = getPublicId(options.src);
575
+ var cldImage = cld.image(publicId);
540
576
  transformationPlugins.forEach(function (_ref) {
541
577
  var plugin = _ref.plugin;
542
578
 
@@ -590,8 +626,9 @@
590
626
  // https://nextjs.org/docs/api-reference/next/image#blurdataurl
591
627
 
592
628
  if (imageProps.placeholder) {
629
+ var publicId = getPublicId(props.src);
593
630
  imageProps.blurDataURL = createPlaceholderUrl({
594
- src: props.src,
631
+ src: publicId,
595
632
  placeholder: props.placeholder
596
633
  });
597
634
 
@@ -1 +1 @@
1
- {"version":3,"file":"next-cloudinary.umd.js","sources":["../src/lib/cloudinary.js","../src/plugins/cropping.js","../src/plugins/effects.js","../src/constants/qualifiers.js","../src/plugins/overlays.js","../src/plugins/raw-transformations.js","../src/plugins/remove-background.js","../src/plugins/underlays.js","../src/plugins/zoompan.js","../src/loaders/cloudinary-loader.js","../src/components/CldImage/CldImage.js"],"sourcesContent":["import { Cloudinary } from '@cloudinary/url-gen';\n\nconst cld = new Cloudinary({\n cloud: {\n cloudName: process.env.NEXT_PUBLIC_CLOUDINARY_CLOUD_NAME\n },\n url: {\n // Used to avoid issues with SSR particularly for the blurred placeholder\n analytics: false\n }\n});\n\n/**\n * createPlaceholderUrl\n */\n\nexport function createPlaceholderUrl({ src, placeholder }) {\n const cldImage = cld.image(src)\n .resize('c_limit,w_100')\n .delivery('q_1')\n .format('auto');\n\n if ( placeholder === 'grayscale' ) {\n cldImage.effect('e_grayscale');\n }\n\n if ( placeholder.includes('color:') ) {\n const color = placeholder.split(':').splice(1).join(':')\n cldImage.effect('e_grayscale');\n cldImage.effect(`e_colorize:60,co_${color}`);\n }\n\n return cldImage.toURL();\n}","const cropsGravityAuto = [ 'crop', 'fill', 'lfill', 'fill_pad', 'thumb' ];\n\nexport const props = ['crop', 'gravity'];\n\nexport function plugin({ cldImage, options, cldOptions } = {}) {\n const { width, height } = options;\n const { crop = 'limit', gravity } = cldOptions;\n\n let transformationString = `c_${crop},w_${width}`;\n\n if ( !gravity && cropsGravityAuto.includes(crop) ) {\n gravity = 'auto';\n }\n\n if ( !['limit'].includes(crop) ) {\n transformationString = `${transformationString},h_${height}`;\n }\n\n if ( gravity ) {\n if ( gravity === 'auto' && !cropsGravityAuto.includes(crop) ) {\n console.warn('Auto gravity can only be used with crop, fill, lfill, fill_pad or thumb. Not applying gravity.');\n } else {\n transformationString = `${transformationString},g_${gravity}`;\n }\n }\n\n cldImage.resize(transformationString);\n}","const params = [\n 'art',\n {\n prop: 'autoBrightness',\n effect: 'auto_brightness',\n },\n {\n prop: 'autoColor',\n effect: 'auto_color',\n },\n {\n prop: 'autoContrast',\n effect: 'auto_contrast',\n },\n {\n prop: 'assistColorblind',\n effect: 'assist_colorblind',\n },\n 'blackwhite',\n 'blur',\n {\n prop: 'blurFaces',\n effect: 'blur_faces',\n },\n {\n prop: 'blurRegion',\n effect: 'blur_region',\n },\n 'brightness',\n {\n prop: 'brightnessHSB',\n effect: 'brightness_hsb',\n },\n 'cartoonify',\n 'colorize',\n 'contrast',\n 'distort',\n {\n prop: 'fillLight',\n effect: 'fill_light',\n },\n 'gamma',\n {\n prop: 'gradientFade',\n effect: 'gradient_fade',\n },\n 'grayscale',\n 'improve',\n 'negate',\n {\n prop: 'oilPaint',\n effect: 'oil_paint',\n },\n 'outline',\n 'pixelate',\n {\n prop: 'pixelateFaces',\n effect: 'pixelate_faces',\n },\n {\n prop: 'pixelateRegion',\n effect: 'pixelate_region',\n },\n 'redeye',\n {\n prop: 'replaceColor',\n effect: 'replace_color',\n },\n 'saturation',\n 'sepia',\n 'shadow',\n 'sharpen',\n 'shear',\n {\n prop: 'simulateColorblind',\n effect: 'simulate_colorblind',\n },\n 'tint',\n {\n prop: 'unsharpMask',\n effect: 'unsharp_mask',\n },\n 'vectorize',\n 'vibrance',\n 'vignette',\n];\n\nexport const props = params.map(param => param.prop || param);\n\nexport function plugin({ cldImage, cldOptions } = {}) {\n params.forEach(key => {\n\n const prop = key.prop || key;\n const effect = key.effect || key;\n\n if ( prop === 'oilPaint' && cldOptions[prop]) {\n console.log('cldOptions[prop]', cldOptions[prop])\n }\n if ( cldOptions[prop] === true ) {\n cldImage.effect(`e_${effect}`);\n } else if ( typeof cldOptions[prop] === 'string' ) {\n cldImage.effect(`e_${effect}:${cldOptions[prop]}`);\n }\n });\n}","// aspectRatio\n\nexport const primary = {\n aspectRatio: {\n qualifier: 'ar'\n },\n crop: {\n qualifier: 'c'\n },\n gravity: {\n qualifier: 'g'\n },\n height: {\n qualifier: 'h'\n },\n width: {\n qualifier: 'w'\n },\n};\n\nexport const position = {\n angle: {\n qualifier: 'a'\n },\n gravity: {\n qualifier: 'g'\n },\n x: {\n qualifier: 'x'\n },\n y: {\n qualifier: 'y'\n },\n}\n\nexport const text = {\n color: {\n qualifier: 'co',\n location: 'primary'\n },\n fontFamily: {\n qualifier: false\n },\n fontSize: {\n qualifier: false\n },\n fontWeight: {\n qualifier: false\n },\n letterSpacing: {\n qualifier: 'letter_spacing'\n },\n textDecoration: {\n qualifier: false\n }\n}","import {\n primary as qualifiersPrimary,\n text as qualifiersText,\n position as qualifiersPosition\n} from '../constants/qualifiers';\n\nexport const props = ['overlays'];\n\nexport function plugin({ cldImage, options, cldOptions } = {}) {\n const { overlays = [] } = cldOptions;\n\n const type = 'overlay';\n const typeQualifier = 'l';\n\n overlays.forEach(({ publicId, position, text, effects: layerEffects = [], ...options }) => {\n const hasPublicId = typeof publicId === 'string';\n const hasText = typeof text === 'object';\n const hasPosition = typeof position === 'object';\n\n if ( !hasPublicId && !hasText ) {\n console.warn(`An ${type} is missing Public ID or Text`);\n return;\n }\n\n // Start to construct the transformation string using text or the public ID\n // if it's image-based\n\n let layerTransformation;\n\n if ( hasText ) {\n layerTransformation = `${typeQualifier}_text`;\n } else {\n layerTransformation = `${typeQualifier}_${publicId.replace(/\\//g, ':')}`;\n }\n\n // Begin organizing transformations based on what it is and the location\n // it needs to be placed in the URL\n\n const primary = [];\n const applied = [];\n\n // Gemeral options\n\n Object.keys(options).forEach(key => {\n if ( !qualifiersPrimary[key] ) return;\n const { qualifier } = qualifiersPrimary[key];\n primary.push(`${qualifier}_${options[key]}`);\n });\n\n // Layer effects\n\n layerEffects.forEach(effect => {\n Object.keys(effect).forEach(key => {\n if ( !qualifiersPrimary[key] ) return;\n const { qualifier } = qualifiersPrimary[key];\n primary.push(`${qualifier}_${effect[key]}`);\n });\n });\n\n // Text styling\n\n if ( hasText ) {\n const textTransformations = [];\n\n Object.keys(text).forEach(key => {\n if ( !qualifiersText[key] ) return;\n\n const { qualifier, location } = qualifiersText[key];\n\n if ( location === 'primary' ) {\n primary.push(`${qualifier}_${text[key]}`);\n } else {\n textTransformations.push(text[key]);\n }\n });\n\n layerTransformation = `${layerTransformation}:${textTransformations.join('_')}:${text.text}`\n }\n\n // Positioning\n\n if ( hasPosition ) {\n Object.keys(position).forEach(key => {\n if ( !qualifiersPosition[key] ) return;\n\n const { qualifier } = qualifiersPosition[key];\n\n applied.push(`${qualifier}_${position[key]}`);\n });\n }\n\n // Add all primary transformations\n\n layerTransformation = `${layerTransformation},${primary.join(',')}`;\n\n // Add all applied transformations\n\n layerTransformation = `${layerTransformation}/fl_layer_apply`;\n\n if ( applied.length > 0 ) {\n layerTransformation = `${layerTransformation},${applied.join(',')}`;\n }\n\n // Finally add it to the image\n\n cldImage.addTransformation(layerTransformation);\n });\n}","export const props = ['rawTransformations'];\n\nexport function plugin({ cldImage, cldOptions } = {}) {\n const { rawTransformations = [] } = cldOptions;\n\n rawTransformations.forEach(transformation => {\n cldImage.addTransformation(transformation);\n });\n}","export const props = ['removeBackground'];\n\nexport function plugin({ cldImage, options, cldOptions } = {}) {\n const { removeBackground = false } = cldOptions;\n if ( removeBackground ) {\n cldImage.effect('e_background_removal');\n }\n}","import {\n primary as qualifiersPrimary,\n text as qualifiersText,\n position as qualifiersPosition\n} from '../constants/qualifiers';\n\nexport const props = ['underlays'];\n\nexport function plugin({ cldImage, options, cldOptions } = {}) {\n const { underlays = [] } = cldOptions;\n\n const type = 'underlay';\n const typeQualifier = 'u';\n\n underlays.forEach(({ publicId, type, position, text, effects: layerEffects = [], ...options }) => {\n const hasPublicId = typeof publicId === 'string';\n const hasPosition = typeof position === 'object';\n\n if ( !hasPublicId ) {\n console.warn(`An ${type} is missing a Public ID`);\n return;\n }\n\n // Start to construct the transformation string using text or the public ID\n // if it's image-based\n\n let layerTransformation = `${typeQualifier}_${publicId.replace(/\\//g, ':')}`;\n\n // Begin organizing transformations based on what it is and the location\n // it needs to be placed in the URL\n\n const primary = [];\n const applied = [];\n\n // Gemeral options\n\n Object.keys(options).forEach(key => {\n if ( !qualifiersPrimary[key] ) return;\n const { qualifier } = qualifiersPrimary[key];\n primary.push(`${qualifier}_${options[key]}`);\n });\n\n // Layer effects\n\n layerEffects.forEach(effect => {\n Object.keys(effect).forEach(key => {\n if ( !qualifiersPrimary[key] ) return;\n const { qualifier } = qualifiersPrimary[key];\n primary.push(`${qualifier}_${effect[key]}`);\n });\n });\n\n // Positioning\n\n if ( hasPosition ) {\n Object.keys(position).forEach(key => {\n if ( !qualifiersPosition[key] ) return;\n\n const { qualifier } = qualifiersPosition[key];\n\n applied.push(`${qualifier}_${position[key]}`);\n });\n }\n\n // Add all primary transformations\n\n layerTransformation = `${layerTransformation},${primary.join(',')}`;\n\n // Add all applied transformations\n\n layerTransformation = `${layerTransformation}/fl_layer_apply`;\n\n if ( applied.length > 0 ) {\n layerTransformation = `${layerTransformation},${applied.join(',')}`;\n }\n\n // Finally add it to the image\n\n cldImage.addTransformation(layerTransformation);\n });\n}","export const props = ['zoompan'];\n\nexport function plugin({ cldImage, cldOptions } = {}) {\n const { zoompan = false } = cldOptions;\n const options = {};\n\n if ( zoompan === true ) {\n cldImage.effect('e_zoompan');\n } else if ( typeof zoompan === 'string' ) {\n if ( zoompan === 'loop' ) {\n cldImage.effect('e_zoompan');\n cldImage.effect('e_loop');\n } else {\n cldImage.effect(`e_zoompan:${zoompan}`);\n }\n } else if ( typeof zoompan === 'object' ) {\n let zoompanEffect = 'e_zoompan';\n\n if ( typeof zoompan.options === 'string' ) {\n zoompanEffect = `${zoompanEffect}${zoompan.options}`;\n }\n\n cldImage.effect(zoompanEffect);\n\n let loopEffect;\n\n if ( zoompan.loop === true ) {\n loopEffect = 'e_loop';\n } else if ( typeof zoompan.loop === 'string' ) {\n loopEffect = `e_loop${zoompan.loop}`;\n }\n\n if ( loopEffect ) {\n cldImage.effect(loopEffect);\n }\n }\n\n if ( zoompan !== false ) {\n options.format = 'gif';\n }\n\n return {\n options\n }\n}","import { Cloudinary } from '@cloudinary/url-gen';\n\nimport * as croppingPlugin from '../plugins/cropping';\nimport * as effectsPlugin from '../plugins/effects';\nimport * as overlaysPlugin from '../plugins/overlays';\nimport * as rawTransformationsPlugin from '../plugins/raw-transformations';\nimport * as removeBackgroundPlugin from '../plugins/remove-background';\nimport * as underlaysPlugin from '../plugins/underlays';\nimport * as zoompanPlugin from '../plugins/zoompan';\n\nimport {\n primary as qualifiersPrimary,\n text as qualifiersText,\n position as qualifiersPosition\n} from '../constants/qualifiers';\n\nconst cld = new Cloudinary({\n cloud: {\n cloudName: process.env.NEXT_PUBLIC_CLOUDINARY_CLOUD_NAME\n },\n url: {\n // Used to avoid issues with SSR particularly for the blurred placeholder\n analytics: false\n }\n});\n\nexport const transformationPlugins = [\n // Background Removal must always come first\n removeBackgroundPlugin,\n\n croppingPlugin,\n effectsPlugin,\n overlaysPlugin,\n underlaysPlugin,\n zoompanPlugin,\n\n // Raw transformations needs to be last simply to make sure\n // it's always expected to applied the same way\n\n rawTransformationsPlugin\n];\n\nexport function cloudinaryLoader(defaultOptions, cldOptions) {\n const options = {\n format: 'auto',\n quality: 'auto',\n ...defaultOptions\n };\n\n const cldImage = cld.image(options.src);\n\n transformationPlugins.forEach(({ plugin }) => {\n const { options: pluginOptions } = plugin({\n cldImage,\n options,\n cldOptions\n }) || {};\n\n if ( pluginOptions?.format ) {\n options.format = pluginOptions.format;\n }\n });\n\n return cldImage\n .format(options.format)\n .delivery(`q_${options.quality}`)\n .toURL();\n}","import Image from 'next/image';\n\nimport { createPlaceholderUrl } from '../../lib/cloudinary';\nimport { cloudinaryLoader, transformationPlugins } from '../../loaders/cloudinary-loader';\n\nconst CldImage = props => {\n\n const CLD_OPTIONS = [];\n\n transformationPlugins.forEach(({ props = [] }) => {\n props.forEach(prop => {\n if ( CLD_OPTIONS.includes(prop) ) {\n throw new Error(`Option ${prop} already exists!`);\n }\n CLD_OPTIONS.push(prop);\n });\n })\n\n // Construct the base Image component props by filtering out Cloudinary-specific props\n\n const imageProps = {};\n\n Object.keys(props)\n .filter(key => !CLD_OPTIONS.includes(key))\n .forEach(key => imageProps[key] = props[key]);\n\n // Construct Cloudinary-specific props by looking for values for any of the supported prop keys\n\n const cldOptions = {};\n\n CLD_OPTIONS.forEach(key => {\n if ( props[key] ) {\n cldOptions[key] = props[key];\n }\n });\n\n // If we see a placeholder option, configure a Cloudinary-based URL.\n // The resulting image will always be blurred per Next.js, so we're\n // limited on options for placeholders.\n //\n // We need to do this logic here as we potentially need to mutate\n // an Image component prop as opposed to simply the URL\n //\n // https://nextjs.org/docs/api-reference/next/image#blurdataurl\n\n if ( imageProps.placeholder ) {\n imageProps.blurDataURL = createPlaceholderUrl({\n src: props.src,\n placeholder: props.placeholder\n });\n\n if ( imageProps.placeholder !== 'blur' ) {\n imageProps.placeholder = 'blur';\n }\n }\n\n return (\n <Image\n {...imageProps}\n loader={(options) => cloudinaryLoader({ ...imageProps, options }, cldOptions)}\n />\n );\n}\n\nexport default CldImage;"],"names":["cld","Cloudinary","cloud","cloudName","process","env","NEXT_PUBLIC_CLOUDINARY_CLOUD_NAME","url","analytics","createPlaceholderUrl","src","placeholder","cldImage","image","resize","delivery","format","effect","includes","color","split","splice","join","toURL","cropsGravityAuto","props","plugin","options","cldOptions","width","height","crop","gravity","transformationString","console","warn","params","prop","map","param","forEach","key","log","primary","aspectRatio","qualifier","position","angle","x","y","text","location","fontFamily","fontSize","fontWeight","letterSpacing","textDecoration","overlays","type","typeQualifier","publicId","effects","layerEffects","_excluded","hasPublicId","hasText","hasPosition","layerTransformation","replace","applied","Object","keys","qualifiersPrimary","push","textTransformations","qualifiersText","qualifiersPosition","length","addTransformation","rawTransformations","transformation","removeBackground","underlays","zoompan","zoompanEffect","loopEffect","loop","transformationPlugins","removeBackgroundPlugin","croppingPlugin","effectsPlugin","overlaysPlugin","underlaysPlugin","zoompanPlugin","rawTransformationsPlugin","cloudinaryLoader","defaultOptions","quality","pluginOptions","CldImage","CLD_OPTIONS","Error","imageProps","filter","blurDataURL","_jsx","Image"],"mappings":"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"}
1
+ {"version":3,"file":"next-cloudinary.umd.js","sources":["../src/lib/cloudinary.js","../src/plugins/cropping.js","../src/plugins/effects.js","../src/constants/qualifiers.js","../src/plugins/overlays.js","../src/plugins/raw-transformations.js","../src/plugins/remove-background.js","../src/plugins/underlays.js","../src/plugins/zoompan.js","../src/loaders/cloudinary-loader.js","../src/components/CldImage/CldImage.js"],"sourcesContent":["import { Cloudinary } from '@cloudinary/url-gen';\n\nconst cld = new Cloudinary({\n cloud: {\n cloudName: process.env.NEXT_PUBLIC_CLOUDINARY_CLOUD_NAME\n },\n url: {\n // Used to avoid issues with SSR particularly for the blurred placeholder\n analytics: false\n }\n});\n\n/**\n * Retrieves the public id of a cloudiary image url. If no url is recognized it returns the parameter it self.\n * If it's recognized that is a url and it's not possible to get the public id, it warns the user.\n *\n * @param {string} src The cloudiary url or public id.\n *\n * @return {string} The images public id\n */\nexport function getPublicId(src) {\n if ( src.includes('res.cloudinary.com') ) {\n const regexWithTransformations = /(https?)\\:\\/\\/(res.cloudinary.com)\\/([^\\/]+)\\/(image|video|raw)\\/(upload|authenticated)\\/(.*)\\/(v[0-9]+)\\/(.+)(?:\\.[a-z]{3})?/\n const regexWithoutTransformations = /(https?)\\:\\/\\/(res.cloudinary.com)\\/([^\\/]+)\\/(image|video|raw)\\/(upload|authenticated)\\/(v[0-9]+)\\/(.+)(?:\\.[a-z]{3})?/\n\n const withTransformations = src.match(regexWithTransformations)\n const withoutTransformations = src.match(regexWithoutTransformations)\n\n if ( withTransformations ) {\n return withTransformations[withTransformations.length - 1]\n } else if ( withoutTransformations ) {\n return withoutTransformations[withoutTransformations.length - 1]\n } else {\n console.warn(`Not possible to retrieve the publicUrl from ${src}, make sure it's a valid cloudinary image url.`)\n }\n }\n return src;\n}\n\n/**\n * createPlaceholderUrl\n */\n\nexport function createPlaceholderUrl({ src, placeholder }) {\n const cldImage = cld.image(src)\n .resize('c_limit,w_100')\n .delivery('q_1')\n .format('auto');\n\n if ( placeholder === 'grayscale' ) {\n cldImage.effect('e_grayscale');\n }\n\n if ( placeholder.includes('color:') ) {\n const color = placeholder.split(':').splice(1).join(':')\n cldImage.effect('e_grayscale');\n cldImage.effect(`e_colorize:60,co_${color}`);\n }\n\n return cldImage.toURL();\n}\n","const cropsGravityAuto = [ 'crop', 'fill', 'lfill', 'fill_pad', 'thumb' ];\n\nexport const props = ['crop', 'gravity'];\n\nexport function plugin({ cldImage, options, cldOptions } = {}) {\n const { width, height } = options;\n const { crop = 'limit', gravity } = cldOptions;\n\n let transformationString = `c_${crop},w_${width}`;\n\n if ( !gravity && cropsGravityAuto.includes(crop) ) {\n gravity = 'auto';\n }\n\n if ( !['limit'].includes(crop) ) {\n transformationString = `${transformationString},h_${height}`;\n }\n\n if ( gravity ) {\n if ( gravity === 'auto' && !cropsGravityAuto.includes(crop) ) {\n console.warn('Auto gravity can only be used with crop, fill, lfill, fill_pad or thumb. Not applying gravity.');\n } else {\n transformationString = `${transformationString},g_${gravity}`;\n }\n }\n\n cldImage.resize(transformationString);\n}","const params = [\n 'art',\n {\n prop: 'autoBrightness',\n effect: 'auto_brightness',\n },\n {\n prop: 'autoColor',\n effect: 'auto_color',\n },\n {\n prop: 'autoContrast',\n effect: 'auto_contrast',\n },\n {\n prop: 'assistColorblind',\n effect: 'assist_colorblind',\n },\n 'blackwhite',\n 'blur',\n {\n prop: 'blurFaces',\n effect: 'blur_faces',\n },\n {\n prop: 'blurRegion',\n effect: 'blur_region',\n },\n 'brightness',\n {\n prop: 'brightnessHSB',\n effect: 'brightness_hsb',\n },\n 'cartoonify',\n 'colorize',\n 'contrast',\n 'distort',\n {\n prop: 'fillLight',\n effect: 'fill_light',\n },\n 'gamma',\n {\n prop: 'gradientFade',\n effect: 'gradient_fade',\n },\n 'grayscale',\n 'improve',\n 'negate',\n {\n prop: 'oilPaint',\n effect: 'oil_paint',\n },\n 'outline',\n 'pixelate',\n {\n prop: 'pixelateFaces',\n effect: 'pixelate_faces',\n },\n {\n prop: 'pixelateRegion',\n effect: 'pixelate_region',\n },\n 'redeye',\n {\n prop: 'replaceColor',\n effect: 'replace_color',\n },\n 'saturation',\n 'sepia',\n 'shadow',\n 'sharpen',\n 'shear',\n {\n prop: 'simulateColorblind',\n effect: 'simulate_colorblind',\n },\n 'tint',\n {\n prop: 'unsharpMask',\n effect: 'unsharp_mask',\n },\n 'vectorize',\n 'vibrance',\n 'vignette',\n];\n\nexport const props = params.map(param => param.prop || param);\n\nexport function plugin({ cldImage, cldOptions } = {}) {\n params.forEach(key => {\n\n const prop = key.prop || key;\n const effect = key.effect || key;\n\n if ( prop === 'oilPaint' && cldOptions[prop]) {\n console.log('cldOptions[prop]', cldOptions[prop])\n }\n if ( cldOptions[prop] === true ) {\n cldImage.effect(`e_${effect}`);\n } else if ( typeof cldOptions[prop] === 'string' ) {\n cldImage.effect(`e_${effect}:${cldOptions[prop]}`);\n }\n });\n}","// aspectRatio\n\nexport const primary = {\n aspectRatio: {\n qualifier: 'ar'\n },\n crop: {\n qualifier: 'c'\n },\n gravity: {\n qualifier: 'g'\n },\n height: {\n qualifier: 'h'\n },\n width: {\n qualifier: 'w'\n },\n};\n\nexport const position = {\n angle: {\n qualifier: 'a'\n },\n gravity: {\n qualifier: 'g'\n },\n x: {\n qualifier: 'x'\n },\n y: {\n qualifier: 'y'\n },\n}\n\nexport const text = {\n color: {\n qualifier: 'co',\n location: 'primary'\n },\n fontFamily: {\n qualifier: false\n },\n fontSize: {\n qualifier: false\n },\n fontWeight: {\n qualifier: false\n },\n letterSpacing: {\n qualifier: 'letter_spacing'\n },\n textDecoration: {\n qualifier: false\n }\n}","import {\n primary as qualifiersPrimary,\n text as qualifiersText,\n position as qualifiersPosition\n} from '../constants/qualifiers';\n\nexport const props = ['overlays'];\n\nexport function plugin({ cldImage, options, cldOptions } = {}) {\n const { overlays = [] } = cldOptions;\n\n const type = 'overlay';\n const typeQualifier = 'l';\n\n overlays.forEach(({ publicId, position, text, effects: layerEffects = [], ...options }) => {\n const hasPublicId = typeof publicId === 'string';\n const hasText = typeof text === 'object';\n const hasPosition = typeof position === 'object';\n\n if ( !hasPublicId && !hasText ) {\n console.warn(`An ${type} is missing Public ID or Text`);\n return;\n }\n\n // Start to construct the transformation string using text or the public ID\n // if it's image-based\n\n let layerTransformation;\n\n if ( hasText ) {\n layerTransformation = `${typeQualifier}_text`;\n } else {\n layerTransformation = `${typeQualifier}_${publicId.replace(/\\//g, ':')}`;\n }\n\n // Begin organizing transformations based on what it is and the location\n // it needs to be placed in the URL\n\n const primary = [];\n const applied = [];\n\n // Gemeral options\n\n Object.keys(options).forEach(key => {\n if ( !qualifiersPrimary[key] ) return;\n const { qualifier } = qualifiersPrimary[key];\n primary.push(`${qualifier}_${options[key]}`);\n });\n\n // Layer effects\n\n layerEffects.forEach(effect => {\n Object.keys(effect).forEach(key => {\n if ( !qualifiersPrimary[key] ) return;\n const { qualifier } = qualifiersPrimary[key];\n primary.push(`${qualifier}_${effect[key]}`);\n });\n });\n\n // Text styling\n\n if ( hasText ) {\n const textTransformations = [];\n\n Object.keys(text).forEach(key => {\n if ( !qualifiersText[key] ) return;\n\n const { qualifier, location } = qualifiersText[key];\n\n if ( location === 'primary' ) {\n primary.push(`${qualifier}_${text[key]}`);\n } else {\n textTransformations.push(text[key]);\n }\n });\n\n layerTransformation = `${layerTransformation}:${textTransformations.join('_')}:${text.text}`\n }\n\n // Positioning\n\n if ( hasPosition ) {\n Object.keys(position).forEach(key => {\n if ( !qualifiersPosition[key] ) return;\n\n const { qualifier } = qualifiersPosition[key];\n\n applied.push(`${qualifier}_${position[key]}`);\n });\n }\n\n // Add all primary transformations\n\n layerTransformation = `${layerTransformation},${primary.join(',')}`;\n\n // Add all applied transformations\n\n layerTransformation = `${layerTransformation}/fl_layer_apply`;\n\n if ( applied.length > 0 ) {\n layerTransformation = `${layerTransformation},${applied.join(',')}`;\n }\n\n // Finally add it to the image\n\n cldImage.addTransformation(layerTransformation);\n });\n}","export const props = ['rawTransformations'];\n\nexport function plugin({ cldImage, cldOptions } = {}) {\n const { rawTransformations = [] } = cldOptions;\n\n rawTransformations.forEach(transformation => {\n cldImage.addTransformation(transformation);\n });\n}","export const props = ['removeBackground'];\n\nexport function plugin({ cldImage, options, cldOptions } = {}) {\n const { removeBackground = false } = cldOptions;\n if ( removeBackground ) {\n cldImage.effect('e_background_removal');\n }\n}","import {\n primary as qualifiersPrimary,\n text as qualifiersText,\n position as qualifiersPosition\n} from '../constants/qualifiers';\n\nexport const props = ['underlays'];\n\nexport function plugin({ cldImage, options, cldOptions } = {}) {\n const { underlays = [] } = cldOptions;\n\n const type = 'underlay';\n const typeQualifier = 'u';\n\n underlays.forEach(({ publicId, type, position, text, effects: layerEffects = [], ...options }) => {\n const hasPublicId = typeof publicId === 'string';\n const hasPosition = typeof position === 'object';\n\n if ( !hasPublicId ) {\n console.warn(`An ${type} is missing a Public ID`);\n return;\n }\n\n // Start to construct the transformation string using text or the public ID\n // if it's image-based\n\n let layerTransformation = `${typeQualifier}_${publicId.replace(/\\//g, ':')}`;\n\n // Begin organizing transformations based on what it is and the location\n // it needs to be placed in the URL\n\n const primary = [];\n const applied = [];\n\n // Gemeral options\n\n Object.keys(options).forEach(key => {\n if ( !qualifiersPrimary[key] ) return;\n const { qualifier } = qualifiersPrimary[key];\n primary.push(`${qualifier}_${options[key]}`);\n });\n\n // Layer effects\n\n layerEffects.forEach(effect => {\n Object.keys(effect).forEach(key => {\n if ( !qualifiersPrimary[key] ) return;\n const { qualifier } = qualifiersPrimary[key];\n primary.push(`${qualifier}_${effect[key]}`);\n });\n });\n\n // Positioning\n\n if ( hasPosition ) {\n Object.keys(position).forEach(key => {\n if ( !qualifiersPosition[key] ) return;\n\n const { qualifier } = qualifiersPosition[key];\n\n applied.push(`${qualifier}_${position[key]}`);\n });\n }\n\n // Add all primary transformations\n\n layerTransformation = `${layerTransformation},${primary.join(',')}`;\n\n // Add all applied transformations\n\n layerTransformation = `${layerTransformation}/fl_layer_apply`;\n\n if ( applied.length > 0 ) {\n layerTransformation = `${layerTransformation},${applied.join(',')}`;\n }\n\n // Finally add it to the image\n\n cldImage.addTransformation(layerTransformation);\n });\n}","export const props = ['zoompan'];\n\nexport function plugin({ cldImage, cldOptions } = {}) {\n const { zoompan = false } = cldOptions;\n const options = {};\n\n if ( zoompan === true ) {\n cldImage.effect('e_zoompan');\n } else if ( typeof zoompan === 'string' ) {\n if ( zoompan === 'loop' ) {\n cldImage.effect('e_zoompan');\n cldImage.effect('e_loop');\n } else {\n cldImage.effect(`e_zoompan:${zoompan}`);\n }\n } else if ( typeof zoompan === 'object' ) {\n let zoompanEffect = 'e_zoompan';\n\n if ( typeof zoompan.options === 'string' ) {\n zoompanEffect = `${zoompanEffect}${zoompan.options}`;\n }\n\n cldImage.effect(zoompanEffect);\n\n let loopEffect;\n\n if ( zoompan.loop === true ) {\n loopEffect = 'e_loop';\n } else if ( typeof zoompan.loop === 'string' ) {\n loopEffect = `e_loop${zoompan.loop}`;\n }\n\n if ( loopEffect ) {\n cldImage.effect(loopEffect);\n }\n }\n\n if ( zoompan !== false ) {\n options.format = 'gif';\n }\n\n return {\n options\n }\n}","import { Cloudinary } from '@cloudinary/url-gen';\nimport { getPublicId } from '../lib/cloudinary';\n\nimport * as croppingPlugin from '../plugins/cropping';\nimport * as effectsPlugin from '../plugins/effects';\nimport * as overlaysPlugin from '../plugins/overlays';\nimport * as rawTransformationsPlugin from '../plugins/raw-transformations';\nimport * as removeBackgroundPlugin from '../plugins/remove-background';\nimport * as underlaysPlugin from '../plugins/underlays';\nimport * as zoompanPlugin from '../plugins/zoompan';\n\nimport {\n primary as qualifiersPrimary,\n text as qualifiersText,\n position as qualifiersPosition\n} from '../constants/qualifiers';\n\nlet cld;\n\nexport const transformationPlugins = [\n // Background Removal must always come first\n removeBackgroundPlugin,\n\n croppingPlugin,\n effectsPlugin,\n overlaysPlugin,\n underlaysPlugin,\n zoompanPlugin,\n\n // Raw transformations needs to be last simply to make sure\n // it's always expected to applied the same way\n\n rawTransformationsPlugin\n];\n\nexport function cloudinaryLoader(defaultOptions, cldOptions, cldConfig = {}) {\n if ( !cld ) {\n cld = new Cloudinary({\n cloud: {\n cloudName: process.env.NEXT_PUBLIC_CLOUDINARY_CLOUD_NAME\n },\n url: {\n // Used to avoid issues with SSR particularly for the blurred placeholder\n analytics: false\n },\n ...cldConfig\n });\n }\n\n const options = {\n format: 'auto',\n quality: 'auto',\n ...defaultOptions\n };\n const publicId = getPublicId(options.src);\n\n const cldImage = cld.image(publicId);\n\n transformationPlugins.forEach(({ plugin }) => {\n const { options: pluginOptions } = plugin({\n cldImage,\n options,\n cldOptions\n }) || {};\n\n if ( pluginOptions?.format ) {\n options.format = pluginOptions.format;\n }\n });\n\n return cldImage\n .format(options.format)\n .delivery(`q_${options.quality}`)\n .toURL();\n}","import Image from 'next/image';\n\nimport { createPlaceholderUrl, getPublicId } from '../../lib/cloudinary';\nimport { cloudinaryLoader, transformationPlugins } from '../../loaders/cloudinary-loader';\n\nconst CldImage = props => {\n\n const CLD_OPTIONS = [];\n\n transformationPlugins.forEach(({ props = [] }) => {\n props.forEach(prop => {\n if ( CLD_OPTIONS.includes(prop) ) {\n throw new Error(`Option ${prop} already exists!`);\n }\n CLD_OPTIONS.push(prop);\n });\n })\n\n // Construct the base Image component props by filtering out Cloudinary-specific props\n\n const imageProps = {};\n\n Object.keys(props)\n .filter(key => !CLD_OPTIONS.includes(key))\n .forEach(key => imageProps[key] = props[key]);\n\n // Construct Cloudinary-specific props by looking for values for any of the supported prop keys\n\n const cldOptions = {};\n\n CLD_OPTIONS.forEach(key => {\n if ( props[key] ) {\n cldOptions[key] = props[key];\n }\n });\n\n // If we see a placeholder option, configure a Cloudinary-based URL.\n // The resulting image will always be blurred per Next.js, so we're\n // limited on options for placeholders.\n //\n // We need to do this logic here as we potentially need to mutate\n // an Image component prop as opposed to simply the URL\n //\n // https://nextjs.org/docs/api-reference/next/image#blurdataurl\n\n if ( imageProps.placeholder ) {\n const publicId = getPublicId(props.src);\n\n imageProps.blurDataURL = createPlaceholderUrl({\n src: publicId,\n placeholder: props.placeholder\n });\n\n if ( imageProps.placeholder !== 'blur' ) {\n imageProps.placeholder = 'blur';\n }\n }\n\n return (\n <Image\n {...imageProps}\n loader={(options) => cloudinaryLoader({ ...imageProps, options }, cldOptions)}\n />\n );\n}\n\nexport default CldImage;"],"names":["cld","Cloudinary","cloud","cloudName","process","env","NEXT_PUBLIC_CLOUDINARY_CLOUD_NAME","url","analytics","getPublicId","src","includes","regexWithTransformations","regexWithoutTransformations","withTransformations","match","withoutTransformations","length","console","warn","createPlaceholderUrl","placeholder","cldImage","image","resize","delivery","format","effect","color","split","splice","join","toURL","cropsGravityAuto","props","plugin","options","cldOptions","width","height","crop","gravity","transformationString","params","prop","map","param","forEach","key","log","primary","aspectRatio","qualifier","position","angle","x","y","text","location","fontFamily","fontSize","fontWeight","letterSpacing","textDecoration","overlays","type","typeQualifier","publicId","effects","layerEffects","_excluded","hasPublicId","hasText","hasPosition","layerTransformation","replace","applied","Object","keys","qualifiersPrimary","push","textTransformations","qualifiersText","qualifiersPosition","addTransformation","rawTransformations","transformation","removeBackground","underlays","zoompan","zoompanEffect","loopEffect","loop","transformationPlugins","removeBackgroundPlugin","croppingPlugin","effectsPlugin","overlaysPlugin","underlaysPlugin","zoompanPlugin","rawTransformationsPlugin","cloudinaryLoader","defaultOptions","cldConfig","quality","pluginOptions","CldImage","CLD_OPTIONS","Error","imageProps","filter","blurDataURL","_jsx","Image"],"mappings":"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"}
package/jest.config.js CHANGED
@@ -1,8 +1,3 @@
1
- /*
2
- * For a detailed explanation regarding each configuration property, visit:
3
- * https://jestjs.io/docs/configuration
4
- */
5
-
6
1
  module.exports = {
7
2
  // Indicates which provider should be used to instrument code for coverage
8
3
  coverageProvider: "v8",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "next-cloudinary",
3
- "version": "0.1.0",
3
+ "version": "0.1.1",
4
4
  "main": "dist/next-cloudinary.umd.js",
5
5
  "module": "dist/next-cloudinary.module.js",
6
6
  "umd:main": "dist/next-cloudinary.umd.js",
@@ -20,6 +20,7 @@
20
20
  "@babel/preset-env": "^7.19.3",
21
21
  "@types/jest": "^29.1.1",
22
22
  "babel-jest": "^29.1.2",
23
+ "dotenv": "^16.0.3",
23
24
  "jest": "^29.1.2",
24
25
  "jest-environment-jsdom": "^29.1.2",
25
26
  "microbundle": "^0.15.1"
@@ -0,0 +1,68 @@
1
+ import { cloudinaryLoader } from '../../src/loaders/cloudinary-loader';
2
+
3
+ const cldConfig = {
4
+ cloud: {
5
+ cloudName: 'test-cloud'
6
+ },
7
+ }
8
+
9
+ describe('Cloudinary Loader', () => {
10
+ describe('cloudinaryLoader', () => {
11
+ it('should return a Cloudinary URL with basic features', async () => {
12
+ const imageProps = {
13
+ height: '600',
14
+ sizes: '100vw',
15
+ src: 'images/turtle',
16
+ width: '960',
17
+ }
18
+
19
+ const options = {
20
+ quality: 75,
21
+ src: 'images/turtle',
22
+ width: 960,
23
+ }
24
+
25
+ const cldOptions = {};
26
+
27
+ const result = cloudinaryLoader({ ...imageProps, options }, cldOptions, cldConfig);
28
+
29
+ expect(result).toBe('https://res.cloudinary.com/test-cloud/image/upload/c_limit,w_960/f_auto/q_auto/v1/images/turtle')
30
+ });
31
+
32
+ it('should return a Cloudinary URL with advanced options', () => {
33
+ const imageProps = {
34
+ width: '987',
35
+ height: '1481',
36
+ src: 'images/woman-headphones',
37
+ sizes: '100vw',
38
+ }
39
+
40
+ const options = {
41
+ src: 'images/woman-headphones',
42
+ width: 640
43
+ }
44
+
45
+ const cldOptions = {
46
+ removeBackground: true,
47
+ crop: 'thumb',
48
+ gravity: 'faces',
49
+ tint: '40:253f8c',
50
+ underlays: [
51
+ {
52
+ publicId: 'images/city-skyline',
53
+ width: 987,
54
+ height: 987,
55
+ crop: 'fill'
56
+ }
57
+ ]
58
+ };
59
+
60
+ const result = cloudinaryLoader({ ...imageProps, options }, cldOptions);
61
+
62
+ expect(result).toBe('https://res.cloudinary.com/test-cloud/image/upload/e_background_removal/c_thumb,w_987,h_1481,g_faces/e_tint:40:253f8c/u_images:city-skyline,w_987,h_987,c_fill/fl_layer_apply/f_auto/q_auto/v1/images/woman-headphones')
63
+ });
64
+ })
65
+ });
66
+
67
+
68
+