weapp-tailwindcss 5.1.13 → 5.1.15

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (78) hide show
  1. package/dist/auto-2dg_uhEJ.mjs +13 -0
  2. package/dist/bundlers/gulp/frameworks/native/index.d.ts +2 -0
  3. package/dist/bundlers/gulp/index.d.ts +2 -0
  4. package/dist/bundlers/gulp/shared/create-native-framework-plugins.d.ts +2 -0
  5. package/dist/bundlers/shared/generated-css-marker.d.ts +2 -2
  6. package/dist/bundlers/shared/generator-css/local-imports.d.ts +1 -1
  7. package/dist/bundlers/shared/generator-css/source-resolver/postcss-source.d.ts +2 -0
  8. package/dist/bundlers/shared/generator-css/types.d.ts +5 -0
  9. package/dist/bundlers/shared/style-requests.d.ts +1 -0
  10. package/dist/bundlers/vite/bundle-state.d.ts +1 -0
  11. package/dist/bundlers/vite/css-finalizer.d.ts +1 -0
  12. package/dist/bundlers/vite/frameworks/taro/index.d.ts +2 -0
  13. package/dist/bundlers/vite/frameworks/uni-app/index.d.ts +2 -0
  14. package/dist/bundlers/vite/frameworks/uni-app-x/index.d.ts +2 -0
  15. package/dist/bundlers/vite/generate-bundle/bundle-markup-candidates.d.ts +20 -0
  16. package/dist/bundlers/vite/generate-bundle/css-handler-options.d.ts +1 -0
  17. package/dist/bundlers/vite/generate-bundle/remembered-css-replay.d.ts +4 -0
  18. package/dist/bundlers/vite/generate-bundle/root-style-output.d.ts +18 -0
  19. package/dist/bundlers/vite/generate-bundle/sfc-style-source.d.ts +2 -1
  20. package/dist/bundlers/vite/generate-bundle/source-candidate-source.d.ts +1 -0
  21. package/dist/bundlers/vite/generate-bundle/types.d.ts +7 -0
  22. package/dist/bundlers/vite/serve-css-generation.d.ts +3 -2
  23. package/dist/bundlers/vite/serve-root-import-shell.d.ts +8 -0
  24. package/dist/bundlers/vite/shared/create-framework-plugins.d.ts +1 -0
  25. package/dist/bundlers/vite/source-candidates.d.ts +3 -0
  26. package/dist/bundlers/vite/watch-css-post.d.ts +10 -0
  27. package/dist/bundlers/webpack/BaseUnifiedPlugin/shared.d.ts +6 -0
  28. package/dist/bundlers/webpack/BaseUnifiedPlugin/v5-assets/css-source-resolvers.d.ts +1 -0
  29. package/dist/bundlers/webpack/BaseUnifiedPlugin/v5-assets/pipeline-helpers.d.ts +2 -0
  30. package/dist/bundlers/webpack/loaders/runtime-registry.d.ts +1 -0
  31. package/dist/bundlers/webpack/loaders/weapp-tw-css-generation-loader.d.ts +4 -0
  32. package/dist/bundlers/webpack/loaders/weapp-tw-css-import-rewrite-loader.d.ts +3 -0
  33. package/dist/{context-xSJE588m.mjs → context-BgGWVAmN.mjs} +5 -3
  34. package/dist/{context-DRRgW7i2.js → context-VeFq_8vW.js} +5 -3
  35. package/dist/core.js +1 -1
  36. package/dist/core.mjs +1 -1
  37. package/dist/css-macro.mjs +1 -1
  38. package/dist/{generator-CS10c9g1.js → generator-CEnUsjed.js} +17 -3
  39. package/dist/{generator-BvPcmqxU.mjs → generator-CEo920So.mjs} +18 -4
  40. package/dist/generator.js +1 -1
  41. package/dist/generator.mjs +1 -1
  42. package/dist/{gulp-DNZZvUMq.js → gulp-3m1dAiig.js} +92 -54
  43. package/dist/{gulp-BEOzXrbp.mjs → gulp-DP71z1jG.mjs} +92 -54
  44. package/dist/gulp.js +1 -1
  45. package/dist/gulp.mjs +1 -1
  46. package/dist/{hmr-timing-hRhRAjYV.mjs → hmr-timing-1aS6--U7.mjs} +272 -56
  47. package/dist/{hmr-timing-DW1g3zjl.js → hmr-timing-B8p4f0ca.js} +323 -53
  48. package/dist/index.js +4 -4
  49. package/dist/index.mjs +4 -4
  50. package/dist/postcss.js +1 -1
  51. package/dist/postcss.mjs +1 -1
  52. package/dist/presets.js +1 -1
  53. package/dist/presets.mjs +1 -1
  54. package/dist/rspack.js +1 -1
  55. package/dist/rspack.mjs +1 -1
  56. package/dist/shared/mpx.d.ts +4 -1
  57. package/dist/{source-candidate-scan-signature-CMgu5bJk.js → source-candidate-scan-signature-BAahhiwb.js} +20 -139
  58. package/dist/{source-candidate-scan-signature-t4XKAQ04.mjs → source-candidate-scan-signature-Cf7259PR.mjs} +21 -104
  59. package/dist/tailwindcss/candidates.d.ts +4 -0
  60. package/dist/{tailwindcss-z9JMF-qU.js → tailwindcss-KBYPJ2DW.js} +1 -1
  61. package/dist/{tailwindcss-DZT_pWrd.mjs → tailwindcss-xs704TRw.mjs} +1 -1
  62. package/dist/{transform-D5JUgMpE.mjs → transform-B_KM9sLX.mjs} +47 -5
  63. package/dist/{transform-COFRlmDF.js → transform-CcYptivi.js} +47 -5
  64. package/dist/uni-app-x/component-local-style.d.ts +1 -0
  65. package/dist/uni-app-x/style-asset/style-value.d.ts +1 -1
  66. package/dist/{vite-DnkObu2L.js → vite-DUVjMduj.js} +807 -320
  67. package/dist/{vite-Tpgi77vE.mjs → vite-nXZEiwG0.mjs} +757 -270
  68. package/dist/vite.js +1 -1
  69. package/dist/vite.mjs +1 -1
  70. package/dist/weapp-tw-css-generation-loader.js +12 -0
  71. package/dist/weapp-tw-css-import-rewrite-loader-DNk0IxAt.js +10198 -0
  72. package/dist/weapp-tw-css-import-rewrite-loader.js +6 -8209
  73. package/dist/{webpack-CTYm19zA.mjs → webpack-C_UUFRgj.mjs} +228 -58
  74. package/dist/{webpack-CzXjfvYS.js → webpack-nppysF4B.js} +240 -70
  75. package/dist/webpack.js +1 -1
  76. package/dist/webpack.mjs +1 -1
  77. package/package.json +11 -3
  78. package/dist/auto-CrJJc5rK.mjs +0 -13
@@ -1,12 +1,12 @@
1
1
  const require_rolldown_runtime = require("./rolldown-runtime-emK7D4bc.js");
2
- const require_generator = require("./generator-CS10c9g1.js");
3
- const require_tailwindcss = require("./tailwindcss-z9JMF-qU.js");
2
+ const require_generator = require("./generator-CEnUsjed.js");
3
+ const require_tailwindcss = require("./tailwindcss-KBYPJ2DW.js");
4
4
  const require_utils = require("./utils-CuKLf1Zv.js");
5
5
  const require_wxml = require("./wxml-Ce10eREX.js");
6
- const require_context = require("./context-DRRgW7i2.js");
6
+ const require_context = require("./context-VeFq_8vW.js");
7
7
  const require_defaults = require("./defaults.js");
