weapp-tailwindcss 5.2.13 → 5.2.14

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 (27) hide show
  1. package/dist/bundlers/shared/source-candidates/scan-root.d.ts +1 -1
  2. package/dist/bundlers/shared/source-candidates/types-and-cache.d.ts +2 -0
  3. package/dist/bundlers/vite/shared/framework-source-scan-session.d.ts +2 -2
  4. package/dist/{gulp-G--cGMcR.js → gulp-DG6cWPF4.js} +1 -1
  5. package/dist/{gulp-DxKLSgXX.cjs → gulp-DzIR7eO3.cjs} +2 -2
  6. package/dist/gulp.cjs +1 -1
  7. package/dist/gulp.js +1 -1
  8. package/dist/{hmr-timing-BtqnyxAO.cjs → hmr-timing-BIPr9t9m.cjs} +1 -1
  9. package/dist/{hmr-timing-iTua_Z55.js → hmr-timing-CoyM6Dg2.js} +14 -8
  10. package/dist/index.cjs +3 -3
  11. package/dist/index.js +3 -3
  12. package/dist/{pipeline-helpers-DnYpfbat.cjs → pipeline-helpers-Bp343-ik.cjs} +1 -1
  13. package/dist/rspack.cjs +1 -1
  14. package/dist/rspack.js +1 -1
  15. package/dist/{source-candidate-scan-signature-TKJIs7VF.js → source-candidate-scan-signature-BLXoEZN5.js} +1 -1
  16. package/dist/{source-candidate-scan-signature-Ggn8fzkT.cjs → source-candidate-scan-signature-J9EW91KX.cjs} +1 -1
  17. package/dist/{v4-generation-core-D-zVR2mt.cjs → v4-generation-core-CCnEsAgV.cjs} +14 -8
  18. package/dist/{vite-B577QMUl.js → vite-DNTQV3gN.js} +59 -21
  19. package/dist/{vite-BFWJAH16.cjs → vite-RJpkDte7.cjs} +59 -21
  20. package/dist/vite.cjs +1 -1
  21. package/dist/vite.js +1 -1
  22. package/dist/weapp-tw-css-import-rewrite-loader.cjs +2 -2
  23. package/dist/{webpack-DTqFKvcE.cjs → webpack-BY5y7f0X.cjs} +4 -4
  24. package/dist/{webpack-DLJkStre.js → webpack-DYoIysDo.js} +2 -2
  25. package/dist/webpack.cjs +1 -1
  26. package/dist/webpack.js +1 -1
  27. package/package.json +2 -2
@@ -7,6 +7,6 @@ interface ResolveSourceCandidateScanFilesOptions {
7
7
  root: string;
8
8
  }
9
9
  type SourceCandidateEligibilityRoot = Omit<ResolveSourceCandidateScanFilesOptions, 'filter'>;
10
- export declare function createSourceCandidateEligibilityMatcher(roots: SourceCandidateEligibilityRoot[]): (file: string) => boolean;
10
+ export declare function createSourceCandidateEligibilityMatcher(roots: SourceCandidateEligibilityRoot[], eligibleFiles?: Iterable<string>): (file: string) => boolean;
11
11
  export declare function resolveSourceCandidateScanFiles(options: ResolveSourceCandidateScanFilesOptions): Promise<string[]>;
12
12
  export {};
@@ -10,6 +10,7 @@ export interface SourceCandidateStore {
10
10
  syncFile: (id: string) => Promise<void>;
11
11
  syncCurrentSource: (id: string, source: string) => Promise<SourceCandidateChange>;
12
12
  syncCurrentFile: (id: string) => Promise<SourceCandidateChange>;
13
+ resolveScanFiles: (options: ScanSourceCandidateRootOptions) => Promise<string[]>;
13
14
  scanRoot: (options: ScanSourceCandidateRootOptions) => Promise<void>;
14
15
  syncInline: (inlineCandidates: TailwindInlineSourceCandidates | undefined) => void;
15
16
  remove: (id: string) => SourceCandidateChange;
@@ -50,6 +51,7 @@ export interface ScanSourceCandidateRootOptions {
50
51
  outDir?: string | undefined;
51
52
  entries?: TailwindSourceEntry[] | undefined;
52
53
  explicit?: boolean | undefined;
54
+ onFilesResolved?: ((files: string[]) => void) | undefined;
53
55
  }
54
56
  export interface SourceCandidateCollectorOptions {
55
57
  bareArbitraryValues?: IArbitraryValues['bareArbitraryValues'] | undefined;
@@ -2,7 +2,7 @@ import type { HmrContext } from 'vite';
2
2
  import type { createViteCssMemory } from '../css-memory.js';
3
3
  import type { createViteRuntimeClassSet } from '../runtime-class-set.js';
4
4
  import type { createSourceCandidateCollector } from '../source-candidates.js';
5
- import type { createViteHmrCandidateState } from './framework-hmr-candidate-state.js';
5
+ import type { createViteHmrCandidateState, ViteSourceCandidateChange } from './framework-hmr-candidate-state.js';
6
6
  type SourceCandidateCollector = ReturnType<typeof createSourceCandidateCollector>;
7
7
  type CssMemory = ReturnType<typeof createViteCssMemory>;
8
8
  type RuntimeState = ReturnType<typeof createViteRuntimeClassSet>['runtimeState'];
@@ -36,7 +36,7 @@ export declare function createFrameworkSourceScanSession(options: FrameworkSourc
36
36
  sync: (syncOptions?: {
37
37
  force?: boolean;
38
38
  }) => Promise<void>;
39
- syncChangedFile: (id: string, sourceOverride?: string) => any;
39
+ syncChangedFile: (id: string, sourceOverride?: string) => Promise<ViteSourceCandidateChange | undefined>;
40
40
  waitForPendingSyncs: () => Promise<void>;
41
41
  };
42
42
  export {};
@@ -1,6 +1,6 @@
1
1
  import { Pt as getTailwindV4IncrementalGenerateCacheStats, Q as hasTailwindRootDirectives, _ as upsertTailwindV4CssSource, et as normalizeTailwindConfigDirectives, g as removeTailwindV4CssSource, h as hasConfiguredTailwindV4CssRoots, nt as normalizeTailwindSourceForGenerator, vt as prependConfigDirective } from "./generator-BP4WmgIo.js";
2
2
  import { f as resolveSourceScanEntries, l as getRuntimeClassSetSignature } from "./tailwindcss-C2K-vjJv.js";
3
- import { $ as getCompilationScopeDependencyRevision, A as annotateCssSourceTrace, B as splitLocalCssImports, D as stripBundlerGeneratedCssMarkers, F as createRuntimeClassSetManager, G as removeRuntimeCompilationBuildStateFiles, H as buildRuntimeCompilationSnapshot, J as createRuntimeAffectingSourceSignature, M as createCssTokenSourceMap, O as finalizeMiniProgramCssStructure, P as processCachedTask, Q as AssetEmissionPlan, T as hasBundlerGeneratedCssMarker, V as finalizeCompilerShadowRun, W as createRuntimeCompilationBuildState, X as beginCompilerShadowRun, Y as disposeCompilerOwner, Z as getCompilerShadowRunSnapshot, b as finalizeMiniProgramGeneratorCss, et as invalidateCompilationScope, j as createCssSourceTraceCacheSignature, n as emitHmrTiming, nt as createCompilationDependencyChanges, q as updateRuntimeCompilationBuildState, r as generateTailwindV4Css, rt as createSourceCandidateCollector, tt as recordCompilationDependencyChanges, w as createBundlerGeneratedCssMarker, z as rewriteLocalCssImportRequestsForOutput } from "./hmr-timing-iTua_Z55.js";
3
+ import { $ as getCompilationScopeDependencyRevision, A as annotateCssSourceTrace, B as splitLocalCssImports, D as stripBundlerGeneratedCssMarkers, F as createRuntimeClassSetManager, G as removeRuntimeCompilationBuildStateFiles, H as buildRuntimeCompilationSnapshot, J as createRuntimeAffectingSourceSignature, M as createCssTokenSourceMap, O as finalizeMiniProgramCssStructure, P as processCachedTask, Q as AssetEmissionPlan, T as hasBundlerGeneratedCssMarker, V as finalizeCompilerShadowRun, W as createRuntimeCompilationBuildState, X as beginCompilerShadowRun, Y as disposeCompilerOwner, Z as getCompilerShadowRunSnapshot, b as finalizeMiniProgramGeneratorCss, et as invalidateCompilationScope, j as createCssSourceTraceCacheSignature, n as emitHmrTiming, nt as createCompilationDependencyChanges, q as updateRuntimeCompilationBuildState, r as generateTailwindV4Css, rt as createSourceCandidateCollector, tt as recordCompilationDependencyChanges, w as createBundlerGeneratedCssMarker, z as rewriteLocalCssImportRequestsForOutput } from "./hmr-timing-CoyM6Dg2.js";
4
4
  import { m as createDebug } from "./wxml-B7OAVpXJ.js";
5
5
  import { l as createTailwindRuntimeReadyPromise, n as normalizeStyleHandlerMajorVersion, o as shouldSkipJsTransform, t as getCompilerContext, u as ensureRuntimeClassSet } from "./context-CKQKq4Mv.js";
6
6
  import fs from "node:fs";
@@ -1,9 +1,9 @@
1
1
  const require_rolldown_runtime = require("./rolldown-runtime-Ctb5zv51.cjs");
2
2
  const require_generator = require("./generator-BXrWA7Sj.cjs");
3
3
  const require_options = require("./options-DbYws6lr.cjs");
4
- const require_v4_generation_core = require("./v4-generation-core-D-zVR2mt.cjs");
4
+ const require_v4_generation_core = require("./v4-generation-core-CCnEsAgV.cjs");
5
5
  const require_wxml = require("./wxml-CQmBCjOR.cjs");
6
- const require_hmr_timing = require("./hmr-timing-BtqnyxAO.cjs");
6
+ const require_hmr_timing = require("./hmr-timing-BIPr9t9m.cjs");
7
7
  const require_context = require("./context-vWlNv-Cf.cjs");
8
8
  const require_tailwindcss = require("./tailwindcss-D1M2xj5O.cjs");
9
9
  const require_style_options = require("./style-options-Cta1OP3i.cjs");
package/dist/gulp.cjs CHANGED
@@ -1,5 +1,5 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
- const require_gulp = require("./gulp-DxKLSgXX.cjs");
2
+ const require_gulp = require("./gulp-DzIR7eO3.cjs");
3
3
  exports.WeappTailwindcss = require_gulp.createPlugins;
4
4
  exports.createPlugins = require_gulp.createPlugins;
5
5
  exports.weappTailwindcss = require_gulp.createPlugins;
package/dist/gulp.js CHANGED
@@ -1,2 +1,2 @@
1
- import { t as createPlugins } from "./gulp-G--cGMcR.js";
1
+ import { t as createPlugins } from "./gulp-DG6cWPF4.js";
2
2
  export { createPlugins as WeappTailwindcss, createPlugins, createPlugins as weappTailwindcss };
@@ -1,6 +1,6 @@
1
1
  const require_rolldown_runtime = require("./rolldown-runtime-Ctb5zv51.cjs");
2
2
  const require_generator = require("./generator-BXrWA7Sj.cjs");
3
- const require_v4_generation_core = require("./v4-generation-core-D-zVR2mt.cjs");
3
+ const require_v4_generation_core = require("./v4-generation-core-CCnEsAgV.cjs");
4
4
  const require_wxml = require("./wxml-CQmBCjOR.cjs");
5
5
  const require_tailwindcss = require("./tailwindcss-D1M2xj5O.cjs");
6
6
  let node_process = require("node:process");
@@ -108,9 +108,10 @@ function createDefaultIgnoredSources(root, outDirIgnore, entries, explicit) {
108
108
  }] : []];
