next-cloudinary 2.0.0 → 2.0.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
@@ -20,6 +20,8 @@ High-performance image delivery and uploading at scale in Next.js powered by Clo
20
20
 
21
21
  <a href="#-features">Features</a> • <a href="#-getting-started">Getting Started</a> • <a href="#%EF%B8%8F-community--support">Community & Support</a> • <a href="#-contributing">Contributing</a>
22
22
 
23
+ **This plugin is a community library and not officially supported by Cloudinary.**
24
+
23
25
  ## ✨ Features
24
26
 
25
27
  * Automatically optimize images and deliver in modern formats
@@ -31,7 +33,6 @@ High-performance image delivery and uploading at scale in Next.js powered by Clo
31
33
  * Drop-in Upload Widget
32
34
  * ...all at scale with Cloudinary
33
35
 
34
- **This plugin is a community library and not officially supported by Cloudinary.**
35
36
 
36
37
  ## 🚀 Getting Started
37
38
 
@@ -42,7 +42,7 @@ function _objectWithoutPropertiesLoose(source, excluded) {
42
42
  }
43
43
 
44
44
  var name = "next-cloudinary";
45
- var version = "2.0.0";
45
+ var version = "2.0.1";
46
46
  var main = "dist/next-cloudinary.umd.js";
47
47
  var module$1 = "dist/next-cloudinary.module.js";
48
48
  var source = "src/index.ts";
@@ -55,7 +55,7 @@ var scripts = {
55
55
  };
56
56
  var dependencies = {
57
57
  "@cloudinary-util/url-loader": "^1.2.4",
58
- "@cloudinary-util/util": "^1.1.1",
58
+ "@cloudinary-util/util": "^1.2.0",
59
59
  "@cloudinary/url-gen": "^1.8.6"
60
60
  };
61
61
  var devDependencies = {
@@ -234,7 +234,7 @@ var CldImage = function CldImage(props) {
234
234
  return Promise.reject(e);
235
235
  }
236
236
  };
237
- var CLD_OPTIONS = ['deliveryType'];
237
+ var CLD_OPTIONS = ['deliveryType', 'preserveTransformations'];
238
238
  urlLoader.transformationPlugins.forEach(function (_ref) {
239
239
  var _ref$props = _ref.props,
240
240
  props = _ref$props === void 0 ? [] : _ref$props;
@@ -245,7 +245,6 @@ var CldImage = function CldImage(props) {
245
245
  CLD_OPTIONS.push(prop);
246
246
  });
247
247
  });