8
- const require_hmr_timing = require("./hmr-timing-DW1g3zjl.js");
9
- const require_source_candidate_scan_signature = require("./source-candidate-scan-signature-CMgu5bJk.js");
8
+ const require_hmr_timing = require("./hmr-timing-B8p4f0ca.js");
9
+ const require_source_candidate_scan_signature = require("./source-candidate-scan-signature-BAahhiwb.js");
10
10
  let node_fs = require("node:fs");
11
11
  node_fs = require_rolldown_runtime.__toESM(node_fs);
12
12
  let node_path = require("node:path");
@@ -27,13 +27,13 @@ function getCacheKey(filename) {
27
27
  }
28
28
  function stripResourceQuery(resource) {
29
29
  if (typeof resource !== "string") return resource;
30
- return require_source_candidate_scan_signature.stripRequestQuery(resource);
30
+ return require_hmr_timing.stripRequestQuery(resource);
31
31
  }
32
32
  function isCssLikeModuleResource(resource, cssMatcher) {
33
33
  if (typeof resource !== "string") return false;
34
34
  const normalizedResource = stripResourceQuery(resource);
35
35
  if (normalizedResource && cssMatcher(normalizedResource)) return true;
36
- if (require_source_candidate_scan_signature.isSourceStyleRequest(resource)) return true;
36
+ if (require_hmr_timing.isSourceStyleRequest(resource)) return true;
37
37
  return false;
38
38
  }
