weapp-tailwindcss 5.0.11 → 5.0.13

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 (109) hide show
  1. package/dist/{bundle-state-BwtEqxvU.js → bundle-state-CKWeTEhv.js} +2 -40
  2. package/dist/{bundle-state-CXzPknlT.mjs → bundle-state-zQ2MrDdi.mjs} +2 -34
  3. package/dist/bundlers/gulp/vinyl-transform.d.ts +1 -1
  4. package/dist/bundlers/shared/generator-css/generation-helpers.d.ts +7 -2
  5. package/dist/bundlers/shared/generator-css/source-files.d.ts +1 -0
  6. package/dist/bundlers/shared/generator-css/source-resolver/apply-reference.d.ts +3 -0
  7. package/dist/bundlers/shared/generator-css/source-resolver/config.d.ts +7 -0
  8. package/dist/bundlers/shared/generator-css/source-resolver/matching.d.ts +4 -0
  9. package/dist/bundlers/shared/generator-css/source-resolver/metadata.d.ts +15 -0
  10. package/dist/bundlers/shared/generator-css/source-resolver/postcss-source.d.ts +12 -0
  11. package/dist/bundlers/shared/generator-css/source-resolver/types.d.ts +22 -0
  12. package/dist/bundlers/shared/generator-css/source-resolver.d.ts +5 -22
  13. package/dist/bundlers/shared/generator-css/types.d.ts +2 -0
  14. package/dist/bundlers/shared/generator-css/validate.d.ts +1 -0
  15. package/dist/bundlers/shared/hmr-timing.d.ts +1 -0
  16. package/dist/bundlers/vite/css-memory.d.ts +27 -0
  17. package/dist/bundlers/vite/generate-bundle/bundle-file-names.d.ts +2 -0
  18. package/dist/bundlers/vite/generate-bundle/configured-css-sources.d.ts +8 -0
  19. package/dist/bundlers/vite/generate-bundle/css-assets.d.ts +4 -0
  20. package/dist/bundlers/vite/generate-bundle/css-handler-options.d.ts +5 -0
  21. package/dist/bundlers/vite/generate-bundle/css-output.d.ts +9 -7
  22. package/dist/bundlers/vite/generate-bundle/env-flags.d.ts +7 -0
  23. package/dist/bundlers/vite/generate-bundle/finalize.d.ts +58 -0
  24. package/dist/bundlers/vite/generate-bundle/js-processing.d.ts +31 -0
  25. package/dist/bundlers/vite/generate-bundle/memory-debug.d.ts +77 -0
  26. package/dist/bundlers/vite/generate-bundle/remembered-css-replay.d.ts +53 -0
  27. package/dist/bundlers/vite/generate-bundle/remembered-css.d.ts +1 -1
  28. package/dist/bundlers/vite/generate-bundle/runtime-linked-css.d.ts +4 -0
  29. package/dist/bundlers/vite/generate-bundle/scoped-generator.d.ts +21 -0
  30. package/dist/bundlers/vite/generate-bundle/sfc-style-source.d.ts +2 -1
  31. package/dist/bundlers/vite/generate-bundle/source-candidate-scope.d.ts +29 -0
  32. package/dist/bundlers/vite/generate-bundle/timing.d.ts +1 -0
  33. package/dist/bundlers/vite/generate-bundle/types.d.ts +7 -0
  34. package/dist/bundlers/vite/generate-bundle/uni-app-x-postprocess.d.ts +20 -0
  35. package/dist/bundlers/vite/generate-bundle/vite-css-cache.d.ts +6 -0
  36. package/dist/bundlers/vite/generate-bundle.d.ts +2 -1
  37. package/dist/bundlers/vite/hot-css-modules.d.ts +5 -0
  38. package/dist/bundlers/vite/map-cache.d.ts +2 -0
  39. package/dist/bundlers/vite/processed-css-assets.d.ts +16 -0
  40. package/dist/bundlers/vite/resolve-app-type.d.ts +1 -2
  41. package/dist/bundlers/vite/source-candidate-scan-signature.d.ts +13 -0
  42. package/dist/bundlers/vite/source-candidates.d.ts +9 -0
  43. package/dist/bundlers/vite/source-scan/css-entries.d.ts +1 -0
  44. package/dist/bundlers/vite/source-scan.d.ts +1 -1
  45. package/dist/bundlers/vite/weapp-vite-config.d.ts +3 -0
  46. package/dist/bundlers/webpack/BaseUnifiedPlugin/v5-assets/helpers.d.ts +11 -8
  47. package/dist/bundlers/webpack/BaseUnifiedPlugin/v5-loaders.d.ts +2 -0
  48. package/dist/bundlers/webpack/loaders/runtime-registry.d.ts +5 -0
  49. package/dist/cache/index.d.ts +4 -0
  50. package/dist/cli.js +9 -2
  51. package/dist/cli.mjs +8 -1
  52. package/dist/core.d.ts +7 -0
  53. package/dist/core.js +8 -5
  54. package/dist/core.mjs +8 -5
  55. package/dist/css-macro.js +1 -1
  56. package/dist/css-macro.mjs +1 -1
  57. package/dist/{defaults-DH0ZQRhy.mjs → defaults-Bqx18S1f.mjs} +2 -35
  58. package/dist/{defaults-Boc26eel.js → defaults-C_J_kBpw.js} +2 -35
  59. package/dist/defaults.js +1 -1
  60. package/dist/defaults.mjs +1 -1
  61. package/dist/framework/index.d.ts +59 -0
  62. package/dist/framework.d.ts +1 -0
  63. package/dist/framework.js +198 -0
  64. package/dist/framework.mjs +180 -0
  65. package/dist/{generator-ChgOWNOj.js → generator-CzpArpCL.js} +1 -1
  66. package/dist/{generator-h2XRiJ9-.mjs → generator-ITLd7PTl.mjs} +1 -1
  67. package/dist/generator.js +2 -2
  68. package/dist/generator.mjs +2 -2
  69. package/dist/{gulp-Be88jhoY.mjs → gulp-DfOQERcV.mjs} +137 -23
  70. package/dist/{gulp-CHtZF-oT.js → gulp-XT8Jc7lH.js} +137 -23
  71. package/dist/gulp.js +1 -1
  72. package/dist/gulp.mjs +1 -1
  73. package/dist/{hmr-timing-BkivBZvN.js → hmr-timing-BMftW7Us.js} +354 -225
  74. package/dist/{hmr-timing-Ct5w4hdM.mjs → hmr-timing-DQIP_8qP.mjs} +341 -225
  75. package/dist/index.d.ts +1 -0
  76. package/dist/index.js +20 -4
  77. package/dist/index.mjs +6 -5
  78. package/dist/postcss.js +9 -10
  79. package/dist/postcss.mjs +7 -5
  80. package/dist/{precheck-CY9oaH49.js → precheck-B0Z8yW7E.js} +108 -27
  81. package/dist/{precheck-BpHxsWRd.mjs → precheck-CRI90iL1.mjs} +109 -28
  82. package/dist/presets.js +3 -3
  83. package/dist/presets.mjs +3 -3
  84. package/dist/tailwindcss/source-scan.d.ts +1 -0
  85. package/dist/tailwindcss/v3-engine/generator.d.ts +17 -0
  86. package/dist/tailwindcss/v3-engine/index.d.ts +1 -1
  87. package/dist/tailwindcss/v3-engine/types.d.ts +1 -0
  88. package/dist/tailwindcss/v4-engine/generator.d.ts +19 -0
  89. package/dist/tailwindcss/v4-engine/index.d.ts +1 -1
  90. package/dist/{tailwindcss-Bfy2egdX.mjs → tailwindcss-DTq3uYBK.mjs} +2 -2
  91. package/dist/{tailwindcss-DbbAKAZP.js → tailwindcss-DZEwT3C_.js} +3 -3
  92. package/dist/{transform-r5evL6Hn.mjs → transform-DfcEjsZF.mjs} +29 -21
  93. package/dist/{transform-Cd634UZV.js → transform-YmrmxuF3.js} +29 -21
  94. package/dist/types/user-defined-options/general.d.ts +3 -1
  95. package/dist/{utils-Dolmt8EO.js → utils-BCa37Wqj.js} +2 -17
  96. package/dist/{utils-DsaS975I.mjs → utils-DodxWHGz.mjs} +2 -17
  97. package/dist/{v3-engine-D0yA9ZkF.js → v3-engine-2rrgylhn.js} +194 -34
  98. package/dist/{v3-engine-CFkP6dWF.mjs → v3-engine-C6eJ0YzK.mjs} +176 -34
  99. package/dist/{vite-j9cB2Ff1.js → vite-CXHVsHmX.js} +2071 -1160
  100. package/dist/{vite-Bd8qf9dK.mjs → vite-DjI09vVN.mjs} +2071 -1160
  101. package/dist/vite.js +1 -1
  102. package/dist/vite.mjs +1 -1
  103. package/dist/weapp-tw-css-import-rewrite-loader.js +476 -217
  104. package/dist/weapp-tw-runtime-classset-loader.js +25 -0
  105. package/dist/{webpack-DPdrcC2X.mjs → webpack-BcPpnT90.mjs} +251 -40
  106. package/dist/{webpack-CJAOcYEO.js → webpack-CfkUkMXG.js} +254 -43
  107. package/dist/webpack.js +1 -1
  108. package/dist/webpack.mjs +1 -1
  109. package/package.json +10 -5
