Remove cookie consent popup
This commit is contained in:
142
dist/server/chunks/sharp_DbSshwO9.mjs
vendored
Normal file
142
dist/server/chunks/sharp_DbSshwO9.mjs
vendored
Normal file
@@ -0,0 +1,142 @@
|
||||
import { A as AstroError, p as MissingSharp } from './server_CWPsUuvN.mjs';
|
||||
import { b as baseService, p as parseQuality } from './node_DRadDSiJ.mjs';
|
||||
|
||||
let sharp;
|
||||
const qualityTable = {
|
||||
low: 25,
|
||||
mid: 50,
|
||||
high: 80,
|
||||
max: 100
|
||||
};
|
||||
function resolveSharpQuality(quality) {
|
||||
if (!quality) return void 0;
|
||||
const parsedQuality = parseQuality(quality);
|
||||
if (typeof parsedQuality === "number") {
|
||||
return parsedQuality;
|
||||
}
|
||||
return quality in qualityTable ? qualityTable[quality] : void 0;
|
||||
}
|
||||
function resolveSharpEncoderOptions(transform, inputFormat, serviceConfig = {}) {
|
||||
const quality = resolveSharpQuality(transform.quality);
|
||||
switch (transform.format) {
|
||||
case "jpg":
|
||||
case "jpeg":
|
||||
return {
|
||||
...serviceConfig.jpeg,
|
||||
...quality === void 0 ? {} : { quality }
|
||||
};
|
||||
case "png":
|
||||
return {
|
||||
...serviceConfig.png,
|
||||
...quality === void 0 ? {} : { quality }
|
||||
};
|
||||
case "webp": {
|
||||
const webpOptions = {
|
||||
...serviceConfig.webp,
|
||||
...quality === void 0 ? {} : { quality }
|
||||
};
|
||||
if (inputFormat === "gif") {
|
||||
webpOptions.loop ??= 0;
|
||||
}
|
||||
return webpOptions;
|
||||
}
|
||||
case "avif":
|
||||
return {
|
||||
...serviceConfig.avif,
|
||||
...quality === void 0 ? {} : { quality }
|
||||
};
|
||||
default:
|
||||
return quality === void 0 ? void 0 : { quality };
|
||||
}
|
||||
}
|
||||
async function loadSharp() {
|
||||
let sharpImport;
|
||||
try {
|
||||
sharpImport = (await import('sharp')).default;
|
||||
} catch {
|
||||
throw new AstroError(MissingSharp);
|
||||
}
|
||||
sharpImport.cache(false);
|
||||
return sharpImport;
|
||||
}
|
||||
const fitMap = {
|
||||
fill: "fill",
|
||||
contain: "inside",
|
||||
cover: "cover",
|
||||
none: "outside",
|
||||
"scale-down": "inside",
|
||||
outside: "outside",
|
||||
inside: "inside"
|
||||
};
|
||||
const sharpService = {
|
||||
validateOptions: baseService.validateOptions,
|
||||
getURL: baseService.getURL,
|
||||
parseURL: baseService.parseURL,
|
||||
getHTMLAttributes: baseService.getHTMLAttributes,
|
||||
getSrcSet: baseService.getSrcSet,
|
||||
getRemoteSize: baseService.getRemoteSize,
|
||||
async transform(inputBuffer, transformOptions, config) {
|
||||
if (!sharp) sharp = await loadSharp();
|
||||
const transform = transformOptions;
|
||||
const kernel = config.service.config.kernel;
|
||||
if (transform.format === "svg") return { data: inputBuffer, format: "svg" };
|
||||
const result = sharp(inputBuffer, {
|
||||
failOnError: false,
|
||||
pages: -1,
|
||||
limitInputPixels: config.service.config.limitInputPixels
|
||||
});
|
||||
result.rotate();
|
||||
const { format } = await result.metadata();
|
||||
if (transform.width && transform.height) {
|
||||
const fit = transform.fit ? fitMap[transform.fit] ?? "inside" : void 0;
|
||||
result.resize({
|
||||
width: Math.round(transform.width),
|
||||
height: Math.round(transform.height),
|
||||
kernel,
|
||||
fit,
|
||||
position: transform.position,
|
||||
withoutEnlargement: true
|
||||
});
|
||||
} else if (transform.height && !transform.width) {
|
||||
result.resize({
|
||||
height: Math.round(transform.height),
|
||||
withoutEnlargement: true,
|
||||
kernel
|
||||
});
|
||||
} else if (transform.width) {
|
||||
result.resize({
|
||||
width: Math.round(transform.width),
|
||||
withoutEnlargement: true,
|
||||
kernel
|
||||
});
|
||||
}
|
||||
if (transform.background) {
|
||||
result.flatten({ background: transform.background });
|
||||
}
|
||||
if (transform.format) {
|
||||
const encoderOptions = resolveSharpEncoderOptions(transform, format, config.service.config);
|
||||
if (transform.format === "webp" && format === "gif") {
|
||||
result.webp(encoderOptions);
|
||||
} else if (transform.format === "webp") {
|
||||
result.webp(encoderOptions);
|
||||
} else if (transform.format === "png") {
|
||||
result.png(encoderOptions);
|
||||
} else if (transform.format === "avif") {
|
||||
result.avif(encoderOptions);
|
||||
} else if (transform.format === "jpeg" || transform.format === "jpg") {
|
||||
result.jpeg(encoderOptions);
|
||||
} else {
|
||||
result.toFormat(transform.format, encoderOptions);
|
||||
}
|
||||
}
|
||||
const { data, info } = await result.toBuffer({ resolveWithObject: true });
|
||||
const needsCopy = "buffer" in data && data.buffer instanceof SharedArrayBuffer;
|
||||
return {
|
||||
data: needsCopy ? new Uint8Array(data) : data,
|
||||
format: info.format
|
||||
};
|
||||
}
|
||||
};
|
||||
var sharp_default = sharpService;
|
||||
|
||||
export { sharp_default as default, resolveSharpEncoderOptions };
|
||||
Reference in New Issue
Block a user