109
109
  }
110
110
  /** 创建与文件系统 root scan 一致的增量源码资格判断器。 */
111
- function createSourceCandidateEligibilityMatcher(roots) {
111
+ function createSourceCandidateEligibilityMatcher(roots, eligibleFiles) {
112
+ const eligibleFileSet = eligibleFiles === void 0 ? void 0 : new Set([...eligibleFiles].map(resolveSourceScanPath));
112
113
  const matchers = roots.map((options) => {
113
- const root = path.resolve(options.root);
114
+ const root = resolveSourceScanPath(options.root);
114
115
  const outDirIgnore = resolveOutDirIgnorePattern(root, options.outDir);
115
116
  const entries = options.entries;
116
117
  const explicit = options.explicit === true;
@@ -120,11 +121,11 @@ function createSourceCandidateEligibilityMatcher(roots) {
120
121
  if (explicit) return hasPositiveEntry && isFileMatchedByTailwindSourceEntries(resolvedFile, entries);
121
122
  const relative = path.relative(root, resolvedFile);
122
123
  if (!relative || relative.startsWith("..") || path.isAbsolute(relative)) return false;
123
- return isFileMatchedByTailwindSourceEntries(resolvedFile, entries) && !isFileExcludedByTailwindSourceEntries(resolvedFile, ignoredSources);
124
+ return isFileMatchedByTailwindSourceEntries(resolvedFile, entries) && !isFileExcludedByTailwindSourceEntries(resolvedFile, ignoredSources) && (eligibleFileSet?.has(resolvedFile) ?? true);
124
125
  };
125
126
  });
126
127
  return (file) => {
127
- const resolvedFile = path.resolve(file);
128
+ const resolvedFile = resolveSourceScanPath(file);
128
129
  return matchers.some((matches) => matches(resolvedFile));
129
130
  };
130
131
  }
@@ -384,15 +385,19 @@ function createSourceCandidateStore(options = {}) {
384
385
  throw error;
385
386
  }
386
387
  }
