diff options
author | 2020-11-16 00:10:28 +0100 | |
---|---|---|
committer | 2020-11-16 00:10:28 +0100 | |
commit | e06ec920f7a5d784e674c4c4b4e6d1da3dc7391d (patch) | |
tree | 55713f725f77b44ebfec86e4eec3ce33e71458ca /node_modules/css-loader/lib | |
download | website_creator-e06ec920f7a5d784e674c4c4b4e6d1da3dc7391d.tar.gz website_creator-e06ec920f7a5d784e674c4c4b4e6d1da3dc7391d.tar.bz2 website_creator-e06ec920f7a5d784e674c4c4b4e6d1da3dc7391d.zip |
api, login, auth
Diffstat (limited to 'node_modules/css-loader/lib')
-rw-r--r-- | node_modules/css-loader/lib/compile-exports.js | 51 | ||||
-rw-r--r-- | node_modules/css-loader/lib/css-base.js | 76 | ||||
-rw-r--r-- | node_modules/css-loader/lib/getImportPrefix.js | 14 | ||||
-rw-r--r-- | node_modules/css-loader/lib/getLocalIdent.js | 23 | ||||
-rw-r--r-- | node_modules/css-loader/lib/loader.js | 144 | ||||
-rw-r--r-- | node_modules/css-loader/lib/localsLoader.js | 44 | ||||
-rw-r--r-- | node_modules/css-loader/lib/processCss.js | 244 | ||||
-rw-r--r-- | node_modules/css-loader/lib/url/escape.js | 16 |
8 files changed, 612 insertions, 0 deletions
diff --git a/node_modules/css-loader/lib/compile-exports.js b/node_modules/css-loader/lib/compile-exports.js new file mode 100644 index 0000000..19ca14f --- /dev/null +++ b/node_modules/css-loader/lib/compile-exports.js @@ -0,0 +1,51 @@ +var camelCase = require("lodash/camelCase"); + +function dashesCamelCase(str) { + return str.replace(/-+(\w)/g, function(match, firstLetter) { + return firstLetter.toUpperCase(); + }); +} + +module.exports = function compileExports(result, importItemMatcher, camelCaseKeys) { + if (!Object.keys(result.exports).length) { + return ""; + } + + var exportJs = Object.keys(result.exports).reduce(function(res, key) { + var valueAsString = JSON.stringify(result.exports[key]); + valueAsString = valueAsString.replace(result.importItemRegExpG, importItemMatcher); + function addEntry(k) { + res.push("\t" + JSON.stringify(k) + ": " + valueAsString); + } + + var targetKey; + switch(camelCaseKeys) { + case true: + addEntry(key); + targetKey = camelCase(key); + if (targetKey !== key) { + addEntry(targetKey); + } + break; + case 'dashes': + addEntry(key); + targetKey = dashesCamelCase(key); + if (targetKey !== key) { + addEntry(targetKey); + } + break; + case 'only': + addEntry(camelCase(key)); + break; + case 'dashesOnly': + addEntry(dashesCamelCase(key)); + break; + default: + addEntry(key); + break; + } + return res; + }, []).join(",\n"); + + return "{\n" + exportJs + "\n}"; +}; diff --git a/node_modules/css-loader/lib/css-base.js b/node_modules/css-loader/lib/css-base.js new file mode 100644 index 0000000..59af87d --- /dev/null +++ b/node_modules/css-loader/lib/css-base.js @@ -0,0 +1,76 @@ +/* + MIT License http://www.opensource.org/licenses/mit-license.php + Author Tobias Koppers @sokra +*/ +// css base code, injected by the css-loader +module.exports = function(useSourceMap) { + var list = []; + + // return the list of modules as css string + list.toString = function toString() { + return this.map(function (item) { + var content = cssWithMappingToString(item, useSourceMap); + if(item[2]) { + return "@media " + item[2] + "{" + content + "}"; + } else { + return content; + } + }).join(""); + }; + + // import a list of modules into the list + list.i = function(modules, mediaQuery) { + if(typeof modules === "string") + modules = [[null, modules, ""]]; + var alreadyImportedModules = {}; + for(var i = 0; i < this.length; i++) { + var id = this[i][0]; + if(typeof id === "number") + alreadyImportedModules[id] = true; + } + for(i = 0; i < modules.length; i++) { + var item = modules[i]; + // skip already imported module + // this implementation is not 100% perfect for weird media query combinations + // when a module is imported multiple times with different media queries. + // I hope this will never occur (Hey this way we have smaller bundles) + if(typeof item[0] !== "number" || !alreadyImportedModules[item[0]]) { + if(mediaQuery && !item[2]) { + item[2] = mediaQuery; + } else if(mediaQuery) { + item[2] = "(" + item[2] + ") and (" + mediaQuery + ")"; + } + list.push(item); + } + } + }; + return list; +}; + +function cssWithMappingToString(item, useSourceMap) { + var content = item[1] || ''; + var cssMapping = item[3]; + if (!cssMapping) { + return content; + } + + if (useSourceMap && typeof btoa === 'function') { + var sourceMapping = toComment(cssMapping); + var sourceURLs = cssMapping.sources.map(function (source) { + return '/*# sourceURL=' + cssMapping.sourceRoot + source + ' */' + }); + + return [content].concat(sourceURLs).concat([sourceMapping]).join('\n'); + } + + return [content].join('\n'); +} + +// Adapted from convert-source-map (MIT) +function toComment(sourceMap) { + // eslint-disable-next-line no-undef + var base64 = btoa(unescape(encodeURIComponent(JSON.stringify(sourceMap)))); + var data = 'sourceMappingURL=data:application/json;charset=utf-8;base64,' + base64; + + return '/*# ' + data + ' */'; +} diff --git a/node_modules/css-loader/lib/getImportPrefix.js b/node_modules/css-loader/lib/getImportPrefix.js new file mode 100644 index 0000000..5d3be77 --- /dev/null +++ b/node_modules/css-loader/lib/getImportPrefix.js @@ -0,0 +1,14 @@ +/* + MIT License http://www.opensource.org/licenses/mit-license.php + Author Tobias Koppers @sokra +*/ +module.exports = function getImportPrefix(loaderContext, query) { + if(query.importLoaders === false) + return ""; + var importLoaders = parseInt(query.importLoaders, 10) || 0; + var loadersRequest = loaderContext.loaders.slice( + loaderContext.loaderIndex, + loaderContext.loaderIndex + 1 + importLoaders + ).map(function(x) { return x.request; }).join("!"); + return "-!" + loadersRequest + "!"; +}; diff --git a/node_modules/css-loader/lib/getLocalIdent.js b/node_modules/css-loader/lib/getLocalIdent.js new file mode 100644 index 0000000..79c7ab5 --- /dev/null +++ b/node_modules/css-loader/lib/getLocalIdent.js @@ -0,0 +1,23 @@ +/* + MIT License http://www.opensource.org/licenses/mit-license.php + Author Tobias Koppers @sokra +*/ +var loaderUtils = require("loader-utils"); +var path = require("path"); + +module.exports = function getLocalIdent(loaderContext, localIdentName, localName, options) { + if(!options.context) { + if (loaderContext.rootContext) { + options.context = loaderContext.rootContext; + } else if (loaderContext.options && typeof loaderContext.options.context === "string") { + options.context = loaderContext.options.context; + } else { + options.context = loaderContext.context; + } + } + var request = path.relative(options.context, loaderContext.resourcePath); + options.content = options.hashPrefix + request + "+" + localName; + localIdentName = localIdentName.replace(/\[local\]/gi, localName); + var hash = loaderUtils.interpolateName(loaderContext, localIdentName, options); + return hash.replace(new RegExp("[^a-zA-Z0-9\\-_\u00A0-\uFFFF]", "g"), "-").replace(/^((-?[0-9])|--)/, "_$1"); +}; diff --git a/node_modules/css-loader/lib/loader.js b/node_modules/css-loader/lib/loader.js new file mode 100644 index 0000000..c31d5de --- /dev/null +++ b/node_modules/css-loader/lib/loader.js @@ -0,0 +1,144 @@ +/* + MIT License http://www.opensource.org/licenses/mit-license.php + Author Tobias Koppers @sokra +*/ +var loaderUtils = require("loader-utils"); +var processCss = require("./processCss"); +var getImportPrefix = require("./getImportPrefix"); +var compileExports = require("./compile-exports"); + + +module.exports = function(content, map) { + var callback = this.async(); + var query = loaderUtils.getOptions(this) || {}; + var moduleMode = query.modules; + var camelCaseKeys = query.camelCase; + var sourceMap = query.sourceMap || false; + + if(sourceMap) { + if (map) { + if (typeof map === "string") { + map = JSON.stringify(map); + } + + if (map.sources) { + map.sources = map.sources.map(function (source) { + return source.replace(/\\/g, '/'); + }); + map.sourceRoot = ''; + } + } + } else { + // Some loaders (example `"postcss-loader": "1.x.x"`) always generates source map, we should remove it + map = null; + } + + processCss(content, map, { + mode: moduleMode ? "local" : "global", + from: loaderUtils.getRemainingRequest(this).split("!").pop(), + to: loaderUtils.getCurrentRequest(this).split("!").pop(), + query: query, + loaderContext: this, + sourceMap: sourceMap + }, function(err, result) { + if(err) return callback(err); + + var cssAsString = JSON.stringify(result.source); + + // for importing CSS + var importUrlPrefix = getImportPrefix(this, query); + + var alreadyImported = {}; + var importJs = result.importItems.map(function(imp) { + // fixes #781 when importing `url(filename.css )` + imp.url = imp.url.trim(); + return imp; + }).filter(function(imp) { + if(!imp.mediaQuery) { + if(alreadyImported[imp.url]) + return false; + alreadyImported[imp.url] = true; + } + return true; + }).map(function(imp) { + if(!loaderUtils.isUrlRequest(imp.url)) { + return "exports.push([module.id, " + + JSON.stringify("@import url(" + imp.url + ");") + ", " + + JSON.stringify(imp.mediaQuery) + "]);"; + } else { + var importUrl = importUrlPrefix + imp.url; + return "exports.i(require(" + loaderUtils.stringifyRequest(this, importUrl) + "), " + JSON.stringify(imp.mediaQuery) + ");"; + } + }, this).join("\n"); + + function importItemMatcher(item) { + var match = result.importItemRegExp.exec(item); + var idx = +match[1]; + var importItem = result.importItems[idx]; + var importUrl = importUrlPrefix + importItem.url; + return "\" + require(" + loaderUtils.stringifyRequest(this, importUrl) + ").locals" + + "[" + JSON.stringify(importItem.export) + "] + \""; + } + + cssAsString = cssAsString.replace(result.importItemRegExpG, importItemMatcher.bind(this)); + + // helper for ensuring valid CSS strings from requires + var urlEscapeHelper = ""; + + if(query.url !== false && result.urlItems.length > 0) { + urlEscapeHelper = "var escape = require(" + loaderUtils.stringifyRequest(this, require.resolve("./url/escape.js")) + ");\n"; + + cssAsString = cssAsString.replace(result.urlItemRegExpG, function(item) { + var match = result.urlItemRegExp.exec(item); + var idx = +match[1]; + var urlItem = result.urlItems[idx]; + var url = urlItem.url; + idx = url.indexOf("?#"); + if(idx < 0) idx = url.indexOf("#"); + var urlRequest; + if(idx > 0) { // idx === 0 is catched by isUrlRequest + // in cases like url('webfont.eot?#iefix') + urlRequest = url.substr(0, idx); + return "\" + escape(require(" + loaderUtils.stringifyRequest(this, urlRequest) + ")) + \"" + + url.substr(idx); + } + urlRequest = url; + return "\" + escape(require(" + loaderUtils.stringifyRequest(this, urlRequest) + ")) + \""; + }.bind(this)); + } + + var exportJs = compileExports(result, importItemMatcher.bind(this), camelCaseKeys); + if (exportJs) { + exportJs = "exports.locals = " + exportJs + ";"; + } + + var moduleJs; + if(sourceMap && result.map) { + // add a SourceMap + map = result.map; + if(map.sources) { + map.sources = map.sources.map(function(source) { + return source.split("!").pop().replace(/\\/g, '/'); + }, this); + map.sourceRoot = ""; + } + map.file = map.file.split("!").pop().replace(/\\/g, '/'); + map = JSON.stringify(map); + moduleJs = "exports.push([module.id, " + cssAsString + ", \"\", " + map + "]);"; + } else { + moduleJs = "exports.push([module.id, " + cssAsString + ", \"\"]);"; + } + + // embed runtime + callback(null, urlEscapeHelper + + "exports = module.exports = require(" + + loaderUtils.stringifyRequest(this, require.resolve("./css-base.js")) + + ")(" + sourceMap + ");\n" + + "// imports\n" + + importJs + "\n\n" + + "// module\n" + + moduleJs + "\n\n" + + "// exports\n" + + exportJs); + }.bind(this)); +}; diff --git a/node_modules/css-loader/lib/localsLoader.js b/node_modules/css-loader/lib/localsLoader.js new file mode 100644 index 0000000..e12546e --- /dev/null +++ b/node_modules/css-loader/lib/localsLoader.js @@ -0,0 +1,44 @@ +/* + MIT License http://www.opensource.org/licenses/mit-license.php + Author Tobias Koppers @sokra +*/ +var loaderUtils = require("loader-utils"); +var processCss = require("./processCss"); +var getImportPrefix = require("./getImportPrefix"); +var compileExports = require("./compile-exports"); + + +module.exports = function(content) { + var callback = this.async(); + var query = loaderUtils.getOptions(this) || {}; + var moduleMode = query.modules; + var camelCaseKeys = query.camelCase; + + processCss(content, null, { + mode: moduleMode ? "local" : "global", + query: query, + loaderContext: this, + }, function(err, result) { + if(err) return callback(err); + + // for importing CSS + var importUrlPrefix = getImportPrefix(this, query); + + function importItemMatcher(item) { + var match = result.importItemRegExp.exec(item); + var idx = +match[1]; + var importItem = result.importItems[idx]; + var importUrl = importUrlPrefix + importItem.url; + return "\" + require(" + loaderUtils.stringifyRequest(this, importUrl) + ")" + + "[" + JSON.stringify(importItem.export) + "] + \""; + } + + var exportJs = compileExports(result, importItemMatcher.bind(this), camelCaseKeys); + if (exportJs) { + exportJs = "module.exports = " + exportJs + ";"; + } + + + callback(null, exportJs); + }.bind(this)); +}; diff --git a/node_modules/css-loader/lib/processCss.js b/node_modules/css-loader/lib/processCss.js new file mode 100644 index 0000000..61eb7ce --- /dev/null +++ b/node_modules/css-loader/lib/processCss.js @@ -0,0 +1,244 @@ +/* + MIT License http://www.opensource.org/licenses/mit-license.php + Author Tobias Koppers @sokra +*/ +var formatCodeFrame = require("babel-code-frame"); +var Tokenizer = require("css-selector-tokenizer"); +var postcss = require("postcss"); +var loaderUtils = require("loader-utils"); +var getLocalIdent = require("./getLocalIdent"); + +var icssUtils = require('icss-utils'); +var localByDefault = require("postcss-modules-local-by-default"); +var extractImports = require("postcss-modules-extract-imports"); +var modulesScope = require("postcss-modules-scope"); +var modulesValues = require("postcss-modules-values"); +var valueParser = require('postcss-value-parser'); + +var parserPlugin = postcss.plugin("css-loader-parser", function(options) { + return function(css) { + var imports = {}; + var exports = {}; + var importItems = []; + var urlItems = []; + + function replaceImportsInString(str) { + if(options.import) { + var tokens = valueParser(str); + tokens.walk(function (node) { + if (node.type !== 'word') { + return; + } + var token = node.value; + var importIndex = imports["$" + token]; + if(typeof importIndex === "number") { + node.value = "___CSS_LOADER_IMPORT___" + importIndex + "___"; + } + }) + return tokens.toString(); + } + return str; + } + + if(options.import) { + css.walkAtRules(/^import$/i, function(rule) { + var values = Tokenizer.parseValues(rule.params); + var url = values.nodes[0].nodes[0]; + if(url && url.type === "url") { + url = url.url; + } else if(url && url.type === "string") { + url = url.value; + } else throw rule.error("Unexpected format " + rule.params); + if (!url.replace(/\s/g, '').length) { + return; + } + values.nodes[0].nodes.shift(); + var mediaQuery = Tokenizer.stringifyValues(values); + + if(loaderUtils.isUrlRequest(url)) { + url = loaderUtils.urlToRequest(url); + } + + importItems.push({ + url: url, + mediaQuery: mediaQuery + }); + rule.remove(); + }); + } + + var icss = icssUtils.extractICSS(css); + exports = icss.icssExports; + Object.keys(icss.icssImports).forEach(function(key) { + var url = loaderUtils.parseString(key); + Object.keys(icss.icssImports[key]).forEach(function(prop) { + imports["$" + prop] = importItems.length; + importItems.push({ + url: url, + export: icss.icssImports[key][prop] + }); + }) + }); + + Object.keys(exports).forEach(function(exportName) { + exports[exportName] = replaceImportsInString(exports[exportName]); + }); + + function processNode(item) { + switch (item.type) { + case "value": + item.nodes.forEach(processNode); + break; + case "nested-item": + item.nodes.forEach(processNode); + break; + case "item": + var importIndex = imports["$" + item.name]; + if (typeof importIndex === "number") { + item.name = "___CSS_LOADER_IMPORT___" + importIndex + "___"; + } + break; + case "url": + if (options.url && item.url.replace(/\s/g, '').length && !/^#/.test(item.url) && loaderUtils.isUrlRequest(item.url)) { + // Strip quotes, they will be re-added if the module needs them + item.stringType = ""; + delete item.innerSpacingBefore; + delete item.innerSpacingAfter; + var url = item.url; + item.url = "___CSS_LOADER_URL___" + urlItems.length + "___"; + urlItems.push({ + url: url + }); + } + break; + } + } + + css.walkDecls(function(decl) { + var values = Tokenizer.parseValues(decl.value); + values.nodes.forEach(function(value) { + value.nodes.forEach(processNode); + }); + decl.value = Tokenizer.stringifyValues(values); + }); + css.walkAtRules(function(atrule) { + if(typeof atrule.params === "string") { + atrule.params = replaceImportsInString(atrule.params); + } + }); + + options.importItems = importItems; + options.urlItems = urlItems; + options.exports = exports; + }; +}); + +module.exports = function processCss(inputSource, inputMap, options, callback) { + var query = options.query; + var context = query.context; + var localIdentName = query.localIdentName || "[hash:base64]"; + var localIdentRegExp = query.localIdentRegExp; + + var customGetLocalIdent = query.getLocalIdent || getLocalIdent; + + var parserOptions = { + mode: options.mode, + url: query.url !== false, + import: query.import !== false, + resolve: options.resolve + }; + + var pipeline = postcss([ + modulesValues, + localByDefault({ + mode: options.mode, + rewriteUrl: function(global, url) { + if(parserOptions.url){ + url = url.trim(); + + if(!url.replace(/\s/g, '').length || !loaderUtils.isUrlRequest(url)) { + return url; + } + if(global) { + return loaderUtils.urlToRequest(url); + } + } + return url; + } + }), + extractImports(), + modulesScope({ + generateScopedName: function generateScopedName (exportName) { + return customGetLocalIdent(options.loaderContext, localIdentName, exportName, { + regExp: localIdentRegExp, + hashPrefix: query.hashPrefix || "", + context: context + }); + } + }), + parserPlugin(parserOptions) + ]); + + pipeline.process(inputSource, { + // we need a prefix to avoid path rewriting of PostCSS + from: "/css-loader!" + options.from, + to: options.to, + map: options.sourceMap ? { + prev: inputMap, + sourcesContent: true, + inline: false, + annotation: false + } : null + }).then(function(result) { + callback(null, { + source: result.css, + map: result.map && result.map.toJSON(), + exports: parserOptions.exports, + importItems: parserOptions.importItems, + importItemRegExpG: /___CSS_LOADER_IMPORT___([0-9]+)___/g, + importItemRegExp: /___CSS_LOADER_IMPORT___([0-9]+)___/, + urlItems: parserOptions.urlItems, + urlItemRegExpG: /___CSS_LOADER_URL___([0-9]+)___/g, + urlItemRegExp: /___CSS_LOADER_URL___([0-9]+)___/ + }); + }).catch(function(err) { + if (err.name === 'CssSyntaxError') { + var wrappedError = new CSSLoaderError( + 'Syntax Error', + err.reason, + err.line != null && err.column != null + ? {line: err.line, column: err.column} + : null, + err.input.source + ); + callback(wrappedError); + } else { + callback(err); + } + }); +}; + +function formatMessage(message, loc, source) { + var formatted = message; + if (loc) { + formatted = formatted + + ' (' + loc.line + ':' + loc.column + ')'; + } + if (loc && source) { + formatted = formatted + + '\n\n' + formatCodeFrame(source, loc.line, loc.column) + '\n'; + } + return formatted; +} + +function CSSLoaderError(name, message, loc, source, error) { + Error.call(this); + Error.captureStackTrace(this, CSSLoaderError); + this.name = name; + this.error = error; + this.message = formatMessage(message, loc, source); + this.hideStack = true; +} + +CSSLoaderError.prototype = Object.create(Error.prototype); +CSSLoaderError.prototype.constructor = CSSLoaderError; diff --git a/node_modules/css-loader/lib/url/escape.js b/node_modules/css-loader/lib/url/escape.js new file mode 100644 index 0000000..25074a6 --- /dev/null +++ b/node_modules/css-loader/lib/url/escape.js @@ -0,0 +1,16 @@ +module.exports = function escape(url) { + if (typeof url !== 'string') { + return url + } + // If url is already wrapped in quotes, remove them + if (/^['"].*['"]$/.test(url)) { + url = url.slice(1, -1); + } + // Should url be wrapped? + // See https://drafts.csswg.org/css-values-3/#urls + if (/["'() \t\n]/.test(url)) { + return '"' + url.replace(/"/g, '\\"').replace(/\n/g, '\\n') + '"' + } + + return url +} |