Rocky_Mountain_Vending/.pnpm-store/v10/files/64/2b60cd32f4a6f867b09ecc4ecd745563d324bf5b71d27168c3237d350943b0b012fc9a0595f0e62812d06af54a9187238341d374c524fc82af9bd606ee96d2
DMleadgen 46d973904b
Initial commit: Rocky Mountain Vending website
Next.js website for Rocky Mountain Vending company featuring:
- Product catalog with Stripe integration
- Service areas and parts pages
- Admin dashboard with Clerk authentication
- SEO optimized pages with JSON-LD structured data

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-12 16:22:15 -07:00

73 lines
No EOL
2.8 KiB
Text

"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
Object.defineProperty(exports, "getBlurImage", {
enumerable: true,
get: function() {
return getBlurImage;
}
});
const _isanimated = /*#__PURE__*/ _interop_require_default(require("next/dist/compiled/is-animated"));
const _imageoptimizer = require("../../../../server/image-optimizer");
function _interop_require_default(obj) {
return obj && obj.__esModule ? obj : {
default: obj
};
}
const BLUR_IMG_SIZE = 8;
const BLUR_QUALITY = 70;
const VALID_BLUR_EXT = [
'jpeg',
'png',
'webp',
'avif'
] // should match other usages
;
async function getBlurImage(content, extension, imageSize, { basePath, outputPath, isDev, tracing = ()=>({
traceFn: (fn)=>(...args)=>fn(...args),
traceAsyncFn: (fn)=>(...args)=>fn(...args)
}) }) {
let blurDataURL;
let blurWidth = 0;
let blurHeight = 0;
if (VALID_BLUR_EXT.includes(extension) && !(0, _isanimated.default)(content)) {
// Shrink the image's largest dimension
if (imageSize.width >= imageSize.height) {
blurWidth = BLUR_IMG_SIZE;
blurHeight = Math.max(Math.round(imageSize.height / imageSize.width * BLUR_IMG_SIZE), 1);
} else {
blurWidth = Math.max(Math.round(imageSize.width / imageSize.height * BLUR_IMG_SIZE), 1);
blurHeight = BLUR_IMG_SIZE;
}
if (isDev) {
// During `next dev`, we don't want to generate blur placeholders with webpack
// because it can delay starting the dev server. Instead, we inline a
// special url to lazily generate the blur placeholder at request time.
const prefix = 'http://localhost';
const url = new URL(`${basePath || ''}/_next/image`, prefix);
url.searchParams.set('url', outputPath);
url.searchParams.set('w', String(blurWidth));
url.searchParams.set('q', String(BLUR_QUALITY));
blurDataURL = url.href.slice(prefix.length);
} else {
const resizeImageSpan = tracing('image-resize');
const resizedImage = await resizeImageSpan.traceAsyncFn(()=>(0, _imageoptimizer.optimizeImage)({
buffer: content,
width: blurWidth,
height: blurHeight,
contentType: `image/${extension}`,
quality: BLUR_QUALITY
}));
const blurDataURLSpan = tracing('image-base64-tostring');
blurDataURL = blurDataURLSpan.traceFn(()=>`data:image/${extension};base64,${resizedImage.toString('base64')}`);
}
}
return {
dataURL: blurDataURL,
width: blurWidth,
height: blurHeight
};
}
//# sourceMappingURL=blur.js.map