Socket
Socket
Sign inDemoInstall

stylus-loader

Package Overview
Dependencies
Maintainers
3
Versions
57
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

stylus-loader - npm Package Compare versions

Comparing version 4.0.0 to 4.1.0

12

CHANGELOG.md

@@ -5,2 +5,14 @@ # Changelog

## [4.1.0](https://github.com/webpack-contrib/stylus-loader/compare/v4.0.0...v4.1.0) (2020-10-02)
### Features
* webpack resolver supports the `import` option ([8bca526](https://github.com/webpack-contrib/stylus-loader/commit/8bca5262b5b3223108d14f8e10617ae6ca8dd85f))
### Bug Fixes
* source maps ([#290](https://github.com/webpack-contrib/stylus-loader/issues/290)) ([1be8169](https://github.com/webpack-contrib/stylus-loader/commit/1be8169c888d1a8e3531e79ebe1e1ef53d7821e7))
## [4.0.0](https://github.com/webpack-contrib/stylus-loader/compare/v3.0.2...v4.0.0) (2020-09-29)

@@ -7,0 +19,0 @@

4

dist/index.js

@@ -59,3 +59,3 @@ "use strict";

comment: false,
sourceRoot: this.rootContext,
sourceRoot: stylusOptions.dest,
basePath: this.rootContext

@@ -140,3 +140,3 @@ } : stylusOptions.sourcemap);

if (map && useSourceMap) {
map = (0, _utils.normalizeSourceMap)(map, this.rootContext);
map = (0, _utils.normalizeSourceMap)(map, stylusOptions.dest);

@@ -143,0 +143,0 @@ try {

@@ -284,5 +284,37 @@ "use strict";

});
const resolvedImportDependencies = new Map();
const resolvedDependencies = new Map();
const seen = new Set();
await getDependencies(resolvedDependencies, loaderContext, fileResolve, globResolve, seen, code, loaderContext.resourcePath, options);
const optionsImports = [];
for (const importPath of options.imports) {
const isGlob = _fastGlob.default.isDynamicPattern(importPath);
optionsImports.push({
importPath,
resolved: resolveFilename(loaderContext, fileResolve, globResolve, isGlob, _path.default.dirname(loaderContext.resourcePath), importPath)
});
}
await Promise.all(optionsImports.map(async result => {
const {
importPath
} = result;
let {
resolved
} = result;
try {
resolved = await resolved;
} catch (ignoreError) {
return;
}
const isArray = Array.isArray(resolved); // `stylus` returns forward slashes on windows
// eslint-disable-next-line no-param-reassign
result.resolved = isArray ? resolved.map(item => _path.default.normalize(item)) : _path.default.normalize(resolved);
resolvedImportDependencies.set(importPath, result);
}));
return class CustomEvaluator extends _stylus.Evaluator {

@@ -296,48 +328,56 @@ visitImport(imported) {

if (node.name !== 'url' && nodePath && !URL_RE.test(nodePath) && // `imports` is not resolved, let's avoid extra actions
!this.options.imports.includes(nodePath)) {
const dependencies = resolvedDependencies.get(_path.default.normalize(node.filename));
if (node.name !== 'url' && nodePath && !URL_RE.test(nodePath)) {
let dependency;
const isEntrypoint = loaderContext.resourcePath === node.filename;
if (dependencies) {
const dependency = dependencies.find(item => {
if (item.originalLineno === node.lineno && item.originalColumn === node.column && item.originalNodePath === nodePath) {
if (item.error) {
webpackResolveError = item.error;
} else {
return item.resolved;
if (isEntrypoint) {
dependency = resolvedImportDependencies.get(nodePath);
}
if (!dependency) {
const dependencies = resolvedDependencies.get(_path.default.normalize(node.filename));
if (dependencies) {
dependency = dependencies.find(item => {
if (item.originalLineno === node.lineno && item.originalColumn === node.column && item.originalNodePath === nodePath) {
if (item.error) {
webpackResolveError = item.error;
} else {
return item.resolved;
}
}
}
return false;
});
return false;
});
}
}
if (dependency) {
const {
resolved
} = dependency;
if (dependency) {
const {
resolved
} = dependency;
if (!Array.isArray(resolved)) {
// Avoid re globbing when resolved import contains glob characters
node.string = _fastGlob.default.escapePath(resolved);
} else if (resolved.length > 0) {
let hasError = false;
const blocks = resolved.map(item => {
const clonedImported = imported.clone();
const clonedNode = this.visit(clonedImported.path).first; // Avoid re globbing when resolved import contains glob characters
if (!Array.isArray(resolved)) {
// Avoid re globbing when resolved import contains glob characters
node.string = _fastGlob.default.escapePath(resolved);
} else if (resolved.length > 0) {
let hasError = false;
const blocks = resolved.map(item => {
const clonedImported = imported.clone();
const clonedNode = this.visit(clonedImported.path).first; // Avoid re globbing when resolved import contains glob characters
clonedNode.string = _fastGlob.default.escapePath(item);
let result;
clonedNode.string = _fastGlob.default.escapePath(item);
let result;
try {
result = super.visitImport(clonedImported);
} catch (error) {
hasError = true;
}
try {
result = super.visitImport(clonedImported);
} catch (error) {
hasError = true;
}
return result;
});
return result;
});
if (!hasError) {
return mergeBlocks(blocks);
}
if (!hasError) {
return mergeBlocks(blocks);
}

@@ -344,0 +384,0 @@ }

{
"name": "stylus-loader",
"version": "4.0.0",
"version": "4.1.0",
"description": "Stylus loader for webpack",

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

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