387
- async function scanRoot({ entries, explicit, root, outDir }) {
388
- const files = await resolveSourceCandidateScanFiles({
388
+ async function resolveScanFiles({ entries, explicit, root, outDir }) {
389
+ return (await resolveSourceCandidateScanFiles({
389
390
  entries,
390
391
  explicit,
391
392
  filter: isSourceCandidateRequest,
392
393
  outDir,
393
394
  root
394
- });
395
- await Promise.all(files.map((file) => syncFile(resolveSourceScanPath(file))));
395
+ })).map(resolveSourceScanPath);
396
+ }
397
+ async function scanRoot(options) {
398
+ const resolvedFiles = await resolveScanFiles(options);
399
+ options.onFilesResolved?.(resolvedFiles);
400
+ await Promise.all(resolvedFiles.map(syncFile));
396
401
  }
397
402
  function replaceFinal(id, nextCandidates) {
398
403
  const normalizedId = cleanUrl(id);
@@ -578,6 +583,7 @@ function createSourceCandidateStore(options = {}) {
578
583
  syncFile,
579
584
  syncCurrentSource,
580
585
  syncCurrentFile,
586
+ resolveScanFiles,
581
587
  scanRoot,
582
588
  syncInline,
583
589
  remove,
package/dist/index.cjs CHANGED
@@ -1,10 +1,10 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
2
  const require_framework = require("./framework.cjs");
3
3
  const require_generator = require("./generator-BXrWA7Sj.cjs");
4
- const require_gulp = require("./gulp-DxKLSgXX.cjs");
4
+ const require_gulp = require("./gulp-DzIR7eO3.cjs");
5
5
  const require_postcss = require("./postcss.cjs");
6
- const require_vite = require("./vite-BFWJAH16.cjs");
7
- const require_webpack = require("./webpack-DTqFKvcE.cjs");
6
+ const require_vite = require("./vite-RJpkDte7.cjs");
7
+ const require_webpack = require("./webpack-BY5y7f0X.cjs");
8
8
  require("./webpack.cjs");
9
9
  let _weapp_tailwindcss_postcss = require("@weapp-tailwindcss/postcss");
10
10
  exports.WeappTailwindcss = require_vite.WeappTailwindcss;
package/dist/index.js CHANGED
@@ -1,9 +1,9 @@
1
1
  import { detectAppType, detectAppTypeFromEnv, detectAppTypeFromPackageJson, isMpxPackage, isRunningInHBuilderX, isTaroPackage, isUniAppPackage, isUniAppVitePackage, isUniAppXManifest, isUniAppXPackage, isWeappVitePackage, resolveImplicitAppTypeFromViteRoot, resolveMpxPlatform, resolvePlatform, resolveTaroPlatform, resolveUniAppXPlatform, resolveUniPlatform, resolveUniPlatformsFromEnv, resolveUniUtsPlatform } from "./framework.js";
2
2
  import { t as createWeappTailwindcssGenerator } from "./generator-BP4WmgIo.js";
3
- import { t as createPlugins } from "./gulp-G--cGMcR.js";
3
+ import { t as createPlugins } from "./gulp-DG6cWPF4.js";
4
4
  import weappTailwindcssPostcssPlugin from "./postcss.js";
5
- import { t as WeappTailwindcss } from "./vite-B577QMUl.js";
6
- import { n as weappTailwindcssPackageDir } from "./webpack-DLJkStre.js";
5
+ import { t as WeappTailwindcss } from "./vite-DNTQV3gN.js";
6
+ import { n as weappTailwindcssPackageDir } from "./webpack-DYoIysDo.js";
7
7
  import "./webpack.js";
8
8
  import { unitConversionComposeRules, unitConversionPresets } from "@weapp-tailwindcss/postcss";
9
9
  export { WeappTailwindcss, createPlugins, createWeappTailwindcssGenerator, detectAppType, detectAppTypeFromEnv, detectAppTypeFromPackageJson, isMpxPackage, isRunningInHBuilderX, isTaroPackage, isUniAppPackage, isUniAppVitePackage, isUniAppXManifest, isUniAppXPackage, isWeappVitePackage, resolveImplicitAppTypeFromViteRoot, resolveMpxPlatform, resolvePlatform, resolveTaroPlatform, resolveUniAppXPlatform, resolveUniPlatform, resolveUniPlatformsFromEnv, resolveUniUtsPlatform, unitConversionComposeRules, unitConversionPresets, weappTailwindcssPackageDir, weappTailwindcssPostcssPlugin };
@@ -1,6 +1,6 @@
1
1
  const require_rolldown_runtime = require("./rolldown-runtime-Ctb5zv51.cjs");
2
2
  const require_generator = require("./generator-BXrWA7Sj.cjs");
3
- const require_v4_generation_core = require("./v4-generation-core-D-zVR2mt.cjs");
3
+ const require_v4_generation_core = require("./v4-generation-core-CCnEsAgV.cjs");
4
4
  const require_defaults = require("./defaults.cjs");
5
5
  const require_style_options = require("./style-options-Cta1OP3i.cjs");
6
6
  let node_path = require("node:path");
package/dist/rspack.cjs CHANGED
@@ -1,6 +1,6 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
2
  const require_rolldown_runtime = require("./rolldown-runtime-Ctb5zv51.cjs");
3
- const require_webpack = require("./webpack-DTqFKvcE.cjs");
3
+ const require_webpack = require("./webpack-BY5y7f0X.cjs");
4
4
  let node_path = require("node:path");
5
5
  node_path = require_rolldown_runtime.__toESM(node_path, 1);
6
6
  //#region src/bundlers/rspack/index.ts
package/dist/rspack.js CHANGED
@@ -1,4 +1,4 @@
1
- import { n as weappTailwindcssPackageDir, r as __dirname, t as WeappTailwindcss } from "./webpack-DLJkStre.js";
1
+ import { n as weappTailwindcssPackageDir, r as __dirname, t as WeappTailwindcss } from "./webpack-DYoIysDo.js";
2
2
  import path from "node:path";
3
3
  //#region src/bundlers/rspack/index.ts
4
4
  const CSS_IMPORT_REWRITE_LOADER_NAME = "weapp-tw-css-import-rewrite-loader";
@@ -2,7 +2,7 @@ import { detectAppType } from "./framework.js";
2
2
  import { At as toPosixPath } from "./generator-BP4WmgIo.js";
3
3
  import { n as hasCssMacroTailwindV4CustomVariantConditionalComments } from "./auto-2dg_uhEJ.js";
4
4
  import { g as resolveTailwindV4EntriesFromCssCached, i as resolveUniAppXOptions } from "./tailwindcss-C2K-vjJv.js";
5
- import { S as isSourceStyleRequest } from "./hmr-timing-iTua_Z55.js";
5
+ import { S as isSourceStyleRequest } from "./hmr-timing-CoyM6Dg2.js";
6
6
  import { createRequire } from "node:module";
7
7
  import path from "node:path";
8
8
  import { weappStyleInjector } from "weapp-style-injector/vite";
@@ -3,7 +3,7 @@ const require_framework = require("./framework.cjs");
3
3
  const require_generator = require("./generator-BXrWA7Sj.cjs");
4
4
  require("./auto-DtU6f3X6.cjs");
5
5
  const require_options = require("./options-DbYws6lr.cjs");
6
- const require_v4_generation_core = require("./v4-generation-core-D-zVR2mt.cjs");
6
+ const require_v4_generation_core = require("./v4-generation-core-CCnEsAgV.cjs");
7
7
  let node_path = require("node:path");
8
8
  node_path = require_rolldown_runtime.__toESM(node_path, 1);
9
9
  let node_module = require("node:module");
@@ -111,9 +111,10 @@ function createDefaultIgnoredSources(root, outDirIgnore, entries, explicit) {
111
111
  }] : []];
112
112
  }
113
113
  /** 创建与文件系统 root scan 一致的增量源码资格判断器。 */
114
- function createSourceCandidateEligibilityMatcher(roots) {
114
+ function createSourceCandidateEligibilityMatcher(roots, eligibleFiles) {
115
+ const eligibleFileSet = eligibleFiles === void 0 ? void 0 : new Set([...eligibleFiles].map(require_generator.resolveSourceScanPath));
115
116
  const matchers = roots.map((options) => {
116
- const root = node_path.default.resolve(options.root);
117
+ const root = require_generator.resolveSourceScanPath(options.root);
117
118
  const outDirIgnore = resolveOutDirIgnorePattern(root, options.outDir);
118
119
  const entries = options.entries;
119
120
  const explicit = options.explicit === true;
@@ -123,11 +124,11 @@ function createSourceCandidateEligibilityMatcher(roots) {
123
124
  if (explicit) return hasPositiveEntry && require_generator.isFileMatchedByTailwindSourceEntries(resolvedFile, entries);
124
125
  const relative = node_path.default.relative(root, resolvedFile);
125
126
  if (!relative || relative.startsWith("..") || node_path.default.isAbsolute(relative)) return false;
126
- return require_generator.isFileMatchedByTailwindSourceEntries(resolvedFile, entries) && !require_generator.isFileExcludedByTailwindSourceEntries(resolvedFile, ignoredSources);
127
+ return require_generator.isFileMatchedByTailwindSourceEntries(resolvedFile, entries) && !require_generator.isFileExcludedByTailwindSourceEntries(resolvedFile, ignoredSources) && (eligibleFileSet?.has(resolvedFile) ?? true);
127
128
  };
128
129
  });
129
130
  return (file) => {
130
- const resolvedFile = node_path.default.resolve(file);
131
+ const resolvedFile = require_generator.resolveSourceScanPath(file);
131
132
  return matchers.some((matches) => matches(resolvedFile));
132
133
  };
133
134
  }
@@ -387,15 +388,19 @@ function createSourceCandidateStore(options = {}) {
387
388
  throw error;
388
389
  }
389
390
  }
