weapp-tailwindcss 5.0.0-next.3 → 5.0.0-next.31

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 (244) hide show
  1. package/README.md +6 -7
  2. package/bin/weapp-tailwindcss.js +1 -21
  3. package/dist/auto-TH1jG2UW.js +115 -0
  4. package/dist/auto-XyKTOP7B.mjs +78 -0
  5. package/dist/bundle-state-Bi-cQua6.mjs +413 -0
  6. package/dist/bundle-state-Ct_8GcSR.js +529 -0
  7. package/dist/bundlers/shared/cache.d.ts +6 -6
  8. package/dist/bundlers/shared/css-cleanup/at-rules.d.ts +1 -0
  9. package/dist/bundlers/shared/css-cleanup.d.ts +1 -4
  10. package/dist/bundlers/shared/css-imports.d.ts +3 -3
  11. package/dist/bundlers/shared/generated-css-marker.d.ts +3 -0
  12. package/dist/bundlers/shared/generator-css/config-directive.d.ts +2 -0
  13. package/dist/bundlers/shared/generator-css/directives.d.ts +21 -0
  14. package/dist/bundlers/shared/generator-css/legacy-compat.d.ts +7 -0
  15. package/dist/bundlers/shared/generator-css/legacy-selectors.d.ts +5 -0
  16. package/dist/bundlers/shared/generator-css/legacy-units.d.ts +1 -0
  17. package/dist/bundlers/shared/generator-css/markers.d.ts +28 -0
  18. package/dist/bundlers/shared/generator-css/source-files.d.ts +14 -0
  19. package/dist/bundlers/shared/generator-css/source-resolver.d.ts +24 -0
  20. package/dist/bundlers/shared/generator-css/user-layer-order.d.ts +10 -0
  21. package/dist/bundlers/shared/generator-css.d.ts +16 -22
  22. package/dist/bundlers/shared/hmr-timing.d.ts +22 -0
  23. package/dist/bundlers/shared/style-requests.d.ts +2 -0
  24. package/dist/bundlers/vite/bundle-state.d.ts +1 -0
  25. package/dist/bundlers/vite/css-finalizer.d.ts +7 -1
  26. package/dist/bundlers/vite/generate-bundle/candidates.d.ts +2 -0
  27. package/dist/bundlers/vite/generate-bundle/css-handler-options.d.ts +24 -0
  28. package/dist/bundlers/vite/generate-bundle/css-share-scope.d.ts +4 -0
  29. package/dist/bundlers/vite/generate-bundle/dirty-state.d.ts +1 -0
  30. package/dist/bundlers/vite/generate-bundle/js-entries.d.ts +2 -0
  31. package/dist/bundlers/vite/generate-bundle/js-handler-options.d.ts +8 -0
  32. package/dist/bundlers/vite/generate-bundle/js-linking.d.ts +13 -0
  33. package/dist/bundlers/vite/generate-bundle/metrics.d.ts +17 -0
  34. package/dist/bundlers/vite/generate-bundle/process-plan.d.ts +9 -0
  35. package/dist/bundlers/vite/generate-bundle/rollup-assets.d.ts +7 -0
  36. package/dist/bundlers/vite/generate-bundle/signatures.d.ts +8 -0
  37. package/dist/bundlers/vite/generate-bundle.d.ts +14 -2
  38. package/dist/bundlers/vite/incremental-runtime-class-set.d.ts +5 -1
  39. package/dist/bundlers/vite/index.d.ts +5 -2
  40. package/dist/bundlers/vite/official-tailwind-plugins.d.ts +5 -0
  41. package/dist/bundlers/vite/postcss-config.d.ts +6 -0
  42. package/dist/bundlers/vite/processed-css-assets.d.ts +32 -0
  43. package/dist/bundlers/vite/rewrite-css-imports.d.ts +8 -3
  44. package/dist/bundlers/vite/runtime-class-set.d.ts +25 -0
  45. package/dist/bundlers/vite/serve-css-generation.d.ts +11 -0
  46. package/dist/bundlers/vite/source-candidates.d.ts +19 -1
  47. package/dist/bundlers/vite/source-scan.d.ts +26 -0
  48. package/dist/bundlers/vite/static-config-content.d.ts +5 -0
  49. package/dist/bundlers/vite/tailwind-basedir.d.ts +1 -0
  50. package/dist/bundlers/webpack/BaseUnifiedPlugin/shared.d.ts +6 -0
  51. package/dist/bundlers/webpack/BaseUnifiedPlugin/v5-assets.d.ts +6 -2
  52. package/dist/bundlers/webpack/BaseUnifiedPlugin/v5-loaders.d.ts +9 -3
  53. package/dist/bundlers/webpack/BaseUnifiedPlugin/v5.d.ts +2 -1
  54. package/dist/bundlers/webpack/loaders/runtime-registry.d.ts +31 -0
  55. package/dist/bundlers/webpack/loaders/weapp-tw-css-import-rewrite-loader.d.ts +2 -6
  56. package/dist/bundlers/webpack/loaders/weapp-tw-runtime-classset-loader.d.ts +3 -7
  57. package/dist/cache/index.d.ts +6 -6
  58. package/dist/{chunk-8l464Juk.js → chunk-C5U5_Hdc.js} +14 -0
  59. package/dist/cli/context.d.ts +1 -14
  60. package/dist/cli/doctor/types.d.ts +11 -11
  61. package/dist/cli/helpers.d.ts +1 -2
  62. package/dist/cli/mount-options.d.ts +2 -0
  63. package/dist/cli/types.d.ts +0 -2
  64. package/dist/cli/vscode-entry.d.ts +3 -3
  65. package/dist/cli.js +758 -604
  66. package/dist/cli.mjs +766 -612
  67. package/dist/constants.d.ts +1 -2
  68. package/dist/context/runtime-package-replacements.d.ts +2 -0
  69. package/dist/context/style-options.d.ts +3 -0
  70. package/dist/core.js +12 -20
  71. package/dist/core.mjs +8 -14
  72. package/dist/css-macro/auto.d.ts +10 -0
  73. package/dist/css-macro/constants.d.ts +5 -2
  74. package/dist/css-macro/postcss.d.ts +1 -0
  75. package/dist/css-macro/postcss.js +7 -46
  76. package/dist/css-macro/postcss.mjs +2 -46
  77. package/dist/css-macro.d.ts +1 -0
  78. package/dist/css-macro.js +16 -7
  79. package/dist/css-macro.mjs +15 -6
  80. package/dist/defaults-8xrgzxFY.mjs +151 -0
  81. package/dist/defaults-zKUH2mDe.js +193 -0
  82. package/dist/defaults.d.ts +15 -1
  83. package/dist/defaults.js +6 -131
  84. package/dist/defaults.mjs +2 -129
  85. package/dist/escape.js +10 -2
  86. package/dist/escape.mjs +10 -2
  87. package/dist/generator/index.d.ts +1 -1
  88. package/dist/generator/options.d.ts +9 -8
  89. package/dist/generator/types.d.ts +3 -3
  90. package/dist/generator-CrU-Ghc1.js +90 -0
  91. package/dist/generator-Qw-tZ0Z2.mjs +65 -0
  92. package/dist/generator.js +12 -12
  93. package/dist/generator.mjs +2 -1
  94. package/dist/gulp.js +187 -48
  95. package/dist/gulp.mjs +180 -41
  96. package/dist/incremental-runtime-class-set-Boqi1QlB.mjs +2224 -0
  97. package/dist/incremental-runtime-class-set-FAOHZmzh.js +2293 -0
  98. package/dist/index.d.ts +3 -2
  99. package/dist/index.js +19 -7
  100. package/dist/index.mjs +6 -5
  101. package/dist/js/babel/cache-options.d.ts +3 -0
  102. package/dist/js/babel/parse.d.ts +7 -4
  103. package/dist/js/index.d.ts +1 -0
  104. package/dist/js/literal-transform.d.ts +2 -0
  105. package/dist/js/precheck.d.ts +2 -2
  106. package/dist/logger-BNzxZbZj.mjs +2 -0
  107. package/dist/logger-TlKT3xmR.js +1 -0
  108. package/dist/postcss/config-directive.d.ts +1 -0
  109. package/dist/postcss/context.d.ts +9 -0
  110. package/dist/postcss/source-files.d.ts +8 -0
  111. package/dist/postcss/tailwind-version.d.ts +3 -0
  112. package/dist/postcss-C6zOQqlL.mjs +228 -0
  113. package/dist/postcss-C7BMYpEF.mjs +169 -0
  114. package/dist/postcss-CiYLsqZn.js +192 -0
  115. package/dist/postcss-DAWf9D3C.js +237 -0
  116. package/dist/postcss-html-transform.js +1 -1
  117. package/dist/postcss.d.ts +2 -2
  118. package/dist/postcss.js +3 -276
  119. package/dist/postcss.mjs +1 -269
  120. package/dist/precheck-D7K12zeX.mjs +4716 -0
  121. package/dist/precheck-D7gJSmJz.js +4842 -0
  122. package/dist/presets/index.d.ts +1 -0
  123. package/dist/presets/uni-app-x.d.ts +1 -0
  124. package/dist/presets.js +29 -13
  125. package/dist/presets.mjs +25 -11
  126. package/dist/reset.d.ts +1 -0
  127. package/dist/reset.js +1 -1
  128. package/dist/runtime-registry-DpcR3IHI.js +5496 -0
  129. package/dist/shared/mpx.d.ts +1 -0
  130. package/dist/source-candidates-CX2ozpKM.mjs +322 -0
  131. package/dist/source-candidates-DNM8iwXW.js +335 -0
  132. package/dist/tailwindcss/miniprogram.d.ts +1 -1
  133. package/dist/tailwindcss/patcher-options.d.ts +3 -51
  134. package/dist/tailwindcss/patcher.d.ts +1 -2
  135. package/dist/tailwindcss/remove-unsupported-css.d.ts +1 -2
  136. package/dist/tailwindcss/runtime/cache.d.ts +4 -3
  137. package/dist/tailwindcss/runtime-patch.d.ts +5 -0
  138. package/dist/tailwindcss/runtime.d.ts +11 -12
  139. package/dist/tailwindcss/source-scan.d.ts +35 -0
  140. package/dist/tailwindcss/targets.d.ts +1 -5
  141. package/dist/tailwindcss/v3-engine/types.d.ts +17 -14
  142. package/dist/tailwindcss/v4/css-entries.d.ts +2 -2
  143. package/dist/tailwindcss/v4/css-sources.d.ts +5 -0
  144. package/dist/tailwindcss/v4/patcher-options.d.ts +1 -23
  145. package/dist/tailwindcss/v4/patcher.d.ts +1 -0
  146. package/dist/tailwindcss/v4-engine/source.d.ts +2 -2
  147. package/dist/tailwindcss/v4-engine/types.d.ts +17 -5
  148. package/dist/tailwindcss/version.d.ts +4 -0
  149. package/dist/tailwindcss-B-e2RiXr.js +642 -0
  150. package/dist/tailwindcss-C7dJHZ0G.mjs +591 -0
  151. package/dist/typedoc.export.d.ts +0 -2
  152. package/dist/types/index.d.ts +52 -49
  153. package/dist/types/shared.d.ts +6 -0
  154. package/dist/types/user-defined-options/general.d.ts +25 -24
  155. package/dist/types/user-defined-options/important.d.ts +33 -28
  156. package/dist/types/user-defined-options/lifecycle.d.ts +4 -4
  157. package/dist/types/user-defined-options/matcher.d.ts +6 -6
  158. package/dist/uni-app-x/vite.d.ts +1 -1
  159. package/dist/unocss/index.d.ts +2 -0
  160. package/dist/utils/disabled.d.ts +2 -3
  161. package/dist/utils/object.d.ts +9 -0
  162. package/dist/utils/options.d.ts +2 -0
  163. package/dist/utils/regex.d.ts +1 -0
  164. package/dist/{utils-DmC9_In3.js → utils-D7Ygohep.js} +2 -2
  165. package/dist/{utils-7DUGTFED.mjs → utils-DsaS975I.mjs} +1 -1
  166. package/dist/v3-engine-CHItlVq5.js +3616 -0
  167. package/dist/v3-engine-DcvCCHfs.mjs +3321 -0
  168. package/dist/vite-BgTPSkQS.js +24446 -0
  169. package/dist/vite-fFRpSvyz.mjs +24432 -0
  170. package/dist/vite.d.ts +1 -2
  171. package/dist/vite.js +3 -4
  172. package/dist/vite.mjs +2 -2
  173. package/dist/weapp-tw-css-import-rewrite-loader.js +5227 -18
  174. package/dist/weapp-tw-runtime-classset-loader.js +32 -9
  175. package/dist/webpack-BXSWVdXh.js +851 -0
  176. package/dist/webpack-Dx2AZpGU.mjs +841 -0
  177. package/dist/webpack.d.ts +1 -3
  178. package/dist/webpack.js +3 -4
  179. package/dist/webpack.mjs +2 -2
  180. package/package.json +38 -48
  181. package/dist/bundlers/shared/generator-candidates.d.ts +0 -5
  182. package/dist/bundlers/webpack/BaseUnifiedPlugin/v4-assets.d.ts +0 -14
  183. package/dist/bundlers/webpack/BaseUnifiedPlugin/v4-loaders.d.ts +0 -15
  184. package/dist/bundlers/webpack/BaseUnifiedPlugin/v4.d.ts +0 -9
  185. package/dist/bundlers/webpack/shared/css-imports.d.ts +0 -6
  186. package/dist/cli/config.d.ts +0 -5
  187. package/dist/cli/helpers/patch-cwd.d.ts +0 -1
  188. package/dist/cli/mount-options/patch-status.d.ts +0 -2
  189. package/dist/cli/patch-options.d.ts +0 -6
  190. package/dist/cli/tokens.d.ts +0 -4
  191. package/dist/cli/workspace/package-dirs.d.ts +0 -3
  192. package/dist/cli/workspace/patch-package.d.ts +0 -3
  193. package/dist/cli/workspace/patch-utils.d.ts +0 -3
  194. package/dist/cli/workspace/types.d.ts +0 -11
  195. package/dist/cli/workspace/workspace-globs.d.ts +0 -2
  196. package/dist/cli/workspace/workspace-io.d.ts +0 -1
  197. package/dist/cli/workspace/workspace-lock.d.ts +0 -1
  198. package/dist/cli/workspace.d.ts +0 -2
  199. package/dist/constants-B-_T5UnW.mjs +0 -44
  200. package/dist/constants-p1dyh1x1.js +0 -73
  201. package/dist/css-imports-BbrbluP9.js +0 -177
  202. package/dist/css-imports-CSdPq_Sc.mjs +0 -128
  203. package/dist/experimental/index.d.ts +0 -2
  204. package/dist/experimental/oxc/ast-utils.d.ts +0 -30
  205. package/dist/experimental/oxc/index.d.ts +0 -2
  206. package/dist/experimental/oxc/module-specifiers.d.ts +0 -2
  207. package/dist/experimental/shared/cache.d.ts +0 -3
  208. package/dist/experimental/shared/transform.d.ts +0 -3
  209. package/dist/experimental/shared.d.ts +0 -8
  210. package/dist/experimental/swc/ast-utils.d.ts +0 -30
  211. package/dist/experimental/swc/index.d.ts +0 -2
  212. package/dist/experimental/swc/module-specifiers.d.ts +0 -2
  213. package/dist/generator-Y-Ikv4Fu.mjs +0 -1177
  214. package/dist/generator-css-Bwy_Uz89.mjs +0 -1097
  215. package/dist/generator-css-CRLrHW4F.js +0 -1124
  216. package/dist/generator-mmhXzZnv.js +0 -1276
  217. package/dist/js/syntax.d.ts +0 -10
  218. package/dist/lightningcss/index.d.ts +0 -8
  219. package/dist/lightningcss/style-handler/options.d.ts +0 -3
  220. package/dist/lightningcss/style-handler/selector-transform.d.ts +0 -10
  221. package/dist/lightningcss/style-handler/selector-utils.d.ts +0 -10
  222. package/dist/lightningcss/style-handler.d.ts +0 -17
  223. package/dist/loader-anchors-1MumTAtA.mjs +0 -205
  224. package/dist/loader-anchors-TrFvT6g1.js +0 -273
  225. package/dist/logger-BZ45DZJT.js +0 -1003
  226. package/dist/logger-BoVx1Dbt.mjs +0 -935
  227. package/dist/patcher-options-6gJN2EXy.js +0 -115
  228. package/dist/patcher-options-DQfR5xxT.mjs +0 -92
  229. package/dist/recorder-GdTJ3QqX.js +0 -2878
  230. package/dist/recorder-XdFvVASS.mjs +0 -2763
  231. package/dist/tailwindcss/recorder.d.ts +0 -13
  232. package/dist/tailwindcss/targets/paths.d.ts +0 -13
  233. package/dist/tailwindcss/targets/record-io.d.ts +0 -5
  234. package/dist/tailwindcss/targets/recorder.d.ts +0 -3
  235. package/dist/tailwindcss/targets/types.d.ts +0 -35
  236. package/dist/types/disabled-options.d.ts +0 -4
  237. package/dist/vite-BDywuCjn.mjs +0 -2186
  238. package/dist/vite-DgRh_GXn.js +0 -2199
  239. package/dist/webpack-CAJR4hhP.js +0 -456
  240. package/dist/webpack-CiHqVZTg.mjs +0 -441
  241. package/dist/webpack4.d.ts +0 -4
  242. package/dist/webpack4.js +0 -387
  243. package/dist/webpack4.mjs +0 -379
  244. package/scripts/postinstall.mjs +0 -59
