weapp-tailwindcss 4.12.0 → 5.0.0-next.2

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 (313) hide show
  1. package/dist/babel/index.d.ts +3 -0
  2. package/dist/bundlers/gulp/index.d.ts +7 -0
  3. package/dist/bundlers/shared/cache.d.ts +16 -0
  4. package/dist/bundlers/shared/css-cleanup.d.ts +4 -0
  5. package/dist/bundlers/shared/css-imports.d.ts +8 -0
  6. package/dist/bundlers/shared/generator-candidates.d.ts +5 -0
  7. package/dist/bundlers/shared/generator-css.d.ts +43 -0
  8. package/dist/bundlers/shared/module-graph.d.ts +5 -0
  9. package/dist/bundlers/shared/run-tasks.d.ts +2 -0
  10. package/dist/bundlers/vite/bundle-entries.d.ts +14 -0
  11. package/dist/bundlers/vite/bundle-state.d.ts +43 -0
  12. package/dist/bundlers/vite/css-finalizer.d.ts +22 -0
  13. package/dist/bundlers/vite/generate-bundle.d.ts +33 -0
  14. package/dist/bundlers/vite/incremental-runtime-class-set.d.ts +21 -0
  15. package/dist/bundlers/vite/index.d.ts +3 -0
  16. package/dist/bundlers/vite/js-precheck.d.ts +1 -0
  17. package/dist/bundlers/vite/query.d.ts +15 -0
  18. package/dist/bundlers/vite/resolve-app-type.d.ts +2 -0
  19. package/dist/bundlers/vite/rewrite-css-imports.d.ts +11 -0
  20. package/dist/bundlers/vite/runtime-affecting-signature.d.ts +2 -0
  21. package/dist/bundlers/vite/source-candidates.d.ts +15 -0
  22. package/dist/bundlers/vite/utils.d.ts +9 -0
  23. package/dist/bundlers/webpack/BaseUnifiedPlugin/shared.d.ts +20 -0
  24. package/dist/bundlers/webpack/BaseUnifiedPlugin/v4-assets.d.ts +14 -0
  25. package/dist/bundlers/webpack/BaseUnifiedPlugin/v4-loaders.d.ts +15 -0
  26. package/dist/bundlers/webpack/BaseUnifiedPlugin/v4.d.ts +9 -0
  27. package/dist/bundlers/webpack/BaseUnifiedPlugin/v5-assets.d.ts +17 -0
  28. package/dist/bundlers/webpack/BaseUnifiedPlugin/v5-loaders.d.ts +19 -0
  29. package/dist/bundlers/webpack/BaseUnifiedPlugin/v5.d.ts +9 -0
  30. package/dist/bundlers/webpack/index.d.ts +1 -0
  31. package/dist/bundlers/webpack/loaders/weapp-tw-css-import-rewrite-loader.d.ts +12 -0
  32. package/dist/bundlers/webpack/loaders/weapp-tw-runtime-classset-loader.d.ts +11 -0
  33. package/dist/bundlers/webpack/shared/css-imports.d.ts +6 -0
  34. package/dist/bundlers/webpack/shared/loader-anchors.d.ts +8 -0
  35. package/dist/cache/index.d.ts +38 -0
  36. package/dist/cache/md5.d.ts +1 -0
  37. package/dist/chunk-8l464Juk.js +28 -0
  38. package/dist/cli/config.d.ts +5 -0
  39. package/dist/cli/context.d.ts +16 -0
  40. package/dist/cli/doctor/constants.d.ts +7 -0
  41. package/dist/cli/doctor/types.d.ts +31 -0
  42. package/dist/cli/doctor.d.ts +4 -0
  43. package/dist/cli/helpers/options/format.d.ts +2 -0
  44. package/dist/cli/helpers/options/parse.d.ts +3 -0
  45. package/dist/cli/helpers/options/resolve.d.ts +1 -0
  46. package/dist/cli/helpers/options.d.ts +3 -0
  47. package/dist/cli/helpers/patch-cwd.d.ts +1 -0
  48. package/dist/cli/helpers.d.ts +5 -0
  49. package/dist/cli/mount-options/patch-status.d.ts +2 -0
  50. package/dist/cli/mount-options.d.ts +2 -0
  51. package/dist/cli/patch-options.d.ts +6 -0
  52. package/dist/cli/tokens.d.ts +4 -0
  53. package/dist/cli/types.d.ts +17 -0
  54. package/dist/cli/vscode-entry.d.ts +14 -0
  55. package/dist/cli/workspace/package-dirs.d.ts +3 -0
  56. package/dist/cli/workspace/patch-package.d.ts +3 -0
  57. package/dist/cli/workspace/patch-utils.d.ts +3 -0
  58. package/dist/cli/workspace/types.d.ts +11 -0
  59. package/dist/cli/workspace/workspace-globs.d.ts +2 -0
  60. package/dist/cli/workspace/workspace-io.d.ts +1 -0
  61. package/dist/cli/workspace/workspace-lock.d.ts +1 -0
  62. package/dist/cli/workspace.d.ts +2 -0
  63. package/dist/cli.d.ts +1 -2
  64. package/dist/cli.js +2425 -3524
  65. package/dist/cli.mjs +2402 -3505
  66. package/dist/constants-B-_T5UnW.mjs +44 -0
  67. package/dist/constants-p1dyh1x1.js +73 -0
  68. package/dist/constants.d.ts +13 -0
  69. package/dist/context/compiler-context-cache.d.ts +3 -0
  70. package/dist/context/custom-attributes.d.ts +2 -0
  71. package/dist/context/handlers.d.ts +6 -0
  72. package/dist/context/index.d.ts +7 -0
  73. package/dist/context/logger.d.ts +4 -0
  74. package/dist/context/tailwindcss/basedir.d.ts +1 -0
  75. package/dist/context/tailwindcss/rax.d.ts +2 -0
  76. package/dist/context/tailwindcss.d.ts +4 -0
  77. package/dist/context/workspace.d.ts +3 -0
  78. package/dist/core.d.ts +5 -21
  79. package/dist/core.js +138 -180
  80. package/dist/core.mjs +135 -180
  81. package/dist/css-imports-BbrbluP9.js +177 -0
  82. package/dist/css-imports-CSdPq_Sc.mjs +128 -0
  83. package/dist/css-macro/constants.d.ts +14 -0
  84. package/dist/css-macro/index.d.ts +15 -0
  85. package/dist/css-macro/postcss.d.ts +3 -7
  86. package/dist/css-macro/postcss.js +44 -58
  87. package/dist/css-macro/postcss.mjs +44 -56
  88. package/dist/css-macro.d.ts +1 -20
  89. package/dist/css-macro.js +37 -50
  90. package/dist/css-macro.mjs +33 -47
  91. package/dist/debug/index.d.ts +5 -0
  92. package/dist/defaults.d.ts +2 -11
  93. package/dist/defaults.js +132 -8
  94. package/dist/defaults.mjs +128 -7
  95. package/dist/escape.js +31 -54
  96. package/dist/escape.mjs +18 -25
  97. package/dist/experimental/index.d.ts +2 -0
  98. package/dist/experimental/oxc/ast-utils.d.ts +30 -0
  99. package/dist/experimental/oxc/index.d.ts +2 -0
  100. package/dist/experimental/oxc/module-specifiers.d.ts +2 -0
  101. package/dist/experimental/shared/cache.d.ts +3 -0
  102. package/dist/experimental/shared/transform.d.ts +3 -0
  103. package/dist/experimental/shared.d.ts +8 -0
  104. package/dist/experimental/swc/ast-utils.d.ts +30 -0
  105. package/dist/experimental/swc/index.d.ts +2 -0
  106. package/dist/experimental/swc/module-specifiers.d.ts +2 -0
  107. package/dist/generator/index.d.ts +11 -0
  108. package/dist/generator/options.d.ts +17 -0
  109. package/dist/generator/types.d.ts +20 -0
  110. package/dist/generator-Y-Ikv4Fu.mjs +1177 -0
  111. package/dist/generator-css-B5ejWUMv.mjs +1098 -0
  112. package/dist/generator-css-D3OdPRiS.js +1125 -0
  113. package/dist/generator-mmhXzZnv.js +1276 -0
  114. package/dist/generator.d.ts +1 -0
  115. package/dist/generator.js +19 -0
  116. package/dist/generator.mjs +2 -0
  117. package/dist/gulp.d.ts +4 -24
  118. package/dist/gulp.js +271 -13
  119. package/dist/gulp.mjs +263 -13
  120. package/dist/index.d.ts +8 -15
  121. package/dist/index.js +12 -24
  122. package/dist/index.mjs +6 -24
  123. package/dist/js/JsTokenUpdater.d.ts +14 -0
  124. package/dist/js/ModuleGraph.d.ts +18 -0
  125. package/dist/js/NodePathWalker.d.ts +33 -0
  126. package/dist/js/babel/parse.d.ts +9 -0
  127. package/dist/js/babel/process.d.ts +4 -0
  128. package/dist/js/babel.d.ts +13 -0
  129. package/dist/js/class-context.d.ts +3 -0
  130. package/dist/js/evalTransforms.d.ts +7 -0
  131. package/dist/js/handlers.d.ts +5 -0
  132. package/dist/js/index.d.ts +4 -0
  133. package/dist/js/module-graph/ignored-exports.d.ts +18 -0
  134. package/dist/js/module-graph/types.d.ts +17 -0
  135. package/dist/js/node-path-walker/export-handlers.d.ts +12 -0
  136. package/dist/js/node-path-walker/import-tokens.d.ts +24 -0
  137. package/dist/js/precheck.d.ts +2 -0
  138. package/dist/js/sourceAnalysis.d.ts +17 -0
  139. package/dist/js/syntax.d.ts +10 -0
  140. package/dist/js/taggedTemplateIgnore.d.ts +13 -0
  141. package/dist/js/types.d.ts +11 -0
  142. package/dist/lightningcss/index.d.ts +8 -0
  143. package/dist/lightningcss/style-handler/options.d.ts +3 -0
  144. package/dist/lightningcss/style-handler/selector-transform.d.ts +10 -0
  145. package/dist/lightningcss/style-handler/selector-utils.d.ts +10 -0
  146. package/dist/lightningcss/style-handler.d.ts +17 -0
  147. package/dist/loader-anchors-CNkWT8hx.js +273 -0
  148. package/dist/loader-anchors-TrU7EUr7.mjs +205 -0
  149. package/dist/logger/index.d.ts +2 -0
  150. package/dist/logger-BZ45DZJT.js +1003 -0
  151. package/dist/logger-BoVx1Dbt.mjs +935 -0
  152. package/dist/patcher-options-6gJN2EXy.js +115 -0
  153. package/dist/patcher-options-DQfR5xxT.mjs +92 -0
  154. package/dist/postcss-html-transform.d.ts +3 -3
  155. package/dist/postcss-html-transform.js +7 -10
  156. package/dist/postcss-html-transform.mjs +3 -6
  157. package/dist/postcss.d.ts +15 -0
  158. package/dist/postcss.js +280 -0
  159. package/dist/postcss.mjs +270 -0
  160. package/dist/presets/hbuilderx.d.ts +4 -0
  161. package/dist/presets/index.d.ts +3 -0
  162. package/dist/presets/shared.d.ts +10 -0
  163. package/dist/presets/taro.d.ts +4 -0
  164. package/dist/presets/uni-app-x.d.ts +16 -0
  165. package/dist/presets/uni-app.d.ts +4 -0
  166. package/dist/presets.d.ts +1 -76
  167. package/dist/presets.js +115 -163
  168. package/dist/presets.mjs +107 -163
  169. package/dist/recorder-gYSNLfOP.js +2878 -0
  170. package/dist/recorder-zsgatmkB.mjs +2763 -0
  171. package/dist/reset/index.d.ts +2 -0
  172. package/dist/reset.d.ts +1 -4
  173. package/dist/reset.js +19 -8
  174. package/dist/reset.mjs +2 -8
  175. package/dist/shared/classname-transform.d.ts +14 -0
  176. package/dist/shared/mpx.d.ts +7 -0
  177. package/dist/shared/tailwindcss-css-redirect.d.ts +1 -0
  178. package/dist/tailwindcss/index.d.ts +11 -0
  179. package/dist/tailwindcss/miniprogram.d.ts +1 -0
  180. package/dist/tailwindcss/patcher-options.d.ts +56 -0
  181. package/dist/tailwindcss/patcher-resolve.d.ts +4 -0
  182. package/dist/tailwindcss/patcher.d.ts +13 -0
  183. package/dist/tailwindcss/recorder.d.ts +13 -0
  184. package/dist/tailwindcss/remove-unsupported-css.d.ts +2 -0
  185. package/dist/tailwindcss/runtime/cache.d.ts +11 -0
  186. package/dist/tailwindcss/runtime-logs.d.ts +3 -0
  187. package/dist/tailwindcss/runtime.d.ts +29 -0
  188. package/dist/tailwindcss/targets/paths.d.ts +13 -0
  189. package/dist/tailwindcss/targets/record-io.d.ts +5 -0
  190. package/dist/tailwindcss/targets/recorder.d.ts +3 -0
  191. package/dist/tailwindcss/targets/types.d.ts +35 -0
  192. package/dist/tailwindcss/targets.d.ts +6 -0
  193. package/dist/tailwindcss/v3-engine/generator.d.ts +2 -0
  194. package/dist/tailwindcss/v3-engine/index.d.ts +4 -0
  195. package/dist/tailwindcss/v3-engine/miniprogram.d.ts +4 -0
  196. package/dist/tailwindcss/v3-engine/source.d.ts +5 -0
  197. package/dist/tailwindcss/v3-engine/types.d.ts +55 -0
  198. package/dist/tailwindcss/v4/config.d.ts +5 -0
  199. package/dist/tailwindcss/v4/css-entries.d.ts +7 -0
  200. package/dist/tailwindcss/v4/index.d.ts +2 -0
  201. package/dist/tailwindcss/v4/multi-patcher.d.ts +2 -0
  202. package/dist/tailwindcss/v4/patcher-options.d.ts +24 -0
  203. package/dist/tailwindcss/v4/patcher.d.ts +14 -0
  204. package/dist/tailwindcss/v4-engine/candidates.d.ts +2 -0
  205. package/dist/tailwindcss/v4-engine/design-system.d.ts +1 -0
  206. package/dist/tailwindcss/v4-engine/generator.d.ts +2 -0
  207. package/dist/tailwindcss/v4-engine/index.d.ts +5 -0
  208. package/dist/tailwindcss/v4-engine/miniprogram.d.ts +5 -0
  209. package/dist/tailwindcss/v4-engine/source.d.ts +7 -0
  210. package/dist/tailwindcss/v4-engine/tailwind-v3-compatibility.d.ts +1 -0
  211. package/dist/tailwindcss/v4-engine/tailwind-v3-default-colors.d.ts +1 -0
  212. package/dist/tailwindcss/v4-engine/tailwind-v4-default-colors.d.ts +1 -0
  213. package/dist/tailwindcss/v4-engine/types.d.ts +19 -0
  214. package/dist/typedoc.export.d.ts +5 -0
  215. package/dist/types/base.d.ts +1 -0
  216. package/dist/types/disabled-options.d.ts +4 -0
  217. package/dist/types/index.d.ts +104 -0
  218. package/dist/types/shared.d.ts +7 -0
  219. package/dist/types/user-defined-options/general.d.ts +31 -0
  220. package/dist/types/user-defined-options/important.d.ts +37 -0
  221. package/dist/types/user-defined-options/index.d.ts +11 -0
  222. package/dist/types/user-defined-options/lifecycle.d.ts +6 -0
  223. package/dist/types/user-defined-options/matcher.d.ts +9 -0
  224. package/dist/types.d.ts +1 -150
  225. package/dist/types.js +0 -1
  226. package/dist/types.mjs +1 -1
  227. package/dist/uni-app-x/component-local-style.d.ts +19 -0
  228. package/dist/uni-app-x/index.d.ts +2 -0
  229. package/dist/uni-app-x/options.d.ts +12 -0
  230. package/dist/uni-app-x/style-isolation.d.ts +2 -0
  231. package/dist/uni-app-x/transform.d.ts +9 -0
  232. package/dist/uni-app-x/vite.d.ts +36 -0
  233. package/dist/utils/decode.d.ts +2 -0
  234. package/dist/utils/disabled.d.ts +6 -0
  235. package/dist/utils/hbuilderx.d.ts +5 -0
  236. package/dist/utils/index.d.ts +7 -0
  237. package/dist/utils/nameMatcher.d.ts +4 -0
  238. package/dist/utils/resolve-package.d.ts +1 -0
  239. package/dist/utils/uni-platform.d.ts +11 -0
  240. package/dist/utils-7DUGTFED.mjs +48 -0
  241. package/dist/utils-DmC9_In3.js +61 -0
  242. package/dist/vite-BC9U7ahn.js +2199 -0
  243. package/dist/vite-CrlzCNqz.mjs +2186 -0
  244. package/dist/vite.d.ts +4 -17
  245. package/dist/vite.js +5 -14
  246. package/dist/vite.mjs +2 -14
  247. package/dist/weapp-tw-css-import-rewrite-loader.js +59 -92
  248. package/dist/weapp-tw-runtime-classset-loader.js +31 -50
  249. package/dist/webpack-Bu6M-Hbw.mjs +441 -0
  250. package/dist/webpack-DD7A6V0u.js +456 -0
  251. package/dist/webpack.d.ts +4 -25
  252. package/dist/webpack.js +6 -17
  253. package/dist/webpack.mjs +2 -17
  254. package/dist/webpack4.d.ts +4 -26
  255. package/dist/webpack4.js +375 -481
  256. package/dist/webpack4.mjs +366 -482
  257. package/dist/wxml/Tokenizer.d.ts +15 -0
  258. package/dist/wxml/custom-attributes.d.ts +4 -0
  259. package/dist/wxml/index.d.ts +2 -0
  260. package/dist/wxml/shared.d.ts +2 -0
  261. package/dist/wxml/tokenizer/types.d.ts +18 -0
  262. package/dist/wxml/utils/codegen/legacy-rewriter.d.ts +2 -0
  263. package/dist/wxml/utils/codegen/legacy-visitor.d.ts +8 -0
  264. package/dist/wxml/utils/codegen.d.ts +2 -0
  265. package/dist/wxml/utils/custom-template.d.ts +3 -0
  266. package/dist/wxml/utils/fragment-helpers.d.ts +6 -0
  267. package/dist/wxml/utils/fragment-updater.d.ts +4 -0
  268. package/dist/wxml/utils/template-fragments.d.ts +3 -0
  269. package/dist/wxml/utils.d.ts +8 -0
  270. package/dist/wxml/whitespace.d.ts +2 -0
  271. package/generator-placeholder.css +1 -0
  272. package/package.json +19 -8
  273. package/dist/chunk-24AGZQVR.js +0 -183
  274. package/dist/chunk-3VQKDHGP.mjs +0 -179
  275. package/dist/chunk-4AFQP74Z.js +0 -24
  276. package/dist/chunk-57SOQCAU.mjs +0 -582
  277. package/dist/chunk-5ZYHNDEK.mjs +0 -2439
  278. package/dist/chunk-76S2EME4.mjs +0 -34
  279. package/dist/chunk-A5PB4KZT.js +0 -138
  280. package/dist/chunk-DUHYLR2R.js +0 -276
  281. package/dist/chunk-DYLQ6UOI.js +0 -71
  282. package/dist/chunk-E7I5TW5K.js +0 -52
  283. package/dist/chunk-FS2NOOEB.js +0 -292
  284. package/dist/chunk-HVNGIKLS.js +0 -3930
  285. package/dist/chunk-JZQBZHN5.js +0 -579
  286. package/dist/chunk-KGTVD4EP.mjs +0 -3930
  287. package/dist/chunk-NNOQDMUP.mjs +0 -10
  288. package/dist/chunk-OF6MFURR.js +0 -34
  289. package/dist/chunk-OFB2KBRP.js +0 -2442
  290. package/dist/chunk-OOHJLO5M.mjs +0 -71
  291. package/dist/chunk-PCDYXXSK.mjs +0 -1515
  292. package/dist/chunk-RKISS72P.js +0 -7
  293. package/dist/chunk-RRQZL7FQ.mjs +0 -292
  294. package/dist/chunk-XAKAD2CR.mjs +0 -138
  295. package/dist/chunk-XZP3MREK.mjs +0 -276
  296. package/dist/chunk-ZAA5ZG3D.js +0 -1518
  297. package/dist/chunk-ZCH4YINE.mjs +0 -52
  298. package/dist/cli.d.mts +0 -2
  299. package/dist/core.d.mts +0 -26
  300. package/dist/css-macro/postcss.d.mts +0 -7
  301. package/dist/css-macro.d.mts +0 -18
  302. package/dist/defaults.d.mts +0 -11
  303. package/dist/gulp.d.mts +0 -24
  304. package/dist/index-BXrmQelt.d.mts +0 -672
  305. package/dist/index-BXrmQelt.d.ts +0 -672
  306. package/dist/index.d.mts +0 -15
  307. package/dist/postcss-html-transform.d.mts +0 -2
  308. package/dist/presets.d.mts +0 -76
  309. package/dist/reset.d.mts +0 -1
  310. package/dist/types.d.mts +0 -150
  311. package/dist/vite.d.mts +0 -17
  312. package/dist/webpack.d.mts +0 -25
  313. package/dist/webpack4.d.mts +0 -26