@@ -1,19 +1,19 @@
1
1
  const require_chunk = require("./chunk-emK7D4bc.js");
2
- const require_v3_engine = require("./v3-engine-D0yA9ZkF.js");
3
- const require_generator = require("./generator-ChgOWNOj.js");
4
- const require_precheck = require("./precheck-CY9oaH49.js");
5
- const require_utils = require("./utils-Dolmt8EO.js");
6
- const require_tailwindcss = require("./tailwindcss-DbbAKAZP.js");
7
- const require_hmr_timing = require("./hmr-timing-BkivBZvN.js");
8
- const require_bundle_state = require("./bundle-state-BwtEqxvU.js");
9
- let node_module = require("node:module");
10
- node_module = require_chunk.__toESM(node_module);
2
+ const require_v3_engine = require("./v3-engine-2rrgylhn.js");
3
+ const require_generator = require("./generator-CzpArpCL.js");
4
+ const require_precheck = require("./precheck-B0Z8yW7E.js");
5
+ const require_utils = require("./utils-BCa37Wqj.js");
6
+ const require_tailwindcss = require("./tailwindcss-DZEwT3C_.js");
7
+ const require_hmr_timing = require("./hmr-timing-BMftW7Us.js");
8
+ const require_bundle_state = require("./bundle-state-CKWeTEhv.js");
11
9
  let node_fs = require("node:fs");
12
10
  node_fs = require_chunk.__toESM(node_fs);
13
11
  let node_path = require("node:path");
14
12
  node_path = require_chunk.__toESM(node_path);
15
13
  let node_process = require("node:process");
16
14
  node_process = require_chunk.__toESM(node_process);
15
+ let node_module = require("node:module");
16
+ node_module = require_chunk.__toESM(node_module);
17
17
  let micromatch = require("micromatch");
18
18
  micromatch = require_chunk.__toESM(micromatch);
19
19
  let _weapp_tailwindcss_postcss = require("@weapp-tailwindcss/postcss");
@@ -299,8 +299,101 @@ function createWebpackAssetUpdater(options) {
299
299
  }
300
300
  //#endregion
301
301
  //#region src/bundlers/webpack/BaseUnifiedPlugin/v5-assets.ts