@@ -1,6 +1,7 @@
1
1
  import type { AppType } from '../types';
2
2
  export declare function isMpx(appType?: AppType): appType is "mpx";
3
3
  export declare function getTailwindcssCssEntry(pkgDir: string): string;
4
+ export declare function patchMpxWebpackPluginNormalizeLib(compiler: any, mpxWebpackPluginDir: string | undefined): boolean;
4
5
  export declare function ensureMpxTailwindcssAliases(compiler: any, pkgDir: string): string;
5
6
  export declare function patchMpxLoaderResolve(loaderContext: any, pkgDir: string, enabled: boolean): void;
6
7
  export declare function setupMpxTailwindcssRedirect(pkgDir: string, enabled: boolean): void;
@@ -0,0 +1,322 @@
1
+ import { L as resolveSourceScanPath, N as isFileMatchedByTailwindSourceEntries, k as FULL_SOURCE_SCAN_EXTENSION_RE, z as toPosixPath } from "./v3-engine-DcvCCHfs.mjs";
2
+ import path from "node:path";
3
+ import { extractSourceCandidates, resolveProjectSourceFiles } from "tailwindcss-patch";
4
+ import { readFile } from "node:fs/promises";
5
+ //#region src/bundlers/vite/source-candidates.ts
6
+ const CLEAN_URL_RE = /[?#].*$/;
7
+ const TAILWIND_V4_IGNORED_CONTENT_DIRS = [
8
+ ".git",
9
+ ".hg",
10
+ ".jj",
11
+ ".next",
12
+ ".parcel-cache",
13
+ ".pnpm-store",
14
+ ".svelte-kit",
15
+ ".svn",
16
+ ".turbo",
17
+ ".venv",
18
+ ".vercel",
19
+ ".yarn",
20
+ "__pycache__",
21
+ "node_modules",
22
+ "venv"
23
+ ];
24
+ const TAILWIND_V4_IGNORED_EXTENSIONS = [
25
+ "css",
26
+ "less",
27
+ "postcss",
28
+ "pcss",
29
+ "lock",
30
+ "sass",
31
+ "scss",
32
+ "styl",
33
+ "stylus",
34
+ "log",
35
+ "wxss",
36
+ "acss",
37
+ "jxss",
38
+ "ttss",
39
+ "qss",
40
+ "tyss"
41
+ ];
42
+ const TAILWIND_V4_IGNORED_FILES = [
43
+ "package-lock.json",
44
+ "pnpm-lock.yaml",
45
+ "bun.lockb",
46
+ ".gitignore",
47
+ ".env",
48
+ ".env.*"
49
+ ];
50
+ const sourceCandidateContentCache = /* @__PURE__ */ new Map();
51
+ function cleanUrl(id) {
52
+ return resolveSourceScanPath(id.replace(CLEAN_URL_RE, ""));
53
+ }
54
+ function resolveOutDirIgnorePattern(root, outDir) {
55
+ if (!outDir) return;
56
+ const relative = path.relative(root, path.resolve(root, outDir));
57
+ if (!relative || relative.startsWith("..") || path.isAbsolute(relative)) return;
58
+ return `${toPosixPath(relative)}/**`;
59
+ }
60
+ function normalizeScanEntries(root, entries, outDirIgnore) {
61
+ const hasPositiveEntry = entries?.some((entry) => !entry.negated) === true;
62
+ const scanEntries = entries?.length ? hasPositiveEntry ? entries : [{
63
+ base: root,
64
+ pattern: "**/*",
65
+ negated: false
66
+ }, ...entries] : void 0;
67
+ if (!outDirIgnore) return scanEntries;
68
+ return [...scanEntries ?? [{
69
+ base: root,
70
+ pattern: "**/*",
71
+ negated: false
72
+ }], {
73
+ base: root,
74
+ pattern: outDirIgnore,
75
+ negated: true
76
+ }];
77
+ }
78
+ function shouldApplyDefaultIgnoredSources(entries) {
79
+ return entries?.length === void 0 ? false : entries.length > 0 && entries.every((entry) => entry.negated);
80
+ }
81
+ function createDefaultIgnoredSources(root, outDirIgnore, entries, explicit) {
82
+ return [...!explicit || shouldApplyDefaultIgnoredSources(entries) ? [
83
+ ...TAILWIND_V4_IGNORED_CONTENT_DIRS.map((pattern) => ({
84
+ base: root,
85
+ pattern: `**/${pattern}/**`,
86
+ negated: true
87
+ })),
88
+ ...TAILWIND_V4_IGNORED_EXTENSIONS.map((extension) => ({
89
+ base: root,
90
+ pattern: `**/*.${extension}`,
91
+ negated: true
92
+ })),
93
+ ...TAILWIND_V4_IGNORED_FILES.map((pattern) => ({
94
+ base: root,
95
+ pattern: `**/${pattern}`,
96
+ negated: true
97
+ }))
98
+ ] : [], ...outDirIgnore ? [{
99
+ base: root,
100
+ pattern: outDirIgnore,
101
+ negated: true
102
+ }] : []];
103
+ }
104
+ function resolveSourceCandidateExtension(id) {
105
+ const normalized = cleanUrl(id);
106
+ return /\.([^.\\/]+)$/.exec(normalized)?.[1] ?? "html";
107
+ }
108
+ function createSourceCandidateContentCacheKey(extension, source) {
109
+ return `${extension}\0${source}`;
110
+ }
111
+ function isSourceCandidateRequest(id) {
112
+ return FULL_SOURCE_SCAN_EXTENSION_RE.test(cleanUrl(id));
113
+ }
114
+ function removeCandidateSet(candidateCount, candidates) {
115
+ for (const candidate of candidates) {
116
+ const count = candidateCount.get(candidate);
117
+ if (count == null) continue;
118
+ if (count <= 1) {
119
+ candidateCount.delete(candidate);
120
+ continue;
121
+ }
122
+ candidateCount.set(candidate, count - 1);
123
+ }
124
+ }
125
+ function addCandidateSet(candidateCount, candidates) {
126
+ for (const candidate of candidates) candidateCount.set(candidate, (candidateCount.get(candidate) ?? 0) + 1);
127
+ }
128
+ function createSourceCandidateCollector() {
129
+ const candidatesById = /* @__PURE__ */ new Map();
130
+ const scanCandidatesById = /* @__PURE__ */ new Map();
131
+ const transformCandidatesById = /* @__PURE__ */ new Map();
132
+ const cssCandidatesById = /* @__PURE__ */ new Map();
133
+ const candidateCount = /* @__PURE__ */ new Map();
134
+ let inlineIncludedCandidates = /* @__PURE__ */ new Set();
135
+ let inlineExcludedCandidates = /* @__PURE__ */ new Set();
136
+ async function sync(id, source) {
137
+ const normalizedId = cleanUrl(id);
138
+ const extension = resolveSourceCandidateExtension(normalizedId);
139
+ const contentCacheKey = createSourceCandidateContentCacheKey(extension, source);
140
+ const cachedCandidates = sourceCandidateContentCache.get(contentCacheKey);
141
+ if (cachedCandidates) {
142
+ replaceScanLayer(normalizedId, new Set(cachedCandidates));
143
+ return;
144
+ }
145
+ const nextCandidates = new Set(await extractSourceCandidates(source, extension));
146
+ sourceCandidateContentCache.set(contentCacheKey, [...nextCandidates]);
147
+ replaceScanLayer(normalizedId, nextCandidates);
148
+ }
149
+ async function syncCss(id, source) {
150
+ const normalizedId = cleanUrl(id);
151
+ const contentCacheKey = createSourceCandidateContentCacheKey("css", source);
152
+ const cachedCandidates = sourceCandidateContentCache.get(contentCacheKey);
153
+ if (cachedCandidates) {
154
+ replaceCssLayer(normalizedId, new Set(cachedCandidates));
155
+ return;
156
+ }
157
+ const nextCandidates = new Set(await extractSourceCandidates(source, "css"));
158
+ sourceCandidateContentCache.set(contentCacheKey, [...nextCandidates]);
159
+ replaceCssLayer(normalizedId, nextCandidates);
160
+ }
161
+ async function merge(id, source) {
162
+ const normalizedId = cleanUrl(id);
163
+ const extension = resolveSourceCandidateExtension(normalizedId);
164
+ const contentCacheKey = createSourceCandidateContentCacheKey(extension, source);
165
+ const cachedCandidates = sourceCandidateContentCache.get(contentCacheKey);
166
+ const extractedCandidates = cachedCandidates ? new Set(cachedCandidates) : new Set(await extractSourceCandidates(source, extension));
167
+ if (!cachedCandidates) sourceCandidateContentCache.set(contentCacheKey, [...extractedCandidates]);
168
+ replaceTransformLayer(normalizedId, extractedCandidates);
169
+ }
170
+ async function syncFile(id) {
171
+ const normalizedId = cleanUrl(id);
172
+ await sync(normalizedId, await readFile(normalizedId, "utf8"));
173
+ }
174
+ async function syncCurrentFile(id) {
175
+ const normalizedId = cleanUrl(id);
176
+ transformCandidatesById.delete(normalizedId);
177
+ await syncFile(normalizedId);
178
+ }
179
+ async function scanRoot({ entries, explicit, root, outDir }) {
180
+ const resolvedRoot = path.resolve(root);
181
+ const outDirIgnore = resolveOutDirIgnorePattern(resolvedRoot, outDir);
182
+ const scanEntries = normalizeScanEntries(resolvedRoot, entries, outDirIgnore);
183
+ const ignoredSources = createDefaultIgnoredSources(resolvedRoot, outDirIgnore, entries, explicit);
184
+ const files = await resolveProjectSourceFiles({
185
+ cwd: resolvedRoot,
186
+ ...scanEntries === void 0 ? {} : { sources: scanEntries },
187
+ ...ignoredSources.length > 0 ? { ignoredSources } : {},
188
+ filter: isSourceCandidateRequest
189
+ });
190
+ await Promise.all(files.map((file) => syncFile(file)));
191
+ }
192
+ function replaceFinal(id, nextCandidates) {
193
+ const normalizedId = cleanUrl(id);
194
+ const previousCandidates = candidatesById.get(normalizedId);
195
+ if (previousCandidates) {
196
+ removeCandidateSet(candidateCount, previousCandidates);
197
+ candidatesById.delete(normalizedId);
198
+ }
199
+ if (nextCandidates.size === 0) return;
200
+ candidatesById.set(normalizedId, nextCandidates);
201
+ addCandidateSet(candidateCount, nextCandidates);
202
+ }
203
+ function replaceScanLayer(id, nextCandidates) {
204
+ const normalizedId = cleanUrl(id);
205
+ if (nextCandidates.size === 0) scanCandidatesById.delete(normalizedId);
206
+ else scanCandidatesById.set(normalizedId, nextCandidates);
207
+ recompute(normalizedId);
208
+ }
209
+ function replaceTransformLayer(id, nextCandidates) {
210
+ const normalizedId = cleanUrl(id);
211
+ if (nextCandidates.size === 0) transformCandidatesById.delete(normalizedId);
212
+ else transformCandidatesById.set(normalizedId, nextCandidates);
213
+ recompute(normalizedId);
214
+ }
215
+ function replaceCssLayer(id, nextCandidates) {
216
+ const normalizedId = cleanUrl(id);
217
+ if (nextCandidates.size === 0) cssCandidatesById.delete(normalizedId);
218
+ else cssCandidatesById.set(normalizedId, nextCandidates);
219
+ recompute(normalizedId);
220
+ }
221
+ function recompute(id) {
222
+ const normalizedId = cleanUrl(id);
223
+ replaceFinal(normalizedId, new Set([
224
+ ...scanCandidatesById.get(normalizedId) ?? [],
225
+ ...transformCandidatesById.get(normalizedId) ?? [],
226
+ ...cssCandidatesById.get(normalizedId) ?? []
227
+ ]));
228
+ }
229
+ function syncInline(inlineCandidates) {
230
+ inlineIncludedCandidates = new Set(inlineCandidates?.included ?? []);
231
+ inlineExcludedCandidates = new Set(inlineCandidates?.excluded ?? []);
232
+ }
233
+ function remove(id) {
234
+ const normalizedId = cleanUrl(id);
235
+ scanCandidatesById.delete(normalizedId);
236
+ transformCandidatesById.delete(normalizedId);
237
+ cssCandidatesById.delete(normalizedId);
238
+ const previousCandidates = candidatesById.get(normalizedId);
239
+ if (!previousCandidates) return;
240
+ removeCandidateSet(candidateCount, previousCandidates);
241
+ candidatesById.delete(normalizedId);
242
+ }
243
+ function values() {
244
+ const values = new Set([...candidateCount.keys(), ...inlineIncludedCandidates]);
245
+ for (const candidate of inlineExcludedCandidates) values.delete(candidate);
246
+ return values;
247
+ }
248
+ function valuesForEntries(entries) {
249
+ if (entries === void 0) return values();
250
+ const filtered = /* @__PURE__ */ new Set();
251
+ for (const [id, candidates] of candidatesById) {
252
+ if (!isFileMatchedByTailwindSourceEntries(id, entries)) continue;
253
+ for (const candidate of candidates) filtered.add(candidate);
254
+ }
255
+ for (const candidate of inlineIncludedCandidates) filtered.add(candidate);
256
+ for (const candidate of inlineExcludedCandidates) filtered.delete(candidate);
257
+ return filtered;
258
+ }
259
+ function clear() {
260
+ candidatesById.clear();
261
+ scanCandidatesById.clear();
262
+ transformCandidatesById.clear();
263
+ cssCandidatesById.clear();
264
+ candidateCount.clear();
265
+ inlineIncludedCandidates.clear();
266
+ inlineExcludedCandidates.clear();
267
+ }
268
+ function snapshot() {
269
+ return {
270
+ candidatesById: [...candidatesById.entries()].map(([id, candidates]) => [id, [...candidates]]),
271
+ cssCandidatesById: [...cssCandidatesById.entries()].map(([id, candidates]) => [id, [...candidates]]),
272
+ scanCandidatesById: [...scanCandidatesById.entries()].map(([id, candidates]) => [id, [...candidates]]),
273
+ transformCandidatesById: [...transformCandidatesById.entries()].map(([id, candidates]) => [id, [...candidates]]),
274
+ inlineExcludedCandidates: [...inlineExcludedCandidates],
275
+ inlineIncludedCandidates: [...inlineIncludedCandidates]
276
+ };
277
+ }
278
+ function restore(snapshot) {
279
+ clear();
280
+ inlineExcludedCandidates = new Set(snapshot.inlineExcludedCandidates);
281
+ inlineIncludedCandidates = new Set(snapshot.inlineIncludedCandidates);
282
+ const scanEntries = snapshot.scanCandidatesById ?? snapshot.candidatesById;
283
+ for (const [id, candidates] of scanEntries) {
284
+ const candidateSet = new Set(candidates);
285
+ if (candidateSet.size === 0) continue;
286
+ scanCandidatesById.set(id, candidateSet);
287
+ }
288
+ for (const [id, candidates] of snapshot.transformCandidatesById ?? []) {
289
+ const candidateSet = new Set(candidates);
290
+ if (candidateSet.size === 0) continue;
291
+ transformCandidatesById.set(id, candidateSet);
292
+ }
293
+ for (const [id, candidates] of snapshot.cssCandidatesById ?? []) {
294
+ const candidateSet = new Set(candidates);
295
+ if (candidateSet.size === 0) continue;
296
+ cssCandidatesById.set(id, candidateSet);
297
+ }
298
+ for (const [id, candidates] of snapshot.candidatesById) {
299
+ const candidateSet = new Set(candidates);
300
+ if (candidateSet.size === 0) continue;
301
+ candidatesById.set(id, candidateSet);
302
+ addCandidateSet(candidateCount, candidateSet);
303
+ }
304
+ }
305
+ return {
306
+ sync,
307
+ syncCss,
308
+ merge,
309
+ syncFile,
310
+ syncCurrentFile,
311
+ scanRoot,
312
+ syncInline,
313
+ remove,
314
+ values,
315
+ valuesForEntries,
316
+ snapshot,
317
+ restore,
318
+ clear
319
+ };
320
+ }
321
+ //#endregion
322
+ export { isSourceCandidateRequest as n, createSourceCandidateCollector as t };
@@ -0,0 +1,335 @@
1
+ const require_chunk = require("./chunk-C5U5_Hdc.js");
2
+ const require_v3_engine = require("./v3-engine-CHItlVq5.js");
3
+ let node_path = require("node:path");
4
+ node_path = require_chunk.__toESM(node_path);
5
+ let tailwindcss_patch = require("tailwindcss-patch");
6
+ let node_fs_promises = require("node:fs/promises");
7
+ //#region src/bundlers/vite/source-candidates.ts
8
+ const CLEAN_URL_RE = /[?#].*$/;
9
+ const TAILWIND_V4_IGNORED_CONTENT_DIRS = [
10
+ ".git",
11
+ ".hg",
12
+ ".jj",
13
+ ".next",
14
+ ".parcel-cache",
15
+ ".pnpm-store",
16
+ ".svelte-kit",
17
+ ".svn",
18
+ ".turbo",
19
+ ".venv",
20
+ ".vercel",
21
+ ".yarn",
22
+ "__pycache__",
23
+ "node_modules",
24
+ "venv"
25
+ ];
26
+ const TAILWIND_V4_IGNORED_EXTENSIONS = [
27
+ "css",
28
+ "less",
29
+ "postcss",
30
+ "pcss",
31
+ "lock",
32
+ "sass",
33
+ "scss",
34
+ "styl",
35
+ "stylus",
36
+ "log",
37
+ "wxss",
38
+ "acss",
39
+ "jxss",
40
+ "ttss",
41
+ "qss",
42
+ "tyss"
43
+ ];
44
+ const TAILWIND_V4_IGNORED_FILES = [
45
+ "package-lock.json",
46
+ "pnpm-lock.yaml",
47
+ "bun.lockb",
48
+ ".gitignore",
49
+ ".env",
50
+ ".env.*"
51
+ ];
52
+ const sourceCandidateContentCache = /* @__PURE__ */ new Map();
53
+ function cleanUrl(id) {
54
+ return require_v3_engine.resolveSourceScanPath(id.replace(CLEAN_URL_RE, ""));
55
+ }
56
+ function resolveOutDirIgnorePattern(root, outDir) {
57
+ if (!outDir) return;
58
+ const relative = node_path.default.relative(root, node_path.default.resolve(root, outDir));
59
+ if (!relative || relative.startsWith("..") || node_path.default.isAbsolute(relative)) return;
60
+ return `${require_v3_engine.toPosixPath(relative)}/**`;
61
+ }
62
+ function normalizeScanEntries(root, entries, outDirIgnore) {
63
+ const hasPositiveEntry = entries?.some((entry) => !entry.negated) === true;
64
+ const scanEntries = entries?.length ? hasPositiveEntry ? entries : [{
65
+ base: root,
66
+ pattern: "**/*",
67
+ negated: false
68
+ }, ...entries] : void 0;
69
+ if (!outDirIgnore) return scanEntries;
70
+ return [...scanEntries ?? [{
71
+ base: root,
72
+ pattern: "**/*",
73
+ negated: false
74
+ }], {
75
+ base: root,
76
+ pattern: outDirIgnore,
77
+ negated: true
78
+ }];
79
+ }
80
+ function shouldApplyDefaultIgnoredSources(entries) {
81
+ return entries?.length === void 0 ? false : entries.length > 0 && entries.every((entry) => entry.negated);
82
+ }
83
+ function createDefaultIgnoredSources(root, outDirIgnore, entries, explicit) {
84
+ return [...!explicit || shouldApplyDefaultIgnoredSources(entries) ? [
85
+ ...TAILWIND_V4_IGNORED_CONTENT_DIRS.map((pattern) => ({
86
+ base: root,
87
+ pattern: `**/${pattern}/**`,
88
+ negated: true
89
+ })),
90
+ ...TAILWIND_V4_IGNORED_EXTENSIONS.map((extension) => ({
91
+ base: root,
92
+ pattern: `**/*.${extension}`,
93
+ negated: true
94
+ })),
95
+ ...TAILWIND_V4_IGNORED_FILES.map((pattern) => ({
96
+ base: root,
97
+ pattern: `**/${pattern}`,
98
+ negated: true
99
+ }))
100
+ ] : [], ...outDirIgnore ? [{
101
+ base: root,
102
+ pattern: outDirIgnore,
103
+ negated: true
104
+ }] : []];
105
+ }
106
+ function resolveSourceCandidateExtension(id) {
107
+ const normalized = cleanUrl(id);
108
+ return /\.([^.\\/]+)$/.exec(normalized)?.[1] ?? "html";
109
+ }
110
+ function createSourceCandidateContentCacheKey(extension, source) {
111
+ return `${extension}\0${source}`;
112
+ }
113
+ function isSourceCandidateRequest(id) {
114
+ return require_v3_engine.FULL_SOURCE_SCAN_EXTENSION_RE.test(cleanUrl(id));
115
+ }
116
+ function removeCandidateSet(candidateCount, candidates) {
117
+ for (const candidate of candidates) {
118
+ const count = candidateCount.get(candidate);
119
+ if (count == null) continue;
120
+ if (count <= 1) {
121
+ candidateCount.delete(candidate);
122
+ continue;
123
+ }
124
+ candidateCount.set(candidate, count - 1);
125
+ }
126
+ }
127
+ function addCandidateSet(candidateCount, candidates) {
128
+ for (const candidate of candidates) candidateCount.set(candidate, (candidateCount.get(candidate) ?? 0) + 1);
129
+ }
130
+ function createSourceCandidateCollector() {
131
+ const candidatesById = /* @__PURE__ */ new Map();
132
+ const scanCandidatesById = /* @__PURE__ */ new Map();
133
+ const transformCandidatesById = /* @__PURE__ */ new Map();
134
+ const cssCandidatesById = /* @__PURE__ */ new Map();
135
+ const candidateCount = /* @__PURE__ */ new Map();
136
+ let inlineIncludedCandidates = /* @__PURE__ */ new Set();
137
+ let inlineExcludedCandidates = /* @__PURE__ */ new Set();
138
+ async function sync(id, source) {
139
+ const normalizedId = cleanUrl(id);
140
+ const extension = resolveSourceCandidateExtension(normalizedId);
141
+ const contentCacheKey = createSourceCandidateContentCacheKey(extension, source);
142
+ const cachedCandidates = sourceCandidateContentCache.get(contentCacheKey);
143
+ if (cachedCandidates) {
144
+ replaceScanLayer(normalizedId, new Set(cachedCandidates));
145
+ return;
146
+ }
147
+ const nextCandidates = new Set(await (0, tailwindcss_patch.extractSourceCandidates)(source, extension));
148
+ sourceCandidateContentCache.set(contentCacheKey, [...nextCandidates]);
149
+ replaceScanLayer(normalizedId, nextCandidates);
150
+ }
151
+ async function syncCss(id, source) {
152
+ const normalizedId = cleanUrl(id);
153
+ const contentCacheKey = createSourceCandidateContentCacheKey("css", source);
154
+ const cachedCandidates = sourceCandidateContentCache.get(contentCacheKey);
155
+ if (cachedCandidates) {
156
+ replaceCssLayer(normalizedId, new Set(cachedCandidates));
157
+ return;
158
+ }
159
+ const nextCandidates = new Set(await (0, tailwindcss_patch.extractSourceCandidates)(source, "css"));
160
+ sourceCandidateContentCache.set(contentCacheKey, [...nextCandidates]);
161
+ replaceCssLayer(normalizedId, nextCandidates);
162
+ }
163
+ async function merge(id, source) {
164
+ const normalizedId = cleanUrl(id);
165
+ const extension = resolveSourceCandidateExtension(normalizedId);
166
+ const contentCacheKey = createSourceCandidateContentCacheKey(extension, source);
167
+ const cachedCandidates = sourceCandidateContentCache.get(contentCacheKey);
168
+ const extractedCandidates = cachedCandidates ? new Set(cachedCandidates) : new Set(await (0, tailwindcss_patch.extractSourceCandidates)(source, extension));
169
+ if (!cachedCandidates) sourceCandidateContentCache.set(contentCacheKey, [...extractedCandidates]);
170
+ replaceTransformLayer(normalizedId, extractedCandidates);
171
+ }
172
+ async function syncFile(id) {
173
+ const normalizedId = cleanUrl(id);
174
+ await sync(normalizedId, await (0, node_fs_promises.readFile)(normalizedId, "utf8"));
175
+ }
176
+ async function syncCurrentFile(id) {
177
+ const normalizedId = cleanUrl(id);
178
+ transformCandidatesById.delete(normalizedId);
179
+ await syncFile(normalizedId);
180
+ }
181
+ async function scanRoot({ entries, explicit, root, outDir }) {
182
+ const resolvedRoot = node_path.default.resolve(root);
183
+ const outDirIgnore = resolveOutDirIgnorePattern(resolvedRoot, outDir);
184
+ const scanEntries = normalizeScanEntries(resolvedRoot, entries, outDirIgnore);
185
+ const ignoredSources = createDefaultIgnoredSources(resolvedRoot, outDirIgnore, entries, explicit);
186
+ const files = await (0, tailwindcss_patch.resolveProjectSourceFiles)({
187
+ cwd: resolvedRoot,
188
+ ...scanEntries === void 0 ? {} : { sources: scanEntries },
189
+ ...ignoredSources.length > 0 ? { ignoredSources } : {},
190
+ filter: isSourceCandidateRequest
191
+ });
192
+ await Promise.all(files.map((file) => syncFile(file)));
193
+ }
194
+ function replaceFinal(id, nextCandidates) {
195
+ const normalizedId = cleanUrl(id);
196
+ const previousCandidates = candidatesById.get(normalizedId);
197
+ if (previousCandidates) {
198
+ removeCandidateSet(candidateCount, previousCandidates);
199
+ candidatesById.delete(normalizedId);
200
+ }
201
+ if (nextCandidates.size === 0) return;
202
+ candidatesById.set(normalizedId, nextCandidates);
203
+ addCandidateSet(candidateCount, nextCandidates);
204
+ }
205
+ function replaceScanLayer(id, nextCandidates) {
206
+ const normalizedId = cleanUrl(id);
207
+ if (nextCandidates.size === 0) scanCandidatesById.delete(normalizedId);
208
+ else scanCandidatesById.set(normalizedId, nextCandidates);
209
+ recompute(normalizedId);
210
+ }
211
+ function replaceTransformLayer(id, nextCandidates) {
212
+ const normalizedId = cleanUrl(id);
213
+ if (nextCandidates.size === 0) transformCandidatesById.delete(normalizedId);
214
+ else transformCandidatesById.set(normalizedId, nextCandidates);
215
+ recompute(normalizedId);
216
+ }
217
+ function replaceCssLayer(id, nextCandidates) {
218
+ const normalizedId = cleanUrl(id);
219
+ if (nextCandidates.size === 0) cssCandidatesById.delete(normalizedId);
220
+ else cssCandidatesById.set(normalizedId, nextCandidates);
221
+ recompute(normalizedId);
222
+ }
223
+ function recompute(id) {
224
+ const normalizedId = cleanUrl(id);
225
+ replaceFinal(normalizedId, new Set([
226
+ ...scanCandidatesById.get(normalizedId) ?? [],
227
+ ...transformCandidatesById.get(normalizedId) ?? [],
228
+ ...cssCandidatesById.get(normalizedId) ?? []
229
+ ]));
230
+ }
231
+ function syncInline(inlineCandidates) {
232
+ inlineIncludedCandidates = new Set(inlineCandidates?.included ?? []);
233
+ inlineExcludedCandidates = new Set(inlineCandidates?.excluded ?? []);
234
+ }
235
+ function remove(id) {
236
+ const normalizedId = cleanUrl(id);
237
+ scanCandidatesById.delete(normalizedId);
238
+ transformCandidatesById.delete(normalizedId);
239
+ cssCandidatesById.delete(normalizedId);
240
+ const previousCandidates = candidatesById.get(normalizedId);
241
+ if (!previousCandidates) return;
242
+ removeCandidateSet(candidateCount, previousCandidates);
243
+ candidatesById.delete(normalizedId);
244
+ }
245
+ function values() {
246
+ const values = new Set([...candidateCount.keys(), ...inlineIncludedCandidates]);
247
+ for (const candidate of inlineExcludedCandidates) values.delete(candidate);
248
+ return values;
249
+ }
250
+ function valuesForEntries(entries) {
251
+ if (entries === void 0) return values();
252
+ const filtered = /* @__PURE__ */ new Set();
253
+ for (const [id, candidates] of candidatesById) {
254
+ if (!require_v3_engine.isFileMatchedByTailwindSourceEntries(id, entries)) continue;
255
+ for (const candidate of candidates) filtered.add(candidate);
256
+ }
257
+ for (const candidate of inlineIncludedCandidates) filtered.add(candidate);
258
+ for (const candidate of inlineExcludedCandidates) filtered.delete(candidate);
259
+ return filtered;
260
+ }
261
+ function clear() {
262
+ candidatesById.clear();
263
+ scanCandidatesById.clear();
264
+ transformCandidatesById.clear();
265
+ cssCandidatesById.clear();
266
+ candidateCount.clear();
267
+ inlineIncludedCandidates.clear();
268
+ inlineExcludedCandidates.clear();
269
+ }
270
+ function snapshot() {
271
+ return {
272
+ candidatesById: [...candidatesById.entries()].map(([id, candidates]) => [id, [...candidates]]),
273
+ cssCandidatesById: [...cssCandidatesById.entries()].map(([id, candidates]) => [id, [...candidates]]),
274
+ scanCandidatesById: [...scanCandidatesById.entries()].map(([id, candidates]) => [id, [...candidates]]),
275
+ transformCandidatesById: [...transformCandidatesById.entries()].map(([id, candidates]) => [id, [...candidates]]),
276
+ inlineExcludedCandidates: [...inlineExcludedCandidates],
277
+ inlineIncludedCandidates: [...inlineIncludedCandidates]
278
+ };
279
+ }
280
+ function restore(snapshot) {
281
+ clear();
282
+ inlineExcludedCandidates = new Set(snapshot.inlineExcludedCandidates);
283
+ inlineIncludedCandidates = new Set(snapshot.inlineIncludedCandidates);
284
+ const scanEntries = snapshot.scanCandidatesById ?? snapshot.candidatesById;
285
+ for (const [id, candidates] of scanEntries) {
286
+ const candidateSet = new Set(candidates);
287
+ if (candidateSet.size === 0) continue;
288
+ scanCandidatesById.set(id, candidateSet);
289
+ }
290
+ for (const [id, candidates] of snapshot.transformCandidatesById ?? []) {
291
+ const candidateSet = new Set(candidates);
292
+ if (candidateSet.size === 0) continue;
293
+ transformCandidatesById.set(id, candidateSet);
294
+ }
295
+ for (const [id, candidates] of snapshot.cssCandidatesById ?? []) {
296
+ const candidateSet = new Set(candidates);
297
+ if (candidateSet.size === 0) continue;
298
+ cssCandidatesById.set(id, candidateSet);
299
+ }
300
+ for (const [id, candidates] of snapshot.candidatesById) {
301
+ const candidateSet = new Set(candidates);
302
+ if (candidateSet.size === 0) continue;
303
+ candidatesById.set(id, candidateSet);
304
+ addCandidateSet(candidateCount, candidateSet);
305
+ }
306
+ }
307
+ return {
308
+ sync,
309
+ syncCss,
310
+ merge,
311
+ syncFile,
312
+ syncCurrentFile,
313
+ scanRoot,
314
+ syncInline,
315
+ remove,
316
+ values,
317
+ valuesForEntries,
318
+ snapshot,
319
+ restore,
320
+ clear
321
+ };
322
+ }
323
+ //#endregion
324
+ Object.defineProperty(exports, "createSourceCandidateCollector", {
325
+ enumerable: true,
326
+ get: function() {
327
+ return createSourceCandidateCollector;
328
+ }
329
+ });
330
+ Object.defineProperty(exports, "isSourceCandidateRequest", {
331
+ enumerable: true,
332
+ get: function() {
333
+ return isSourceCandidateRequest;
334
+ }
335
+ });
@@ -1 +1 @@
1
- export declare function pruneMiniProgramGeneratedCss(css: string): string;
1
+ export { pruneMiniProgramGeneratedCss } from '@weapp-tailwindcss/postcss';