@@ -0,0 +1,441 @@
1
+ import { r as resolveTailwindcssOptions } from "./patcher-options-DQfR5xxT.mjs";
2
+ import { g as ensureRuntimeClassSet, n as shouldSkipJsTransform, p as pluginName, r as getCompilerContext, t as setupPatchRecorder, v as createDebug } from "./recorder-zsgatmkB.mjs";
3
+ import { r as getGroupedEntries } from "./utils-7DUGTFED.mjs";
4
+ import { d as getRuntimeClassSetSignature } from "./logger-BoVx1Dbt.mjs";
5
+ import { i as processCachedTask, t as generateCssByGenerator } from "./generator-css-B5ejWUMv.mjs";
6
+ import { a as resolveDisabledOptions, c as toAbsoluteOutputPath, i as resolvePackageDir, r as pushConcurrentTaskFactories, s as resolveOutputSpecifier } from "./css-imports-CSdPq_Sc.mjs";
7
+ import { a as hasLoaderEntry, c as applyTailwindcssCssImportRewrite, d as isMpx, f as patchMpxLoaderResolve, i as getCacheKey, l as ensureMpxTailwindcssAliases, n as __dirname, o as hasWatchChanges, p as setupMpxTailwindcssRedirect, r as createAssetHashByChunkMap, s as isCssLikeModuleResource, t as createLoaderAnchorFinders, u as injectMpxCssRewritePreRules } from "./loader-anchors-TrU7EUr7.mjs";
8
+ import path from "node:path";
9
+ import process from "node:process";
10
+ import fs from "node:fs";
11
+ //#region src/bundlers/webpack/BaseUnifiedPlugin/v5-assets.ts
12
+ function resolveWebpackStaleClassNameFallback(option, _compiler) {
13
+ if (typeof option === "boolean") return option;
14
+ return false;
15
+ }
16
+ function setupWebpackV5ProcessAssetsHook(options) {
17
+ const { compiler, options: compilerOptions, appType, runtimeState, getRuntimeRefreshRequirement, refreshRuntimeMetadata, consumeRuntimeRefreshRequirement, debug } = options;
18
+ const { Compilation, sources } = compiler.webpack;
19
+ const { ConcatSource } = sources;
20
+ const cssHandlerOptionsCache = /* @__PURE__ */ new Map();
21
+ const cssUserHandlerOptionsCache = /* @__PURE__ */ new Map();
22
+ compiler.hooks.compilation.tap(pluginName, (compilation) => {
23
+ compilation.hooks.processAssets.tapPromise({
24
+ name: pluginName,
25
+ stage: Compilation.PROCESS_ASSETS_STAGE_SUMMARIZE
26
+ }, async (assets) => {
27
+ compilerOptions.onStart();
28
+ debug("start");
29
+ await runtimeState.patchPromise;
30
+ for (const chunk of compilation.chunks) if (chunk.id && chunk.hash) compilerOptions.cache.calcHashValueChanged(chunk.id, chunk.hash);
31
+ const assetHashByChunk = createAssetHashByChunkMap(compilation.chunks);
32
+ const entries = Object.entries(assets);
33
+ const compilerOutputPath = compilation.compiler?.outputPath ?? compiler.outputPath;
34
+ const outputDir = compilerOutputPath ? path.resolve(compilerOutputPath) : compilation.outputOptions?.path ?? process.cwd();
35
+ const jsAssets = /* @__PURE__ */ new Map();
36
+ for (const [file] of entries) if (compilerOptions.jsMatcher(file) || compilerOptions.wxsMatcher(file)) {
37
+ const absolute = toAbsoluteOutputPath(file, outputDir);
38
+ jsAssets.set(absolute, file);
39
+ }
40
+ const moduleGraphOptions = {
41
+ resolve(specifier, importer) {
42
+ return resolveOutputSpecifier(specifier, importer, outputDir, (candidate) => jsAssets.has(candidate));
43
+ },
44
+ load: (id) => {
45
+ const assetName = jsAssets.get(id);
46
+ if (!assetName) return;
47
+ const asset = compilation.getAsset(assetName);
48
+ if (!asset) return;
49
+ const source = asset.source.source();
50
+ return typeof source === "string" ? source : source.toString();
51
+ },
52
+ filter(id) {
53
+ return jsAssets.has(id);
54
+ }
55
+ };
56
+ const applyLinkedResults = (linked) => {
57
+ if (!linked) return;
58
+ for (const [id, { code }] of Object.entries(linked)) {
59
+ const assetName = jsAssets.get(id);
60
+ if (!assetName) continue;
61
+ const asset = compilation.getAsset(assetName);
62
+ if (!asset) continue;
63
+ const previousSource = asset.source.source();
64
+ const previous = typeof previousSource === "string" ? previousSource : previousSource.toString();
65
+ if (previous === code) continue;
66
+ const source = new ConcatSource(code);
67
+ compilation.updateAsset(assetName, source);
68
+ compilerOptions.onUpdate(assetName, previous, code);
69
+ debug("js linked handle: %s", assetName);
70
+ }
71
+ };
72
+ const groupedEntries = getGroupedEntries(entries, compilerOptions);
73
+ const getCssHandlerOptions = (file) => {
74
+ const majorVersion = runtimeState.twPatcher.majorVersion;
75
+ const isMainChunk = compilerOptions.mainCssChunkMatcher(file, appType);
76
+ const cacheKey = `${majorVersion ?? "unknown"}:${isMainChunk ? "1" : "0"}:${file}`;
77
+ const cached = cssHandlerOptionsCache.get(cacheKey);
78
+ if (cached) return cached;
79
+ const created = {
80
+ isMainChunk,
81
+ postcssOptions: { options: { from: file } },
82
+ majorVersion
83
+ };
84
+ cssHandlerOptionsCache.set(cacheKey, created);
85
+ return created;
86
+ };
87
+ const getCssUserHandlerOptions = (file) => {
88
+ const cacheKey = `${runtimeState.twPatcher.majorVersion ?? "unknown"}:${file}`;
89
+ const cached = cssUserHandlerOptionsCache.get(cacheKey);
90
+ if (cached) return cached;
91
+ const created = {
92
+ ...getCssHandlerOptions(file),
93
+ isMainChunk: false
94
+ };
95
+ cssUserHandlerOptionsCache.set(cacheKey, created);
96
+ return created;
97
+ };
98
+ const staleClassNameFallback = resolveWebpackStaleClassNameFallback(compilerOptions.staleClassNameFallback, compiler);
99
+ const forceRuntimeRefresh = getRuntimeRefreshRequirement();
100
+ debug("processAssets ensure runtime set forceRefresh=%s major=%s", forceRuntimeRefresh, runtimeState.twPatcher.majorVersion ?? "unknown");
101
+ const runtimeSet = await ensureRuntimeClassSet(runtimeState, {
102
+ forceRefresh: forceRuntimeRefresh,
103
+ forceCollect: true,
104
+ clearCache: forceRuntimeRefresh,
105
+ allowEmpty: false
106
+ });
107
+ await refreshRuntimeMetadata(forceRuntimeRefresh);
108
+ consumeRuntimeRefreshRequirement();
109
+ const defaultTemplateHandlerOptions = { runtimeSet };
110
+ debug("get runtimeSet, class count: %d", runtimeSet.size);
111
+ const tasks = [];
112
+ if (Array.isArray(groupedEntries.html)) for (const element of groupedEntries.html) {
113
+ const [file, originalSource] = element;
114
+ const rawSource = originalSource.source().toString();
115
+ const cacheKey = file;
116
+ const chunkHash = assetHashByChunk.get(file);
117
+ tasks.push(processCachedTask({
118
+ cache: compilerOptions.cache,
119
+ cacheKey,
120
+ hashKey: `${file}:asset`,
121
+ rawSource,
122
+ hash: chunkHash,
123
+ applyResult(source) {
124
+ compilation.updateAsset(file, source);
125
+ },
126
+ onCacheHit() {
127
+ debug("html cache hit: %s", file);
128
+ },
129
+ transform: async () => {
130
+ const wxml = await compilerOptions.templateHandler(rawSource, defaultTemplateHandlerOptions);
131
+ const source = new ConcatSource(wxml);
132
+ compilerOptions.onUpdate(file, rawSource, wxml);
133
+ debug("html handle: %s", file);
134
+ return { result: source };
135
+ }
136
+ }));
137
+ }
138
+ const jsTaskFactories = [];
139
+ if (Array.isArray(groupedEntries.js)) for (const [file] of groupedEntries.js) {
140
+ const cacheKey = getCacheKey(file);
141
+ const asset = compilation.getAsset(file);
142
+ if (!asset) continue;
143
+ const absoluteFile = toAbsoluteOutputPath(file, outputDir);
144
+ const initialSource = asset.source.source();
145
+ const initialRawSource = typeof initialSource === "string" ? initialSource : initialSource.toString();
146
+ const chunkHash = assetHashByChunk.get(file);
147
+ jsTaskFactories.push(async () => {
148
+ await processCachedTask({
149
+ cache: compilerOptions.cache,
150
+ cacheKey,
151
+ hashKey: `${file}:asset`,
152
+ rawSource: initialRawSource,
153
+ hash: chunkHash,
154
+ applyResult(source) {
155
+ compilation.updateAsset(file, source);
156
+ },
157
+ onCacheHit() {
158
+ debug("js cache hit: %s", file);
159
+ },
160
+ transform: async () => {
161
+ const currentSourceValue = compilation.getAsset(file)?.source.source();
162
+ const currentSource = typeof currentSourceValue === "string" ? currentSourceValue : currentSourceValue?.toString() ?? "";
163
+ const handlerOptions = {
164
+ staleClassNameFallback,
165
+ tailwindcssMajorVersion: runtimeState.twPatcher.majorVersion,
166
+ filename: absoluteFile,
167
+ moduleGraph: moduleGraphOptions,
168
+ babelParserOptions: { sourceFilename: absoluteFile }
169
+ };
170
+ if (shouldSkipJsTransform(currentSource, handlerOptions)) return { result: new ConcatSource(currentSource) };
171
+ const { code, linked } = await compilerOptions.jsHandler(currentSource, runtimeSet, handlerOptions);
172
+ const source = new ConcatSource(code);
173
+ compilerOptions.onUpdate(file, currentSource, code);
174
+ debug("js handle: %s", file);
175
+ applyLinkedResults(linked);
176
+ return { result: source };
177
+ }
178
+ });
179
+ });
180
+ }
181
+ if (Array.isArray(groupedEntries.css)) for (const element of groupedEntries.css) {
182
+ const [file, originalSource] = element;
183
+ const rawSource = originalSource.source().toString();
184
+ const cacheKey = file;
185
+ const chunkHash = assetHashByChunk.get(file);
186
+ tasks.push(processCachedTask({
187
+ cache: compilerOptions.cache,
188
+ cacheKey,
189
+ hashKey: `${file}:asset`,
190
+ rawSource,
191
+ hash: chunkHash,
192
+ applyResult(source) {
193
+ compilation.updateAsset(file, source);
194
+ },
195
+ onCacheHit() {
196
+ debug("css cache hit: %s", file);
197
+ },
198
+ transform: async () => {
199
+ await runtimeState.patchPromise;
200
+ const cssHandlerOptions = getCssHandlerOptions(file);
201
+ const generated = await generateCssByGenerator({
202
+ opts: compilerOptions,
203
+ runtimeState,
204
+ runtime: runtimeSet,
205
+ rawSource,
206
+ file,
207
+ cssHandlerOptions,
208
+ cssUserHandlerOptions: getCssUserHandlerOptions(file),
209
+ styleHandler: compilerOptions.styleHandler,
210
+ debug
211
+ });
212
+ const css = generated?.css ?? (await compilerOptions.styleHandler(rawSource, cssHandlerOptions)).css;
213
+ const source = new ConcatSource(css);
214
+ compilerOptions.onUpdate(file, rawSource, css);
215
+ if (generated) debug("css handle via tailwind v%s engine(%s): %s", runtimeState.twPatcher.majorVersion, generated.target, file);
216
+ else debug("css handle: %s", file);
217
+ return { result: source };
218
+ }
219
+ }));
220
+ }
221
+ pushConcurrentTaskFactories(tasks, jsTaskFactories);
222
+ await Promise.all(tasks);
223
+ debug("end");
224
+ compilerOptions.onEnd();
225
+ });
226
+ });
227
+ }
228
+ //#endregion
229
+ //#region src/bundlers/webpack/BaseUnifiedPlugin/v5-loaders.ts
230
+ function setupWebpackV5Loaders(options) {
231
+ const { compiler, options: compilerOptions, appType, weappTailwindcssPackageDir, shouldRewriteCssImports, runtimeLoaderPath, runtimeCssImportRewriteLoaderPath, getClassSetInLoader, getRuntimeWatchDependencies, debug } = options;
232
+ const isMpxApp = isMpx(appType);
233
+ if (shouldRewriteCssImports && isMpxApp) ensureMpxTailwindcssAliases(compiler, weappTailwindcssPackageDir);
234
+ const runtimeClassSetLoader = runtimeLoaderPath ?? path.resolve(__dirname, "./weapp-tw-runtime-classset-loader.js");
235
+ const runtimeCssImportRewriteLoader = shouldRewriteCssImports ? runtimeCssImportRewriteLoaderPath ?? path.resolve(__dirname, "./weapp-tw-css-import-rewrite-loader.js") : void 0;
236
+ const runtimeClassSetLoaderExists = fs.existsSync(runtimeClassSetLoader);
237
+ const runtimeCssImportRewriteLoaderExists = runtimeCssImportRewriteLoader ? fs.existsSync(runtimeCssImportRewriteLoader) : false;
238
+ const runtimeLoaderRewriteOptions = shouldRewriteCssImports ? {
239
+ pkgDir: weappTailwindcssPackageDir,
240
+ appType
241
+ } : void 0;
242
+ const classSetLoaderOptions = {
243
+ getClassSet: getClassSetInLoader,
244
+ getWatchDependencies: getRuntimeWatchDependencies
245
+ };
246
+ const { findRewriteAnchor, findClassSetAnchor } = createLoaderAnchorFinders(appType);
247
+ const cssImportRewriteLoaderOptions = runtimeLoaderRewriteOptions ? { rewriteCssImports: runtimeLoaderRewriteOptions } : void 0;
248
+ if (runtimeCssImportRewriteLoader && shouldRewriteCssImports && cssImportRewriteLoaderOptions && isMpxApp) injectMpxCssRewritePreRules(compiler, runtimeCssImportRewriteLoader, cssImportRewriteLoaderOptions);
249
+ const createRuntimeClassSetLoaderEntry = () => ({
250
+ loader: runtimeClassSetLoader,
251
+ options: classSetLoaderOptions,
252
+ ident: null,
253
+ type: null
254
+ });
255
+ const createCssImportRewriteLoaderEntry = () => {
256
+ if (!runtimeCssImportRewriteLoader) return null;
257
+ return {
258
+ loader: runtimeCssImportRewriteLoader,
259
+ options: cssImportRewriteLoaderOptions,
260
+ ident: null,
261
+ type: null
262
+ };
263
+ };
264
+ const { NormalModule } = compiler.webpack;
265
+ compiler.hooks.compilation.tap(pluginName, (compilation) => {
266
+ NormalModule.getCompilationHooks(compilation).loader.tap(pluginName, (_loaderContext, module) => {
267
+ if (!(runtimeClassSetLoaderExists || runtimeCssImportRewriteLoaderExists)) return;
268
+ patchMpxLoaderResolve(_loaderContext, weappTailwindcssPackageDir, shouldRewriteCssImports && isMpxApp);
269
+ const loaderEntries = module.loaders || [];
270
+ let rewriteAnchorIdx = findRewriteAnchor(loaderEntries);
271
+ const classSetAnchorIdx = findClassSetAnchor(loaderEntries);
272
+ const isCssModule = isCssLikeModuleResource(module.resource, compilerOptions.cssMatcher, appType);
273
+ if (process.env.WEAPP_TW_LOADER_DEBUG && isCssModule) debug("loader hook css module: %s loaders=%o anchors=%o", module.resource, loaderEntries.map((x) => x.loader), {
274
+ rewriteAnchorIdx,
275
+ classSetAnchorIdx
276
+ });
277
+ if (process.env.WEAPP_TW_LOADER_DEBUG && typeof module.resource === "string" && module.resource.includes("app.css")) debug("app.css module loaders=%o anchors=%o", loaderEntries.map((x) => x.loader), {
278
+ rewriteAnchorIdx,
279
+ classSetAnchorIdx
280
+ });
281
+ else if (process.env.WEAPP_TW_LOADER_DEBUG && typeof module.resource === "string" && module.resource.endsWith(".css")) debug("css module seen: %s loaders=%o anchors=%o", module.resource, loaderEntries.map((x) => x.loader), {
282
+ rewriteAnchorIdx,
283
+ classSetAnchorIdx
284
+ });
285
+ if (rewriteAnchorIdx === -1 && classSetAnchorIdx === -1 && !isCssModule) return;
286
+ const anchorlessInsert = (entry, position) => {
287
+ if (position === "after") loaderEntries.push(entry);
288
+ else loaderEntries.unshift(entry);
289
+ };
290
+ if (cssImportRewriteLoaderOptions && runtimeCssImportRewriteLoaderExists && runtimeCssImportRewriteLoader) {
291
+ const existingIndex = loaderEntries.findIndex((entry) => entry.loader?.includes?.(runtimeCssImportRewriteLoader));
292
+ const rewriteLoaderEntry = existingIndex !== -1 ? loaderEntries.splice(existingIndex, 1)[0] : createCssImportRewriteLoaderEntry();
293
+ if (rewriteLoaderEntry) {
294
+ const anchorIndex = findRewriteAnchor(loaderEntries);
295
+ if (anchorIndex === -1) anchorlessInsert(rewriteLoaderEntry, "after");
296
+ else loaderEntries.splice(anchorIndex + 1, 0, rewriteLoaderEntry);
297
+ rewriteAnchorIdx = findRewriteAnchor(loaderEntries);
298
+ }
299
+ }
300
+ if (runtimeClassSetLoaderExists && !hasLoaderEntry(loaderEntries, runtimeClassSetLoader)) {
301
+ const classSetLoaderEntry = createRuntimeClassSetLoaderEntry();
302
+ const anchorIndex = findClassSetAnchor(loaderEntries);
303
+ if (anchorIndex === -1) anchorlessInsert(classSetLoaderEntry, "before");
304
+ else {
305
+ const insertIndex = anchorIndex === -1 ? rewriteAnchorIdx : anchorIndex;
306
+ loaderEntries.splice(insertIndex, 0, classSetLoaderEntry);
307
+ }
308
+ }
309
+ });
310
+ });
311
+ }
312
+ //#endregion
313
+ //#region src/bundlers/webpack/BaseUnifiedPlugin/v5.ts
314
+ const debug = createDebug();
315
+ const weappTailwindcssPackageDir = resolvePackageDir("weapp-tailwindcss");
316
+ /**
317
+ * @name UnifiedWebpackPluginV5
318
+ * @description webpack5 核心转义插件
319
+ * @link https://tw.icebreaker.top/docs/intro
320
+ */
321
+ var UnifiedWebpackPluginV5 = class {
322
+ constructor(options = {}) {
323
+ this.options = getCompilerContext(options);
324
+ this.appType = this.options.appType;
325
+ }
326
+ apply(compiler) {
327
+ compiler.options = compiler.options || {};
328
+ const { disabled, onLoad, runtimeLoaderPath, runtimeCssImportRewriteLoaderPath, twPatcher: initialTwPatcher, refreshTailwindcssPatcher } = this.options;
329
+ const disabledOptions = resolveDisabledOptions(disabled);
330
+ const shouldRewriteCssImports = (initialTwPatcher.majorVersion ?? 0) >= 4 && this.options.rewriteCssImports !== false && !disabledOptions.rewriteCssImports;
331
+ const isMpxApp = isMpx(this.appType);
332
+ if (shouldRewriteCssImports) {
333
+ applyTailwindcssCssImportRewrite(compiler, {
334
+ pkgDir: weappTailwindcssPackageDir,
335
+ enabled: true,
336
+ appType: this.appType
337
+ });
338
+ setupMpxTailwindcssRedirect(weappTailwindcssPackageDir, isMpxApp);
339
+ }
340
+ if (disabledOptions.plugin) return;
341
+ const patchRecorderState = setupPatchRecorder(initialTwPatcher, this.options.tailwindcssBasedir, {
342
+ source: "runtime",
343
+ cwd: this.options.tailwindcssBasedir ?? process.cwd()
344
+ });
345
+ const runtimeState = {
346
+ twPatcher: initialTwPatcher,
347
+ patchPromise: patchRecorderState.patchPromise,
348
+ refreshTailwindcssPatcher,
349
+ onPatchCompleted: patchRecorderState.onPatchCompleted
350
+ };
351
+ let runtimeSetPrepared = false;
352
+ let runtimeSetSignature;
353
+ let runtimeRefreshRequiredForCompilation = false;
354
+ const runtimeWatchDependencyFiles = /* @__PURE__ */ new Set();
355
+ const runtimeWatchDependencyContexts = /* @__PURE__ */ new Set();
356
+ let runtimeMetadataPrepared = false;
357
+ const updateRuntimeWatchDependencies = async () => {
358
+ runtimeWatchDependencyFiles.clear();
359
+ runtimeWatchDependencyContexts.clear();
360
+ const tailwindOptions = resolveTailwindcssOptions(runtimeState.twPatcher.options);
361
+ if (tailwindOptions?.config) runtimeWatchDependencyFiles.add(tailwindOptions.config);
362
+ for (const entry of tailwindOptions?.v4?.cssEntries ?? []) runtimeWatchDependencyFiles.add(entry);
363
+ for (const source of tailwindOptions?.v4?.sources ?? []) if (source?.base) runtimeWatchDependencyContexts.add(source.base);
364
+ if (typeof runtimeState.twPatcher.collectContentTokens !== "function") return;
365
+ try {
366
+ const report = await runtimeState.twPatcher.collectContentTokens();
367
+ for (const entry of report.entries ?? []) if (entry.file) runtimeWatchDependencyFiles.add(entry.file);
368
+ for (const source of report.sources ?? []) if (source?.base) runtimeWatchDependencyContexts.add(source.base);
369
+ } catch (error) {
370
+ debug("collect runtime watch dependencies failed: %O", error);
371
+ }
372
+ };
373
+ const ensureRuntimeMetadata = async (force = false) => {
374
+ if (runtimeMetadataPrepared && !force) return;
375
+ await updateRuntimeWatchDependencies();
376
+ runtimeMetadataPrepared = true;
377
+ };
378
+ const syncRuntimeRefreshRequirement = () => {
379
+ runtimeRefreshRequiredForCompilation = runtimeRefreshRequiredForCompilation || hasWatchChanges(compiler);
380
+ };
381
+ const resetRuntimePreparation = () => {
382
+ runtimeSetPrepared = false;
383
+ runtimeMetadataPrepared = false;
384
+ syncRuntimeRefreshRequirement();
385
+ };
386
+ compiler.hooks.invalid?.tap?.(pluginName, () => {
387
+ runtimeRefreshRequiredForCompilation = true;
388
+ });
389
+ compiler.hooks.watchRun?.tap?.(pluginName, syncRuntimeRefreshRequirement);
390
+ if (compiler.hooks.thisCompilation?.tap) compiler.hooks.thisCompilation.tap(pluginName, resetRuntimePreparation);
391
+ else if (compiler.hooks.compilation?.tap) compiler.hooks.compilation.tap(pluginName, resetRuntimePreparation);
392
+ async function getClassSetInLoader() {
393
+ if (runtimeSetPrepared) return;
394
+ const signature = getRuntimeClassSetSignature(runtimeState.twPatcher);
395
+ const forceRefresh = runtimeRefreshRequiredForCompilation || signature !== runtimeSetSignature;
396
+ debug("runtime loader ensure class set forceRefresh=%s watchDirty=%s signatureChanged=%s", forceRefresh, runtimeRefreshRequiredForCompilation, signature !== runtimeSetSignature);
397
+ runtimeSetPrepared = true;
398
+ await ensureRuntimeClassSet(runtimeState, {
399
+ forceRefresh,
400
+ forceCollect: true,
401
+ clearCache: forceRefresh,
402
+ allowEmpty: true
403
+ });
404
+ await ensureRuntimeMetadata(forceRefresh);
405
+ runtimeSetSignature = signature;
406
+ runtimeRefreshRequiredForCompilation = false;
407
+ }
408
+ onLoad();
409
+ setupWebpackV5Loaders({
410
+ compiler,
411
+ options: this.options,
412
+ appType: this.appType,
413
+ weappTailwindcssPackageDir,
414
+ shouldRewriteCssImports,
415
+ runtimeLoaderPath,
416
+ runtimeCssImportRewriteLoaderPath,
417
+ getClassSetInLoader,
418
+ getRuntimeWatchDependencies() {
419
+ return {
420
+ files: runtimeWatchDependencyFiles,
421
+ contexts: runtimeWatchDependencyContexts
422
+ };
423
+ },
424
+ debug
425
+ });
426
+ setupWebpackV5ProcessAssetsHook({
427
+ compiler,
428
+ options: this.options,
429
+ appType: this.appType,
430
+ runtimeState,
431
+ getRuntimeRefreshRequirement: () => runtimeRefreshRequiredForCompilation,
432
+ refreshRuntimeMetadata: ensureRuntimeMetadata,
433
+ consumeRuntimeRefreshRequirement() {
434
+ runtimeRefreshRequiredForCompilation = false;
435
+ },
436
+ debug
437
+ });
438
+ }
439
+ };
440
+ //#endregion
441
+ export { weappTailwindcssPackageDir as n, UnifiedWebpackPluginV5 as t };