New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

@saleor/app-sdk

Package Overview
Dependencies
Maintainers
7
Versions
259
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@saleor/app-sdk - npm Package Compare versions

Comparing version 0.5.0 to 0.6.0

chunk-UTLZAIKR.mjs

1

const.js

@@ -0,1 +1,2 @@

"use strict";
var __defProp = Object.defineProperty;

@@ -2,0 +3,0 @@ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;

@@ -0,1 +1,2 @@

"use strict";
var __create = Object.create;

@@ -2,0 +3,0 @@ var __defProp = Object.defineProperty;

3

middleware.d.ts

@@ -7,3 +7,4 @@ import { Middleware } from 'retes';

declare const withAuthTokenRequired: Middleware;
declare const withWebhookSignatureVerified: (secretKey?: string | undefined) => Middleware;
export { withAuthTokenRequired, withBaseURL, withSaleorDomainPresent, withSaleorEventMatch };
export { withAuthTokenRequired, withBaseURL, withSaleorDomainPresent, withSaleorEventMatch, withWebhookSignatureVerified };

@@ -0,4 +1,7 @@

"use strict";
var __create = Object.create;
var __defProp = Object.defineProperty;
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
var __getOwnPropNames = Object.getOwnPropertyNames;
var __getProtoOf = Object.getPrototypeOf;
var __hasOwnProp = Object.prototype.hasOwnProperty;

@@ -17,2 +20,3 @@ var __export = (target, all) => {

};
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target, mod));
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);

@@ -26,5 +30,8 @@

withSaleorDomainPresent: () => withSaleorDomainPresent,
withSaleorEventMatch: () => withSaleorEventMatch
withSaleorEventMatch: () => withSaleorEventMatch,
withWebhookSignatureVerified: () => withWebhookSignatureVerified
});
module.exports = __toCommonJS(middleware_exports);
var import_crypto = __toESM(require("crypto"));
var jose = __toESM(require("jose"));
var import_response = require("retes/response");

@@ -36,2 +43,6 @@

// src/urls.ts
var urlProtocol = (saleorDomain) => saleorDomain === "localhost:8000" ? "http" : "https";
var jwksUrl = (saleorDomain) => `${urlProtocol(saleorDomain)}://${saleorDomain}/.well-known/jwks.json`;
// src/middleware.ts

@@ -47,3 +58,6 @@ var withBaseURL = (handler) => async (request) => {

if (!saleor_domain) {
return import_response.Response.BadRequest({ success: false, message: "Missing Saleor domain header." });
return import_response.Response.BadRequest({
success: false,
message: "Missing Saleor domain header."
});
}

@@ -55,3 +69,6 @@ return handler(request);

if (receivedEvent !== expectedEvent) {
return import_response.Response.BadRequest({ success: false, message: "Invalid Saleor Event" });
return import_response.Response.BadRequest({
success: false,
message: "Invalid Saleor Event"
});
}

@@ -63,6 +80,49 @@ return handler(request);

if (!auth_token) {
return import_response.Response.BadRequest({ success: false, message: "Missing auth token." });
return import_response.Response.BadRequest({
success: false,
message: "Missing auth token."
});
}
return handler(request);
};
var withWebhookSignatureVerified = (secretKey = void 0) => {
return (handler) => async (request) => {
if (request.rawBody === void 0) {
return import_response.Response.InternalServerError({
success: false,
message: "Request payload already parsed."
});
}
const {
[SALEOR_DOMAIN_HEADER]: saleorDomain,
"saleor-signature": payloadSignature
} = request.headers;
if (secretKey !== void 0) {
const calculatedSignature = import_crypto.default.createHmac("sha256", secretKey).update(request.rawBody).digest("hex");
if (calculatedSignature !== payloadSignature) {
return import_response.Response.BadRequest({
success: false,
message: "Invalid signature."
});
}
} else {
const [header, _, signature] = payloadSignature.split(".");
const jws = {
protected: header,
payload: request.rawBody,
signature
};
const jwksKey = await jose.createRemoteJWKSet(new URL(jwksUrl(saleorDomain)))(header, payloadSignature);
try {
await jose.flattenedVerify(jws, jwksKey);
} catch {
return import_response.Response.BadRequest({
success: false,
message: "Invalid signature."
});
}
}
return handler(request);
};
};
// Annotate the CommonJS export names for ESM import in node:

@@ -73,3 +133,4 @@ 0 && (module.exports = {

withSaleorDomainPresent,
withSaleorEventMatch
withSaleorEventMatch,
withWebhookSignatureVerified
});
{
"name": "@saleor/app-sdk",
"version": "0.5.0",
"version": "0.6.0",
"description": "SDK for building great Saleor Apps",

@@ -12,3 +12,4 @@ "types": "index.d.ts",

"graphql": "^16.5.0",
"retes": "^0.27.1"
"jose": "^4.8.3",
"retes": "^0.29.4"
},

@@ -15,0 +16,0 @@ "exports": {

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