You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 

1 lines
16 KiB

{"version":3,"file":"index.esm.mjs","sources":["src/lib/util.js","src/lib/cssMap.js","src/lib/readFile.js","src/lib/parse.js","src/lib/postcssImportNormalize.js","src/lib/postcssNormalize.js","src/index.js"],"sourcesContent":["export const assign = (...objects) => Object.assign(...objects);\nexport const create = (...objects) => assign(Object.create(null), ...objects);\n","import { create } from './util';\nimport Module from 'module';\nimport path from 'path';\nimport { URL } from 'url';\n\n// get esm-compatible script metadata\nconst currentURL = import.meta.url;\nconst currentFilename = new URL(currentURL).pathname;\nconst currentDirname = path.dirname(currentFilename);\n\n// get resolved filenames for css libraries\nconst normalizeCSS = resolve('@csstools/normalize.css');\nconst normalizeOpinionatedCSS = resolve('@csstools/normalize.css/opinionated.css');\nconst sanitizeCSS = resolve('sanitize.css');\nconst sanitizeFormsCSS = resolve('sanitize.css/forms.css');\nconst sanitizePageCSS = resolve('sanitize.css/page.css');\nconst sanitizeTypographyCSS = resolve('sanitize.css/typography.css');\n\n// export a hashmap of css library filenames\nexport const parsableFilenames = create({\n\t[normalizeCSS]: true,\n\t[normalizeOpinionatedCSS]: true,\n\t[sanitizeCSS]: true,\n\t[sanitizeFormsCSS]: true,\n\t[sanitizePageCSS]: true,\n\t[sanitizeTypographyCSS]: true\n});\n\n// export a hashmap of css library filenames by id\nexport const resolvedFilenamesById = create({\n\t'normalize': [normalizeCSS],\n\t'normalize/opinionated': [normalizeOpinionatedCSS],\n\t'normalize/*': [normalizeOpinionatedCSS],\n\t'sanitize': [sanitizeCSS],\n\t'sanitize/forms': [sanitizeCSS, sanitizeFormsCSS],\n\t'sanitize/page': [sanitizeCSS, sanitizePageCSS],\n\t'sanitize/typography': [sanitizeCSS, sanitizeTypographyCSS],\n\t'sanitize/*': [sanitizeCSS, sanitizeFormsCSS, sanitizePageCSS, sanitizeTypographyCSS]\n});\n\n// get the resolved filename of a package/module\nfunction resolve (id) {\n\treturn resolve[id] = resolve[id] || Module._resolveFilename(id, {\n\t\tid: currentFilename,\n\t\tfilename: currentFilename,\n\t\tpaths: Module._nodeModulePaths(currentDirname)\n\t});\n}\n","import { create } from './util';\nimport path from 'path';\nimport fs from 'fs';\n\nconst cache = create();\n\nexport default async function readFile (filename) {\n\tfilename = path.resolve(filename);\n\n\tcache[filename] = cache[filename] || create();\n\n\treturn new Promise(\n\t\t(resolve, reject) => fs.stat(\n\t\t\tfilename,\n\t\t\t(statsError, { mtime }) => statsError\n\t\t\t\t? reject(statsError)\n\t\t\t: mtime === cache[filename].mtime\n\t\t\t\t? resolve(cache[filename].data)\n\t\t\t: fs.readFile(\n\t\t\t\tfilename,\n\t\t\t\t'utf8',\n\t\t\t\t(readFileError, data) => readFileError\n\t\t\t\t\t? reject(readFileError)\n\t\t\t\t: resolve(\n\t\t\t\t\t(cache[filename] = { data, mtime }).data\n\t\t\t\t)\n\t\t\t)\n\t\t)\n\t);\n}\n","import { create } from './util';\nimport readFile from './readFile';\nimport postcss from 'postcss';\n\nconst cache = create(null);\n\nexport default (filename, transformer) => readFile(filename).then(\n\t// cache the parsed css root\n\tcss => (cache[css] = cache[css] || postcss.parse(css, { from: filename }))\n).then(\n\t// clone the cached root\n\troot => root.clone()\n).then(\n\t// transform the cloned root\n\tclone => Promise.resolve(\n\t\ttransformer(clone)\n\t).then(\n\t\t// resolve the cloned root\n\t\t() => clone\n\t)\n);\n","import { create } from './util';\nimport { parsableFilenames, resolvedFilenamesById } from './cssMap';\nimport parse from './parse';\nimport readFile from './readFile';\n\nexport default commentsTransformer => opts => {\n\topts = create(opts);\n\n\t// return an postcss-import configuration\n\treturn create({\n\t\tload (filename, importOptions) {\n\t\t\treturn filename in parsableFilenames\n\t\t\t\t// parse the file (the file and css are conservatively cached)\n\t\t\t\t? parse(filename, commentsTransformer).then(\n\t\t\t\t\troot => root.toResult({ to: filename, map: true }).css\n\t\t\t\t)\n\t\t\t: typeof opts.load === 'function'\n\t\t\t\t// otherwise, use the override loader\n\t\t\t\t? opts.load.call(null, filename, importOptions)\n\t\t\t// otherwise, return the (conservatively cached) contents of the file\n\t\t\t: readFile(filename);\n\t\t},\n\t\tresolve (id, basedir, importOptions) {\n\t\t\t// get the css id by removing css extensions\n\t\t\tconst cssId = id.replace(cssExtRegExp, '');\n\n\t\t\treturn cssId in resolvedFilenamesById\n\t\t\t\t// return the known resolved path for the css id\n\t\t\t\t? resolvedFilenamesById[cssId]\n\t\t\t: typeof opts.resolve === 'function'\n\t\t\t\t// otherwise, use the override resolver\n\t\t\t\t? opts.resolve.call(null, id, basedir, importOptions)\n\t\t\t// otherwise, return the id to be resolved by postcss-import\n\t\t\t: id;\n\t\t}\n\t});\n};\n\nconst cssExtRegExp = /\\.css\\b/g;\n","import { resolvedFilenamesById } from './cssMap';\nimport parse from './parse';\n\nconst postcssPlugin = (commentsTransformer, opts) => root => {\n\tconst promises = [];\n\tconst insertedFilenames = {};\n\n\t// use @import insertion point\n\troot.walkAtRules(\n\t\timportRegExp,\n\t\tatrule => {\n\t\t\t// get name as a fallback value for the library (e.g. @import-normalize is like @import \"normalize.css\")\n\t\t\tconst name = atrule.name.match(importRegExp)[1];\n\n\t\t\t// get url from \"library\", 'library', url(\"library\"), url('library'), or the fallback value\n\t\t\tconst url = (atrule.params.match(paramsRegExp) || []).slice(1).find(part => part) || name;\n\n\t\t\tif (url) {\n\t\t\t\t// get the css id by removing css extensions\n\t\t\t\tconst cssId = url.replace(cssExtRegExp, '');\n\n\t\t\t\tif (cssId in resolvedFilenamesById) {\n\t\t\t\t\t// promise the library import is replaced with its contents\n\t\t\t\t\tpromises.push(\n\t\t\t\t\t\tPromise.all(\n\t\t\t\t\t\t\tresolvedFilenamesById[cssId].filter(\n\t\t\t\t\t\t\t\t// ignore filenames that have already been inserted\n\t\t\t\t\t\t\t\tfilename => insertedFilenames[filename] = opts.allowDuplicates || !(filename in insertedFilenames)\n\t\t\t\t\t\t\t).map(\n\t\t\t\t\t\t\t\t// parse the file (the file and css are conservatively cached)\n\t\t\t\t\t\t\t\tfilename => parse(filename, commentsTransformer)\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t).then(roots => {\n\t\t\t\t\t\t\tif (roots.length) {\n\t\t\t\t\t\t\t\t// combine all the library nodes returned by the parsed files\n\t\t\t\t\t\t\t\tconst nodes = roots.reduce(\n\t\t\t\t\t\t\t\t\t(all, root) => all.concat(root.nodes),\n\t\t\t\t\t\t\t\t\t[]\n\t\t\t\t\t\t\t\t);\n\n\t\t\t\t\t\t\t\t// replace the import with all the library nodes\n\t\t\t\t\t\t\t\tatrule.replaceWith(...nodes);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t})\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t);\n\n\treturn Promise.all([].concat(\n\t\t// promise the library imports are replaced with their contents\n\t\tpromises,\n\t\t// promise certain libraries are prepended\n\t\tPromise.all(\n\t\t\t[].concat(\n\t\t\t\topts.forceImport || []\n\t\t\t).reduce(\n\t\t\t\t// filter the id to be a known id or boolean true\n\t\t\t\t(all, id) => {\n\t\t\t\t\tif (id === true) {\n\t\t\t\t\t\tall.push(...resolvedFilenamesById.normalize)\n\t\t\t\t\t} else if (typeof id === 'string') {\n\t\t\t\t\t\tconst cssId = id.replace(cssExtRegExp, '');\n\n\t\t\t\t\t\tif (cssId in resolvedFilenamesById) {\n\t\t\t\t\t\t\tall.push(...resolvedFilenamesById[cssId]);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\treturn all;\n\t\t\t\t},\n\t\t\t\t[]\n\t\t\t).filter(\n\t\t\t\t// ignore filenames that have already been inserted\n\t\t\t\tfilename => insertedFilenames[filename] = opts.allowDuplicates || !(filename in insertedFilenames)\n\t\t\t).map(\n\t\t\t\t// parse the file (the file and css are conservatively cached)\n\t\t\t\tfilename => parse(filename, commentsTransformer)\n\t\t\t)\n\t\t).then(roots => {\n\t\t\tif (roots.length) {\n\t\t\t\t// combine all the library nodes returned by the parsed files\n\t\t\t\tconst nodes = roots.reduce(\n\t\t\t\t\t(all, root) => all.concat(root.nodes),\n\t\t\t\t\t[]\n\t\t\t\t);\n\n\t\t\t\t// prepend the stylesheet with all the library nodes\n\t\t\t\troot.prepend(...nodes);\n\t\t\t}\n\t\t})\n\t));\n};\n\nconst cssExtRegExp = /\\.css\\b/g;\nconst importRegExp = /^import(?:-(normalize|sanitize))?$/;\nconst paramsRegExp = /^\\s*(?:url\\((?:\"(.+)\"|'(.+)')\\)|\"(.+)\"|'(.+)')[\\W\\w]*$/;\n\nexport default postcssPlugin;\n","import { assign, create } from './lib/util';\nimport postcss from 'postcss';\nimport postcssBrowserComments from 'postcss-browser-comments';\nimport postcssImportNormalize from './lib/postcssImportNormalize';\nimport postcssNormalize from './lib/postcssNormalize';\n\nexport default postcss.plugin('postcss-normalize', opts => {\n\topts = create(opts);\n\n\tconst commentsTransformer = postcssBrowserComments(opts);\n\tconst normalizeTransformer = postcssNormalize(commentsTransformer, opts);\n\tconst postcssImportConfig = postcssImportNormalize(commentsTransformer, opts);\n\n\treturn assign(normalizeTransformer, { postcssImport: postcssImportConfig });\n});\n"],"names":["assign","objects","Object","create","currentURL","import","meta","url","currentFilename","URL","pathname","currentDirname","path","dirname","normalizeCSS","resolve","normalizeOpinionatedCSS","sanitizeCSS","sanitizeFormsCSS","sanitizePageCSS","sanitizeTypographyCSS","parsableFilenames","resolvedFilenamesById","id","Module","_resolveFilename","filename","paths","_nodeModulePaths","cache","readFile","Promise","reject","fs","stat","statsError","mtime","data","readFileError","transformer","then","css","postcss","parse","from","root","clone","commentsTransformer","opts","load","importOptions","toResult","to","map","call","basedir","cssId","replace","cssExtRegExp","postcssPlugin","promises","insertedFilenames","walkAtRules","importRegExp","atrule","name","match","params","paramsRegExp","slice","find","part","push","all","filter","allowDuplicates","roots","length","nodes","reduce","concat","replaceWith","forceImport","normalize","prepend","plugin","postcssBrowserComments","normalizeTransformer","postcssNormalize","postcssImportConfig","postcssImportNormalize","postcssImport"],"mappings":"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"}