mirror of
https://github.com/S2-/minifyfromhtml.git
synced 2025-08-04 12:40:05 +02:00
update packages to latest version
This commit is contained in:
103
node_modules/clean-css/lib/reader/read-sources.js
generated
vendored
103
node_modules/clean-css/lib/reader/read-sources.js
generated
vendored
@@ -19,11 +19,12 @@ var isImport = require('../utils/is-import');
|
||||
var isRemoteResource = require('../utils/is-remote-resource');
|
||||
|
||||
var UNKNOWN_URI = 'uri:unknown';
|
||||
var FILE_RESOURCE_PROTOCOL = 'file://';
|
||||
|
||||
function readSources(input, context, callback) {
|
||||
return doReadSources(input, context, function (tokens) {
|
||||
return applySourceMaps(tokens, context, function () {
|
||||
return loadOriginalSources(context, function () { return callback(tokens); });
|
||||
return doReadSources(input, context, function(tokens) {
|
||||
return applySourceMaps(tokens, context, function() {
|
||||
return loadOriginalSources(context, function() { return callback(tokens); });
|
||||
});
|
||||
});
|
||||
}
|
||||
@@ -31,11 +32,11 @@ function readSources(input, context, callback) {
|
||||
function doReadSources(input, context, callback) {
|
||||
if (typeof input == 'string') {
|
||||
return fromString(input, context, callback);
|
||||
} else if (Buffer.isBuffer(input)) {
|
||||
} if (Buffer.isBuffer(input)) {
|
||||
return fromString(input.toString(), context, callback);
|
||||
} else if (Array.isArray(input)) {
|
||||
} if (Array.isArray(input)) {
|
||||
return fromArray(input, context, callback);
|
||||
} else if (typeof input == 'object') {
|
||||
} if (typeof input == 'object') {
|
||||
return fromHash(input, context, callback);
|
||||
}
|
||||
}
|
||||
@@ -49,13 +50,11 @@ function fromString(input, context, callback) {
|
||||
}
|
||||
|
||||
function fromArray(input, context, callback) {
|
||||
var inputAsImports = input.reduce(function (accumulator, uriOrHash) {
|
||||
var inputAsImports = input.reduce(function(accumulator, uriOrHash) {
|
||||
if (typeof uriOrHash === 'string') {
|
||||
return addStringSource(uriOrHash, accumulator);
|
||||
} else {
|
||||
return addHashSource(uriOrHash, context, accumulator);
|
||||
}
|
||||
|
||||
return addHashSource(uriOrHash, context, accumulator);
|
||||
}, []);
|
||||
|
||||
return fromStyles(inputAsImports.join(''), context, { inline: ['all'] }, callback);
|
||||
@@ -102,9 +101,9 @@ function normalizeUri(uri) {
|
||||
return uri;
|
||||
}
|
||||
|
||||
absoluteUri = path.isAbsolute(uri) ?
|
||||
uri :
|
||||
path.resolve(uri);
|
||||
absoluteUri = path.isAbsolute(uri)
|
||||
? uri
|
||||
: path.resolve(uri);
|
||||
relativeToCurrentPath = path.relative(currentPath, absoluteUri);
|
||||
normalizedUri = normalizePath(relativeToCurrentPath);
|
||||
|
||||
@@ -112,12 +111,12 @@ function normalizeUri(uri) {
|
||||
}
|
||||
|
||||
function trackSourceMap(sourceMap, uri, context) {
|
||||
var parsedMap = typeof sourceMap == 'string' ?
|
||||
JSON.parse(sourceMap) :
|
||||
sourceMap;
|
||||
var rebasedMap = isRemoteResource(uri) ?
|
||||
rebaseRemoteMap(parsedMap, uri) :
|
||||
rebaseLocalMap(parsedMap, uri || UNKNOWN_URI, context.options.rebaseTo);
|
||||
var parsedMap = typeof sourceMap == 'string'
|
||||
? JSON.parse(sourceMap)
|
||||
: sourceMap;
|
||||
var rebasedMap = isRemoteResource(uri)
|
||||
? rebaseRemoteMap(parsedMap, uri)
|
||||
: rebaseLocalMap(parsedMap, uri || UNKNOWN_URI, context.options.rebaseTo);
|
||||
|
||||
context.inputSourceMapTracker.track(uri, rebasedMap);
|
||||
}
|
||||
@@ -147,9 +146,9 @@ function fromStyles(styles, context, parentInlinerContext, callback) {
|
||||
tokens = tokenize(styles, context);
|
||||
tokens = rebase(tokens, context.options.rebase, context.validator, rebaseConfig);
|
||||
|
||||
return allowsAnyImports(parentInlinerContext.inline) ?
|
||||
inline(tokens, context, parentInlinerContext, callback) :
|
||||
callback(tokens);
|
||||
return allowsAnyImports(parentInlinerContext.inline)
|
||||
? inline(tokens, context, parentInlinerContext, callback)
|
||||
: callback(tokens);
|
||||
}
|
||||
|
||||
function allowsAnyImports(inline) {
|
||||
@@ -188,7 +187,7 @@ function doInlineImports(inlinerContext) {
|
||||
if (token[0] == Token.AT_RULE && isImport(token[1])) {
|
||||
inlinerContext.sourceTokens.splice(0, i);
|
||||
return inlineStylesheet(token, inlinerContext);
|
||||
} else if (token[0] == Token.AT_RULE || token[0] == Token.COMMENT) {
|
||||
} if (token[0] == Token.AT_RULE || token[0] == Token.COMMENT) {
|
||||
inlinerContext.outputTokens.push(token);
|
||||
} else {
|
||||
inlinerContext.outputTokens.push(token);
|
||||
@@ -206,9 +205,9 @@ function inlineStylesheet(token, inlinerContext) {
|
||||
var mediaQuery = uriAndMediaQuery[1];
|
||||
var metadata = token[2];
|
||||
|
||||
return isRemoteResource(uri) ?
|
||||
inlineRemoteStylesheet(uri, mediaQuery, metadata, inlinerContext) :
|
||||
inlineLocalStylesheet(uri, mediaQuery, metadata, inlinerContext);
|
||||
return isRemoteResource(uri)
|
||||
? inlineRemoteStylesheet(uri, mediaQuery, metadata, inlinerContext)
|
||||
: inlineLocalStylesheet(uri, mediaQuery, metadata, inlinerContext);
|
||||
}
|
||||
|
||||
function inlineRemoteStylesheet(uri, mediaQuery, metadata, inlinerContext) {
|
||||
@@ -221,25 +220,25 @@ function inlineRemoteStylesheet(uri, mediaQuery, metadata, inlinerContext) {
|
||||
inlinerContext.warnings.push('Ignoring remote @import of "' + uri + '" as it has already been imported.');
|
||||
inlinerContext.sourceTokens = inlinerContext.sourceTokens.slice(1);
|
||||
return doInlineImports(inlinerContext);
|
||||
} else if (inlinerContext.localOnly && inlinerContext.afterContent) {
|
||||
} if (inlinerContext.localOnly && inlinerContext.afterContent) {
|
||||
inlinerContext.warnings.push('Ignoring remote @import of "' + uri + '" as no callback given and after other content.');
|
||||
inlinerContext.sourceTokens = inlinerContext.sourceTokens.slice(1);
|
||||
return doInlineImports(inlinerContext);
|
||||
} else if (isRuntimeResource) {
|
||||
} if (isRuntimeResource) {
|
||||
inlinerContext.warnings.push('Skipping remote @import of "' + uri + '" as no protocol given.');
|
||||
inlinerContext.outputTokens = inlinerContext.outputTokens.concat(inlinerContext.sourceTokens.slice(0, 1));
|
||||
inlinerContext.sourceTokens = inlinerContext.sourceTokens.slice(1);
|
||||
return doInlineImports(inlinerContext);
|
||||
} else if (inlinerContext.localOnly && !isLoaded) {
|
||||
} if (inlinerContext.localOnly && !isLoaded) {
|
||||
inlinerContext.warnings.push('Skipping remote @import of "' + uri + '" as no callback given.');
|
||||
inlinerContext.outputTokens = inlinerContext.outputTokens.concat(inlinerContext.sourceTokens.slice(0, 1));
|
||||
inlinerContext.sourceTokens = inlinerContext.sourceTokens.slice(1);
|
||||
return doInlineImports(inlinerContext);
|
||||
} else if (!isAllowed && inlinerContext.afterContent) {
|
||||
} if (!isAllowed && inlinerContext.afterContent) {
|
||||
inlinerContext.warnings.push('Ignoring remote @import of "' + uri + '" as resource is not allowed and after other content.');
|
||||
inlinerContext.sourceTokens = inlinerContext.sourceTokens.slice(1);
|
||||
return doInlineImports(inlinerContext);
|
||||
} else if (!isAllowed) {
|
||||
} if (!isAllowed) {
|
||||
inlinerContext.warnings.push('Skipping remote @import of "' + uri + '" as resource is not allowed.');
|
||||
inlinerContext.outputTokens = inlinerContext.outputTokens.concat(inlinerContext.sourceTokens.slice(0, 1));
|
||||
inlinerContext.sourceTokens = inlinerContext.sourceTokens.slice(1);
|
||||
@@ -252,7 +251,7 @@ function inlineRemoteStylesheet(uri, mediaQuery, metadata, inlinerContext) {
|
||||
if (error) {
|
||||
inlinerContext.errors.push('Broken @import declaration of "' + uri + '" - ' + error);
|
||||
|
||||
return process.nextTick(function () {
|
||||
return process.nextTick(function() {
|
||||
inlinerContext.outputTokens = inlinerContext.outputTokens.concat(inlinerContext.sourceTokens.slice(0, 1));
|
||||
inlinerContext.sourceTokens = inlinerContext.sourceTokens.slice(1);
|
||||
doInlineImports(inlinerContext);
|
||||
@@ -266,7 +265,7 @@ function inlineRemoteStylesheet(uri, mediaQuery, metadata, inlinerContext) {
|
||||
inlinerContext.externalContext.sourcesContent[uri] = importedStyles;
|
||||
inlinerContext.externalContext.stats.originalSize += importedStyles.length;
|
||||
|
||||
return fromStyles(importedStyles, inlinerContext.externalContext, inlinerContext, function (importedTokens) {
|
||||
return fromStyles(importedStyles, inlinerContext.externalContext, inlinerContext, function(importedTokens) {
|
||||
importedTokens = wrapInMedia(importedTokens, mediaQuery, metadata);
|
||||
|
||||
inlinerContext.outputTokens = inlinerContext.outputTokens.concat(importedTokens);
|
||||
@@ -276,37 +275,38 @@ function inlineRemoteStylesheet(uri, mediaQuery, metadata, inlinerContext) {
|
||||
});
|
||||
}
|
||||
|
||||
return isLoaded ?
|
||||
whenLoaded(null, inlinerContext.externalContext.sourcesContent[uri]) :
|
||||
inlinerContext.fetch(uri, inlinerContext.inlineRequest, inlinerContext.inlineTimeout, whenLoaded);
|
||||
return isLoaded
|
||||
? whenLoaded(null, inlinerContext.externalContext.sourcesContent[uri])
|
||||
: inlinerContext.fetch(uri, inlinerContext.inlineRequest, inlinerContext.inlineTimeout, whenLoaded);
|
||||
}
|
||||
|
||||
function inlineLocalStylesheet(uri, mediaQuery, metadata, inlinerContext) {
|
||||
var protocolLessUri = uri.replace(FILE_RESOURCE_PROTOCOL, '');
|
||||
var currentPath = path.resolve('');
|
||||
var absoluteUri = path.isAbsolute(uri) ?
|
||||
path.resolve(currentPath, uri[0] == '/' ? uri.substring(1) : uri) :
|
||||
path.resolve(inlinerContext.rebaseTo, uri);
|
||||
var absoluteUri = path.isAbsolute(protocolLessUri)
|
||||
? path.resolve(currentPath, protocolLessUri[0] == '/' ? protocolLessUri.substring(1) : protocolLessUri)
|
||||
: path.resolve(inlinerContext.rebaseTo, protocolLessUri);
|
||||
var relativeToCurrentPath = path.relative(currentPath, absoluteUri);
|
||||
var importedStyles;
|
||||
var isAllowed = isAllowedResource(uri, false, inlinerContext.inline);
|
||||
var isAllowed = isAllowedResource(protocolLessUri, false, inlinerContext.inline);
|
||||
var normalizedPath = normalizePath(relativeToCurrentPath);
|
||||
var isLoaded = normalizedPath in inlinerContext.externalContext.sourcesContent;
|
||||
|
||||
if (inlinerContext.inlinedStylesheets.indexOf(absoluteUri) > -1) {
|
||||
inlinerContext.warnings.push('Ignoring local @import of "' + uri + '" as it has already been imported.');
|
||||
} else if (!isLoaded && (!fs.existsSync(absoluteUri) || !fs.statSync(absoluteUri).isFile())) {
|
||||
inlinerContext.errors.push('Ignoring local @import of "' + uri + '" as resource is missing.');
|
||||
inlinerContext.warnings.push('Ignoring local @import of "' + protocolLessUri + '" as it has already been imported.');
|
||||
} else if (isAllowed && !isLoaded && (!fs.existsSync(absoluteUri) || !fs.statSync(absoluteUri).isFile())) {
|
||||
inlinerContext.errors.push('Ignoring local @import of "' + protocolLessUri + '" as resource is missing.');
|
||||
} else if (!isAllowed && inlinerContext.afterContent) {
|
||||
inlinerContext.warnings.push('Ignoring local @import of "' + uri + '" as resource is not allowed and after other content.');
|
||||
inlinerContext.warnings.push('Ignoring local @import of "' + protocolLessUri + '" as resource is not allowed and after other content.');
|
||||
} else if (inlinerContext.afterContent) {
|
||||
inlinerContext.warnings.push('Ignoring local @import of "' + uri + '" as after other content.');
|
||||
inlinerContext.warnings.push('Ignoring local @import of "' + protocolLessUri + '" as after other content.');
|
||||
} else if (!isAllowed) {
|
||||
inlinerContext.warnings.push('Skipping local @import of "' + uri + '" as resource is not allowed.');
|
||||
inlinerContext.warnings.push('Skipping local @import of "' + protocolLessUri + '" as resource is not allowed.');
|
||||
inlinerContext.outputTokens = inlinerContext.outputTokens.concat(inlinerContext.sourceTokens.slice(0, 1));
|
||||
} else {
|
||||
importedStyles = isLoaded ?
|
||||
inlinerContext.externalContext.sourcesContent[normalizedPath] :
|
||||
fs.readFileSync(absoluteUri, 'utf-8');
|
||||
importedStyles = isLoaded
|
||||
? inlinerContext.externalContext.sourcesContent[normalizedPath]
|
||||
: fs.readFileSync(absoluteUri, 'utf-8');
|
||||
|
||||
inlinerContext.inlinedStylesheets.push(absoluteUri);
|
||||
inlinerContext.inline = inlinerContext.externalContext.options.inline;
|
||||
@@ -315,7 +315,7 @@ function inlineLocalStylesheet(uri, mediaQuery, metadata, inlinerContext) {
|
||||
inlinerContext.externalContext.sourcesContent[normalizedPath] = importedStyles;
|
||||
inlinerContext.externalContext.stats.originalSize += importedStyles.length;
|
||||
|
||||
return fromStyles(importedStyles, inlinerContext.externalContext, inlinerContext, function (importedTokens) {
|
||||
return fromStyles(importedStyles, inlinerContext.externalContext, inlinerContext, function(importedTokens) {
|
||||
importedTokens = wrapInMedia(importedTokens, mediaQuery, metadata);
|
||||
|
||||
inlinerContext.outputTokens = inlinerContext.outputTokens.concat(importedTokens);
|
||||
@@ -333,9 +333,8 @@ function inlineLocalStylesheet(uri, mediaQuery, metadata, inlinerContext) {
|
||||
function wrapInMedia(tokens, mediaQuery, metadata) {
|
||||
if (mediaQuery) {
|
||||
return [[Token.NESTED_BLOCK, [[Token.NESTED_BLOCK_SCOPE, '@media ' + mediaQuery, metadata]], tokens]];
|
||||
} else {
|
||||
return tokens;
|
||||
}
|
||||
return tokens;
|
||||
}
|
||||
|
||||
module.exports = readSources;
|
||||
|
Reference in New Issue
Block a user