39
39
  function hasLoaderEntry(entries, target) {
@@ -73,17 +73,27 @@ function resolveSingleActiveWebpackCssResource(assetResources, activeWebpackAsse
73
73
  const activeAssetResourceMatches = [...assetResources ?? []].map((sourceFile) => node_path.default.resolve(sourceFile)).filter((sourceFile) => activeWebpackAssetResourceFiles.has(sourceFile)).sort();
74
74
  return activeAssetResourceMatches.length === 1 ? activeAssetResourceMatches[0] : void 0;
75
75
  }
76
- function createWebpackCssAssetResourceMap(chunks, chunkGraph, cssMatcher, normalizeResource) {
76
+ function resolveWebpackCssModuleIdentifierResource(module) {
77
+ if (!module.type?.startsWith("css/") || typeof module.identifier !== "function") return;
78
+ const identifier = module.identifier();
79
+ const request = identifier.startsWith("css|") ? identifier.slice(4) : identifier;
80
+ const resourceWithMetadata = request.slice(request.lastIndexOf("!") + 1);
81
+ const metadataIndex = resourceWithMetadata.indexOf("|");
82
+ return metadataIndex === -1 ? resourceWithMetadata : resourceWithMetadata.slice(0, metadataIndex);
83
+ }
84
+ function createWebpackCssAssetResourceMapInternal(chunks, chunkGraph, cssMatcher, normalizeResource, onlyUnambiguousCssAssets) {
77
85
  const resourcesByAsset = /* @__PURE__ */ new Map();
78
86
  if (!chunkGraph?.getChunkModulesIterable) return resourcesByAsset;
79
87
  const collectModuleResources = (module, resources, seen = /* @__PURE__ */ new Set()) => {
80
88
  if (!module || seen.has(module)) return;
81
89
  seen.add(module);
82
- for (const candidate of [
90
+ const candidates = [
83
91
  module.resource,
84
92
  module.request,
85
93
  module.userRequest
86
- ]) {
94
+ ];
95
+ if (onlyUnambiguousCssAssets) candidates.push(resolveWebpackCssModuleIdentifierResource(module));
96
+ for (const candidate of candidates) {
87
97
  if (typeof candidate !== "string") continue;
88
98
  const normalized = normalizeResource(candidate, module);
89
99
  if (normalized) resources.add(normalized);
@@ -103,7 +113,7 @@ function createWebpackCssAssetResourceMap(chunks, chunkGraph, cssMatcher, normal
103
113
  };
104
114
  for (const chunk of chunks) {
105
115
  const cssFiles = toChunkFiles(chunk.files).filter((file) => cssMatcher(file));
106
- if (cssFiles.length === 0) continue;
116
+ if (cssFiles.length === 0 || onlyUnambiguousCssAssets && cssFiles.length !== 1) continue;
107
117
  const modules = chunkGraph.getChunkModulesIterable(chunk);
108
118
  if (!modules) continue;
109
119
  const cssResources = /* @__PURE__ */ new Set();
@@ -113,6 +123,12 @@ function createWebpackCssAssetResourceMap(chunks, chunkGraph, cssMatcher, normal
113
123
  }
114
124
  return resourcesByAsset;
115
125
  }
126
+ function createWebpackCssAssetResourceMap(chunks, chunkGraph, cssMatcher, normalizeResource) {
127
+ return createWebpackCssAssetResourceMapInternal(chunks, chunkGraph, cssMatcher, normalizeResource, false);
128
+ }
129
+ function createWebpackDirectCssAssetResourceMap(chunks, chunkGraph, cssMatcher, normalizeResource) {
130
+ return createWebpackCssAssetResourceMapInternal(chunks, chunkGraph, cssMatcher, normalizeResource, true);
131
+ }
116
132
  function createAssetHashByChunkMap(chunks) {
117
133
  const partsByFile = /* @__PURE__ */ new Map();
118
134
  for (const chunk of chunks) {
@@ -315,8 +331,15 @@ function resolveWebpackGeneratorRawSource(rawSource, cssHandlerOptions) {
315
331
  }
316
332
  function shouldConsumeWebpackLoaderGeneratedCss(options) {
317
333
  if (!options.shouldRegenerateExplicitTailwindV4CssSource) return true;
318
- if (options.watchMode === true && options.loaderGeneratedClassSet && options.sourceCandidates && (hasMissingRuntimeCandidates(options.loaderGeneratedClassSet, options.sourceCandidates) || hasStaleRuntimeCandidates(options.loaderGeneratedClassSet, options.sourceCandidates))) return false;
319
- return options.hasBundlerGeneratedCssMarker;
334
+ if (options.watchMode === true && options.loaderGeneratedClassSet && options.sourceCandidates && hasStaleRuntimeCandidates(options.loaderGeneratedClassSet, options.sourceCandidates)) return false;
335
+ if (options.hasBundlerGeneratedCssMarker) return true;
336
+ if (options.watchMode === true && options.loaderGeneratedClassSet && options.sourceCandidates && hasMissingRuntimeCandidates(options.loaderGeneratedClassSet, options.sourceCandidates)) return false;
337
+ return Boolean(options.allowMarkerlessRegistryMatch && options.loaderGeneratedClassSet && options.sourceCandidates && !hasMissingRuntimeCandidates(options.loaderGeneratedClassSet, options.sourceCandidates) && !hasStaleRuntimeCandidates(options.loaderGeneratedClassSet, options.sourceCandidates));
338
+ }
339
+ function hasDeferredWebpackGeneratedCss(source, generatedClassSets) {
340
+ const selectors = require_hmr_timing.collectRawSourceClassSelectors(source);
341
+ for (const classSet of generatedClassSets) for (const candidate of classSet) if (selectors.has(candidate)) return true;
342
+ return false;
320
343
  }
321
344
  function hasUsableWebpackGeneratorCssSources(cssSources) {
322
345
  return Array.isArray(cssSources) && cssSources.some((source) => typeof source?.css === "string" && source.css.length > 0);
@@ -405,7 +428,8 @@ function isWebpackKeyframesRule(rule) {
405
428
  }
406
429
  function collectWebpackBareSelectorUserCss(source) {
407
430
  try {
408
- const root = _weapp_tailwindcss_postcss.postcss.parse(require_generator.removeTailwindSourceDirectives(require_generator.stripTailwindSourceMediaFragments(require_generator.removeTailwindV4GeneratorAtRules(source)), { importFallback: true }));
431
+ const normalizedSource = require_generator.removeTailwindSourceDirectives(require_generator.stripTailwindSourceMediaFragments(require_generator.removeTailwindV4GeneratorAtRules(source)), { importFallback: true });
432
+ const root = _weapp_tailwindcss_postcss.postcss.parse(normalizedSource);
409
433
  let changed = false;
410
434
  root.walkAtRules((rule) => {
411
435
  if (rule.name === "import" || rule.name === "font-face" || rule.name.endsWith("keyframes")) {
@@ -425,7 +449,7 @@ function collectWebpackBareSelectorUserCss(source) {
425
449
  changed = true;
426
450
  }
427
451
  });
428
- return changed ? root.toString() : source;
452
+ return changed ? root.toString() : normalizedSource;
429
453
  } catch {
430
454
  return "";
431
455
  }
@@ -618,7 +642,7 @@ function unescapeCssIdentifier(value) {
618
642
  }
619
643
  function collectGeneratedCssRuntimeCandidates(source) {
620
644
  const candidates = /* @__PURE__ */ new Set();
621
- if (require_source_candidate_scan_signature.hasBundlerGeneratedCssMarker(source) || !require_generator.hasTailwindGeneratedCss(source) && !require_generator.hasTailwindGeneratedCssMarkers(source)) return candidates;
645
+ if (require_hmr_timing.hasBundlerGeneratedCssMarker(source) || !require_generator.hasTailwindGeneratedCss(source) && !require_generator.hasTailwindGeneratedCssMarkers(source)) return candidates;
622
646
  try {
623
647
  _weapp_tailwindcss_postcss.postcss.parse(source).walkRules((rule) => {
624
648
  for (const selector of rule.selectors) for (const match of selector.matchAll(/\.((?:\\.|[\w\u00A0-\uFFFF-])(?:\\.|[\w\u00A0-\uFFFF-])*)/g)) {
@@ -705,7 +729,9 @@ function createWebpackGeneratorUserCssSourceAppend(...sources) {
705
729
  let css = "";
706
730
  const usedParts = [];
707
731
  for (const source of parts) {
708
- const nextCss = css.trim().length > 0 ? (0, _weapp_tailwindcss_postcss.filterExistingCssRules)(css, source.css) : source.css;
732
+ const merged = css.trim().length > 0 ? (0, _weapp_tailwindcss_postcss.mergeCoveredCssRuleDeclarations)(css, source.css) : void 0;
733
+ if (merged?.changed) css = merged.baseCss;
734
+ const nextCss = css.trim().length > 0 ? (0, _weapp_tailwindcss_postcss.filterExistingCssRules)(css, merged?.css ?? source.css) : source.css;
709
735
  if (!(nextCss.trim().length > 0)) continue;
710
736
  css = require_hmr_timing.createCssSourceOrderAppend(css, nextCss);
711
737
  usedParts.push(source);
@@ -851,10 +877,10 @@ function finalizeTracedWebpackCssAsset(css, cssHandlerOptions, options) {
851
877
  function finalizeWebpackCssAssetSource(source, compilerOptions, isWebGeneratorTarget, options = {}) {
852
878
  const styleOptions = require_context.resolveStyleOptionsFromContext(compilerOptions);
853
879
  if (isWebGeneratorTarget) {
854
- if (options.generatedCss === true) return stripTrailingLineWhitespace(require_generator.stripUnmatchedTailwindSourceMediaCloseFragments(require_generator.stripTailwindSourceMediaFragments(require_source_candidate_scan_signature.stripBundlerGeneratedCssMarkers(source))));
855
- return stripTrailingLineWhitespace(require_generator.stripUnmatchedTailwindSourceMediaCloseFragments(require_generator.stripTailwindSourceMediaFragments(require_generator.removeTailwindV4GeneratorAtRules(require_generator.removeTailwindSourceDirectives(require_source_candidate_scan_signature.stripBundlerGeneratedCssMarkers(source), { importFallback: true })))));
880
+ if (options.generatedCss === true) return stripTrailingLineWhitespace(require_generator.stripUnmatchedTailwindSourceMediaCloseFragments(require_generator.stripTailwindSourceMediaFragments(require_hmr_timing.stripBundlerGeneratedCssMarkers(source))));
881
+ return stripTrailingLineWhitespace(require_generator.stripUnmatchedTailwindSourceMediaCloseFragments(require_generator.stripTailwindSourceMediaFragments(require_generator.removeTailwindV4GeneratorAtRules(require_generator.removeTailwindSourceDirectives(require_hmr_timing.stripBundlerGeneratedCssMarkers(source), { importFallback: true })))));
856
882
  }
857
- let finalized = require_generator.removeTailwindSourceDirectives(require_source_candidate_scan_signature.stripBundlerGeneratedCssMarkers(source), { importFallback: true });
883
+ let finalized = require_generator.removeTailwindSourceDirectives(require_hmr_timing.stripBundlerGeneratedCssMarkers(source), { importFallback: true });
858
884
  if (options.generatedCss !== true) {
859
885
  finalized = (0, _weapp_tailwindcss_postcss.finalizeMiniProgramCss)(finalized, {
860
886
  cssPreflight: false,
@@ -883,7 +909,7 @@ function finalizeWebpackCssAssetSource(source, compilerOptions, isWebGeneratorTa
883
909
  function finalizeWebpackCssAssetOutputSource(source, compilerOptions, isWebGeneratorTarget) {
884
910
  if (isWebGeneratorTarget) return source;
885
911
  const styleOptions = require_context.resolveStyleOptionsFromContext(compilerOptions);
886
- return (0, _weapp_tailwindcss_postcss.stripMiniProgramCssSpecificityPlaceholders)(require_generator.removeMiniProgramHoverSelectors(dedupeMiniProgramPreflightSelectorRules(source), styleOptions.cssRemoveHoverPseudoClass));
912
+ return (0, _weapp_tailwindcss_postcss.stripMiniProgramCssSpecificityPlaceholders)(require_generator.removeMiniProgramHoverSelectors((0, _weapp_tailwindcss_postcss.dedupeCoveredCssRules)(dedupeMiniProgramPreflightSelectorRules(source)), styleOptions.cssRemoveHoverPseudoClass));
887
913
  }
888
914
  function collectWebpackJsRuntimeCandidatesFromAssets(options) {
889
915
  if (options.isWebGeneratorTarget) return;
@@ -974,7 +1000,7 @@ function collectMainImportedCssFiles(compilation, cssAssetFiles, cssMatcher, isM
974
1000
  return files;
975
1001
  }
976
1002
  function createWebpackCssSourceResolvers(options) {
977
- const { activeWebpackAssetResourceFiles, appType, compilerOptions, compilation, cssAssetFiles, cssAssetResources, cssHandlerOptionsCache, cssSources, cssUserHandlerOptionsCache, groupedCssEntriesLength, singleCssAssetFile, isWebGeneratorTarget, outputDir, runtimeState } = options;
1003
+ const { activeWebpackAssetResourceFiles, appType, compilerOptions, compilation, cssAssetFiles, cssAssetResources, directCssAssetResources, cssHandlerOptionsCache, cssSources, cssUserHandlerOptionsCache, groupedCssEntriesLength, singleCssAssetFile, isWebGeneratorTarget, outputDir, runtimeState } = options;
978
1004
  const hasConfiguredTailwindV4SourceRoots = () => {
979
1005
  const tailwindOptions = require_generator.resolveTailwindcssOptions(runtimeState.tailwindRuntime.options);
980
1006
  return (tailwindOptions?.v4?.cssEntries?.length ?? 0) > 0 || (tailwindOptions?.v4?.cssSources?.length ?? 0) > 0;
@@ -991,7 +1017,7 @@ function createWebpackCssSourceResolvers(options) {
991
1017
  cwd: compilerOptions.tailwindcssBasedir
992
1018
  });
993
1019
  const isConfiguredMainCssEntryFile = (sourceFile) => configuredMainCssEntryFiles.some((entry) => node_path.default.resolve(entry) === node_path.default.resolve(sourceFile));
994
- const isCssSourceAllowedForOutput = (file, sourceFile) => !isConfiguredMainCssEntryFile(sourceFile) || scoreCssSourceOutputMatch(file, sourceFile) > 0;
1020
+ const isCssSourceAllowedForOutput = (file, sourceFile) => !isConfiguredMainCssEntryFile(sourceFile) || directCssAssetResources.get(file)?.has(sourceFile) === true || scoreCssSourceOutputMatch(file, sourceFile) > 0;
995
1021
  const inferredMainCssFiles = new Set([...inferWebpackMainCssFiles(compilation.chunks, compilerOptions.cssMatcher, {
996
1022
  mainSourceFiles: new Set(configuredMainCssEntryFiles),
997
1023
  resourcesByAsset: cssAssetResources
@@ -1032,6 +1058,12 @@ function createWebpackCssSourceResolvers(options) {
1032
1058
  return resolveConfiguredMainCssSourceFile(file);
1033
1059
  }
1034
1060
  const resourceMatches = [...assetResources ?? []].filter((sourceFile) => cssSources.has(sourceFile)).filter((sourceFile) => isCssSourceAllowedForOutput(file, sourceFile)).sort();
1061
+ const configuredResourceMatches = resourceMatches.filter((sourceFile) => configuredCssEntryFiles.some((entry) => node_path.default.resolve(entry) === node_path.default.resolve(sourceFile)));
1062
+ if (configuredResourceMatches.length === 1) {
1063
+ const sourceFile = configuredResourceMatches[0];
1064
+ activeWebpackCssSourceFiles.add(sourceFile);
1065
+ return sourceFile;
1066
+ }
1035
1067
  if (resourceMatches.length === 1) {
1036
1068
  const sourceFile = resourceMatches[0];
1037
1069
  activeWebpackCssSourceFiles.add(sourceFile);
@@ -1517,7 +1549,11 @@ async function refreshWebpackSourceCandidates(options) {
1517
1549
  if (!sourceScan || !sourceScan.explicit && !sourceScan.entries?.length && !sourceScan.inlineCandidates) return;
1518
1550
  return options.scanCache.resolve({
1519
1551
  changedFiles: options.watchChangedFiles,
1520
- collector: require_hmr_timing.createSourceCandidateStore({ bareArbitraryValues: options.compilerOptions.arbitraryValues?.bareArbitraryValues }),
1552
+ collector: require_hmr_timing.createSourceCandidateStore({
1553
+ bareArbitraryValues: options.compilerOptions.arbitraryValues?.bareArbitraryValues,
1554
+ customAttributesEntities: options.compilerOptions.customAttributesEntities,
1555
+ disabledDefaultTemplateHandler: options.compilerOptions.disabledDefaultTemplateHandler
1556
+ }),
1521
1557
  outDir: options.outputDir,
1522
1558
  root,
1523
1559
  sourceScan,
@@ -1578,6 +1614,10 @@ function setupWebpackV5ProcessAssetsHook(options) {
1578
1614
  appType,
1579
1615
  cssMatcher: compilerOptions.cssMatcher
1580
1616
  }));
1617
+ const directCssAssetResources = createWebpackDirectCssAssetResourceMap(compilation.chunks, compilation.chunkGraph, compilerOptions.cssMatcher, (resource, issuer) => resolveWebpackCssAssetModuleResource(resource, issuer, {
1618
+ appType,
1619
+ cssMatcher: compilerOptions.cssMatcher
1620
+ }));
1581
1621
  const watchChangedFiles = new Set([...getWatchChangedFiles?.() ?? []].map((file) => node_path.default.resolve(file)));
1582
1622
  const taskConcurrency = watchMode ? require_hmr_timing.resolveTaskConcurrency(1) : void 0;
1583
1623
  const activeProcessCacheKeys = /* @__PURE__ */ new Set();
@@ -1598,6 +1638,7 @@ function setupWebpackV5ProcessAssetsHook(options) {
1598
1638
  compilation,
1599
1639
  cssAssetFiles: entries.map(([file]) => file),
1600
1640
  cssAssetResources,
1641
+ directCssAssetResources,
1601
1642
  cssHandlerOptionsCache,
1602
1643
  cssSources,
1603
1644
  cssUserHandlerOptionsCache,
@@ -1858,7 +1899,7 @@ function setupWebpackV5ProcessAssetsHook(options) {
1858
1899
  hasTailwindGeneratedAssetCss = hasGeneratedCssMarker;
1859
1900
  } else {
1860
1901
  const source = readCurrentProcessedRawSource();
1861
- hasGeneratedCssMarker = require_source_candidate_scan_signature.hasBundlerGeneratedCssMarker(source);
1902
+ hasGeneratedCssMarker = require_hmr_timing.hasBundlerGeneratedCssMarker(source);
1862
1903
  hasTailwindGeneratedAssetCss = require_generator.hasTailwindGeneratedCss(source) || require_generator.hasTailwindGeneratedCssMarkers(source);
1863
1904
  }
1864
1905
  const hasProcessedAssetTailwindDirectives = () => {
@@ -1898,8 +1939,16 @@ function setupWebpackV5ProcessAssetsHook(options) {
1898
1939
  },
1899
1940
  transform: async () => {
1900
1941
  const source = readCurrentProcessedRawSource();
1901
- const processedBareSelectorSourceCss = processedSourceCss ?? (hasTailwindGeneratedAssetCss ? removeWebpackTailwindGeneratedAssetCss(source) : void 0);
1902
- const handledCss = hasTailwindGeneratedAssetCss && !hasGeneratedCssMarker ? isWebGeneratorTarget ? source : (await compilerOptions.styleHandler(source, cssHandlerOptionsForProcessedAsset)).css : source;
1942
+ const missingProcessedLoaderGeneratedCss = isWebGeneratorTarget && processedLoaderGeneratedCss ? (0, _weapp_tailwindcss_postcss.filterExistingCssRules)(source, require_hmr_timing.stripBundlerGeneratedCssMarkers(processedLoaderGeneratedCss.css)) : "";
1943
+ const sourceWithLoaderGeneratedCss = missingProcessedLoaderGeneratedCss.trim().length === 0 ? source : createWebpackGeneratorUserCssSourceAppend({
1944
+ css: source,
1945
+ processed: true
1946
+ }, {
1947
+ css: missingProcessedLoaderGeneratedCss,
1948
+ processed: true
1949
+ }).css;
1950
+ const processedBareSelectorSourceCss = processedSourceCss ?? (hasTailwindGeneratedAssetCss ? removeWebpackTailwindGeneratedAssetCss(sourceWithLoaderGeneratedCss) : void 0);
1951
+ const handledCss = hasTailwindGeneratedAssetCss && (!hasGeneratedCssMarker || !isWebGeneratorTarget && hasDeferredWebpackGeneratedCss(source, [...generatedCssSources.values()].map((item) => item.classSet))) ? isWebGeneratorTarget ? sourceWithLoaderGeneratedCss : (await compilerOptions.styleHandler(sourceWithLoaderGeneratedCss, cssHandlerOptionsForProcessedAsset)).css : sourceWithLoaderGeneratedCss;
1903
1952
  const nextCss = stripTrailingLineWhitespace(finalizeCssAssetSource(handledCss, {
1904
1953
  cssPreflight: cssHandlerOptionsForProcessedAsset.isMainChunk,
1905
1954
  generatedCss: hasGeneratedCssMarker || hasTailwindGeneratedAssetCss
@@ -1992,11 +2041,12 @@ function setupWebpackV5ProcessAssetsHook(options) {
1992
2041
  const isConfiguredMainCssSource = sourceFile !== void 0 && configuredMainCssEntryFiles.some((entry) => node_path.default.resolve(entry) === node_path.default.resolve(sourceFile));
1993
2042
  const sourceCssHasTailwindRoot = sourceCss !== void 0 && require_generator.hasTailwindRootDirectives(sourceCss, { importFallback: true });
1994
2043
  const shouldPreserveExistingPreflight = cssHandlerOptions.isMainChunk || !isConfiguredMainCssSource && (isConfiguredCssSource || sourceCssHasTailwindRoot);
1995
- const loaderGeneratedCss = sourceFile && !isWebGeneratorTarget ? generatedCssSources.get(node_path.default.resolve(sourceFile)) : void 0;
2044
+ const loaderGeneratedCss = sourceFile ? generatedCssSources.get(node_path.default.resolve(sourceFile)) : void 0;
1996
2045
  const shouldRegenerateExplicitTailwindV4CssSource = sourceCss !== void 0 && (require_generator.hasTailwindSourceDirectives(sourceCss, { importFallback: true }) || sourceCss.includes("@config"));
1997
2046
  const explicitTailwindV4SourceCandidates = shouldRegenerateExplicitTailwindV4CssSource && sourceCss && sourceFile && webpackSourceCandidates?.getSourceCandidatesForEntries ? await require_tailwindcss.resolveTailwindV4EntriesFromCssCached(sourceCss, node_path.default.dirname(sourceFile)).then((resolved) => resolved?.entries ? webpackSourceCandidates.getSourceCandidatesForEntries(resolved.entries) : void 0) : void 0;
1998
2047
  if (loaderGeneratedCss && shouldConsumeWebpackLoaderGeneratedCss({
1999
- hasBundlerGeneratedCssMarker: require_source_candidate_scan_signature.hasBundlerGeneratedCssMarker(currentRawSource),
2048
+ allowMarkerlessRegistryMatch: configuredCssEntryFiles.length === 1,
2049
+ hasBundlerGeneratedCssMarker: require_hmr_timing.hasBundlerGeneratedCssMarker(currentRawSource),
2000
2050
  loaderGeneratedClassSet: loaderGeneratedCss.classSet,
2001
2051
  sourceCandidates: explicitTailwindV4SourceCandidates,
2002
2052
  shouldRegenerateExplicitTailwindV4CssSource,
@@ -2007,11 +2057,11 @@ function setupWebpackV5ProcessAssetsHook(options) {
2007
2057
  transformRuntimeSet.add(className);
2008
2058
  }
2009
2059
  for (const dependency of loaderGeneratedCss.dependencies) compilation.fileDependencies?.add?.(dependency);
2010
- const currentRawSourceWithoutBundlerMarkers = require_source_candidate_scan_signature.stripBundlerGeneratedCssMarkers(currentRawSource);
2060
+ const currentRawSourceWithoutBundlerMarkers = require_hmr_timing.stripBundlerGeneratedCssMarkers(currentRawSource);
2011
2061
  const currentAssetHasProcessedUrl = hasProcessedCssAssetUrl(currentRawSourceWithoutBundlerMarkers) && currentRawSourceWithoutBundlerMarkers !== loaderGeneratedCss.css;
2012
2062
  const currentAssetUserCss = currentAssetHasProcessedUrl ? currentRawSourceWithoutBundlerMarkers : shouldUseWebpackAssetAsGeneratorUserCss(currentRawSourceWithoutBundlerMarkers, loaderGeneratedCss.css, { processed: true }) ? require_hmr_timing.removeGeneratedSelectorCompatCss(currentRawSourceWithoutBundlerMarkers, loaderGeneratedCss.css) : void 0;
2013
- const loaderGeneratedCssWithoutMarkers = require_source_candidate_scan_signature.stripBundlerGeneratedCssMarkers(loaderGeneratedCss.css);
2014
- const currentAssetUserCssWithoutMarkers = currentAssetUserCss === void 0 ? "" : require_source_candidate_scan_signature.stripBundlerGeneratedCssMarkers(currentAssetUserCss);
2063
+ const loaderGeneratedCssWithoutMarkers = require_hmr_timing.stripBundlerGeneratedCssMarkers(loaderGeneratedCss.css);
2064
+ const currentAssetUserCssWithoutMarkers = currentAssetUserCss === void 0 ? "" : require_hmr_timing.stripBundlerGeneratedCssMarkers(currentAssetUserCss);
2015
2065
  const currentAssetMissingUserCss = !(currentAssetUserCssWithoutMarkers.trim().length > 0 && !require_generator.isCommentOnlyCss(currentAssetUserCssWithoutMarkers)) ? "" : (0, _weapp_tailwindcss_postcss.filterExistingCssRules)(currentAssetUserCssWithoutMarkers, loaderGeneratedCssWithoutMarkers);
2016
2066
  if (isConfiguredMainCssSource && !cssHandlerOptions.isMainChunk) {
2017
2067
  debug("css skip duplicate webpack loader main generation: %s <- %s", file, sourceFile);
@@ -2028,7 +2078,8 @@ function setupWebpackV5ProcessAssetsHook(options) {
2028
2078
  css: currentAssetUserCss,
2029
2079
  processed: true
2030
2080
  }).css;
2031
- const finalizedLoaderCss = finalizeCssAssetSource(mergedLoaderCss, {
2081
+ const handledLoaderCss = isWebGeneratorTarget ? mergedLoaderCss : (await compilerOptions.styleHandler(mergedLoaderCss, cssHandlerOptions)).css;
2082
+ const finalizedLoaderCss = finalizeCssAssetSource(handledLoaderCss, {
2032
2083
  cssPreflight: cssHandlerOptions.isMainChunk,
2033
2084
  generatedCss: true,
2034
2085
  preserveExistingPreflight: shouldPreserveExistingPreflight
@@ -2046,7 +2097,8 @@ function setupWebpackV5ProcessAssetsHook(options) {
2046
2097
  processed: source.processed
2047
2098
  };
2048
2099
  }));
2049
- const finalizedLoaderSourceBareUserCss = loaderSourceBareUserCss === void 0 ? "" : finalizeCssAssetSource(loaderSourceBareUserCss.css, {
2100
+ const handledLoaderSourceBareUserCss = loaderSourceBareUserCss === void 0 ? "" : loaderSourceBareUserCss.processed ? loaderSourceBareUserCss.css : (await compilerOptions.styleHandler(loaderSourceBareUserCss.css, cssHandlerOptions)).css;
2101
+ const finalizedLoaderSourceBareUserCss = handledLoaderSourceBareUserCss.trim().length === 0 ? "" : finalizeCssAssetSource(handledLoaderSourceBareUserCss, {
2050
2102
  cssPreflight: false,
2051
2103
  generatedCss: false
2052
2104
  });
@@ -2067,7 +2119,7 @@ function setupWebpackV5ProcessAssetsHook(options) {
2067
2119
  file: registeredSourceFile
2068
2120
  })), generatorRawSource, sourceFile, (registeredSourceFile) => isSameWebpackSourceScope(file, registeredSourceFile, sourceFile));
2069
2121
  const currentAssetLooksGenerated = require_generator.hasTailwindGeneratedCss(currentRawSource) || require_generator.hasTailwindGeneratedCssMarkers(currentRawSource);
2070
- const currentAssetHasBundlerGeneratedMarker = require_source_candidate_scan_signature.hasBundlerGeneratedCssMarker(currentRawSource);
2122
+ const currentAssetHasBundlerGeneratedMarker = require_hmr_timing.hasBundlerGeneratedCssMarker(currentRawSource);
2071
2123
  const currentAssetUserCssSource = currentAssetLooksGenerated ? removeWebpackTailwindGeneratedAssetCss(currentRawSource) : currentRawSource;
2072
2124
  if (sourceFile === void 0 && currentAssetHasBundlerGeneratedMarker && (currentAssetUserCssSource.trim().length === 0 || require_generator.isCommentOnlyCss(currentAssetUserCssSource))) return { result: new ConcatSource(finalizeTracedCss("", cssHandlerOptions)) };
2073
2125
  const currentAssetHasAdditionalUserCss = currentAssetLooksGenerated && (hasAdditionalWebpackAssetUserCssMarkers(currentAssetUserCssSource, generatorRawSource) || currentAssetUserCssSource.trim().length > 0);
@@ -2088,7 +2140,7 @@ function setupWebpackV5ProcessAssetsHook(options) {
2088
2140
  }),
2089
2141
  sourceCssProcessed
2090
2142
  }), registeredUserRawSource);
2091
- if ((0, _weapp_tailwindcss_postcss.isPureLocalCssImportWrapper)(currentRawSource)) return { result: new ConcatSource(require_generator.removeTailwindSourceDirectives(require_source_candidate_scan_signature.stripBundlerGeneratedCssMarkers(currentRawSource), { importFallback: true })) };
2143
+ if ((0, _weapp_tailwindcss_postcss.isPureLocalCssImportWrapper)(currentRawSource)) return { result: new ConcatSource(require_generator.removeTailwindSourceDirectives(require_hmr_timing.stripBundlerGeneratedCssMarkers(currentRawSource), { importFallback: true })) };
2092
2144
  const fallbackGeneratorRuntimeSet = getGeneratorRuntimeSet();
2093
2145
  const hasExplicitTailwindV4SourceCss = sourceCss !== void 0 && (require_generator.hasTailwindSourceDirectives(sourceCss, { importFallback: true }) || sourceCss.includes("@config"));
2094
2146
  const currentAssetHasTailwindDirectives = require_generator.hasTailwindRootDirectives(generatorRawSource, { importFallback: true }) || require_generator.hasTailwindSourceDirectives(generatorRawSource, { importFallback: true }) || require_generator.hasTailwindApplyDirective(generatorRawSource);
@@ -2180,7 +2232,8 @@ function setupWebpackV5ProcessAssetsHook(options) {
2180
2232
  processed: source.processed
2181
2233
  };
2182
2234
  }));
2183
- const finalizedSourceBareUserCss = sourceBareUserCss === void 0 ? "" : finalizeCssAssetSource(sourceBareUserCss.css, {
2235
+ const handledSourceBareUserCss = sourceBareUserCss === void 0 ? "" : sourceBareUserCss.processed ? sourceBareUserCss.css : (await compilerOptions.styleHandler(sourceBareUserCss.css, cssHandlerOptions)).css;
2236
+ const finalizedSourceBareUserCss = handledSourceBareUserCss.trim().length === 0 ? "" : finalizeCssAssetSource(handledSourceBareUserCss, {
2184
2237
  cssPreflight: false,
2185
2238
  generatedCss: false
2186
2239
  });
@@ -2277,6 +2330,30 @@ function installTailwindcssCssRedirect(pkgDir) {
2277
2330
  const localRequire = (0, node_module.createRequire)(require("url").pathToFileURL(__filename).href);
2278
2331
  const MPX_STYLE_RESOURCE_QUERY_RE = /(?:^|[?&])type=styles(?:&|$)/;
2279
2332
  const MPX_WEBPACK_PLUGIN_PACKAGE_RE = /@mpxjs[\\/]webpack-plugin[\\/]package\.json$/;
2333
+ const MPX_WEBPACK_PLUGIN_LIB_RE = /^(.*[\\/]@mpxjs[\\/]webpack-plugin)[\\/]lib[\\/]/;
2334
+ const MPX_WEBPACK_PLUGIN_REQUEST_RE = /@mpxjs\/webpack-plugin\/([^!?]+)/g;
2335
+ function findMpxWebpackPluginDirFromRules(rules) {
2336
+ const visit = (value) => {
2337
+ if (typeof value === "string") return value.match(MPX_WEBPACK_PLUGIN_LIB_RE)?.[1];
2338
+ if (Array.isArray(value)) {
2339
+ for (const item of value) {
2340
+ const result = visit(item);
2341
+ if (result) return result;
2342
+ }
2343
+ return;
2344
+ }
2345
+ if (value && typeof value === "object") for (const key of [
2346
+ "loader",
2347
+ "use",
2348
+ "rules",
2349
+ "oneOf"
2350
+ ]) {
2351
+ const result = visit(value[key]);
2352
+ if (result) return result;
2353
+ }
2354
+ };
2355
+ return visit(rules);
2356
+ }
2280
2357
  function isMpxStyleResourceQuery(query) {
2281
2358
  if (typeof query !== "string") return false;
2282
2359
  return MPX_STYLE_RESOURCE_QUERY_RE.test(query);
@@ -2285,6 +2362,12 @@ function getTailwindcssCssEntry(pkgDir) {
2285
2362
  return node_path.default.join(pkgDir, "index.css");
2286
2363
  }
2287
2364
  function resolveMpxWebpackPluginDir(compiler) {
2365
+ const rulePluginDir = findMpxWebpackPluginDirFromRules([
2366
+ compiler?._module?.loaders,
2367
+ compiler?.loaders,
2368
+ compiler?.options?.module?.rules
2369
+ ]);
2370
+ if (rulePluginDir) return rulePluginDir;
2288
2371
  const candidates = [
2289
2372
  compiler?.context,
2290
2373
  compiler?.options?.context,
@@ -2302,6 +2385,45 @@ function resolveMpxWebpackPluginDir(compiler) {
2302
2385
  return;
2303
2386
  }
2304
2387
  }
2388
+ function rewriteMpxWebpackPluginRequests(request, mpxWebpackPluginDir, pathImpl = node_path.default) {
2389
+ return request.replace(MPX_WEBPACK_PLUGIN_REQUEST_RE, (_full, subpath) => {
2390
+ return pathImpl.join(mpxWebpackPluginDir, ...subpath.split("/"));
2391
+ });
2392
+ }
2393
+ function patchMpxWebpackPluginRequests(compiler, mpxWebpackPluginDir) {
2394
+ if (!mpxWebpackPluginDir || !compiler) return false;
2395
+ const pluginName = "weapp-tailwindcss-mpx-loader-resolve";
2396
+ const patchedCompilers = /* @__PURE__ */ new WeakSet();
2397
+ const patchedLoaderResolvers = /* @__PURE__ */ new WeakSet();
2398
+ const patchedResolverFactories = /* @__PURE__ */ new WeakSet();
2399
+ const install = (targetCompiler) => {
2400
+ if (!targetCompiler || typeof targetCompiler !== "object" || patchedCompilers.has(targetCompiler)) return;
2401
+ patchedCompilers.add(targetCompiler);
2402
+ ensureResolveLoaderAlias(targetCompiler, mpxWebpackPluginDir);
2403
+ const resolverFactory = targetCompiler.resolverFactory;
2404
+ if (resolverFactory && typeof resolverFactory === "object" && !patchedResolverFactories.has(resolverFactory)) {
2405
+ patchedResolverFactories.add(resolverFactory);
2406
+ installMpxResolveLoaderAlias(targetCompiler, mpxWebpackPluginDir);
2407
+ }
2408
+ targetCompiler.hooks?.normalModuleFactory?.tap?.(pluginName, (normalModuleFactory) => {
2409
+ const loaderResolver = normalModuleFactory.getResolver?.("loader");
2410
+ if (loaderResolver && typeof loaderResolver === "object" && !patchedLoaderResolvers.has(loaderResolver)) {
2411
+ patchedLoaderResolvers.add(loaderResolver);
2412
+ patchMpxLoaderResolver(loaderResolver, mpxWebpackPluginDir);
2413
+ }
2414
+ normalModuleFactory.hooks.beforeResolve.tap(pluginName, (resolveData) => {
2415
+ if (typeof resolveData?.request === "string") resolveData.request = rewriteMpxWebpackPluginRequests(resolveData.request, mpxWebpackPluginDir);
2416
+ });
2417
+ });
2418
+ targetCompiler.hooks?.compilation?.tap?.(pluginName, (compilation) => {
2419
+ compilation.hooks?.childCompiler?.tap?.(pluginName, (childCompiler) => {
2420
+ install(childCompiler);
2421
+ });
2422
+ });
2423
+ };
2424
+ install(compiler);
2425
+ return true;
2426
+ }
2305
2427
  function isMpxWebpackPluginRequest(request) {
2306
2428
  return request === "@mpxjs/webpack-plugin" || Boolean(request?.startsWith("@mpxjs/webpack-plugin/"));
2307
2429
  }
@@ -2340,27 +2462,39 @@ function ensureResolveLoaderAlias(compiler, mpxWebpackPluginDir) {
2340
2462
  compiler.options.resolveLoader.alias = alias;
2341
2463
  addMpxWebpackPluginAlias(alias, mpxWebpackPluginDir);
2342
2464
  }
2343
- function resolveMpxWebpackPluginRequire(compiler) {
2344
- const candidates = [
2345
- compiler?.context,
2346
- compiler?.options?.context,
2347
- node_process.default.cwd()
2348
- ].filter((item) => typeof item === "string" && item.length > 0);
2349
- for (const candidate of candidates) try {
2350
- const projectRequire = (0, node_module.createRequire)(node_path.default.join(candidate, "package.json"));
2351
- projectRequire.resolve("@mpxjs/webpack-plugin/package.json");
2352
- return projectRequire;
2353
- } catch {}
2354
- const cachedPackageJson = Object.keys(localRequire.cache).find((file) => MPX_WEBPACK_PLUGIN_PACKAGE_RE.test(file));
2355
- if (cachedPackageJson) return (0, node_module.createRequire)(cachedPackageJson);
2356
- return localRequire;
2465
+ function installMpxResolveLoaderAlias(compiler, mpxWebpackPluginDir) {
2466
+ const resolveOptionsHook = compiler?.resolverFactory?.hooks?.resolveOptions?.for?.("loader");
2467
+ if (!resolveOptionsHook?.tap) return;
2468
+ resolveOptionsHook.tap({
2469
+ name: "weapp-tailwindcss-mpx-loader-resolve",
2470
+ stage: 100
2471
+ }, (resolveOptions) => {
2472
+ const alias = Array.isArray(resolveOptions.alias) ? [...resolveOptions.alias] : { ...resolveOptions.alias };
2473
+ addMpxWebpackPluginAlias(alias, mpxWebpackPluginDir);
2474
+ return {
2475
+ ...resolveOptions,
2476
+ alias
2477
+ };
2478
+ });
2479
+ }
2480
+ function patchMpxLoaderResolver(resolver, mpxWebpackPluginDir) {
2481
+ const originalResolve = resolver?.resolve;
2482
+ if (typeof originalResolve !== "function" || originalResolve.__weappTwPatched) return;
2483
+ const wrappedResolve = function(...args) {
2484
+ const requestIndex = typeof args[0] === "string" ? 1 : 2;
2485
+ const request = args[requestIndex];
2486
+ if (typeof request === "string" && isMpxWebpackPluginRequest(request)) args[requestIndex] = resolveMpxWebpackPluginRequest(request, mpxWebpackPluginDir);
2487
+ return originalResolve.apply(this, args);
2488
+ };
2489
+ wrappedResolve.__weappTwPatched = true;
2490
+ wrappedResolve.__weappTwOriginal = originalResolve;
2491
+ resolver.resolve = wrappedResolve;
2357
2492
  }
2358
- function patchMpxWebpackPluginNormalizeLib(compiler, mpxWebpackPluginDir) {
2493
+ function patchMpxWebpackPluginNormalizeLib(_compiler, mpxWebpackPluginDir) {
2359
2494
  if (!mpxWebpackPluginDir) return false;
2360
- const projectRequire = resolveMpxWebpackPluginRequire(compiler);
2361
2495
  let normalize;
2362
2496
  try {
2363
- normalize = projectRequire("@mpxjs/webpack-plugin/lib/utils/normalize");
2497
+ normalize = (0, node_module.createRequire)(node_path.default.join(mpxWebpackPluginDir, "package.json"))(node_path.default.join(mpxWebpackPluginDir, "lib/utils/normalize"));
2364
2498
  } catch {
2365
2499
  return false;
2366
2500
  }
@@ -2378,6 +2512,7 @@ function ensureMpxTailwindcssAliases(compiler, pkgDir) {
2378
2512
  compiler.options.resolve = compiler.options.resolve || {};
2379
2513
  const mpxWebpackPluginDir = resolveMpxWebpackPluginDir(compiler);
2380
2514
  patchMpxWebpackPluginNormalizeLib(compiler, mpxWebpackPluginDir);
2515
+ patchMpxWebpackPluginRequests(compiler, mpxWebpackPluginDir);
2381
2516
  if (mpxWebpackPluginDir) ensureResolveLoaderAlias(compiler, mpxWebpackPluginDir);
2382
2517
  const alias = compiler.options.resolve.alias ?? {};
2383
2518
  compiler.options.resolve.alias = alias;
@@ -2396,19 +2531,29 @@ function ensureMpxTailwindcssAliases(compiler, pkgDir) {
2396
2531
  return tailwindcssCssEntry;
2397
2532
  }
2398
2533
  function patchMpxLoaderResolve(loaderContext, pkgDir, enabled) {
2399
- if (!enabled || typeof loaderContext.resolve !== "function") return;
2400
- const originalResolve = loaderContext.resolve;
2401
- if (originalResolve.__weappTwPatched) return;
2534
+ if (!enabled) return;
2402
2535
  const tailwindcssCssEntry = getTailwindcssCssEntry(pkgDir);
2403
2536
  const mpxWebpackPluginDir = resolveMpxWebpackPluginDir(loaderContext);
2404
- const wrappedResolve = function(context, request, callback) {
2405
- if (request === "tailwindcss" || request === "tailwindcss$") return callback(null, tailwindcssCssEntry);
2406
- if (request?.startsWith("tailwindcss/")) return callback(null, node_path.default.join(pkgDir, request.slice(12)));
2407
- if (mpxWebpackPluginDir && isMpxWebpackPluginRequest(request)) return callback(null, resolveMpxWebpackPluginRequest(request, mpxWebpackPluginDir));
2408
- return originalResolve.call(this, context, request, callback);
2409
- };
2410
- wrappedResolve.__weappTwPatched = true;
2411
- loaderContext.resolve = wrappedResolve;
2537
+ const originalResolve = loaderContext.resolve;
2538
+ if (typeof originalResolve === "function" && !originalResolve.__weappTwPatched) {
2539
+ const wrappedResolve = function(context, request, callback) {
2540
+ if (request === "tailwindcss" || request === "tailwindcss$") return callback(null, tailwindcssCssEntry);
2541
+ if (request?.startsWith("tailwindcss/")) return callback(null, node_path.default.join(pkgDir, request.slice(12)));
2542
+ if (mpxWebpackPluginDir && isMpxWebpackPluginRequest(request)) return callback(null, resolveMpxWebpackPluginRequest(request, mpxWebpackPluginDir));
2543
+ return originalResolve.call(this, context, request, callback);
2544
+ };
2545
+ wrappedResolve.__weappTwPatched = true;
2546
+ loaderContext.resolve = wrappedResolve;
2547
+ }
2548
+ const originalImportModule = loaderContext.importModule;
2549
+ if (mpxWebpackPluginDir && typeof originalImportModule === "function" && !originalImportModule.__weappTwPatched) {
2550
+ const wrappedImportModule = function(request, ...args) {
2551
+ const resolvedRequest = typeof request === "string" ? rewriteMpxWebpackPluginRequests(request, mpxWebpackPluginDir) : request;
2552
+ return originalImportModule.call(this, resolvedRequest, ...args);
2553
+ };
2554
+ wrappedImportModule.__weappTwPatched = true;
2555
+ loaderContext.importModule = wrappedImportModule;
2556
+ }
2412
2557
  }
2413
2558
  function setupMpxTailwindcssRedirect(pkgDir, enabled) {
2414
2559
  if (enabled) installTailwindcssCssRedirect(pkgDir);
@@ -2493,11 +2638,14 @@ function setupWebpackV5Loaders(options) {
2493
2638
  if (shouldRewriteCssImports && mpxCssImportRewrite) ensureMpxTailwindcssAliases(compiler, weappTailwindcssPackageDir);
2494
2639
  const runtimeClassSetLoader = runtimeLoaderPath ?? node_path.default.resolve(__dirname, "./weapp-tw-runtime-classset-loader.js");
2495
2640
  const shouldInjectRuntimeClassSetLoader = !generatorBranch.isWeb;
2496
- const shouldInjectCssImportRewriteLoader = shouldRewriteCssImports || generatorOptions.enabled && (!generatorBranch.isWeb || runtimeState.tailwindRuntime.majorVersion === 4);
2641
+ const shouldInjectCssGenerationLoader = generatorOptions.enabled && runtimeState.tailwindRuntime.majorVersion === 4 && (generatorTarget === "web" || generatorTarget === "weapp");
2642
+ const shouldInjectCssImportRewriteLoader = shouldRewriteCssImports || shouldInjectCssGenerationLoader;
2643
+ const runtimeCssGenerationLoader = shouldInjectCssGenerationLoader ? node_path.default.resolve(__dirname, "./weapp-tw-css-generation-loader.js") : void 0;
2497
2644
  const runtimeCssImportRewriteLoader = shouldInjectCssImportRewriteLoader ? node_path.default.resolve(__dirname, "./weapp-tw-css-import-rewrite-loader.js") : void 0;
2498
2645
  const runtimeClassSetLoaderExists = node_fs.default.existsSync(runtimeClassSetLoader);
2646
+ const runtimeCssGenerationLoaderExists = runtimeCssGenerationLoader ? node_fs.default.existsSync(runtimeCssGenerationLoader) : false;
2499
2647
  const runtimeCssImportRewriteLoaderExists = runtimeCssImportRewriteLoader ? node_fs.default.existsSync(runtimeCssImportRewriteLoader) : false;
2500
- const runtimeLoaderRewriteOptions = shouldInjectCssImportRewriteLoader ? {
2648
+ const runtimeLoaderRewriteOptions = shouldInjectCssImportRewriteLoader || shouldInjectCssGenerationLoader ? {
2501
2649
  pkgDir: weappTailwindcssPackageDir,
2502
2650
  compilerOptions,
2503
2651
  runtimeState,
@@ -2522,7 +2670,11 @@ function setupWebpackV5Loaders(options) {
2522
2670
  compiler.hooks.watchClose?.tap?.(require_context.pluginName, cleanupWebpackLoaderRuntime);
2523
2671
  compiler.hooks.shutdown?.tap?.(require_context.pluginName, cleanupWebpackLoaderRuntime);
2524
2672
  const { findRewriteAnchor, findClassSetAnchor } = loaderAnchorFinders;
2525
- const cssImportRewriteLoaderOptions = runtimeLoaderRewriteOptions ? { tailwindcssImportRewriteRuntimeKey: runtimeRegistryKey } : void 0;
2673
+ const cssImportRewriteLoaderOptions = runtimeLoaderRewriteOptions && shouldInjectCssImportRewriteLoader ? {
2674
+ generateCss: false,
2675
+ tailwindcssImportRewriteRuntimeKey: runtimeRegistryKey
2676
+ } : void 0;
2677
+ const cssGenerationLoaderOptions = runtimeLoaderRewriteOptions && shouldInjectCssGenerationLoader ? { tailwindcssImportRewriteRuntimeKey: runtimeRegistryKey } : void 0;
2526
2678
  if (runtimeCssImportRewriteLoader && shouldRewriteCssImports && cssImportRewriteLoaderOptions && mpxCssImportRewrite) injectMpxCssRewritePreRules(compiler, runtimeCssImportRewriteLoader, cssImportRewriteLoaderOptions);
2527
2679
  const createRuntimeClassSetLoaderEntry = () => ({
2528
2680
  loader: runtimeClassSetLoader,
@@ -2539,10 +2691,22 @@ function setupWebpackV5Loaders(options) {
2539
2691
  type: null
2540
2692
  };
2541
2693
  };
2694
+ const createCssGenerationLoaderEntry = () => {
2695
+ if (!runtimeCssGenerationLoader || !cssGenerationLoaderOptions) return null;
2696
+ return {
2697
+ loader: runtimeCssGenerationLoader,
2698
+ options: cssGenerationLoaderOptions,
2699
+ ident: null,
2700
+ type: null
2701
+ };
2702
+ };
2542
2703
  const { NormalModule } = compiler.webpack;
2543
2704
  compiler.hooks.compilation.tap(require_context.pluginName, (compilation) => {
2544
- NormalModule.getCompilationHooks(compilation).loader.tap(require_context.pluginName, (_loaderContext, module) => {
2545
- if (!(runtimeClassSetLoaderExists || runtimeCssImportRewriteLoaderExists)) return;
2705
+ NormalModule.getCompilationHooks(compilation).loader.tap({
2706
+ name: require_context.pluginName,
2707
+ stage: 100
2708
+ }, (_loaderContext, module) => {
2709
+ if (!(runtimeClassSetLoaderExists || runtimeCssGenerationLoaderExists || runtimeCssImportRewriteLoaderExists)) return;
2546
2710
  patchMpxLoaderResolve(_loaderContext, weappTailwindcssPackageDir, shouldRewriteCssImports && mpxCssImportRewrite);
2547
2711
  const loaderEntries = module.loaders || [];
2548
2712
  let rewriteAnchorIdx = findRewriteAnchor(loaderEntries);
@@ -2562,6 +2726,12 @@ function setupWebpackV5Loaders(options) {
2562
2726
  if (position === "after") loaderEntries.push(entry);
2563
2727
  else loaderEntries.unshift(entry);
2564
2728
  };
2729
+ if (cssGenerationLoaderOptions && runtimeCssGenerationLoaderExists && runtimeCssGenerationLoader && isCssModule && !hasLoaderEntry(loaderEntries, runtimeCssGenerationLoader)) {
2730
+ const generationLoaderEntry = createCssGenerationLoaderEntry();
2731
+ const anchorIndex = findRewriteAnchor(loaderEntries);
2732
+ if (generationLoaderEntry) if (anchorIndex === -1) anchorlessInsert(generationLoaderEntry, "after");
2733
+ else loaderEntries.splice(anchorIndex + 1, 0, generationLoaderEntry);
2734
+ }
2565
2735
  if (cssImportRewriteLoaderOptions && runtimeCssImportRewriteLoaderExists && runtimeCssImportRewriteLoader && isCssModule) {
2566
2736
  const existingIndex = loaderEntries.findIndex((entry) => entry.loader?.includes?.(runtimeCssImportRewriteLoader));
2567
2737
  const rewriteLoaderEntry = existingIndex !== -1 ? {
package/dist/webpack.js CHANGED
@@ -1,5 +1,5 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
- const require_webpack = require("./webpack-CzXjfvYS.js");
2
+ const require_webpack = require("./webpack-nppysF4B.js");
3
3
  exports.WeappTailwindcss = require_webpack.WeappTailwindcss;
4
4
  exports.weappTailwindcss = require_webpack.WeappTailwindcss;
5
5
  exports.weappTailwindcssPackageDir = require_webpack.weappTailwindcssPackageDir;
package/dist/webpack.mjs CHANGED
@@ -1,2 +1,2 @@
1
- import { n as weappTailwindcssPackageDir, t as WeappTailwindcss } from "./webpack-CTYm19zA.mjs";
1
+ import { n as weappTailwindcssPackageDir, t as WeappTailwindcss } from "./webpack-C_UUFRgj.mjs";
2
2
  export { WeappTailwindcss, WeappTailwindcss as weappTailwindcss, weappTailwindcssPackageDir };