cartridge-resolver-plugin
Advanced tools
Comparing version
{ | ||
"name": "cartridge-resolver-plugin", | ||
"version": "2.0.1", | ||
"version": "2.0.2", | ||
"description": "Webpack Plugin: Provide the cartridge inheritance behavior same as Demandware server side scripts.", | ||
"keywords": [ | ||
"webpack", | ||
"cartridge", | ||
"compile", | ||
"demandware", | ||
"salesforce", | ||
"demandware", | ||
"cartridge", | ||
"compile" | ||
"sfcc", | ||
"sfra", | ||
"webpack" | ||
], | ||
@@ -20,2 +22,6 @@ "author": "Vinh Trinh <vinhtrinh.live@gmail.com>", | ||
], | ||
"repository": { | ||
"type": "git", | ||
"url": "https://github.com/vinhtrinh/cartridge-resolver-plugin" | ||
}, | ||
"license": "MIT", | ||
@@ -31,4 +37,6 @@ "main": "src/index.js", | ||
"test": "./node_modules/.bin/nyc mocha", | ||
"coverage": "./node_modules/.bin/nyc report --reporter=lcovonly" | ||
"coverage": "./node_modules/.bin/nyc report --reporter=lcovonly", | ||
"sonar": "sonar-scanner", | ||
"sonar:win": "sonar-scanner.bat" | ||
} | ||
} |
@@ -14,6 +14,6 @@ <div align="center"> | ||
 | ||
 | ||
 | ||
 | ||