390
- async function scanRoot({ entries, explicit, root, outDir }) {
391
- const files = await resolveSourceCandidateScanFiles({
391
+ async function resolveScanFiles({ entries, explicit, root, outDir }) {
392
+ return (await resolveSourceCandidateScanFiles({
392
393
  entries,
393
394
  explicit,
394
395
  filter: isSourceCandidateRequest,
395
396
  outDir,
396
397
  root
397
- });
398
- await Promise.all(files.map((file) => syncFile(require_generator.resolveSourceScanPath(file))));
398
+ })).map(require_generator.resolveSourceScanPath);
399
+ }
400
+ async function scanRoot(options) {
401
+ const resolvedFiles = await resolveScanFiles(options);
402
+ options.onFilesResolved?.(resolvedFiles);
403
+ await Promise.all(resolvedFiles.map(syncFile));
399
404
  }
400
405
  function replaceFinal(id, nextCandidates) {
401
406
  const normalizedId = cleanUrl(id);
@@ -581,6 +586,7 @@ function createSourceCandidateStore(options = {}) {
581
586
  syncFile,
582
587
  syncCurrentSource,
583
588
  syncCurrentFile,
589
+ resolveScanFiles,
584
590
  scanRoot,
585
591
  syncInline,
586
592
  remove,
@@ -1,12 +1,12 @@
1
1
  import { resolveImplicitAppTypeFromViteRoot } from "./framework.js";
2
- import { $ as hasTailwindSourceDirectives, B as stripMiniProgramCssSpecificityPlaceholders, D as resolveTailwindcssOptions, Ft as filterUnsupportedMiniProgramTailwindV4Candidates, K as hasUserCssLayerBlocks, L as hasMiniProgramCssSpecificityPlaceholders, Pt as getTailwindV4IncrementalGenerateCacheStats, Q as hasTailwindRootDirectives, S as findNearestPackageRoot, U as normalizeEmptyTailwindCustomVariants, X as hasTailwindApplyDirective, Y as hasLocalCssImport, Z as hasTailwindNonRootGenerationDirectives, _ as upsertTailwindV4CssSource, a as resolveGeneratorRuntimeBranch, b as isTailwindV4CssEntry, c as shouldUseNativeAppCssBranch, et as normalizeTailwindConfigDirectives, h as hasConfiguredTailwindV4CssRoots, i as normalizeWeappTailwindcssGeneratorOptions, it as removeTailwindSourceDirectives, kt as resolveTailwindV4CssSourceBase, l as resolveUniUtsPlatform, m as filterTailwindV4CssSourceRoots, mt as stripGeneratorPlaceholderMarkers, nt as normalizeTailwindSourceForGenerator, q as splitUserCssLayerBlocks, rt as parseImportRequest, s as shouldUseMiniProgramCssBranch, ut as hasTailwindGeneratedCssMarkers, wt as isFileMatchedByTailwindSourceEntries, x as normalizeCssEntries } from "./generator-BP4WmgIo.js";
2
+ import { $ as hasTailwindSourceDirectives, B as stripMiniProgramCssSpecificityPlaceholders, D as resolveTailwindcssOptions, Ft as filterUnsupportedMiniProgramTailwindV4Candidates, K as hasUserCssLayerBlocks, L as hasMiniProgramCssSpecificityPlaceholders, Ot as resolveSourceScanPath, Pt as getTailwindV4IncrementalGenerateCacheStats, Q as hasTailwindRootDirectives, S as findNearestPackageRoot, U as normalizeEmptyTailwindCustomVariants, X as hasTailwindApplyDirective, Y as hasLocalCssImport, Z as hasTailwindNonRootGenerationDirectives, _ as upsertTailwindV4CssSource, a as resolveGeneratorRuntimeBranch, b as isTailwindV4CssEntry, c as shouldUseNativeAppCssBranch, et as normalizeTailwindConfigDirectives, h as hasConfiguredTailwindV4CssRoots, i as normalizeWeappTailwindcssGeneratorOptions, it as removeTailwindSourceDirectives, kt as resolveTailwindV4CssSourceBase, l as resolveUniUtsPlatform, m as filterTailwindV4CssSourceRoots, mt as stripGeneratorPlaceholderMarkers, nt as normalizeTailwindSourceForGenerator, q as splitUserCssLayerBlocks, rt as parseImportRequest, s as shouldUseMiniProgramCssBranch, ut as hasTailwindGeneratedCssMarkers, wt as isFileMatchedByTailwindSourceEntries, x as normalizeCssEntries } from "./generator-BP4WmgIo.js";
3
3
  import { t as omitUndefined } from "./object-B-8IHefx.js";
4
4
  import { a as findTailwindConfig, f as resolveSourceScanEntries, g as resolveTailwindV4EntriesFromCssCached, i as resolveUniAppXOptions, l as getRuntimeClassSetSignature, m as resolveTailwindV4CssDependencies, p as discoverTailwindV4CssEntries, r as isUniAppXEnabled } from "./tailwindcss-C2K-vjJv.js";
5
5
  import "./utils-MVwpU07P.js";
6
- import { A as annotateCssSourceTrace, C as stripRequestQuery, D as stripBundlerGeneratedCssMarkers, E as parseBundlerGeneratedCssMarkerBlocks, F as createRuntimeClassSetManager, H as buildRuntimeCompilationSnapshot, J as createRuntimeAffectingSourceSignature, M as createCssTokenSourceMap, O as finalizeMiniProgramCssStructure, P as processCachedTask, Q as AssetEmissionPlan, R as isPureLocalCssImportWrapper, S as isSourceStyleRequest, T as hasBundlerGeneratedCssMarker, V as finalizeCompilerShadowRun, W as createRuntimeCompilationBuildState, X as beginCompilerShadowRun, Y as disposeCompilerOwner, a as extractMarkedUserLayerComponentsCss, at as isSourceCandidateRequest, d as runWithConcurrency, f as normalizeMiniProgramGeneratorCssSource, g as captureFrameworkPostcssOptions, i as validateCandidatesByGenerator, j as createCssSourceTraceCacheSignature, k as hasEmptyAtRuleBlockCandidate, m as scoreTailwindV4CssSourceFileMatch, nt as createCompilationDependencyChanges, o as mergeMarkedUserLayerComponentsCss, ot as extractCandidatesFromSource, p as normalizeMiniProgramImportShell, q as updateRuntimeCompilationBuildState, r as generateTailwindV4Css, rt as createSourceCandidateCollector, s as collectGeneratedRawSourceCandidatesFromCss, st as createSourceCandidateEligibilityMatcher, t as createHmrTimingRecorder, tt as recordCompilationDependencyChanges, w as createBundlerGeneratedCssMarker } from "./hmr-timing-iTua_Z55.js";
6
+ import { A as annotateCssSourceTrace, C as stripRequestQuery, D as stripBundlerGeneratedCssMarkers, E as parseBundlerGeneratedCssMarkerBlocks, F as createRuntimeClassSetManager, H as buildRuntimeCompilationSnapshot, J as createRuntimeAffectingSourceSignature, M as createCssTokenSourceMap, O as finalizeMiniProgramCssStructure, P as processCachedTask, Q as AssetEmissionPlan, R as isPureLocalCssImportWrapper, S as isSourceStyleRequest, T as hasBundlerGeneratedCssMarker, V as finalizeCompilerShadowRun, W as createRuntimeCompilationBuildState, X as beginCompilerShadowRun, Y as disposeCompilerOwner, a as extractMarkedUserLayerComponentsCss, at as isSourceCandidateRequest, d as runWithConcurrency, f as normalizeMiniProgramGeneratorCssSource, g as captureFrameworkPostcssOptions, i as validateCandidatesByGenerator, j as createCssSourceTraceCacheSignature, k as hasEmptyAtRuleBlockCandidate, m as scoreTailwindV4CssSourceFileMatch, nt as createCompilationDependencyChanges, o as mergeMarkedUserLayerComponentsCss, ot as extractCandidatesFromSource, p as normalizeMiniProgramImportShell, q as updateRuntimeCompilationBuildState, r as generateTailwindV4Css, rt as createSourceCandidateCollector, s as collectGeneratedRawSourceCandidatesFromCss, st as createSourceCandidateEligibilityMatcher, t as createHmrTimingRecorder, tt as recordCompilationDependencyChanges, w as createBundlerGeneratedCssMarker } from "./hmr-timing-CoyM6Dg2.js";
7
7
  import { m as createDebug, p as replaceWxml } from "./wxml-B7OAVpXJ.js";
8
8
  import { a as vitePluginName, c as collectRuntimeClassSet, d as refreshTailwindRuntimeState, f as normalizeFrameworkStylePlatform, l as createTailwindRuntimeReadyPromise, n as normalizeStyleHandlerMajorVersion, o as shouldSkipJsTransform, s as toCustomAttributesEntities, t as getCompilerContext } from "./context-CKQKq4Mv.js";
9
- import { _ as createBuiltinViteStyleInjectorPlugins, a as createCandidateSignature, c as getSnapshotHash, d as classifyRuntimeEntry, f as resolvePackageDir, g as toAbsoluteOutputPath, h as resolveOutputSpecifier, i as createScopedGeneratorSourceTraceMap, l as hasRuntimeAffectingSourceChanges, m as normalizeOutputPathKey, n as createScopedGeneratorCandidateSignature, o as createJsHashSalt, p as resolvePluginDisabledState, r as createScopedGeneratorRuntime, s as createLinkedImpactSignature, t as createSourceCandidateScanSignature, u as summarizeStringDiff, x as resolveViteFrameworkProfile, y as viteStyleInjectorDelegates } from "./source-candidate-scan-signature-TKJIs7VF.js";
9
+ import { _ as createBuiltinViteStyleInjectorPlugins, a as createCandidateSignature, c as getSnapshotHash, d as classifyRuntimeEntry, f as resolvePackageDir, g as toAbsoluteOutputPath, h as resolveOutputSpecifier, i as createScopedGeneratorSourceTraceMap, l as hasRuntimeAffectingSourceChanges, m as normalizeOutputPathKey, n as createScopedGeneratorCandidateSignature, o as createJsHashSalt, p as resolvePluginDisabledState, r as createScopedGeneratorRuntime, s as createLinkedImpactSignature, t as createSourceCandidateScanSignature, u as summarizeStringDiff, x as resolveViteFrameworkProfile, y as viteStyleInjectorDelegates } from "./source-candidate-scan-signature-BLXoEZN5.js";
10
10
  import { t as logger$1 } from "./logger-BNzxZbZj.js";
11
11
  import fs, { existsSync, readFileSync, realpathSync } from "node:fs";
12
12
  import path from "node:path";
@@ -9758,6 +9758,12 @@ function createFrameworkSourceScanSession(options) {
9758
9758
  const sourceCandidateScanCache = new LRUCache({ max: SOURCE_CANDIDATE_SCAN_CACHE_MAX });
9759
9759
  let sourceScanEntries;
9760
9760
  let sourceScanMatcher;
9761
+ let sourceScanBoundaryMatcher;
9762
+ let sourceScanRoots = [];
9763
+ let sourceScanOutDir;
9764
+ let sourceScanEligibleFiles = /* @__PURE__ */ new Set();
9765
+ let sourceScanEligibleFilesRefresh;
9766
+ const sourceScanIneligibleFiles = /* @__PURE__ */ new Set();
9761
9767
  let sourceScanDependencies = /* @__PURE__ */ new Set();
9762
9768
  let sourceScanExplicit = false;
9763
9769
  let sourceCandidateScanSignature;
@@ -9769,6 +9775,7 @@ function createFrameworkSourceScanSession(options) {
9769
9775
  const isDependency = (file) => sourceScanDependencies.has(normalizeDependency(file));
9770
9776
  const invalidate = () => {
9771
9777
  sourceCandidateScanInvalidated = true;
9778
+ sourceScanIneligibleFiles.clear();
9772
9779
  };
9773
9780
  const hasState = () => sourceCandidateScanSignature !== void 0;
9774
9781
  const collectRoots = (root, entries) => {
@@ -9799,9 +9806,32 @@ function createFrameworkSourceScanSession(options) {
9799
9806
  };
9800
9807
  const cacheCurrent = () => {
9801
9808
  if (!sourceCandidateScanSignature) return;
9802
- const snapshot = options.sourceCandidateCollector.snapshot();
9803
- sourceCandidateScanCache.set(sourceCandidateScanSignature, snapshot);
9804
- sourceCandidateScanSnapshotCache.set(sourceCandidateScanSignature, snapshot);
9809
+ const entry = {
9810
+ eligibleFiles: [...sourceScanEligibleFiles],
9811
+ snapshot: options.sourceCandidateCollector.snapshot()
9812
+ };
9813
+ sourceCandidateScanCache.set(sourceCandidateScanSignature, entry);
9814
+ sourceCandidateScanSnapshotCache.set(sourceCandidateScanSignature, entry);
9815
+ };
9816
+ const updateSourceScanMatchers = (eligibleFiles) => {
9817
+ sourceScanEligibleFiles = new Set(eligibleFiles);
9818
+ const matcherRoots = sourceScanRoots.map((scanRoot) => ({
9819
+ ...scanRoot,
9820
+ outDir: sourceScanOutDir
9821
+ }));
9822
+ sourceScanBoundaryMatcher = createSourceCandidateEligibilityMatcher(matcherRoots);
9823
+ sourceScanMatcher = createSourceCandidateEligibilityMatcher(matcherRoots, sourceScanEligibleFiles);
9824
+ };
9825
+ const refreshSourceScanEligibleFiles = async () => {
9826
+ sourceScanEligibleFilesRefresh ?? (sourceScanEligibleFilesRefresh = Promise.all(sourceScanRoots.map((scanRoot) => options.sourceCandidateCollector.resolveScanFiles({
9827
+ entries: scanRoot.entries,
9828
+ explicit: scanRoot.explicit,
9829
+ root: scanRoot.root,
9830
+ outDir: sourceScanOutDir
9831
+ }))).then((files) => updateSourceScanMatchers(files.flat())).finally(() => {
9832
+ sourceScanEligibleFilesRefresh = void 0;
9833
+ }));
9834
+ await sourceScanEligibleFilesRefresh;
9805
9835
  };
9806
9836
  const shouldDiscoverAutoCssSources = (autoCssSourcesDiscovered) => {
9807
9837
  if (!autoCssSourcesDiscovered || !options.isWatchLikeBuild()) return true;
@@ -9824,10 +9854,8 @@ function createFrameworkSourceScanSession(options) {
9824
9854
  sourceScanExplicit = sourceScan?.explicit ?? false;
9825
9855
  sourceScanDependencies = new Set((sourceScan?.dependencies ?? []).map(normalizeDependency));
9826
9856
  const roots = collectRoots(root, sourceScanEntries);
9827
- sourceScanMatcher = createSourceCandidateEligibilityMatcher(roots.map((scanRoot) => ({
9828
- ...scanRoot,
9829
- outDir
9830
- })));
9857
+ sourceScanRoots = roots;
9858
+ sourceScanOutDir = outDir;
9831
9859
  const nextScanSignature = createSourceCandidateScanSignature({
9832
9860
  inlineCandidates: sourceScan?.inlineCandidates,
9833
9861
  outDir,
@@ -9836,14 +9864,16 @@ function createFrameworkSourceScanSession(options) {
9836
9864
  });
9837
9865
  if (hasState() && sourceCandidateScanSignature === nextScanSignature) {
9838
9866
  options.sourceCandidateCollector.syncInline(sourceScan?.inlineCandidates);
9839
- sourceCandidateScanCache.set(nextScanSignature, options.sourceCandidateCollector.snapshot());
9867
+ cacheCurrent();
9840
9868
  options.debug("reuse vite source candidate scan for watch rebuild");
9841
9869
  sourceCandidateScanInvalidated = false;
9842
9870
  return;
9843
9871
  }
9844
9872
  const cachedScan = options.isWatchLikeBuild() ? sourceCandidateScanCache.get(nextScanSignature) ?? sourceCandidateScanSnapshotCache.get(nextScanSignature) : void 0;
9845
9873
  if (cachedScan) {
9846
- options.sourceCandidateCollector.restore(cachedScan);
9874
+ options.sourceCandidateCollector.restore(cachedScan.snapshot);
9875
+ sourceScanIneligibleFiles.clear();
9876
+ updateSourceScanMatchers(cachedScan.eligibleFiles);
9847
9877
  sourceCandidateScanSignature = nextScanSignature;
9848
9878
  options.debug("reuse cached vite source candidate scan for watch rebuild");
9849
9879
  sourceCandidateScanInvalidated = false;
@@ -9852,19 +9882,19 @@ function createFrameworkSourceScanSession(options) {
9852
9882
  if (options.isWatchLikeBuild()) options.sourceCandidateCollector.resetScan();
9853
9883
  else options.sourceCandidateCollector.clearScan();
9854
9884
  options.sourceCandidateCollector.syncInline(sourceScan?.inlineCandidates);
9885
+ const eligibleFiles = /* @__PURE__ */ new Set();
9886
+ sourceScanIneligibleFiles.clear();
9855
9887
  await Promise.all(roots.map((scanRoot) => options.sourceCandidateCollector.scanRoot({
9856
9888
  entries: scanRoot.entries,
9857
9889
  explicit: scanRoot.explicit,
9858
9890
  root: scanRoot.root,
9859
- outDir
9891
+ outDir,
9892
+ onFilesResolved: (files) => files.forEach((file) => eligibleFiles.add(file))
9860
9893
  })));
9894
+ updateSourceScanMatchers(eligibleFiles);
9861
9895
  sourceCandidateScanSignature = nextScanSignature;
9862
9896
  sourceCandidateScanInvalidated = false;
9863
- if (options.isWatchLikeBuild()) {
9864
- const snapshot = options.sourceCandidateCollector.snapshot();
9865
- sourceCandidateScanCache.set(nextScanSignature, snapshot);
9866
- sourceCandidateScanSnapshotCache.set(nextScanSignature, snapshot);
9867
- }
9897
+ if (options.isWatchLikeBuild()) cacheCurrent();
9868
9898
  };
9869
9899
  const waitForPendingSyncs = async () => {
9870
9900
  while (pendingSourceCandidateSyncs.size > 0) await Promise.all(pendingSourceCandidateSyncs);
@@ -9889,11 +9919,16 @@ function createFrameworkSourceScanSession(options) {
9889
9919
  previous.runtimeAffecting || (previous.runtimeAffecting = change.runtimeAffecting);
9890
9920
  return previous;
9891
9921
  };
9892
- const syncChangedFile = (id, sourceOverride) => {
9893
- if (!options.shouldOwnTailwindGeneration || !options.isCandidateRequest(id)) return Promise.resolve(void 0);
9922
+ const syncChangedFile = async (id, sourceOverride) => {
9923
+ if (!options.shouldOwnTailwindGeneration || !options.isCandidateRequest(id)) return;
9894
9924
  const file = cleanUrl(id);
9895
9925
  const runtimeAffectingByDependency = isDependency(file);
9896
9926
  if (runtimeAffectingByDependency) invalidate();
9927
+ const resolvedFile = resolveSourceScanPath(file);
9928
+ if (sourceScanMatcher && !sourceScanMatcher(file) && sourceScanBoundaryMatcher?.(file) && !sourceScanIneligibleFiles.has(resolvedFile)) {
9929
+ await refreshSourceScanEligibleFiles();
9930
+ if (!sourceScanMatcher(file)) sourceScanIneligibleFiles.add(resolvedFile);
9931
+ }
9897
9932
  if (sourceScanMatcher && !sourceScanMatcher(file)) {
9898
9933
  const change = options.sourceCandidateCollector.remove(file);
9899
9934
  cacheCurrent();
@@ -9902,7 +9937,10 @@ function createFrameworkSourceScanSession(options) {
9902
9937
  }) : Promise.resolve()).then(() => options.cssMemory.refreshRememberedCssSourceByCurrentFile(file)).then(() => rememberHotUpdateChange(options.hmrCandidateState.apply(options.hmrCandidateState.createChange(file, change, { runtimeAffecting: true }))));
9903
9938
  }
9904
9939
  const existingTask = pendingSourceCandidateSyncByFile.get(file);
9905
- if (existingTask) return existingTask.then(() => syncChangedFile(id, sourceOverride));
9940
+ if (existingTask) {
9941
+ await existingTask;
9942
+ return syncChangedFile(id, sourceOverride);
9943
+ }
9906
9944
  const previousSource = options.sourceCandidateCollector.source(file);
9907
9945
  const task = (sourceOverride === void 0 ? options.sourceCandidateCollector.syncCurrentFile(id) : options.sourceCandidateCollector.syncCurrentSource(id, sourceOverride)).catch((error) => {
9908
9946
  options.debug("source candidate watch sync failed: %s %O", id, error);
@@ -4,13 +4,13 @@ const require_generator = require("./generator-BXrWA7Sj.cjs");
4
4
  const require_object = require("./object-DbHtAXRk.cjs");
5
5
  const require_options = require("./options-DbYws6lr.cjs");
6
6
  require("./utils-CuKLf1Zv.cjs");
7
- const require_v4_generation_core = require("./v4-generation-core-D-zVR2mt.cjs");
7
+ const require_v4_generation_core = require("./v4-generation-core-CCnEsAgV.cjs");
8
8
  const require_wxml = require("./wxml-CQmBCjOR.cjs");
9
- const require_hmr_timing = require("./hmr-timing-BtqnyxAO.cjs");
9
+ const require_hmr_timing = require("./hmr-timing-BIPr9t9m.cjs");
10
10
  const require_context = require("./context-vWlNv-Cf.cjs");
11
11
  const require_tailwindcss = require("./tailwindcss-D1M2xj5O.cjs");
12
12
  const require_style_options = require("./style-options-Cta1OP3i.cjs");
13
- const require_source_candidate_scan_signature = require("./source-candidate-scan-signature-Ggn8fzkT.cjs");
13
+ const require_source_candidate_scan_signature = require("./source-candidate-scan-signature-J9EW91KX.cjs");
14
14
  require("./logger-TlKT3xmR.cjs");
15
15
  const require_css_imports = require("./css-imports-BFMU7Hpd.cjs");
16
16
  let node_fs = require("node:fs");
@@ -9739,6 +9739,12 @@ function createFrameworkSourceScanSession(options) {
9739
9739
  const sourceCandidateScanCache = new lru_cache.LRUCache({ max: SOURCE_CANDIDATE_SCAN_CACHE_MAX });
9740
9740
  let sourceScanEntries;
9741
9741
  let sourceScanMatcher;
9742
+ let sourceScanBoundaryMatcher;
9743
+ let sourceScanRoots = [];
9744
+ let sourceScanOutDir;
9745
+ let sourceScanEligibleFiles = /* @__PURE__ */ new Set();
9746
+ let sourceScanEligibleFilesRefresh;
9747
+ const sourceScanIneligibleFiles = /* @__PURE__ */ new Set();
9742
9748
  let sourceScanDependencies = /* @__PURE__ */ new Set();
9743
9749
  let sourceScanExplicit = false;
9744
9750
  let sourceCandidateScanSignature;
@@ -9750,6 +9756,7 @@ function createFrameworkSourceScanSession(options) {
9750
9756
  const isDependency = (file) => sourceScanDependencies.has(normalizeDependency(file));
9751
9757
  const invalidate = () => {
9752
9758
  sourceCandidateScanInvalidated = true;
9759
+ sourceScanIneligibleFiles.clear();
9753
9760
  };
9754
9761
  const hasState = () => sourceCandidateScanSignature !== void 0;
9755
9762
  const collectRoots = (root, entries) => {
@@ -9780,9 +9787,32 @@ function createFrameworkSourceScanSession(options) {
9780
9787
  };
9781
9788
  const cacheCurrent = () => {
9782
9789
  if (!sourceCandidateScanSignature) return;
9783
- const snapshot = options.sourceCandidateCollector.snapshot();
9784
- sourceCandidateScanCache.set(sourceCandidateScanSignature, snapshot);
9785
- sourceCandidateScanSnapshotCache.set(sourceCandidateScanSignature, snapshot);
9790
+ const entry = {
9791
+ eligibleFiles: [...sourceScanEligibleFiles],
9792
+ snapshot: options.sourceCandidateCollector.snapshot()
9793
+ };
9794
+ sourceCandidateScanCache.set(sourceCandidateScanSignature, entry);
9795
+ sourceCandidateScanSnapshotCache.set(sourceCandidateScanSignature, entry);
9796
+ };
9797
+ const updateSourceScanMatchers = (eligibleFiles) => {
9798
+ sourceScanEligibleFiles = new Set(eligibleFiles);
9799
+ const matcherRoots = sourceScanRoots.map((scanRoot) => ({
9800
+ ...scanRoot,
9801
+ outDir: sourceScanOutDir
9802
+ }));
9803
+ sourceScanBoundaryMatcher = require_v4_generation_core.createSourceCandidateEligibilityMatcher(matcherRoots);
9804
+ sourceScanMatcher = require_v4_generation_core.createSourceCandidateEligibilityMatcher(matcherRoots, sourceScanEligibleFiles);
9805
+ };
9806
+ const refreshSourceScanEligibleFiles = async () => {
9807
+ sourceScanEligibleFilesRefresh ?? (sourceScanEligibleFilesRefresh = Promise.all(sourceScanRoots.map((scanRoot) => options.sourceCandidateCollector.resolveScanFiles({
9808
+ entries: scanRoot.entries,
9809
+ explicit: scanRoot.explicit,
9810
+ root: scanRoot.root,
9811
+ outDir: sourceScanOutDir
9812
+ }))).then((files) => updateSourceScanMatchers(files.flat())).finally(() => {
9813
+ sourceScanEligibleFilesRefresh = void 0;
9814
+ }));
9815
+ await sourceScanEligibleFilesRefresh;
9786
9816
  };
9787
9817
  const shouldDiscoverAutoCssSources = (autoCssSourcesDiscovered) => {
9788
9818
  if (!autoCssSourcesDiscovered || !options.isWatchLikeBuild()) return true;
@@ -9805,10 +9835,8 @@ function createFrameworkSourceScanSession(options) {
9805
9835
  sourceScanExplicit = sourceScan?.explicit ?? false;
9806
9836
  sourceScanDependencies = new Set((sourceScan?.dependencies ?? []).map(normalizeDependency));
9807
9837
  const roots = collectRoots(root, sourceScanEntries);
9808
- sourceScanMatcher = require_v4_generation_core.createSourceCandidateEligibilityMatcher(roots.map((scanRoot) => ({
9809
- ...scanRoot,
9810
- outDir
9811
- })));
9838
+ sourceScanRoots = roots;
9839
+ sourceScanOutDir = outDir;
9812
9840
  const nextScanSignature = require_source_candidate_scan_signature.createSourceCandidateScanSignature({
9813
9841
  inlineCandidates: sourceScan?.inlineCandidates,
9814
9842
  outDir,
@@ -9817,14 +9845,16 @@ function createFrameworkSourceScanSession(options) {
9817
9845
  });
9818
9846
  if (hasState() && sourceCandidateScanSignature === nextScanSignature) {
9819
9847
  options.sourceCandidateCollector.syncInline(sourceScan?.inlineCandidates);
9820
- sourceCandidateScanCache.set(nextScanSignature, options.sourceCandidateCollector.snapshot());
9848
+ cacheCurrent();
9821
9849
  options.debug("reuse vite source candidate scan for watch rebuild");
9822
9850
  sourceCandidateScanInvalidated = false;
9823
9851
  return;
9824
9852
  }
9825
9853
  const cachedScan = options.isWatchLikeBuild() ? sourceCandidateScanCache.get(nextScanSignature) ?? sourceCandidateScanSnapshotCache.get(nextScanSignature) : void 0;
9826
9854
  if (cachedScan) {
9827
- options.sourceCandidateCollector.restore(cachedScan);
9855
+ options.sourceCandidateCollector.restore(cachedScan.snapshot);
9856
+ sourceScanIneligibleFiles.clear();
9857
+ updateSourceScanMatchers(cachedScan.eligibleFiles);
9828
9858
  sourceCandidateScanSignature = nextScanSignature;
9829
9859
  options.debug("reuse cached vite source candidate scan for watch rebuild");
9830
9860
  sourceCandidateScanInvalidated = false;
@@ -9833,19 +9863,19 @@ function createFrameworkSourceScanSession(options) {
9833
9863
  if (options.isWatchLikeBuild()) options.sourceCandidateCollector.resetScan();
9834
9864
  else options.sourceCandidateCollector.clearScan();
9835
9865
  options.sourceCandidateCollector.syncInline(sourceScan?.inlineCandidates);
9866
+ const eligibleFiles = /* @__PURE__ */ new Set();
9867
+ sourceScanIneligibleFiles.clear();
9836
9868
  await Promise.all(roots.map((scanRoot) => options.sourceCandidateCollector.scanRoot({
9837
9869
  entries: scanRoot.entries,
9838
9870
  explicit: scanRoot.explicit,
9839
9871
  root: scanRoot.root,
9840
- outDir
9872
+ outDir,
9873
+ onFilesResolved: (files) => files.forEach((file) => eligibleFiles.add(file))
9841
9874
  })));
9875
+ updateSourceScanMatchers(eligibleFiles);
9842
9876
  sourceCandidateScanSignature = nextScanSignature;
9843
9877
  sourceCandidateScanInvalidated = false;
9844
- if (options.isWatchLikeBuild()) {
9845
- const snapshot = options.sourceCandidateCollector.snapshot();
9846
- sourceCandidateScanCache.set(nextScanSignature, snapshot);
9847
- sourceCandidateScanSnapshotCache.set(nextScanSignature, snapshot);
9848
- }
9878
+ if (options.isWatchLikeBuild()) cacheCurrent();
9849
9879
  };
9850
9880
  const waitForPendingSyncs = async () => {
9851
9881
  while (pendingSourceCandidateSyncs.size > 0) await Promise.all(pendingSourceCandidateSyncs);
@@ -9870,11 +9900,16 @@ function createFrameworkSourceScanSession(options) {
9870
9900
  previous.runtimeAffecting || (previous.runtimeAffecting = change.runtimeAffecting);
9871
9901
  return previous;
9872
9902
  };
9873
- const syncChangedFile = (id, sourceOverride) => {
9874
- if (!options.shouldOwnTailwindGeneration || !options.isCandidateRequest(id)) return Promise.resolve(void 0);
9903
+ const syncChangedFile = async (id, sourceOverride) => {
9904
+ if (!options.shouldOwnTailwindGeneration || !options.isCandidateRequest(id)) return;
9875
9905
  const file = (0, _weapp_tailwindcss_shared.cleanUrl)(id);
9876
9906
  const runtimeAffectingByDependency = isDependency(file);
9877
9907
  if (runtimeAffectingByDependency) invalidate();
9908
+ const resolvedFile = require_generator.resolveSourceScanPath(file);
9909
+ if (sourceScanMatcher && !sourceScanMatcher(file) && sourceScanBoundaryMatcher?.(file) && !sourceScanIneligibleFiles.has(resolvedFile)) {
9910
+ await refreshSourceScanEligibleFiles();
9911
+ if (!sourceScanMatcher(file)) sourceScanIneligibleFiles.add(resolvedFile);
9912
+ }
9878
9913
  if (sourceScanMatcher && !sourceScanMatcher(file)) {
9879
9914
  const change = options.sourceCandidateCollector.remove(file);
9880
9915
  cacheCurrent();
@@ -9883,7 +9918,10 @@ function createFrameworkSourceScanSession(options) {
9883
9918
  }) : Promise.resolve()).then(() => options.cssMemory.refreshRememberedCssSourceByCurrentFile(file)).then(() => rememberHotUpdateChange(options.hmrCandidateState.apply(options.hmrCandidateState.createChange(file, change, { runtimeAffecting: true }))));
9884
9919
  }
9885
9920
  const existingTask = pendingSourceCandidateSyncByFile.get(file);
9886
- if (existingTask) return existingTask.then(() => syncChangedFile(id, sourceOverride));
9921
+ if (existingTask) {
9922
+ await existingTask;
9923
+ return syncChangedFile(id, sourceOverride);
9924
+ }
9887
9925
  const previousSource = options.sourceCandidateCollector.source(file);
9888
9926
  const task = (sourceOverride === void 0 ? options.sourceCandidateCollector.syncCurrentFile(id) : options.sourceCandidateCollector.syncCurrentSource(id, sourceOverride)).catch((error) => {
9889
9927
  options.debug("source candidate watch sync failed: %s %O", id, error);
package/dist/vite.cjs CHANGED
@@ -1,4 +1,4 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
- const require_vite = require("./vite-BFWJAH16.cjs");
2
+ const require_vite = require("./vite-RJpkDte7.cjs");
3
3
  exports.WeappTailwindcss = require_vite.WeappTailwindcss;
4
4
  exports.weappTailwindcss = require_vite.WeappTailwindcss;
package/dist/vite.js CHANGED
@@ -1,2 +1,2 @@
1
- import { t as WeappTailwindcss } from "./vite-B577QMUl.js";
1
+ import { t as WeappTailwindcss } from "./vite-DNTQV3gN.js";
2
2
  export { WeappTailwindcss, WeappTailwindcss as weappTailwindcss };
@@ -5,10 +5,10 @@ Object.defineProperties(exports, {
5
5
  const require_rolldown_runtime = require("./rolldown-runtime-Ctb5zv51.cjs");
6
6
  const require_generator = require("./generator-BXrWA7Sj.cjs");
7
7
  const require_options = require("./options-DbYws6lr.cjs");
8
- const require_v4_generation_core = require("./v4-generation-core-D-zVR2mt.cjs");
8
+ const require_v4_generation_core = require("./v4-generation-core-CCnEsAgV.cjs");
9
9
  const require_style_options = require("./style-options-Cta1OP3i.cjs");
10
10
  const require_css_imports = require("./css-imports-BFMU7Hpd.cjs");
11
- const require_pipeline_helpers = require("./pipeline-helpers-DnYpfbat.cjs");
11
+ const require_pipeline_helpers = require("./pipeline-helpers-Bp343-ik.cjs");
12
12
  const require_runtime_registry = require("./runtime-registry-BlIjpImP.cjs");
13
13
  const require_watch_dependencies = require("./watch-dependencies-DLZDrWdH.cjs");
14
14
  let node_path = require("node:path");
@@ -3,14 +3,14 @@ const require_generator = require("./generator-BXrWA7Sj.cjs");
3
3
  const require_object = require("./object-DbHtAXRk.cjs");
4
4
  const require_options = require("./options-DbYws6lr.cjs");
5
5
  const require_utils = require("./utils-CuKLf1Zv.cjs");
6
- const require_v4_generation_core = require("./v4-generation-core-D-zVR2mt.cjs");
6
+ const require_v4_generation_core = require("./v4-generation-core-CCnEsAgV.cjs");
7
7
  const require_wxml = require("./wxml-CQmBCjOR.cjs");
8
- const require_hmr_timing = require("./hmr-timing-BtqnyxAO.cjs");
8
+ const require_hmr_timing = require("./hmr-timing-BIPr9t9m.cjs");
9
9
  const require_context = require("./context-vWlNv-Cf.cjs");
10
10
  const require_tailwindcss = require("./tailwindcss-D1M2xj5O.cjs");
11
11
  const require_style_options = require("./style-options-Cta1OP3i.cjs");
12
- const require_source_candidate_scan_signature = require("./source-candidate-scan-signature-Ggn8fzkT.cjs");
13
- const require_pipeline_helpers = require("./pipeline-helpers-DnYpfbat.cjs");
12
+ const require_source_candidate_scan_signature = require("./source-candidate-scan-signature-J9EW91KX.cjs");
13
+ const require_pipeline_helpers = require("./pipeline-helpers-Bp343-ik.cjs");
14
14
  const require_css_loader_runtime = require("./css-loader-runtime-CSv0lKqV.cjs");
15
15
  const require_runtime_registry = require("./runtime-registry-BlIjpImP.cjs");
16
16
  let node_fs = require("node:fs");
@@ -2,11 +2,11 @@ import { $ as hasTailwindSourceDirectives, B as stripMiniProgramCssSpecificityPl
2
2
  import { n as _defineProperty } from "./object-B-8IHefx.js";
3
3
  import { f as resolveSourceScanEntries, g as resolveTailwindV4EntriesFromCssCached, l as getRuntimeClassSetSignature } from "./tailwindcss-C2K-vjJv.js";
4
4
  import { r as getGroupedEntries } from "./utils-MVwpU07P.js";
5
- import { $ as getCompilationScopeDependencyRevision, A as annotateCssSourceTrace, C as stripRequestQuery, D as stripBundlerGeneratedCssMarkers, F as createRuntimeClassSetManager, H as buildRuntimeCompilationSnapshot, I as collectStrictEscapedRuntimeCandidates, J as createRuntimeAffectingSourceSignature, K as resetRuntimeCompilationBuildState, L as createEscapeFragments, M as createCssTokenSourceMap, N as isCssSourceTraceEnabled, O as finalizeMiniProgramCssStructure, P as processCachedTask, Q as AssetEmissionPlan, R as isPureLocalCssImportWrapper, S as isSourceStyleRequest, T as hasBundlerGeneratedCssMarker, U as createRuntimeCompilationAffectingSignature, V as finalizeCompilerShadowRun, W as createRuntimeCompilationBuildState, X as beginCompilerShadowRun, Y as disposeCompilerOwner, _ as captureResolvedFrameworkPostcssOptions, at as isSourceCandidateRequest, c as collectRawSourceClassSelectors, ct as resolveSourceCandidateScanFiles, h as removeGeneratedSelectorCompatCss, it as createSourceCandidateStore, j as createCssSourceTraceCacheSignature, l as pushConcurrentTaskFactories, m as scoreTailwindV4CssSourceFileMatch, n as emitHmrTiming, nt as createCompilationDependencyChanges, q as updateRuntimeCompilationBuildState, r as generateTailwindV4Css, tt as recordCompilationDependencyChanges, u as resolveTaskConcurrency, v as collectFrameworkPostcssOptionsFromLoaderEntries, x as hasMiniProgramTailwindV4PreflightReset, y as createCssSourceOrderAppend } from "./hmr-timing-iTua_Z55.js";
5
+ import { $ as getCompilationScopeDependencyRevision, A as annotateCssSourceTrace, C as stripRequestQuery, D as stripBundlerGeneratedCssMarkers, F as createRuntimeClassSetManager, H as buildRuntimeCompilationSnapshot, I as collectStrictEscapedRuntimeCandidates, J as createRuntimeAffectingSourceSignature, K as resetRuntimeCompilationBuildState, L as createEscapeFragments, M as createCssTokenSourceMap, N as isCssSourceTraceEnabled, O as finalizeMiniProgramCssStructure, P as processCachedTask, Q as AssetEmissionPlan, R as isPureLocalCssImportWrapper, S as isSourceStyleRequest, T as hasBundlerGeneratedCssMarker, U as createRuntimeCompilationAffectingSignature, V as finalizeCompilerShadowRun, W as createRuntimeCompilationBuildState, X as beginCompilerShadowRun, Y as disposeCompilerOwner, _ as captureResolvedFrameworkPostcssOptions, at as isSourceCandidateRequest, c as collectRawSourceClassSelectors, ct as resolveSourceCandidateScanFiles, h as removeGeneratedSelectorCompatCss, it as createSourceCandidateStore, j as createCssSourceTraceCacheSignature, l as pushConcurrentTaskFactories, m as scoreTailwindV4CssSourceFileMatch, n as emitHmrTiming, nt as createCompilationDependencyChanges, q as updateRuntimeCompilationBuildState, r as generateTailwindV4Css, tt as recordCompilationDependencyChanges, u as resolveTaskConcurrency, v as collectFrameworkPostcssOptionsFromLoaderEntries, x as hasMiniProgramTailwindV4PreflightReset, y as createCssSourceOrderAppend } from "./hmr-timing-CoyM6Dg2.js";
6
6
  import { _ as md5Hash, m as createDebug } from "./wxml-B7OAVpXJ.js";
7
7
  import { d as refreshTailwindRuntimeState, i as pluginName, l as createTailwindRuntimeReadyPromise, n as normalizeStyleHandlerMajorVersion, o as shouldSkipJsTransform, r as resolveStyleOptionsFromContext, t as getCompilerContext, u as ensureRuntimeClassSet } from "./context-CKQKq4Mv.js";
8
8
  import { getDefaultCssPreflight } from "./defaults.js";
9
- import { S as resolveWebpackFrameworkProfile, a as createCandidateSignature, b as webpackStyleInjectorDelegates, d as classifyRuntimeEntry, f as resolvePackageDir, g as toAbsoluteOutputPath, h as resolveOutputSpecifier, p as resolvePluginDisabledState, r as createScopedGeneratorRuntime, t as createSourceCandidateScanSignature, v as createBuiltinWebpackStyleInjectorPlugin } from "./source-candidate-scan-signature-TKJIs7VF.js";
9
+ import { S as resolveWebpackFrameworkProfile, a as createCandidateSignature, b as webpackStyleInjectorDelegates, d as classifyRuntimeEntry, f as resolvePackageDir, g as toAbsoluteOutputPath, h as resolveOutputSpecifier, p as resolvePluginDisabledState, r as createScopedGeneratorRuntime, t as createSourceCandidateScanSignature, v as createBuiltinWebpackStyleInjectorPlugin } from "./source-candidate-scan-signature-BLXoEZN5.js";
10
10
  import Module, { createRequire } from "node:module";
11
11
  import fs from "node:fs";
12
12
  import path from "node:path";
package/dist/webpack.cjs CHANGED
@@ -1,5 +1,5 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
- const require_webpack = require("./webpack-DTqFKvcE.cjs");
2
+ const require_webpack = require("./webpack-BY5y7f0X.cjs");
3
3
  exports.WeappTailwindcss = require_webpack.WeappTailwindcss;
4
4
  exports.weappTailwindcss = require_webpack.WeappTailwindcss;
5
5
  exports.weappTailwindcssPackageDir = require_webpack.weappTailwindcssPackageDir;
package/dist/webpack.js CHANGED
@@ -1,2 +1,2 @@
1
- import { n as weappTailwindcssPackageDir, t as WeappTailwindcss } from "./webpack-DLJkStre.js";
1
+ import { n as weappTailwindcssPackageDir, t as WeappTailwindcss } from "./webpack-DYoIysDo.js";
2
2
  export { WeappTailwindcss, WeappTailwindcss as weappTailwindcss, weappTailwindcssPackageDir };
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "weapp-tailwindcss",
3
3
  "type": "module",
4
- "version": "5.2.13",
4
+ "version": "5.2.14",
5
5
  "description": "把 tailwindcss 原子化样式思想,带给小程序开发者们! bring tailwindcss to miniprogram developers!",
6
6
  "author": "ice breaker <1324318532@qq.com>",
7
7
  "license": "MIT",
@@ -216,8 +216,8 @@
216
216
  "semver": "~7.8.5",
217
217
  "yaml": "^2.9.0",
218
218
  "@weapp-tailwindcss/logger": "2.0.1",
219
- "@weapp-tailwindcss/postcss": "3.2.10",
220
219
  "@weapp-tailwindcss/reset": "0.1.2",
220
+ "@weapp-tailwindcss/postcss": "3.2.10",
221
221
  "@weapp-tailwindcss/shared": "2.0.1",
222
222
  "tailwindcss-config": "2.0.2",
223
223
  "weapp-style-injector": "1.0.2"