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

@immjs/express-subdomain

Package Overview
Dependencies
Maintainers
1
Versions
7
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@immjs/express-subdomain - npm Package Compare versions

Comparing version 1.0.5 to 1.1.0

23

index.js

@@ -7,2 +7,6 @@ "use strict";

}
let subdomains = subdomain.split('.').reverse();
const invalidSymbol = ['*', '@'].every((v) => (subdomains.includes(v)) === (subdomains[0] === v));
if (invalidSymbol)
throw new Error(`There can not be any subdomains beyond '${invalidSymbol}'`);
//check fn handles three params..

@@ -14,4 +18,19 @@ if (!fn || typeof fn !== "function" || fn.length < 3) {

req._subdomainLevel || (req._subdomainLevel = 0);
let relevantSubdomains = req.subdomains.slice(req._subdomainLevel);
let match = subdomain.split('.').every((v, i) => v === '*' || v === relevantSubdomains[i]);
let relevantSubdomains = req.subdomains.reverse().slice(req._subdomainLevel);
let match = true;
for (let i in subdomains) {
const currentSubdomain = subdomains[i];
const currentRelevantSubdomain = relevantSubdomains[i];
if (currentSubdomain === '@' && currentRelevantSubdomain == undefined) {
break;
}
if (currentSubdomain === '*') {
req._subdomainLevel = Infinity;
break;
}
if (currentSubdomain !== currentRelevantSubdomain) {
match = false;
break;
}
}
if (match) {

@@ -18,0 +37,0 @@ req._subdomainLevel++;

@@ -12,6 +12,11 @@ import express from "express";

export default function(subdomain: any, fn: any) {
if(!subdomain || typeof subdomain !== "string") {
if (!subdomain || typeof subdomain !== "string") {
throw new Error("The first parameter must be a string representing the subdomain");
}
}
let subdomains = subdomain.split('.').reverse();
const invalidSymbol = ['*', '@'].every((v) => (subdomains.includes(v)) === (subdomains[0] === v))
if (invalidSymbol) throw new Error(`There can not be any subdomains beyond '${invalidSymbol}'`);
//check fn handles three params..

@@ -24,6 +29,22 @@ if(!fn || typeof fn !== "function" || fn.length < 3) {

req._subdomainLevel ||= 0;
let relevantSubdomains = req.subdomains.slice(req._subdomainLevel);
let relevantSubdomains = req.subdomains.reverse().slice(req._subdomainLevel);
let match = subdomain.split('.').every((v, i) => v === '*' || v === relevantSubdomains[i]);
let match = true;
for (let i in subdomains) {
const currentSubdomain = subdomains[i];
const currentRelevantSubdomain = relevantSubdomains[i];
if (currentSubdomain === '@' && currentRelevantSubdomain == undefined) {
break;
}
if (currentSubdomain === '*') {
req._subdomainLevel = Infinity;
break;
}
if (currentSubdomain !== currentRelevantSubdomain) {
match = false;
break;
}
}
if(match) {

@@ -30,0 +51,0 @@ req._subdomainLevel ++;

2

package.json
{
"name": "@immjs/express-subdomain",
"version": "1.0.5",
"version": "1.1.0",
"repository": {

@@ -5,0 +5,0 @@ "type": "git",

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