[](https://sonarcloud.io/dashboard?id=vinhtrinh_cartridge-resolver-plugin) | ||
[](https://sonarcloud.io/dashboard?id=vinhtrinh_cartridge-resolver-plugin) | ||
[](https://sonarcloud.io/dashboard?id=vinhtrinh_cartridge-resolver-plugin) | ||
[](https://sonarcloud.io/dashboard?id=vinhtrinh_cartridge-resolver-plugin) | ||
@@ -20,0 +20,0 @@ # |
@@ -61,52 +61,58 @@ const fs = require('fs'); | ||
if (!currentCartridge) { | ||
return callback(); | ||
} | ||
if (currentCartridge) { | ||
const flag = requestContext.request[0]; | ||
const currentCartridgeIndex = this.cartridgeNames.indexOf(currentCartridge); | ||
const flag = requestContext.request[0]; | ||
const currentCartridgeIndex = this.cartridgeNames.indexOf(currentCartridge); | ||
let lookupCartrdiges; | ||
let relativeRequest = requestContext.request.replace(this.aliasRegexp, () => ''); | ||
let lookupCartrdiges; | ||
let relativeRequest = requestContext.request.replace(this.aliasRegexp, () => ''); | ||
if (['*', '^', '~'].includes(flag)) { | ||
relativeRequest = relativeRequest.replace(/^(\*|\^|~)(\\|\/|:)?/, ''); | ||
if (['*', '^', '~'].includes(flag)) { | ||
relativeRequest = relativeRequest.replace(/^(\*|\^|~)(\\|\/|:)?/, ''); | ||
if (!relativeRequest) { | ||
relativeRequest = this.getRelativeAsset(requestContext.context.issuer); | ||
} | ||
if (!relativeRequest) { | ||
relativeRequest = this.getRelativeAsset(requestContext.context.issuer); | ||
} | ||
switch (flag) { | ||
case '*': | ||
lookupCartrdiges = this.cartridgeNames; | ||
break; | ||
switch (flag) { | ||
case '*': lookupCartrdiges = this.cartridgeNames; break; | ||
case '^': lookupCartrdiges = this.cartridgeNames.slice(currentCartridgeIndex + 1); break; | ||
case '~': lookupCartrdiges = [currentCartridge]; break; | ||
} | ||
} else if (this.isAliasRequest(requestContext.request)) { | ||
const relativeIssuer = this.getRelativeAsset(requestContext.context.issuer); | ||
lookupCartrdiges = relativeRequest === relativeIssuer ? this.cartridgeNames.slice(currentCartridgeIndex + 1) : this.cartridgeNames; | ||
} else if (this.isAbsoluteCartridge(requestContext.request)) { | ||
const cartridgeName = requestContext.request.match(this.absoluteRegexp)[1]; | ||
relativeRequest = relativeRequest.replace(this.absoluteRegexp, ''); | ||
lookupCartrdiges = [this.cartridges[cartridgeName] ? cartridgeName : this.aliases[cartridgeName]]; | ||
} else if (!path.isAbsolute(requestContext.request)) { | ||
if ('.' === requestContext.request) { | ||
relativeRequest = this.getRelativeAsset(requestContext.context.issuer); | ||
lookupCartrdiges = this.cartridgeNames.slice(currentCartridgeIndex + 1); | ||
} else { | ||
case '^': | ||
lookupCartrdiges = this.cartridgeNames.slice(currentCartridgeIndex + 1); | ||
break; | ||
case '~': | ||
lookupCartrdiges = [currentCartridge]; | ||
break; | ||
} | ||
} else if (this.isAliasRequest(requestContext.request)) { | ||
const relativeIssuer = this.getRelativeAsset(requestContext.context.issuer); | ||
relativeRequest = this.getRelativeAsset(path.resolve(requestContext.path, requestContext.request)); | ||
lookupCartrdiges = relativeRequest === relativeIssuer ? this.cartridgeNames.slice(currentCartridgeIndex + 1) : this.cartridgeNames; | ||
} else if (this.isAbsoluteCartridge(requestContext.request)) { | ||
const cartridgeName = requestContext.request.match(this.absoluteRegexp)[1]; | ||
relativeRequest = relativeRequest.replace(this.absoluteRegexp, ''); | ||
lookupCartrdiges = [this.cartridges[cartridgeName] ? cartridgeName : this.aliases[cartridgeName]]; | ||
} else if (!path.isAbsolute(requestContext.request)) { | ||
if ('.' === requestContext.request) { | ||
relativeRequest = this.getRelativeAsset(requestContext.context.issuer); | ||
lookupCartrdiges = this.cartridgeNames.slice(currentCartridgeIndex + 1); | ||
} else { | ||
const relativeIssuer = this.getRelativeAsset(requestContext.context.issuer); | ||
relativeRequest = this.getRelativeAsset(path.resolve(requestContext.path, requestContext.request)); | ||
lookupCartrdiges = relativeRequest === relativeIssuer ? this.cartridgeNames.slice(currentCartridgeIndex + 1) : this.cartridgeNames; | ||
lookupCartrdiges = relativeRequest === relativeIssuer ? this.cartridgeNames.slice(currentCartridgeIndex + 1) : this.cartridgeNames; | ||
} | ||
} | ||
} | ||
if (lookupCartrdiges) { | ||
const locale = this.getLocale(requestContext.context.issuer || requestContext.request); | ||
const result = this.resolveFromCartrdiges(relativeRequest, lookupCartrdiges, locale); | ||
if (lookupCartrdiges) { | ||
const locale = this.getLocale(requestContext.context.issuer || requestContext.request); | ||
const result = this.resolveFromCartrdiges(relativeRequest, lookupCartrdiges, locale); | ||
if (result) { | ||
const target = resolver.ensureHook('resolved'); | ||
requestContext.path = result; | ||
if (result) { | ||
const target = resolver.ensureHook('resolved'); | ||
requestContext.path = result; | ||
return resolver.doResolve(target, requestContext, `${this.constructor.name} found: ${result}`, resolveContext, callback); | ||
return resolver.doResolve(target, requestContext, `${this.constructor.name} found: ${result}`, resolveContext, callback); | ||
} | ||
} | ||
@@ -244,2 +250,2 @@ } | ||
module.exports = CartridgeResolverPlugin; | ||
module.exports = CartridgeResolverPlugin; |
Uses eval
Supply chain riskPackage uses dynamic code execution (e.g., eval()), which is a dangerous practice. This can prevent the code from running in certain environments and increases the risk that the code may contain exploits or malicious behavior.
Found 1 instance in 1 package
No repository
Supply chain riskPackage does not have a linked source code repository. Without this field, a package will have no reference to the location of the source code use to generate the package.
Found 1 instance in 1 package
1
-66.67%0
-100%19002
-47.66%4
-80%219
-53.99%