302
+ const WEBPACK_CSS_HANDLER_OPTIONS_CACHE_MAX = 128;
303
+ function toMb(bytes) {
304
+ return Math.round(bytes / 1024 / 1024);
305
+ }
306
+ function pruneMapToMaxSize(map, maxSize) {
307
+ while (map.size > maxSize) {
308
+ const oldestKey = map.keys().next().value;
309
+ if (oldestKey === void 0) break;
310
+ map.delete(oldestKey);
311
+ }
312
+ }
313
+ function pruneWebpackCssHandlerOptionCaches(cssHandlerOptionsCache, cssUserHandlerOptionsCache, activeCssFiles) {
314
+ const activeSuffixes = [...activeCssFiles].map((file) => `:${file}`);
315
+ for (const key of cssHandlerOptionsCache.keys()) if (!activeSuffixes.some((suffix) => key.endsWith(suffix))) cssHandlerOptionsCache.delete(key);
316
+ for (const key of cssUserHandlerOptionsCache.keys()) if (!activeSuffixes.some((suffix) => key.endsWith(suffix))) cssUserHandlerOptionsCache.delete(key);
317
+ pruneMapToMaxSize(cssHandlerOptionsCache, WEBPACK_CSS_HANDLER_OPTIONS_CACHE_MAX);
318
+ pruneMapToMaxSize(cssUserHandlerOptionsCache, WEBPACK_CSS_HANDLER_OPTIONS_CACHE_MAX);
319
+ }
320
+ function resolveWebpackGeneratorRawSource(rawSource, cssHandlerOptions) {
321
+ return cssHandlerOptions.sourceOptions?.sourceCss ?? rawSource;
322
+ }
323
+ function stripStyleExtension(file) {
324
+ const normalized = file.replace(/[?#].*$/, "");
325
+ const ext = node_path.default.extname(normalized);
326
+ return ext ? normalized.slice(0, -ext.length) : normalized;
327
+ }
328
+ function normalizeMatchPath(file) {
329
+ return file.split(node_path.default.sep).join("/");
330
+ }
331
+ function isPathWithinRoot(file, root) {
332
+ const relative = node_path.default.relative(root, file);
333
+ return Boolean(relative) && !relative.startsWith("..") && !node_path.default.isAbsolute(relative);
334
+ }
335
+ function collectWebpackCssMatchBases(file, roots) {
336
+ const normalizedFile = file.replace(/[?#].*$/, "");
337
+ const bases = /* @__PURE__ */ new Set();
338
+ const addBase = (candidate) => {
339
+ const stripped = normalizeMatchPath(stripStyleExtension(candidate));
340
+ if (stripped.length > 0) {
341
+ bases.add(stripped);
342
+ const withoutWorkspaceSegment = stripped.replace(/^(?:src|dist)\//, "");
343
+ if (withoutWorkspaceSegment !== stripped && withoutWorkspaceSegment.length > 0) bases.add(withoutWorkspaceSegment);
344
+ }
345
+ };
346
+ addBase(normalizedFile);
347
+ const resolvedRoots = roots.filter((root) => typeof root === "string" && root.length > 0).map((root) => node_path.default.resolve(root));
348
+ if (node_path.default.isAbsolute(normalizedFile)) {
349
+ for (const root of resolvedRoots) if (isPathWithinRoot(normalizedFile, root)) addBase(node_path.default.relative(root, normalizedFile));
350
+ } else for (const root of resolvedRoots) addBase(node_path.default.resolve(root, normalizedFile));
351
+ return bases;
352
+ }
353
+ function scoreWebpackCssSourceFileMatch(outputFile, sourceFile, options) {
354
+ const outputBases = collectWebpackCssMatchBases(outputFile, [options.outputRoot, options.projectRoot]);
355
+ const sourceBases = collectWebpackCssMatchBases(sourceFile, [options.projectRoot]);
356
+ let bestScore = 0;
357
+ for (const outputBase of outputBases) for (const sourceBase of sourceBases) if (outputBase === sourceBase) bestScore = Math.max(bestScore, 1e5 + outputBase.length);
358
+ else if (outputBase.endsWith(`/${sourceBase}`)) bestScore = Math.max(bestScore, 5e4 + sourceBase.length);
359
+ else if (sourceBase.endsWith(`/${outputBase}`)) bestScore = Math.max(bestScore, 1e3 + outputBase.length);
360
+ return bestScore;
361
+ }
362
+ function resolveWebpackMemoryDebugStats(context) {
363
+ if (node_process.default.env["WEAPP_TW_HMR_MEMORY_DEBUG"] !== "1") return;
364
+ const memory = node_process.default.memoryUsage();
365
+ return {
366
+ phase: context.phase,
367
+ process: {
368
+ rssMb: toMb(memory.rss),
369
+ heapTotalMb: toMb(memory.heapTotal),
370
+ heapUsedMb: toMb(memory.heapUsed),
371
+ externalMb: toMb(memory.external),
372
+ arrayBuffersMb: toMb(memory.arrayBuffers)
373
+ },
374
+ assets: {
375
+ active: context.activeAssetFiles,
376
+ activeCss: context.activeCssFiles
377
+ },
378
+ processCache: {
379
+ instance: context.cache.instance.size,
380
+ hashMap: context.cache.hashMap.size,
381
+ activeCacheKeys: context.activeProcessCacheKeys.size,
382
+ activeHashKeys: context.activeProcessHashKeys.size
383
+ },
384
+ webpackCss: {
385
+ handlerOptions: context.cssHandlerOptionsCache.size,
386
+ userHandlerOptions: context.cssUserHandlerOptionsCache.size,
387
+ maxHandlerOptions: WEBPACK_CSS_HANDLER_OPTIONS_CACHE_MAX
388
+ },
389
+ tailwind: {
390
+ v3: require_v3_engine.getTailwindV3IncrementalGenerateCacheStats(),
391
+ v4: require_v3_engine.getTailwindV4IncrementalGenerateCacheStats()
392
+ }
393
+ };
394
+ }
302
395
  function setupWebpackV5ProcessAssetsHook(options) {
303
- const { compiler, options: compilerOptions, appType, runtimeState, getRuntimeRefreshRequirement, refreshRuntimeMetadata, isWebpackProcessedCssAsset, consumeRuntimeRefreshRequirement, isWatchMode, runtimeClassSetManager, debug } = options;
396
+ const { compiler, options: compilerOptions, appType, runtimeState, getRuntimeRefreshRequirement, refreshRuntimeMetadata, isWebpackProcessedCssAsset, consumeRuntimeRefreshRequirement, isWatchMode, runtimeClassSetManager, getWebpackCssSources, debug } = options;
304
397
  const { Compilation, sources } = compiler.webpack;
305
398
  const { ConcatSource } = sources;
306
399
  const isWebGeneratorTarget = compilerOptions.generator?.target === "web";
@@ -363,22 +456,65 @@ function setupWebpackV5ProcessAssetsHook(options) {
363
456
  }
364
457
  };
365
458
  const groupedEntries = require_utils.getGroupedEntries(entries, compilerOptions);
459
+ const activeProcessCacheKeys = /* @__PURE__ */ new Set();
460
+ const activeProcessHashKeys = /* @__PURE__ */ new Set();
461
+ const rememberProcessCacheKey = (cacheKey, hashKey = cacheKey) => {
462
+ activeProcessCacheKeys.add(cacheKey);
463
+ activeProcessHashKeys.add(hashKey);
464
+ };
465
+ for (const chunk of compilation.chunks) if (chunk.id) activeProcessHashKeys.add(chunk.id);
466
+ const cssSources = new Map([...getWebpackCssSources?.() ?? []].map(([file, css]) => [node_path.default.resolve(file), css]));
467
+ const cssSourceFiles = [...cssSources.keys()].sort();
468
+ const resolveWebpackCssSourceFile = (file) => {
469
+ if (cssSourceFiles.length === 0) return;
470
+ const matches = cssSourceFiles.map((sourceFile) => ({
471
+ sourceFile,
472
+ score: scoreWebpackCssSourceFileMatch(file, sourceFile, {
473
+ outputRoot: outputDir,
474
+ projectRoot: compilerOptions.tailwindcssBasedir
475
+ })
476
+ })).filter((match) => match.score > 0).sort((a, b) => b.score - a.score);
477
+ const bestScore = matches[0]?.score ?? 0;
478
+ const bestMatches = matches.filter((match) => match.score === bestScore);
479
+ return bestMatches.length === 1 ? bestMatches[0]?.sourceFile : void 0;
480
+ };
366
481
  const getCssHandlerOptions = (file) => {
367
482
  const majorVersion = runtimeState.twPatcher.majorVersion;
368
483
  const isMainChunk = compilerOptions.mainCssChunkMatcher(file, appType);
369
- const cacheKey = `${majorVersion ?? "unknown"}:${isMainChunk ? "1" : "0"}:${file}`;
484
+ const sourceFile = resolveWebpackCssSourceFile(file);
485
+ const sourceCss = sourceFile ? cssSources.get(sourceFile) : void 0;
486
+ const cacheKey = [
487
+ majorVersion ?? "unknown",
488
+ isMainChunk ? "1" : "0",
489
+ sourceFile ?? "asset",
490
+ sourceCss === void 0 ? "source:0" : compilerOptions.cache.computeHash(sourceCss),
491
+ file
492
+ ].join(":");
370
493
  const cached = cssHandlerOptionsCache.get(cacheKey);
371
494
  if (cached) return cached;
372
495
  const created = {
373
496
  isMainChunk,
374
- postcssOptions: { options: { from: file } },
497
+ postcssOptions: { options: { from: sourceFile ?? file } },
498
+ sourceOptions: {
499
+ outputRoot: outputDir,
500
+ ...sourceCss === void 0 ? {} : { sourceCss },
501
+ ...sourceFile === void 0 ? {} : { sourceFile }
502
+ },
375
503
  ...majorVersion === void 0 ? {} : { majorVersion }
376
504
  };
377
505
  cssHandlerOptionsCache.set(cacheKey, created);
378
506
  return created;
379
507
  };
380
508
  const getCssUserHandlerOptions = (file) => {
381
- const cacheKey = `${runtimeState.twPatcher.majorVersion ?? "unknown"}:${file}`;
509
+ const majorVersion = runtimeState.twPatcher.majorVersion;
510
+ const sourceFile = resolveWebpackCssSourceFile(file);
511
+ const sourceCss = sourceFile ? cssSources.get(sourceFile) : void 0;
512
+ const cacheKey = [
513
+ majorVersion ?? "unknown",
514
+ sourceFile ?? "asset",
515
+ sourceCss === void 0 ? "source:0" : compilerOptions.cache.computeHash(sourceCss),
516
+ file
517
+ ].join(":");
382
518
  const cached = cssUserHandlerOptionsCache.get(cacheKey);
383
519
  if (cached) return cached;
384
520
  const created = {
@@ -388,7 +524,52 @@ function setupWebpackV5ProcessAssetsHook(options) {
388
524
  cssUserHandlerOptionsCache.set(cacheKey, created);
389
525
  return created;
390
526
  };
527
+ const refreshWebpackSourceCandidates = async () => {
528
+ const majorVersion = runtimeState.twPatcher.majorVersion;
529
+ if (majorVersion !== 3 && majorVersion !== 4) return;
530
+ const root = compilerOptions.tailwindcssBasedir ?? node_process.default.cwd();
531
+ let sourceScan;
532
+ try {
533
+ sourceScan = await require_v3_engine.resolveViteSourceScanEntries(compilerOptions, runtimeState.twPatcher, {
534
+ root,
535
+ outDir: outputDir
536
+ });
537
+ } catch (error) {
538
+ debug("webpack source candidate scan skipped: %O", error);
539
+ return;
540
+ }
541
+ const collector = require_hmr_timing.createSourceCandidateCollector({
542
+ bareArbitraryValues: compilerOptions.arbitraryValues?.bareArbitraryValues,
543
+ extractor: majorVersion === 3 ? require_hmr_timing.createTailwindV3DefaultExtractor() : void 0
544
+ });
545
+ await collector.scanRoot({
546
+ entries: sourceScan?.entries,
547
+ explicit: sourceScan?.explicit,
548
+ root,
549
+ outDir: outputDir
550
+ });
551
+ collector.syncInline(sourceScan?.inlineCandidates);
552
+ const candidates = sourceScan?.entries ? collector.valuesForEntries(sourceScan.entries) : collector.values();
553
+ return {
554
+ candidates,
555
+ getSourceCandidatesForEntries: (entries, options) => collector.valuesForEntries(entries, options),
556
+ signature: compilerOptions.cache.computeHash(JSON.stringify({
557
+ root,
558
+ outDir: outputDir,
559
+ entries: sourceScan?.entries,
560
+ explicit: sourceScan?.explicit ?? false,
561
+ inlineCandidates: sourceScan?.inlineCandidates ? {
562
+ included: [...sourceScan.inlineCandidates.included].sort(),
563
+ excluded: [...sourceScan.inlineCandidates.excluded].sort()
564
+ } : void 0,
565
+ dependencies: [...sourceScan?.dependencies ?? []].sort(),
566
+ candidates: [...candidates].sort()
567
+ })),
568
+ tokenSources: collector.sourcesForEntries(sourceScan?.entries)
569
+ };
570
+ };
391
571
  const finalizeCssAssetSource = (source, options = {}) => {
572
+ const styleOptions = require_precheck.resolveStyleOptionsFromContext(compilerOptions);
392
573
  let finalized = require_v3_engine.removeTailwindSourceDirectives(require_bundle_state.stripBundlerGeneratedCssMarkers(source), { importFallback: true });
393
574
  if (isWebGeneratorTarget || options.generatedCss !== true) return finalized;
394
575
  try {
@@ -397,34 +578,24 @@ function setupWebpackV5ProcessAssetsHook(options) {
397
578
  finalized = (0, _weapp_tailwindcss_postcss.finalizeMiniProgramCss)(finalized, {
398
579
  cssPreflight: runtimeState.twPatcher.majorVersion === 4 ? compilerOptions.cssPreflight : void 0,
399
580
  isTailwindcssV4: runtimeState.twPatcher.majorVersion === 4,
400
- preservePseudoContentInit: runtimeState.twPatcher.majorVersion === 3
581
+ preservePseudoContentInit: runtimeState.twPatcher.majorVersion === 3,
582
+ tailwindcssV4GradientFallback: styleOptions.tailwindcssV4GradientFallback
401
583
  });
402
584
  }
403
585
  return finalized;
404
586
  };
405
587
  const finalizeMiniProgramUserCssAssetSource = (source) => {
588
+ const styleOptions = require_precheck.resolveStyleOptionsFromContext(compilerOptions);
406
589
  if (isWebGeneratorTarget) return source;
407
590
  return (0, _weapp_tailwindcss_postcss.finalizeMiniProgramCss)(source, {
408
591
  cssPreflight: runtimeState.twPatcher.majorVersion === 4 ? compilerOptions.cssPreflight : void 0,
409
592
  isTailwindcssV4: runtimeState.twPatcher.majorVersion === 4,
410
- preservePseudoContentInit: runtimeState.twPatcher.majorVersion === 3
593
+ preservePseudoContentInit: runtimeState.twPatcher.majorVersion === 3,
594
+ tailwindcssV4GradientFallback: styleOptions.tailwindcssV4GradientFallback
411
595
  });
412
596
  };
413
- const cssSourceTraceTokenSources = require_hmr_timing.isCssSourceTraceEnabled(compilerOptions) ? await (async () => {
414
- const root = compilerOptions.tailwindcssBasedir ?? node_process.default.cwd();
415
- const sourceScan = await require_v3_engine.resolveViteSourceScanEntries(compilerOptions, runtimeState.twPatcher, { root });
416
- const collector = require_hmr_timing.createSourceCandidateCollector({
417
- bareArbitraryValues: compilerOptions.arbitraryValues?.bareArbitraryValues,
418
- extractor: runtimeState.twPatcher.majorVersion === 3 ? require_hmr_timing.createTailwindV3DefaultExtractor() : void 0
419
- });
420
- await collector.scanRoot({
421
- entries: sourceScan?.entries,
422
- explicit: sourceScan?.explicit,
423
- root
424
- });
425
- collector.syncInline(sourceScan?.inlineCandidates);
426
- return require_hmr_timing.createCssTokenSourceMap(collector.sourcesForEntries(sourceScan?.entries), compilerOptions);
427
- })() : void 0;
597
+ const webpackSourceCandidates = groupedEntries.css?.length || require_hmr_timing.isCssSourceTraceEnabled(compilerOptions) ? await refreshWebpackSourceCandidates() : void 0;
598
+ const cssSourceTraceTokenSources = require_hmr_timing.isCssSourceTraceEnabled(compilerOptions) && webpackSourceCandidates ? require_hmr_timing.createCssTokenSourceMap(webpackSourceCandidates.tokenSources, compilerOptions) : void 0;
428
599
  const cssSourceTraceSignature = require_hmr_timing.createCssSourceTraceCacheSignature(cssSourceTraceTokenSources, compilerOptions);
429
600
  const annotateCss = (css) => require_hmr_timing.annotateCssSourceTrace(css, {
430
601
  opts: compilerOptions,
@@ -480,11 +651,13 @@ function setupWebpackV5ProcessAssetsHook(options) {
480
651
  const [file, originalSource] = element;
481
652
  const rawSource = originalSource.source().toString();
482
653
  const cacheKey = file;
654
+ const hashKey = `${file}:asset`;
655
+ rememberProcessCacheKey(cacheKey, hashKey);
483
656
  const chunkHash = assetHashByChunk.get(file);
484
657
  tasks.push(require_hmr_timing.processCachedTask({
485
658
  cache: compilerOptions.cache,
486
659
  cacheKey,
487
- hashKey: `${file}:asset`,
660
+ hashKey,
488
661
  rawSource,
489
662
  hash: chunkHash,
490
663
  applyResult(source, { cacheHit }) {
@@ -505,6 +678,8 @@ function setupWebpackV5ProcessAssetsHook(options) {
505
678
  const cacheKey = getCacheKey(file);
506
679
  const asset = compilation.getAsset(file);
507
680
  if (!asset) continue;
681
+ const hashKey = `${file}:asset`;
682
+ rememberProcessCacheKey(cacheKey, hashKey);
508
683
  const absoluteFile = require_bundle_state.toAbsoluteOutputPath(file, outputDir);
509
684
  const initialSource = asset.source.source();
510
685
  const initialRawSource = typeof initialSource === "string" ? initialSource : initialSource.toString();
@@ -513,7 +688,7 @@ function setupWebpackV5ProcessAssetsHook(options) {
513
688
  await require_hmr_timing.processCachedTask({
514
689
  cache: compilerOptions.cache,
515
690
  cacheKey,
516
- hashKey: `${file}:asset`,
691
+ hashKey,
517
692
  rawSource: initialRawSource,
518
693
  hash: chunkHash,
519
694
  applyResult(source, { cacheHit }) {
@@ -549,10 +724,12 @@ function setupWebpackV5ProcessAssetsHook(options) {
549
724
  const rawSource = originalSource.source().toString();
550
725
  if (isWebpackProcessedCssAsset?.(file, rawSource)) {
551
726
  const nextCss = finalizeCssAssetSource(rawSource, { generatedCss: require_bundle_state.hasBundlerGeneratedCssMarker(rawSource) });
727
+ const hashKey = `${file}:asset`;
728
+ rememberProcessCacheKey(file, hashKey);
552
729
  tasks.push(require_hmr_timing.processCachedTask({
553
730
  cache: compilerOptions.cache,
554
731
  cacheKey: file,
555
- hashKey: `${file}:asset`,
732
+ hashKey,
556
733
  rawSource,
557
734
  hash: createRuntimeAwareCssHash(assetHashByChunk.get(file), compilerOptions.cache.computeHash(rawSource), `${runtimeSetHash}:${cssSourceTraceSignature}`),
558
735
  applyResult(source, { cacheHit }) {
@@ -568,12 +745,21 @@ function setupWebpackV5ProcessAssetsHook(options) {
568
745
  }));
569
746
  continue;
570
747
  }
748
+ if (isWebGeneratorTarget) continue;
571
749
  const cacheKey = file;
572
- const runtimeAwareHash = createRuntimeAwareCssHash(assetHashByChunk.get(file), compilerOptions.cache.computeHash(rawSource), `${runtimeSetHash}:${cssSourceTraceSignature}`);
750
+ const hashKey = `${file}:asset`;
751
+ rememberProcessCacheKey(cacheKey, hashKey);
752
+ const chunkHash = assetHashByChunk.get(file);
753
+ const cssSourceHash = (() => {
754
+ const sourceFile = resolveWebpackCssSourceFile(file);
755
+ const sourceCss = sourceFile ? cssSources.get(sourceFile) : void 0;
756
+ return sourceCss === void 0 ? "webpack-css-source:0" : `webpack-css-source:1:${compilerOptions.cache.computeHash(sourceCss)}`;
757
+ })();
758
+ const runtimeAwareHash = createRuntimeAwareCssHash(chunkHash, compilerOptions.cache.computeHash(rawSource), `${runtimeSetHash}:${webpackSourceCandidates?.signature ?? "source-candidates:0"}:${cssSourceTraceSignature}:${cssSourceHash}`);
573
759
  tasks.push(require_hmr_timing.processCachedTask({
574
760
  cache: compilerOptions.cache,
575
761
  cacheKey,
576
- hashKey: `${file}:asset`,
762
+ hashKey,
577
763
  rawSource,
578
764
  hash: runtimeAwareHash,
579
765
  applyResult(source, { cacheHit }) {
@@ -585,29 +771,46 @@ function setupWebpackV5ProcessAssetsHook(options) {
585
771
  transform: async () => {
586
772
  await runtimeState.readyPromise;
587
773
  const cssHandlerOptions = getCssHandlerOptions(file);
774
+ const generatorRawSource = resolveWebpackGeneratorRawSource(rawSource, cssHandlerOptions);
588
775
  if (require_hmr_timing.isPureLocalCssImportWrapper(rawSource)) return { result: new ConcatSource(require_v3_engine.removeTailwindSourceDirectives(require_bundle_state.stripBundlerGeneratedCssMarkers(rawSource), { importFallback: true })) };
589
776
  const generated = await require_hmr_timing.generateCssByGenerator({
590
777
  opts: compilerOptions,
591
778
  runtimeState,
592
779
  runtime: runtimeSet,
593
- rawSource,
780
+ rawSource: generatorRawSource,
594
781
  file,
595
782
  cssHandlerOptions,
596
783
  cssUserHandlerOptions: getCssUserHandlerOptions(file),
784
+ getSourceCandidatesForEntries: webpackSourceCandidates?.getSourceCandidatesForEntries,
597
785
  styleHandler: compilerOptions.styleHandler,
598
786
  debug
599
787
  });
600
- const source = new ConcatSource(finalizeTracedCss(finalizeCssAssetSource(generated?.css ?? (await compilerOptions.styleHandler(rawSource, cssHandlerOptions)).css, { generatedCss: generated != null })));
788
+ const source = new ConcatSource(finalizeTracedCss(generated?.css ?? finalizeCssAssetSource((await compilerOptions.styleHandler(generatorRawSource, cssHandlerOptions)).css, { generatedCss: false })));
601
789
  if (generated) debug("css handle via tailwind v%s engine(%s): %s", runtimeState.twPatcher.majorVersion, generated.target, file);
602
790
  else debug("css handle: %s", file);
603
791
  return { result: source };
604
792
  }
605
793
  }));
606
794
  }
607
- require_bundle_state.pushConcurrentTaskFactories(tasks, jsTaskFactories);
795
+ require_hmr_timing.pushConcurrentTaskFactories(tasks, jsTaskFactories);
608
796
  await Promise.all(tasks);
797
+ compilerOptions.cache.prune?.({
798
+ cacheKeys: activeProcessCacheKeys,
799
+ hashKeys: activeProcessHashKeys
800
+ });
801
+ const activeCssFiles = new Set(groupedEntries.css?.map(([file]) => file) ?? []);
802
+ pruneWebpackCssHandlerOptionCaches(cssHandlerOptionsCache, cssUserHandlerOptionsCache, activeCssFiles);
609
803
  debug("end");
610
- require_hmr_timing.emitHmrTiming("webpack", "processAssets", performance.now() - hmrTimingStartedAt);
804
+ require_hmr_timing.emitHmrTiming("webpack", "processAssets", performance.now() - hmrTimingStartedAt, { memoryDebug: resolveWebpackMemoryDebugStats({
805
+ activeAssetFiles: entries.length,
806
+ activeCssFiles: activeCssFiles.size,
807
+ activeProcessCacheKeys,
808
+ activeProcessHashKeys,
809
+ cache: compilerOptions.cache,
810
+ cssHandlerOptionsCache,
811
+ cssUserHandlerOptionsCache,
812
+ phase: "processAssets"
813
+ }) });
611
814
  compilerOptions.onEnd();
612
815
  });
613
816
  });
@@ -650,10 +853,11 @@ function createLoaderAnchorFinders(appType) {
650
853
  //#endregion
651
854
  //#region src/bundlers/webpack/BaseUnifiedPlugin/v5-loaders.ts
652
855
  function setupWebpackV5Loaders(options) {
653
- const { compiler, options: compilerOptions, appType, weappTailwindcssPackageDir, shouldRewriteCssImports, runtimeLoaderPath, registerAutoCssSource, runtimeState, getClassSetInLoader, getRuntimeSetInLoader, markWebpackProcessedCssSource, getRuntimeWatchDependencies, runtimeRegistryKey = `weapp-tailwindcss-${Date.now()}-${Math.random().toString(36).slice(2)}`, debug } = options;
856
+ const { compiler, options: compilerOptions, appType, weappTailwindcssPackageDir, shouldRewriteCssImports, runtimeLoaderPath, registerAutoCssSource, runtimeState, getClassSetInLoader, getRuntimeSetInLoader, markWebpackProcessedCssSource, registerWebpackCssSourceFile, getRuntimeWatchDependencies, runtimeRegistryKey = `weapp-tailwindcss-${Date.now()}-${Math.random().toString(36).slice(2)}`, debug } = options;
654
857
  const isMpxApp = isMpx(appType);
655
858
  if (shouldRewriteCssImports && isMpxApp) ensureMpxTailwindcssAliases(compiler, weappTailwindcssPackageDir);
656
859
  const runtimeClassSetLoader = runtimeLoaderPath ?? node_path.default.resolve(__dirname, "./weapp-tw-runtime-classset-loader.js");
860
+ const shouldInjectRuntimeClassSetLoader = compilerOptions.generator?.target !== "web";
657
861
  const runtimeCssImportRewriteLoader = shouldRewriteCssImports ? node_path.default.resolve(__dirname, "./weapp-tw-css-import-rewrite-loader.js") : void 0;
658
862
  const runtimeClassSetLoaderExists = node_fs.default.existsSync(runtimeClassSetLoader);
659
863
  const runtimeCssImportRewriteLoaderExists = runtimeCssImportRewriteLoader ? node_fs.default.existsSync(runtimeCssImportRewriteLoader) : false;
@@ -669,7 +873,8 @@ function setupWebpackV5Loaders(options) {
669
873
  setWebpackLoaderRuntime(runtimeRegistryKey, {
670
874
  classSet: {
671
875
  getClassSet: getClassSetInLoader,
672
- getWatchDependencies: getRuntimeWatchDependencies
876
+ getWatchDependencies: getRuntimeWatchDependencies,
877
+ ...registerWebpackCssSourceFile === void 0 ? {} : { registerCssSourceFile: registerWebpackCssSourceFile }
673
878
  },
674
879
  ...runtimeLoaderRewriteOptions === void 0 ? {} : { cssImportRewrite: runtimeLoaderRewriteOptions }
675
880
  });
@@ -727,7 +932,7 @@ function setupWebpackV5Loaders(options) {
727
932
  rewriteAnchorIdx = findRewriteAnchor(loaderEntries);
728
933
  }
729
934
  }
730
- if (runtimeClassSetLoaderExists && !hasLoaderEntry(loaderEntries, runtimeClassSetLoader)) {
935
+ if (shouldInjectRuntimeClassSetLoader && runtimeClassSetLoaderExists && !hasLoaderEntry(loaderEntries, runtimeClassSetLoader)) {
731
936
  const classSetLoaderEntry = createRuntimeClassSetLoaderEntry();
732
937
  const anchorIndex = findClassSetAnchor(loaderEntries);
733
938
  if (anchorIndex === -1) anchorlessInsert(classSetLoaderEntry, "before");
@@ -835,6 +1040,7 @@ var WeappTailwindcss = class {
835
1040
  const runtimeWatchDependencyFiles = /* @__PURE__ */ new Set();
836
1041
  const runtimeWatchDependencyContexts = /* @__PURE__ */ new Set();
837
1042
  const webpackProcessedCssSourceFiles = /* @__PURE__ */ new Set();
1043
+ const webpackCssSources = /* @__PURE__ */ new Map();
838
1044
  let runtimeMetadataPrepared = false;
839
1045
  const updateRuntimeWatchDependencies = async () => {
840
1046
  runtimeWatchDependencyFiles.clear();
@@ -882,7 +1088,7 @@ var WeappTailwindcss = class {
882
1088
  syncRuntimeRefreshRequirement();
883
1089
  };
884
1090
  const registerAutoCssSource = async (source) => {
885
- if (this.hasInitialTailwindCssRoots || (runtimeState.twPatcher.majorVersion ?? 0) < 4 || !source.file) return;
1091
+ if ((runtimeState.twPatcher.majorVersion ?? 0) < 4 || !source.file) return;
886
1092
  if (!require_tailwindcss.upsertTailwindV4CssSource(this.options, source)) return;
887
1093
  runtimeSetPrepared = false;
888
1094
  runtimeMetadataPrepared = false;
@@ -896,6 +1102,9 @@ var WeappTailwindcss = class {
896
1102
  const markWebpackProcessedCssSource = (file) => {
897
1103
  webpackProcessedCssSourceFiles.add(node_path.default.resolve(file));
898
1104
  };
1105
+ const registerWebpackCssSourceFile = (source) => {
1106
+ webpackCssSources.set(node_path.default.resolve(source.file), source.css);
1107
+ };
899
1108
  const isWebpackProcessedTailwindEntryAsset = (file) => {
900
1109
  if ((runtimeState.twPatcher.majorVersion ?? 0) < 4 || !this.options.mainCssChunkMatcher(file, this.appType) || webpackProcessedCssSourceFiles.size === 0) return false;
901
1110
  const tailwindOptions = require_v3_engine.resolveTailwindcssOptions(runtimeState.twPatcher.options);
@@ -943,6 +1152,7 @@ var WeappTailwindcss = class {
943
1152
  getClassSetInLoader,
944
1153
  getRuntimeSetInLoader,
945
1154
  markWebpackProcessedCssSource,
1155
+ registerWebpackCssSourceFile,
946
1156
  getRuntimeWatchDependencies() {
947
1157
  return {
948
1158
  files: runtimeWatchDependencyFiles,
@@ -966,6 +1176,7 @@ var WeappTailwindcss = class {
966
1176
  },
967
1177
  isWatchMode: () => watchRunObserved || compiler.options?.watch === true,
968
1178
  runtimeClassSetManager: this.options.__internalWebpackRuntimeClassSetManager,
1179
+ getWebpackCssSources: () => webpackCssSources,
969
1180
  debug
970
1181
  });
971
1182
  }
package/dist/webpack.js CHANGED
@@ -1,5 +1,5 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
- const require_webpack = require("./webpack-CJAOcYEO.js");
2
+ const require_webpack = require("./webpack-CfkUkMXG.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-DPdrcC2X.mjs";
1
+ import { n as weappTailwindcssPackageDir, t as WeappTailwindcss } from "./webpack-BcPpnT90.mjs";
2
2
  export { WeappTailwindcss, WeappTailwindcss as weappTailwindcss, weappTailwindcssPackageDir };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "weapp-tailwindcss",
3
- "version": "5.0.11",
3
+ "version": "5.0.13",
4
4
  "description": "把 tailwindcss 原子化样式思想,带给小程序开发者们! bring tailwindcss to miniprogram developers!",
5
5
  "author": "ice breaker <1324318532@qq.com>",
6
6
  "license": "MIT",
@@ -86,6 +86,11 @@
86
86
  "import": "./dist/defaults.mjs",
87
87
  "require": "./dist/defaults.js"
88
88
  },
89
+ "./framework": {
90
+ "types": "./dist/framework.d.ts",
91
+ "import": "./dist/framework.mjs",
92
+ "require": "./dist/framework.js"
93
+ },
89
94
  "./presets": {
90
95
  "types": "./dist/presets.d.ts",
91
96
  "import": "./dist/presets.mjs",
@@ -172,7 +177,7 @@
172
177
  "@babel/parser": "~7.29.7",
173
178
  "@babel/traverse": "~7.29.7",
174
179
  "@babel/types": "~7.29.7",
175
- "@vue/compiler-dom": "^3.5.35",
180
+ "@vue/compiler-dom": "^3.5.38",
176
181
  "@weapp-core/escape": "~8.0.0",
177
182
  "comment-json": "^5.0.0",
178
183
  "debug": "~4.4.3",
@@ -182,12 +187,12 @@
182
187
  "magic-string": "0.30.21",
183
188
  "micromatch": "^4.0.8",
184
189
  "semver": "~7.8.4",
185
- "tailwindcss-patch": "9.4.3",
190
+ "tailwindcss-patch": "9.4.4",
186
191
  "yaml": "^2.9.0",
187
192
  "@weapp-tailwindcss/logger": "2.0.0",
188
- "@weapp-tailwindcss/postcss": "3.0.7",
189
- "@weapp-tailwindcss/shared": "2.0.0",
193
+ "@weapp-tailwindcss/postcss": "3.0.8",
190
194
  "@weapp-tailwindcss/reset": "0.1.1",
195
+ "@weapp-tailwindcss/shared": "2.0.0",
191
196
  "tailwindcss-config": "2.0.0"
192
197
  },
193
198
  "devDependencies": {