vite
Version:
Native-ESM powered web dev build tool
482 lines (470 loc) • 19.5 kB
JavaScript
import { createRequire as ___createRequire } from 'module'; const require = ___createRequire(import.meta.url);
import { __commonJS } from "./dep-Drtntmtt.js";
import { require_lib } from "./dep-DmY5m86w.js";
//#region ../../node_modules/.pnpm/postcss-import@16.1.1_postcss@8.5.6/node_modules/postcss-import/lib/format-import-prelude.js
var require_format_import_prelude = __commonJS({ "../../node_modules/.pnpm/postcss-import@16.1.1_postcss@8.5.6/node_modules/postcss-import/lib/format-import-prelude.js"(exports, module) {
module.exports = function formatImportPrelude$2(layer, media, supports) {
const parts = [];
if (typeof layer !== "undefined") {
let layerParams = "layer";
if (layer) layerParams = `layer(${layer})`;
parts.push(layerParams);
}
if (typeof supports !== "undefined") parts.push(`supports(${supports})`);
if (typeof media !== "undefined") parts.push(media);
return parts.join(" ");
};
} });
//#endregion
//#region ../../node_modules/.pnpm/postcss-import@16.1.1_postcss@8.5.6/node_modules/postcss-import/lib/base64-encoded-import.js
var require_base64_encoded_import = __commonJS({ "../../node_modules/.pnpm/postcss-import@16.1.1_postcss@8.5.6/node_modules/postcss-import/lib/base64-encoded-import.js"(exports, module) {
const formatImportPrelude$1 = require_format_import_prelude();
module.exports = function base64EncodedConditionalImport$1(prelude, conditions) {
if (!conditions?.length) return prelude;
conditions.reverse();
const first = conditions.pop();
let params = `${prelude} ${formatImportPrelude$1(first.layer, first.media, first.supports)}`;
for (const condition of conditions) params = `'data:text/css;base64,${Buffer.from(`@import ${params}`).toString("base64")}' ${formatImportPrelude$1(condition.layer, condition.media, condition.supports)}`;
return params;
};
} });
//#endregion
//#region ../../node_modules/.pnpm/postcss-import@16.1.1_postcss@8.5.6/node_modules/postcss-import/lib/apply-conditions.js
var require_apply_conditions = __commonJS({ "../../node_modules/.pnpm/postcss-import@16.1.1_postcss@8.5.6/node_modules/postcss-import/lib/apply-conditions.js"(exports, module) {
const base64EncodedConditionalImport = require_base64_encoded_import();
module.exports = function applyConditions$1(bundle, atRule) {
const firstImportStatementIndex = bundle.findIndex((stmt) => stmt.type === "import");
const lastImportStatementIndex = bundle.findLastIndex((stmt) => stmt.type === "import");
bundle.forEach((stmt, index) => {
if (stmt.type === "charset" || stmt.type === "warning") return;
if (stmt.type === "layer" && (index < lastImportStatementIndex && stmt.conditions?.length || index > firstImportStatementIndex && index < lastImportStatementIndex)) {
stmt.type = "import";
stmt.node = stmt.node.clone({
name: "import",
params: base64EncodedConditionalImport(`'data:text/css;base64,${Buffer.from(stmt.node.toString()).toString("base64")}'`, stmt.conditions)
});
return;
}
if (!stmt.conditions?.length) return;
if (stmt.type === "import") {
stmt.node.params = base64EncodedConditionalImport(stmt.fullUri, stmt.conditions);
return;
}
let nodes;
let parent;
if (stmt.type === "layer") {
nodes = [stmt.node];
parent = stmt.node.parent;
} else {
nodes = stmt.nodes;
parent = nodes[0].parent;
}
const atRules = [];
for (const condition of stmt.conditions) {
if (typeof condition.media !== "undefined") {
const mediaNode = atRule({
name: "media",
params: condition.media,
source: parent.source
});
atRules.push(mediaNode);
}
if (typeof condition.supports !== "undefined") {
const supportsNode = atRule({
name: "supports",
params: `(${condition.supports})`,
source: parent.source
});
atRules.push(supportsNode);
}
if (typeof condition.layer !== "undefined") {
const layerNode = atRule({
name: "layer",
params: condition.layer,
source: parent.source
});
atRules.push(layerNode);
}
}
const outerAtRule = atRules.shift();
const innerAtRule = atRules.reduce((previous, next) => {
previous.append(next);
return next;
}, outerAtRule);
parent.insertBefore(nodes[0], outerAtRule);
nodes.forEach((node) => {
node.parent = void 0;
});
nodes[0].raws.before = nodes[0].raws.before || "\n";
innerAtRule.append(nodes);
stmt.type = "nodes";
stmt.nodes = [outerAtRule];
delete stmt.node;
});
};
} });
//#endregion
//#region ../../node_modules/.pnpm/postcss-import@16.1.1_postcss@8.5.6/node_modules/postcss-import/lib/apply-raws.js
var require_apply_raws = __commonJS({ "../../node_modules/.pnpm/postcss-import@16.1.1_postcss@8.5.6/node_modules/postcss-import/lib/apply-raws.js"(exports, module) {
module.exports = function applyRaws$1(bundle) {
bundle.forEach((stmt, index) => {
if (index === 0) return;
if (stmt.parent) {
const { before } = stmt.parent.node.raws;
if (stmt.type === "nodes") stmt.nodes[0].raws.before = before;
else stmt.node.raws.before = before;
} else if (stmt.type === "nodes") stmt.nodes[0].raws.before = stmt.nodes[0].raws.before || "\n";
});
};
} });
//#endregion
//#region ../../node_modules/.pnpm/postcss-import@16.1.1_postcss@8.5.6/node_modules/postcss-import/lib/apply-styles.js
var require_apply_styles = __commonJS({ "../../node_modules/.pnpm/postcss-import@16.1.1_postcss@8.5.6/node_modules/postcss-import/lib/apply-styles.js"(exports, module) {
module.exports = function applyStyles$1(bundle, styles) {
styles.nodes = [];
bundle.forEach((stmt) => {
if ([
"charset",
"import",
"layer"
].includes(stmt.type)) {
stmt.node.parent = void 0;
styles.append(stmt.node);
} else if (stmt.type === "nodes") stmt.nodes.forEach((node) => {
node.parent = void 0;
styles.append(node);
});
});
};
} });
//#endregion
//#region ../../node_modules/.pnpm/postcss-import@16.1.1_postcss@8.5.6/node_modules/postcss-import/lib/data-url.js
var require_data_url = __commonJS({ "../../node_modules/.pnpm/postcss-import@16.1.1_postcss@8.5.6/node_modules/postcss-import/lib/data-url.js"(exports, module) {
const anyDataURLRegexp = /^data:text\/css(?:;(base64|plain))?,/i;
const base64DataURLRegexp = /^data:text\/css;base64,/i;
const plainDataURLRegexp = /^data:text\/css;plain,/i;
function isValid(url) {
return anyDataURLRegexp.test(url);
}
function contents(url) {
if (base64DataURLRegexp.test(url)) return Buffer.from(url.slice(21), "base64").toString();
if (plainDataURLRegexp.test(url)) return decodeURIComponent(url.slice(20));
return decodeURIComponent(url.slice(14));
}
module.exports = {
isValid,
contents
};
} });
//#endregion
//#region ../../node_modules/.pnpm/postcss-import@16.1.1_postcss@8.5.6/node_modules/postcss-import/lib/parse-statements.js
var require_parse_statements = __commonJS({ "../../node_modules/.pnpm/postcss-import@16.1.1_postcss@8.5.6/node_modules/postcss-import/lib/parse-statements.js"(exports, module) {
const valueParser = require_lib();
const { stringify } = valueParser;
module.exports = function parseStatements$1(result, styles, conditions, from) {
const statements = [];
let nodes = [];
let encounteredNonImportNodes = false;
styles.each((node) => {
let stmt;
if (node.type === "atrule") {
if (node.name === "import") stmt = parseImport(result, node, conditions, from);
else if (node.name === "charset") stmt = parseCharset(result, node, conditions, from);
else if (node.name === "layer" && !encounteredNonImportNodes && !node.nodes) stmt = parseLayer(result, node, conditions, from);
} else if (node.type !== "comment") encounteredNonImportNodes = true;
if (stmt) {
if (nodes.length) {
statements.push({
type: "nodes",
nodes,
conditions: [...conditions],
from
});
nodes = [];
}
statements.push(stmt);
} else nodes.push(node);
});
if (nodes.length) statements.push({
type: "nodes",
nodes,
conditions: [...conditions],
from
});
return statements;
};
function parseCharset(result, atRule, conditions, from) {
if (atRule.prev()) return result.warn("@charset must precede all other statements", { node: atRule });
return {
type: "charset",
node: atRule,
conditions: [...conditions],
from
};
}
function parseImport(result, atRule, conditions, from) {
let prev = atRule.prev();
if (prev) do {
if (prev.type === "comment" || prev.type === "atrule" && prev.name === "import") {
prev = prev.prev();
continue;
}
break;
} while (prev);
if (prev) do {
if (prev.type === "comment" || prev.type === "atrule" && (prev.name === "charset" || prev.name === "layer" && !prev.nodes)) {
prev = prev.prev();
continue;
}
return result.warn("@import must precede all other statements (besides @charset or empty @layer)", { node: atRule });
} while (prev);
if (atRule.nodes) return result.warn("It looks like you didn't end your @import statement correctly. Child nodes are attached to it.", { node: atRule });
const params = valueParser(atRule.params).nodes;
const stmt = {
type: "import",
uri: "",
fullUri: "",
node: atRule,
conditions: [...conditions],
from
};
let layer;
let media;
let supports;
for (let i = 0; i < params.length; i++) {
const node = params[i];
if (node.type === "space" || node.type === "comment") continue;
if (node.type === "string") {
if (stmt.uri) return result.warn(`Multiple url's in '${atRule.toString()}'`, { node: atRule });
if (!node.value) return result.warn(`Unable to find uri in '${atRule.toString()}'`, { node: atRule });
stmt.uri = node.value;
stmt.fullUri = stringify(node);
continue;
}
if (node.type === "function" && /^url$/i.test(node.value)) {
if (stmt.uri) return result.warn(`Multiple url's in '${atRule.toString()}'`, { node: atRule });
if (!node.nodes?.[0]?.value) return result.warn(`Unable to find uri in '${atRule.toString()}'`, { node: atRule });
stmt.uri = node.nodes[0].value;
stmt.fullUri = stringify(node);
continue;
}
if (!stmt.uri) return result.warn(`Unable to find uri in '${atRule.toString()}'`, { node: atRule });
if ((node.type === "word" || node.type === "function") && /^layer$/i.test(node.value)) {
if (typeof layer !== "undefined") return result.warn(`Multiple layers in '${atRule.toString()}'`, { node: atRule });
if (typeof supports !== "undefined") return result.warn(`layers must be defined before support conditions in '${atRule.toString()}'`, { node: atRule });
if (node.nodes) layer = stringify(node.nodes);
else layer = "";
continue;
}
if (node.type === "function" && /^supports$/i.test(node.value)) {
if (typeof supports !== "undefined") return result.warn(`Multiple support conditions in '${atRule.toString()}'`, { node: atRule });
supports = stringify(node.nodes);
continue;
}
media = stringify(params.slice(i));
break;
}
if (!stmt.uri) return result.warn(`Unable to find uri in '${atRule.toString()}'`, { node: atRule });
if (typeof media !== "undefined" || typeof layer !== "undefined" || typeof supports !== "undefined") stmt.conditions.push({
layer,
media,
supports
});
return stmt;
}
function parseLayer(result, atRule, conditions, from) {
return {
type: "layer",
node: atRule,
conditions: [...conditions],
from
};
}
} });
//#endregion
//#region ../../node_modules/.pnpm/postcss-import@16.1.1_postcss@8.5.6/node_modules/postcss-import/lib/process-content.js
var require_process_content = __commonJS({ "../../node_modules/.pnpm/postcss-import@16.1.1_postcss@8.5.6/node_modules/postcss-import/lib/process-content.js"(exports, module) {
const path$2 = require("path");
let sugarss;
module.exports = function processContent$1(result, content, filename, options, postcss) {
const { plugins } = options;
const ext = path$2.extname(filename);
const parserList = [];
if (ext === ".sss") {
if (!sugarss)
/* c8 ignore next 3 */
try {
sugarss = require("sugarss");
} catch {}
if (sugarss) return runPostcss(postcss, content, filename, plugins, [sugarss]);
}
if (result.opts.syntax?.parse) parserList.push(result.opts.syntax.parse);
if (result.opts.parser) parserList.push(result.opts.parser);
parserList.push(null);
return runPostcss(postcss, content, filename, plugins, parserList);
};
function runPostcss(postcss, content, filename, plugins, parsers, index) {
if (!index) index = 0;
return postcss(plugins).process(content, {
from: filename,
parser: parsers[index]
}).catch((err) => {
index++;
if (index === parsers.length) throw err;
return runPostcss(postcss, content, filename, plugins, parsers, index);
});
}
} });
//#endregion
//#region ../../node_modules/.pnpm/postcss-import@16.1.1_postcss@8.5.6/node_modules/postcss-import/lib/parse-styles.js
var require_parse_styles = __commonJS({ "../../node_modules/.pnpm/postcss-import@16.1.1_postcss@8.5.6/node_modules/postcss-import/lib/parse-styles.js"(exports, module) {
const path$1 = require("path");
const dataURL = require_data_url();
const parseStatements = require_parse_statements();
const processContent = require_process_content();
const resolveId$1 = (id) => id;
const formatImportPrelude = require_format_import_prelude();
async function parseStyles$1(result, styles, options, state, conditions, from, postcss) {
const statements = parseStatements(result, styles, conditions, from);
for (const stmt of statements) {
if (stmt.type !== "import" || !isProcessableURL(stmt.uri)) continue;
if (options.filter && !options.filter(stmt.uri)) continue;
await resolveImportId(result, stmt, options, state, postcss);
}
let charset;
const beforeBundle = [];
const bundle = [];
function handleCharset(stmt) {
if (!charset) charset = stmt;
else if (stmt.node.params.toLowerCase() !== charset.node.params.toLowerCase()) throw stmt.node.error(`Incompatible @charset statements:
${stmt.node.params} specified in ${stmt.node.source.input.file}
${charset.node.params} specified in ${charset.node.source.input.file}`);
}
statements.forEach((stmt) => {
if (stmt.type === "charset") handleCharset(stmt);
else if (stmt.type === "import") if (stmt.children) stmt.children.forEach((child, index) => {
if (child.type === "import") beforeBundle.push(child);
else if (child.type === "layer") beforeBundle.push(child);
else if (child.type === "charset") handleCharset(child);
else bundle.push(child);
if (index === 0) child.parent = stmt;
});
else beforeBundle.push(stmt);
else if (stmt.type === "layer") beforeBundle.push(stmt);
else if (stmt.type === "nodes") bundle.push(stmt);
});
return charset ? [charset, ...beforeBundle.concat(bundle)] : beforeBundle.concat(bundle);
}
async function resolveImportId(result, stmt, options, state, postcss) {
if (dataURL.isValid(stmt.uri)) {
stmt.children = await loadImportContent(result, stmt, stmt.uri, options, state, postcss);
return;
} else if (dataURL.isValid(stmt.from.slice(-1))) throw stmt.node.error(`Unable to import '${stmt.uri}' from a stylesheet that is embedded in a data url`);
const atRule = stmt.node;
let sourceFile;
if (atRule.source?.input?.file) sourceFile = atRule.source.input.file;
const base = sourceFile ? path$1.dirname(atRule.source.input.file) : options.root;
const paths = [await options.resolve(stmt.uri, base, options, atRule)].flat();
const resolved = await Promise.all(paths.map((file) => {
return !path$1.isAbsolute(file) ? resolveId$1(file, base, options, atRule) : file;
}));
resolved.forEach((file) => {
result.messages.push({
type: "dependency",
plugin: "postcss-import",
file,
parent: sourceFile
});
});
const importedContent = await Promise.all(resolved.map((file) => {
return loadImportContent(result, stmt, file, options, state, postcss);
}));
stmt.children = importedContent.flat().filter((x) => !!x);
}
async function loadImportContent(result, stmt, filename, options, state, postcss) {
const atRule = stmt.node;
const { conditions, from } = stmt;
const stmtDuplicateCheckKey = conditions.map((condition) => formatImportPrelude(condition.layer, condition.media, condition.supports)).join(":");
if (options.skipDuplicates) {
if (state.importedFiles[filename]?.[stmtDuplicateCheckKey]) return;
if (!state.importedFiles[filename]) state.importedFiles[filename] = {};
state.importedFiles[filename][stmtDuplicateCheckKey] = true;
}
if (from.includes(filename)) return;
const content = await options.load(filename, options);
if (content.trim() === "" && options.warnOnEmpty) {
result.warn(`${filename} is empty`, { node: atRule });
return;
}
if (options.skipDuplicates && state.hashFiles[content]?.[stmtDuplicateCheckKey]) return;
const importedResult = await processContent(result, content, filename, options, postcss);
const styles = importedResult.root;
result.messages = result.messages.concat(importedResult.messages);
if (options.skipDuplicates) {
const hasImport = styles.some((child) => {
return child.type === "atrule" && child.name === "import";
});
if (!hasImport) {
if (!state.hashFiles[content]) state.hashFiles[content] = {};
state.hashFiles[content][stmtDuplicateCheckKey] = true;
}
}
return parseStyles$1(result, styles, options, state, conditions, [...from, filename], postcss);
}
function isProcessableURL(uri) {
if (/^(?:[a-z]+:)?\/\//i.test(uri)) return false;
try {
const url = new URL(uri, "https://example.com");
if (url.search) return false;
} catch {}
return true;
}
module.exports = parseStyles$1;
} });
//#endregion
//#region ../../node_modules/.pnpm/postcss-import@16.1.1_postcss@8.5.6/node_modules/postcss-import/index.js
var require_postcss_import = __commonJS({ "../../node_modules/.pnpm/postcss-import@16.1.1_postcss@8.5.6/node_modules/postcss-import/index.js"(exports, module) {
const path = require("path");
const applyConditions = require_apply_conditions();
const applyRaws = require_apply_raws();
const applyStyles = require_apply_styles();
const loadContent = () => "";
const parseStyles = require_parse_styles();
const resolveId = (id) => id;
function AtImport(options) {
options = {
root: process.cwd(),
path: [],
skipDuplicates: true,
resolve: resolveId,
load: loadContent,
plugins: [],
addModulesDirectories: [],
warnOnEmpty: true,
...options
};
options.root = path.resolve(options.root);
if (typeof options.path === "string") options.path = [options.path];
if (!Array.isArray(options.path)) options.path = [];
options.path = options.path.map((p) => path.resolve(options.root, p));
return {
postcssPlugin: "postcss-import",
async Once(styles, { result, atRule, postcss }) {
const state = {
importedFiles: {},
hashFiles: {}
};
if (styles.source?.input?.file) state.importedFiles[styles.source.input.file] = {};
if (options.plugins && !Array.isArray(options.plugins)) throw new Error("plugins option must be an array");
const bundle = await parseStyles(result, styles, options, state, [], [], postcss);
applyRaws(bundle);
applyConditions(bundle, atRule);
applyStyles(bundle, styles);
}
};
}
AtImport.postcss = true;
module.exports = AtImport;
} });
//#endregion
export default require_postcss_import();