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

@jsenv/server

Package Overview
Dependencies
Maintainers
2
Versions
219
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@jsenv/server - npm Package Compare versions

Comparing version 12.3.3 to 12.4.0

src/ressource_aliases/regex_escape.js

2

package.json
{
"name": "@jsenv/server",
"version": "12.3.3",
"version": "12.4.0",
"description": "Write your Node.js server using pure functions",

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

import { urlToMeta, normalizeStructuredMetaMap } from "@jsenv/url-meta"
import { escapeRegexpSpecialCharacters } from "./regex_escape.js"
export const pluginRessourceAliases = (ressourceAliases) => {
const ressourceAliasMap = {}
const alias = {}
Object.keys(ressourceAliases).forEach((key) => {
ressourceAliasMap[ressourceAliases[key]] = key
alias[key] = {
pattern: key,
replacement: ressourceAliases[key],
}
})
const structuredMetaMap = normalizeStructuredMetaMap(
{ alias: ressourceAliasMap },
{
alias,
},
"file:///",
)
const getRessourceAlias = (pathname) => {

@@ -28,10 +34,31 @@ const { alias } = urlToMeta({

}
const urlObjectAfterAlias = replaceUrlRessource(
request.url,
ressourceAlias,
)
const ressource = `${urlObjectAfterAlias.pathname}${urlObjectAfterAlias.search}`
const { pattern, replacement } = ressourceAlias
let newValue
const ressourceBeforeAlias = request.ressource
if (replacement.includes("*")) {
let regexsource = ""
let i = 0
while (i < pattern.length) {
const char = pattern[i]
i++
if (char === "*") {
regexsource += "(.+)"
} else {
regexsource += escapeRegexpSpecialCharacters(char)
}
}
const regex = new RegExp(regexsource)
const matchResult = ressourceBeforeAlias.match(regex)
const parts = replacement.split("*")
newValue = parts.reduce((previous, value, index) => {
return `${previous}${value}${
index === parts.length - 1 ? "" : matchResult[index + 1]
}`
}, "")
} else {
newValue = replacement
}
const ressource = replaceRessource(ressourceBeforeAlias, newValue)
redirectRequest({
ressourceBeforeAlias: request.ressource,
ressourceBeforeAlias,
ressource,

@@ -44,14 +71,11 @@ })

const replaceUrlRessource = (url, ressource) => {
const urlObject = new URL(url)
const searchSeparatorIndex = ressource.indexOf("?")
if (searchSeparatorIndex === -1) {
urlObject.pathname = ressource
return urlObject
const replaceRessource = (ressourceBeforeAlias, newValue) => {
const urlObject = new URL(ressourceBeforeAlias, "file://")
const searchSeparatorIndex = newValue.indexOf("?")
if (searchSeparatorIndex > -1) {
return newValue // let new value override search params
}
const pathname = ressource.slice(0, searchSeparatorIndex)
urlObject.pathname = pathname
return urlObject
urlObject.pathname = newValue
const ressource = `${urlObject.pathname}${urlObject.search}`
return ressource
}
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