248
- // Construct the base Image component props by filtering out Cloudinary-specific props
249
248
  var imageProps = {
250
249
  alt: props.alt,
251
250
  src: props.src
@@ -261,11 +260,10 @@ var CldImage = function CldImage(props) {
261
260
  var _useState = react.useState(defaultImgKey),
262
261
  imgKey = _useState[0],
263
262
  setImgKey = _useState[1];
264
- // Construct Cloudinary-specific props by looking for values for any of the supported prop keys
265
263
  var cldOptions = {};
266
264
  CLD_OPTIONS.forEach(function (key) {
267
265
  if (props[key]) {
268
- cldOptions[key] = props[key];
266
+ cldOptions[key] = props[key] || undefined;
269
267
  }
270
268
  });
271
269
  // If we see a placeholder option, configure a Cloudinary-based URL.
@@ -294,10 +292,16 @@ var CldImage = function CldImage(props) {
294
292
  imageProps.placeholder = 'blur';
295
293
  }
296
294
  }
297
- if (props.src && props.preserveTransformations) {
298
- var transformations = util.getTransformations(props.src, props.preserveTransformations);
299
- var rawTransformations = imageProps.rawTransformations ? [].concat(imageProps.rawTransformations) : [];
300
- imageProps.rawTransformations = [].concat(rawTransformations, transformations);
295
+ // Try to preserve the original transformations from the Cloudinary URL passed in
296
+ // to the component. This only works if the URL has a version number on it and otherwise
297
+ // will fail to load
298
+ if (props.preserveTransformations) {
299
+ try {
300
+ var transformations = util.getTransformations(props.src);
301
+ cldOptions.rawTransformations = [].concat(transformations.flat(), props.rawTransformations || []);
302
+ } catch (e) {
303
+ console.warn("Failed to preserve transformations: " + e.message);
304
+ }
301
305
  }
302
306
  return /*#__PURE__*/jsxRuntime.jsx(Image__default["default"], _extends({}, imageProps, {
303
307
  loader: function loader(loaderOptions) {
@@ -1 +1 @@
1
- {"version":3,"file":"next-cloudinary.js","sources":["../src/constants/analytics.js","../src/lib/cloudinary.ts","../src/loaders/cloudinary-loader.js","../src/components/CldImage/CldImage.tsx","../src/components/CldOgImage/CldOgImage.tsx","../src/components/CldUploadWidget/CldUploadWidget.tsx","../src/components/CldUploadButton/CldUploadButton.tsx"],"sourcesContent":["import nextPkg from 'next/package.json';\nimport pkg from '../../package.json';\n\nexport const NEXT_CLOUDINARY_ANALYTICS_ID = 'V';\nexport const NEXT_CLOUDINARY_VERSION = pkg.version;\nexport const NEXT_VERSION = nextPkg.version;","import { constructCloudinaryUrl } from '@cloudinary-util/url-loader';\n\nimport { NEXT_CLOUDINARY_ANALYTICS_ID, NEXT_CLOUDINARY_VERSION, NEXT_VERSION } from '../constants/analytics';\n\n/**\n * createPlaceholderUrl\n */\n\nexport function createPlaceholderUrl({ src, placeholder = true }: { src?: any, placeholder?: boolean | string, config?: any }) {\n const rawTransformations: string[] = [];\n\n if ( placeholder === 'grayscale' ) {\n rawTransformations.push('e_grayscale');\n }\n\n if ( typeof placeholder === 'string' && placeholder.includes('color:') ) {\n const color = placeholder.split(':').splice(1).join(':')\n rawTransformations.push('e_grayscale');\n rawTransformations.push(`e_colorize:60,co_${color}`);\n }\n\n return constructCloudinaryUrl({\n options: {\n src,\n width: 100,\n quality: 1,\n rawTransformations,\n },\n config: {\n cloud: {\n cloudName: process.env.NEXT_PUBLIC_CLOUDINARY_CLOUD_NAME\n }\n },\n analytics: {\n sdkCode: NEXT_CLOUDINARY_ANALYTICS_ID,\n sdkSemver: NEXT_CLOUDINARY_VERSION,\n techVersion: NEXT_VERSION,\n feature: ''\n }\n });\n}\n\n/**\n * pollForProcessingImage\n */\n\nexport async function pollForProcessingImage(options): Promise<boolean> {\n const { src } = options;\n try {\n await new Promise((resolve, reject) => {\n fetch(src).then(res => {\n if ( !res.ok ) {\n reject(res);\n return;\n }\n resolve(res);\n });\n });\n } catch(e: any) {\n if ( e.status === 423 ) {\n return await pollForProcessingImage(options);\n }\n return false;\n }\n return true;\n}","import { constructCloudinaryUrl } from '@cloudinary-util/url-loader';\n\nimport { NEXT_CLOUDINARY_ANALYTICS_ID, NEXT_CLOUDINARY_VERSION, NEXT_VERSION } from '../constants/analytics';\n\nexport function cloudinaryLoader({ loaderOptions, imageProps, cldOptions, cldConfig = {} }) {\n const options = {\n ...imageProps,\n ...cldOptions\n }\n\n options.width = parseInt(options.width);\n options.height = parseInt(options.height);\n\n // The loader options are used to create dynamic sizing when working with responsive images\n // so these should override the default options collected from the props alone if\n // the results are different. While we don't always use the height in the loader logic,\n // we always pass it here, as the usage is determined later based on cropping.js\n\n if ( loaderOptions?.width && loaderOptions.width !== options.width ) {\n const multiplier = loaderOptions.width / options.width;\n options.widthResize = loaderOptions.width;\n options.heightResize = Math.round(options.height * multiplier);\n }\n\n return constructCloudinaryUrl({\n options,\n config: {\n cloud: {\n cloudName: process.env.NEXT_PUBLIC_CLOUDINARY_CLOUD_NAME\n },\n ...cldConfig\n },\n analytics: {\n sdkCode: NEXT_CLOUDINARY_ANALYTICS_ID,\n sdkSemver: NEXT_CLOUDINARY_VERSION,\n techVersion: NEXT_VERSION,\n feature: ''\n }\n });\n}","'use client';\n\nimport { useState } from 'react';\nimport Image from 'next/image';\nimport { getTransformations, getPublicId } from '@cloudinary-util/util';\nimport { transformationPlugins } from '@cloudinary-util/url-loader';\n\nimport { createPlaceholderUrl, pollForProcessingImage } from '../../lib/cloudinary';\n\nimport { cloudinaryLoader } from '../../loaders/cloudinary-loader';\n\ndeclare type PlaceholderValue = 'blur' | 'empty'; // this is from next/image, but isn't exported\n\nconst CldImage = props => {\n const CLD_OPTIONS = [\n 'deliveryType'\n ];\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 rawTransformations?: string[];\n blurDataURL?: string;\n placeholder?: PlaceholderValue;\n alt: string;\n src: string;\n } = {\n alt: props.alt,\n src: props.src\n };\n\n Object.keys(props)\n .filter(key => !CLD_OPTIONS.includes(key))\n .forEach(key => imageProps[key] = props[key]);\n\n const defaultImgKey = Object.keys(imageProps).map(key => `${key}:${imageProps[key]}`).join(';');\n const [imgKey, setImgKey] = useState(defaultImgKey);\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 let publicId;\n\n if ( props.src.startsWith('https://') ) {\n try {\n publicId = getPublicId(props.src);\n } catch(e) {}\n }\n\n if ( !publicId ) {\n publicId = props.src;\n }\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 if (props.src && props.preserveTransformations) {\n const transformations = getTransformations(props.src,props.preserveTransformations);\n const rawTransformations = imageProps.rawTransformations ? [...imageProps.rawTransformations] : []\n imageProps.rawTransformations = [...rawTransformations,...transformations,];\n }\n\n /**\n * handleOnError\n */\n\n async function handleOnError(options) {\n const result = await pollForProcessingImage({ src: options.target.src })\n if ( result ) {\n setImgKey(`${defaultImgKey};${Date.now()}`);\n }\n }\n\n return (\n <Image\n key={imgKey}\n {...imageProps}\n loader={(loaderOptions) => cloudinaryLoader({ loaderOptions, imageProps, cldOptions })}\n onError={handleOnError}\n />\n );\n}\n\nexport default CldImage;\n","import Head from 'next/head';\nimport { constructCloudinaryUrl } from '@cloudinary-util/url-loader';\n\nimport { NEXT_CLOUDINARY_ANALYTICS_ID, NEXT_CLOUDINARY_VERSION, NEXT_VERSION } from '../../constants/analytics';\n\nconst IMAGE_WIDTH = 2400;\nconst IMAGE_HEIGHT = 1200;\n\nconst TWITTER_CARD = 'summary_large_image';\n\nconst CldOgImage = ({ excludeTags = [] as string[], twitterTitle, ...props }) => {\n const options = {\n ...props,\n alt: props.alt,\n crop: props.crop || 'fill',\n gravity: props.gravity || 'center',\n height: props.height || IMAGE_HEIGHT,\n src: props.src,\n width: props.width || IMAGE_WIDTH,\n }\n\n const ogImageUrl = constructCloudinaryUrl({\n options,\n config: {\n cloud: {\n cloudName: process.env.NEXT_PUBLIC_CLOUDINARY_CLOUD_NAME\n }\n },\n analytics: {\n sdkCode: NEXT_CLOUDINARY_ANALYTICS_ID,\n sdkSemver: NEXT_CLOUDINARY_VERSION,\n techVersion: NEXT_VERSION,\n feature: ''\n }\n });\n\n // We need to include the tags within the Next.js Head component rather than\n // direcly adding them inside of the Head otherwise we get unexpected results\n\n return (\n // @ts-ignore\n <Head>\n <meta property=\"og:image\" content={ogImageUrl} />\n <meta property=\"og:image:secure_url\" content={ogImageUrl} />\n <meta property=\"og:image:width\" content={options.width} />\n <meta property=\"og:image:height\" content={options.height} />\n\n {options.alt && (\n <meta property=\"og:image:alt\" content={options.alt} />\n )}\n\n {/* Required for summary_large_image, exclude vai excludeTags */}\n {/* https://developer.twitter.com/en/docs/twitter-for-websites/cards/overview/summary-card-with-large-image */}\n\n {!excludeTags.includes('twitter:title') && (\n <meta property=\"twitter:title\" content={twitterTitle || ' '} />\n )}\n\n <meta property=\"twitter:card\" content={TWITTER_CARD} />\n <meta property=\"twitter:image\" content={ogImageUrl} />\n </Head>\n );\n}\n\nexport default CldOgImage;","import { useRef } from 'react';\nimport Script from 'next/script';\n\nconst CldUploadWidget = ({\n children,\n onUpload,\n options,\n signatureEndpoint,\n uploadPreset,\n}) => {\n const cloudinary = useRef<any>();\n const widget = useRef();\n\n const signed = !!signatureEndpoint;\n\n /**\n * generateSignature\n * @description Makes a request to an endpoint to sign Cloudinary parameters as part of widget creation\n */\n\n function generateSignature(callback, paramsToSign) {\n fetch(signatureEndpoint, {\n method: \"POST\",\n body: JSON.stringify({\n paramsToSign,\n }),\n })\n .then((r) => r.json())\n .then(({ signature }) => {\n callback(signature);\n });\n }\n\n /**\n * createWidget\n * @description Creates a new instance of the Cloudinary widget and stores in a ref\n */\n\n function createWidget() {\n // When creating a signed upload, you need to provide both your Cloudinary API Key\n // as well as a signature generator function that will sign any paramters\n // either on page load or during the upload process. Read more about signed uploads at:\n // https://cloudinary.com/documentation/upload_widget#signed_uploads\n\n const uploadOptions = {\n cloudName: process.env.NEXT_PUBLIC_CLOUDINARY_CLOUD_NAME,\n uploadPreset: uploadPreset || process.env.NEXT_PUBLIC_CLOUDINARY_UPLOAD_PRESET,\n apiKey: process.env.NEXT_PUBLIC_CLOUDINARY_API_KEY,\n ...options,\n };\n\n if ( signed ) {\n uploadOptions.uploadSignature = generateSignature;\n\n // No need for apiSecret here because of api/sign-cloudinary-params\n\n if (!uploadOptions.apiKey) {\n return new Error(\"Signed Upload needs apiKey!\");\n }\n }\n\n return cloudinary.current?.createUploadWidget(\n uploadOptions,\n function (error, result) {\n // The callback is a bit more chatty than failed or success so\n // only trigger when one of those are the case. You can additionally\n // create a separate handler such as onEvent and trigger it on\n // ever occurrence\n if (error || result.event === \"success\") {\n onUpload(error, result, widget?.current);\n }\n }\n );\n }\n\n /**\n * open\n * @description When triggered, uses the current widget instance to open the upload modal\n */\n\n function open() {\n if (!widget?.current) {\n widget.current = createWidget();\n }\n\n // @ts-ignore\n widget?.current && widget.current.open();\n }\n\n /**\n * handleOnLoad\n * @description Stores the Cloudinary window instance to a ref when the widget script loads\n */\n\n function handleOnLoad() {\n // @ts-ignore\n cloudinary.current = window.cloudinary;\n }\n\n return (\n <>\n {children({\n cloudinary: cloudinary.current,\n widget: widget.current,\n open,\n })}\n <Script\n id={`cloudinary-${Math.floor(Math.random() * 100)}`}\n // @ts-ignore\n src=\"https://widget.cloudinary.com/v2.0/global/all.js\"\n onLoad={handleOnLoad}\n onError={(e) => console.error(`Failed to load Cloudinary: ${e.message}`)}\n />\n </>\n );\n};\n\nexport default CldUploadWidget;\n","import CldUploadWidget from '../CldUploadWidget';\n\nconst CldUploadButton = ({\n children,\n onClick,\n onUpload,\n options,\n signatureEndpoint,\n uploadPreset,\n ...props\n}) => {\n return (\n <>\n {/* @ts-ignore */}\n <CldUploadWidget\n onUpload={onUpload}\n options={options}\n signatureEndpoint={signatureEndpoint}\n uploadPreset={uploadPreset}\n >\n {({ open }) => {\n function handleOnClick(e) {\n e.preventDefault();\n\n open();\n\n if ( typeof onClick === 'function' ) {\n onClick(e);\n }\n }\n return (\n <button {...props} onClick={handleOnClick} >\n {children || 'Upload'}\n </button>\n );\n }}\n </CldUploadWidget>\n </>\n );\n};\n\nexport default CldUploadButton;\n"],"names":["NEXT_CLOUDINARY_ANALYTICS_ID","NEXT_CLOUDINARY_VERSION","pkg","version","NEXT_VERSION","nextPkg","pollForProcessingImage","options","src","Promise","resolve","reject","fetch","then","res","ok","e","status","createPlaceholderUrl","placeholder","rawTransformations","push","includes","color","split","splice","join","constructCloudinaryUrl","width","quality","config","cloud","cloudName","process","env","NEXT_PUBLIC_CLOUDINARY_CLOUD_NAME","analytics","sdkCode","sdkSemver","techVersion","feature","cloudinaryLoader","loaderOptions","imageProps","cldOptions","cldConfig","parseInt","height","multiplier","widthResize","heightResize","Math","round","CldImage","props","handleOnError","target","result","setImgKey","defaultImgKey","Date","now","CLD_OPTIONS","transformationPlugins","forEach","prop","Error","alt","Object","keys","filter","key","map","useState","imgKey","publicId","startsWith","getPublicId","blurDataURL","preserveTransformations","transformations","getTransformations","_jsx","Image","IMAGE_WIDTH","IMAGE_HEIGHT","TWITTER_CARD","CldOgImage","excludeTags","twitterTitle","_excluded","crop","gravity","ogImageUrl","_jsxs","Head","CldUploadWidget","children","onUpload","signatureEndpoint","uploadPreset","cloudinary","useRef","widget","signed","generateSignature","callback","paramsToSign","method","body","JSON","stringify","r","json","signature","createWidget","uploadOptions","NEXT_PUBLIC_CLOUDINARY_UPLOAD_PRESET","apiKey","NEXT_PUBLIC_CLOUDINARY_API_KEY","uploadSignature","current","createUploadWidget","error","event","open","handleOnLoad","window","_Fragment","Script","floor","random","console","message","CldUploadButton","onClick","handleOnClick","preventDefault"],"mappings":"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"}
1
+ {"version":3,"file":"next-cloudinary.js","sources":["../src/constants/analytics.js","../src/lib/cloudinary.ts","../src/loaders/cloudinary-loader.js","../src/components/CldImage/CldImage.tsx","../src/components/CldOgImage/CldOgImage.tsx","../src/components/CldUploadWidget/CldUploadWidget.tsx","../src/components/CldUploadButton/CldUploadButton.tsx"],"sourcesContent":["import nextPkg from 'next/package.json';\nimport pkg from '../../package.json';\n\nexport const NEXT_CLOUDINARY_ANALYTICS_ID = 'V';\nexport const NEXT_CLOUDINARY_VERSION = pkg.version;\nexport const NEXT_VERSION = nextPkg.version;","import { constructCloudinaryUrl } from '@cloudinary-util/url-loader';\n\nimport { NEXT_CLOUDINARY_ANALYTICS_ID, NEXT_CLOUDINARY_VERSION, NEXT_VERSION } from '../constants/analytics';\n\n/**\n * createPlaceholderUrl\n */\n\nexport function createPlaceholderUrl({ src, placeholder = true }: { src?: any, placeholder?: boolean | string, config?: any }) {\n const rawTransformations: string[] = [];\n\n if ( placeholder === 'grayscale' ) {\n rawTransformations.push('e_grayscale');\n }\n\n if ( typeof placeholder === 'string' && placeholder.includes('color:') ) {\n const color = placeholder.split(':').splice(1).join(':')\n rawTransformations.push('e_grayscale');\n rawTransformations.push(`e_colorize:60,co_${color}`);\n }\n\n return constructCloudinaryUrl({\n options: {\n src,\n width: 100,\n quality: 1,\n rawTransformations,\n },\n config: {\n cloud: {\n cloudName: process.env.NEXT_PUBLIC_CLOUDINARY_CLOUD_NAME\n }\n },\n analytics: {\n sdkCode: NEXT_CLOUDINARY_ANALYTICS_ID,\n sdkSemver: NEXT_CLOUDINARY_VERSION,\n techVersion: NEXT_VERSION,\n feature: ''\n }\n });\n}\n\n/**\n * pollForProcessingImage\n */\n\nexport async function pollForProcessingImage(options): Promise<boolean> {\n const { src } = options;\n try {\n await new Promise((resolve, reject) => {\n fetch(src).then(res => {\n if ( !res.ok ) {\n reject(res);\n return;\n }\n resolve(res);\n });\n });\n } catch(e: any) {\n if ( e.status === 423 ) {\n return await pollForProcessingImage(options);\n }\n return false;\n }\n return true;\n}","import { constructCloudinaryUrl } from '@cloudinary-util/url-loader';\n\nimport { NEXT_CLOUDINARY_ANALYTICS_ID, NEXT_CLOUDINARY_VERSION, NEXT_VERSION } from '../constants/analytics';\n\nexport function cloudinaryLoader({ loaderOptions, imageProps, cldOptions, cldConfig = {} }) {\n const options = {\n ...imageProps,\n ...cldOptions\n }\n\n options.width = parseInt(options.width);\n options.height = parseInt(options.height);\n\n // The loader options are used to create dynamic sizing when working with responsive images\n // so these should override the default options collected from the props alone if\n // the results are different. While we don't always use the height in the loader logic,\n // we always pass it here, as the usage is determined later based on cropping.js\n\n if ( loaderOptions?.width && loaderOptions.width !== options.width ) {\n const multiplier = loaderOptions.width / options.width;\n options.widthResize = loaderOptions.width;\n options.heightResize = Math.round(options.height * multiplier);\n }\n\n return constructCloudinaryUrl({\n options,\n config: {\n cloud: {\n cloudName: process.env.NEXT_PUBLIC_CLOUDINARY_CLOUD_NAME\n },\n ...cldConfig\n },\n analytics: {\n sdkCode: NEXT_CLOUDINARY_ANALYTICS_ID,\n sdkSemver: NEXT_CLOUDINARY_VERSION,\n techVersion: NEXT_VERSION,\n feature: ''\n }\n });\n}","'use client';\n\nimport { useState } from 'react';\nimport Image from 'next/image';\nimport { getTransformations, getPublicId } from '@cloudinary-util/util';\nimport { transformationPlugins } from '@cloudinary-util/url-loader';\n\nimport { createPlaceholderUrl, pollForProcessingImage } from '../../lib/cloudinary';\n\nimport { cloudinaryLoader } from '../../loaders/cloudinary-loader';\n\nconst CldImage = props => {\n const CLD_OPTIONS = [\n 'deliveryType',\n 'preserveTransformations'\n ];\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 interface ImageProps {\n alt: string;\n blurDataURL?: string;\n placeholder?: 'blur' | 'empty'; // this is from next/image, but isn't exported\n src: string;\n }\n\n const imageProps: ImageProps = {\n alt: props.alt,\n src: props.src\n };\n\n Object.keys(props)\n .filter(key => !CLD_OPTIONS.includes(key))\n .forEach(key => imageProps[key] = props[key]);\n\n const defaultImgKey = Object.keys(imageProps).map(key => `${key}:${imageProps[key]}`).join(';');\n const [imgKey, setImgKey] = useState(defaultImgKey);\n\n // Construct Cloudinary-specific props by looking for values for any of the supported prop keys\n\n interface CldOptions {\n rawTransformations?: string[];\n }\n\n const cldOptions: CldOptions = {};\n\n CLD_OPTIONS.forEach(key => {\n if ( props[key] ) {\n cldOptions[key] = props[key] || undefined;\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 let publicId;\n\n if ( props.src.startsWith('https://') ) {\n try {\n publicId = getPublicId(props.src);\n } catch(e) {}\n }\n\n if ( !publicId ) {\n publicId = props.src;\n }\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 // Try to preserve the original transformations from the Cloudinary URL passed in\n // to the component. This only works if the URL has a version number on it and otherwise\n // will fail to load\n\n if (props.preserveTransformations) {\n try {\n const transformations = getTransformations(props.src);\n cldOptions.rawTransformations = [...transformations.flat(), ...(props.rawTransformations || [])];\n } catch(e) {\n console.warn(`Failed to preserve transformations: ${(e as Error).message}`)\n }\n }\n\n /**\n * handleOnError\n */\n\n async function handleOnError(options) {\n const result = await pollForProcessingImage({ src: options.target.src })\n if ( result ) {\n setImgKey(`${defaultImgKey};${Date.now()}`);\n }\n }\n\n return (\n <Image\n key={imgKey}\n {...imageProps}\n loader={(loaderOptions) => cloudinaryLoader({ loaderOptions, imageProps, cldOptions })}\n onError={handleOnError}\n />\n );\n}\n\nexport default CldImage;\n","import Head from 'next/head';\nimport { constructCloudinaryUrl } from '@cloudinary-util/url-loader';\n\nimport { NEXT_CLOUDINARY_ANALYTICS_ID, NEXT_CLOUDINARY_VERSION, NEXT_VERSION } from '../../constants/analytics';\n\nconst IMAGE_WIDTH = 2400;\nconst IMAGE_HEIGHT = 1200;\n\nconst TWITTER_CARD = 'summary_large_image';\n\nconst CldOgImage = ({ excludeTags = [] as string[], twitterTitle, ...props }) => {\n const options = {\n ...props,\n alt: props.alt,\n crop: props.crop || 'fill',\n gravity: props.gravity || 'center',\n height: props.height || IMAGE_HEIGHT,\n src: props.src,\n width: props.width || IMAGE_WIDTH,\n }\n\n const ogImageUrl = constructCloudinaryUrl({\n options,\n config: {\n cloud: {\n cloudName: process.env.NEXT_PUBLIC_CLOUDINARY_CLOUD_NAME\n }\n },\n analytics: {\n sdkCode: NEXT_CLOUDINARY_ANALYTICS_ID,\n sdkSemver: NEXT_CLOUDINARY_VERSION,\n techVersion: NEXT_VERSION,\n feature: ''\n }\n });\n\n // We need to include the tags within the Next.js Head component rather than\n // direcly adding them inside of the Head otherwise we get unexpected results\n\n return (\n // @ts-ignore\n <Head>\n <meta property=\"og:image\" content={ogImageUrl} />\n <meta property=\"og:image:secure_url\" content={ogImageUrl} />\n <meta property=\"og:image:width\" content={options.width} />\n <meta property=\"og:image:height\" content={options.height} />\n\n {options.alt && (\n <meta property=\"og:image:alt\" content={options.alt} />\n )}\n\n {/* Required for summary_large_image, exclude vai excludeTags */}\n {/* https://developer.twitter.com/en/docs/twitter-for-websites/cards/overview/summary-card-with-large-image */}\n\n {!excludeTags.includes('twitter:title') && (\n <meta property=\"twitter:title\" content={twitterTitle || ' '} />\n )}\n\n <meta property=\"twitter:card\" content={TWITTER_CARD} />\n <meta property=\"twitter:image\" content={ogImageUrl} />\n </Head>\n );\n}\n\nexport default CldOgImage;","import { useRef } from 'react';\nimport Script from 'next/script';\n\nconst CldUploadWidget = ({\n children,\n onUpload,\n options,\n signatureEndpoint,\n uploadPreset,\n}) => {\n const cloudinary = useRef<any>();\n const widget = useRef();\n\n const signed = !!signatureEndpoint;\n\n /**\n * generateSignature\n * @description Makes a request to an endpoint to sign Cloudinary parameters as part of widget creation\n */\n\n function generateSignature(callback, paramsToSign) {\n fetch(signatureEndpoint, {\n method: \"POST\",\n body: JSON.stringify({\n paramsToSign,\n }),\n })\n .then((r) => r.json())\n .then(({ signature }) => {\n callback(signature);\n });\n }\n\n /**\n * createWidget\n * @description Creates a new instance of the Cloudinary widget and stores in a ref\n */\n\n function createWidget() {\n // When creating a signed upload, you need to provide both your Cloudinary API Key\n // as well as a signature generator function that will sign any paramters\n // either on page load or during the upload process. Read more about signed uploads at:\n // https://cloudinary.com/documentation/upload_widget#signed_uploads\n\n const uploadOptions = {\n cloudName: process.env.NEXT_PUBLIC_CLOUDINARY_CLOUD_NAME,\n uploadPreset: uploadPreset || process.env.NEXT_PUBLIC_CLOUDINARY_UPLOAD_PRESET,\n apiKey: process.env.NEXT_PUBLIC_CLOUDINARY_API_KEY,\n ...options,\n };\n\n if ( signed ) {\n uploadOptions.uploadSignature = generateSignature;\n\n // No need for apiSecret here because of api/sign-cloudinary-params\n\n if (!uploadOptions.apiKey) {\n return new Error(\"Signed Upload needs apiKey!\");\n }\n }\n\n return cloudinary.current?.createUploadWidget(\n uploadOptions,\n function (error, result) {\n // The callback is a bit more chatty than failed or success so\n // only trigger when one of those are the case. You can additionally\n // create a separate handler such as onEvent and trigger it on\n // ever occurrence\n if (error || result.event === \"success\") {\n onUpload(error, result, widget?.current);\n }\n }\n );\n }\n\n /**\n * open\n * @description When triggered, uses the current widget instance to open the upload modal\n */\n\n function open() {\n if (!widget?.current) {\n widget.current = createWidget();\n }\n\n // @ts-ignore\n widget?.current && widget.current.open();\n }\n\n /**\n * handleOnLoad\n * @description Stores the Cloudinary window instance to a ref when the widget script loads\n */\n\n function handleOnLoad() {\n // @ts-ignore\n cloudinary.current = window.cloudinary;\n }\n\n return (\n <>\n {children({\n cloudinary: cloudinary.current,\n widget: widget.current,\n open,\n })}\n <Script\n id={`cloudinary-${Math.floor(Math.random() * 100)}`}\n // @ts-ignore\n src=\"https://widget.cloudinary.com/v2.0/global/all.js\"\n onLoad={handleOnLoad}\n onError={(e) => console.error(`Failed to load Cloudinary: ${e.message}`)}\n />\n </>\n );\n};\n\nexport default CldUploadWidget;\n","import CldUploadWidget from '../CldUploadWidget';\n\nconst CldUploadButton = ({\n children,\n onClick,\n onUpload,\n options,\n signatureEndpoint,\n uploadPreset,\n ...props\n}) => {\n return (\n <>\n {/* @ts-ignore */}\n <CldUploadWidget\n onUpload={onUpload}\n options={options}\n signatureEndpoint={signatureEndpoint}\n uploadPreset={uploadPreset}\n >\n {({ open }) => {\n function handleOnClick(e) {\n e.preventDefault();\n\n open();\n\n if ( typeof onClick === 'function' ) {\n onClick(e);\n }\n }\n return (\n <button {...props} onClick={handleOnClick} >\n {children || 'Upload'}\n </button>\n );\n }}\n </CldUploadWidget>\n </>\n );\n};\n\nexport default CldUploadButton;\n"],"names":["NEXT_CLOUDINARY_ANALYTICS_ID","NEXT_CLOUDINARY_VERSION","pkg","version","NEXT_VERSION","nextPkg","pollForProcessingImage","options","src","Promise","resolve","reject","fetch","then","res","ok","e","status","createPlaceholderUrl","placeholder","rawTransformations","push","includes","color","split","splice","join","constructCloudinaryUrl","width","quality","config","cloud","cloudName","process","env","NEXT_PUBLIC_CLOUDINARY_CLOUD_NAME","analytics","sdkCode","sdkSemver","techVersion","feature","cloudinaryLoader","loaderOptions","imageProps","cldOptions","cldConfig","parseInt","height","multiplier","widthResize","heightResize","Math","round","CldImage","props","handleOnError","target","result","setImgKey","defaultImgKey","Date","now","CLD_OPTIONS","transformationPlugins","forEach","prop","Error","alt","Object","keys","filter","key","map","useState","imgKey","undefined","publicId","startsWith","getPublicId","blurDataURL","preserveTransformations","transformations","getTransformations","flat","console","warn","message","_jsx","Image","IMAGE_WIDTH","IMAGE_HEIGHT","TWITTER_CARD","CldOgImage","excludeTags","twitterTitle","_excluded","crop","gravity","ogImageUrl","_jsxs","Head","CldUploadWidget","children","onUpload","signatureEndpoint","uploadPreset","cloudinary","useRef","widget","signed","generateSignature","callback","paramsToSign","method","body","JSON","stringify","r","json","signature","createWidget","uploadOptions","NEXT_PUBLIC_CLOUDINARY_UPLOAD_PRESET","apiKey","NEXT_PUBLIC_CLOUDINARY_API_KEY","uploadSignature","current","createUploadWidget","error","event","open","handleOnLoad","window","_Fragment","Script","floor","random","CldUploadButton","onClick","handleOnClick","preventDefault"],"mappings":"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"}
@@ -35,7 +35,7 @@ function _objectWithoutPropertiesLoose(source, excluded) {
35
35
  }
36
36
 
37
37
  var name = "next-cloudinary";
38
- var version = "2.0.0";
38
+ var version = "2.0.1";
39
39
  var main = "dist/next-cloudinary.umd.js";
40
40
  var module = "dist/next-cloudinary.module.js";
41
41
  var source = "src/index.ts";
@@ -48,7 +48,7 @@ var scripts = {
48
48
  };
49
49
  var dependencies = {
50
50
  "@cloudinary-util/url-loader": "^1.2.4",
51
- "@cloudinary-util/util": "^1.1.1",
51
+ "@cloudinary-util/util": "^1.2.0",
52
52
  "@cloudinary/url-gen": "^1.8.6"
53
53
  };
54
54
  var devDependencies = {
@@ -183,7 +183,7 @@ function cloudinaryLoader({
183
183
  }
184
184
 
185
185
  const CldImage = props => {
186
- const CLD_OPTIONS = ['deliveryType'];
186
+ const CLD_OPTIONS = ['deliveryType', 'preserveTransformations'];
187
187
  transformationPlugins.forEach(({
188
188
  props: _props = []
189
189
  }) => {
@@ -194,7 +194,6 @@ const CldImage = props => {
194
194
  CLD_OPTIONS.push(prop);
195
195
  });
196
196
  });
197
- // Construct the base Image component props by filtering out Cloudinary-specific props
198
197
  const imageProps = {
199
198
  alt: props.alt,
200
199
  src: props.src
@@ -202,11 +201,10 @@ const CldImage = props => {
202
201
  Object.keys(props).filter(key => !CLD_OPTIONS.includes(key)).forEach(key => imageProps[key] = props[key]);
203
202
  const defaultImgKey = Object.keys(imageProps).map(key => `${key}:${imageProps[key]}`).join(';');
204
203
  const [imgKey, setImgKey] = useState(defaultImgKey);
205
- // Construct Cloudinary-specific props by looking for values for any of the supported prop keys
206
204
  const cldOptions = {};
207
205
  CLD_OPTIONS.forEach(key => {
208
206
  if (props[key]) {
209
- cldOptions[key] = props[key];
207
+ cldOptions[key] = props[key] || undefined;
210
208
  }
211
209
  });
212
210
  // If we see a placeholder option, configure a Cloudinary-based URL.
@@ -235,10 +233,16 @@ const CldImage = props => {
235
233
  imageProps.placeholder = 'blur';
236
234
  }
237
235
  }
238
- if (props.src && props.preserveTransformations) {
239
- const transformations = getTransformations(props.src, props.preserveTransformations);
240
- const rawTransformations = imageProps.rawTransformations ? [...imageProps.rawTransformations] : [];
241
- imageProps.rawTransformations = [...rawTransformations, ...transformations];
236
+ // Try to preserve the original transformations from the Cloudinary URL passed in
237
+ // to the component. This only works if the URL has a version number on it and otherwise
238
+ // will fail to load
239
+ if (props.preserveTransformations) {
240
+ try {
241
+ const transformations = getTransformations(props.src);
242
+ cldOptions.rawTransformations = [...transformations.flat(), ...(props.rawTransformations || [])];
243
+ } catch (e) {
244
+ console.warn(`Failed to preserve transformations: ${e.message}`);
245
+ }
242
246
  }
243
247
  /**
244
248
  * handleOnError
@@ -1 +1 @@
1
- {"version":3,"file":"next-cloudinary.modern.mjs","sources":["../src/constants/analytics.js","../src/lib/cloudinary.ts","../src/loaders/cloudinary-loader.js","../src/components/CldImage/CldImage.tsx","../src/components/CldOgImage/CldOgImage.tsx","../src/components/CldUploadWidget/CldUploadWidget.tsx","../src/components/CldUploadButton/CldUploadButton.tsx"],"sourcesContent":["import nextPkg from 'next/package.json';\nimport pkg from '../../package.json';\n\nexport const NEXT_CLOUDINARY_ANALYTICS_ID = 'V';\nexport const NEXT_CLOUDINARY_VERSION = pkg.version;\nexport const NEXT_VERSION = nextPkg.version;","import { constructCloudinaryUrl } from '@cloudinary-util/url-loader';\n\nimport { NEXT_CLOUDINARY_ANALYTICS_ID, NEXT_CLOUDINARY_VERSION, NEXT_VERSION } from '../constants/analytics';\n\n/**\n * createPlaceholderUrl\n */\n\nexport function createPlaceholderUrl({ src, placeholder = true }: { src?: any, placeholder?: boolean | string, config?: any }) {\n const rawTransformations: string[] = [];\n\n if ( placeholder === 'grayscale' ) {\n rawTransformations.push('e_grayscale');\n }\n\n if ( typeof placeholder === 'string' && placeholder.includes('color:') ) {\n const color = placeholder.split(':').splice(1).join(':')\n rawTransformations.push('e_grayscale');\n rawTransformations.push(`e_colorize:60,co_${color}`);\n }\n\n return constructCloudinaryUrl({\n options: {\n src,\n width: 100,\n quality: 1,\n rawTransformations,\n },\n config: {\n cloud: {\n cloudName: process.env.NEXT_PUBLIC_CLOUDINARY_CLOUD_NAME\n }\n },\n analytics: {\n sdkCode: NEXT_CLOUDINARY_ANALYTICS_ID,\n sdkSemver: NEXT_CLOUDINARY_VERSION,\n techVersion: NEXT_VERSION,\n feature: ''\n }\n });\n}\n\n/**\n * pollForProcessingImage\n */\n\nexport async function pollForProcessingImage(options): Promise<boolean> {\n const { src } = options;\n try {\n await new Promise((resolve, reject) => {\n fetch(src).then(res => {\n if ( !res.ok ) {\n reject(res);\n return;\n }\n resolve(res);\n });\n });\n } catch(e: any) {\n if ( e.status === 423 ) {\n return await pollForProcessingImage(options);\n }\n return false;\n }\n return true;\n}","import { constructCloudinaryUrl } from '@cloudinary-util/url-loader';\n\nimport { NEXT_CLOUDINARY_ANALYTICS_ID, NEXT_CLOUDINARY_VERSION, NEXT_VERSION } from '../constants/analytics';\n\nexport function cloudinaryLoader({ loaderOptions, imageProps, cldOptions, cldConfig = {} }) {\n const options = {\n ...imageProps,\n ...cldOptions\n }\n\n options.width = parseInt(options.width);\n options.height = parseInt(options.height);\n\n // The loader options are used to create dynamic sizing when working with responsive images\n // so these should override the default options collected from the props alone if\n // the results are different. While we don't always use the height in the loader logic,\n // we always pass it here, as the usage is determined later based on cropping.js\n\n if ( loaderOptions?.width && loaderOptions.width !== options.width ) {\n const multiplier = loaderOptions.width / options.width;\n options.widthResize = loaderOptions.width;\n options.heightResize = Math.round(options.height * multiplier);\n }\n\n return constructCloudinaryUrl({\n options,\n config: {\n cloud: {\n cloudName: process.env.NEXT_PUBLIC_CLOUDINARY_CLOUD_NAME\n },\n ...cldConfig\n },\n analytics: {\n sdkCode: NEXT_CLOUDINARY_ANALYTICS_ID,\n sdkSemver: NEXT_CLOUDINARY_VERSION,\n techVersion: NEXT_VERSION,\n feature: ''\n }\n });\n}","'use client';\n\nimport { useState } from 'react';\nimport Image from 'next/image';\nimport { getTransformations, getPublicId } from '@cloudinary-util/util';\nimport { transformationPlugins } from '@cloudinary-util/url-loader';\n\nimport { createPlaceholderUrl, pollForProcessingImage } from '../../lib/cloudinary';\n\nimport { cloudinaryLoader } from '../../loaders/cloudinary-loader';\n\ndeclare type PlaceholderValue = 'blur' | 'empty'; // this is from next/image, but isn't exported\n\nconst CldImage = props => {\n const CLD_OPTIONS = [\n 'deliveryType'\n ];\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 rawTransformations?: string[];\n blurDataURL?: string;\n placeholder?: PlaceholderValue;\n alt: string;\n src: string;\n } = {\n alt: props.alt,\n src: props.src\n };\n\n Object.keys(props)\n .filter(key => !CLD_OPTIONS.includes(key))\n .forEach(key => imageProps[key] = props[key]);\n\n const defaultImgKey = Object.keys(imageProps).map(key => `${key}:${imageProps[key]}`).join(';');\n const [imgKey, setImgKey] = useState(defaultImgKey);\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 let publicId;\n\n if ( props.src.startsWith('https://') ) {\n try {\n publicId = getPublicId(props.src);\n } catch(e) {}\n }\n\n if ( !publicId ) {\n publicId = props.src;\n }\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 if (props.src && props.preserveTransformations) {\n const transformations = getTransformations(props.src,props.preserveTransformations);\n const rawTransformations = imageProps.rawTransformations ? [...imageProps.rawTransformations] : []\n imageProps.rawTransformations = [...rawTransformations,...transformations,];\n }\n\n /**\n * handleOnError\n */\n\n async function handleOnError(options) {\n const result = await pollForProcessingImage({ src: options.target.src })\n if ( result ) {\n setImgKey(`${defaultImgKey};${Date.now()}`);\n }\n }\n\n return (\n <Image\n key={imgKey}\n {...imageProps}\n loader={(loaderOptions) => cloudinaryLoader({ loaderOptions, imageProps, cldOptions })}\n onError={handleOnError}\n />\n );\n}\n\nexport default CldImage;\n","import Head from 'next/head';\nimport { constructCloudinaryUrl } from '@cloudinary-util/url-loader';\n\nimport { NEXT_CLOUDINARY_ANALYTICS_ID, NEXT_CLOUDINARY_VERSION, NEXT_VERSION } from '../../constants/analytics';\n\nconst IMAGE_WIDTH = 2400;\nconst IMAGE_HEIGHT = 1200;\n\nconst TWITTER_CARD = 'summary_large_image';\n\nconst CldOgImage = ({ excludeTags = [] as string[], twitterTitle, ...props }) => {\n const options = {\n ...props,\n alt: props.alt,\n crop: props.crop || 'fill',\n gravity: props.gravity || 'center',\n height: props.height || IMAGE_HEIGHT,\n src: props.src,\n width: props.width || IMAGE_WIDTH,\n }\n\n const ogImageUrl = constructCloudinaryUrl({\n options,\n config: {\n cloud: {\n cloudName: process.env.NEXT_PUBLIC_CLOUDINARY_CLOUD_NAME\n }\n },\n analytics: {\n sdkCode: NEXT_CLOUDINARY_ANALYTICS_ID,\n sdkSemver: NEXT_CLOUDINARY_VERSION,\n techVersion: NEXT_VERSION,\n feature: ''\n }\n });\n\n // We need to include the tags within the Next.js Head component rather than\n // direcly adding them inside of the Head otherwise we get unexpected results\n\n return (\n // @ts-ignore\n <Head>\n <meta property=\"og:image\" content={ogImageUrl} />\n <meta property=\"og:image:secure_url\" content={ogImageUrl} />\n <meta property=\"og:image:width\" content={options.width} />\n <meta property=\"og:image:height\" content={options.height} />\n\n {options.alt && (\n <meta property=\"og:image:alt\" content={options.alt} />\n )}\n\n {/* Required for summary_large_image, exclude vai excludeTags */}\n {/* https://developer.twitter.com/en/docs/twitter-for-websites/cards/overview/summary-card-with-large-image */}\n\n {!excludeTags.includes('twitter:title') && (\n <meta property=\"twitter:title\" content={twitterTitle || ' '} />\n )}\n\n <meta property=\"twitter:card\" content={TWITTER_CARD} />\n <meta property=\"twitter:image\" content={ogImageUrl} />\n </Head>\n );\n}\n\nexport default CldOgImage;","import { useRef } from 'react';\nimport Script from 'next/script';\n\nconst CldUploadWidget = ({\n children,\n onUpload,\n options,\n signatureEndpoint,\n uploadPreset,\n}) => {\n const cloudinary = useRef<any>();\n const widget = useRef();\n\n const signed = !!signatureEndpoint;\n\n /**\n * generateSignature\n * @description Makes a request to an endpoint to sign Cloudinary parameters as part of widget creation\n */\n\n function generateSignature(callback, paramsToSign) {\n fetch(signatureEndpoint, {\n method: \"POST\",\n body: JSON.stringify({\n paramsToSign,\n }),\n })\n .then((r) => r.json())\n .then(({ signature }) => {\n callback(signature);\n });\n }\n\n /**\n * createWidget\n * @description Creates a new instance of the Cloudinary widget and stores in a ref\n */\n\n function createWidget() {\n // When creating a signed upload, you need to provide both your Cloudinary API Key\n // as well as a signature generator function that will sign any paramters\n // either on page load or during the upload process. Read more about signed uploads at:\n // https://cloudinary.com/documentation/upload_widget#signed_uploads\n\n const uploadOptions = {\n cloudName: process.env.NEXT_PUBLIC_CLOUDINARY_CLOUD_NAME,\n uploadPreset: uploadPreset || process.env.NEXT_PUBLIC_CLOUDINARY_UPLOAD_PRESET,\n apiKey: process.env.NEXT_PUBLIC_CLOUDINARY_API_KEY,\n ...options,\n };\n\n if ( signed ) {\n uploadOptions.uploadSignature = generateSignature;\n\n // No need for apiSecret here because of api/sign-cloudinary-params\n\n if (!uploadOptions.apiKey) {\n return new Error(\"Signed Upload needs apiKey!\");\n }\n }\n\n return cloudinary.current?.createUploadWidget(\n uploadOptions,\n function (error, result) {\n // The callback is a bit more chatty than failed or success so\n // only trigger when one of those are the case. You can additionally\n // create a separate handler such as onEvent and trigger it on\n // ever occurrence\n if (error || result.event === \"success\") {\n onUpload(error, result, widget?.current);\n }\n }\n );\n }\n\n /**\n * open\n * @description When triggered, uses the current widget instance to open the upload modal\n */\n\n function open() {\n if (!widget?.current) {\n widget.current = createWidget();\n }\n\n // @ts-ignore\n widget?.current && widget.current.open();\n }\n\n /**\n * handleOnLoad\n * @description Stores the Cloudinary window instance to a ref when the widget script loads\n */\n\n function handleOnLoad() {\n // @ts-ignore\n cloudinary.current = window.cloudinary;\n }\n\n return (\n <>\n {children({\n cloudinary: cloudinary.current,\n widget: widget.current,\n open,\n })}\n <Script\n id={`cloudinary-${Math.floor(Math.random() * 100)}`}\n // @ts-ignore\n src=\"https://widget.cloudinary.com/v2.0/global/all.js\"\n onLoad={handleOnLoad}\n onError={(e) => console.error(`Failed to load Cloudinary: ${e.message}`)}\n />\n </>\n );\n};\n\nexport default CldUploadWidget;\n","import CldUploadWidget from '../CldUploadWidget';\n\nconst CldUploadButton = ({\n children,\n onClick,\n onUpload,\n options,\n signatureEndpoint,\n uploadPreset,\n ...props\n}) => {\n return (\n <>\n {/* @ts-ignore */}\n <CldUploadWidget\n onUpload={onUpload}\n options={options}\n signatureEndpoint={signatureEndpoint}\n uploadPreset={uploadPreset}\n >\n {({ open }) => {\n function handleOnClick(e) {\n e.preventDefault();\n\n open();\n\n if ( typeof onClick === 'function' ) {\n onClick(e);\n }\n }\n return (\n <button {...props} onClick={handleOnClick} >\n {children || 'Upload'}\n </button>\n );\n }}\n </CldUploadWidget>\n </>\n );\n};\n\nexport default CldUploadButton;\n"],"names":["NEXT_CLOUDINARY_ANALYTICS_ID","NEXT_CLOUDINARY_VERSION","pkg","version","NEXT_VERSION","nextPkg","createPlaceholderUrl","src","placeholder","rawTransformations","push","includes","color","split","splice","join","constructCloudinaryUrl","options","width","quality","config","cloud","cloudName","process","env","NEXT_PUBLIC_CLOUDINARY_CLOUD_NAME","analytics","sdkCode","sdkSemver","techVersion","feature","pollForProcessingImage","Promise","resolve","reject","fetch","then","res","ok","e","status","cloudinaryLoader","loaderOptions","imageProps","cldOptions","cldConfig","parseInt","height","multiplier","widthResize","heightResize","Math","round","CldImage","props","CLD_OPTIONS","transformationPlugins","forEach","prop","Error","alt","Object","keys","filter","key","defaultImgKey","map","imgKey","setImgKey","useState","publicId","startsWith","getPublicId","blurDataURL","preserveTransformations","transformations","getTransformations","handleOnError","result","target","Date","now","_jsx","IMAGE_WIDTH","IMAGE_HEIGHT","TWITTER_CARD","CldOgImage","excludeTags","twitterTitle","_excluded","crop","gravity","ogImageUrl","_jsxs","CldUploadWidget","children","onUpload","signatureEndpoint","uploadPreset","cloudinary","useRef","widget","signed","generateSignature","callback","paramsToSign","method","body","JSON","stringify","r","json","signature","createWidget","uploadOptions","NEXT_PUBLIC_CLOUDINARY_UPLOAD_PRESET","apiKey","NEXT_PUBLIC_CLOUDINARY_API_KEY","uploadSignature","current","createUploadWidget","error","event","open","handleOnLoad","window","_Fragment","floor","random","console","message","CldUploadButton","onClick","handleOnClick","preventDefault"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAGO,MAAMA,4BAA4B,GAAG,GAAG,CAAA;AACxC,MAAMC,uBAAuB,GAAGC,GAAG,CAACC,OAAO,CAAA;AAC3C,MAAMC,YAAY,GAAGC,OAAO,CAACF,OAAO;;ACD3C;;AAEG;AAEG,SAAUG,oBAAoB,CAAC;EAAEC,GAAG;AAAEC,EAAAA,WAAW,GAAG,IAAA;AAAmE,CAAA,EAAA;EAC3H,MAAMC,kBAAkB,GAAa,EAAE,CAAA;EAEvC,IAAKD,WAAW,KAAK,WAAW,EAAG;AACjCC,IAAAA,kBAAkB,CAACC,IAAI,CAAC,aAAa,CAAC,CAAA;AACvC,GAAA;EAED,IAAK,OAAOF,WAAW,KAAK,QAAQ,IAAIA,WAAW,CAACG,QAAQ,CAAC,QAAQ,CAAC,EAAG;AACvE,IAAA,MAAMC,KAAK,GAAGJ,WAAW,CAACK,KAAK,CAAC,GAAG,CAAC,CAACC,MAAM,CAAC,CAAC,CAAC,CAACC,IAAI,CAAC,GAAG,CAAC,CAAA;AACxDN,IAAAA,kBAAkB,CAACC,IAAI,CAAC,aAAa,CAAC,CAAA;AACtCD,IAAAA,kBAAkB,CAACC,IAAI,EAAqBE,iBAAAA,EAAAA,KAAK,EAAE,CAAC,CAAA;AACrD,GAAA;AAED,EAAA,OAAOI,sBAAsB,CAAC;AAC5BC,IAAAA,OAAO,EAAE;MACPV,GAAG;AACHW,MAAAA,KAAK,EAAE,GAAG;AACVC,MAAAA,OAAO,EAAE,CAAC;AACVV,MAAAA,kBAAAA;KACD;AACDW,IAAAA,MAAM,EAAE;AACNC,MAAAA,KAAK,EAAE;AACLC,QAAAA,SAAS,EAAEC,OAAO,CAACC,GAAG,CAACC,iCAAAA;AACxB,OAAA;KACF;AACDC,IAAAA,SAAS,EAAE;AACTC,MAAAA,OAAO,EAAE3B,4BAA4B;AACrC4B,MAAAA,SAAS,EAAE3B,uBAAuB;AAClC4B,MAAAA,WAAW,EAAEzB,YAAY;AACzB0B,MAAAA,OAAO,EAAE,EAAA;AACV,KAAA;AACF,GAAA,CAAC,CAAA;AACJ,CAAA;AAEA;;AAEG;AAEI,eAAeC,sBAAsB,CAACd,OAAO,EAAA;EAClD,MAAM;AAAEV,IAAAA,GAAAA;AAAK,GAAA,GAAGU,OAAO,CAAA;EACvB,IAAI;AACF,IAAA,MAAM,IAAIe,OAAO,CAAC,CAACC,OAAO,EAAEC,MAAM,KAAI;AACpCC,MAAAA,KAAK,CAAC5B,GAAG,CAAC,CAAC6B,IAAI,CAACC,GAAG,IAAG;AACpB,QAAA,IAAK,CAACA,GAAG,CAACC,EAAE,EAAG;UACbJ,MAAM,CAACG,GAAG,CAAC,CAAA;AACX,UAAA,OAAA;AACD,SAAA;QACDJ,OAAO,CAACI,GAAG,CAAC,CAAA;AACd,OAAC,CAAC,CAAA;AACJ,KAAC,CAAC,CAAA;GACH,CAAC,OAAME,CAAM,EAAE;AACd,IAAA,IAAKA,CAAC,CAACC,MAAM,KAAK,GAAG,EAAG;AACtB,MAAA,OAAO,MAAMT,sBAAsB,CAACd,OAAO,CAAC,CAAA;AAC7C,KAAA;AACD,IAAA,OAAO,KAAK,CAAA;AACb,GAAA;AACD,EAAA,OAAO,IAAI,CAAA;AACb;;AC7DO,SAASwB,gBAAgB,CAAC;EAAEC,aAAa;EAAEC,UAAU;EAAEC,UAAU;AAAEC,EAAAA,SAAS,GAAG,EAAC;AAAE,CAAC,EAAE;AAC1F,EAAA,MAAM5B,OAAO,GAAA,QAAA,CAAA,EAAA,EACR0B,UAAU,EACVC,UAAU,CACd,CAAA;EAED3B,OAAO,CAACC,KAAK,GAAG4B,QAAQ,CAAC7B,OAAO,CAACC,KAAK,CAAC,CAAA;EACvCD,OAAO,CAAC8B,MAAM,GAAGD,QAAQ,CAAC7B,OAAO,CAAC8B,MAAM,CAAC,CAAA;;AAEzC;AACA;AACA;AACA;;AAEA,EAAA,IAAKL,aAAa,IAAA,IAAA,IAAbA,aAAa,CAAExB,KAAK,IAAIwB,aAAa,CAACxB,KAAK,KAAKD,OAAO,CAACC,KAAK,EAAG;IACnE,MAAM8B,UAAU,GAAGN,aAAa,CAACxB,KAAK,GAAGD,OAAO,CAACC,KAAK,CAAA;AACtDD,IAAAA,OAAO,CAACgC,WAAW,GAAGP,aAAa,CAACxB,KAAK,CAAA;AACzCD,IAAAA,OAAO,CAACiC,YAAY,GAAGC,IAAI,CAACC,KAAK,CAACnC,OAAO,CAAC8B,MAAM,GAAGC,UAAU,CAAC,CAAA;AAChE,GAAA;AAEA,EAAA,OAAOhC,sBAAsB,CAAC;IAC5BC,OAAO;IACPG,MAAM,EAAA,QAAA,CAAA;AACJC,MAAAA,KAAK,EAAE;AACLC,QAAAA,SAAS,EAAEC,OAAO,CAACC,GAAG,CAACC,iCAAAA;AACzB,OAAA;AAAC,KAAA,EACEoB,SAAS,CACb;AACDnB,IAAAA,SAAS,EAAE;AACTC,MAAAA,OAAO,EAAE3B,4BAA4B;AACrC4B,MAAAA,SAAS,EAAE3B,uBAAuB;AAClC4B,MAAAA,WAAW,EAAEzB,YAAY;AACzB0B,MAAAA,OAAO,EAAE,EAAA;AACX,KAAA;AACF,GAAC,CAAC,CAAA;AACJ;;AC1BMuB,MAAAA,QAAQ,GAAGC,KAAK,IAAG;AACvB,EAAA,MAAMC,WAAW,GAAG,CAClB,cAAc,CACf,CAAA;EAEDC,qBAAqB,CAACC,OAAO,CAAC,CAAC;IAAEH,KAAK,EAALA,MAAK,GAAG,EAAA;AAAI,GAAA,KAAI;AAC/CA,IAAAA,MAAK,CAACG,OAAO,CAACC,IAAI,IAAG;AACnB,MAAA,IAAKH,WAAW,CAAC5C,QAAQ,CAAC+C,IAAI,CAAC,EAAG;AAChC,QAAA,MAAM,IAAIC,KAAK,EAAWD,OAAAA,EAAAA,IAAI,kBAAkB,CAAC,CAAA;AAClD,OAAA;AACDH,MAAAA,WAAW,CAAC7C,IAAI,CAACgD,IAAI,CAAC,CAAA;AACxB,KAAC,CAAC,CAAA;AACJ,GAAC,CAAC,CAAA;AAEF;AAEA,EAAA,MAAMf,UAAU,GAMZ;IACFiB,GAAG,EAAEN,KAAK,CAACM,GAAG;IACdrD,GAAG,EAAE+C,KAAK,CAAC/C,GAAAA;GACZ,CAAA;AAEDsD,EAAAA,MAAM,CAACC,IAAI,CAACR,KAAK,CAAC,CACfS,MAAM,CAACC,GAAG,IAAI,CAACT,WAAW,CAAC5C,QAAQ,CAACqD,GAAG,CAAC,CAAC,CACzCP,OAAO,CAACO,GAAG,IAAIrB,UAAU,CAACqB,GAAG,CAAC,GAAGV,KAAK,CAACU,GAAG,CAAC,CAAC,CAAA;EAE/C,MAAMC,aAAa,GAAGJ,MAAM,CAACC,IAAI,CAACnB,UAAU,CAAC,CAACuB,GAAG,CAACF,GAAG,IAAI,GAAGA,GAAG,CAAA,CAAA,EAAIrB,UAAU,CAACqB,GAAG,CAAG,CAAA,CAAA,CAAC,CAACjD,IAAI,CAAC,GAAG,CAAC,CAAA;EAC/F,MAAM,CAACoD,MAAM,EAAEC,SAAS,CAAC,GAAGC,QAAQ,CAACJ,aAAa,CAAC,CAAA;AAEnD;EAEA,MAAMrB,UAAU,GAAG,EAAE,CAAA;AAErBW,EAAAA,WAAW,CAACE,OAAO,CAACO,GAAG,IAAG;AACxB,IAAA,IAAKV,KAAK,CAACU,GAAG,CAAC,EAAG;AAChBpB,MAAAA,UAAU,CAACoB,GAAG,CAAC,GAAGV,KAAK,CAACU,GAAG,CAAC,CAAA;AAC7B,KAAA;AACH,GAAC,CAAC,CAAA;AAEF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EAEA,IAAKrB,UAAU,CAACnC,WAAW,EAAG;AAC5B,IAAA,IAAI8D,QAAQ,CAAA;IAEZ,IAAKhB,KAAK,CAAC/C,GAAG,CAACgE,UAAU,CAAC,UAAU,CAAC,EAAG;MACtC,IAAI;AACFD,QAAAA,QAAQ,GAAGE,WAAW,CAAClB,KAAK,CAAC/C,GAAG,CAAC,CAAA;AAClC,OAAA,CAAC,OAAMgC,CAAC,EAAE,EAAE;AACd,KAAA;IAED,IAAK,CAAC+B,QAAQ,EAAG;MACfA,QAAQ,GAAGhB,KAAK,CAAC/C,GAAG,CAAA;AACrB,KAAA;AAEDoC,IAAAA,UAAU,CAAC8B,WAAW,GAAGnE,oBAAoB,CAAC;AAC5CC,MAAAA,GAAG,EAAE+D,QAAQ;MACb9D,WAAW,EAAE8C,KAAK,CAAC9C,WAAAA;AACpB,KAAA,CAAC,CAAA;AAEF,IAAA,IAAKmC,UAAU,CAACnC,WAAW,KAAK,MAAM,EAAG;MACvCmC,UAAU,CAACnC,WAAW,GAAG,MAAM,CAAA;AAChC,KAAA;AACF,GAAA;AAED,EAAA,IAAI8C,KAAK,CAAC/C,GAAG,IAAI+C,KAAK,CAACoB,uBAAuB,EAAE;IAC9C,MAAMC,eAAe,GAAGC,kBAAkB,CAACtB,KAAK,CAAC/C,GAAG,EAAC+C,KAAK,CAACoB,uBAAuB,CAAC,CAAA;AACnF,IAAA,MAAMjE,kBAAkB,GAAGkC,UAAU,CAAClC,kBAAkB,GAAG,CAAC,GAAGkC,UAAU,CAAClC,kBAAkB,CAAC,GAAG,EAAE,CAAA;IAClGkC,UAAU,CAAClC,kBAAkB,GAAG,CAAC,GAAGA,kBAAkB,EAAC,GAAGkE,eAAe,CAAE,CAAA;AAC5E,GAAA;AAED;;AAEG;EAEH,eAAeE,aAAa,CAAC5D,OAAO,EAAA;AAClC,IAAA,MAAM6D,MAAM,GAAG,MAAM/C,sBAAsB,CAAC;AAAExB,MAAAA,GAAG,EAAEU,OAAO,CAAC8D,MAAM,CAACxE,GAAAA;AAAG,KAAE,CAAC,CAAA;AACxE,IAAA,IAAKuE,MAAM,EAAG;MACZV,SAAS,CAAI,GAAAH,aAAiB,CAAA,CAAA,EAAAe,IAAI,CAACC,GAAG,EAAI,CAAA,CAAA,CAAC,CAAA;AAC5C,KAAA;AACH,GAAA;EAEA,oBACEC,GAAA,CAAC,KAAK,EAAA,QAAA,CAAA,EAAA,EAEAvC,UAAU,EAAA;AACd,IAAA,MAAM,EAAGD,aAAa,IAAKD,gBAAgB,CAAC;MAAEC,aAAa;MAAEC,UAAU;AAAEC,MAAAA,UAAAA;AAAU,KAAE,CAAE;AACvF,IAAA,OAAO,EAAEiC,aAAAA;AAAc,GAAA,CAAA,EAHlBV,MAAM,CAIX,CAAA;AAEN;;;AC7GA,MAAMgB,WAAW,GAAG,IAAI,CAAA;AACxB,MAAMC,YAAY,GAAG,IAAI,CAAA;AAEzB,MAAMC,YAAY,GAAG,qBAAqB,CAAA;AAEpCC,MAAAA,UAAU,GAAG,IAA6D,IAAA;EAAA,IAA5D;AAAEC,MAAAA,WAAW,GAAG,EAAc;AAAEC,MAAAA,YAAAA;KAAwB,GAAA,IAAA;IAAPlC,KAAK,GAAA,6BAAA,CAAA,IAAA,EAAAmC,WAAA,CAAA,CAAA;EACxE,MAAMxE,OAAO,gBACRqC,KAAK,EAAA;IACRM,GAAG,EAAEN,KAAK,CAACM,GAAG;AACd8B,IAAAA,IAAI,EAAEpC,KAAK,CAACoC,IAAI,IAAI,MAAM;AAC1BC,IAAAA,OAAO,EAAErC,KAAK,CAACqC,OAAO,IAAI,QAAQ;AAClC5C,IAAAA,MAAM,EAAEO,KAAK,CAACP,MAAM,IAAIqC,YAAY;IACpC7E,GAAG,EAAE+C,KAAK,CAAC/C,GAAG;AACdW,IAAAA,KAAK,EAAEoC,KAAK,CAACpC,KAAK,IAAIiE,WAAAA;GACvB,CAAA,CAAA;EAED,MAAMS,UAAU,GAAG5E,sBAAsB,CAAC;IACxCC,OAAO;AACPG,IAAAA,MAAM,EAAE;AACNC,MAAAA,KAAK,EAAE;AACLC,QAAAA,SAAS,EAAEC,OAAO,CAACC,GAAG,CAACC,iCAAAA;AACxB,OAAA;KACF;AACDC,IAAAA,SAAS,EAAE;AACTC,MAAAA,OAAO,EAAE3B,4BAA4B;AACrC4B,MAAAA,SAAS,EAAE3B,uBAAuB;AAClC4B,MAAAA,WAAW,EAAEzB,YAAY;AACzB0B,MAAAA,OAAO,EAAE,EAAA;AACV,KAAA;AACF,GAAA,CAAC,CAAA;AAEF;AACA;AAEE,EAAA;AAAA;AACA;AACA,IAAA+D,IAAA,CAAC,IAAI,EAAA;MAAA,QACH,EAAA,cAAAX,GAAA,CAAA,MAAA,EAAA;AAAM,QAAA,QAAQ,EAAC,UAAU;AAAC,QAAA,OAAO,EAAEU,UAAAA;AAAW,OAAA,CAC9C,eAAAV,GAAA,CAAA,MAAA,EAAA;AAAM,QAAA,QAAQ,EAAC,qBAAqB;AAAC,QAAA,OAAO,EAAEU,UAAAA;AAAW,OAAA,CACzD,eAAAV,GAAA,CAAA,MAAA,EAAA;AAAM,QAAA,QAAQ,EAAC,gBAAgB;QAAC,OAAO,EAAEjE,OAAO,CAACC,KAAAA;AAAM,OAAA,CACvD,eAAAgE,GAAA,CAAA,MAAA,EAAA;AAAM,QAAA,QAAQ,EAAC,iBAAiB;QAAC,OAAO,EAAEjE,OAAO,CAAC8B,MAAAA;AAAO,OAAA,CAEzD,EAAC9B,OAAO,CAAC2C,GAAG,iBACVsB,GAAA,CAAA,MAAA,EAAA;AAAM,QAAA,QAAQ,EAAC,cAAc;QAAC,OAAO,EAAEjE,OAAO,CAAC2C,GAAAA;OAChD,CAAA,EAKA,CAAC2B,WAAW,CAAC5E,QAAQ,CAAC,eAAe,CAAC,iBACrCuE,GAAA,CAAA,MAAA,EAAA;AAAM,QAAA,QAAQ,EAAC,eAAe;QAAC,OAAO,EAAEM,YAAY,IAAI,GAAA;AAAI,OAAA,CAC7D,eAEDN,GAAA,CAAA,MAAA,EAAA;AAAM,QAAA,QAAQ,EAAC,cAAc;AAAC,QAAA,OAAO,EAAEG,YAAAA;AAAa,OAAA,CACpD,eAAAH,GAAA,CAAA,MAAA,EAAA;AAAM,QAAA,QAAQ,EAAC,eAAe;AAAC,QAAA,OAAO,EAAEU,UAAAA;OAC1C,CAAA,CAAA;AAAA,KAAA,CAAA;AAAO,IAAA;AAEX;;AC3DME,MAAAA,eAAe,GAAG,CAAC;EACvBC,QAAQ;EACRC,QAAQ;EACR/E,OAAO;EACPgF,iBAAiB;AACjBC,EAAAA,YAAAA;AAAY,CACb,KAAI;EACH,MAAMC,UAAU,GAAGC,MAAM,EAAO,CAAA;EAChC,MAAMC,MAAM,GAAGD,MAAM,EAAE,CAAA;AAEvB,EAAA,MAAME,MAAM,GAAG,CAAC,CAACL,iBAAiB,CAAA;AAElC;;;AAGG;AAEH,EAAA,SAASM,iBAAiB,CAACC,QAAQ,EAAEC,YAAY,EAAA;IAC/CtE,KAAK,CAAC8D,iBAAiB,EAAE;AACvBS,MAAAA,MAAM,EAAE,MAAM;AACdC,MAAAA,IAAI,EAAEC,IAAI,CAACC,SAAS,CAAC;AACnBJ,QAAAA,YAAAA;OACD,CAAA;KACF,CAAC,CACCrE,IAAI,CAAE0E,CAAC,IAAKA,CAAC,CAACC,IAAI,EAAE,CAAC,CACrB3E,IAAI,CAAC,CAAC;AAAE4E,MAAAA,SAAAA;AAAS,KAAE,KAAI;MACtBR,QAAQ,CAACQ,SAAS,CAAC,CAAA;AACrB,KAAC,CAAC,CAAA;AACN,GAAA;AAEA;;;AAGG;AAEH,EAAA,SAASC,YAAY,GAAA;AAAA,IAAA,IAAA,mBAAA,CAAA;AACnB;AACA;AACA;AACA;AAEA,IAAA,MAAMC,aAAa,GAAA,QAAA,CAAA;AACjB5F,MAAAA,SAAS,EAAEC,OAAO,CAACC,GAAG,CAACC,iCAAiC;AACxDyE,MAAAA,YAAY,EAAEA,YAAY,IAAI3E,OAAO,CAACC,GAAG,CAAC2F,oCAAoC;AAC9EC,MAAAA,MAAM,EAAE7F,OAAO,CAACC,GAAG,CAAC6F,8BAAAA;AAA8B,KAAA,EAC/CpG,OAAO,CACX,CAAA;AAED,IAAA,IAAKqF,MAAM,EAAG;MACZY,aAAa,CAACI,eAAe,GAAGf,iBAAiB,CAAA;AAEjD;AAEA,MAAA,IAAI,CAACW,aAAa,CAACE,MAAM,EAAE;AACzB,QAAA,OAAO,IAAIzD,KAAK,CAAC,6BAA6B,CAAC,CAAA;AAChD,OAAA;AACF,KAAA;AAED,IAAA,OAAA,CAAA,mBAAA,GAAOwC,UAAU,CAACoB,OAAO,KAAA,IAAA,GAAA,KAAA,CAAA,GAAlB,mBAAoBC,CAAAA,kBAAkB,CAC3CN,aAAa,EACb,UAAUO,KAAK,EAAE3C,MAAM,EAAA;AACrB;AACA;AACA;AACA;AACA,MAAA,IAAI2C,KAAK,IAAI3C,MAAM,CAAC4C,KAAK,KAAK,SAAS,EAAE;QACvC1B,QAAQ,CAACyB,KAAK,EAAE3C,MAAM,EAAEuB,MAAM,IAANA,IAAAA,GAAAA,KAAAA,CAAAA,GAAAA,MAAM,CAAEkB,OAAO,CAAC,CAAA;AACzC,OAAA;AACH,KAAC,CACF,CAAA;AACH,GAAA;AAEA;;;AAGG;AAEH,EAAA,SAASI,IAAI,GAAA;AACX,IAAA,IAAI,EAACtB,MAAM,IAAA,IAAA,IAANA,MAAM,CAAEkB,OAAO,CAAE,EAAA;AACpBlB,MAAAA,MAAM,CAACkB,OAAO,GAAGN,YAAY,EAAE,CAAA;AAChC,KAAA;AAED;IACA,CAAAZ,MAAM,IAANA,IAAAA,GAAAA,KAAAA,CAAAA,GAAAA,MAAM,CAAEkB,OAAO,KAAIlB,MAAM,CAACkB,OAAO,CAACI,IAAI,EAAE,CAAA;AAC1C,GAAA;AAEA;;;AAGG;AAEH,EAAA,SAASC,YAAY,GAAA;AACnB;AACAzB,IAAAA,UAAU,CAACoB,OAAO,GAAGM,MAAM,CAAC1B,UAAU,CAAA;AACxC,GAAA;EAEA,oBACEN,IAAA,CAAAiC,QAAA,EAAA;AAAA,IAAA,QAAA,EAAA,CACG/B,QAAQ,CAAC;MACRI,UAAU,EAAEA,UAAU,CAACoB,OAAO;MAC9BlB,MAAM,EAAEA,MAAM,CAACkB,OAAO;AACtBI,MAAAA,IAAAA;KACD,CAAC,eACFzC,GAAA,CAAC,MAAM,EAAA;AACL,MAAA,EAAE,EAAE,CAAA,WAAA,EAAc/B,IAAI,CAAC4E,KAAK,CAAC5E,IAAI,CAAC6E,MAAM,EAAE,GAAG,GAAG;AAChD;AAAA;AACA,MAAA,GAAG,EAAC,kDAAkD;AACtD,MAAA,MAAM,EAAEJ,YAAa;MACrB,OAAO,EAAGrF,CAAC,IAAK0F,OAAO,CAACR,KAAK,CAAC,CAA8BlF,2BAAAA,EAAAA,CAAC,CAAC2F,OAAO,CAAE,CAAA,CAAA;KAE3E,CAAA,CAAA;GAAG,CAAA,CAAA;AAEP;;;ACjHMC,MAAAA,eAAe,GAAG,IAQnB,IAAA;EAAA,IARoB;MACvBpC,QAAQ;MACRqC,OAAO;MACPpC,QAAQ;MACR/E,OAAO;MACPgF,iBAAiB;AACjBC,MAAAA,YAAAA;KAED,GAAA,IAAA;IADI5C,KAAK,GAAA,6BAAA,CAAA,IAAA,EAAA,SAAA,CAAA,CAAA;EAER,oBACE4B,GAAA,CAAA4C,QAAA,EAAA;AAAA,IAAA,QAAA,eAEE5C,IAAC,eAAe,EAAA;AACd,MAAA,QAAQ,EAAEc,QAAS;AACnB,MAAA,OAAO,EAAE/E,OAAQ;AACjB,MAAA,iBAAiB,EAAEgF,iBAAkB;AACrC,MAAA,YAAY,EAAEC,YAAa;AAAA,MAAA,QAAA,EAE1B,CAAC;AAAEyB,QAAAA,IAAAA;AAAI,OAAE,KAAI;QACZ,SAASU,aAAa,CAAC9F,CAAC,EAAA;UACtBA,CAAC,CAAC+F,cAAc,EAAE,CAAA;AAElBX,UAAAA,IAAI,EAAE,CAAA;AAEN,UAAA,IAAK,OAAOS,OAAO,KAAK,UAAU,EAAG;YACnCA,OAAO,CAAC7F,CAAC,CAAC,CAAA;AACX,WAAA;AACH,SAAA;AACA,QAAA,oBACE2C,2BAAY5B,KAAK,EAAA;AAAE,UAAA,OAAO,EAAE+E,aAAc;AAAA,UAAA,QAAA,EACvCtC,QAAQ,IAAI,QAAA;SACN,CAAA,CAAA,CAAA;AAEb,OAAA;AAAC,KAAA,CAAA;GAEF,CAAA,CAAA;AAEP;;;;"}
1
+ {"version":3,"file":"next-cloudinary.modern.mjs","sources":["../src/constants/analytics.js","../src/lib/cloudinary.ts","../src/loaders/cloudinary-loader.js","../src/components/CldImage/CldImage.tsx","../src/components/CldOgImage/CldOgImage.tsx","../src/components/CldUploadWidget/CldUploadWidget.tsx","../src/components/CldUploadButton/CldUploadButton.tsx"],"sourcesContent":["import nextPkg from 'next/package.json';\nimport pkg from '../../package.json';\n\nexport const NEXT_CLOUDINARY_ANALYTICS_ID = 'V';\nexport const NEXT_CLOUDINARY_VERSION = pkg.version;\nexport const NEXT_VERSION = nextPkg.version;","import { constructCloudinaryUrl } from '@cloudinary-util/url-loader';\n\nimport { NEXT_CLOUDINARY_ANALYTICS_ID, NEXT_CLOUDINARY_VERSION, NEXT_VERSION } from '../constants/analytics';\n\n/**\n * createPlaceholderUrl\n */\n\nexport function createPlaceholderUrl({ src, placeholder = true }: { src?: any, placeholder?: boolean | string, config?: any }) {\n const rawTransformations: string[] = [];\n\n if ( placeholder === 'grayscale' ) {\n rawTransformations.push('e_grayscale');\n }\n\n if ( typeof placeholder === 'string' && placeholder.includes('color:') ) {\n const color = placeholder.split(':').splice(1).join(':')\n rawTransformations.push('e_grayscale');\n rawTransformations.push(`e_colorize:60,co_${color}`);\n }\n\n return constructCloudinaryUrl({\n options: {\n src,\n width: 100,\n quality: 1,\n rawTransformations,\n },\n config: {\n cloud: {\n cloudName: process.env.NEXT_PUBLIC_CLOUDINARY_CLOUD_NAME\n }\n },\n analytics: {\n sdkCode: NEXT_CLOUDINARY_ANALYTICS_ID,\n sdkSemver: NEXT_CLOUDINARY_VERSION,\n techVersion: NEXT_VERSION,\n feature: ''\n }\n });\n}\n\n/**\n * pollForProcessingImage\n */\n\nexport async function pollForProcessingImage(options): Promise<boolean> {\n const { src } = options;\n try {\n await new Promise((resolve, reject) => {\n fetch(src).then(res => {\n if ( !res.ok ) {\n reject(res);\n return;\n }\n resolve(res);\n });\n });\n } catch(e: any) {\n if ( e.status === 423 ) {\n return await pollForProcessingImage(options);\n }\n return false;\n }\n return true;\n}","import { constructCloudinaryUrl } from '@cloudinary-util/url-loader';\n\nimport { NEXT_CLOUDINARY_ANALYTICS_ID, NEXT_CLOUDINARY_VERSION, NEXT_VERSION } from '../constants/analytics';\n\nexport function cloudinaryLoader({ loaderOptions, imageProps, cldOptions, cldConfig = {} }) {\n const options = {\n ...imageProps,\n ...cldOptions\n }\n\n options.width = parseInt(options.width);\n options.height = parseInt(options.height);\n\n // The loader options are used to create dynamic sizing when working with responsive images\n // so these should override the default options collected from the props alone if\n // the results are different. While we don't always use the height in the loader logic,\n // we always pass it here, as the usage is determined later based on cropping.js\n\n if ( loaderOptions?.width && loaderOptions.width !== options.width ) {\n const multiplier = loaderOptions.width / options.width;\n options.widthResize = loaderOptions.width;\n options.heightResize = Math.round(options.height * multiplier);\n }\n\n return constructCloudinaryUrl({\n options,\n config: {\n cloud: {\n cloudName: process.env.NEXT_PUBLIC_CLOUDINARY_CLOUD_NAME\n },\n ...cldConfig\n },\n analytics: {\n sdkCode: NEXT_CLOUDINARY_ANALYTICS_ID,\n sdkSemver: NEXT_CLOUDINARY_VERSION,\n techVersion: NEXT_VERSION,\n feature: ''\n }\n });\n}","'use client';\n\nimport { useState } from 'react';\nimport Image from 'next/image';\nimport { getTransformations, getPublicId } from '@cloudinary-util/util';\nimport { transformationPlugins } from '@cloudinary-util/url-loader';\n\nimport { createPlaceholderUrl, pollForProcessingImage } from '../../lib/cloudinary';\n\nimport { cloudinaryLoader } from '../../loaders/cloudinary-loader';\n\nconst CldImage = props => {\n const CLD_OPTIONS = [\n 'deliveryType',\n 'preserveTransformations'\n ];\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 interface ImageProps {\n alt: string;\n blurDataURL?: string;\n placeholder?: 'blur' | 'empty'; // this is from next/image, but isn't exported\n src: string;\n }\n\n const imageProps: ImageProps = {\n alt: props.alt,\n src: props.src\n };\n\n Object.keys(props)\n .filter(key => !CLD_OPTIONS.includes(key))\n .forEach(key => imageProps[key] = props[key]);\n\n const defaultImgKey = Object.keys(imageProps).map(key => `${key}:${imageProps[key]}`).join(';');\n const [imgKey, setImgKey] = useState(defaultImgKey);\n\n // Construct Cloudinary-specific props by looking for values for any of the supported prop keys\n\n interface CldOptions {\n rawTransformations?: string[];\n }\n\n const cldOptions: CldOptions = {};\n\n CLD_OPTIONS.forEach(key => {\n if ( props[key] ) {\n cldOptions[key] = props[key] || undefined;\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 let publicId;\n\n if ( props.src.startsWith('https://') ) {\n try {\n publicId = getPublicId(props.src);\n } catch(e) {}\n }\n\n if ( !publicId ) {\n publicId = props.src;\n }\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 // Try to preserve the original transformations from the Cloudinary URL passed in\n // to the component. This only works if the URL has a version number on it and otherwise\n // will fail to load\n\n if (props.preserveTransformations) {\n try {\n const transformations = getTransformations(props.src);\n cldOptions.rawTransformations = [...transformations.flat(), ...(props.rawTransformations || [])];\n } catch(e) {\n console.warn(`Failed to preserve transformations: ${(e as Error).message}`)\n }\n }\n\n /**\n * handleOnError\n */\n\n async function handleOnError(options) {\n const result = await pollForProcessingImage({ src: options.target.src })\n if ( result ) {\n setImgKey(`${defaultImgKey};${Date.now()}`);\n }\n }\n\n return (\n <Image\n key={imgKey}\n {...imageProps}\n loader={(loaderOptions) => cloudinaryLoader({ loaderOptions, imageProps, cldOptions })}\n onError={handleOnError}\n />\n );\n}\n\nexport default CldImage;\n","import Head from 'next/head';\nimport { constructCloudinaryUrl } from '@cloudinary-util/url-loader';\n\nimport { NEXT_CLOUDINARY_ANALYTICS_ID, NEXT_CLOUDINARY_VERSION, NEXT_VERSION } from '../../constants/analytics';\n\nconst IMAGE_WIDTH = 2400;\nconst IMAGE_HEIGHT = 1200;\n\nconst TWITTER_CARD = 'summary_large_image';\n\nconst CldOgImage = ({ excludeTags = [] as string[], twitterTitle, ...props }) => {\n const options = {\n ...props,\n alt: props.alt,\n crop: props.crop || 'fill',\n gravity: props.gravity || 'center',\n height: props.height || IMAGE_HEIGHT,\n src: props.src,\n width: props.width || IMAGE_WIDTH,\n }\n\n const ogImageUrl = constructCloudinaryUrl({\n options,\n config: {\n cloud: {\n cloudName: process.env.NEXT_PUBLIC_CLOUDINARY_CLOUD_NAME\n }\n },\n analytics: {\n sdkCode: NEXT_CLOUDINARY_ANALYTICS_ID,\n sdkSemver: NEXT_CLOUDINARY_VERSION,\n techVersion: NEXT_VERSION,\n feature: ''\n }\n });\n\n // We need to include the tags within the Next.js Head component rather than\n // direcly adding them inside of the Head otherwise we get unexpected results\n\n return (\n // @ts-ignore\n <Head>\n <meta property=\"og:image\" content={ogImageUrl} />\n <meta property=\"og:image:secure_url\" content={ogImageUrl} />\n <meta property=\"og:image:width\" content={options.width} />\n <meta property=\"og:image:height\" content={options.height} />\n\n {options.alt && (\n <meta property=\"og:image:alt\" content={options.alt} />\n )}\n\n {/* Required for summary_large_image, exclude vai excludeTags */}\n {/* https://developer.twitter.com/en/docs/twitter-for-websites/cards/overview/summary-card-with-large-image */}\n\n {!excludeTags.includes('twitter:title') && (\n <meta property=\"twitter:title\" content={twitterTitle || ' '} />\n )}\n\n <meta property=\"twitter:card\" content={TWITTER_CARD} />\n <meta property=\"twitter:image\" content={ogImageUrl} />\n </Head>\n );\n}\n\nexport default CldOgImage;","import { useRef } from 'react';\nimport Script from 'next/script';\n\nconst CldUploadWidget = ({\n children,\n onUpload,\n options,\n signatureEndpoint,\n uploadPreset,\n}) => {\n const cloudinary = useRef<any>();\n const widget = useRef();\n\n const signed = !!signatureEndpoint;\n\n /**\n * generateSignature\n * @description Makes a request to an endpoint to sign Cloudinary parameters as part of widget creation\n */\n\n function generateSignature(callback, paramsToSign) {\n fetch(signatureEndpoint, {\n method: \"POST\",\n body: JSON.stringify({\n paramsToSign,\n }),\n })\n .then((r) => r.json())\n .then(({ signature }) => {\n callback(signature);\n });\n }\n\n /**\n * createWidget\n * @description Creates a new instance of the Cloudinary widget and stores in a ref\n */\n\n function createWidget() {\n // When creating a signed upload, you need to provide both your Cloudinary API Key\n // as well as a signature generator function that will sign any paramters\n // either on page load or during the upload process. Read more about signed uploads at:\n // https://cloudinary.com/documentation/upload_widget#signed_uploads\n\n const uploadOptions = {\n cloudName: process.env.NEXT_PUBLIC_CLOUDINARY_CLOUD_NAME,\n uploadPreset: uploadPreset || process.env.NEXT_PUBLIC_CLOUDINARY_UPLOAD_PRESET,\n apiKey: process.env.NEXT_PUBLIC_CLOUDINARY_API_KEY,\n ...options,\n };\n\n if ( signed ) {\n uploadOptions.uploadSignature = generateSignature;\n\n // No need for apiSecret here because of api/sign-cloudinary-params\n\n if (!uploadOptions.apiKey) {\n return new Error(\"Signed Upload needs apiKey!\");\n }\n }\n\n return cloudinary.current?.createUploadWidget(\n uploadOptions,\n function (error, result) {\n // The callback is a bit more chatty than failed or success so\n // only trigger when one of those are the case. You can additionally\n // create a separate handler such as onEvent and trigger it on\n // ever occurrence\n if (error || result.event === \"success\") {\n onUpload(error, result, widget?.current);\n }\n }\n );\n }\n\n /**\n * open\n * @description When triggered, uses the current widget instance to open the upload modal\n */\n\n function open() {\n if (!widget?.current) {\n widget.current = createWidget();\n }\n\n // @ts-ignore\n widget?.current && widget.current.open();\n }\n\n /**\n * handleOnLoad\n * @description Stores the Cloudinary window instance to a ref when the widget script loads\n */\n\n function handleOnLoad() {\n // @ts-ignore\n cloudinary.current = window.cloudinary;\n }\n\n return (\n <>\n {children({\n cloudinary: cloudinary.current,\n widget: widget.current,\n open,\n })}\n <Script\n id={`cloudinary-${Math.floor(Math.random() * 100)}`}\n // @ts-ignore\n src=\"https://widget.cloudinary.com/v2.0/global/all.js\"\n onLoad={handleOnLoad}\n onError={(e) => console.error(`Failed to load Cloudinary: ${e.message}`)}\n />\n </>\n );\n};\n\nexport default CldUploadWidget;\n","import CldUploadWidget from '../CldUploadWidget';\n\nconst CldUploadButton = ({\n children,\n onClick,\n onUpload,\n options,\n signatureEndpoint,\n uploadPreset,\n ...props\n}) => {\n return (\n <>\n {/* @ts-ignore */}\n <CldUploadWidget\n onUpload={onUpload}\n options={options}\n signatureEndpoint={signatureEndpoint}\n uploadPreset={uploadPreset}\n >\n {({ open }) => {\n function handleOnClick(e) {\n e.preventDefault();\n\n open();\n\n if ( typeof onClick === 'function' ) {\n onClick(e);\n }\n }\n return (\n <button {...props} onClick={handleOnClick} >\n {children || 'Upload'}\n </button>\n );\n }}\n </CldUploadWidget>\n </>\n );\n};\n\nexport default CldUploadButton;\n"],"names":["NEXT_CLOUDINARY_ANALYTICS_ID","NEXT_CLOUDINARY_VERSION","pkg","version","NEXT_VERSION","nextPkg","createPlaceholderUrl","src","placeholder","rawTransformations","push","includes","color","split","splice","join","constructCloudinaryUrl","options","width","quality","config","cloud","cloudName","process","env","NEXT_PUBLIC_CLOUDINARY_CLOUD_NAME","analytics","sdkCode","sdkSemver","techVersion","feature","pollForProcessingImage","Promise","resolve","reject","fetch","then","res","ok","e","status","cloudinaryLoader","loaderOptions","imageProps","cldOptions","cldConfig","parseInt","height","multiplier","widthResize","heightResize","Math","round","CldImage","props","CLD_OPTIONS","transformationPlugins","forEach","prop","Error","alt","Object","keys","filter","key","defaultImgKey","map","imgKey","setImgKey","useState","undefined","publicId","startsWith","getPublicId","blurDataURL","preserveTransformations","transformations","getTransformations","flat","console","warn","message","handleOnError","result","target","Date","now","_jsx","IMAGE_WIDTH","IMAGE_HEIGHT","TWITTER_CARD","CldOgImage","excludeTags","twitterTitle","_excluded","crop","gravity","ogImageUrl","_jsxs","CldUploadWidget","children","onUpload","signatureEndpoint","uploadPreset","cloudinary","useRef","widget","signed","generateSignature","callback","paramsToSign","method","body","JSON","stringify","r","json","signature","createWidget","uploadOptions","NEXT_PUBLIC_CLOUDINARY_UPLOAD_PRESET","apiKey","NEXT_PUBLIC_CLOUDINARY_API_KEY","uploadSignature","current","createUploadWidget","error","event","open","handleOnLoad","window","_Fragment","floor","random","CldUploadButton","onClick","handleOnClick","preventDefault"],"mappings":"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"}
@@ -35,7 +35,7 @@ function _objectWithoutPropertiesLoose(source, excluded) {
35
35
  }
36
36
 
37
37
  var name = "next-cloudinary";
38
- var version = "2.0.0";
38
+ var version = "2.0.1";
39
39
  var main = "dist/next-cloudinary.umd.js";
40
40
  var module = "dist/next-cloudinary.module.js";
41
41
  var source = "src/index.ts";
@@ -48,7 +48,7 @@ var scripts = {
48
48
  };
49
49
  var dependencies = {
50
50
  "@cloudinary-util/url-loader": "^1.2.4",
51
- "@cloudinary-util/util": "^1.1.1",
51
+ "@cloudinary-util/util": "^1.2.0",
52
52
  "@cloudinary/url-gen": "^1.8.6"
53
53
  };
54
54
  var devDependencies = {
@@ -227,7 +227,7 @@ var CldImage = function CldImage(props) {
227
227
  return Promise.reject(e);
228
228
  }
229
229
  };
230
- var CLD_OPTIONS = ['deliveryType'];
230
+ var CLD_OPTIONS = ['deliveryType', 'preserveTransformations'];
231
231
  transformationPlugins.forEach(function (_ref) {
232
232
  var _ref$props = _ref.props,
233
233
  props = _ref$props === void 0 ? [] : _ref$props;
@@ -238,7 +238,6 @@ var CldImage = function CldImage(props) {
238
238
  CLD_OPTIONS.push(prop);
239
239
  });
240
240
  });
241
- // Construct the base Image component props by filtering out Cloudinary-specific props
242
241
  var imageProps = {
243
242
  alt: props.alt,
244
243
  src: props.src
@@ -254,11 +253,10 @@ var CldImage = function CldImage(props) {
254
253
  var _useState = useState(defaultImgKey),
255
254
  imgKey = _useState[0],
256
255
  setImgKey = _useState[1];
257
- // Construct Cloudinary-specific props by looking for values for any of the supported prop keys
258
256
  var cldOptions = {};
259
257
  CLD_OPTIONS.forEach(function (key) {
260
258
  if (props[key]) {
261
- cldOptions[key] = props[key];
259
+ cldOptions[key] = props[key] || undefined;
262
260
  }
263
261
  });
264
262
  // If we see a placeholder option, configure a Cloudinary-based URL.
@@ -287,10 +285,16 @@ var CldImage = function CldImage(props) {
287
285
  imageProps.placeholder = 'blur';
288
286
  }
289
287
  }
290
- if (props.src && props.preserveTransformations) {
291
- var transformations = getTransformations(props.src, props.preserveTransformations);
292
- var rawTransformations = imageProps.rawTransformations ? [].concat(imageProps.rawTransformations) : [];
293
- imageProps.rawTransformations = [].concat(rawTransformations, transformations);
288
+ // Try to preserve the original transformations from the Cloudinary URL passed in
289
+ // to the component. This only works if the URL has a version number on it and otherwise
290
+ // will fail to load
291
+ if (props.preserveTransformations) {
292
+ try {
293
+ var transformations = getTransformations(props.src);
294
+ cldOptions.rawTransformations = [].concat(transformations.flat(), props.rawTransformations || []);
295
+ } catch (e) {
296
+ console.warn("Failed to preserve transformations: " + e.message);
297
+ }
294
298
  }
295
299
  return /*#__PURE__*/jsx(Image, _extends({}, imageProps, {
296
300
  loader: function loader(loaderOptions) {
@@ -1 +1 @@
1
- {"version":3,"file":"next-cloudinary.module.js","sources":["../src/constants/analytics.js","../src/lib/cloudinary.ts","../src/loaders/cloudinary-loader.js","../src/components/CldImage/CldImage.tsx","../src/components/CldOgImage/CldOgImage.tsx","../src/components/CldUploadWidget/CldUploadWidget.tsx","../src/components/CldUploadButton/CldUploadButton.tsx"],"sourcesContent":["import nextPkg from 'next/package.json';\nimport pkg from '../../package.json';\n\nexport const NEXT_CLOUDINARY_ANALYTICS_ID = 'V';\nexport const NEXT_CLOUDINARY_VERSION = pkg.version;\nexport const NEXT_VERSION = nextPkg.version;","import { constructCloudinaryUrl } from '@cloudinary-util/url-loader';\n\nimport { NEXT_CLOUDINARY_ANALYTICS_ID, NEXT_CLOUDINARY_VERSION, NEXT_VERSION } from '../constants/analytics';\n\n/**\n * createPlaceholderUrl\n */\n\nexport function createPlaceholderUrl({ src, placeholder = true }: { src?: any, placeholder?: boolean | string, config?: any }) {\n const rawTransformations: string[] = [];\n\n if ( placeholder === 'grayscale' ) {\n rawTransformations.push('e_grayscale');\n }\n\n if ( typeof placeholder === 'string' && placeholder.includes('color:') ) {\n const color = placeholder.split(':').splice(1).join(':')\n rawTransformations.push('e_grayscale');\n rawTransformations.push(`e_colorize:60,co_${color}`);\n }\n\n return constructCloudinaryUrl({\n options: {\n src,\n width: 100,\n quality: 1,\n rawTransformations,\n },\n config: {\n cloud: {\n cloudName: process.env.NEXT_PUBLIC_CLOUDINARY_CLOUD_NAME\n }\n },\n analytics: {\n sdkCode: NEXT_CLOUDINARY_ANALYTICS_ID,\n sdkSemver: NEXT_CLOUDINARY_VERSION,\n techVersion: NEXT_VERSION,\n feature: ''\n }\n });\n}\n\n/**\n * pollForProcessingImage\n */\n\nexport async function pollForProcessingImage(options): Promise<boolean> {\n const { src } = options;\n try {\n await new Promise((resolve, reject) => {\n fetch(src).then(res => {\n if ( !res.ok ) {\n reject(res);\n return;\n }\n resolve(res);\n });\n });\n } catch(e: any) {\n if ( e.status === 423 ) {\n return await pollForProcessingImage(options);\n }\n return false;\n }\n return true;\n}","import { constructCloudinaryUrl } from '@cloudinary-util/url-loader';\n\nimport { NEXT_CLOUDINARY_ANALYTICS_ID, NEXT_CLOUDINARY_VERSION, NEXT_VERSION } from '../constants/analytics';\n\nexport function cloudinaryLoader({ loaderOptions, imageProps, cldOptions, cldConfig = {} }) {\n const options = {\n ...imageProps,\n ...cldOptions\n }\n\n options.width = parseInt(options.width);\n options.height = parseInt(options.height);\n\n // The loader options are used to create dynamic sizing when working with responsive images\n // so these should override the default options collected from the props alone if\n // the results are different. While we don't always use the height in the loader logic,\n // we always pass it here, as the usage is determined later based on cropping.js\n\n if ( loaderOptions?.width && loaderOptions.width !== options.width ) {\n const multiplier = loaderOptions.width / options.width;\n options.widthResize = loaderOptions.width;\n options.heightResize = Math.round(options.height * multiplier);\n }\n\n return constructCloudinaryUrl({\n options,\n config: {\n cloud: {\n cloudName: process.env.NEXT_PUBLIC_CLOUDINARY_CLOUD_NAME\n },\n ...cldConfig\n },\n analytics: {\n sdkCode: NEXT_CLOUDINARY_ANALYTICS_ID,\n sdkSemver: NEXT_CLOUDINARY_VERSION,\n techVersion: NEXT_VERSION,\n feature: ''\n }\n });\n}","'use client';\n\nimport { useState } from 'react';\nimport Image from 'next/image';\nimport { getTransformations, getPublicId } from '@cloudinary-util/util';\nimport { transformationPlugins } from '@cloudinary-util/url-loader';\n\nimport { createPlaceholderUrl, pollForProcessingImage } from '../../lib/cloudinary';\n\nimport { cloudinaryLoader } from '../../loaders/cloudinary-loader';\n\ndeclare type PlaceholderValue = 'blur' | 'empty'; // this is from next/image, but isn't exported\n\nconst CldImage = props => {\n const CLD_OPTIONS = [\n 'deliveryType'\n ];\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 rawTransformations?: string[];\n blurDataURL?: string;\n placeholder?: PlaceholderValue;\n alt: string;\n src: string;\n } = {\n alt: props.alt,\n src: props.src\n };\n\n Object.keys(props)\n .filter(key => !CLD_OPTIONS.includes(key))\n .forEach(key => imageProps[key] = props[key]);\n\n const defaultImgKey = Object.keys(imageProps).map(key => `${key}:${imageProps[key]}`).join(';');\n const [imgKey, setImgKey] = useState(defaultImgKey);\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 let publicId;\n\n if ( props.src.startsWith('https://') ) {\n try {\n publicId = getPublicId(props.src);\n } catch(e) {}\n }\n\n if ( !publicId ) {\n publicId = props.src;\n }\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 if (props.src && props.preserveTransformations) {\n const transformations = getTransformations(props.src,props.preserveTransformations);\n const rawTransformations = imageProps.rawTransformations ? [...imageProps.rawTransformations] : []\n imageProps.rawTransformations = [...rawTransformations,...transformations,];\n }\n\n /**\n * handleOnError\n */\n\n async function handleOnError(options) {\n const result = await pollForProcessingImage({ src: options.target.src })\n if ( result ) {\n setImgKey(`${defaultImgKey};${Date.now()}`);\n }\n }\n\n return (\n <Image\n key={imgKey}\n {...imageProps}\n loader={(loaderOptions) => cloudinaryLoader({ loaderOptions, imageProps, cldOptions })}\n onError={handleOnError}\n />\n );\n}\n\nexport default CldImage;\n","import Head from 'next/head';\nimport { constructCloudinaryUrl } from '@cloudinary-util/url-loader';\n\nimport { NEXT_CLOUDINARY_ANALYTICS_ID, NEXT_CLOUDINARY_VERSION, NEXT_VERSION } from '../../constants/analytics';\n\nconst IMAGE_WIDTH = 2400;\nconst IMAGE_HEIGHT = 1200;\n\nconst TWITTER_CARD = 'summary_large_image';\n\nconst CldOgImage = ({ excludeTags = [] as string[], twitterTitle, ...props }) => {\n const options = {\n ...props,\n alt: props.alt,\n crop: props.crop || 'fill',\n gravity: props.gravity || 'center',\n height: props.height || IMAGE_HEIGHT,\n src: props.src,\n width: props.width || IMAGE_WIDTH,\n }\n\n const ogImageUrl = constructCloudinaryUrl({\n options,\n config: {\n cloud: {\n cloudName: process.env.NEXT_PUBLIC_CLOUDINARY_CLOUD_NAME\n }\n },\n analytics: {\n sdkCode: NEXT_CLOUDINARY_ANALYTICS_ID,\n sdkSemver: NEXT_CLOUDINARY_VERSION,\n techVersion: NEXT_VERSION,\n feature: ''\n }\n });\n\n // We need to include the tags within the Next.js Head component rather than\n // direcly adding them inside of the Head otherwise we get unexpected results\n\n return (\n // @ts-ignore\n <Head>\n <meta property=\"og:image\" content={ogImageUrl} />\n <meta property=\"og:image:secure_url\" content={ogImageUrl} />\n <meta property=\"og:image:width\" content={options.width} />\n <meta property=\"og:image:height\" content={options.height} />\n\n {options.alt && (\n <meta property=\"og:image:alt\" content={options.alt} />\n )}\n\n {/* Required for summary_large_image, exclude vai excludeTags */}\n {/* https://developer.twitter.com/en/docs/twitter-for-websites/cards/overview/summary-card-with-large-image */}\n\n {!excludeTags.includes('twitter:title') && (\n <meta property=\"twitter:title\" content={twitterTitle || ' '} />\n )}\n\n <meta property=\"twitter:card\" content={TWITTER_CARD} />\n <meta property=\"twitter:image\" content={ogImageUrl} />\n </Head>\n );\n}\n\nexport default CldOgImage;","import { useRef } from 'react';\nimport Script from 'next/script';\n\nconst CldUploadWidget = ({\n children,\n onUpload,\n options,\n signatureEndpoint,\n uploadPreset,\n}) => {\n const cloudinary = useRef<any>();\n const widget = useRef();\n\n const signed = !!signatureEndpoint;\n\n /**\n * generateSignature\n * @description Makes a request to an endpoint to sign Cloudinary parameters as part of widget creation\n */\n\n function generateSignature(callback, paramsToSign) {\n fetch(signatureEndpoint, {\n method: \"POST\",\n body: JSON.stringify({\n paramsToSign,\n }),\n })\n .then((r) => r.json())\n .then(({ signature }) => {\n callback(signature);\n });\n }\n\n /**\n * createWidget\n * @description Creates a new instance of the Cloudinary widget and stores in a ref\n */\n\n function createWidget() {\n // When creating a signed upload, you need to provide both your Cloudinary API Key\n // as well as a signature generator function that will sign any paramters\n // either on page load or during the upload process. Read more about signed uploads at:\n // https://cloudinary.com/documentation/upload_widget#signed_uploads\n\n const uploadOptions = {\n cloudName: process.env.NEXT_PUBLIC_CLOUDINARY_CLOUD_NAME,\n uploadPreset: uploadPreset || process.env.NEXT_PUBLIC_CLOUDINARY_UPLOAD_PRESET,\n apiKey: process.env.NEXT_PUBLIC_CLOUDINARY_API_KEY,\n ...options,\n };\n\n if ( signed ) {\n uploadOptions.uploadSignature = generateSignature;\n\n // No need for apiSecret here because of api/sign-cloudinary-params\n\n if (!uploadOptions.apiKey) {\n return new Error(\"Signed Upload needs apiKey!\");\n }\n }\n\n return cloudinary.current?.createUploadWidget(\n uploadOptions,\n function (error, result) {\n // The callback is a bit more chatty than failed or success so\n // only trigger when one of those are the case. You can additionally\n // create a separate handler such as onEvent and trigger it on\n // ever occurrence\n if (error || result.event === \"success\") {\n onUpload(error, result, widget?.current);\n }\n }\n );\n }\n\n /**\n * open\n * @description When triggered, uses the current widget instance to open the upload modal\n */\n\n function open() {\n if (!widget?.current) {\n widget.current = createWidget();\n }\n\n // @ts-ignore\n widget?.current && widget.current.open();\n }\n\n /**\n * handleOnLoad\n * @description Stores the Cloudinary window instance to a ref when the widget script loads\n */\n\n function handleOnLoad() {\n // @ts-ignore\n cloudinary.current = window.cloudinary;\n }\n\n return (\n <>\n {children({\n cloudinary: cloudinary.current,\n widget: widget.current,\n open,\n })}\n <Script\n id={`cloudinary-${Math.floor(Math.random() * 100)}`}\n // @ts-ignore\n src=\"https://widget.cloudinary.com/v2.0/global/all.js\"\n onLoad={handleOnLoad}\n onError={(e) => console.error(`Failed to load Cloudinary: ${e.message}`)}\n />\n </>\n );\n};\n\nexport default CldUploadWidget;\n","import CldUploadWidget from '../CldUploadWidget';\n\nconst CldUploadButton = ({\n children,\n onClick,\n onUpload,\n options,\n signatureEndpoint,\n uploadPreset,\n ...props\n}) => {\n return (\n <>\n {/* @ts-ignore */}\n <CldUploadWidget\n onUpload={onUpload}\n options={options}\n signatureEndpoint={signatureEndpoint}\n uploadPreset={uploadPreset}\n >\n {({ open }) => {\n function handleOnClick(e) {\n e.preventDefault();\n\n open();\n\n if ( typeof onClick === 'function' ) {\n onClick(e);\n }\n }\n return (\n <button {...props} onClick={handleOnClick} >\n {children || 'Upload'}\n </button>\n );\n }}\n </CldUploadWidget>\n </>\n );\n};\n\nexport default CldUploadButton;\n"],"names":["NEXT_CLOUDINARY_ANALYTICS_ID","NEXT_CLOUDINARY_VERSION","pkg","version","NEXT_VERSION","nextPkg","pollForProcessingImage","options","src","Promise","resolve","reject","fetch","then","res","ok","e","status","createPlaceholderUrl","placeholder","rawTransformations","push","includes","color","split","splice","join","constructCloudinaryUrl","width","quality","config","cloud","cloudName","process","env","NEXT_PUBLIC_CLOUDINARY_CLOUD_NAME","analytics","sdkCode","sdkSemver","techVersion","feature","cloudinaryLoader","loaderOptions","imageProps","cldOptions","cldConfig","parseInt","height","multiplier","widthResize","heightResize","Math","round","CldImage","props","handleOnError","target","result","setImgKey","defaultImgKey","Date","now","CLD_OPTIONS","transformationPlugins","forEach","prop","Error","alt","Object","keys","filter","key","map","useState","imgKey","publicId","startsWith","getPublicId","blurDataURL","preserveTransformations","transformations","getTransformations","_jsx","IMAGE_WIDTH","IMAGE_HEIGHT","TWITTER_CARD","CldOgImage","excludeTags","twitterTitle","_excluded","crop","gravity","ogImageUrl","_jsxs","CldUploadWidget","children","onUpload","signatureEndpoint","uploadPreset","cloudinary","useRef","widget","signed","generateSignature","callback","paramsToSign","method","body","JSON","stringify","r","json","signature","createWidget","uploadOptions","NEXT_PUBLIC_CLOUDINARY_UPLOAD_PRESET","apiKey","NEXT_PUBLIC_CLOUDINARY_API_KEY","uploadSignature","current","createUploadWidget","error","event","open","handleOnLoad","window","_Fragment","floor","random","console","message","CldUploadButton","onClick","handleOnClick","preventDefault"],"mappings":"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"}
1
+ {"version":3,"file":"next-cloudinary.module.js","sources":["../src/constants/analytics.js","../src/lib/cloudinary.ts","../src/loaders/cloudinary-loader.js","../src/components/CldImage/CldImage.tsx","../src/components/CldOgImage/CldOgImage.tsx","../src/components/CldUploadWidget/CldUploadWidget.tsx","../src/components/CldUploadButton/CldUploadButton.tsx"],"sourcesContent":["import nextPkg from 'next/package.json';\nimport pkg from '../../package.json';\n\nexport const NEXT_CLOUDINARY_ANALYTICS_ID = 'V';\nexport const NEXT_CLOUDINARY_VERSION = pkg.version;\nexport const NEXT_VERSION = nextPkg.version;","import { constructCloudinaryUrl } from '@cloudinary-util/url-loader';\n\nimport { NEXT_CLOUDINARY_ANALYTICS_ID, NEXT_CLOUDINARY_VERSION, NEXT_VERSION } from '../constants/analytics';\n\n/**\n * createPlaceholderUrl\n */\n\nexport function createPlaceholderUrl({ src, placeholder = true }: { src?: any, placeholder?: boolean | string, config?: any }) {\n const rawTransformations: string[] = [];\n\n if ( placeholder === 'grayscale' ) {\n rawTransformations.push('e_grayscale');\n }\n\n if ( typeof placeholder === 'string' && placeholder.includes('color:') ) {\n const color = placeholder.split(':').splice(1).join(':')\n rawTransformations.push('e_grayscale');\n rawTransformations.push(`e_colorize:60,co_${color}`);\n }\n\n return constructCloudinaryUrl({\n options: {\n src,\n width: 100,\n quality: 1,\n rawTransformations,\n },\n config: {\n cloud: {\n cloudName: process.env.NEXT_PUBLIC_CLOUDINARY_CLOUD_NAME\n }\n },\n analytics: {\n sdkCode: NEXT_CLOUDINARY_ANALYTICS_ID,\n sdkSemver: NEXT_CLOUDINARY_VERSION,\n techVersion: NEXT_VERSION,\n feature: ''\n }\n });\n}\n\n/**\n * pollForProcessingImage\n */\n\nexport async function pollForProcessingImage(options): Promise<boolean> {\n const { src } = options;\n try {\n await new Promise((resolve, reject) => {\n fetch(src).then(res => {\n if ( !res.ok ) {\n reject(res);\n return;\n }\n resolve(res);\n });\n });\n } catch(e: any) {\n if ( e.status === 423 ) {\n return await pollForProcessingImage(options);\n }\n return false;\n }\n return true;\n}","import { constructCloudinaryUrl } from '@cloudinary-util/url-loader';\n\nimport { NEXT_CLOUDINARY_ANALYTICS_ID, NEXT_CLOUDINARY_VERSION, NEXT_VERSION } from '../constants/analytics';\n\nexport function cloudinaryLoader({ loaderOptions, imageProps, cldOptions, cldConfig = {} }) {\n const options = {\n ...imageProps,\n ...cldOptions\n }\n\n options.width = parseInt(options.width);\n options.height = parseInt(options.height);\n\n // The loader options are used to create dynamic sizing when working with responsive images\n // so these should override the default options collected from the props alone if\n // the results are different. While we don't always use the height in the loader logic,\n // we always pass it here, as the usage is determined later based on cropping.js\n\n if ( loaderOptions?.width && loaderOptions.width !== options.width ) {\n const multiplier = loaderOptions.width / options.width;\n options.widthResize = loaderOptions.width;\n options.heightResize = Math.round(options.height * multiplier);\n }\n\n return constructCloudinaryUrl({\n options,\n config: {\n cloud: {\n cloudName: process.env.NEXT_PUBLIC_CLOUDINARY_CLOUD_NAME\n },\n ...cldConfig\n },\n analytics: {\n sdkCode: NEXT_CLOUDINARY_ANALYTICS_ID,\n sdkSemver: NEXT_CLOUDINARY_VERSION,\n techVersion: NEXT_VERSION,\n feature: ''\n }\n });\n}","'use client';\n\nimport { useState } from 'react';\nimport Image from 'next/image';\nimport { getTransformations, getPublicId } from '@cloudinary-util/util';\nimport { transformationPlugins } from '@cloudinary-util/url-loader';\n\nimport { createPlaceholderUrl, pollForProcessingImage } from '../../lib/cloudinary';\n\nimport { cloudinaryLoader } from '../../loaders/cloudinary-loader';\n\nconst CldImage = props => {\n const CLD_OPTIONS = [\n 'deliveryType',\n 'preserveTransformations'\n ];\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 interface ImageProps {\n alt: string;\n blurDataURL?: string;\n placeholder?: 'blur' | 'empty'; // this is from next/image, but isn't exported\n src: string;\n }\n\n const imageProps: ImageProps = {\n alt: props.alt,\n src: props.src\n };\n\n Object.keys(props)\n .filter(key => !CLD_OPTIONS.includes(key))\n .forEach(key => imageProps[key] = props[key]);\n\n const defaultImgKey = Object.keys(imageProps).map(key => `${key}:${imageProps[key]}`).join(';');\n const [imgKey, setImgKey] = useState(defaultImgKey);\n\n // Construct Cloudinary-specific props by looking for values for any of the supported prop keys\n\n interface CldOptions {\n rawTransformations?: string[];\n }\n\n const cldOptions: CldOptions = {};\n\n CLD_OPTIONS.forEach(key => {\n if ( props[key] ) {\n cldOptions[key] = props[key] || undefined;\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 let publicId;\n\n if ( props.src.startsWith('https://') ) {\n try {\n publicId = getPublicId(props.src);\n } catch(e) {}\n }\n\n if ( !publicId ) {\n publicId = props.src;\n }\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 // Try to preserve the original transformations from the Cloudinary URL passed in\n // to the component. This only works if the URL has a version number on it and otherwise\n // will fail to load\n\n if (props.preserveTransformations) {\n try {\n const transformations = getTransformations(props.src);\n cldOptions.rawTransformations = [...transformations.flat(), ...(props.rawTransformations || [])];\n } catch(e) {\n console.warn(`Failed to preserve transformations: ${(e as Error).message}`)\n }\n }\n\n /**\n * handleOnError\n */\n\n async function handleOnError(options) {\n const result = await pollForProcessingImage({ src: options.target.src })\n if ( result ) {\n setImgKey(`${defaultImgKey};${Date.now()}`);\n }\n }\n\n return (\n <Image\n key={imgKey}\n {...imageProps}\n loader={(loaderOptions) => cloudinaryLoader({ loaderOptions, imageProps, cldOptions })}\n onError={handleOnError}\n />\n );\n}\n\nexport default CldImage;\n","import Head from 'next/head';\nimport { constructCloudinaryUrl } from '@cloudinary-util/url-loader';\n\nimport { NEXT_CLOUDINARY_ANALYTICS_ID, NEXT_CLOUDINARY_VERSION, NEXT_VERSION } from '../../constants/analytics';\n\nconst IMAGE_WIDTH = 2400;\nconst IMAGE_HEIGHT = 1200;\n\nconst TWITTER_CARD = 'summary_large_image';\n\nconst CldOgImage = ({ excludeTags = [] as string[], twitterTitle, ...props }) => {\n const options = {\n ...props,\n alt: props.alt,\n crop: props.crop || 'fill',\n gravity: props.gravity || 'center',\n height: props.height || IMAGE_HEIGHT,\n src: props.src,\n width: props.width || IMAGE_WIDTH,\n }\n\n const ogImageUrl = constructCloudinaryUrl({\n options,\n config: {\n cloud: {\n cloudName: process.env.NEXT_PUBLIC_CLOUDINARY_CLOUD_NAME\n }\n },\n analytics: {\n sdkCode: NEXT_CLOUDINARY_ANALYTICS_ID,\n sdkSemver: NEXT_CLOUDINARY_VERSION,\n techVersion: NEXT_VERSION,\n feature: ''\n }\n });\n\n // We need to include the tags within the Next.js Head component rather than\n // direcly adding them inside of the Head otherwise we get unexpected results\n\n return (\n // @ts-ignore\n <Head>\n <meta property=\"og:image\" content={ogImageUrl} />\n <meta property=\"og:image:secure_url\" content={ogImageUrl} />\n <meta property=\"og:image:width\" content={options.width} />\n <meta property=\"og:image:height\" content={options.height} />\n\n {options.alt && (\n <meta property=\"og:image:alt\" content={options.alt} />\n )}\n\n {/* Required for summary_large_image, exclude vai excludeTags */}\n {/* https://developer.twitter.com/en/docs/twitter-for-websites/cards/overview/summary-card-with-large-image */}\n\n {!excludeTags.includes('twitter:title') && (\n <meta property=\"twitter:title\" content={twitterTitle || ' '} />\n )}\n\n <meta property=\"twitter:card\" content={TWITTER_CARD} />\n <meta property=\"twitter:image\" content={ogImageUrl} />\n </Head>\n );\n}\n\nexport default CldOgImage;","import { useRef } from 'react';\nimport Script from 'next/script';\n\nconst CldUploadWidget = ({\n children,\n onUpload,\n options,\n signatureEndpoint,\n uploadPreset,\n}) => {\n const cloudinary = useRef<any>();\n const widget = useRef();\n\n const signed = !!signatureEndpoint;\n\n /**\n * generateSignature\n * @description Makes a request to an endpoint to sign Cloudinary parameters as part of widget creation\n */\n\n function generateSignature(callback, paramsToSign) {\n fetch(signatureEndpoint, {\n method: \"POST\",\n body: JSON.stringify({\n paramsToSign,\n }),\n })\n .then((r) => r.json())\n .then(({ signature }) => {\n callback(signature);\n });\n }\n\n /**\n * createWidget\n * @description Creates a new instance of the Cloudinary widget and stores in a ref\n */\n\n function createWidget() {\n // When creating a signed upload, you need to provide both your Cloudinary API Key\n // as well as a signature generator function that will sign any paramters\n // either on page load or during the upload process. Read more about signed uploads at:\n // https://cloudinary.com/documentation/upload_widget#signed_uploads\n\n const uploadOptions = {\n cloudName: process.env.NEXT_PUBLIC_CLOUDINARY_CLOUD_NAME,\n uploadPreset: uploadPreset || process.env.NEXT_PUBLIC_CLOUDINARY_UPLOAD_PRESET,\n apiKey: process.env.NEXT_PUBLIC_CLOUDINARY_API_KEY,\n ...options,\n };\n\n if ( signed ) {\n uploadOptions.uploadSignature = generateSignature;\n\n // No need for apiSecret here because of api/sign-cloudinary-params\n\n if (!uploadOptions.apiKey) {\n return new Error(\"Signed Upload needs apiKey!\");\n }\n }\n\n return cloudinary.current?.createUploadWidget(\n uploadOptions,\n function (error, result) {\n // The callback is a bit more chatty than failed or success so\n // only trigger when one of those are the case. You can additionally\n // create a separate handler such as onEvent and trigger it on\n // ever occurrence\n if (error || result.event === \"success\") {\n onUpload(error, result, widget?.current);\n }\n }\n );\n }\n\n /**\n * open\n * @description When triggered, uses the current widget instance to open the upload modal\n */\n\n function open() {\n if (!widget?.current) {\n widget.current = createWidget();\n }\n\n // @ts-ignore\n widget?.current && widget.current.open();\n }\n\n /**\n * handleOnLoad\n * @description Stores the Cloudinary window instance to a ref when the widget script loads\n */\n\n function handleOnLoad() {\n // @ts-ignore\n cloudinary.current = window.cloudinary;\n }\n\n return (\n <>\n {children({\n cloudinary: cloudinary.current,\n widget: widget.current,\n open,\n })}\n <Script\n id={`cloudinary-${Math.floor(Math.random() * 100)}`}\n // @ts-ignore\n src=\"https://widget.cloudinary.com/v2.0/global/all.js\"\n onLoad={handleOnLoad}\n onError={(e) => console.error(`Failed to load Cloudinary: ${e.message}`)}\n />\n </>\n );\n};\n\nexport default CldUploadWidget;\n","import CldUploadWidget from '../CldUploadWidget';\n\nconst CldUploadButton = ({\n children,\n onClick,\n onUpload,\n options,\n signatureEndpoint,\n uploadPreset,\n ...props\n}) => {\n return (\n <>\n {/* @ts-ignore */}\n <CldUploadWidget\n onUpload={onUpload}\n options={options}\n signatureEndpoint={signatureEndpoint}\n uploadPreset={uploadPreset}\n >\n {({ open }) => {\n function handleOnClick(e) {\n e.preventDefault();\n\n open();\n\n if ( typeof onClick === 'function' ) {\n onClick(e);\n }\n }\n return (\n <button {...props} onClick={handleOnClick} >\n {children || 'Upload'}\n </button>\n );\n }}\n </CldUploadWidget>\n </>\n );\n};\n\nexport default CldUploadButton;\n"],"names":["NEXT_CLOUDINARY_ANALYTICS_ID","NEXT_CLOUDINARY_VERSION","pkg","version","NEXT_VERSION","nextPkg","pollForProcessingImage","options","src","Promise","resolve","reject","fetch","then","res","ok","e","status","createPlaceholderUrl","placeholder","rawTransformations","push","includes","color","split","splice","join","constructCloudinaryUrl","width","quality","config","cloud","cloudName","process","env","NEXT_PUBLIC_CLOUDINARY_CLOUD_NAME","analytics","sdkCode","sdkSemver","techVersion","feature","cloudinaryLoader","loaderOptions","imageProps","cldOptions","cldConfig","parseInt","height","multiplier","widthResize","heightResize","Math","round","CldImage","props","handleOnError","target","result","setImgKey","defaultImgKey","Date","now","CLD_OPTIONS","transformationPlugins","forEach","prop","Error","alt","Object","keys","filter","key","map","useState","imgKey","undefined","publicId","startsWith","getPublicId","blurDataURL","preserveTransformations","transformations","getTransformations","flat","console","warn","message","_jsx","IMAGE_WIDTH","IMAGE_HEIGHT","TWITTER_CARD","CldOgImage","excludeTags","twitterTitle","_excluded","crop","gravity","ogImageUrl","_jsxs","CldUploadWidget","children","onUpload","signatureEndpoint","uploadPreset","cloudinary","useRef","widget","signed","generateSignature","callback","paramsToSign","method","body","JSON","stringify","r","json","signature","createWidget","uploadOptions","NEXT_PUBLIC_CLOUDINARY_UPLOAD_PRESET","apiKey","NEXT_PUBLIC_CLOUDINARY_API_KEY","uploadSignature","current","createUploadWidget","error","event","open","handleOnLoad","window","_Fragment","floor","random","CldUploadButton","onClick","handleOnClick","preventDefault"],"mappings":"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"}
@@ -38,7 +38,7 @@
38
38
  }
39
39
 
40
40
  var name = "next-cloudinary";
41
- var version = "2.0.0";
41
+ var version = "2.0.1";
42
42
  var main = "dist/next-cloudinary.umd.js";
43
43
  var module = "dist/next-cloudinary.module.js";
44
44
  var source = "src/index.ts";
@@ -51,7 +51,7 @@
51
51
  };
52
52
  var dependencies = {
53
53
  "@cloudinary-util/url-loader": "^1.2.4",
54
- "@cloudinary-util/util": "^1.1.1",
54
+ "@cloudinary-util/util": "^1.2.0",
55
55
  "@cloudinary/url-gen": "^1.8.6"
56
56
  };
57
57
  var devDependencies = {
@@ -230,7 +230,7 @@
230
230
  return Promise.reject(e);
231
231
  }
232
232
  };
233
- var CLD_OPTIONS = ['deliveryType'];
233
+ var CLD_OPTIONS = ['deliveryType', 'preserveTransformations'];
234
234
  urlLoader.transformationPlugins.forEach(function (_ref) {
235
235
  var _ref$props = _ref.props,
236
236
  props = _ref$props === void 0 ? [] : _ref$props;
@@ -241,7 +241,6 @@
241
241
  CLD_OPTIONS.push(prop);
242
242
  });
243
243
  });
244
- // Construct the base Image component props by filtering out Cloudinary-specific props
245
244
  var imageProps = {
246
245
  alt: props.alt,
247
246
  src: props.src
@@ -257,11 +256,10 @@
257
256
  var _useState = react.useState(defaultImgKey),
258
257
  imgKey = _useState[0],
259
258
  setImgKey = _useState[1];
260
- // Construct Cloudinary-specific props by looking for values for any of the supported prop keys
261
259
  var cldOptions = {};
262
260
  CLD_OPTIONS.forEach(function (key) {
263
261
  if (props[key]) {
264
- cldOptions[key] = props[key];
262
+ cldOptions[key] = props[key] || undefined;
265
263
  }
266
264
  });
267
265
  // If we see a placeholder option, configure a Cloudinary-based URL.
@@ -290,10 +288,16 @@
290
288
  imageProps.placeholder = 'blur';
291
289
  }
292
290
  }
293
- if (props.src && props.preserveTransformations) {
294
- var transformations = util.getTransformations(props.src, props.preserveTransformations);
295
- var rawTransformations = imageProps.rawTransformations ? [].concat(imageProps.rawTransformations) : [];
296
- imageProps.rawTransformations = [].concat(rawTransformations, transformations);
291
+ // Try to preserve the original transformations from the Cloudinary URL passed in
292
+ // to the component. This only works if the URL has a version number on it and otherwise
293
+ // will fail to load
294
+ if (props.preserveTransformations) {
295
+ try {
296
+ var transformations = util.getTransformations(props.src);
297
+ cldOptions.rawTransformations = [].concat(transformations.flat(), props.rawTransformations || []);
298
+ } catch (e) {
299
+ console.warn("Failed to preserve transformations: " + e.message);
300
+ }
297
301
  }
298
302
  return /*#__PURE__*/jsxRuntime.jsx(Image__default["default"], _extends({}, imageProps, {
299
303
  loader: function loader(loaderOptions) {
@@ -1 +1 @@
1
- {"version":3,"file":"next-cloudinary.umd.js","sources":["../src/constants/analytics.js","../src/lib/cloudinary.ts","../src/loaders/cloudinary-loader.js","../src/components/CldImage/CldImage.tsx","../src/components/CldOgImage/CldOgImage.tsx","../src/components/CldUploadWidget/CldUploadWidget.tsx","../src/components/CldUploadButton/CldUploadButton.tsx"],"sourcesContent":["import nextPkg from 'next/package.json';\nimport pkg from '../../package.json';\n\nexport const NEXT_CLOUDINARY_ANALYTICS_ID = 'V';\nexport const NEXT_CLOUDINARY_VERSION = pkg.version;\nexport const NEXT_VERSION = nextPkg.version;","import { constructCloudinaryUrl } from '@cloudinary-util/url-loader';\n\nimport { NEXT_CLOUDINARY_ANALYTICS_ID, NEXT_CLOUDINARY_VERSION, NEXT_VERSION } from '../constants/analytics';\n\n/**\n * createPlaceholderUrl\n */\n\nexport function createPlaceholderUrl({ src, placeholder = true }: { src?: any, placeholder?: boolean | string, config?: any }) {\n const rawTransformations: string[] = [];\n\n if ( placeholder === 'grayscale' ) {\n rawTransformations.push('e_grayscale');\n }\n\n if ( typeof placeholder === 'string' && placeholder.includes('color:') ) {\n const color = placeholder.split(':').splice(1).join(':')\n rawTransformations.push('e_grayscale');\n rawTransformations.push(`e_colorize:60,co_${color}`);\n }\n\n return constructCloudinaryUrl({\n options: {\n src,\n width: 100,\n quality: 1,\n rawTransformations,\n },\n config: {\n cloud: {\n cloudName: process.env.NEXT_PUBLIC_CLOUDINARY_CLOUD_NAME\n }\n },\n analytics: {\n sdkCode: NEXT_CLOUDINARY_ANALYTICS_ID,\n sdkSemver: NEXT_CLOUDINARY_VERSION,\n techVersion: NEXT_VERSION,\n feature: ''\n }\n });\n}\n\n/**\n * pollForProcessingImage\n */\n\nexport async function pollForProcessingImage(options): Promise<boolean> {\n const { src } = options;\n try {\n await new Promise((resolve, reject) => {\n fetch(src).then(res => {\n if ( !res.ok ) {\n reject(res);\n return;\n }\n resolve(res);\n });\n });\n } catch(e: any) {\n if ( e.status === 423 ) {\n return await pollForProcessingImage(options);\n }\n return false;\n }\n return true;\n}","import { constructCloudinaryUrl } from '@cloudinary-util/url-loader';\n\nimport { NEXT_CLOUDINARY_ANALYTICS_ID, NEXT_CLOUDINARY_VERSION, NEXT_VERSION } from '../constants/analytics';\n\nexport function cloudinaryLoader({ loaderOptions, imageProps, cldOptions, cldConfig = {} }) {\n const options = {\n ...imageProps,\n ...cldOptions\n }\n\n options.width = parseInt(options.width);\n options.height = parseInt(options.height);\n\n // The loader options are used to create dynamic sizing when working with responsive images\n // so these should override the default options collected from the props alone if\n // the results are different. While we don't always use the height in the loader logic,\n // we always pass it here, as the usage is determined later based on cropping.js\n\n if ( loaderOptions?.width && loaderOptions.width !== options.width ) {\n const multiplier = loaderOptions.width / options.width;\n options.widthResize = loaderOptions.width;\n options.heightResize = Math.round(options.height * multiplier);\n }\n\n return constructCloudinaryUrl({\n options,\n config: {\n cloud: {\n cloudName: process.env.NEXT_PUBLIC_CLOUDINARY_CLOUD_NAME\n },\n ...cldConfig\n },\n analytics: {\n sdkCode: NEXT_CLOUDINARY_ANALYTICS_ID,\n sdkSemver: NEXT_CLOUDINARY_VERSION,\n techVersion: NEXT_VERSION,\n feature: ''\n }\n });\n}","'use client';\n\nimport { useState } from 'react';\nimport Image from 'next/image';\nimport { getTransformations, getPublicId } from '@cloudinary-util/util';\nimport { transformationPlugins } from '@cloudinary-util/url-loader';\n\nimport { createPlaceholderUrl, pollForProcessingImage } from '../../lib/cloudinary';\n\nimport { cloudinaryLoader } from '../../loaders/cloudinary-loader';\n\ndeclare type PlaceholderValue = 'blur' | 'empty'; // this is from next/image, but isn't exported\n\nconst CldImage = props => {\n const CLD_OPTIONS = [\n 'deliveryType'\n ];\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 rawTransformations?: string[];\n blurDataURL?: string;\n placeholder?: PlaceholderValue;\n alt: string;\n src: string;\n } = {\n alt: props.alt,\n src: props.src\n };\n\n Object.keys(props)\n .filter(key => !CLD_OPTIONS.includes(key))\n .forEach(key => imageProps[key] = props[key]);\n\n const defaultImgKey = Object.keys(imageProps).map(key => `${key}:${imageProps[key]}`).join(';');\n const [imgKey, setImgKey] = useState(defaultImgKey);\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 let publicId;\n\n if ( props.src.startsWith('https://') ) {\n try {\n publicId = getPublicId(props.src);\n } catch(e) {}\n }\n\n if ( !publicId ) {\n publicId = props.src;\n }\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 if (props.src && props.preserveTransformations) {\n const transformations = getTransformations(props.src,props.preserveTransformations);\n const rawTransformations = imageProps.rawTransformations ? [...imageProps.rawTransformations] : []\n imageProps.rawTransformations = [...rawTransformations,...transformations,];\n }\n\n /**\n * handleOnError\n */\n\n async function handleOnError(options) {\n const result = await pollForProcessingImage({ src: options.target.src })\n if ( result ) {\n setImgKey(`${defaultImgKey};${Date.now()}`);\n }\n }\n\n return (\n <Image\n key={imgKey}\n {...imageProps}\n loader={(loaderOptions) => cloudinaryLoader({ loaderOptions, imageProps, cldOptions })}\n onError={handleOnError}\n />\n );\n}\n\nexport default CldImage;\n","import Head from 'next/head';\nimport { constructCloudinaryUrl } from '@cloudinary-util/url-loader';\n\nimport { NEXT_CLOUDINARY_ANALYTICS_ID, NEXT_CLOUDINARY_VERSION, NEXT_VERSION } from '../../constants/analytics';\n\nconst IMAGE_WIDTH = 2400;\nconst IMAGE_HEIGHT = 1200;\n\nconst TWITTER_CARD = 'summary_large_image';\n\nconst CldOgImage = ({ excludeTags = [] as string[], twitterTitle, ...props }) => {\n const options = {\n ...props,\n alt: props.alt,\n crop: props.crop || 'fill',\n gravity: props.gravity || 'center',\n height: props.height || IMAGE_HEIGHT,\n src: props.src,\n width: props.width || IMAGE_WIDTH,\n }\n\n const ogImageUrl = constructCloudinaryUrl({\n options,\n config: {\n cloud: {\n cloudName: process.env.NEXT_PUBLIC_CLOUDINARY_CLOUD_NAME\n }\n },\n analytics: {\n sdkCode: NEXT_CLOUDINARY_ANALYTICS_ID,\n sdkSemver: NEXT_CLOUDINARY_VERSION,\n techVersion: NEXT_VERSION,\n feature: ''\n }\n });\n\n // We need to include the tags within the Next.js Head component rather than\n // direcly adding them inside of the Head otherwise we get unexpected results\n\n return (\n // @ts-ignore\n <Head>\n <meta property=\"og:image\" content={ogImageUrl} />\n <meta property=\"og:image:secure_url\" content={ogImageUrl} />\n <meta property=\"og:image:width\" content={options.width} />\n <meta property=\"og:image:height\" content={options.height} />\n\n {options.alt && (\n <meta property=\"og:image:alt\" content={options.alt} />\n )}\n\n {/* Required for summary_large_image, exclude vai excludeTags */}\n {/* https://developer.twitter.com/en/docs/twitter-for-websites/cards/overview/summary-card-with-large-image */}\n\n {!excludeTags.includes('twitter:title') && (\n <meta property=\"twitter:title\" content={twitterTitle || ' '} />\n )}\n\n <meta property=\"twitter:card\" content={TWITTER_CARD} />\n <meta property=\"twitter:image\" content={ogImageUrl} />\n </Head>\n );\n}\n\nexport default CldOgImage;","import { useRef } from 'react';\nimport Script from 'next/script';\n\nconst CldUploadWidget = ({\n children,\n onUpload,\n options,\n signatureEndpoint,\n uploadPreset,\n}) => {\n const cloudinary = useRef<any>();\n const widget = useRef();\n\n const signed = !!signatureEndpoint;\n\n /**\n * generateSignature\n * @description Makes a request to an endpoint to sign Cloudinary parameters as part of widget creation\n */\n\n function generateSignature(callback, paramsToSign) {\n fetch(signatureEndpoint, {\n method: \"POST\",\n body: JSON.stringify({\n paramsToSign,\n }),\n })\n .then((r) => r.json())\n .then(({ signature }) => {\n callback(signature);\n });\n }\n\n /**\n * createWidget\n * @description Creates a new instance of the Cloudinary widget and stores in a ref\n */\n\n function createWidget() {\n // When creating a signed upload, you need to provide both your Cloudinary API Key\n // as well as a signature generator function that will sign any paramters\n // either on page load or during the upload process. Read more about signed uploads at:\n // https://cloudinary.com/documentation/upload_widget#signed_uploads\n\n const uploadOptions = {\n cloudName: process.env.NEXT_PUBLIC_CLOUDINARY_CLOUD_NAME,\n uploadPreset: uploadPreset || process.env.NEXT_PUBLIC_CLOUDINARY_UPLOAD_PRESET,\n apiKey: process.env.NEXT_PUBLIC_CLOUDINARY_API_KEY,\n ...options,\n };\n\n if ( signed ) {\n uploadOptions.uploadSignature = generateSignature;\n\n // No need for apiSecret here because of api/sign-cloudinary-params\n\n if (!uploadOptions.apiKey) {\n return new Error(\"Signed Upload needs apiKey!\");\n }\n }\n\n return cloudinary.current?.createUploadWidget(\n uploadOptions,\n function (error, result) {\n // The callback is a bit more chatty than failed or success so\n // only trigger when one of those are the case. You can additionally\n // create a separate handler such as onEvent and trigger it on\n // ever occurrence\n if (error || result.event === \"success\") {\n onUpload(error, result, widget?.current);\n }\n }\n );\n }\n\n /**\n * open\n * @description When triggered, uses the current widget instance to open the upload modal\n */\n\n function open() {\n if (!widget?.current) {\n widget.current = createWidget();\n }\n\n // @ts-ignore\n widget?.current && widget.current.open();\n }\n\n /**\n * handleOnLoad\n * @description Stores the Cloudinary window instance to a ref when the widget script loads\n */\n\n function handleOnLoad() {\n // @ts-ignore\n cloudinary.current = window.cloudinary;\n }\n\n return (\n <>\n {children({\n cloudinary: cloudinary.current,\n widget: widget.current,\n open,\n })}\n <Script\n id={`cloudinary-${Math.floor(Math.random() * 100)}`}\n // @ts-ignore\n src=\"https://widget.cloudinary.com/v2.0/global/all.js\"\n onLoad={handleOnLoad}\n onError={(e) => console.error(`Failed to load Cloudinary: ${e.message}`)}\n />\n </>\n );\n};\n\nexport default CldUploadWidget;\n","import CldUploadWidget from '../CldUploadWidget';\n\nconst CldUploadButton = ({\n children,\n onClick,\n onUpload,\n options,\n signatureEndpoint,\n uploadPreset,\n ...props\n}) => {\n return (\n <>\n {/* @ts-ignore */}\n <CldUploadWidget\n onUpload={onUpload}\n options={options}\n signatureEndpoint={signatureEndpoint}\n uploadPreset={uploadPreset}\n >\n {({ open }) => {\n function handleOnClick(e) {\n e.preventDefault();\n\n open();\n\n if ( typeof onClick === 'function' ) {\n onClick(e);\n }\n }\n return (\n <button {...props} onClick={handleOnClick} >\n {children || 'Upload'}\n </button>\n );\n }}\n </CldUploadWidget>\n </>\n );\n};\n\nexport default CldUploadButton;\n"],"names":["NEXT_CLOUDINARY_ANALYTICS_ID","NEXT_CLOUDINARY_VERSION","pkg","version","NEXT_VERSION","nextPkg","pollForProcessingImage","options","src","Promise","resolve","reject","fetch","then","res","ok","e","status","createPlaceholderUrl","placeholder","rawTransformations","push","includes","color","split","splice","join","constructCloudinaryUrl","width","quality","config","cloud","cloudName","process","env","NEXT_PUBLIC_CLOUDINARY_CLOUD_NAME","analytics","sdkCode","sdkSemver","techVersion","feature","cloudinaryLoader","loaderOptions","imageProps","cldOptions","cldConfig","parseInt","height","multiplier","widthResize","heightResize","Math","round","CldImage","props","handleOnError","target","result","setImgKey","defaultImgKey","Date","now","CLD_OPTIONS","transformationPlugins","forEach","prop","Error","alt","Object","keys","filter","key","map","useState","imgKey","publicId","startsWith","getPublicId","blurDataURL","preserveTransformations","transformations","getTransformations","_jsx","Image","IMAGE_WIDTH","IMAGE_HEIGHT","TWITTER_CARD","CldOgImage","excludeTags","twitterTitle","_excluded","crop","gravity","ogImageUrl","_jsxs","Head","CldUploadWidget","children","onUpload","signatureEndpoint","uploadPreset","cloudinary","useRef","widget","signed","generateSignature","callback","paramsToSign","method","body","JSON","stringify","r","json","signature","createWidget","uploadOptions","NEXT_PUBLIC_CLOUDINARY_UPLOAD_PRESET","apiKey","NEXT_PUBLIC_CLOUDINARY_API_KEY","uploadSignature","current","createUploadWidget","error","event","open","handleOnLoad","window","_Fragment","Script","floor","random","console","message","CldUploadButton","onClick","handleOnClick","preventDefault"],"mappings":"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"}
1
+ {"version":3,"file":"next-cloudinary.umd.js","sources":["../src/constants/analytics.js","../src/lib/cloudinary.ts","../src/loaders/cloudinary-loader.js","../src/components/CldImage/CldImage.tsx","../src/components/CldOgImage/CldOgImage.tsx","../src/components/CldUploadWidget/CldUploadWidget.tsx","../src/components/CldUploadButton/CldUploadButton.tsx"],"sourcesContent":["import nextPkg from 'next/package.json';\nimport pkg from '../../package.json';\n\nexport const NEXT_CLOUDINARY_ANALYTICS_ID = 'V';\nexport const NEXT_CLOUDINARY_VERSION = pkg.version;\nexport const NEXT_VERSION = nextPkg.version;","import { constructCloudinaryUrl } from '@cloudinary-util/url-loader';\n\nimport { NEXT_CLOUDINARY_ANALYTICS_ID, NEXT_CLOUDINARY_VERSION, NEXT_VERSION } from '../constants/analytics';\n\n/**\n * createPlaceholderUrl\n */\n\nexport function createPlaceholderUrl({ src, placeholder = true }: { src?: any, placeholder?: boolean | string, config?: any }) {\n const rawTransformations: string[] = [];\n\n if ( placeholder === 'grayscale' ) {\n rawTransformations.push('e_grayscale');\n }\n\n if ( typeof placeholder === 'string' && placeholder.includes('color:') ) {\n const color = placeholder.split(':').splice(1).join(':')\n rawTransformations.push('e_grayscale');\n rawTransformations.push(`e_colorize:60,co_${color}`);\n }\n\n return constructCloudinaryUrl({\n options: {\n src,\n width: 100,\n quality: 1,\n rawTransformations,\n },\n config: {\n cloud: {\n cloudName: process.env.NEXT_PUBLIC_CLOUDINARY_CLOUD_NAME\n }\n },\n analytics: {\n sdkCode: NEXT_CLOUDINARY_ANALYTICS_ID,\n sdkSemver: NEXT_CLOUDINARY_VERSION,\n techVersion: NEXT_VERSION,\n feature: ''\n }\n });\n}\n\n/**\n * pollForProcessingImage\n */\n\nexport async function pollForProcessingImage(options): Promise<boolean> {\n const { src } = options;\n try {\n await new Promise((resolve, reject) => {\n fetch(src).then(res => {\n if ( !res.ok ) {\n reject(res);\n return;\n }\n resolve(res);\n });\n });\n } catch(e: any) {\n if ( e.status === 423 ) {\n return await pollForProcessingImage(options);\n }\n return false;\n }\n return true;\n}","import { constructCloudinaryUrl } from '@cloudinary-util/url-loader';\n\nimport { NEXT_CLOUDINARY_ANALYTICS_ID, NEXT_CLOUDINARY_VERSION, NEXT_VERSION } from '../constants/analytics';\n\nexport function cloudinaryLoader({ loaderOptions, imageProps, cldOptions, cldConfig = {} }) {\n const options = {\n ...imageProps,\n ...cldOptions\n }\n\n options.width = parseInt(options.width);\n options.height = parseInt(options.height);\n\n // The loader options are used to create dynamic sizing when working with responsive images\n // so these should override the default options collected from the props alone if\n // the results are different. While we don't always use the height in the loader logic,\n // we always pass it here, as the usage is determined later based on cropping.js\n\n if ( loaderOptions?.width && loaderOptions.width !== options.width ) {\n const multiplier = loaderOptions.width / options.width;\n options.widthResize = loaderOptions.width;\n options.heightResize = Math.round(options.height * multiplier);\n }\n\n return constructCloudinaryUrl({\n options,\n config: {\n cloud: {\n cloudName: process.env.NEXT_PUBLIC_CLOUDINARY_CLOUD_NAME\n },\n ...cldConfig\n },\n analytics: {\n sdkCode: NEXT_CLOUDINARY_ANALYTICS_ID,\n sdkSemver: NEXT_CLOUDINARY_VERSION,\n techVersion: NEXT_VERSION,\n feature: ''\n }\n });\n}","'use client';\n\nimport { useState } from 'react';\nimport Image from 'next/image';\nimport { getTransformations, getPublicId } from '@cloudinary-util/util';\nimport { transformationPlugins } from '@cloudinary-util/url-loader';\n\nimport { createPlaceholderUrl, pollForProcessingImage } from '../../lib/cloudinary';\n\nimport { cloudinaryLoader } from '../../loaders/cloudinary-loader';\n\nconst CldImage = props => {\n const CLD_OPTIONS = [\n 'deliveryType',\n 'preserveTransformations'\n ];\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 interface ImageProps {\n alt: string;\n blurDataURL?: string;\n placeholder?: 'blur' | 'empty'; // this is from next/image, but isn't exported\n src: string;\n }\n\n const imageProps: ImageProps = {\n alt: props.alt,\n src: props.src\n };\n\n Object.keys(props)\n .filter(key => !CLD_OPTIONS.includes(key))\n .forEach(key => imageProps[key] = props[key]);\n\n const defaultImgKey = Object.keys(imageProps).map(key => `${key}:${imageProps[key]}`).join(';');\n const [imgKey, setImgKey] = useState(defaultImgKey);\n\n // Construct Cloudinary-specific props by looking for values for any of the supported prop keys\n\n interface CldOptions {\n rawTransformations?: string[];\n }\n\n const cldOptions: CldOptions = {};\n\n CLD_OPTIONS.forEach(key => {\n if ( props[key] ) {\n cldOptions[key] = props[key] || undefined;\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 let publicId;\n\n if ( props.src.startsWith('https://') ) {\n try {\n publicId = getPublicId(props.src);\n } catch(e) {}\n }\n\n if ( !publicId ) {\n publicId = props.src;\n }\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 // Try to preserve the original transformations from the Cloudinary URL passed in\n // to the component. This only works if the URL has a version number on it and otherwise\n // will fail to load\n\n if (props.preserveTransformations) {\n try {\n const transformations = getTransformations(props.src);\n cldOptions.rawTransformations = [...transformations.flat(), ...(props.rawTransformations || [])];\n } catch(e) {\n console.warn(`Failed to preserve transformations: ${(e as Error).message}`)\n }\n }\n\n /**\n * handleOnError\n */\n\n async function handleOnError(options) {\n const result = await pollForProcessingImage({ src: options.target.src })\n if ( result ) {\n setImgKey(`${defaultImgKey};${Date.now()}`);\n }\n }\n\n return (\n <Image\n key={imgKey}\n {...imageProps}\n loader={(loaderOptions) => cloudinaryLoader({ loaderOptions, imageProps, cldOptions })}\n onError={handleOnError}\n />\n );\n}\n\nexport default CldImage;\n","import Head from 'next/head';\nimport { constructCloudinaryUrl } from '@cloudinary-util/url-loader';\n\nimport { NEXT_CLOUDINARY_ANALYTICS_ID, NEXT_CLOUDINARY_VERSION, NEXT_VERSION } from '../../constants/analytics';\n\nconst IMAGE_WIDTH = 2400;\nconst IMAGE_HEIGHT = 1200;\n\nconst TWITTER_CARD = 'summary_large_image';\n\nconst CldOgImage = ({ excludeTags = [] as string[], twitterTitle, ...props }) => {\n const options = {\n ...props,\n alt: props.alt,\n crop: props.crop || 'fill',\n gravity: props.gravity || 'center',\n height: props.height || IMAGE_HEIGHT,\n src: props.src,\n width: props.width || IMAGE_WIDTH,\n }\n\n const ogImageUrl = constructCloudinaryUrl({\n options,\n config: {\n cloud: {\n cloudName: process.env.NEXT_PUBLIC_CLOUDINARY_CLOUD_NAME\n }\n },\n analytics: {\n sdkCode: NEXT_CLOUDINARY_ANALYTICS_ID,\n sdkSemver: NEXT_CLOUDINARY_VERSION,\n techVersion: NEXT_VERSION,\n feature: ''\n }\n });\n\n // We need to include the tags within the Next.js Head component rather than\n // direcly adding them inside of the Head otherwise we get unexpected results\n\n return (\n // @ts-ignore\n <Head>\n <meta property=\"og:image\" content={ogImageUrl} />\n <meta property=\"og:image:secure_url\" content={ogImageUrl} />\n <meta property=\"og:image:width\" content={options.width} />\n <meta property=\"og:image:height\" content={options.height} />\n\n {options.alt && (\n <meta property=\"og:image:alt\" content={options.alt} />\n )}\n\n {/* Required for summary_large_image, exclude vai excludeTags */}\n {/* https://developer.twitter.com/en/docs/twitter-for-websites/cards/overview/summary-card-with-large-image */}\n\n {!excludeTags.includes('twitter:title') && (\n <meta property=\"twitter:title\" content={twitterTitle || ' '} />\n )}\n\n <meta property=\"twitter:card\" content={TWITTER_CARD} />\n <meta property=\"twitter:image\" content={ogImageUrl} />\n </Head>\n );\n}\n\nexport default CldOgImage;","import { useRef } from 'react';\nimport Script from 'next/script';\n\nconst CldUploadWidget = ({\n children,\n onUpload,\n options,\n signatureEndpoint,\n uploadPreset,\n}) => {\n const cloudinary = useRef<any>();\n const widget = useRef();\n\n const signed = !!signatureEndpoint;\n\n /**\n * generateSignature\n * @description Makes a request to an endpoint to sign Cloudinary parameters as part of widget creation\n */\n\n function generateSignature(callback, paramsToSign) {\n fetch(signatureEndpoint, {\n method: \"POST\",\n body: JSON.stringify({\n paramsToSign,\n }),\n })\n .then((r) => r.json())\n .then(({ signature }) => {\n callback(signature);\n });\n }\n\n /**\n * createWidget\n * @description Creates a new instance of the Cloudinary widget and stores in a ref\n */\n\n function createWidget() {\n // When creating a signed upload, you need to provide both your Cloudinary API Key\n // as well as a signature generator function that will sign any paramters\n // either on page load or during the upload process. Read more about signed uploads at:\n // https://cloudinary.com/documentation/upload_widget#signed_uploads\n\n const uploadOptions = {\n cloudName: process.env.NEXT_PUBLIC_CLOUDINARY_CLOUD_NAME,\n uploadPreset: uploadPreset || process.env.NEXT_PUBLIC_CLOUDINARY_UPLOAD_PRESET,\n apiKey: process.env.NEXT_PUBLIC_CLOUDINARY_API_KEY,\n ...options,\n };\n\n if ( signed ) {\n uploadOptions.uploadSignature = generateSignature;\n\n // No need for apiSecret here because of api/sign-cloudinary-params\n\n if (!uploadOptions.apiKey) {\n return new Error(\"Signed Upload needs apiKey!\");\n }\n }\n\n return cloudinary.current?.createUploadWidget(\n uploadOptions,\n function (error, result) {\n // The callback is a bit more chatty than failed or success so\n // only trigger when one of those are the case. You can additionally\n // create a separate handler such as onEvent and trigger it on\n // ever occurrence\n if (error || result.event === \"success\") {\n onUpload(error, result, widget?.current);\n }\n }\n );\n }\n\n /**\n * open\n * @description When triggered, uses the current widget instance to open the upload modal\n */\n\n function open() {\n if (!widget?.current) {\n widget.current = createWidget();\n }\n\n // @ts-ignore\n widget?.current && widget.current.open();\n }\n\n /**\n * handleOnLoad\n * @description Stores the Cloudinary window instance to a ref when the widget script loads\n */\n\n function handleOnLoad() {\n // @ts-ignore\n cloudinary.current = window.cloudinary;\n }\n\n return (\n <>\n {children({\n cloudinary: cloudinary.current,\n widget: widget.current,\n open,\n })}\n <Script\n id={`cloudinary-${Math.floor(Math.random() * 100)}`}\n // @ts-ignore\n src=\"https://widget.cloudinary.com/v2.0/global/all.js\"\n onLoad={handleOnLoad}\n onError={(e) => console.error(`Failed to load Cloudinary: ${e.message}`)}\n />\n </>\n );\n};\n\nexport default CldUploadWidget;\n","import CldUploadWidget from '../CldUploadWidget';\n\nconst CldUploadButton = ({\n children,\n onClick,\n onUpload,\n options,\n signatureEndpoint,\n uploadPreset,\n ...props\n}) => {\n return (\n <>\n {/* @ts-ignore */}\n <CldUploadWidget\n onUpload={onUpload}\n options={options}\n signatureEndpoint={signatureEndpoint}\n uploadPreset={uploadPreset}\n >\n {({ open }) => {\n function handleOnClick(e) {\n e.preventDefault();\n\n open();\n\n if ( typeof onClick === 'function' ) {\n onClick(e);\n }\n }\n return (\n <button {...props} onClick={handleOnClick} >\n {children || 'Upload'}\n </button>\n );\n }}\n </CldUploadWidget>\n </>\n );\n};\n\nexport default CldUploadButton;\n"],"names":["NEXT_CLOUDINARY_ANALYTICS_ID","NEXT_CLOUDINARY_VERSION","pkg","version","NEXT_VERSION","nextPkg","pollForProcessingImage","options","src","Promise","resolve","reject","fetch","then","res","ok","e","status","createPlaceholderUrl","placeholder","rawTransformations","push","includes","color","split","splice","join","constructCloudinaryUrl","width","quality","config","cloud","cloudName","process","env","NEXT_PUBLIC_CLOUDINARY_CLOUD_NAME","analytics","sdkCode","sdkSemver","techVersion","feature","cloudinaryLoader","loaderOptions","imageProps","cldOptions","cldConfig","parseInt","height","multiplier","widthResize","heightResize","Math","round","CldImage","props","handleOnError","target","result","setImgKey","defaultImgKey","Date","now","CLD_OPTIONS","transformationPlugins","forEach","prop","Error","alt","Object","keys","filter","key","map","useState","imgKey","undefined","publicId","startsWith","getPublicId","blurDataURL","preserveTransformations","transformations","getTransformations","flat","console","warn","message","_jsx","Image","IMAGE_WIDTH","IMAGE_HEIGHT","TWITTER_CARD","CldOgImage","excludeTags","twitterTitle","_excluded","crop","gravity","ogImageUrl","_jsxs","Head","CldUploadWidget","children","onUpload","signatureEndpoint","uploadPreset","cloudinary","useRef","widget","signed","generateSignature","callback","paramsToSign","method","body","JSON","stringify","r","json","signature","createWidget","uploadOptions","NEXT_PUBLIC_CLOUDINARY_UPLOAD_PRESET","apiKey","NEXT_PUBLIC_CLOUDINARY_API_KEY","uploadSignature","current","createUploadWidget","error","event","open","handleOnLoad","window","_Fragment","Script","floor","random","CldUploadButton","onClick","handleOnClick","preventDefault"],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "next-cloudinary",
3
- "version": "2.0.0",
3
+ "version": "2.0.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",
@@ -14,7 +14,7 @@
14
14
  },
15
15
  "dependencies": {
16
16
  "@cloudinary-util/url-loader": "^1.2.4",
17
- "@cloudinary-util/util": "^1.1.1",
17
+ "@cloudinary-util/util": "^1.2.0",
18
18
  "@cloudinary/url-gen": "^1.8.6"
19
19
  },
20
20
  "devDependencies": {