Socket
Socket
Sign inDemoInstall

ipx

Package Overview
Dependencies
Maintainers
2
Versions
70
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

ipx - npm Package Compare versions

Comparing version 0.6.4 to 0.6.5

58

dist/cli.js

@@ -86,3 +86,3 @@ #!/usr/bin/env node

const err = new IPXError(message);
err.statusMessage = message;
err.statusMessage = "IPX: " + message;
err.statusCode = statusCode;

@@ -106,5 +106,8 @@ return err;

} else {
throw createError("File access error for " + fsPath + ":" + err.code, 500);
throw createError("File access error for " + fsPath + ":" + err.code, 403);
}
}
if (!stats.isFile()) {
throw createError("Path should be a file: " + fsPath, 400);
}
return {

@@ -442,3 +445,9 @@ mtime: stats.mtime,

async function handleRequest(req, res, ipx) {
async function _handleRequest(req, ipx) {
const res = {
statusCode: 200,
statusMessage: "",
headers: {},
data: null
};
const url = ufo.parseURL(ufo.normalizeURL(req.url));

@@ -463,33 +472,46 @@ const params = ufo.parseQuery(url.search);

res.statusCode = 304;
return res.end();
return res;
}
}
res.setHeader("Last-Modified", +src.mtime);
res.headers["Last-Modified"] = +src.mtime + "";
}
if (src.maxAge !== void 0) {
res.setHeader("Cache-Control", `max-age=${+src.maxAge}, public, s-maxage=${+src.maxAge}`);
res.headers["Cache-Control"] = `max-age=${+src.maxAge}, public, s-maxage=${+src.maxAge}`;
}
const { data, format } = await img.data();
const etag = getEtag__default['default'](data);
res.setHeader("ETag", etag);
res.headers.ETag = etag;
if (etag && req.headers["if-none-match"] === etag) {
res.statusCode = 304;
return res.end();
return res;
}
if (format) {
res.setHeader("Content-Type", "image/" + format);
res.headers["Content-Type"] = `image/${format}`;
}
res.end(data);
return res;
}
function handleRequest(req, ipx) {
return _handleRequest(req, ipx).catch((err) => {
const statusCode = parseInt(err.statusCode) || 500;
const statusMessage = err.statusMessage ? xss__default['default'](err.statusMessage) : `IPX Error (${statusCode})`;
if (process.env.NODE_ENV !== "production" && statusCode === 500) {
console.error(err);
}
return {
statusCode,
statusMessage,
data: statusMessage,
headers: {}
};
});
}
function createIPXMiddleware(ipx) {
return function IPXMiddleware(req, res) {
handleRequest(req, res, ipx).catch((err) => {
const statusCode = parseInt(err.statusCode) || 500;
const statusMessage = err.statusMessage ? xss__default['default'](err.statusMessage) : `IPX Error (${statusCode})`;
if (process.env.NODE_ENV !== "production" && statusCode === 500) {
console.error(err);
handleRequest({ url: req.url, headers: req.headers }, ipx).then((_res) => {
res.statusCode = _res.statusCode;
res.statusMessage = _res.statusMessage;
for (const name in _res.headers) {
res.setHeader(name, _res.headers[name]);
}
res.statusCode = statusCode;
res.statusMessage = statusMessage;
return res.end(statusMessage);
res.end(_res.data);
});

@@ -496,0 +518,0 @@ };

@@ -42,4 +42,15 @@ import { IncomingMessage, ServerResponse } from 'http';

interface IPXHRequest {
url: string;
headers?: Record<string, string>;
}
interface IPXHResponse {
statusCode: number;
statusMessage: string;
headers: Record<string, string>;
data: any;
}
declare function handleRequest(req: IPXHRequest, ipx: IPX): Promise<IPXHResponse>;
declare function createIPXMiddleware(ipx: IPX): (req: IncomingMessage, res: ServerResponse) => void;
export { IPX, IPXCTX, IPXInputOptions, IPXOptions, ImageMeta, Source, SourceData, SourceFactory, createIPX, createIPXMiddleware };
export { IPX, IPXCTX, IPXHRequest, IPXHResponse, IPXInputOptions, IPXOptions, ImageMeta, Source, SourceData, SourceFactory, createIPX, createIPXMiddleware, handleRequest };

@@ -83,3 +83,3 @@ 'use strict';

const err = new IPXError(message);
err.statusMessage = message;
err.statusMessage = "IPX: " + message;
err.statusCode = statusCode;

@@ -103,5 +103,8 @@ return err;

} else {
throw createError("File access error for " + fsPath + ":" + err.code, 500);
throw createError("File access error for " + fsPath + ":" + err.code, 403);
}
}
if (!stats.isFile()) {
throw createError("Path should be a file: " + fsPath, 400);
}
return {

@@ -439,3 +442,9 @@ mtime: stats.mtime,

async function handleRequest(req, res, ipx) {
async function _handleRequest(req, ipx) {
const res = {
statusCode: 200,
statusMessage: "",
headers: {},
data: null
};
const url = ufo.parseURL(ufo.normalizeURL(req.url));

@@ -460,33 +469,46 @@ const params = ufo.parseQuery(url.search);

res.statusCode = 304;
return res.end();
return res;
}
}
res.setHeader("Last-Modified", +src.mtime);
res.headers["Last-Modified"] = +src.mtime + "";
}
if (src.maxAge !== void 0) {
res.setHeader("Cache-Control", `max-age=${+src.maxAge}, public, s-maxage=${+src.maxAge}`);
res.headers["Cache-Control"] = `max-age=${+src.maxAge}, public, s-maxage=${+src.maxAge}`;
}
const { data, format } = await img.data();
const etag = getEtag__default['default'](data);
res.setHeader("ETag", etag);
res.headers.ETag = etag;
if (etag && req.headers["if-none-match"] === etag) {
res.statusCode = 304;
return res.end();
return res;
}
if (format) {
res.setHeader("Content-Type", "image/" + format);
res.headers["Content-Type"] = `image/${format}`;
}
res.end(data);
return res;
}
function handleRequest(req, ipx) {
return _handleRequest(req, ipx).catch((err) => {
const statusCode = parseInt(err.statusCode) || 500;
const statusMessage = err.statusMessage ? xss__default['default'](err.statusMessage) : `IPX Error (${statusCode})`;
if (process.env.NODE_ENV !== "production" && statusCode === 500) {
console.error(err);
}
return {
statusCode,
statusMessage,
data: statusMessage,
headers: {}
};
});
}
function createIPXMiddleware(ipx) {
return function IPXMiddleware(req, res) {
handleRequest(req, res, ipx).catch((err) => {
const statusCode = parseInt(err.statusCode) || 500;
const statusMessage = err.statusMessage ? xss__default['default'](err.statusMessage) : `IPX Error (${statusCode})`;
if (process.env.NODE_ENV !== "production" && statusCode === 500) {
console.error(err);
handleRequest({ url: req.url, headers: req.headers }, ipx).then((_res) => {
res.statusCode = _res.statusCode;
res.statusMessage = _res.statusMessage;
for (const name in _res.headers) {
res.setHeader(name, _res.headers[name]);
}
res.statusCode = statusCode;
res.statusMessage = statusMessage;
return res.end(statusMessage);
res.end(_res.data);
});

@@ -498,1 +520,2 @@ };

exports.createIPXMiddleware = createIPXMiddleware;
exports.handleRequest = handleRequest;
{
"name": "ipx",
"version": "0.6.4",
"version": "0.6.5",
"repository": "nuxt-contrib/ipx",

@@ -5,0 +5,0 @@ "license": "MIT",

Sorry, the diff of this file is not supported yet

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc