市场夺宝奇兵
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.

478 lines
19 KiB

  1. import { __commonJS, __require } from "./dep-lCKrEJQm.js";
  2. import { require_lib } from "./dep-BuoK8Wda.js";
  3. //#region ../../node_modules/.pnpm/postcss-import@16.1.1_postcss@8.5.6/node_modules/postcss-import/lib/format-import-prelude.js
  4. var require_format_import_prelude = /* @__PURE__ */ __commonJS({ "../../node_modules/.pnpm/postcss-import@16.1.1_postcss@8.5.6/node_modules/postcss-import/lib/format-import-prelude.js": ((exports, module) => {
  5. module.exports = function formatImportPrelude$2(layer, media, supports) {
  6. const parts = [];
  7. if (typeof layer !== "undefined") {
  8. let layerParams = "layer";
  9. if (layer) layerParams = `layer(${layer})`;
  10. parts.push(layerParams);
  11. }
  12. if (typeof supports !== "undefined") parts.push(`supports(${supports})`);
  13. if (typeof media !== "undefined") parts.push(media);
  14. return parts.join(" ");
  15. };
  16. }) });
  17. //#endregion
  18. //#region ../../node_modules/.pnpm/postcss-import@16.1.1_postcss@8.5.6/node_modules/postcss-import/lib/base64-encoded-import.js
  19. var require_base64_encoded_import = /* @__PURE__ */ __commonJS({ "../../node_modules/.pnpm/postcss-import@16.1.1_postcss@8.5.6/node_modules/postcss-import/lib/base64-encoded-import.js": ((exports, module) => {
  20. const formatImportPrelude$1 = require_format_import_prelude();
  21. module.exports = function base64EncodedConditionalImport$1(prelude, conditions) {
  22. if (!conditions?.length) return prelude;
  23. conditions.reverse();
  24. const first = conditions.pop();
  25. let params = `${prelude} ${formatImportPrelude$1(first.layer, first.media, first.supports)}`;
  26. for (const condition of conditions) params = `'data:text/css;base64,${Buffer.from(`@import ${params}`).toString("base64")}' ${formatImportPrelude$1(condition.layer, condition.media, condition.supports)}`;
  27. return params;
  28. };
  29. }) });
  30. //#endregion
  31. //#region ../../node_modules/.pnpm/postcss-import@16.1.1_postcss@8.5.6/node_modules/postcss-import/lib/apply-conditions.js
  32. var require_apply_conditions = /* @__PURE__ */ __commonJS({ "../../node_modules/.pnpm/postcss-import@16.1.1_postcss@8.5.6/node_modules/postcss-import/lib/apply-conditions.js": ((exports, module) => {
  33. const base64EncodedConditionalImport = require_base64_encoded_import();
  34. module.exports = function applyConditions$1(bundle, atRule) {
  35. const firstImportStatementIndex = bundle.findIndex((stmt) => stmt.type === "import");
  36. const lastImportStatementIndex = bundle.findLastIndex((stmt) => stmt.type === "import");
  37. bundle.forEach((stmt, index) => {
  38. if (stmt.type === "charset" || stmt.type === "warning") return;
  39. if (stmt.type === "layer" && (index < lastImportStatementIndex && stmt.conditions?.length || index > firstImportStatementIndex && index < lastImportStatementIndex)) {
  40. stmt.type = "import";
  41. stmt.node = stmt.node.clone({
  42. name: "import",
  43. params: base64EncodedConditionalImport(`'data:text/css;base64,${Buffer.from(stmt.node.toString()).toString("base64")}'`, stmt.conditions)
  44. });
  45. return;
  46. }
  47. if (!stmt.conditions?.length) return;
  48. if (stmt.type === "import") {
  49. stmt.node.params = base64EncodedConditionalImport(stmt.fullUri, stmt.conditions);
  50. return;
  51. }
  52. let nodes;
  53. let parent;
  54. if (stmt.type === "layer") {
  55. nodes = [stmt.node];
  56. parent = stmt.node.parent;
  57. } else {
  58. nodes = stmt.nodes;
  59. parent = nodes[0].parent;
  60. }
  61. const atRules = [];
  62. for (const condition of stmt.conditions) {
  63. if (typeof condition.media !== "undefined") {
  64. const mediaNode = atRule({
  65. name: "media",
  66. params: condition.media,
  67. source: parent.source
  68. });
  69. atRules.push(mediaNode);
  70. }
  71. if (typeof condition.supports !== "undefined") {
  72. const supportsNode = atRule({
  73. name: "supports",
  74. params: `(${condition.supports})`,
  75. source: parent.source
  76. });
  77. atRules.push(supportsNode);
  78. }
  79. if (typeof condition.layer !== "undefined") {
  80. const layerNode = atRule({
  81. name: "layer",
  82. params: condition.layer,
  83. source: parent.source
  84. });
  85. atRules.push(layerNode);
  86. }
  87. }
  88. const outerAtRule = atRules.shift();
  89. const innerAtRule = atRules.reduce((previous, next) => {
  90. previous.append(next);
  91. return next;
  92. }, outerAtRule);
  93. parent.insertBefore(nodes[0], outerAtRule);
  94. nodes.forEach((node) => {
  95. node.parent = void 0;
  96. });
  97. nodes[0].raws.before = nodes[0].raws.before || "\n";
  98. innerAtRule.append(nodes);
  99. stmt.type = "nodes";
  100. stmt.nodes = [outerAtRule];
  101. delete stmt.node;
  102. });
  103. };
  104. }) });
  105. //#endregion
  106. //#region ../../node_modules/.pnpm/postcss-import@16.1.1_postcss@8.5.6/node_modules/postcss-import/lib/apply-raws.js
  107. var require_apply_raws = /* @__PURE__ */ __commonJS({ "../../node_modules/.pnpm/postcss-import@16.1.1_postcss@8.5.6/node_modules/postcss-import/lib/apply-raws.js": ((exports, module) => {
  108. module.exports = function applyRaws$1(bundle) {
  109. bundle.forEach((stmt, index) => {
  110. if (index === 0) return;
  111. if (stmt.parent) {
  112. const { before } = stmt.parent.node.raws;
  113. if (stmt.type === "nodes") stmt.nodes[0].raws.before = before;
  114. else stmt.node.raws.before = before;
  115. } else if (stmt.type === "nodes") stmt.nodes[0].raws.before = stmt.nodes[0].raws.before || "\n";
  116. });
  117. };
  118. }) });
  119. //#endregion
  120. //#region ../../node_modules/.pnpm/postcss-import@16.1.1_postcss@8.5.6/node_modules/postcss-import/lib/apply-styles.js
  121. var require_apply_styles = /* @__PURE__ */ __commonJS({ "../../node_modules/.pnpm/postcss-import@16.1.1_postcss@8.5.6/node_modules/postcss-import/lib/apply-styles.js": ((exports, module) => {
  122. module.exports = function applyStyles$1(bundle, styles) {
  123. styles.nodes = [];
  124. bundle.forEach((stmt) => {
  125. if ([
  126. "charset",
  127. "import",
  128. "layer"
  129. ].includes(stmt.type)) {
  130. stmt.node.parent = void 0;
  131. styles.append(stmt.node);
  132. } else if (stmt.type === "nodes") stmt.nodes.forEach((node) => {
  133. node.parent = void 0;
  134. styles.append(node);
  135. });
  136. });
  137. };
  138. }) });
  139. //#endregion
  140. //#region ../../node_modules/.pnpm/postcss-import@16.1.1_postcss@8.5.6/node_modules/postcss-import/lib/data-url.js
  141. var require_data_url = /* @__PURE__ */ __commonJS({ "../../node_modules/.pnpm/postcss-import@16.1.1_postcss@8.5.6/node_modules/postcss-import/lib/data-url.js": ((exports, module) => {
  142. const anyDataURLRegexp = /^data:text\/css(?:;(base64|plain))?,/i;
  143. const base64DataURLRegexp = /^data:text\/css;base64,/i;
  144. const plainDataURLRegexp = /^data:text\/css;plain,/i;
  145. function isValid(url) {
  146. return anyDataURLRegexp.test(url);
  147. }
  148. function contents(url) {
  149. if (base64DataURLRegexp.test(url)) return Buffer.from(url.slice(21), "base64").toString();
  150. if (plainDataURLRegexp.test(url)) return decodeURIComponent(url.slice(20));
  151. return decodeURIComponent(url.slice(14));
  152. }
  153. module.exports = {
  154. isValid,
  155. contents
  156. };
  157. }) });
  158. //#endregion
  159. //#region ../../node_modules/.pnpm/postcss-import@16.1.1_postcss@8.5.6/node_modules/postcss-import/lib/parse-statements.js
  160. var require_parse_statements = /* @__PURE__ */ __commonJS({ "../../node_modules/.pnpm/postcss-import@16.1.1_postcss@8.5.6/node_modules/postcss-import/lib/parse-statements.js": ((exports, module) => {
  161. const valueParser = require_lib();
  162. const { stringify } = valueParser;
  163. module.exports = function parseStatements$1(result, styles, conditions, from) {
  164. const statements = [];
  165. let nodes = [];
  166. let encounteredNonImportNodes = false;
  167. styles.each((node) => {
  168. let stmt;
  169. if (node.type === "atrule") {
  170. if (node.name === "import") stmt = parseImport(result, node, conditions, from);
  171. else if (node.name === "charset") stmt = parseCharset(result, node, conditions, from);
  172. else if (node.name === "layer" && !encounteredNonImportNodes && !node.nodes) stmt = parseLayer(result, node, conditions, from);
  173. } else if (node.type !== "comment") encounteredNonImportNodes = true;
  174. if (stmt) {
  175. if (nodes.length) {
  176. statements.push({
  177. type: "nodes",
  178. nodes,
  179. conditions: [...conditions],
  180. from
  181. });
  182. nodes = [];
  183. }
  184. statements.push(stmt);
  185. } else nodes.push(node);
  186. });
  187. if (nodes.length) statements.push({
  188. type: "nodes",
  189. nodes,
  190. conditions: [...conditions],
  191. from
  192. });
  193. return statements;
  194. };
  195. function parseCharset(result, atRule, conditions, from) {
  196. if (atRule.prev()) return result.warn("@charset must precede all other statements", { node: atRule });
  197. return {
  198. type: "charset",
  199. node: atRule,
  200. conditions: [...conditions],
  201. from
  202. };
  203. }
  204. function parseImport(result, atRule, conditions, from) {
  205. let prev = atRule.prev();
  206. if (prev) do {
  207. if (prev.type === "comment" || prev.type === "atrule" && prev.name === "import") {
  208. prev = prev.prev();
  209. continue;
  210. }
  211. break;
  212. } while (prev);
  213. if (prev) do {
  214. if (prev.type === "comment" || prev.type === "atrule" && (prev.name === "charset" || prev.name === "layer" && !prev.nodes)) {
  215. prev = prev.prev();
  216. continue;
  217. }
  218. return result.warn("@import must precede all other statements (besides @charset or empty @layer)", { node: atRule });
  219. } while (prev);
  220. 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 });
  221. const params = valueParser(atRule.params).nodes;
  222. const stmt = {
  223. type: "import",
  224. uri: "",
  225. fullUri: "",
  226. node: atRule,
  227. conditions: [...conditions],
  228. from
  229. };
  230. let layer;
  231. let media;
  232. let supports;
  233. for (let i = 0; i < params.length; i++) {
  234. const node = params[i];
  235. if (node.type === "space" || node.type === "comment") continue;
  236. if (node.type === "string") {
  237. if (stmt.uri) return result.warn(`Multiple url's in '${atRule.toString()}'`, { node: atRule });
  238. if (!node.value) return result.warn(`Unable to find uri in '${atRule.toString()}'`, { node: atRule });
  239. stmt.uri = node.value;
  240. stmt.fullUri = stringify(node);
  241. continue;
  242. }
  243. if (node.type === "function" && /^url$/i.test(node.value)) {
  244. if (stmt.uri) return result.warn(`Multiple url's in '${atRule.toString()}'`, { node: atRule });
  245. if (!node.nodes?.[0]?.value) return result.warn(`Unable to find uri in '${atRule.toString()}'`, { node: atRule });
  246. stmt.uri = node.nodes[0].value;
  247. stmt.fullUri = stringify(node);
  248. continue;
  249. }
  250. if (!stmt.uri) return result.warn(`Unable to find uri in '${atRule.toString()}'`, { node: atRule });
  251. if ((node.type === "word" || node.type === "function") && /^layer$/i.test(node.value)) {
  252. if (typeof layer !== "undefined") return result.warn(`Multiple layers in '${atRule.toString()}'`, { node: atRule });
  253. if (typeof supports !== "undefined") return result.warn(`layers must be defined before support conditions in '${atRule.toString()}'`, { node: atRule });
  254. if (node.nodes) layer = stringify(node.nodes);
  255. else layer = "";
  256. continue;
  257. }
  258. if (node.type === "function" && /^supports$/i.test(node.value)) {
  259. if (typeof supports !== "undefined") return result.warn(`Multiple support conditions in '${atRule.toString()}'`, { node: atRule });
  260. supports = stringify(node.nodes);
  261. continue;
  262. }
  263. media = stringify(params.slice(i));
  264. break;
  265. }
  266. if (!stmt.uri) return result.warn(`Unable to find uri in '${atRule.toString()}'`, { node: atRule });
  267. if (typeof media !== "undefined" || typeof layer !== "undefined" || typeof supports !== "undefined") stmt.conditions.push({
  268. layer,
  269. media,
  270. supports
  271. });
  272. return stmt;
  273. }
  274. function parseLayer(result, atRule, conditions, from) {
  275. return {
  276. type: "layer",
  277. node: atRule,
  278. conditions: [...conditions],
  279. from
  280. };
  281. }
  282. }) });
  283. //#endregion
  284. //#region ../../node_modules/.pnpm/postcss-import@16.1.1_postcss@8.5.6/node_modules/postcss-import/lib/process-content.js
  285. var require_process_content = /* @__PURE__ */ __commonJS({ "../../node_modules/.pnpm/postcss-import@16.1.1_postcss@8.5.6/node_modules/postcss-import/lib/process-content.js": ((exports, module) => {
  286. const path$2 = __require("path");
  287. let sugarss;
  288. module.exports = function processContent$1(result, content, filename, options, postcss) {
  289. const { plugins } = options;
  290. const ext = path$2.extname(filename);
  291. const parserList = [];
  292. if (ext === ".sss") {
  293. if (!sugarss)
  294. /* c8 ignore next 3 */
  295. try {
  296. sugarss = __require("sugarss");
  297. } catch {}
  298. if (sugarss) return runPostcss(postcss, content, filename, plugins, [sugarss]);
  299. }
  300. if (result.opts.syntax?.parse) parserList.push(result.opts.syntax.parse);
  301. if (result.opts.parser) parserList.push(result.opts.parser);
  302. parserList.push(null);
  303. return runPostcss(postcss, content, filename, plugins, parserList);
  304. };
  305. function runPostcss(postcss, content, filename, plugins, parsers, index) {
  306. if (!index) index = 0;
  307. return postcss(plugins).process(content, {
  308. from: filename,
  309. parser: parsers[index]
  310. }).catch((err) => {
  311. index++;
  312. if (index === parsers.length) throw err;
  313. return runPostcss(postcss, content, filename, plugins, parsers, index);
  314. });
  315. }
  316. }) });
  317. //#endregion
  318. //#region ../../node_modules/.pnpm/postcss-import@16.1.1_postcss@8.5.6/node_modules/postcss-import/lib/parse-styles.js
  319. var require_parse_styles = /* @__PURE__ */ __commonJS({ "../../node_modules/.pnpm/postcss-import@16.1.1_postcss@8.5.6/node_modules/postcss-import/lib/parse-styles.js": ((exports, module) => {
  320. const path$1 = __require("path");
  321. const dataURL = require_data_url();
  322. const parseStatements = require_parse_statements();
  323. const processContent = require_process_content();
  324. const resolveId$1 = (id) => id;
  325. const formatImportPrelude = require_format_import_prelude();
  326. async function parseStyles$1(result, styles, options, state, conditions, from, postcss) {
  327. const statements = parseStatements(result, styles, conditions, from);
  328. for (const stmt of statements) {
  329. if (stmt.type !== "import" || !isProcessableURL(stmt.uri)) continue;
  330. if (options.filter && !options.filter(stmt.uri)) continue;
  331. await resolveImportId(result, stmt, options, state, postcss);
  332. }
  333. let charset;
  334. const beforeBundle = [];
  335. const bundle = [];
  336. function handleCharset(stmt) {
  337. if (!charset) charset = stmt;
  338. else if (stmt.node.params.toLowerCase() !== charset.node.params.toLowerCase()) throw stmt.node.error(`Incompatible @charset statements:
  339. ${stmt.node.params} specified in ${stmt.node.source.input.file}
  340. ${charset.node.params} specified in ${charset.node.source.input.file}`);
  341. }
  342. statements.forEach((stmt) => {
  343. if (stmt.type === "charset") handleCharset(stmt);
  344. else if (stmt.type === "import") if (stmt.children) stmt.children.forEach((child, index) => {
  345. if (child.type === "import") beforeBundle.push(child);
  346. else if (child.type === "layer") beforeBundle.push(child);
  347. else if (child.type === "charset") handleCharset(child);
  348. else bundle.push(child);
  349. if (index === 0) child.parent = stmt;
  350. });
  351. else beforeBundle.push(stmt);
  352. else if (stmt.type === "layer") beforeBundle.push(stmt);
  353. else if (stmt.type === "nodes") bundle.push(stmt);
  354. });
  355. return charset ? [charset, ...beforeBundle.concat(bundle)] : beforeBundle.concat(bundle);
  356. }
  357. async function resolveImportId(result, stmt, options, state, postcss) {
  358. if (dataURL.isValid(stmt.uri)) {
  359. stmt.children = await loadImportContent(result, stmt, stmt.uri, options, state, postcss);
  360. return;
  361. } 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`);
  362. const atRule = stmt.node;
  363. let sourceFile;
  364. if (atRule.source?.input?.file) sourceFile = atRule.source.input.file;
  365. const base = sourceFile ? path$1.dirname(atRule.source.input.file) : options.root;
  366. const paths = [await options.resolve(stmt.uri, base, options, atRule)].flat();
  367. const resolved = await Promise.all(paths.map((file) => {
  368. return !path$1.isAbsolute(file) ? resolveId$1(file, base, options, atRule) : file;
  369. }));
  370. resolved.forEach((file) => {
  371. result.messages.push({
  372. type: "dependency",
  373. plugin: "postcss-import",
  374. file,
  375. parent: sourceFile
  376. });
  377. });
  378. stmt.children = (await Promise.all(resolved.map((file) => {
  379. return loadImportContent(result, stmt, file, options, state, postcss);
  380. }))).flat().filter((x) => !!x);
  381. }
  382. async function loadImportContent(result, stmt, filename, options, state, postcss) {
  383. const atRule = stmt.node;
  384. const { conditions, from } = stmt;
  385. const stmtDuplicateCheckKey = conditions.map((condition) => formatImportPrelude(condition.layer, condition.media, condition.supports)).join(":");
  386. if (options.skipDuplicates) {
  387. if (state.importedFiles[filename]?.[stmtDuplicateCheckKey]) return;
  388. if (!state.importedFiles[filename]) state.importedFiles[filename] = {};
  389. state.importedFiles[filename][stmtDuplicateCheckKey] = true;
  390. }
  391. if (from.includes(filename)) return;
  392. const content = await options.load(filename, options);
  393. if (content.trim() === "" && options.warnOnEmpty) {
  394. result.warn(`${filename} is empty`, { node: atRule });
  395. return;
  396. }
  397. if (options.skipDuplicates && state.hashFiles[content]?.[stmtDuplicateCheckKey]) return;
  398. const importedResult = await processContent(result, content, filename, options, postcss);
  399. const styles = importedResult.root;
  400. result.messages = result.messages.concat(importedResult.messages);
  401. if (options.skipDuplicates) {
  402. if (!styles.some((child) => {
  403. return child.type === "atrule" && child.name === "import";
  404. })) {
  405. if (!state.hashFiles[content]) state.hashFiles[content] = {};
  406. state.hashFiles[content][stmtDuplicateCheckKey] = true;
  407. }
  408. }
  409. return parseStyles$1(result, styles, options, state, conditions, [...from, filename], postcss);
  410. }
  411. function isProcessableURL(uri) {
  412. if (/^(?:[a-z]+:)?\/\//i.test(uri)) return false;
  413. try {
  414. if (new URL(uri, "https://example.com").search) return false;
  415. } catch {}
  416. return true;
  417. }
  418. module.exports = parseStyles$1;
  419. }) });
  420. //#endregion
  421. //#region ../../node_modules/.pnpm/postcss-import@16.1.1_postcss@8.5.6/node_modules/postcss-import/index.js
  422. var require_postcss_import = /* @__PURE__ */ __commonJS({ "../../node_modules/.pnpm/postcss-import@16.1.1_postcss@8.5.6/node_modules/postcss-import/index.js": ((exports, module) => {
  423. const path = __require("path");
  424. const applyConditions = require_apply_conditions();
  425. const applyRaws = require_apply_raws();
  426. const applyStyles = require_apply_styles();
  427. const loadContent = () => "";
  428. const parseStyles = require_parse_styles();
  429. const resolveId = (id) => id;
  430. function AtImport(options) {
  431. options = {
  432. root: process.cwd(),
  433. path: [],
  434. skipDuplicates: true,
  435. resolve: resolveId,
  436. load: loadContent,
  437. plugins: [],
  438. addModulesDirectories: [],
  439. warnOnEmpty: true,
  440. ...options
  441. };
  442. options.root = path.resolve(options.root);
  443. if (typeof options.path === "string") options.path = [options.path];
  444. if (!Array.isArray(options.path)) options.path = [];
  445. options.path = options.path.map((p) => path.resolve(options.root, p));
  446. return {
  447. postcssPlugin: "postcss-import",
  448. async Once(styles, { result, atRule, postcss }) {
  449. const state = {
  450. importedFiles: {},
  451. hashFiles: {}
  452. };
  453. if (styles.source?.input?.file) state.importedFiles[styles.source.input.file] = {};
  454. if (options.plugins && !Array.isArray(options.plugins)) throw new Error("plugins option must be an array");
  455. const bundle = await parseStyles(result, styles, options, state, [], [], postcss);
  456. applyRaws(bundle);
  457. applyConditions(bundle, atRule);
  458. applyStyles(bundle, styles);
  459. }
  460. };
  461. }
  462. AtImport.postcss = true;
  463. module.exports = AtImport;
  464. }) });
  465. //#endregion
  466. export default require_postcss_import();
  467. export { };