weapp-tailwindcss 5.1.15 → 5.2.0

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 (457) hide show
  1. package/README.en.md +6 -0
  2. package/README.md +6 -0
  3. package/bin/{weapp-tailwindcss.js → weapp-tailwindcss.cjs} +1 -1
  4. package/dist/bundlers/framework-selector.d.ts +2 -2
  5. package/dist/bundlers/gulp/asset-emission-plan.d.ts +10 -0
  6. package/dist/bundlers/gulp/frameworks/native/index.d.ts +10 -3
  7. package/dist/bundlers/gulp/index.d.ts +10 -3
  8. package/dist/bundlers/gulp/module-graph.d.ts +1 -1
  9. package/dist/bundlers/gulp/runtime-snapshot.d.ts +4 -2
  10. package/dist/bundlers/gulp/shared/create-native-framework-plugins/cache-state.d.ts +71 -0
  11. package/dist/bundlers/gulp/shared/create-native-framework-plugins/file-transforms.d.ts +45 -0
  12. package/dist/bundlers/gulp/shared/create-native-framework-plugins.d.ts +9 -2
  13. package/dist/bundlers/rspack/index.d.ts +2 -2
  14. package/dist/bundlers/shared/cache.d.ts +1 -1
  15. package/dist/bundlers/shared/css-imports.d.ts +1 -1
  16. package/dist/bundlers/shared/css-source-trace.d.ts +2 -2
  17. package/dist/bundlers/shared/framework-postcss.d.ts +21 -0
  18. package/dist/bundlers/shared/generator-css/candidates.d.ts +2 -0
  19. package/dist/bundlers/shared/generator-css/generation-helpers/preflight.d.ts +19 -0
  20. package/dist/bundlers/shared/generator-css/generation-helpers/results.d.ts +25 -0
  21. package/dist/bundlers/shared/generator-css/generation-helpers/runtime-isolation.d.ts +30 -0
  22. package/dist/bundlers/shared/generator-css/generation-helpers/source-order.d.ts +2 -0
  23. package/dist/bundlers/shared/generator-css/generation-helpers.d.ts +4 -72
  24. package/dist/bundlers/shared/generator-css/legacy-compat.d.ts +5 -3
  25. package/dist/bundlers/shared/generator-css/pipeline/context.d.ts +58 -0
  26. package/dist/bundlers/shared/generator-css/pipeline/deferred-output.d.ts +3 -0
  27. package/dist/bundlers/shared/generator-css/pipeline/execution.d.ts +3 -0
  28. package/dist/bundlers/shared/generator-css/pipeline/fallback-output.d.ts +3 -0
  29. package/dist/bundlers/shared/generator-css/pipeline/ordered-output.d.ts +3 -0
  30. package/dist/bundlers/shared/generator-css/pipeline.d.ts +2 -0
  31. package/dist/bundlers/shared/generator-css/result-helpers.d.ts +6 -0
  32. package/dist/bundlers/shared/generator-css/scoped-rules.d.ts +1 -0
  33. package/dist/bundlers/shared/generator-css/source-resolver/configuration.d.ts +32 -0
  34. package/dist/bundlers/shared/generator-css/source-resolver/matching.d.ts +1 -1
  35. package/dist/bundlers/shared/generator-css/source-resolver/metadata.d.ts +13 -5
  36. package/dist/bundlers/shared/generator-css/source-resolver/postcss-source.d.ts +1 -1
  37. package/dist/bundlers/shared/generator-css/source-resolver/resolve-source.d.ts +4 -0
  38. package/dist/bundlers/shared/generator-css/source-resolver/resolve-sources.d.ts +5 -0
  39. package/dist/bundlers/shared/generator-css/source-resolver/single-source.d.ts +16 -0
  40. package/dist/bundlers/shared/generator-css/source-resolver/source-entries.d.ts +3 -0
  41. package/dist/bundlers/shared/generator-css/source-resolver/source-matching.d.ts +5 -0
  42. package/dist/bundlers/shared/generator-css/source-resolver/types.d.ts +4 -4
  43. package/dist/bundlers/shared/generator-css/source-resolver.d.ts +7 -9
  44. package/dist/bundlers/shared/generator-css/types.d.ts +12 -3
  45. package/dist/bundlers/shared/generator-css/user-css/apply-only.d.ts +9 -0
  46. package/dist/bundlers/shared/generator-css/user-css/at-rules.d.ts +3 -0
  47. package/dist/bundlers/shared/generator-css/user-css/generated-cleanup.d.ts +4 -0
  48. package/dist/bundlers/shared/generator-css/user-css/source-fragments.d.ts +9 -0
  49. package/dist/bundlers/shared/generator-css/user-css/transform.d.ts +10 -0
  50. package/dist/bundlers/shared/generator-css/user-css/user-layers.d.ts +15 -0
  51. package/dist/bundlers/shared/generator-css/user-css.d.ts +5 -33
  52. package/dist/bundlers/shared/generator-css/validate.d.ts +1 -1
  53. package/dist/bundlers/shared/generator-css.d.ts +9 -10
  54. package/dist/bundlers/shared/runtime-class-set/entries.d.ts +4 -0
  55. package/dist/bundlers/shared/runtime-class-set/escaped-candidates.d.ts +9 -0
  56. package/dist/bundlers/shared/runtime-class-set.d.ts +30 -0
  57. package/dist/bundlers/shared/runtime-entry-type.d.ts +8 -0
  58. package/dist/bundlers/shared/runtime-signatures.d.ts +8 -0
  59. package/dist/bundlers/shared/source-candidate-scan-signature.d.ts +13 -0
  60. package/dist/bundlers/shared/source-candidates/collector.d.ts +8 -0
  61. package/dist/bundlers/shared/source-candidates/scan-root.d.ts +10 -0
  62. package/dist/bundlers/{vite → shared}/source-candidates/script.d.ts +1 -1
  63. package/dist/bundlers/shared/source-candidates/store.d.ts +2 -0
  64. package/dist/bundlers/shared/source-candidates/types-and-cache.d.ts +69 -0
  65. package/dist/bundlers/shared/source-candidates.d.ts +4 -0
  66. package/dist/bundlers/shared/source-scan/css-entries.d.ts +18 -0
  67. package/dist/bundlers/shared/source-scan.d.ts +16 -0
  68. package/dist/bundlers/shared/static-config-content.d.ts +5 -0
  69. package/dist/bundlers/shared/v4-generation-core.d.ts +9 -1
  70. package/dist/bundlers/vite/bundle-entries.d.ts +1 -1
  71. package/dist/bundlers/vite/bundle-state.d.ts +11 -38
  72. package/dist/bundlers/vite/css-asset-identity.d.ts +11 -0
  73. package/dist/bundlers/vite/css-finalizer/options.d.ts +54 -0
  74. package/dist/bundlers/vite/css-finalizer/plugin.d.ts +3 -0
  75. package/dist/bundlers/vite/css-finalizer.d.ts +1 -43
  76. package/dist/bundlers/vite/css-memory.d.ts +1 -2
  77. package/dist/bundlers/vite/frameworks/generic/index.d.ts +2 -2
  78. package/dist/bundlers/vite/frameworks/taro/index.d.ts +2 -2
  79. package/dist/bundlers/vite/frameworks/uni-app/index.d.ts +3 -3
  80. package/dist/bundlers/vite/frameworks/uni-app-x/index.d.ts +3 -3
  81. package/dist/bundlers/vite/frameworks/weapp-vite/index.d.ts +2 -2
  82. package/dist/bundlers/vite/generate-bundle/asset-emission-plan.d.ts +8 -0
  83. package/dist/bundlers/vite/generate-bundle/bundle-markup-candidates.d.ts +4 -4
  84. package/dist/bundlers/vite/generate-bundle/configured-css-sources.d.ts +1 -1
  85. package/dist/bundlers/vite/generate-bundle/css-assets.d.ts +1 -1
  86. package/dist/bundlers/vite/generate-bundle/css-cache-task.d.ts +34 -0
  87. package/dist/bundlers/vite/generate-bundle/css-composition-plan.d.ts +58 -0
  88. package/dist/bundlers/vite/generate-bundle/css-config-directives.d.ts +1 -1
  89. package/dist/bundlers/vite/generate-bundle/css-entry-processing.d.ts +1 -0
  90. package/dist/bundlers/vite/generate-bundle/css-handler-options.d.ts +1 -1
  91. package/dist/bundlers/vite/generate-bundle/css-output-helpers.d.ts +21 -2
  92. package/dist/bundlers/vite/generate-bundle/css-output.d.ts +1 -1
  93. package/dist/bundlers/vite/generate-bundle/css-share-scope.d.ts +1 -1
  94. package/dist/bundlers/vite/generate-bundle/css-source-plan.d.ts +19 -0
  95. package/dist/bundlers/vite/generate-bundle/css-transform-decision-plan.d.ts +61 -0
  96. package/dist/bundlers/vite/generate-bundle/css-transform-result.d.ts +23 -0
  97. package/dist/bundlers/vite/generate-bundle/css-transform-task.d.ts +42 -0
  98. package/dist/bundlers/vite/generate-bundle/final-css-assets.d.ts +3 -2
  99. package/dist/bundlers/vite/generate-bundle/finalize/bundle.d.ts +2 -0
  100. package/dist/bundlers/vite/generate-bundle/finalize/root-import-shell.d.ts +69 -0
  101. package/dist/bundlers/vite/generate-bundle/finalize.d.ts +2 -70
  102. package/dist/bundlers/vite/generate-bundle/html-processing.d.ts +2 -2
  103. package/dist/bundlers/vite/generate-bundle/js-entries.d.ts +1 -1
  104. package/dist/bundlers/vite/generate-bundle/js-handler-options.d.ts +2 -1
  105. package/dist/bundlers/vite/generate-bundle/js-linking.d.ts +2 -2
  106. package/dist/bundlers/vite/generate-bundle/js-processing.d.ts +6 -5
  107. package/dist/bundlers/vite/generate-bundle/memory-debug.d.ts +1 -1
  108. package/dist/bundlers/vite/generate-bundle/process-plan.d.ts +1 -1
  109. package/dist/bundlers/vite/generate-bundle/remembered-css-plan.d.ts +35 -0
  110. package/dist/bundlers/vite/generate-bundle/remembered-css-replay.d.ts +5 -6
  111. package/dist/bundlers/vite/generate-bundle/remembered-css.d.ts +2 -2
  112. package/dist/bundlers/vite/generate-bundle/root-style-output.d.ts +20 -0
  113. package/dist/bundlers/vite/generate-bundle/runtime-configured-css.d.ts +54 -0
  114. package/dist/bundlers/vite/generate-bundle/runtime-linked-css.d.ts +1 -1
  115. package/dist/bundlers/vite/generate-bundle/runtime-linked-source-memory.d.ts +3 -3
  116. package/dist/bundlers/vite/generate-bundle/runtime.d.ts +6 -0
  117. package/dist/bundlers/vite/generate-bundle/scoped-generator.d.ts +2 -2
  118. package/dist/bundlers/vite/generate-bundle/sfc-style-source.d.ts +2 -2
  119. package/dist/bundlers/vite/generate-bundle/signatures.d.ts +1 -8
  120. package/dist/bundlers/vite/generate-bundle/source-candidate-scope.d.ts +3 -3
  121. package/dist/bundlers/vite/generate-bundle/source-candidate-source.d.ts +5 -0
  122. package/dist/bundlers/vite/generate-bundle/subpackages.d.ts +2 -2
  123. package/dist/bundlers/vite/generate-bundle/temporary-css-assets.d.ts +14 -1
  124. package/dist/bundlers/vite/generate-bundle/transform-filter.d.ts +1 -1
  125. package/dist/bundlers/vite/generate-bundle/transform-scheduling.d.ts +1 -0
  126. package/dist/bundlers/vite/generate-bundle/types.d.ts +8 -7
  127. package/dist/bundlers/vite/generate-bundle/uni-app-x-postprocess.d.ts +3 -2
  128. package/dist/bundlers/vite/generate-bundle/validate-runtime-candidates.d.ts +22 -0
  129. package/dist/bundlers/vite/generate-bundle.d.ts +7 -7
  130. package/dist/bundlers/vite/incremental-runtime-class-set/entries.d.ts +1 -4
  131. package/dist/bundlers/vite/incremental-runtime-class-set/escaped-candidates.d.ts +1 -3
  132. package/dist/bundlers/vite/incremental-runtime-class-set.d.ts +2 -30
  133. package/dist/bundlers/vite/index.d.ts +3 -3
  134. package/dist/bundlers/vite/js-precheck.d.ts +1 -1
  135. package/dist/bundlers/vite/processed-css-assets/cleanup.d.ts +13 -0
  136. package/dist/bundlers/vite/processed-css-assets/collector.d.ts +4 -0
  137. package/dist/bundlers/vite/processed-css-assets/coverage.d.ts +34 -0
  138. package/dist/bundlers/vite/processed-css-assets/empty-at-rule.d.ts +1 -0
  139. package/dist/bundlers/vite/processed-css-assets/injection-plan.d.ts +42 -0
  140. package/dist/bundlers/vite/processed-css-assets/markers-imports.d.ts +89 -0
  141. package/dist/bundlers/vite/processed-css-assets/style-files.d.ts +3 -0
  142. package/dist/bundlers/vite/processed-css-assets.d.ts +4 -71
  143. package/dist/bundlers/vite/resolve-app-type.d.ts +1 -1
  144. package/dist/bundlers/vite/rewrite-css-imports.d.ts +3 -1
  145. package/dist/bundlers/vite/runtime-affecting-signature.d.ts +1 -2
  146. package/dist/bundlers/vite/runtime-candidate-entry.d.ts +9 -0
  147. package/dist/bundlers/vite/runtime-class-set.d.ts +4 -4
  148. package/dist/bundlers/vite/serve-css-generation.d.ts +2 -0
  149. package/dist/bundlers/vite/serve-js-transform.d.ts +1 -1
  150. package/dist/bundlers/vite/serve-root-import-shell.d.ts +1 -1
  151. package/dist/bundlers/vite/shared/create-framework-plugins-runtime.d.ts +2 -0
  152. package/dist/bundlers/vite/shared/create-framework-plugins.d.ts +8 -8
  153. package/dist/bundlers/vite/shared/framework-hmr-candidate-state.d.ts +45 -0
  154. package/dist/bundlers/vite/shared/framework-post-plugin.d.ts +2 -0
  155. package/dist/bundlers/vite/shared/framework-processed-css-registry.d.ts +22 -0
  156. package/dist/bundlers/vite/shared/framework-runtime-options.d.ts +1 -0
  157. package/dist/bundlers/vite/shared/framework-source-candidates-plugin.d.ts +2 -0
  158. package/dist/bundlers/vite/shared/framework-source-scan-session.d.ts +38 -0
  159. package/dist/bundlers/vite/shared/framework-strategy.d.ts +4 -4
  160. package/dist/bundlers/vite/source-candidate-scan-signature.d.ts +2 -13
  161. package/dist/bundlers/vite/source-candidates/scan-root.d.ts +1 -10
  162. package/dist/bundlers/vite/source-candidates.d.ts +1 -68
  163. package/dist/bundlers/vite/source-output-relations.d.ts +24 -0
  164. package/dist/bundlers/vite/source-scan/css-entries.d.ts +2 -18
  165. package/dist/bundlers/vite/source-scan.d.ts +2 -16
  166. package/dist/bundlers/vite/static-config-content.d.ts +1 -5
  167. package/dist/bundlers/vite/uni-app-x-css-options.d.ts +1 -1
  168. package/dist/bundlers/vite/web-css-compat.d.ts +1 -1
  169. package/dist/bundlers/webpack/BaseUnifiedPlugin/v5-assets/asset-emission-plan.d.ts +18 -0
  170. package/dist/bundlers/webpack/BaseUnifiedPlugin/v5-assets/css-source-resolvers.d.ts +2 -2
  171. package/dist/bundlers/webpack/BaseUnifiedPlugin/v5-assets/finalize-assets.d.ts +2 -0
  172. package/dist/bundlers/webpack/BaseUnifiedPlugin/v5-assets/generated-css-result.d.ts +3 -0
  173. package/dist/bundlers/webpack/BaseUnifiedPlugin/v5-assets/generated-css-task.d.ts +2 -0
  174. package/dist/bundlers/webpack/BaseUnifiedPlugin/v5-assets/helpers.d.ts +11 -41
  175. package/dist/bundlers/webpack/BaseUnifiedPlugin/v5-assets/html-js-tasks.d.ts +5 -0
  176. package/dist/bundlers/webpack/BaseUnifiedPlugin/v5-assets/js-module-graph.d.ts +4 -10
  177. package/dist/bundlers/webpack/BaseUnifiedPlugin/v5-assets/pipeline-helpers/finalize.d.ts +30 -0
  178. package/dist/bundlers/webpack/BaseUnifiedPlugin/v5-assets/pipeline-helpers/generated-css.d.ts +8 -0
  179. package/dist/bundlers/webpack/BaseUnifiedPlugin/v5-assets/pipeline-helpers/memory-trace.d.ts +78 -0
  180. package/dist/bundlers/webpack/BaseUnifiedPlugin/v5-assets/pipeline-helpers/preflight-runtime.d.ts +43 -0
  181. package/dist/bundlers/webpack/BaseUnifiedPlugin/v5-assets/pipeline-helpers/resources.d.ts +30 -0
  182. package/dist/bundlers/webpack/BaseUnifiedPlugin/v5-assets/pipeline-helpers/runtime-candidates.d.ts +1 -0
  183. package/dist/bundlers/webpack/BaseUnifiedPlugin/v5-assets/pipeline-helpers/sources.d.ts +28 -0
  184. package/dist/bundlers/webpack/BaseUnifiedPlugin/v5-assets/pipeline-helpers/user-css-markers.d.ts +1 -0
  185. package/dist/bundlers/webpack/BaseUnifiedPlugin/v5-assets/pipeline-helpers/user-css.d.ts +21 -0
  186. package/dist/bundlers/webpack/BaseUnifiedPlugin/v5-assets/pipeline-helpers.d.ts +9 -219
  187. package/dist/bundlers/webpack/BaseUnifiedPlugin/v5-assets/processed-css-task.d.ts +4 -0
  188. package/dist/bundlers/webpack/BaseUnifiedPlugin/v5-assets/source-candidate-cache.d.ts +3 -3
  189. package/dist/bundlers/webpack/BaseUnifiedPlugin/v5-assets/source-candidate-refresh.d.ts +3 -3
  190. package/dist/bundlers/webpack/BaseUnifiedPlugin/v5-assets.d.ts +2 -2
  191. package/dist/bundlers/webpack/BaseUnifiedPlugin/v5-loaders.d.ts +8 -4
  192. package/dist/bundlers/webpack/BaseUnifiedPlugin/v5.d.ts +2 -2
  193. package/dist/bundlers/webpack/frameworks/generic/index.d.ts +2 -2
  194. package/dist/bundlers/webpack/frameworks/index.d.ts +7 -7
  195. package/dist/bundlers/webpack/frameworks/mpx/index.d.ts +2 -2
  196. package/dist/bundlers/webpack/frameworks/taro/index.d.ts +2 -2
  197. package/dist/bundlers/webpack/frameworks/uni-app/index.d.ts +2 -2
  198. package/dist/bundlers/webpack/frameworks/weapp-vite/index.d.ts +2 -2
  199. package/dist/bundlers/webpack/index.d.ts +1 -1
  200. package/dist/bundlers/webpack/loaders/runtime-registry.d.ts +7 -2
  201. package/dist/bundlers/webpack/loaders/weapp-tw-css-generation-loader.d.ts +1 -1
  202. package/dist/bundlers/webpack/loaders/weapp-tw-css-import-rewrite-loader.d.ts +1 -1
  203. package/dist/bundlers/webpack/loaders/weapp-tw-runtime-classset-loader.d.ts +1 -1
  204. package/dist/bundlers/webpack/shared/create-framework-plugin/plugin.d.ts +20 -0
  205. package/dist/bundlers/webpack/shared/create-framework-plugin/watch-output.d.ts +13 -0
  206. package/dist/bundlers/webpack/shared/create-framework-plugin.d.ts +3 -21
  207. package/dist/cli/context.d.ts +2 -2
  208. package/dist/cli/doctor.d.ts +1 -1
  209. package/dist/cli/helpers/options.d.ts +3 -3
  210. package/dist/cli/helpers.d.ts +1 -1
  211. package/dist/cli.cjs +37012 -0
  212. package/dist/cli.js +145 -176
  213. package/dist/compiler/artifact.d.ts +14 -0
  214. package/dist/compiler/candidate-index.d.ts +10 -0
  215. package/dist/compiler/compilation-change-coordinator.d.ts +28 -0
  216. package/dist/compiler/compilation-dependency-state.d.ts +16 -0
  217. package/dist/compiler/compilation-scope-graph.d.ts +31 -0
  218. package/dist/compiler/compilation-session-pool.d.ts +54 -0
  219. package/dist/compiler/compiler-owner-state.d.ts +3 -0
  220. package/dist/compiler/composition.d.ts +8 -0
  221. package/dist/compiler/emission-plan.d.ts +26 -0
  222. package/dist/compiler/index.d.ts +23 -0
  223. package/dist/compiler/invalidation.d.ts +3 -0
  224. package/dist/compiler/mode.d.ts +3 -0
  225. package/dist/compiler/owner-lifecycle.d.ts +1 -0
  226. package/dist/compiler/platform-adapter.d.ts +9 -0
  227. package/dist/compiler/runtime-affecting-signature.d.ts +2 -0
  228. package/dist/compiler/runtime-build-state.d.ts +6 -0
  229. package/dist/compiler/runtime-snapshot.d.ts +53 -0
  230. package/dist/compiler/scope-planner.d.ts +6 -0
  231. package/dist/compiler/semantic-css.d.ts +66 -0
  232. package/dist/compiler/session.d.ts +13 -0
  233. package/dist/compiler/shadow-gate.d.ts +26 -0
  234. package/dist/compiler/shadow-report-session.d.ts +37 -0
  235. package/dist/compiler/shadow-report.d.ts +15 -0
  236. package/dist/compiler/source-graph.d.ts +32 -0
  237. package/dist/compiler/tailwind-generation-session-pool.d.ts +22 -0
  238. package/dist/compiler/types.d.ts +95 -0
  239. package/dist/constants.d.ts +2 -2
  240. package/dist/context/compiler-context-cache.d.ts +1 -1
  241. package/dist/context/custom-attributes.d.ts +1 -1
  242. package/dist/context/handlers.d.ts +3 -3
  243. package/dist/context/index.d.ts +1 -1
  244. package/dist/context/runtime-package-replacements.d.ts +1 -1
  245. package/dist/context/style-options.d.ts +1 -1
  246. package/dist/context/tailwindcss.d.ts +3 -3
  247. package/dist/{context-VeFq_8vW.js → context-PZXBqrAJ.cjs} +32 -94
  248. package/dist/{context-BgGWVAmN.mjs → context-oTkxC5aZ.js} +23 -12
  249. package/dist/{core.mjs → core.cjs} +13 -12
  250. package/dist/core.d.ts +2 -2
  251. package/dist/core.js +12 -13
  252. package/dist/css-imports-DfNC3e6a.cjs +43 -0
  253. package/dist/css-loader-runtime-CSv0lKqV.cjs +11 -0
  254. package/dist/css-macro/postcss.cjs +19 -0
  255. package/dist/css-macro/postcss.js +2 -19
  256. package/dist/{css-macro.mjs → css-macro.cjs} +11 -8
  257. package/dist/css-macro.d.ts +2 -2
  258. package/dist/css-macro.js +8 -11
  259. package/dist/{defaults.mjs → defaults.cjs} +16 -11
  260. package/dist/defaults.d.ts +1 -1
  261. package/dist/defaults.js +11 -16
  262. package/dist/{escape.mjs → escape.cjs} +18 -4
  263. package/dist/escape.js +4 -18
  264. package/dist/framework/platform.d.ts +1 -1
  265. package/dist/{framework.mjs → framework.cjs} +47 -25
  266. package/dist/framework.d.ts +1 -1
  267. package/dist/framework.js +25 -47
  268. package/dist/generator/index.d.ts +6 -6
  269. package/dist/generator/options.d.ts +3 -3
  270. package/dist/generator/types.d.ts +2 -2
  271. package/dist/{generator-CEnUsjed.js → generator-C8D5cnbe.cjs} +730 -468
  272. package/dist/{generator-CEo920So.mjs → generator-CDdzqf1S.js} +747 -497
  273. package/dist/generator.cjs +12 -0
  274. package/dist/generator.d.ts +1 -1
  275. package/dist/generator.js +2 -12
  276. package/dist/{gulp-3m1dAiig.js → gulp-Cjcss8T_.cjs} +326 -241
  277. package/dist/{gulp-DP71z1jG.mjs → gulp-DNXQvDUw.js} +316 -234
  278. package/dist/gulp.cjs +5 -0
  279. package/dist/gulp.d.ts +4 -4
  280. package/dist/gulp.js +2 -5
  281. package/dist/{hmr-timing-1aS6--U7.mjs → hmr-timing-CuJwQzDc.js} +5230 -3259
  282. package/dist/hmr-timing-DMLfNfGG.cjs +555 -0
  283. package/dist/index.cjs +45 -0
  284. package/dist/index.d.ts +9 -9
  285. package/dist/index.js +9 -45
  286. package/dist/js/JsTokenUpdater.d.ts +1 -1
  287. package/dist/js/ModuleGraph.d.ts +3 -3
  288. package/dist/js/NodePathWalker.d.ts +2 -2
  289. package/dist/js/babel/process.d.ts +2 -2
  290. package/dist/js/babel.d.ts +8 -8
  291. package/dist/js/evalTransforms.d.ts +2 -2
  292. package/dist/js/fast-path/oxc.d.ts +1 -1
  293. package/dist/js/handlers.d.ts +2 -2
  294. package/dist/js/index.d.ts +3 -3
  295. package/dist/js/literal-transform.d.ts +1 -1
  296. package/dist/js/module-graph/ignored-exports.d.ts +4 -4
  297. package/dist/js/module-graph/types.d.ts +2 -2
  298. package/dist/js/node-path-walker/export-handlers.d.ts +1 -1
  299. package/dist/js/precheck.d.ts +1 -1
  300. package/dist/js/replacement-cache.d.ts +1 -1
  301. package/dist/js/sourceAnalysis.d.ts +3 -3
  302. package/dist/js/taggedTemplateIgnore.d.ts +1 -1
  303. package/dist/object-Bvy6-w9r.js +47 -0
  304. package/dist/object-C_Vr6_S5.cjs +58 -0
  305. package/dist/options-DlvhQwWB.cjs +775 -0
  306. package/dist/pipeline-helpers-XtUmUlci.cjs +955 -0
  307. package/dist/postcss-html-transform.cjs +7 -0
  308. package/dist/postcss-html-transform.js +3 -5
  309. package/dist/postcss.cjs +15 -0
  310. package/dist/postcss.js +7 -11
  311. package/dist/presets/hbuilderx.d.ts +2 -2
  312. package/dist/presets/index.d.ts +4 -4
  313. package/dist/presets/shared.d.ts +1 -1
  314. package/dist/presets/taro.d.ts +2 -2
  315. package/dist/presets/uni-app-x.d.ts +1 -1
  316. package/dist/presets/uni-app.d.ts +2 -2
  317. package/dist/{presets.mjs → presets.cjs} +37 -24
  318. package/dist/presets.d.ts +1 -1
  319. package/dist/presets.js +24 -36
  320. package/dist/reset.cjs +19 -0
  321. package/dist/reset.d.ts +2 -2
  322. package/dist/reset.js +2 -19
  323. package/dist/{rolldown-runtime-emK7D4bc.js → rolldown-runtime-CVvi-lCc.cjs} +15 -0
  324. package/dist/{rspack.mjs → rspack.cjs} +10 -4
  325. package/dist/rspack.d.ts +3 -3
  326. package/dist/rspack.js +4 -10
  327. package/dist/runtime-branch/create-branch.d.ts +1 -1
  328. package/dist/runtime-branch/generator-target-env.d.ts +1 -1
  329. package/dist/runtime-branch/index.d.ts +2 -2
  330. package/dist/runtime-branch/mini-program.d.ts +1 -1
  331. package/dist/runtime-branch/native-app.d.ts +1 -1
  332. package/dist/runtime-branch/platform.d.ts +2 -2
  333. package/dist/runtime-branch/tailwind-version.d.ts +1 -1
  334. package/dist/runtime-branch/types.d.ts +2 -2
  335. package/dist/runtime-branch/web.d.ts +1 -1
  336. package/dist/runtime-branch.d.ts +1 -1
  337. package/dist/runtime-registry-Y7NrD2WH.cjs +31 -0
  338. package/dist/shared/classname-transform.d.ts +1 -1
  339. package/dist/shared/mpx-plugin-owner.d.ts +2 -0
  340. package/dist/shared/mpx.d.ts +1 -1
  341. package/dist/{source-candidate-scan-signature-Cf7259PR.mjs → source-candidate-scan-signature-B0S7f5P7.js} +26 -336
  342. package/dist/{source-candidate-scan-signature-BAahhiwb.js → source-candidate-scan-signature-BmSuoxR9.cjs} +31 -414
  343. package/dist/style-injector/internal.d.ts +6 -6
  344. package/dist/style-options-CEfXwZzX.cjs +75 -0
  345. package/dist/tailwindcss/candidates.d.ts +2 -2
  346. package/dist/tailwindcss/index.d.ts +1 -1
  347. package/dist/tailwindcss/runtime/cache.d.ts +1 -1
  348. package/dist/tailwindcss/runtime-factory.d.ts +2 -2
  349. package/dist/tailwindcss/runtime-options.d.ts +1 -1
  350. package/dist/tailwindcss/runtime-types.d.ts +2 -2
  351. package/dist/tailwindcss/runtime.d.ts +2 -2
  352. package/dist/tailwindcss/source-scan.d.ts +2 -2
  353. package/dist/tailwindcss/targets.d.ts +1 -1
  354. package/dist/tailwindcss/v4/config.d.ts +1 -1
  355. package/dist/tailwindcss/v4/css-sources.d.ts +2 -1
  356. package/dist/tailwindcss/v4/index.d.ts +2 -2
  357. package/dist/tailwindcss/v4/multi-runtime.d.ts +1 -1
  358. package/dist/tailwindcss/v4/runtime-factory.d.ts +5 -5
  359. package/dist/tailwindcss/v4/runtime-options.d.ts +1 -1
  360. package/dist/tailwindcss/v4-engine/css-macro-source.d.ts +1 -1
  361. package/dist/tailwindcss/v4-engine/generator/cache-stats.d.ts +26 -0
  362. package/dist/tailwindcss/v4-engine/generator/css-compat.d.ts +1 -1
  363. package/dist/tailwindcss/v4-engine/generator/engine.d.ts +2 -0
  364. package/dist/tailwindcss/v4-engine/generator/incremental-cache.d.ts +51 -0
  365. package/dist/tailwindcss/v4-engine/generator/native-session.d.ts +17 -0
  366. package/dist/tailwindcss/v4-engine/generator/scan-sources.d.ts +2 -1
  367. package/dist/tailwindcss/v4-engine/generator.d.ts +2 -28
  368. package/dist/tailwindcss/v4-engine/index.d.ts +5 -5
  369. package/dist/tailwindcss/v4-engine/miniprogram.d.ts +2 -2
  370. package/dist/tailwindcss/v4-engine/source.d.ts +2 -2
  371. package/dist/tailwindcss/v4-engine/types.d.ts +1 -0
  372. package/dist/{tailwindcss-KBYPJ2DW.js → tailwindcss-Cs94gJgf.cjs} +10 -770
  373. package/dist/{tailwindcss-xs704TRw.mjs → tailwindcss-D7TGiZR2.js} +23 -23
  374. package/dist/transform-BUEyOCT7.cjs +341 -0
  375. package/dist/transform-BbaPIji9.js +342 -0
  376. package/dist/typedoc.export.d.ts +4 -4
  377. package/dist/types/index.d.ts +7 -7
  378. package/dist/types/shared.d.ts +1 -1
  379. package/dist/types/typedoc-tailwindcss-runtime.d.ts +3 -3
  380. package/dist/types/user-defined-options/general.d.ts +5 -5
  381. package/dist/types/user-defined-options/important.d.ts +2 -2
  382. package/dist/types/user-defined-options/index.d.ts +9 -9
  383. package/dist/types/user-defined-options/matcher.d.ts +2 -2
  384. package/dist/types.cjs +0 -0
  385. package/dist/types.d.ts +1 -1
  386. package/dist/types.js +1 -0
  387. package/dist/uni-app-x/harmony.d.ts +1 -0
  388. package/dist/uni-app-x/index.d.ts +2 -2
  389. package/dist/uni-app-x/options.d.ts +1 -1
  390. package/dist/uni-app-x/style-asset/harmony-apply.d.ts +1 -0
  391. package/dist/uni-app-x/style-asset/style-value.d.ts +3 -0
  392. package/dist/uni-app-x/style-asset.d.ts +5 -4
  393. package/dist/uni-app-x/transform.d.ts +1 -1
  394. package/dist/uni-app-x/vite/harmony-apply.d.ts +19 -0
  395. package/dist/uni-app-x/vite/native-target.d.ts +2 -0
  396. package/dist/uni-app-x/vite.d.ts +5 -2
  397. package/dist/unocss/index.d.ts +1 -1
  398. package/dist/utils/disabled.d.ts +1 -1
  399. package/dist/utils/index.d.ts +3 -3
  400. package/dist/{hmr-timing-B8p4f0ca.js → v4-generation-core-D7MuR5ZF.cjs} +4886 -3330
  401. package/dist/{vite-nXZEiwG0.mjs → vite-BI1TeUPO.js} +6148 -4522
  402. package/dist/{vite-DUVjMduj.js → vite-CBzmUTu-.cjs} +6267 -4666
  403. package/dist/vite.cjs +4 -0
  404. package/dist/vite.d.ts +3 -3
  405. package/dist/vite.js +2 -4
  406. package/dist/watch-dependencies-BZGubvuJ.cjs +40 -0
  407. package/dist/{weapp-tw-css-generation-loader.js → weapp-tw-css-generation-loader.cjs} +3 -2
  408. package/dist/weapp-tw-css-import-rewrite-loader.cjs +201 -0
  409. package/dist/{weapp-tw-runtime-classset-loader.js → weapp-tw-runtime-classset-loader.cjs} +19 -15
  410. package/dist/{webpack-nppysF4B.js → webpack-Dao6bWEj.cjs} +1000 -1473
  411. package/dist/{webpack-C_UUFRgj.mjs → webpack-dAY9h8r8.js} +1462 -1185
  412. package/dist/webpack.cjs +5 -0
  413. package/dist/webpack.d.ts +2 -2
  414. package/dist/webpack.js +2 -5
  415. package/dist/wxml/Tokenizer.d.ts +2 -2
  416. package/dist/wxml/custom-attributes.d.ts +1 -1
  417. package/dist/wxml/index.d.ts +2 -2
  418. package/dist/wxml/shared.d.ts +1 -1
  419. package/dist/wxml/utils/codegen/legacy-rewriter.d.ts +1 -1
  420. package/dist/wxml/utils/codegen/legacy-visitor.d.ts +2 -2
  421. package/dist/wxml/utils/codegen.d.ts +1 -1
  422. package/dist/wxml/utils/custom-template.d.ts +2 -2
  423. package/dist/wxml/utils/fragment-helpers.d.ts +2 -2
  424. package/dist/wxml/utils/fragment-updater.d.ts +2 -2
  425. package/dist/wxml/utils/template-fragments.d.ts +2 -2
  426. package/dist/wxml/utils.d.ts +5 -5
  427. package/dist/wxml-DSMNuUaP.cjs +38609 -0
  428. package/dist/{cli.mjs → wxml-IBzZSaQC.js} +237 -718
  429. package/package.json +59 -54
  430. package/dist/css-macro/postcss.mjs +0 -2
  431. package/dist/generator.mjs +0 -2
  432. package/dist/gulp.mjs +0 -2
  433. package/dist/index.mjs +0 -9
  434. package/dist/object-BJSWl-E5.mjs +0 -9
  435. package/dist/object-COs_Mw6p.js +0 -14
  436. package/dist/postcss-html-transform.mjs +0 -5
  437. package/dist/postcss.mjs +0 -11
  438. package/dist/reset.mjs +0 -2
  439. package/dist/transform-B_KM9sLX.mjs +0 -14930
  440. package/dist/transform-CcYptivi.js +0 -14927
  441. package/dist/types.mjs +0 -1
  442. package/dist/vite.mjs +0 -2
  443. package/dist/watch-dependencies-bpG6kmAf.js +0 -80
  444. package/dist/weapp-tw-css-import-rewrite-loader-DNk0IxAt.js +0 -10198
  445. package/dist/weapp-tw-css-import-rewrite-loader.js +0 -10
  446. package/dist/webpack.mjs +0 -2
  447. package/dist/wxml-Ce10eREX.js +0 -3979
  448. package/dist/wxml-DdGdeqaH.mjs +0 -3861
  449. /package/dist/{auto-2dg_uhEJ.mjs → auto-2dg_uhEJ.js} +0 -0
  450. /package/dist/{auto-DtU6f3X6.js → auto-DtU6f3X6.cjs} +0 -0
  451. /package/dist/bundlers/{vite → shared}/source-scan/dependencies.d.ts +0 -0
  452. /package/dist/{cache-options-DavPxrhC.js → cache-options-DavPxrhC.cjs} +0 -0
  453. /package/dist/{cache-options-DwBtLwQe.mjs → cache-options-DwBtLwQe.js} +0 -0
  454. /package/dist/{logger-BNzxZbZj.mjs → logger-BNzxZbZj.js} +0 -0
  455. /package/dist/{logger-TlKT3xmR.js → logger-TlKT3xmR.cjs} +0 -0
  456. /package/dist/{utils-CuKLf1Zv.js → utils-CuKLf1Zv.cjs} +0 -0
  457. /package/dist/{utils-MVwpU07P.mjs → utils-MVwpU07P.js} +0 -0
@@ -1,24 +1,30 @@
1
- const require_rolldown_runtime = require("./rolldown-runtime-emK7D4bc.js");
2
- const require_generator = require("./generator-CEnUsjed.js");
3
- const require_tailwindcss = require("./tailwindcss-KBYPJ2DW.js");
4
- const require_utils = require("./utils-CuKLf1Zv.js");
5
- const require_wxml = require("./wxml-Ce10eREX.js");
6
- const require_context = require("./context-VeFq_8vW.js");
7
- const require_defaults = require("./defaults.js");
8
- const require_hmr_timing = require("./hmr-timing-B8p4f0ca.js");
9
- const require_source_candidate_scan_signature = require("./source-candidate-scan-signature-BAahhiwb.js");
1
+ const require_rolldown_runtime = require("./rolldown-runtime-CVvi-lCc.cjs");
2
+ const require_generator = require("./generator-C8D5cnbe.cjs");
3
+ const require_object = require("./object-C_Vr6_S5.cjs");
4
+ const require_options = require("./options-DlvhQwWB.cjs");
5
+ const require_utils = require("./utils-CuKLf1Zv.cjs");
6
+ const require_v4_generation_core = require("./v4-generation-core-D7MuR5ZF.cjs");
7
+ const require_wxml = require("./wxml-DSMNuUaP.cjs");
8
+ const require_hmr_timing = require("./hmr-timing-DMLfNfGG.cjs");
9
+ const require_context = require("./context-PZXBqrAJ.cjs");
10
+ const require_tailwindcss = require("./tailwindcss-Cs94gJgf.cjs");
11
+ const require_style_options = require("./style-options-CEfXwZzX.cjs");
12
+ const require_source_candidate_scan_signature = require("./source-candidate-scan-signature-BmSuoxR9.cjs");
13
+ const require_pipeline_helpers = require("./pipeline-helpers-XtUmUlci.cjs");
14
+ const require_css_loader_runtime = require("./css-loader-runtime-CSv0lKqV.cjs");
15
+ const require_runtime_registry = require("./runtime-registry-Y7NrD2WH.cjs");
10
16
  let node_fs = require("node:fs");
11
- node_fs = require_rolldown_runtime.__toESM(node_fs);
17
+ node_fs = require_rolldown_runtime.__toESM(node_fs, 1);
12
18
  let node_path = require("node:path");
13
- node_path = require_rolldown_runtime.__toESM(node_path);
19
+ node_path = require_rolldown_runtime.__toESM(node_path, 1);
14
20
  let node_process = require("node:process");
15
- node_process = require_rolldown_runtime.__toESM(node_process);
21
+ node_process = require_rolldown_runtime.__toESM(node_process, 1);
16
22
  let _weapp_tailwindcss_postcss = require("@weapp-tailwindcss/postcss");
17
23
  let node_module = require("node:module");
18
- node_module = require_rolldown_runtime.__toESM(node_module);
24
+ node_module = require_rolldown_runtime.__toESM(node_module, 1);
19
25
  let node_fs_promises = require("node:fs/promises");
20
26
  let micromatch = require("micromatch");
21
- micromatch = require_rolldown_runtime.__toESM(micromatch);
27
+ micromatch = require_rolldown_runtime.__toESM(micromatch, 1);
22
28
  let _weapp_core_escape = require("@weapp-core/escape");
23
29
  let _weapp_tailwindcss_shared_node = require("@weapp-tailwindcss/shared/node");
24
30
  //#region src/bundlers/webpack/BaseUnifiedPlugin/shared.ts
@@ -27,13 +33,13 @@ function getCacheKey(filename) {
27
33
  }
28
34
  function stripResourceQuery(resource) {
29
35
  if (typeof resource !== "string") return resource;
30
- return require_hmr_timing.stripRequestQuery(resource);
36
+ return require_v4_generation_core.stripRequestQuery(resource);
31
37
  }
32
38
  function isCssLikeModuleResource(resource, cssMatcher) {
33
39
  if (typeof resource !== "string") return false;
34
40
  const normalizedResource = stripResourceQuery(resource);
35
41
  if (normalizedResource && cssMatcher(normalizedResource)) return true;
36
- if (require_hmr_timing.isSourceStyleRequest(resource)) return true;
42
+ if (require_v4_generation_core.isSourceStyleRequest(resource)) return true;
37
43
  return false;
38
44
  }
39
45
  function hasLoaderEntry(entries, target) {
@@ -159,659 +165,7 @@ function isWatchFileInRuntimeDependencies(file, dependencies) {
159
165
  return false;
160
166
  }
161
167
  //#endregion
162
- //#region src/bundlers/webpack/shared/css-loader-runtime.ts
163
- function isWebpackCssLoaderRuntimeSource(source) {
164
- return source.includes("___CSS_LOADER_EXPORT___") && source.includes("___CSS_LOADER_API_IMPORT___") && source.includes("module.exports = ___CSS_LOADER_EXPORT___");
165
- }
166
- //#endregion
167
- //#region src/bundlers/webpack/BaseUnifiedPlugin/v5-assets/pipeline-helpers.ts
168
- const WEBPACK_CSS_HANDLER_OPTIONS_CACHE_MAX = 128;
169
- function resolveConfiguredWebpackCssPreflight(compilerOptions, styleOptions) {
170
- return styleOptions.cssPreflight ?? compilerOptions.cssPreflight ?? require_defaults.getDefaultCssPreflight();
171
- }
172
- function resolveExistingWebpackCssPreflight(compilerOptions, styleOptions, source) {
173
- return hasMiniProgramPreflightSelector(source) ? resolveConfiguredWebpackCssPreflight(compilerOptions, styleOptions) : void 0;
174
- }
175
- function removeMiniProgramPreflightSelectorRule(source) {
176
- try {
177
- const root = _weapp_tailwindcss_postcss.postcss.parse(source);
178
- let changed = false;
179
- root.walkRules((rule) => {
180
- const selectors = new Set((rule.selectors ?? [rule.selector]).map((selector) => selector.trim().replace(/^:before$/, "::before").replace(/^:after$/, "::after")));
181
- if (selectors.has("view") && selectors.has("text") && selectors.has("::before") && selectors.has("::after")) {
182
- rule.remove();
183
- changed = true;
184
- }
185
- });
186
- return changed ? root.toString() : source;
187
- } catch {
188
- return source.replace(/(?:^|[}\s])\s*view\s*,\s*text\s*,\s*::after\s*,\s*::before\s*\{[^}]*\}/g, "");
189
- }
190
- }
191
- function dedupeMiniProgramPreflightSelectorRules(source) {
192
- try {
193
- const root = _weapp_tailwindcss_postcss.postcss.parse(source);
194
- let firstRule;
195
- let changed = false;
196
- root.walkRules((rule) => {
197
- const selectors = new Set((rule.selectors ?? [rule.selector]).map((selector) => selector.trim().replace(/^:before$/, "::before").replace(/^:after$/, "::after")));
198
- if (!selectors.has("view") || !selectors.has("text") || !selectors.has("::before") || !selectors.has("::after")) return;
199
- if (!firstRule) {
200
- firstRule = rule;
201
- return;
202
- }
203
- const existingProps = /* @__PURE__ */ new Set();
204
- firstRule.walkDecls((decl) => {
205
- existingProps.add(decl.prop);
206
- });
207
- rule.walkDecls((decl) => {
208
- if (!existingProps.has(decl.prop)) {
209
- firstRule?.append(decl.clone());
210
- existingProps.add(decl.prop);
211
- }
212
- });
213
- rule.remove();
214
- changed = true;
215
- });
216
- return changed ? root.toString() : source;
217
- } catch {
218
- return source;
219
- }
220
- }
221
- function hasMiniProgramPreflightSelector(source) {
222
- try {
223
- let found = false;
224
- _weapp_tailwindcss_postcss.postcss.parse(source).walkRules((rule) => {
225
- const selectors = new Set((rule.selectors ?? [rule.selector]).map((selector) => selector.trim().replace(/^:before$/, "::before").replace(/^:after$/, "::after")));
226
- if (selectors.has("view") && selectors.has("text") && selectors.has("::before") && selectors.has("::after")) {
227
- found = true;
228
- return false;
229
- }
230
- });
231
- return found;
232
- } catch {
233
- return /(?:^|[},])\s*view\s*,\s*text\s*,\s*::after\s*,\s*::before\s*\{/.test(source);
234
- }
235
- }
236
- function ensureWebpackMiniProgramTwContentInit(source) {
237
- if (!source.includes("var(--tw-content)")) return source;
238
- try {
239
- const root = _weapp_tailwindcss_postcss.postcss.parse(source);
240
- let changed = false;
241
- root.walkRules((rule) => {
242
- const selectors = new Set((rule.selectors ?? [rule.selector]).map((selector) => selector.trim().replace(/^:before$/, "::before").replace(/^:after$/, "::after")));
243
- if (!selectors.has("view") || !selectors.has("text") || !selectors.has("::before") || !selectors.has("::after")) return;
244
- let hasContentInit = false;
245
- rule.walkDecls("--tw-content", () => {
246
- hasContentInit = true;
247
- });
248
- if (!hasContentInit) {
249
- rule.append(_weapp_tailwindcss_postcss.postcss.decl({
250
- prop: "--tw-content",
251
- value: "''"
252
- }));
253
- changed = true;
254
- }
255
- return false;
256
- });
257
- return changed ? root.toString() : source;
258
- } catch {
259
- return source;
260
- }
261
- }
262
- function removeTailwindV4StandaloneHostPreflightRule(source) {
263
- if (!source.includes("--theme(")) return source;
264
- try {
265
- const root = _weapp_tailwindcss_postcss.postcss.parse(source);
266
- let changed = false;
267
- root.walkRules((rule) => {
268
- if (rule.selector.trim() !== ":host") return;
269
- if (!rule.nodes?.some((node) => node.type === "decl" && node.value?.includes("--theme("))) return;
270
- rule.remove();
271
- changed = true;
272
- });
273
- return changed ? root.toString() : source;
274
- } catch {
275
- return source;
276
- }
277
- }
278
- function isRuntimeTransformCandidate(candidate) {
279
- return candidate.length > 0 && !candidate.includes("=") && !candidate.includes("<") && !candidate.includes(">") && !candidate.includes("${");
280
- }
281
- function collectRuntimeTokenSignatureParts(source) {
282
- return source.match(/[\w-]+_[A-Z][\w-]*/gi) ?? [];
283
- }
284
- function hasMissingRuntimeCandidates(classSet, candidates) {
285
- if (!classSet || !candidates?.size) return false;
286
- for (const candidate of candidates) if (isRuntimeTransformCandidate(candidate) && !classSet.has(candidate)) return true;
287
- return false;
288
- }
289
- function hasStaleRuntimeCandidates(classSet, candidates) {
290
- if (!classSet || !candidates) return false;
291
- for (const candidate of classSet) if (isRuntimeTransformCandidate(candidate) && !candidates.has(candidate)) return true;
292
- return false;
293
- }
294
- function resolveGeneratedCssRuntimeCandidates(source, fallbackClassSet) {
295
- const classSet = collectGeneratedCssRuntimeCandidates(source);
296
- if (classSet.size > 0 || fallbackClassSet === void 0) return classSet;
297
- return fallbackClassSet;
298
- }
299
- function getRuntimeClassSetSync(tailwindRuntime) {
300
- if (typeof tailwindRuntime.getClassSetSync !== "function") return /* @__PURE__ */ new Set();
301
- try {
302
- return new Set(tailwindRuntime.getClassSetSync() ?? []);
303
- } catch {
304
- return /* @__PURE__ */ new Set();
305
- }
306
- }
307
- function toMb(bytes) {
308
- return Math.round(bytes / 1024 / 1024);
309
- }
310
- function pruneMapToMaxSize(map, maxSize) {
311
- while (map.size > maxSize) {
312
- const oldestKey = map.keys().next().value;
313
- if (oldestKey === void 0) break;
314
- map.delete(oldestKey);
315
- }
316
- }
317
- function stripTrailingLineWhitespace(source) {
318
- return source.replace(/[ \t]+$/gm, "");
319
- }
320
- function pruneWebpackCssHandlerOptionCaches(cssHandlerOptionsCache, cssUserHandlerOptionsCache, activeCssFiles) {
321
- const activeSuffixes = [...activeCssFiles].map((file) => `:${file}`);
322
- for (const key of cssHandlerOptionsCache.keys()) if (!activeSuffixes.some((suffix) => key.endsWith(suffix))) cssHandlerOptionsCache.delete(key);
323
- for (const key of cssUserHandlerOptionsCache.keys()) if (!activeSuffixes.some((suffix) => key.endsWith(suffix))) cssUserHandlerOptionsCache.delete(key);
324
- pruneMapToMaxSize(cssHandlerOptionsCache, WEBPACK_CSS_HANDLER_OPTIONS_CACHE_MAX);
325
- pruneMapToMaxSize(cssUserHandlerOptionsCache, WEBPACK_CSS_HANDLER_OPTIONS_CACHE_MAX);
326
- }
327
- function resolveWebpackGeneratorRawSource(rawSource, cssHandlerOptions) {
328
- const sourceCss = cssHandlerOptions.sourceOptions?.sourceCss;
329
- if (sourceCss && (require_generator.hasTailwindRootDirectives(sourceCss, { importFallback: true }) || require_generator.hasTailwindSourceDirectives(sourceCss, { importFallback: true }) || require_generator.hasTailwindApplyDirective(sourceCss) || require_generator.hasTailwindGeneratedCss(sourceCss) || require_generator.hasTailwindGeneratedCssMarkers(sourceCss))) return sourceCss;
330
- return rawSource;
331
- }
332
- function shouldConsumeWebpackLoaderGeneratedCss(options) {
333
- if (!options.shouldRegenerateExplicitTailwindV4CssSource) return true;
334
- if (options.watchMode === true && options.loaderGeneratedClassSet && options.sourceCandidates && hasStaleRuntimeCandidates(options.loaderGeneratedClassSet, options.sourceCandidates)) return false;
335
- if (options.hasBundlerGeneratedCssMarker) return true;
336
- if (options.watchMode === true && options.loaderGeneratedClassSet && options.sourceCandidates && hasMissingRuntimeCandidates(options.loaderGeneratedClassSet, options.sourceCandidates)) return false;
337
- return Boolean(options.allowMarkerlessRegistryMatch && options.loaderGeneratedClassSet && options.sourceCandidates && !hasMissingRuntimeCandidates(options.loaderGeneratedClassSet, options.sourceCandidates) && !hasStaleRuntimeCandidates(options.loaderGeneratedClassSet, options.sourceCandidates));
338
- }
339
- function hasDeferredWebpackGeneratedCss(source, generatedClassSets) {
340
- const selectors = require_hmr_timing.collectRawSourceClassSelectors(source);
341
- for (const classSet of generatedClassSets) for (const candidate of classSet) if (selectors.has(candidate)) return true;
342
- return false;
343
- }
344
- function hasUsableWebpackGeneratorCssSources(cssSources) {
345
- return Array.isArray(cssSources) && cssSources.some((source) => typeof source?.css === "string" && source.css.length > 0);
346
- }
347
- function normalizeWebpackGeneratorCssSources(cssSources) {
348
- if (!Array.isArray(cssSources)) return;
349
- const normalized = cssSources.filter((source) => typeof source?.css === "string" && source.css.length > 0);
350
- return normalized.length > 0 ? normalized : void 0;
351
- }
352
- function scopeWebpackGeneratorOptionsToCssSource(compilerOptions, sourceFile, options = {}) {
353
- const withoutCssEntries = () => ({
354
- ...compilerOptions,
355
- ...compilerOptions.cssEntries?.length ? { cssEntries: [] } : {},
356
- tailwindcss: {
357
- ...compilerOptions.tailwindcss,
358
- v4: {
359
- ...compilerOptions.tailwindcss?.v4,
360
- ...compilerOptions.tailwindcss?.v4?.cssEntries?.length || compilerOptions.cssEntries?.length ? { cssEntries: [] } : {}
361
- }
362
- }
363
- });
364
- if (!sourceFile) {
365
- if (options.disableUnmatchedCssEntries !== true) return compilerOptions;
366
- if (!compilerOptions.cssEntries?.length && !compilerOptions.tailwindcss?.v4?.cssEntries?.length) return compilerOptions;
367
- return withoutCssEntries();
368
- }
369
- const resolvedSourceFile = node_path.default.resolve(sourceFile);
370
- if (options.disableUnmatchedCssEntries === true) {
371
- const configuredEntries = [...compilerOptions.cssEntries ?? [], ...compilerOptions.tailwindcss?.v4?.cssEntries ?? []];
372
- if (configuredEntries.length > 0 && !configuredEntries.some((entry) => node_path.default.resolve(entry) === resolvedSourceFile)) return withoutCssEntries();
373
- }
374
- const cssEntries = compilerOptions.cssEntries?.filter((entry) => node_path.default.resolve(entry) === resolvedSourceFile);
375
- const runtimeCssEntries = compilerOptions.tailwindcss?.v4?.cssEntries?.filter((entry) => node_path.default.resolve(entry) === resolvedSourceFile);
376
- const hasScopedCssEntries = Boolean(cssEntries?.length);
377
- const hasScopedRuntimeCssEntries = Boolean(runtimeCssEntries?.length);
378
- if (!hasScopedCssEntries && !hasScopedRuntimeCssEntries) return compilerOptions;
379
- return {
380
- ...compilerOptions,
381
- ...hasScopedCssEntries ? { cssEntries } : {},
382
- tailwindcss: {
383
- ...compilerOptions.tailwindcss,
384
- v4: {
385
- ...compilerOptions.tailwindcss?.v4,
386
- ...hasScopedRuntimeCssEntries ? { cssEntries: runtimeCssEntries } : hasScopedCssEntries ? { cssEntries } : {}
387
- }
388
- }
389
- };
390
- }
391
- function hasProcessedCssAssetUrl(css) {
392
- return /url\(\s*["']?data:/i.test(css);
393
- }
394
- function shouldUseWebpackAssetAsGeneratorUserCss(rawSource, generatorRawSource, options = {}) {
395
- const rawMarkers = collectWebpackAssetUserCssMarkers(rawSource);
396
- return rawSource !== generatorRawSource && (options.processed === true || !rawSource.includes("data:")) && !require_generator.hasTailwindRootDirectives(rawSource, { importFallback: true }) && !require_generator.hasTailwindSourceDirectives(rawSource, { importFallback: true }) && !require_generator.hasTailwindApplyDirective(rawSource) && rawMarkers.size > 0 && !isOnlyWebpackTailwindGeneratedPreflightCss(rawSource) && (!require_generator.hasTailwindGeneratedCssMarkers(rawSource) || hasAdditionalWebpackAssetUserCssMarkers(rawSource, generatorRawSource));
397
- }
398
- function collectWebpackAssetUserCssMarkers(source) {
399
- const markers = /* @__PURE__ */ new Set();
400
- for (const match of source.matchAll(/\.((?:\\.|[_a-z\u00A0-\uFFFF-])(?:\\.|[\w\u00A0-\uFFFF-])*)/gi)) markers.add(`class:${match[1]}`);
401
- for (const match of source.matchAll(/@(?:-[\w-]+-)?keyframes\s+((?:\\.|[-\w\u00A0-\uFFFF])+)/gi)) markers.add(`keyframes:${match[1]}`);
402
- try {
403
- const root = _weapp_tailwindcss_postcss.postcss.parse(source);
404
- root.walkRules((rule) => {
405
- for (const selector of rule.selectors) if (!/(?:^|[^\w-])\.[_a-z\u00A0-\uFFFF\\-]/i.test(selector)) markers.add(`selector:${selector.trim().replace(/\s+/g, " ")}`);
406
- rule.walkDecls((decl) => {
407
- if (decl.prop.startsWith("--")) markers.add(`custom-property:${decl.prop}`);
408
- });
409
- });
410
- root.walkAtRules("font-face", (rule) => {
411
- rule.walkDecls("font-family", (decl) => {
412
- markers.add(`font-face:${decl.value.trim()}`);
413
- });
414
- });
415
- } catch {}
416
- return markers;
417
- }
418
- function hasWebpackClassSelector(selector) {
419
- return /(?:^|[^\w-])\.[_a-z\u00A0-\uFFFF\\-]/i.test(selector);
420
- }
421
- function isWebpackKeyframesRule(rule) {
422
- let parent = rule.parent;
423
- while (parent) {
424
- if (parent.type === "atrule" && parent.name.endsWith("keyframes")) return true;
425
- parent = parent.parent;
426
- }
427
- return false;
428
- }
429
- function collectWebpackBareSelectorUserCss(source) {
430
- try {
431
- const normalizedSource = require_generator.removeTailwindSourceDirectives(require_generator.stripTailwindSourceMediaFragments(require_generator.removeTailwindV4GeneratorAtRules(source)), { importFallback: true });
432
- const root = _weapp_tailwindcss_postcss.postcss.parse(normalizedSource);
433
- let changed = false;
434
- root.walkAtRules((rule) => {
435
- if (rule.name === "import" || rule.name === "font-face" || rule.name.endsWith("keyframes")) {
436
- rule.remove();
437
- changed = true;
438
- }
439
- });
440
- root.walkRules((rule) => {
441
- if (isWebpackKeyframesRule(rule) || rule.selectors.some((selector) => hasWebpackClassSelector(selector))) {
442
- rule.remove();
443
- changed = true;
444
- }
445
- });
446
- root.walkAtRules((rule) => {
447
- if (rule.nodes !== void 0 && rule.nodes.length === 0) {
448
- rule.remove();
449
- changed = true;
450
- }
451
- });
452
- return changed ? root.toString() : normalizedSource;
453
- } catch {
454
- return "";
455
- }
456
- }
457
- const WEBPACK_TAILWIND_GENERATED_LAYER_NAMES = /* @__PURE__ */ new Set([
458
- "theme",
459
- "base",
460
- "utilities"
461
- ]);
462
- const WEBPACK_TAILWIND_UTILITY_RULE_MARKER_RE = /(?:^|[^\w-])\.[^,{]{0,512}(?:\\:|\\\[|\\#)/;
463
- const WEBPACK_TAILWIND_UTILITY_PREFIX_RE = /^\.(?:-?(?:bg|text|border|ring|shadow|drop-shadow|[pmwhz]|px|py|pt|pr|pb|pl|mx|my|mt|mr|mb|ml|min-w|min-h|max-w|max-h|flex|grid|inline|block|hidden|rounded|opacity|translate|scale|rotate|skew|top|right|bottom|left|inset|gap|font|leading|tracking|underline|container)(?:[\-\\{]|$)|\\\[)/;
464
- const WEBPACK_TAILWIND_BANNER_RE = /tailwindcss v4\./;
465
- const WEBPACK_TAILWIND_PREFLIGHT_SELECTORS = /* @__PURE__ */ new Set([
466
- "*",
467
- ":after",
468
- ":before",
469
- "::after",
470
- "::before",
471
- "::backdrop",
472
- "view",
473
- "text"
474
- ]);
475
- const WEBPACK_TAILWIND_PREFLIGHT_PROPS = /* @__PURE__ */ new Set([
476
- "box-sizing",
477
- "border",
478
- "border-width",
479
- "border-style",
480
- "border-color",
481
- "margin",
482
- "padding"
483
- ]);
484
- const WEBPACK_TAILWIND_THEME_TOKEN_RE = /^--(?:tw-|color-|spacing|breakpoint-|container-|text-|font-|tracking-|leading-|radius-|shadow-|inset-shadow-|drop-shadow-|ease-|animate-|blur-|perspective-|aspect-|default-)/;
485
- function parseWebpackCssLayerNames(params) {
486
- return params.split(",").map((name) => name.trim()).filter(Boolean);
487
- }
488
- function removeWebpackTailwindGeneratedAssetCss(source) {
489
- const cleaned = require_generator.removeTailwindV4GeneratedUserCssArtifacts(source);
490
- try {
491
- const root = _weapp_tailwindcss_postcss.postcss.parse(cleaned);
492
- let changed = false;
493
- let removingBannerPrefix = false;
494
- for (const node of [...root.nodes]) {
495
- if (node.type === "comment" && WEBPACK_TAILWIND_BANNER_RE.test(node.text)) {
496
- node.remove();
497
- changed = true;
498
- removingBannerPrefix = true;
499
- continue;
500
- }
501
- if (!removingBannerPrefix) continue;
502
- if (isWebpackTailwindGeneratedPrefixNode(node)) {
503
- node.remove();
504
- changed = true;
505
- continue;
506
- }
507
- removingBannerPrefix = false;
508
- }
509
- root.walkAtRules("layer", (rule) => {
510
- const names = parseWebpackCssLayerNames(rule.params);
511
- const hasGeneratedLayerName = names.some((name) => WEBPACK_TAILWIND_GENERATED_LAYER_NAMES.has(name));
512
- const isLayerDeclaration = rule.nodes === void 0;
513
- const shouldRemoveLayer = isLayerDeclaration ? hasGeneratedLayerName : names.length > 0 && names.every((name) => WEBPACK_TAILWIND_GENERATED_LAYER_NAMES.has(name));
514
- if (shouldRemoveLayer && isLayerDeclaration) {
515
- rule.remove();
516
- changed = true;
517
- return;
518
- }
519
- if (shouldRemoveLayer && !names.includes("utilities")) {
520
- for (const child of [...rule.nodes ?? []]) if (isWebpackTailwindGeneratedLayerNode(child, names)) {
521
- child.remove();
522
- changed = true;
523
- }
524
- if (rule.nodes?.length === 0) {
525
- rule.remove();
526
- changed = true;
527
- }
528
- return;
529
- }
530
- if (shouldRemoveLayer) {
531
- for (const child of [...rule.nodes ?? []]) if (isWebpackTailwindGeneratedLayerNode(child, names)) {
532
- child.remove();
533
- changed = true;
534
- }
535
- if (rule.nodes?.length === 0) {
536
- rule.remove();
537
- changed = true;
538
- }
539
- }
540
- });
541
- root.walkRules((rule) => {
542
- if (rule.parent?.type === "atrule" && rule.parent.name === "layer") return;
543
- const selector = rule.selector.trim();
544
- if (WEBPACK_TAILWIND_UTILITY_RULE_MARKER_RE.test(selector) || isWebpackTailwindGeneratedPreflightRule(rule)) {
545
- rule.remove();
546
- changed = true;
547
- }
548
- });
549
- root.walkComments((comment) => {
550
- if (WEBPACK_TAILWIND_BANNER_RE.test(comment.text)) {
551
- comment.remove();
552
- changed = true;
553
- }
554
- });
555
- root.walkAtRules((rule) => {
556
- if (rule.nodes !== void 0 && rule.nodes.length === 0) {
557
- rule.remove();
558
- changed = true;
559
- }
560
- });
561
- return changed ? root.toString() : cleaned;
562
- } catch {
563
- return cleaned;
564
- }
565
- }
566
- function isWebpackTailwindGeneratedPrefixNode(node) {
567
- if (node.type === "rule") return isWebpackTailwindGeneratedRule(node, [
568
- "theme",
569
- "base",
570
- "utilities"
571
- ], true);
572
- if (node.type !== "atrule") return false;
573
- const names = node.name === "layer" ? parseWebpackCssLayerNames(node.params) : [];
574
- if (node.name === "property" && node.params.trim().startsWith("--tw-")) return true;
575
- if (names.length > 0 && names.every((name) => WEBPACK_TAILWIND_GENERATED_LAYER_NAMES.has(name))) {
576
- if (node.nodes === void 0) return true;
577
- return node.nodes.length > 0 && node.nodes.every((child) => isWebpackTailwindGeneratedLayerNode(child, names));
578
- }
579
- if (node.nodes === void 0 || node.nodes.length === 0) return false;
580
- return node.nodes.every((child) => isWebpackTailwindGeneratedPrefixNode(child));
581
- }
582
- function isWebpackTailwindGeneratedLayerNode(node, layerNames) {
583
- if (node.type === "rule") return isWebpackTailwindGeneratedRule(node, layerNames, false);
584
- if (node.type !== "atrule") return false;
585
- if (node.name === "property" && node.params.trim().startsWith("--tw-")) return true;
586
- if (node.nodes === void 0 || node.nodes.length === 0) return false;
587
- return node.nodes.every((child) => isWebpackTailwindGeneratedLayerNode(child, layerNames));
588
- }
589
- function isWebpackTailwindGeneratedRule(rule, layerNames, includePrefix) {
590
- const selectors = rule.selectors ?? [rule.selector];
591
- if (selectors.every((selector) => isWebpackTailwindGeneratedUtilitySelector(selector.trim(), includePrefix))) return true;
592
- if (selectors.every((selector) => isWebpackTailwindGeneratedUtilitySelector(selector.trim(), true))) return true;
593
- if (layerNames.includes("theme") && isWebpackTailwindGeneratedThemeRule(rule)) return true;
594
- if (layerNames.includes("base") && isWebpackTailwindGeneratedPreflightRule(rule)) return true;
595
- return false;
596
- }
597
- function isWebpackTailwindGeneratedThemeRule(rule) {
598
- const declarations = (rule.nodes ?? []).filter((node) => node.type === "decl");
599
- return declarations.length > 0 && declarations.every((decl) => WEBPACK_TAILWIND_THEME_TOKEN_RE.test(decl.prop) || decl.value.includes("--theme("));
600
- }
601
- function isWebpackTailwindGeneratedPreflightRule(rule) {
602
- const selectors = rule.selectors ?? [rule.selector];
603
- const declarations = (rule.nodes ?? []).filter((node) => node.type === "decl");
604
- return selectors.length > 0 && declarations.length > 0 && selectors.every((selector) => {
605
- const normalized = selector.trim().replace(/\s+/g, " ");
606
- return WEBPACK_TAILWIND_PREFLIGHT_SELECTORS.has(normalized);
607
- }) && declarations.every((decl) => WEBPACK_TAILWIND_PREFLIGHT_PROPS.has(decl.prop));
608
- }
609
- function isOnlyWebpackTailwindGeneratedPreflightCss(source) {
610
- try {
611
- const nodes = _weapp_tailwindcss_postcss.postcss.parse(source).nodes ?? [];
612
- return nodes.length > 0 && nodes.every((node) => {
613
- if (node.type === "rule") return isWebpackTailwindGeneratedPreflightRule(node);
614
- return node.type === "atrule" && (node.nodes === void 0 || node.nodes.length === 0);
615
- });
616
- } catch {
617
- return false;
618
- }
619
- }
620
- function isWebpackTailwindGeneratedUtilitySelector(selector, includePrefix) {
621
- return WEBPACK_TAILWIND_UTILITY_RULE_MARKER_RE.test(selector) || includePrefix && WEBPACK_TAILWIND_UTILITY_PREFIX_RE.test(selector);
622
- }
623
- function collectWebpackCssRuleIdentityMarkers(source) {
624
- const markers = /* @__PURE__ */ new Set();
625
- try {
626
- const root = _weapp_tailwindcss_postcss.postcss.parse(source);
627
- root.walkRules((rule) => {
628
- for (const selector of rule.selectors) for (const match of selector.matchAll(/\.((?:\\.|[_a-z\u00A0-\uFFFF-])(?:\\.|[\w\u00A0-\uFFFF-])*)/gi)) markers.add(`class:${match[1]}`);
629
- });
630
- root.walkAtRules("keyframes", (rule) => {
631
- if (rule.params) markers.add(`keyframes:${rule.params}`);
632
- });
633
- } catch {}
634
- return markers;
635
- }
636
- function unescapeCssIdentifier(value) {
637
- return value.replace(/\\([0-9a-f]{1,6}\s?|.)/gi, (_match, escaped) => {
638
- const hex = escaped.trim();
639
- if (/^[0-9a-f]+$/i.test(hex)) return String.fromCodePoint(Number.parseInt(hex, 16));
640
- return escaped;
641
- });
642
- }
643
- function collectGeneratedCssRuntimeCandidates(source) {
644
- const candidates = /* @__PURE__ */ new Set();
645
- if (require_hmr_timing.hasBundlerGeneratedCssMarker(source) || !require_generator.hasTailwindGeneratedCss(source) && !require_generator.hasTailwindGeneratedCssMarkers(source)) return candidates;
646
- try {
647
- _weapp_tailwindcss_postcss.postcss.parse(source).walkRules((rule) => {
648
- for (const selector of rule.selectors) for (const match of selector.matchAll(/\.((?:\\.|[\w\u00A0-\uFFFF-])(?:\\.|[\w\u00A0-\uFFFF-])*)/g)) {
649
- const candidate = unescapeCssIdentifier(match[1]);
650
- if (isRuntimeTransformCandidate(candidate)) candidates.add(candidate);
651
- }
652
- });
653
- } catch {}
654
- return candidates;
655
- }
656
- function hasAdditionalWebpackAssetUserCssMarkers(rawSource, generatorRawSource) {
657
- const rawMarkers = collectWebpackAssetUserCssMarkers(rawSource);
658
- if (rawMarkers.size === 0) return false;
659
- const generatorMarkers = collectWebpackAssetUserCssMarkers(generatorRawSource);
660
- for (const marker of rawMarkers) if (!generatorMarkers.has(marker)) return true;
661
- return false;
662
- }
663
- function hasWebpackTailwindSourceDirectives(source) {
664
- return Boolean(source) && (require_generator.hasTailwindRootDirectives(source, { importFallback: true }) || require_generator.hasTailwindSourceDirectives(source, { importFallback: true }) || require_generator.hasTailwindApplyDirective(source) || require_generator.hasTailwindGeneratedCss(source) || require_generator.hasTailwindGeneratedCssMarkers(source));
665
- }
666
- function isWebpackTailwindImportRequest(request) {
667
- return request === "tailwindcss" || request === "tailwindcss4" || request?.startsWith("tailwindcss/") || request?.startsWith("tailwindcss4/") || request === "weapp-tailwindcss" || request?.startsWith("weapp-tailwindcss/");
668
- }
669
- function removeWebpackGeneratorNonTailwindImports(source) {
670
- if (!source?.includes("@import")) return source;
671
- try {
672
- const root = _weapp_tailwindcss_postcss.postcss.parse(source);
673
- let changed = false;
674
- root.walkAtRules("import", (rule) => {
675
- if (isWebpackTailwindImportRequest(require_generator.parseImportRequest(rule.params))) return;
676
- rule.remove();
677
- changed = true;
678
- });
679
- return changed ? root.toString() : source;
680
- } catch {
681
- return source;
682
- }
683
- }
684
- function isWebpackCssSourceRepresentedInAsset(rawSource, sourceCss) {
685
- if (!sourceCss || !hasWebpackTailwindSourceDirectives(sourceCss)) return false;
686
- const sourceMarkers = collectWebpackCssRuleIdentityMarkers(sourceCss);
687
- if (sourceMarkers.size === 0) return false;
688
- const rawMarkers = collectWebpackCssRuleIdentityMarkers(rawSource);
689
- for (const marker of sourceMarkers) if (!rawMarkers.has(marker)) return false;
690
- return true;
691
- }
692
- function createWebpackGeneratorCssSource(file, css) {
693
- if (!file || !css || !hasWebpackTailwindSourceDirectives(css)) return;
694
- return {
695
- file,
696
- base: node_path.default.dirname(file),
697
- css,
698
- dependencies: [file]
699
- };
700
- }
701
- function createWebpackUserCssSourceAppend(sources, generatorRawSource, currentSourceFile, shouldIncludeSource) {
702
- const matchedSources = [];
703
- const seen = /* @__PURE__ */ new Set();
704
- for (const source of sources) {
705
- const css = source.css;
706
- if (!css || seen.has(css)) continue;
707
- if (shouldIncludeSource && !shouldIncludeSource(source.file)) continue;
708
- seen.add(css);
709
- if ((source.processed === true || !css.includes("data:")) && hasAdditionalWebpackAssetUserCssMarkers(css, generatorRawSource)) matchedSources.push({
710
- css,
711
- file: source.file,
712
- processed: source.processed === true
713
- });
714
- }
715
- const currentFile = currentSourceFile ? node_path.default.resolve(currentSourceFile) : void 0;
716
- const parts = matchedSources.sort((a, b) => {
717
- const aCurrent = currentFile !== void 0 && node_path.default.resolve(a.file) === currentFile;
718
- if (aCurrent !== (currentFile !== void 0 && node_path.default.resolve(b.file) === currentFile)) return aCurrent ? -1 : 1;
719
- return a.file.localeCompare(b.file);
720
- }).map((source) => source.css);
721
- return parts.length > 0 ? {
722
- css: parts.join("\n"),
723
- processed: matchedSources.every((source) => source.processed)
724
- } : void 0;
725
- }
726
- function createWebpackGeneratorUserCssSourceAppend(...sources) {
727
- const parts = sources.filter((source) => source !== void 0 && source.css.trim().length > 0);
728
- if (parts.length === 0) return;
729
- let css = "";
730
- const usedParts = [];
731
- for (const source of parts) {
732
- const merged = css.trim().length > 0 ? (0, _weapp_tailwindcss_postcss.mergeCoveredCssRuleDeclarations)(css, source.css) : void 0;
733
- if (merged?.changed) css = merged.baseCss;
734
- const nextCss = css.trim().length > 0 ? (0, _weapp_tailwindcss_postcss.filterExistingCssRules)(css, merged?.css ?? source.css) : source.css;
735
- if (!(nextCss.trim().length > 0)) continue;
736
- css = require_hmr_timing.createCssSourceOrderAppend(css, nextCss);
737
- usedParts.push(source);
738
- }
739
- return {
740
- css,
741
- processed: usedParts.every((source) => source.processed)
742
- };
743
- }
744
- function resolveWebpackMemoryDebugStats(context) {
745
- if (node_process.default.env["WEAPP_TW_HMR_MEMORY_DEBUG"] !== "1") return;
746
- const memory = node_process.default.memoryUsage();
747
- const processCacheInstanceSize = context.cache.instance.size;
748
- const processCacheHashMapSize = context.cache.hashMap.size;
749
- return {
750
- phase: context.phase,
751
- process: {
752
- rssMb: toMb(memory.rss),
753
- heapTotalMb: toMb(memory.heapTotal),
754
- heapUsedMb: toMb(memory.heapUsed),
755
- externalMb: toMb(memory.external),
756
- arrayBuffersMb: toMb(memory.arrayBuffers)
757
- },
758
- assets: {
759
- active: context.activeAssetFiles,
760
- activeCss: context.activeCssFiles
761
- },
762
- processCache: {
763
- instance: processCacheInstanceSize,
764
- hashMap: processCacheHashMapSize,
765
- activeCacheKeys: context.activeProcessCacheKeys.size,
766
- activeHashKeys: context.activeProcessHashKeys.size,
767
- staleCacheKeys: Math.max(0, processCacheInstanceSize - context.activeProcessCacheKeys.size),
768
- staleHashKeys: Math.max(0, processCacheHashMapSize - context.activeProcessHashKeys.size),
769
- pruned: true,
770
- pruneSkipped: false
771
- },
772
- webpackCss: {
773
- handlerOptions: context.cssHandlerOptionsCache.size,
774
- userHandlerOptions: context.cssUserHandlerOptionsCache.size,
775
- maxHandlerOptions: WEBPACK_CSS_HANDLER_OPTIONS_CACHE_MAX
776
- },
777
- sourceCandidateScan: context.sourceCandidateScan,
778
- tailwind: { v4: require_generator.getTailwindV4IncrementalGenerateCacheStats() }
779
- };
780
- }
781
- function shouldInjectWebpackCssTracePreflight(_appType, cssHandlerOptions) {
782
- if (includesTailwindPreflightImport(cssHandlerOptions.sourceOptions?.sourceCss)) return true;
783
- return cssHandlerOptions.isMainChunk !== false;
784
- }
785
- function includesTailwindPreflightImport(source) {
786
- if (!source) return false;
787
- try {
788
- let includesPreflight = false;
789
- _weapp_tailwindcss_postcss.postcss.parse(source).walkAtRules((rule) => {
790
- if (rule.name === "tailwind") {
791
- includesPreflight || (includesPreflight = rule.params.trim() === "base");
792
- return;
793
- }
794
- if (rule.name !== "import") return;
795
- const request = require_generator.parseImportRequest(rule.params)?.replaceAll("\\", "/");
796
- includesPreflight || (includesPreflight = request === "tailwindcss" || request === "tailwindcss/preflight.css" || request?.endsWith("/tailwindcss/index.css") === true || request?.endsWith("/tailwindcss/preflight.css") === true);
797
- });
798
- return includesPreflight;
799
- } catch {
800
- return false;
801
- }
802
- }
803
- function finalizeMiniProgramUserCssAssetSource(source, compilerOptions, isWebGeneratorTarget, options = {}) {
804
- const styleOptions = require_context.resolveStyleOptionsFromContext(compilerOptions);
805
- if (isWebGeneratorTarget) return source;
806
- return (0, _weapp_tailwindcss_postcss.stripMiniProgramCssSpecificityPlaceholders)(removeTailwindV4StandaloneHostPreflightRule((0, _weapp_tailwindcss_postcss.finalizeMiniProgramCss)(require_generator.removeMiniProgramHoverSelectors(source, styleOptions.cssRemoveHoverPseudoClass), {
807
- cssPreflight: options.cssPreflight === false ? false : !require_hmr_timing.hasMiniProgramTailwindV4PreflightReset(source) ? resolveConfiguredWebpackCssPreflight(compilerOptions, styleOptions) : void 0,
808
- isTailwindcssV4: true,
809
- tailwindcssV4GradientFallback: styleOptions.tailwindcssV4GradientFallback
810
- })));
811
- }
812
- function shouldFallbackToWebpackUserCssOnGeneratorError(options) {
813
- return !require_generator.hasTailwindRootDirectives(options.generatorRawSource, { importFallback: true }) && !require_generator.hasTailwindSourceDirectives(options.generatorRawSource, { importFallback: true }) && !require_generator.hasTailwindApplyDirective(options.generatorRawSource) && !options.hasExplicitTailwindV4SourceCss && options.configuredMainCssEntryFilesLength === 0;
814
- }
168
+ //#region src/bundlers/webpack/BaseUnifiedPlugin/v5-assets/pipeline-helpers/resources.ts
815
169
  function isWindowsAbsoluteResourcePath(file) {
816
170
  return /^[a-z]:[\\/]/i.test(file) || /^[/\\]{2}[^/\\]/.test(file);
817
171
  }
@@ -868,86 +222,6 @@ function createWebpackCurrentAssetUserRawSource(options) {
868
222
  processed: options.currentAssetLooksGenerated
869
223
  };
870
224
  }
871
- function finalizeTracedWebpackCssAsset(css, cssHandlerOptions, options) {
872
- if (options.finalized === true) return options.annotateCss(css);
873
- if (options.isWebGeneratorTarget || !require_hmr_timing.isCssSourceTraceEnabled(options.compilerOptions)) return options.annotateCss(css);
874
- const finalized = finalizeMiniProgramUserCssAssetSource(css, options.compilerOptions, options.isWebGeneratorTarget, { cssPreflight: shouldInjectWebpackCssTracePreflight(options.compilerOptions.appType, cssHandlerOptions) });
875
- return options.annotateCss(finalized);
876
- }
877
- function finalizeWebpackCssAssetSource(source, compilerOptions, isWebGeneratorTarget, options = {}) {
878
- const styleOptions = require_context.resolveStyleOptionsFromContext(compilerOptions);
879
- if (isWebGeneratorTarget) {
880
- if (options.generatedCss === true) return stripTrailingLineWhitespace(require_generator.stripUnmatchedTailwindSourceMediaCloseFragments(require_generator.stripTailwindSourceMediaFragments(require_hmr_timing.stripBundlerGeneratedCssMarkers(source))));
881
- return stripTrailingLineWhitespace(require_generator.stripUnmatchedTailwindSourceMediaCloseFragments(require_generator.stripTailwindSourceMediaFragments(require_generator.removeTailwindV4GeneratorAtRules(require_generator.removeTailwindSourceDirectives(require_hmr_timing.stripBundlerGeneratedCssMarkers(source), { importFallback: true })))));
882
- }
883
- let finalized = require_generator.removeTailwindSourceDirectives(require_hmr_timing.stripBundlerGeneratedCssMarkers(source), { importFallback: true });
884
- if (options.generatedCss !== true) {
885
- finalized = (0, _weapp_tailwindcss_postcss.finalizeMiniProgramCss)(finalized, {
886
- cssPreflight: false,
887
- isTailwindcssV4: true,
888
- tailwindcssV4GradientFallback: styleOptions.tailwindcssV4GradientFallback
889
- });
890
- finalized = dedupeMiniProgramPreflightSelectorRules(finalized);
891
- return (0, _weapp_tailwindcss_postcss.stripMiniProgramCssSpecificityPlaceholders)(require_generator.removeMiniProgramHoverSelectors(finalized, styleOptions.cssRemoveHoverPseudoClass));
892
- }
893
- try {
894
- finalized = (0, _weapp_tailwindcss_postcss.pruneMiniProgramGeneratedCss)(finalized, { preservePreflight: options.cssPreflight !== false });
895
- } catch {}
896
- const shouldRemoveExistingPreflight = options.cssPreflight === false && options.preserveExistingPreflight === false;
897
- if (shouldRemoveExistingPreflight) finalized = removeMiniProgramPreflightSelectorRule(finalized);
898
- const hasExistingMiniProgramPreflight = options.preserveExistingPreflight !== false && hasMiniProgramPreflightSelector(source);
899
- finalized = (0, _weapp_tailwindcss_postcss.finalizeMiniProgramCss)(finalized, {
900
- cssPreflight: options.cssPreflight === false && !hasExistingMiniProgramPreflight ? false : !require_hmr_timing.hasMiniProgramTailwindV4PreflightReset(finalized) ? resolveExistingWebpackCssPreflight(compilerOptions, styleOptions, source) : void 0,
901
- isTailwindcssV4: true,
902
- tailwindcssV4GradientFallback: styleOptions.tailwindcssV4GradientFallback
903
- });
904
- finalized = ensureWebpackMiniProgramTwContentInit(finalized);
905
- if (shouldRemoveExistingPreflight) finalized = removeMiniProgramPreflightSelectorRule(finalized);
906
- else finalized = dedupeMiniProgramPreflightSelectorRules(finalized);
907
- return (0, _weapp_tailwindcss_postcss.stripMiniProgramCssSpecificityPlaceholders)(require_generator.removeMiniProgramHoverSelectors(finalized, styleOptions.cssRemoveHoverPseudoClass));
908
- }
909
- function finalizeWebpackCssAssetOutputSource(source, compilerOptions, isWebGeneratorTarget) {
910
- if (isWebGeneratorTarget) return source;
911
- const styleOptions = require_context.resolveStyleOptionsFromContext(compilerOptions);
912
- return (0, _weapp_tailwindcss_postcss.stripMiniProgramCssSpecificityPlaceholders)(require_generator.removeMiniProgramHoverSelectors((0, _weapp_tailwindcss_postcss.dedupeCoveredCssRules)(dedupeMiniProgramPreflightSelectorRules(source)), styleOptions.cssRemoveHoverPseudoClass));
913
- }
914
- function collectWebpackJsRuntimeCandidatesFromAssets(options) {
915
- if (options.isWebGeneratorTarget) return;
916
- const candidates = /* @__PURE__ */ new Set();
917
- for (const file of options.jsAssets) {
918
- const sourceLike = options.getAssetSource(file);
919
- if (sourceLike === void 0) continue;
920
- const source = stringifyWebpackSourceLike(sourceLike);
921
- for (const candidate of require_hmr_timing.collectStrictEscapedRuntimeCandidates(source, _weapp_core_escape.MappingChars2String, options.escapeFragments)) if (isRuntimeTransformCandidate(candidate)) candidates.add(candidate);
922
- }
923
- return candidates;
924
- }
925
- function collectWebpackJsRuntimeTokenSignature(options) {
926
- if (options.isWebGeneratorTarget) return "";
927
- const tokens = [];
928
- for (const file of options.jsAssets) {
929
- const sourceLike = options.getAssetSource(file);
930
- if (sourceLike === void 0) continue;
931
- tokens.push(...collectRuntimeTokenSignatureParts(stringifyWebpackSourceLike(sourceLike)));
932
- }
933
- return tokens.sort().join("\n");
934
- }
935
- function addRuntimeTransformCandidates(target, candidates) {
936
- if (!candidates?.size) return;
937
- for (const candidate of candidates) if (isRuntimeTransformCandidate(candidate)) target.add(candidate);
938
- }
939
- function createWebpackCssSourceTraceTokenSources(compilerOptions, webpackSourceCandidates) {
940
- if (!require_hmr_timing.isCssSourceTraceEnabled(compilerOptions) || !webpackSourceCandidates) return;
941
- return require_hmr_timing.createCssTokenSourceMap(webpackSourceCandidates.tokenSources, compilerOptions);
942
- }
943
- function stringifyOptionalWebpackSourceValue(value) {
944
- return typeof value === "string" ? value : value?.toString() ?? "";
945
- }
946
- function stringifyWebpackSourceLike(source) {
947
- if (typeof source === "string") return source;
948
- const value = source.source();
949
- return typeof value === "string" ? value : value.toString();
950
- }
951
225
  //#endregion
952
226
  //#region src/bundlers/webpack/BaseUnifiedPlugin/v5-assets/css-source-resolvers.ts
953
227
  function normalizeWebpackCssSourceRef(file) {
@@ -1011,7 +285,7 @@ function createWebpackCssSourceResolvers(options) {
1011
285
  return [...new Set(entries)];
1012
286
  })();
1013
287
  const configuredMainCssEntryFiles = configuredCssEntryFiles.slice(0, 1);
1014
- const scoreCssSourceOutputMatch = (file, sourceFile) => require_hmr_timing.scoreTailwindV4CssSourceFileMatch(file, sourceFile, {
288
+ const scoreCssSourceOutputMatch = (file, sourceFile) => require_v4_generation_core.scoreTailwindV4CssSourceFileMatch(file, sourceFile, {
1015
289
  outputRoot: outputDir,
1016
290
  projectRoot: compilerOptions.tailwindcssBasedir,
1017
291
  cwd: compilerOptions.tailwindcssBasedir
@@ -1096,9 +370,9 @@ function createWebpackCssSourceResolvers(options) {
1096
370
  return sourceFile;
1097
371
  }
1098
372
  }
1099
- const representedTailwindSourceMatches = [...cssSources.entries()].filter(([, source]) => isWebpackCssSourceRepresentedInAsset(rawSource, source.css)).map(([sourceFile]) => ({
373
+ const representedTailwindSourceMatches = [...cssSources.entries()].filter(([, source]) => require_pipeline_helpers.isWebpackCssSourceRepresentedInAsset(rawSource, source.css)).map(([sourceFile]) => ({
1100
374
  sourceFile,
1101
- score: require_hmr_timing.scoreTailwindV4CssSourceFileMatch(file, sourceFile, {
375
+ score: require_v4_generation_core.scoreTailwindV4CssSourceFileMatch(file, sourceFile, {
1102
376
  outputRoot: outputDir,
1103
377
  projectRoot: compilerOptions.tailwindcssBasedir,
1104
378
  cwd: compilerOptions.tailwindcssBasedir
@@ -1114,7 +388,7 @@ function createWebpackCssSourceResolvers(options) {
1114
388
  }
1115
389
  const pathMatches = [...cssSources.keys()].map((sourceFile) => ({
1116
390
  sourceFile,
1117
- score: require_hmr_timing.scoreTailwindV4CssSourceFileMatch(file, sourceFile, {
391
+ score: require_v4_generation_core.scoreTailwindV4CssSourceFileMatch(file, sourceFile, {
1118
392
  outputRoot: outputDir,
1119
393
  projectRoot: compilerOptions.tailwindcssBasedir,
1120
394
  cwd: compilerOptions.tailwindcssBasedir
@@ -1143,8 +417,8 @@ function createWebpackCssSourceResolvers(options) {
1143
417
  const sourceMatchedMainCssEntry = sourceFile !== void 0 && isConfiguredMainCssEntryFile(sourceFile) && isCssSourceAllowedForOutput(file, sourceFile);
1144
418
  const isMainChunk = isMainCssAsset || sourceMatchedMainCssEntry;
1145
419
  const sourceCss = sourceFile ? cssSources.get(sourceFile)?.css : void 0;
1146
- const generatorSourceCss = removeWebpackGeneratorNonTailwindImports(sourceCss);
1147
- const generatorCssSource = createWebpackGeneratorCssSource(sourceFile, generatorSourceCss);
420
+ const generatorSourceCss = require_pipeline_helpers.removeWebpackGeneratorNonTailwindImports(sourceCss);
421
+ const generatorCssSource = require_pipeline_helpers.createWebpackGeneratorCssSource(sourceFile, generatorSourceCss);
1148
422
  const cacheKey = [
1149
423
  majorVersion ?? "unknown",
1150
424
  isMainChunk ? "1" : "0",
@@ -1164,7 +438,7 @@ function createWebpackCssSourceResolvers(options) {
1164
438
  ...generatorSourceCss === void 0 ? {} : { sourceCss: generatorSourceCss },
1165
439
  ...sourceFile === void 0 ? {} : { sourceFile }
1166
440
  },
1167
- ...require_context.normalizeStyleHandlerMajorVersion(majorVersion) === void 0 ? {} : { majorVersion: 4 }
441
+ ...require_style_options.normalizeStyleHandlerMajorVersion(majorVersion) === void 0 ? {} : { majorVersion: 4 }
1168
442
  };
1169
443
  cssHandlerOptionsCache.set(cacheKey, created);
1170
444
  return created;
@@ -1173,7 +447,7 @@ function createWebpackCssSourceResolvers(options) {
1173
447
  const majorVersion = runtimeState.tailwindRuntime.majorVersion;
1174
448
  const sourceFile = resolveWebpackCssSourceFile(file);
1175
449
  const sourceCss = sourceFile ? cssSources.get(sourceFile)?.css : void 0;
1176
- const generatorSourceCss = removeWebpackGeneratorNonTailwindImports(sourceCss);
450
+ const generatorSourceCss = require_pipeline_helpers.removeWebpackGeneratorNonTailwindImports(sourceCss);
1177
451
  const cacheKey = [
1178
452
  majorVersion ?? "unknown",
1179
453
  sourceFile ?? "asset",
@@ -1202,89 +476,390 @@ function createWebpackCssSourceResolvers(options) {
1202
476
  };
1203
477
  }
1204
478
  //#endregion
1205
- //#region src/bundlers/webpack/BaseUnifiedPlugin/v5-assets/helpers.ts
1206
- function createChangedByType() {
1207
- return {
1208
- html: /* @__PURE__ */ new Set(),
1209
- js: /* @__PURE__ */ new Set(),
1210
- css: /* @__PURE__ */ new Set(),
1211
- other: /* @__PURE__ */ new Set()
1212
- };
479
+ //#region src/bundlers/webpack/BaseUnifiedPlugin/v5-assets/finalize-assets.ts
480
+ async function finalizeWebpackProcessAssets(context) {
481
+ const { activeProcessCacheKeys, activeProcessHashKeys, activeWebpackCssSourceFiles, compilerOptions, cssAssetResources, cssHandlerOptionsCache, cssTaskFactories, cssUserHandlerOptionsCache, debug, entries, groupedEntries, hmrTimingStartedAt, htmlTaskFactories, jsTaskFactories, pruneWebpackCssSources, recordTimingDetail, registeredWebpackCssSourceFiles, taskConcurrency, tasks, timingDetails, watchMode, webpackSourceCandidateScanCache } = context;
482
+ if (!watchMode) {
483
+ require_v4_generation_core.pushConcurrentTaskFactories(tasks, htmlTaskFactories, taskConcurrency);
484
+ await Promise.all(tasks);
485
+ tasks.length = 0;
486
+ require_v4_generation_core.pushConcurrentTaskFactories(tasks, jsTaskFactories, taskConcurrency);
487
+ await Promise.all(tasks);
488
+ tasks.length = 0;
489
+ require_v4_generation_core.pushConcurrentTaskFactories(tasks, cssTaskFactories, taskConcurrency);
490
+ }
491
+ const taskWaitStartedAt = performance.now();
492
+ await Promise.all(tasks);
493
+ recordTimingDetail("tasks.wait", taskWaitStartedAt);
494
+ const pruneStartedAt = performance.now();
495
+ compilerOptions.cache.prune?.({
496
+ cacheKeys: activeProcessCacheKeys,
497
+ hashKeys: activeProcessHashKeys
498
+ });
499
+ const activeCssFiles = new Set(groupedEntries.css.map(([file]) => file));
500
+ require_pipeline_helpers.pruneWebpackCssHandlerOptionCaches(cssHandlerOptionsCache, cssUserHandlerOptionsCache, activeCssFiles);
501
+ if (activeCssFiles.size > 0) pruneWebpackCssSources?.(/* @__PURE__ */ new Set([
502
+ ...registeredWebpackCssSourceFiles,
503
+ ...activeWebpackCssSourceFiles,
504
+ ...[...cssAssetResources.values()].flatMap((resources) => [...resources])
505
+ ]), { watchMode });
506
+ recordTimingDetail("cache.prune", pruneStartedAt);
507
+ debug("end");
508
+ require_hmr_timing.emitHmrTiming("webpack", "processAssets", performance.now() - hmrTimingStartedAt, {
509
+ ...timingDetails,
510
+ memoryDebug: require_pipeline_helpers.resolveWebpackMemoryDebugStats({
511
+ activeAssetFiles: entries.length,
512
+ activeCssFiles: activeCssFiles.size,
513
+ activeProcessCacheKeys,
514
+ activeProcessHashKeys,
515
+ cache: compilerOptions.cache,
516
+ cssHandlerOptionsCache,
517
+ cssUserHandlerOptionsCache,
518
+ phase: "processAssets",
519
+ sourceCandidateScan: webpackSourceCandidateScanCache.getMemoryStats()
520
+ })
521
+ });
522
+ compilerOptions.onEnd();
1213
523
  }
1214
- function createProcessFiles() {
1215
- return {
1216
- html: /* @__PURE__ */ new Set(),
1217
- js: /* @__PURE__ */ new Set(),
1218
- css: /* @__PURE__ */ new Set()
524
+ //#endregion
525
+ //#region src/bundlers/webpack/BaseUnifiedPlugin/v5-assets/generated-css-result.ts
526
+ async function finalizeWebpackGeneratedCssResult(context) {
527
+ const { ConcatSource, compilerOptions, cssHandlerOptions, currentRawSource, debug, file, finalizeCssAssetSource, finalizeTracedCss, generated, generatorRawSource, generatorRuntimeSet, isWebGeneratorTarget, runtimeState, shouldPreserveExistingPreflight, sourceCss, sourceCssProcessed, userRawSource } = context;
528
+ const finalizedGeneratedCss = generated ? finalizeCssAssetSource(isWebGeneratorTarget && currentRawSource.includes("tailwindcss v4.") ? require_pipeline_helpers.createWebpackGeneratorUserCssSourceAppend({
529
+ css: generated.css,
530
+ processed: true
531
+ }, {
532
+ css: require_pipeline_helpers.removeWebpackTailwindGeneratedAssetCss(currentRawSource),
533
+ processed: true
534
+ })?.css ?? generated.css : generated.css, {
535
+ cssPreflight: cssHandlerOptions.isMainChunk,
536
+ generatedCss: true,
537
+ preserveExistingPreflight: shouldPreserveExistingPreflight
538
+ }) : isWebGeneratorTarget ? finalizeCssAssetSource(generatorRawSource, { generatedCss: false }) : finalizeCssAssetSource((await compilerOptions.styleHandler(generatorRawSource, cssHandlerOptions)).css, { generatedCss: false });
539
+ const sourceBareUserCss = isWebGeneratorTarget ? void 0 : require_pipeline_helpers.createWebpackGeneratorUserCssSourceAppend(...[
540
+ userRawSource,
541
+ sourceCss === void 0 ? void 0 : {
542
+ css: sourceCss,
543
+ processed: sourceCssProcessed
544
+ },
545
+ {
546
+ css: generatorRawSource,
547
+ processed: false
548
+ }
549
+ ].map((source) => {
550
+ if (source === void 0) return;
551
+ return {
552
+ css: require_pipeline_helpers.collectWebpackBareSelectorUserCss(source.css),
553
+ processed: source.processed
554
+ };
555
+ }));
556
+ const handledSourceBareUserCss = sourceBareUserCss === void 0 ? "" : sourceBareUserCss.processed ? sourceBareUserCss.css : (await compilerOptions.styleHandler(sourceBareUserCss.css, cssHandlerOptions)).css;
557
+ const finalizedSourceBareUserCss = handledSourceBareUserCss.trim().length === 0 ? "" : finalizeCssAssetSource(handledSourceBareUserCss, {
558
+ cssPreflight: false,
559
+ generatedCss: false
560
+ });
561
+ const missingSourceBareUserCss = finalizedSourceBareUserCss.trim().length === 0 ? "" : (0, _weapp_tailwindcss_postcss.filterExistingCssRules)(finalizedGeneratedCss, finalizedSourceBareUserCss);
562
+ const source = new ConcatSource(finalizeTracedCss(missingSourceBareUserCss.trim().length === 0 ? finalizedGeneratedCss : require_pipeline_helpers.createWebpackGeneratorUserCssSourceAppend({
563
+ css: finalizedGeneratedCss,
564
+ processed: true
565
+ }, {
566
+ css: missingSourceBareUserCss,
567
+ processed: true
568
+ }).css, cssHandlerOptions, { finalized: true }));
569
+ if (generated) {
570
+ for (const className of generated.classSet) generatorRuntimeSet.add(className);
571
+ debug("css handle via tailwind v%s engine(%s): %s", runtimeState.tailwindRuntime.majorVersion, generated.target, file);
572
+ } else debug("css handle: %s", file);
573
+ return { result: source };
574
+ }
575
+ //#endregion
576
+ //#region src/bundlers/webpack/BaseUnifiedPlugin/v5-assets/generated-css-task.ts
577
+ async function processWebpackGeneratedCssAsset(element, context) {
578
+ const { ConcatSource, affectedCompilationScopes, assetHashByChunk, compilation, compilationChanges, compilerOptions, configuredCssEntryFiles, configuredMainCssEntryFiles, createRuntimeSetHash, cssSourceTraceSignature, cssSources, cssTaskFactories, debug, enqueueTask, finalizeCssAssetSource, finalizeTracedCss, generatedCssSources, generatorRuntimeSet, getCompilationDependencyRevision, getCssHandlerOptions, getCssUserHandlerOptions, getGeneratorRuntimeSet, hasConfiguredTailwindV4SourceRoots, isSameWebpackSourceScope, isWebGeneratorTarget, rememberProcessCacheKey, resolveWebpackCssSourceFile, runtimeAffectingSourceHash, runtimeState, transformRuntimeSet, updateAssetIfChanged, watchMode, webpackSourceCandidateValueSignature, webpackSourceCandidates } = context;
579
+ const [file, originalSource] = element;
580
+ const currentRawSource = originalSource.source().toString();
581
+ const chunkHash = assetHashByChunk.get(file);
582
+ const cacheKey = file;
583
+ const hashKey = `${file}:asset`;
584
+ rememberProcessCacheKey(cacheKey, hashKey);
585
+ const cssHandlerOptionsForHash = getCssHandlerOptions(file, currentRawSource);
586
+ const compilationScope = {
587
+ id: file,
588
+ kind: cssHandlerOptionsForHash.isMainChunk ? "global" : "component"
1219
589
  };
590
+ const scopeCompilationChanges = affectedCompilationScopes.has(compilationScope.id) ? compilationChanges : void 0;
591
+ const compilationDependencyRevision = getCompilationDependencyRevision(compilationScope.id);
592
+ const cssChunkHash = watchMode && cssHandlerOptionsForHash.isMainChunk ? void 0 : chunkHash;
593
+ const cssSourceHash = (() => {
594
+ const sourceFile = resolveWebpackCssSourceFile(file, currentRawSource);
595
+ const sourceCss = sourceFile ? cssSources.get(sourceFile)?.css : void 0;
596
+ const generatorSourceCss = require_pipeline_helpers.removeWebpackGeneratorNonTailwindImports(sourceCss);
597
+ if (sourceCss === void 0) return sourceFile === void 0 ? "webpack-css-source:0" : `webpack-css-source:0:${sourceFile}`;
598
+ return `webpack-css-source:1:${compilerOptions.cache.computeHash(sourceCss)}:${generatorSourceCss === sourceCss || generatorSourceCss === void 0 ? "generator-source:0" : compilerOptions.cache.computeHash(generatorSourceCss)}`;
599
+ })();
600
+ const runtimeAwareHash = createRuntimeAwareCssHash(cssChunkHash, compilerOptions.cache.computeHash(currentRawSource), `${createRuntimeSetHash(getGeneratorRuntimeSet())}:${runtimeAffectingSourceHash}:${webpackSourceCandidates?.signatureHash ?? "source-candidates:0"}:${webpackSourceCandidateValueSignature}:${cssSourceTraceSignature}:${cssSourceHash}:compiler-dependencies:${compilationDependencyRevision}`);
601
+ await enqueueTask(async () => {
602
+ await require_hmr_timing.processCachedTask({
603
+ cache: compilerOptions.cache,
604
+ cacheKey,
605
+ hashKey,
606
+ rawSource: currentRawSource,
607
+ hash: runtimeAwareHash,
608
+ applyResult(source, { cacheHit }) {
609
+ updateAssetIfChanged(file, source, {
610
+ compare: !cacheHit,
611
+ notifyUpdate: !cacheHit
612
+ });
613
+ },
614
+ onCacheHit() {
615
+ debug("css cache hit: %s", file);
616
+ },
617
+ transform: async () => {
618
+ await runtimeState.readyPromise;
619
+ const cssHandlerOptions = getCssHandlerOptions(file, currentRawSource);
620
+ const generatorRawSource = require_pipeline_helpers.resolveWebpackGeneratorRawSource(currentRawSource, cssHandlerOptions);
621
+ if (require_css_loader_runtime.isWebpackCssLoaderRuntimeSource(generatorRawSource)) return { result: new ConcatSource(currentRawSource) };
622
+ const sourceFile = cssHandlerOptions.sourceOptions?.sourceFile;
623
+ const sourceCss = sourceFile ? cssSources.get(node_path.default.resolve(sourceFile))?.css : void 0;
624
+ const isConfiguredCssSource = sourceFile !== void 0 && configuredCssEntryFiles.some((entry) => node_path.default.resolve(entry) === node_path.default.resolve(sourceFile));
625
+ const isConfiguredMainCssSource = sourceFile !== void 0 && configuredMainCssEntryFiles.some((entry) => node_path.default.resolve(entry) === node_path.default.resolve(sourceFile));
626
+ const sourceCssHasTailwindRoot = sourceCss !== void 0 && require_generator.hasTailwindRootDirectives(sourceCss, { importFallback: true });
627
+ const shouldPreserveExistingPreflight = cssHandlerOptions.isMainChunk || !isConfiguredMainCssSource && (isConfiguredCssSource || sourceCssHasTailwindRoot);
628
+ const loaderGeneratedCss = sourceFile ? generatedCssSources.get(node_path.default.resolve(sourceFile)) : void 0;
629
+ const shouldRegenerateExplicitTailwindV4CssSource = sourceCss !== void 0 && (require_generator.hasTailwindSourceDirectives(sourceCss, { importFallback: true }) || sourceCss.includes("@config"));
630
+ const explicitTailwindV4SourceCandidates = shouldRegenerateExplicitTailwindV4CssSource && sourceCss && sourceFile && webpackSourceCandidates?.getSourceCandidatesForEntries ? await require_options.resolveTailwindV4EntriesFromCssCached(sourceCss, node_path.default.dirname(sourceFile)).then((resolved) => resolved?.entries ? webpackSourceCandidates.getSourceCandidatesForEntries(resolved.entries) : void 0) : void 0;
631
+ if (loaderGeneratedCss && require_pipeline_helpers.shouldConsumeWebpackLoaderGeneratedCss({
632
+ allowMarkerlessRegistryMatch: configuredCssEntryFiles.length === 1,
633
+ hasBundlerGeneratedCssMarker: require_v4_generation_core.hasBundlerGeneratedCssMarker(currentRawSource),
634
+ loaderGeneratedClassSet: loaderGeneratedCss.classSet,
635
+ sourceCandidates: explicitTailwindV4SourceCandidates,
636
+ shouldRegenerateExplicitTailwindV4CssSource,
637
+ watchMode
638
+ })) {
639
+ for (const className of loaderGeneratedCss.classSet) {
640
+ generatorRuntimeSet.add(className);
641
+ transformRuntimeSet.add(className);
642
+ }
643
+ for (const dependency of loaderGeneratedCss.dependencies) compilation.fileDependencies?.add?.(dependency);
644
+ const currentRawSourceWithoutBundlerMarkers = require_v4_generation_core.stripBundlerGeneratedCssMarkers(currentRawSource);
645
+ const currentAssetHasProcessedUrl = require_pipeline_helpers.hasProcessedCssAssetUrl(currentRawSourceWithoutBundlerMarkers) && currentRawSourceWithoutBundlerMarkers !== loaderGeneratedCss.css;
646
+ const currentAssetUserCss = currentAssetHasProcessedUrl ? currentRawSourceWithoutBundlerMarkers : require_pipeline_helpers.shouldUseWebpackAssetAsGeneratorUserCss(currentRawSourceWithoutBundlerMarkers, loaderGeneratedCss.css, { processed: true }) ? require_v4_generation_core.removeGeneratedSelectorCompatCss(currentRawSourceWithoutBundlerMarkers, loaderGeneratedCss.css) : void 0;
647
+ const loaderGeneratedCssWithoutMarkers = require_v4_generation_core.stripBundlerGeneratedCssMarkers(loaderGeneratedCss.css);
648
+ const currentAssetUserCssWithoutMarkers = currentAssetUserCss === void 0 ? "" : require_v4_generation_core.stripBundlerGeneratedCssMarkers(currentAssetUserCss);
649
+ const currentAssetMissingUserCss = !(currentAssetUserCssWithoutMarkers.trim().length > 0 && !require_generator.isCommentOnlyCss(currentAssetUserCssWithoutMarkers)) ? "" : (0, _weapp_tailwindcss_postcss.filterExistingCssRules)(currentAssetUserCssWithoutMarkers, loaderGeneratedCssWithoutMarkers);
650
+ if (isConfiguredMainCssSource && !cssHandlerOptions.isMainChunk) {
651
+ debug("css skip duplicate webpack loader main generation: %s <- %s", file, sourceFile);
652
+ const userCss = currentAssetMissingUserCss.trim().length === 0 || require_generator.isCommentOnlyCss(currentAssetMissingUserCss) ? "" : finalizeCssAssetSource(currentAssetMissingUserCss, {
653
+ cssPreflight: false,
654
+ generatedCss: false
655
+ });
656
+ return { result: new ConcatSource(finalizeTracedCss(userCss, cssHandlerOptions)) };
657
+ }
658
+ const mergedLoaderCss = currentAssetUserCss === void 0 ? loaderGeneratedCss.css : require_pipeline_helpers.createWebpackGeneratorUserCssSourceAppend({
659
+ css: currentAssetUserCss === void 0 ? loaderGeneratedCss.css : currentAssetHasProcessedUrl ? require_v4_generation_core.removeGeneratedSelectorCompatCss(loaderGeneratedCss.css, currentAssetUserCss) : (0, _weapp_tailwindcss_postcss.filterExistingCssRules)(currentAssetUserCss, loaderGeneratedCss.css),
660
+ processed: true
661
+ }, currentAssetUserCss === void 0 ? void 0 : {
662
+ css: currentAssetUserCss,
663
+ processed: true
664
+ }).css;
665
+ const handledLoaderCss = isWebGeneratorTarget ? mergedLoaderCss : (await compilerOptions.styleHandler(mergedLoaderCss, cssHandlerOptions)).css;
666
+ const finalizedLoaderCss = finalizeCssAssetSource(handledLoaderCss, {
667
+ cssPreflight: cssHandlerOptions.isMainChunk,
668
+ generatedCss: true,
669
+ preserveExistingPreflight: shouldPreserveExistingPreflight
670
+ });
671
+ const loaderSourceBareUserCss = isWebGeneratorTarget ? void 0 : require_pipeline_helpers.createWebpackGeneratorUserCssSourceAppend(...[currentAssetUserCss === void 0 ? void 0 : {
672
+ css: currentAssetUserCss,
673
+ processed: true
674
+ }, sourceCss === void 0 ? void 0 : {
675
+ css: sourceCss,
676
+ processed: false
677
+ }].map((source) => {
678
+ if (source === void 0) return;
679
+ return {
680
+ css: require_pipeline_helpers.collectWebpackBareSelectorUserCss(source.css),
681
+ processed: source.processed
682
+ };
683
+ }));
684
+ const handledLoaderSourceBareUserCss = loaderSourceBareUserCss === void 0 ? "" : loaderSourceBareUserCss.processed ? loaderSourceBareUserCss.css : (await compilerOptions.styleHandler(loaderSourceBareUserCss.css, cssHandlerOptions)).css;
685
+ const finalizedLoaderSourceBareUserCss = handledLoaderSourceBareUserCss.trim().length === 0 ? "" : finalizeCssAssetSource(handledLoaderSourceBareUserCss, {
686
+ cssPreflight: false,
687
+ generatedCss: false
688
+ });
689
+ const missingLoaderSourceBareUserCss = finalizedLoaderSourceBareUserCss.trim().length === 0 ? "" : (0, _weapp_tailwindcss_postcss.filterExistingCssRules)(finalizedLoaderCss, finalizedLoaderSourceBareUserCss);
690
+ const css = finalizeTracedCss(missingLoaderSourceBareUserCss.trim().length === 0 ? finalizedLoaderCss : require_pipeline_helpers.createWebpackGeneratorUserCssSourceAppend({
691
+ css: finalizedLoaderCss,
692
+ processed: true
693
+ }, {
694
+ css: missingLoaderSourceBareUserCss,
695
+ processed: true
696
+ }).css, cssHandlerOptions, { finalized: true });
697
+ debug("css consume webpack loader generation: %s <- %s", file, sourceFile);
698
+ return { result: new ConcatSource(css) };
699
+ }
700
+ const sourceCssProcessed = sourceFile ? cssSources.get(node_path.default.resolve(sourceFile))?.processed === true : false;
701
+ const registeredUserRawSource = require_pipeline_helpers.createWebpackUserCssSourceAppend([...cssSources.entries()].map(([registeredSourceFile, source]) => ({
702
+ ...source,
703
+ file: registeredSourceFile
704
+ })), generatorRawSource, sourceFile, (registeredSourceFile) => isSameWebpackSourceScope(file, registeredSourceFile, sourceFile));
705
+ const currentAssetLooksGenerated = require_generator.hasTailwindGeneratedCss(currentRawSource) || require_generator.hasTailwindGeneratedCssMarkers(currentRawSource);
706
+ const currentAssetHasBundlerGeneratedMarker = require_v4_generation_core.hasBundlerGeneratedCssMarker(currentRawSource);
707
+ const currentAssetUserCssSource = currentAssetLooksGenerated ? require_pipeline_helpers.removeWebpackTailwindGeneratedAssetCss(currentRawSource) : currentRawSource;
708
+ if (sourceFile === void 0 && currentAssetHasBundlerGeneratedMarker && (currentAssetUserCssSource.trim().length === 0 || require_generator.isCommentOnlyCss(currentAssetUserCssSource))) return { result: new ConcatSource(finalizeTracedCss("", cssHandlerOptions)) };
709
+ const currentAssetHasAdditionalUserCss = currentAssetLooksGenerated && (require_pipeline_helpers.hasAdditionalWebpackAssetUserCssMarkers(currentAssetUserCssSource, generatorRawSource) || currentAssetUserCssSource.trim().length > 0);
710
+ const shouldPreserveGeneratedWebAssetUserCss = isWebGeneratorTarget && currentAssetLooksGenerated && !currentAssetHasBundlerGeneratedMarker && !currentAssetHasAdditionalUserCss;
711
+ const hasExplicitSourceCssForCurrentAsset = sourceCss !== void 0 && (require_generator.hasTailwindRootDirectives(sourceCss, { importFallback: true }) || require_generator.hasTailwindSourceDirectives(sourceCss, { importFallback: true }) || require_generator.hasTailwindApplyDirective(sourceCss));
712
+ const currentAssetHasUserCss = (sourceCssProcessed || hasExplicitSourceCssForCurrentAsset) && currentAssetLooksGenerated && !shouldPreserveGeneratedWebAssetUserCss ? currentAssetHasAdditionalUserCss : require_pipeline_helpers.shouldUseWebpackAssetAsGeneratorUserCss(currentAssetUserCssSource, generatorRawSource, { processed: sourceCssProcessed || shouldPreserveGeneratedWebAssetUserCss });
713
+ const userRawSource = require_pipeline_helpers.createWebpackGeneratorUserCssSourceAppend(createWebpackCurrentAssetUserRawSource({
714
+ currentAssetHasUserCss,
715
+ currentAssetLooksGenerated,
716
+ currentAssetUserCssSource,
717
+ shouldAppendCurrentAssetUserCss: shouldAppendCurrentWebpackAssetUserCss({
718
+ currentAssetHasBundlerGeneratedMarker,
719
+ currentAssetHasUserCss,
720
+ currentAssetLooksGenerated,
721
+ registeredUserRawSource,
722
+ shouldPreserveGeneratedWebAssetUserCss,
723
+ sourceCssProcessed
724
+ }),
725
+ sourceCssProcessed
726
+ }), registeredUserRawSource);
727
+ if ((0, _weapp_tailwindcss_postcss.isPureLocalCssImportWrapper)(currentRawSource)) return { result: new ConcatSource(require_generator.removeTailwindSourceDirectives(require_v4_generation_core.stripBundlerGeneratedCssMarkers(currentRawSource), { importFallback: true })) };
728
+ const fallbackGeneratorRuntimeSet = getGeneratorRuntimeSet();
729
+ const hasExplicitTailwindV4SourceCss = sourceCss !== void 0 && (require_generator.hasTailwindSourceDirectives(sourceCss, { importFallback: true }) || sourceCss.includes("@config"));
730
+ const currentAssetHasTailwindDirectives = require_generator.hasTailwindRootDirectives(generatorRawSource, { importFallback: true }) || require_generator.hasTailwindSourceDirectives(generatorRawSource, { importFallback: true }) || require_generator.hasTailwindApplyDirective(generatorRawSource);
731
+ const shouldForceTailwindV4Generation = hasConfiguredTailwindV4SourceRoots() && (configuredMainCssEntryFiles.length > 0 && sourceFile !== void 0 || currentAssetHasTailwindDirectives || hasExplicitTailwindV4SourceCss);
732
+ const shouldSkipUnmatchedMainCssGeneration = !isWebGeneratorTarget && cssHandlerOptions.isMainChunk && sourceFile === void 0 && configuredMainCssEntryFiles.length > 0 && !currentAssetHasTailwindDirectives;
733
+ const shouldSkipPlainNonMainCssGeneration = !cssHandlerOptions.isMainChunk && sourceCss !== void 0 && !hasExplicitSourceCssForCurrentAsset && !hasExplicitTailwindV4SourceCss && !currentAssetHasTailwindDirectives;
734
+ const shouldMergeFallbackGeneratorRuntime = cssHandlerOptions.isMainChunk || currentAssetHasTailwindDirectives || hasExplicitSourceCssForCurrentAsset;
735
+ const scopedFallbackGeneratorRuntimeSet = hasExplicitTailwindV4SourceCss || !shouldMergeFallbackGeneratorRuntime ? /* @__PURE__ */ new Set() : fallbackGeneratorRuntimeSet;
736
+ const resolvedScopedGeneratorRuntimeSet = await require_source_candidate_scan_signature.createScopedGeneratorRuntime({
737
+ cssHandlerOptions,
738
+ fallbackRuntime: scopedFallbackGeneratorRuntimeSet,
739
+ getSourceCandidatesForEntries: webpackSourceCandidates?.getSourceCandidatesForEntries,
740
+ majorVersion: runtimeState.tailwindRuntime.majorVersion,
741
+ outputFile: file,
742
+ rawSource: sourceFile ? cssSources.get(node_path.default.resolve(sourceFile))?.css ?? generatorRawSource : generatorRawSource,
743
+ shouldExcludeSubpackageSourceCandidates: () => false,
744
+ sourceFile: sourceFile ?? file,
745
+ scopedSourceCandidateGetter: webpackSourceCandidates?.getSourceCandidatesForEntries
746
+ });
747
+ const scopedGeneratorRuntimeSet = !hasExplicitTailwindV4SourceCss && resolvedScopedGeneratorRuntimeSet !== scopedFallbackGeneratorRuntimeSet && shouldMergeFallbackGeneratorRuntime ? /* @__PURE__ */ new Set([...fallbackGeneratorRuntimeSet, ...resolvedScopedGeneratorRuntimeSet]) : resolvedScopedGeneratorRuntimeSet;
748
+ const generatorCssSources = require_pipeline_helpers.normalizeWebpackGeneratorCssSources(cssHandlerOptions.sourceOptions?.cssSources);
749
+ const scopedGeneratorCompilerOptions = require_pipeline_helpers.scopeWebpackGeneratorOptionsToCssSource(compilerOptions, sourceFile, { disableUnmatchedCssEntries: !isWebGeneratorTarget && cssHandlerOptions.isMainChunk });
750
+ const generatorCssHandlerOptions = generatorCssSources === void 0 ? cssHandlerOptions : {
751
+ ...cssHandlerOptions,
752
+ sourceOptions: {
753
+ ...cssHandlerOptions.sourceOptions,
754
+ cssSources: generatorCssSources
755
+ }
756
+ };
757
+ const generatorOptions = {
758
+ opts: scopedGeneratorCompilerOptions,
759
+ runtimeState,
760
+ runtime: scopedGeneratorRuntimeSet,
761
+ rawSource: generatorRawSource,
762
+ forceGenerator: shouldForceTailwindV4Generation,
763
+ ...require_pipeline_helpers.hasUsableWebpackGeneratorCssSources(generatorCssSources) ? { cssSources: generatorCssSources } : {},
764
+ ...userRawSource === void 0 ? {} : { userRawSource: userRawSource.css },
765
+ ...userRawSource?.processed === true ? { userRawSourceProcessed: true } : {},
766
+ file,
767
+ cssHandlerOptions: generatorCssHandlerOptions,
768
+ cssUserHandlerOptions: getCssUserHandlerOptions(file),
769
+ compilationChanges: scopeCompilationChanges,
770
+ frameworkPostcssOwner: compilerOptions,
771
+ cssStage: "framework-processed",
772
+ getSourceCandidatesForEntries: webpackSourceCandidates?.getSourceCandidatesForEntries,
773
+ sourceCandidates: scopedGeneratorRuntimeSet,
774
+ restoreLocalCssImports: false,
775
+ scope: compilationScope,
776
+ styleHandler: compilerOptions.styleHandler,
777
+ debug
778
+ };
779
+ let generated;
780
+ if (!shouldSkipUnmatchedMainCssGeneration && !shouldSkipPlainNonMainCssGeneration) try {
781
+ generated = await require_v4_generation_core.generateTailwindV4Css({
782
+ ...generatorOptions,
783
+ outputFile: file
784
+ });
785
+ } catch (error) {
786
+ if (!require_pipeline_helpers.shouldFallbackToWebpackUserCssOnGeneratorError({
787
+ configuredMainCssEntryFilesLength: configuredMainCssEntryFiles.length,
788
+ generatorRawSource,
789
+ hasExplicitTailwindV4SourceCss
790
+ })) throw error;
791
+ debug("css generator skipped for plain webpack css asset: %s %O", file, error);
792
+ generated = void 0;
793
+ }
794
+ else debug("css generator skipped for plain webpack css asset: %s", file);
795
+ for (const dependency of generated?.dependencies ?? []) compilation.fileDependencies?.add?.(dependency);
796
+ return finalizeWebpackGeneratedCssResult({
797
+ ConcatSource,
798
+ compilerOptions,
799
+ cssHandlerOptions,
800
+ currentRawSource,
801
+ debug,
802
+ file,
803
+ finalizeCssAssetSource,
804
+ finalizeTracedCss,
805
+ generated,
806
+ generatorRawSource,
807
+ generatorRuntimeSet,
808
+ isWebGeneratorTarget,
809
+ runtimeState,
810
+ shouldPreserveExistingPreflight,
811
+ sourceCss,
812
+ sourceCssProcessed,
813
+ userRawSource
814
+ });
815
+ }
816
+ });
817
+ }, cssTaskFactories, "tasks.css");
1220
818
  }
1221
- function markProcessFile(type, file, processFiles) {
1222
- if (type === "html" || type === "js" || type === "css") processFiles[type].add(file);
819
+ //#endregion
820
+ //#region src/bundlers/webpack/BaseUnifiedPlugin/v5-assets/asset-emission-plan.ts
821
+ function applyWebpackAssetEmissionPlan(plan, options) {
822
+ for (const operation of plan.operations()) {
823
+ if (operation.kind === "delete") {
824
+ options.compilation.deleteAsset?.(operation.assetId);
825
+ continue;
826
+ }
827
+ const source = typeof operation.source === "string" ? new options.ConcatSource(operation.source) : operation.source;
828
+ if (options.writeMode !== "update" && !options.compilation.getAsset(operation.assetId)) {
829
+ if (options.compilation.emitAsset) {
830
+ options.compilation.emitAsset(operation.assetId, source);
831
+ continue;
832
+ }
833
+ }
834
+ options.compilation.updateAsset(operation.assetId, source);
835
+ }
1223
836
  }
1224
- function buildWebpackBundleSnapshot(assets, opts, state, compilation) {
1225
- const sourceHashByFile = /* @__PURE__ */ new Map();
1226
- const runtimeAffectingSignatureByFile = /* @__PURE__ */ new Map();
1227
- const runtimeAffectingHashByFile = /* @__PURE__ */ new Map();
1228
- const changedByType = createChangedByType();
1229
- const runtimeAffectingChangedByType = createChangedByType();
1230
- const processFiles = createProcessFiles();
837
+ //#endregion
838
+ //#region src/bundlers/webpack/BaseUnifiedPlugin/v5-assets/helpers.ts
839
+ function buildWebpackBundleSnapshot(assets, opts, state, compilation, options = {}) {
1231
840
  const entries = [];
1232
- const firstRun = state.iteration === 0 && state.sourceHashByFile.size === 0;
1233
841
  for (const [file, asset] of Object.entries(assets)) {
1234
- const type = require_source_candidate_scan_signature.classifyBundleEntry(file, opts);
842
+ const type = require_source_candidate_scan_signature.classifyRuntimeEntry(file, opts);
1235
843
  if (type !== "html" && type !== "js") continue;
1236
844
  const source = stringifyWebpackSource(compilation?.getAsset(file)?.source.source() ?? asset.source());
1237
- const hash = opts.cache.computeHash(source);
1238
- sourceHashByFile.set(file, hash);
1239
- const previousHash = state.sourceHashByFile.get(file);
1240
- const changed = previousHash == null || previousHash !== hash;
1241
- const previousRuntimeAffectingHash = state.runtimeAffectingHashByFile.get(file);
1242
- const runtimeAffectingHash = !changed && previousRuntimeAffectingHash != null ? previousRuntimeAffectingHash : (() => {
1243
- const runtimeAffectingSignature = require_source_candidate_scan_signature.createRuntimeAffectingSourceSignature(source, type);
1244
- runtimeAffectingSignatureByFile.set(file, runtimeAffectingSignature);
1245
- return opts.cache.computeHash(runtimeAffectingSignature);
1246
- })();
1247
- runtimeAffectingHashByFile.set(file, runtimeAffectingHash);
1248
- if (changed) changedByType[type].add(file);
1249
- if (previousRuntimeAffectingHash == null || previousRuntimeAffectingHash !== runtimeAffectingHash) runtimeAffectingChangedByType[type].add(file);
1250
- if (firstRun) markProcessFile(type, file, processFiles);
1251
- else if (type === "html") processFiles.html.add(file);
1252
- else if (changed) processFiles.js.add(file);
1253
845
  entries.push({
1254
846
  file,
1255
- output: {
1256
- fileName: file,
1257
- name: void 0,
1258
- names: [],
1259
- needsCodeReference: false,
1260
- originalFileName: null,
1261
- originalFileNames: [],
1262
- source,
1263
- type: "asset"
1264
- },
847
+ runtimeCandidate: true,
1265
848
  source,
1266
849
  type
1267
850
  });
1268
851
  }
1269
- return {
1270
- entries,
1271
- jsEntries: /* @__PURE__ */ new Map(),
1272
- sourceHashByFile,
1273
- runtimeAffectingSignatureByFile,
1274
- runtimeAffectingHashByFile,
1275
- hasOmittedKnownFiles: false,
1276
- changedByType,
1277
- runtimeAffectingChangedByType,
1278
- processFiles,
1279
- linkedImpactsByEntry: /* @__PURE__ */ new Map()
1280
- };
852
+ const currentFiles = new Set(entries.map((entry) => entry.file));
853
+ const removedFiles = new Set(options.removedFiles);
854
+ for (const file of state.sourceHashByFile.keys()) if (!currentFiles.has(file)) removedFiles.add(file);
855
+ return require_hmr_timing.buildRuntimeCompilationSnapshot(entries, state, {
856
+ computeHash: (source) => opts.cache.computeHash(source),
857
+ createRuntimeAffectingSignature: require_v4_generation_core.createRuntimeAffectingSourceSignature,
858
+ removedFiles
859
+ });
1281
860
  }
1282
861
  function releaseWebpackBundleSnapshotSources(snapshot) {
1283
- for (const entry of snapshot.entries) {
1284
- entry.source = "";
1285
- if (entry.output.type === "asset") entry.output.source = "";
1286
- else entry.output.code = "";
1287
- }
862
+ for (const entry of snapshot.entries) entry.source = "";
1288
863
  }
1289
864
  function stringifyWebpackSource(source) {
1290
865
  if (typeof source === "string") return source;
@@ -1297,8 +872,14 @@ function createWebpackAssetUpdater(options) {
1297
872
  return stringifyWebpackSource(asset.source.source());
1298
873
  };
1299
874
  const updateAssetIfChanged = (file, source, { compare = true, notifyUpdate = true } = {}) => {
875
+ const plan = new require_v4_generation_core.AssetEmissionPlan();
876
+ plan.write(file, source);
1300
877
  if (!compare) {
1301
- options.compilation.updateAsset(file, typeof source === "string" ? new options.ConcatSource(source) : source);
878
+ applyWebpackAssetEmissionPlan(plan, {
879
+ compilation: options.compilation,
880
+ ConcatSource: options.ConcatSource,
881
+ writeMode: "update"
882
+ });
1302
883
  return true;
1303
884
  }
1304
885
  const nextSource = typeof source === "string" ? source : stringifyWebpackSource(source.source());
@@ -1307,7 +888,11 @@ function createWebpackAssetUpdater(options) {
1307
888
  options.debug("asset unchanged, skip update: %s", file);
1308
889
  return false;
1309
890
  }
1310
- options.compilation.updateAsset(file, typeof source === "string" ? new options.ConcatSource(source) : source);
891
+ applyWebpackAssetEmissionPlan(plan, {
892
+ compilation: options.compilation,
893
+ ConcatSource: options.ConcatSource,
894
+ writeMode: "update"
895
+ });
1311
896
  if (notifyUpdate) options.onUpdate(file, previousSource ?? "", nextSource);
1312
897
  return true;
1313
898
  };
@@ -1317,6 +902,114 @@ function createWebpackAssetUpdater(options) {
1317
902
  };
1318
903
  }
1319
904
  //#endregion
905
+ //#region src/bundlers/webpack/BaseUnifiedPlugin/v5-assets/html-js-tasks.ts
906
+ async function enqueueWebpackHtmlAndJsTasks(context) {
907
+ const { ConcatSource, applyWebpackLinkedJsResults, assetHashByChunk, compilation, compilerOptions, debug, defaultTemplateHandlerOptions, enqueueTask, groupedEntries, isWebGeneratorTarget, jsAssets, moduleGraphOptions, outputDir, rememberProcessCacheKey, rememberTransformedRuntimeCandidates, runtimeState, transformRuntimeSet, updateAssetIfChanged, watchMode } = context;
908
+ const htmlTaskFactories = [];
909
+ if (!isWebGeneratorTarget && Array.isArray(groupedEntries.html)) for (const element of groupedEntries.html) {
910
+ const [file, originalSource] = element;
911
+ let rawSource;
912
+ const readRawSource = () => {
913
+ rawSource ?? (rawSource = originalSource.source().toString());
914
+ return rawSource;
915
+ };
916
+ const cacheKey = file;
917
+ const hashKey = `${file}:asset`;
918
+ rememberProcessCacheKey(cacheKey, hashKey);
919
+ const chunkHash = assetHashByChunk.get(file);
920
+ await enqueueTask(async () => {
921
+ await require_hmr_timing.processCachedTask({
922
+ cache: compilerOptions.cache,
923
+ cacheKey,
924
+ hashKey,
925
+ rawSource: chunkHash === void 0 ? readRawSource() : void 0,
926
+ hash: chunkHash,
927
+ applyResult(source, { cacheHit }) {
928
+ updateAssetIfChanged(file, source, {
929
+ compare: !cacheHit,
930
+ notifyUpdate: !cacheHit
931
+ });
932
+ },
933
+ onCacheHit() {
934
+ debug("html cache hit: %s", file);
935
+ },
936
+ transform: async () => {
937
+ const wxml = await compilerOptions.templateHandler(readRawSource(), defaultTemplateHandlerOptions);
938
+ const source = new ConcatSource(wxml);
939
+ debug("html handle: %s", file);
940
+ return { result: source };
941
+ }
942
+ });
943
+ }, htmlTaskFactories, "tasks.html");
944
+ }
945
+ const jsTaskFactories = [];
946
+ const enqueueJsTask = async (factory) => {
947
+ await enqueueTask(factory, jsTaskFactories, "tasks.js");
948
+ };
949
+ if (!isWebGeneratorTarget && Array.isArray(groupedEntries.js)) for (const [file] of groupedEntries.js) {
950
+ const cacheKey = getCacheKey(file);
951
+ const asset = compilation.getAsset(file);
952
+ if (!asset) continue;
953
+ const hashKey = `${file}:asset`;
954
+ rememberProcessCacheKey(cacheKey, hashKey);
955
+ const absoluteFile = require_source_candidate_scan_signature.toAbsoluteOutputPath(file, outputDir);
956
+ const initialSource = asset.source.source();
957
+ const initialRawSource = typeof initialSource === "string" ? initialSource : initialSource.toString();
958
+ const chunkHash = assetHashByChunk.get(file);
959
+ const outputModuleGraphOptions = chunkHash === void 0 ? moduleGraphOptions : void 0;
960
+ await enqueueJsTask(async () => {
961
+ await require_hmr_timing.processCachedTask({
962
+ cache: compilerOptions.cache,
963
+ cacheKey,
964
+ hashKey,
965
+ rawSource: chunkHash === void 0 ? initialRawSource : void 0,
966
+ hash: chunkHash,
967
+ applyResult(source, { cacheHit }) {
968
+ if (updateAssetIfChanged(file, source, {
969
+ compare: !cacheHit,
970
+ notifyUpdate: !cacheHit
971
+ })) rememberTransformedRuntimeCandidates(source);
972
+ },
973
+ onCacheHit() {
974
+ debug("js cache hit: %s", file);
975
+ },
976
+ transform: async () => {
977
+ const currentSourceValue = compilation.getAsset(file)?.source.source();
978
+ const currentSource = require_pipeline_helpers.stringifyOptionalWebpackSourceValue(currentSourceValue);
979
+ const handlerOptions = {
980
+ tailwindcssMajorVersion: runtimeState.tailwindRuntime.majorVersion,
981
+ generateMap: false,
982
+ experimentalJsFastPath: compilerOptions.experimentalJsFastPath ?? (watchMode ? "oxc" : false),
983
+ filename: absoluteFile,
984
+ moduleGraph: outputModuleGraphOptions,
985
+ babelParserOptions: { sourceFilename: absoluteFile }
986
+ };
987
+ if (require_context.shouldSkipJsTransform(currentSource, {
988
+ ...handlerOptions,
989
+ classNameSet: transformRuntimeSet
990
+ })) return { result: new ConcatSource(currentSource) };
991
+ const { code, linked } = await compilerOptions.jsHandler(currentSource, transformRuntimeSet, handlerOptions);
992
+ const source = new ConcatSource(code);
993
+ debug("js handle: %s", file);
994
+ applyWebpackLinkedJsResults({
995
+ ConcatSource,
996
+ compilation,
997
+ compilerOptions,
998
+ debug,
999
+ jsAssets,
1000
+ linked
1001
+ });
1002
+ return { result: source };
1003
+ }
1004
+ });
1005
+ });
1006
+ }
1007
+ return {
1008
+ htmlTaskFactories,
1009
+ jsTaskFactories
1010
+ };
1011
+ }
1012
+ //#endregion
1320
1013
  //#region src/bundlers/webpack/BaseUnifiedPlugin/v5-assets/js-module-graph.ts
1321
1014
  function createWebpackJsAssetModuleGraph(options) {
1322
1015
  const jsAssets = /* @__PURE__ */ new Map();
@@ -1346,6 +1039,8 @@ function createWebpackJsAssetModuleGraph(options) {
1346
1039
  }
1347
1040
  function applyWebpackLinkedJsResults(options) {
1348
1041
  if (!options.linked) return;
1042
+ const plan = new require_v4_generation_core.AssetEmissionPlan();
1043
+ const updates = [];
1349
1044
  for (const [id, { code }] of Object.entries(options.linked)) {
1350
1045
  const assetName = options.jsAssets.get(id);
1351
1046
  if (!assetName) continue;
@@ -1354,13 +1049,163 @@ function applyWebpackLinkedJsResults(options) {
1354
1049
  const previousSource = asset.source.source();
1355
1050
  const previous = previousSource == null ? "" : String(previousSource);
1356
1051
  if (previous === code) continue;
1357
- const source = new options.ConcatSource(code);
1358
- options.compilation.updateAsset(assetName, source);
1052
+ plan.write(assetName, code);
1053
+ updates.push({
1054
+ assetName,
1055
+ code,
1056
+ previous
1057
+ });
1058
+ }
1059
+ if (updates.length === 0) return;
1060
+ applyWebpackAssetEmissionPlan(plan, {
1061
+ compilation: options.compilation,
1062
+ ConcatSource: options.ConcatSource,
1063
+ writeMode: "update"
1064
+ });
1065
+ for (const { assetName, code, previous } of updates) {
1359
1066
  options.compilerOptions.onUpdate(assetName, previous, code);
1360
1067
  options.debug("js linked handle: %s", assetName);
1361
1068
  }
1362
1069
  }
1363
1070
  //#endregion
1071
+ //#region src/bundlers/webpack/BaseUnifiedPlugin/v5-assets/processed-css-task.ts
1072
+ async function processWebpackProcessedCssAsset(element, context) {
1073
+ const { ConcatSource, assetHashByChunk, compilerOptions, configuredMainCssEntryFiles, createRuntimeSetHash, cssSourceTraceSignature, cssSources, cssTaskFactories, debug, enqueueTask, finalizeCssAssetSource, finalizeTracedCss, generatedCssSources, getCssHandlerOptions, getGeneratorRuntimeSet, hasConfiguredTailwindV4SourceRoots, isKnownWebpackProcessedCssAsset, isWebGeneratorTarget, isWebpackProcessedCssAsset, processedCssAssetSkipDecisionCache, rememberProcessCacheKey, runtimeAffectingSourceHash, updateAssetIfChanged, watchMode, webpackSourceCandidateSet, webpackSourceCandidateValueSignature, webpackSourceCandidates } = context;
1074
+ const [file, originalSource] = element;
1075
+ let rawSource;
1076
+ const readRawSource = () => {
1077
+ rawSource ?? (rawSource = originalSource.source().toString());
1078
+ return rawSource;
1079
+ };
1080
+ const chunkHash = assetHashByChunk.get(file);
1081
+ const cssHandlerOptionsForProcessedAsset = getCssHandlerOptions(file, readRawSource());
1082
+ const processedCssAssetMetadata = { isMainCssChunk: cssHandlerOptionsForProcessedAsset.isMainChunk };
1083
+ const processedSourceFile = cssHandlerOptionsForProcessedAsset.sourceOptions?.sourceFile;
1084
+ const processedSourceCss = processedSourceFile ? cssSources.get(node_path.default.resolve(processedSourceFile))?.css : void 0;
1085
+ const shouldRegenerateProcessedTailwindV4SourceCss = processedSourceCss !== void 0 && (require_generator.hasTailwindSourceDirectives(processedSourceCss, { importFallback: true }) || processedSourceCss.includes("@config"));
1086
+ const processedCssAssetKnown = isKnownWebpackProcessedCssAsset?.(file, processedCssAssetMetadata) === true;
1087
+ const processedLoaderGeneratedCss = processedSourceFile ? generatedCssSources.get(node_path.default.resolve(processedSourceFile)) : void 0;
1088
+ const processedAssetSourceHash = watchMode && isWebGeneratorTarget && cssHandlerOptionsForProcessedAsset.isMainChunk ? compilerOptions.cache.computeHash(readRawSource()) : chunkHash === void 0 ? processedCssAssetKnown ? "webpack-css-asset:known" : compilerOptions.cache.computeHash(readRawSource()) : "webpack-css-asset:chunk";
1089
+ const processedCssDecisionCacheKey = `${file}:${createRuntimeAwareCssHash(chunkHash, processedAssetSourceHash, `${createRuntimeSetHash(getGeneratorRuntimeSet())}:${runtimeAffectingSourceHash}:${webpackSourceCandidates?.signatureHash ?? "source-candidates:0"}:${webpackSourceCandidateValueSignature}:${cssSourceTraceSignature}`)}`;
1090
+ let currentProcessedRawSource;
1091
+ let hasGeneratedCssMarker = false;
1092
+ let hasTailwindGeneratedAssetCss = false;
1093
+ const readCurrentProcessedRawSource = () => {
1094
+ currentProcessedRawSource ?? (currentProcessedRawSource = readRawSource());
1095
+ return currentProcessedRawSource;
1096
+ };
1097
+ const cachedSkipProcessedCssAsset = processedCssAssetKnown ? processedCssAssetSkipDecisionCache.get(processedCssDecisionCacheKey) : void 0;
1098
+ const shouldRegenerateStaleProcessedWebCssAsset = isWebGeneratorTarget && !processedCssAssetKnown && cachedSkipProcessedCssAsset === void 0 && cssHandlerOptionsForProcessedAsset.isMainChunk && webpackSourceCandidateSet !== void 0 && (require_pipeline_helpers.hasMissingRuntimeCandidates(processedLoaderGeneratedCss?.classSet, webpackSourceCandidateSet) || require_pipeline_helpers.hasMissingRuntimeCandidates(require_pipeline_helpers.resolveGeneratedCssRuntimeCandidates(readCurrentProcessedRawSource(), processedLoaderGeneratedCss?.classSet), webpackSourceCandidateSet));
1099
+ if (cachedSkipProcessedCssAsset !== void 0) {
1100
+ hasGeneratedCssMarker = cachedSkipProcessedCssAsset && cssHandlerOptionsForProcessedAsset.isMainChunk;
1101
+ hasTailwindGeneratedAssetCss = hasGeneratedCssMarker;
1102
+ } else {
1103
+ const source = readCurrentProcessedRawSource();
1104
+ hasGeneratedCssMarker = require_v4_generation_core.hasBundlerGeneratedCssMarker(source);
1105
+ hasTailwindGeneratedAssetCss = require_generator.hasTailwindGeneratedCss(source) || require_generator.hasTailwindGeneratedCssMarkers(source);
1106
+ }
1107
+ const hasProcessedAssetTailwindDirectives = () => {
1108
+ const source = readCurrentProcessedRawSource();
1109
+ return require_generator.hasTailwindRootDirectives(source, { importFallback: true }) || require_generator.hasTailwindSourceDirectives(source, { importFallback: true }) || require_generator.hasTailwindApplyDirective(source);
1110
+ };
1111
+ const shouldForceConfiguredMainCssGeneration = cssHandlerOptionsForProcessedAsset.isMainChunk && hasConfiguredTailwindV4SourceRoots() && !hasGeneratedCssMarker && (configuredMainCssEntryFiles.length > 0 || shouldRegenerateProcessedTailwindV4SourceCss || hasProcessedAssetTailwindDirectives());
1112
+ const hasProcessedMainAssetUserCss = cachedSkipProcessedCssAsset === void 0 && cssHandlerOptionsForProcessedAsset.isMainChunk && (hasGeneratedCssMarker || hasTailwindGeneratedAssetCss) && require_pipeline_helpers.createWebpackUserCssSourceAppend([...cssSources.entries()].map(([sourceFile, source]) => ({
1113
+ ...source,
1114
+ file: sourceFile
1115
+ })), readCurrentProcessedRawSource()) !== void 0;
1116
+ const hasProcessedLoaderGeneratedUserCss = cachedSkipProcessedCssAsset === void 0 && processedLoaderGeneratedCss !== void 0 && require_pipeline_helpers.hasAdditionalWebpackAssetUserCssMarkers(processedLoaderGeneratedCss.css, readCurrentProcessedRawSource());
1117
+ const shouldFinalizeProcessedWebCssAsset = isWebGeneratorTarget && !shouldForceConfiguredMainCssGeneration && !shouldRegenerateProcessedTailwindV4SourceCss && require_generator.hasTailwindSourceDirectives(readCurrentProcessedRawSource(), { importFallback: true });
1118
+ const shouldPreserveFinalWebCssAsset = isWebGeneratorTarget && processedSourceFile === void 0 && !shouldForceConfiguredMainCssGeneration && (hasGeneratedCssMarker || hasTailwindGeneratedAssetCss);
1119
+ const shouldSkipKnownProcessedCssAsset = !shouldForceConfiguredMainCssGeneration && !shouldRegenerateProcessedTailwindV4SourceCss && !shouldRegenerateStaleProcessedWebCssAsset && (processedCssAssetKnown || isWebpackProcessedCssAsset?.(file, readCurrentProcessedRawSource(), processedCssAssetMetadata)) && !hasProcessedMainAssetUserCss && !hasProcessedLoaderGeneratedUserCss && (!cssHandlerOptionsForProcessedAsset.isMainChunk || hasGeneratedCssMarker || hasTailwindGeneratedAssetCss);
1120
+ const shouldSkipProcessedCssAsset = cachedSkipProcessedCssAsset ?? (shouldFinalizeProcessedWebCssAsset || shouldPreserveFinalWebCssAsset || shouldSkipKnownProcessedCssAsset);
1121
+ if (processedCssAssetKnown && cachedSkipProcessedCssAsset === void 0 && !shouldFinalizeProcessedWebCssAsset && !shouldPreserveFinalWebCssAsset) processedCssAssetSkipDecisionCache.set(processedCssDecisionCacheKey, shouldSkipProcessedCssAsset === true);
1122
+ if (shouldSkipProcessedCssAsset) {
1123
+ const hashKey = `${file}:asset`;
1124
+ const sourceHash = processedAssetSourceHash;
1125
+ rememberProcessCacheKey(file, hashKey);
1126
+ await enqueueTask(async () => {
1127
+ await require_hmr_timing.processCachedTask({
1128
+ cache: compilerOptions.cache,
1129
+ cacheKey: file,
1130
+ hashKey,
1131
+ rawSource: chunkHash === void 0 && !processedCssAssetKnown ? readCurrentProcessedRawSource() : void 0,
1132
+ hash: createRuntimeAwareCssHash(chunkHash, sourceHash, `${createRuntimeSetHash(getGeneratorRuntimeSet())}:${runtimeAffectingSourceHash}:${webpackSourceCandidates?.signatureHash ?? "source-candidates:0"}:${webpackSourceCandidateValueSignature}:${cssSourceTraceSignature}`),
1133
+ applyResult(source, { cacheHit }) {
1134
+ updateAssetIfChanged(file, source, {
1135
+ compare: !cacheHit,
1136
+ notifyUpdate: !cacheHit
1137
+ });
1138
+ },
1139
+ onCacheHit() {
1140
+ debug("css webpack-loader-pipeline cache hit: %s", file);
1141
+ },
1142
+ transform: async () => {
1143
+ const source = readCurrentProcessedRawSource();
1144
+ const missingProcessedLoaderGeneratedCss = isWebGeneratorTarget && processedLoaderGeneratedCss ? (0, _weapp_tailwindcss_postcss.filterExistingCssRules)(source, require_v4_generation_core.stripBundlerGeneratedCssMarkers(processedLoaderGeneratedCss.css)) : "";
1145
+ const sourceWithLoaderGeneratedCss = missingProcessedLoaderGeneratedCss.trim().length === 0 ? source : require_pipeline_helpers.createWebpackGeneratorUserCssSourceAppend({
1146
+ css: source,
1147
+ processed: true
1148
+ }, {
1149
+ css: missingProcessedLoaderGeneratedCss,
1150
+ processed: true
1151
+ }).css;
1152
+ const processedBareSelectorSourceCss = processedSourceCss ?? (hasTailwindGeneratedAssetCss ? require_pipeline_helpers.removeWebpackTailwindGeneratedAssetCss(sourceWithLoaderGeneratedCss) : void 0);
1153
+ const handledCss = hasTailwindGeneratedAssetCss && (!hasGeneratedCssMarker || !isWebGeneratorTarget && require_pipeline_helpers.hasDeferredWebpackGeneratedCss(source, [...generatedCssSources.values()].map((item) => item.classSet))) ? isWebGeneratorTarget ? sourceWithLoaderGeneratedCss : (await compilerOptions.styleHandler(sourceWithLoaderGeneratedCss, cssHandlerOptionsForProcessedAsset)).css : sourceWithLoaderGeneratedCss;
1154
+ const nextCss = require_pipeline_helpers.stripTrailingLineWhitespace(finalizeCssAssetSource(handledCss, {
1155
+ cssPreflight: cssHandlerOptionsForProcessedAsset.isMainChunk,
1156
+ generatedCss: hasGeneratedCssMarker || hasTailwindGeneratedAssetCss
1157
+ }));
1158
+ const processedSourceBareUserCss = isWebGeneratorTarget || processedBareSelectorSourceCss === void 0 ? void 0 : require_pipeline_helpers.createWebpackGeneratorUserCssSourceAppend({
1159
+ css: require_pipeline_helpers.collectWebpackBareSelectorUserCss(processedBareSelectorSourceCss),
1160
+ processed: false
1161
+ });
1162
+ const finalizedProcessedSourceBareUserCss = processedSourceBareUserCss === void 0 ? "" : finalizeCssAssetSource(processedSourceBareUserCss.css, {
1163
+ cssPreflight: false,
1164
+ generatedCss: false
1165
+ });
1166
+ const missingProcessedSourceBareUserCss = finalizedProcessedSourceBareUserCss.trim().length === 0 ? "" : (0, _weapp_tailwindcss_postcss.filterExistingCssRules)(nextCss, finalizedProcessedSourceBareUserCss);
1167
+ const css = missingProcessedSourceBareUserCss.trim().length === 0 ? nextCss : require_pipeline_helpers.createWebpackGeneratorUserCssSourceAppend({
1168
+ css: nextCss,
1169
+ processed: true
1170
+ }, {
1171
+ css: missingProcessedSourceBareUserCss,
1172
+ processed: true
1173
+ }).css;
1174
+ debug("css skip webpack-loader-pipeline asset: %s", file);
1175
+ return { result: new ConcatSource(finalizeTracedCss(css, cssHandlerOptionsForProcessedAsset, { finalized: true })) };
1176
+ }
1177
+ });
1178
+ }, cssTaskFactories, "tasks.css");
1179
+ return true;
1180
+ }
1181
+ const currentRawSource = readRawSource();
1182
+ if (require_css_loader_runtime.isWebpackCssLoaderRuntimeSource(currentRawSource)) {
1183
+ const hashKey = `${file}:asset`;
1184
+ rememberProcessCacheKey(file, hashKey);
1185
+ await enqueueTask(async () => {
1186
+ await require_hmr_timing.processCachedTask({
1187
+ cache: compilerOptions.cache,
1188
+ cacheKey: file,
1189
+ hashKey,
1190
+ rawSource: currentRawSource,
1191
+ hash: createRuntimeAwareCssHash(chunkHash, compilerOptions.cache.computeHash(currentRawSource), "webpack-css-loader-runtime"),
1192
+ applyResult(source, { cacheHit }) {
1193
+ updateAssetIfChanged(file, source, {
1194
+ compare: !cacheHit,
1195
+ notifyUpdate: !cacheHit
1196
+ });
1197
+ },
1198
+ onCacheHit() {
1199
+ debug("css-loader runtime cache hit: %s", file);
1200
+ },
1201
+ transform: async () => ({ result: new ConcatSource(currentRawSource) })
1202
+ });
1203
+ }, cssTaskFactories, "tasks.css");
1204
+ return true;
1205
+ }
1206
+ return false;
1207
+ }
1208
+ //#endregion
1364
1209
  //#region src/bundlers/webpack/BaseUnifiedPlugin/v5-assets/source-candidate-cache.ts
1365
1210
  const WEBPACK_SOURCE_CANDIDATE_SCAN_CACHE_MAX = 2;
1366
1211
  function trimScanCache(cache) {
@@ -1443,10 +1288,10 @@ function isSameFileMeta(left, right) {
1443
1288
  async function resolveScanFiles(roots, outDir) {
1444
1289
  const files = /* @__PURE__ */ new Set();
1445
1290
  await Promise.all(roots.map(async (root) => {
1446
- const rootFiles = await require_hmr_timing.resolveSourceCandidateScanFiles({
1291
+ const rootFiles = await require_v4_generation_core.resolveSourceCandidateScanFiles({
1447
1292
  entries: root.entries,
1448
1293
  explicit: root.explicit,
1449
- filter: require_hmr_timing.isSourceCandidateRequest,
1294
+ filter: require_v4_generation_core.isSourceCandidateRequest,
1450
1295
  outDir,
1451
1296
  root: root.root
1452
1297
  });
@@ -1538,7 +1383,7 @@ async function refreshWebpackSourceCandidates(options) {
1538
1383
  const root = options.compilerOptions.tailwindcssBasedir ?? node_process.default.cwd();
1539
1384
  let sourceScan;
1540
1385
  try {
1541
- sourceScan = await require_tailwindcss.resolveViteSourceScanEntries(options.compilerOptions, options.runtimeState.tailwindRuntime, {
1386
+ sourceScan = await require_options.resolveSourceScanEntries(options.compilerOptions, options.runtimeState.tailwindRuntime, {
1542
1387
  root,
1543
1388
  outDir: options.outputDir
1544
1389
  });
@@ -1549,7 +1394,7 @@ async function refreshWebpackSourceCandidates(options) {
1549
1394
  if (!sourceScan || !sourceScan.explicit && !sourceScan.entries?.length && !sourceScan.inlineCandidates) return;
1550
1395
  return options.scanCache.resolve({
1551
1396
  changedFiles: options.watchChangedFiles,
1552
- collector: require_hmr_timing.createSourceCandidateStore({
1397
+ collector: require_v4_generation_core.createSourceCandidateStore({
1553
1398
  bareArbitraryValues: options.compilerOptions.arbitraryValues?.bareArbitraryValues,
1554
1399
  customAttributesEntities: options.compilerOptions.customAttributesEntities,
1555
1400
  disabledDefaultTemplateHandler: options.compilerOptions.disabledDefaultTemplateHandler
@@ -1575,11 +1420,10 @@ function setupWebpackV5ProcessAssetsHook(options) {
1575
1420
  const cssHandlerOptionsCache = /* @__PURE__ */ new Map();
1576
1421
  const cssUserHandlerOptionsCache = /* @__PURE__ */ new Map();
1577
1422
  const webpackSourceCandidateScanCache = createWebpackSourceCandidateScanCache();
1578
- const bundleBuildState = require_source_candidate_scan_signature.createBundleBuildState();
1579
- const bundleRuntimeClassSetManager = runtimeClassSetManager ?? require_hmr_timing.createBundleRuntimeClassSetManager();
1580
- const escapeFragments = require_hmr_timing.createEscapeFragments(_weapp_core_escape.MappingChars2String);
1423
+ const bundleBuildState = require_hmr_timing.createRuntimeCompilationBuildState();
1424
+ const bundleRuntimeClassSetManager = runtimeClassSetManager ?? require_hmr_timing.createRuntimeClassSetManager();
1425
+ const escapeFragments = require_v4_generation_core.createEscapeFragments(_weapp_core_escape.MappingChars2String);
1581
1426
  const processedCssAssetSkipDecisionCache = /* @__PURE__ */ new Map();
1582
- let webpackWatchRuntimeScanInitialized = false;
1583
1427
  compiler.hooks.compilation.tap(require_context.pluginName, (compilation) => {
1584
1428
  compilation.hooks.processAssets.tapPromise({
1585
1429
  name: require_context.pluginName,
@@ -1589,10 +1433,16 @@ function setupWebpackV5ProcessAssetsHook(options) {
1589
1433
  if (entries.length === 0) return;
1590
1434
  const groupedEntries = require_utils.getGroupedEntries(entries, compilerOptions);
1591
1435
  if (isWebGeneratorTarget && groupedEntries.css.length === 0) return;
1436
+ require_v4_generation_core.beginCompilerShadowRun(runtimeState);
1592
1437
  compilerOptions.onStart();
1593
1438
  debug("start");
1594
1439
  await runtimeState.readyPromise;
1595
1440
  const hmrTimingStartedAt = performance.now();
1441
+ const timingDetails = {};
1442
+ const recordTimingDetail = (name, startedAt) => {
1443
+ timingDetails[name] = (timingDetails[name] ?? 0) + Math.max(0, performance.now() - startedAt);
1444
+ };
1445
+ const setupStartedAt = performance.now();
1596
1446
  for (const chunk of compilation.chunks) if (chunk.id && chunk.hash) compilerOptions.cache.calcHashValueChanged(chunk.id, chunk.hash);
1597
1447
  const assetHashByChunk = createAssetHashByChunkMap(compilation.chunks);
1598
1448
  const { updateAssetIfChanged } = createWebpackAssetUpdater({
@@ -1619,7 +1469,10 @@ function setupWebpackV5ProcessAssetsHook(options) {
1619
1469
  cssMatcher: compilerOptions.cssMatcher
1620
1470
  }));
1621
1471
  const watchChangedFiles = new Set([...getWatchChangedFiles?.() ?? []].map((file) => node_path.default.resolve(file)));
1622
- const taskConcurrency = watchMode ? require_hmr_timing.resolveTaskConcurrency(1) : void 0;
1472
+ const compilationChanges = require_v4_generation_core.createCompilationDependencyChanges(watchChangedFiles);
1473
+ const affectedCompilationScopes = require_v4_generation_core.recordCompilationDependencyChanges(runtimeState, compilationChanges);
1474
+ const getCompilationDependencyRevision = (scopeId) => require_v4_generation_core.getCompilationScopeDependencyRevision(runtimeState, scopeId);
1475
+ const taskConcurrency = watchMode ? require_v4_generation_core.resolveTaskConcurrency(1) : void 0;
1623
1476
  const activeProcessCacheKeys = /* @__PURE__ */ new Set();
1624
1477
  const activeProcessHashKeys = /* @__PURE__ */ new Set();
1625
1478
  const rememberProcessCacheKey = (cacheKey, hashKey = cacheKey) => {
@@ -1648,8 +1501,11 @@ function setupWebpackV5ProcessAssetsHook(options) {
1648
1501
  outputDir,
1649
1502
  runtimeState
1650
1503
  });
1651
- const finalizeCssAssetSource = (source, options = {}) => finalizeWebpackCssAssetSource(source, compilerOptions, isWebGeneratorTarget, options);
1652
- const webpackSourceCandidates = !isWebGeneratorTarget && groupedEntries.css.length > 0 || cssSources.size > 0 || generatedCssSources.size > 0 || require_hmr_timing.isCssSourceTraceEnabled(compilerOptions) ? await refreshWebpackSourceCandidates({
1504
+ const finalizeCssAssetSource = (source, options = {}) => require_pipeline_helpers.finalizeWebpackCssAssetSource(source, compilerOptions, isWebGeneratorTarget, options);
1505
+ const shouldRefreshWebpackSourceCandidates = !isWebGeneratorTarget && groupedEntries.css.length > 0 || cssSources.size > 0 || generatedCssSources.size > 0 || require_v4_generation_core.isCssSourceTraceEnabled(compilerOptions);
1506
+ recordTimingDetail("setup", setupStartedAt);
1507
+ const sourceCandidatesStartedAt = performance.now();
1508
+ const webpackSourceCandidates = shouldRefreshWebpackSourceCandidates ? await refreshWebpackSourceCandidates({
1653
1509
  compilerOptions,
1654
1510
  debug,
1655
1511
  outputDir,
@@ -1659,29 +1515,31 @@ function setupWebpackV5ProcessAssetsHook(options) {
1659
1515
  watchMode
1660
1516
  }) : void 0;
1661
1517
  const webpackSourceCandidateValueSignature = webpackSourceCandidates ? require_source_candidate_scan_signature.createCandidateSignature(webpackSourceCandidates.getSourceCandidatesForEntries(void 0)) : "source-candidates:0";
1662
- const cssSourceTraceTokenSources = createWebpackCssSourceTraceTokenSources(compilerOptions, webpackSourceCandidates);
1663
- const cssSourceTraceSignature = require_hmr_timing.createCssSourceTraceCacheSignature(cssSourceTraceTokenSources, compilerOptions);
1664
- const annotateCss = (css) => require_hmr_timing.annotateCssSourceTrace(css, {
1518
+ recordTimingDetail("sourceCandidates", sourceCandidatesStartedAt);
1519
+ const cssSourceTraceTokenSources = require_pipeline_helpers.createWebpackCssSourceTraceTokenSources(compilerOptions, webpackSourceCandidates);
1520
+ const cssSourceTraceSignature = require_v4_generation_core.createCssSourceTraceCacheSignature(cssSourceTraceTokenSources, compilerOptions);
1521
+ const annotateCss = (css) => require_v4_generation_core.annotateCssSourceTrace(css, {
1665
1522
  opts: compilerOptions,
1666
1523
  tokenSources: cssSourceTraceTokenSources
1667
1524
  });
1668
- const finalizeTracedCss = (css, cssHandlerOptions, options = {}) => finalizeTracedWebpackCssAsset(css, cssHandlerOptions, {
1525
+ const finalizeTracedCss = (css, cssHandlerOptions, options = {}) => require_pipeline_helpers.finalizeTracedWebpackCssAsset(css, cssHandlerOptions, {
1669
1526
  annotateCss,
1670
1527
  compilerOptions,
1671
1528
  ...options,
1672
1529
  isWebGeneratorTarget
1673
1530
  });
1674
1531
  const hasRuntimeTransformAssets = Boolean(!isWebGeneratorTarget && ((groupedEntries.html?.length ?? 0) > 0 || (groupedEntries.js?.length ?? 0) > 0));
1532
+ const runtimeStartedAt = performance.now();
1675
1533
  const forceRuntimeRefresh = getRuntimeRefreshRequirement();
1676
1534
  debug("processAssets ensure runtime set forceRefresh=%s major=%s", forceRuntimeRefresh, runtimeState.tailwindRuntime.majorVersion ?? "unknown");
1677
1535
  let runtimeSet;
1678
1536
  let runtimeAffectingSourceHash = "runtime-affecting:0";
1679
- if (isWebGeneratorTarget && !hasRuntimeTransformAssets && !forceRuntimeRefresh) runtimeSet = getRuntimeClassSetSync(runtimeState.tailwindRuntime);
1537
+ if (isWebGeneratorTarget && !hasRuntimeTransformAssets && !forceRuntimeRefresh) runtimeSet = require_pipeline_helpers.getRuntimeClassSetSync(runtimeState.tailwindRuntime);
1680
1538
  else if (watchMode && !forceRuntimeRefresh) {
1681
- const baseRuntimeSet = getRuntimeClassSetSync(runtimeState.tailwindRuntime);
1539
+ const baseRuntimeSet = require_pipeline_helpers.getRuntimeClassSetSync(runtimeState.tailwindRuntime);
1682
1540
  const snapshot = buildWebpackBundleSnapshot(assets, compilerOptions, bundleBuildState, compilation);
1683
- if (!webpackWatchRuntimeScanInitialized) for (const entry of snapshot.entries) snapshot.runtimeAffectingChangedByType[entry.type].add(entry.file);
1684
- runtimeAffectingSourceHash = compilerOptions.cache.computeHash([...groupedEntries.html.map(([file, source]) => `${file}:${compilerOptions.cache.computeHash(source.source().toString())}`), ...groupedEntries.js.map(([file, source]) => `${file}:${compilerOptions.cache.computeHash(source.source().toString())}`)].sort().join("\n\n"));
1541
+ if (bundleBuildState.iteration === 0) for (const entry of snapshot.entries) snapshot.runtimeAffectingChangedByType[entry.type].add(entry.file);
1542
+ runtimeAffectingSourceHash = require_hmr_timing.createRuntimeCompilationAffectingSignature(snapshot, (source) => compilerOptions.cache.computeHash(source));
1685
1543
  try {
1686
1544
  runtimeSet = await bundleRuntimeClassSetManager.sync(runtimeState.tailwindRuntime, snapshot, {
1687
1545
  baseClassSet: baseRuntimeSet,
@@ -1690,15 +1548,14 @@ function setupWebpackV5ProcessAssetsHook(options) {
1690
1548
  } catch (error) {
1691
1549
  debug("webpack incremental runtime set sync failed, fallback to full collect: %O", error);
1692
1550
  await bundleRuntimeClassSetManager.reset();
1693
- runtimeSet = getRuntimeClassSetSync(runtimeState.tailwindRuntime);
1551
+ runtimeSet = require_pipeline_helpers.getRuntimeClassSetSync(runtimeState.tailwindRuntime);
1694
1552
  }
1695
1553
  releaseWebpackBundleSnapshotSources(snapshot);
1696
- require_source_candidate_scan_signature.updateBundleBuildState(bundleBuildState, snapshot, /* @__PURE__ */ new Map(), { incremental: true });
1697
- webpackWatchRuntimeScanInitialized = true;
1554
+ require_hmr_timing.updateRuntimeCompilationBuildState(bundleBuildState, snapshot, /* @__PURE__ */ new Map(), { incremental: true });
1698
1555
  } else {
1699
1556
  if (forceRuntimeRefresh) {
1700
1557
  await bundleRuntimeClassSetManager.reset();
1701
- webpackWatchRuntimeScanInitialized = false;
1558
+ require_hmr_timing.resetRuntimeCompilationBuildState(bundleBuildState);
1702
1559
  }
1703
1560
  runtimeSet = await require_context.ensureRuntimeClassSet(runtimeState, {
1704
1561
  forceRefresh: forceRuntimeRefresh,
@@ -1709,11 +1566,12 @@ function setupWebpackV5ProcessAssetsHook(options) {
1709
1566
  }
1710
1567
  await refreshRuntimeMetadata(forceRuntimeRefresh);
1711
1568
  consumeRuntimeRefreshRequirement();
1569
+ recordTimingDetail("runtime", runtimeStartedAt);
1712
1570
  const webpackSourceCandidateSet = webpackSourceCandidates?.getSourceCandidatesForEntries(void 0);
1713
1571
  const generatorRuntimeSet = new Set(runtimeSet);
1714
- addRuntimeTransformCandidates(generatorRuntimeSet, webpackSourceCandidateSet);
1572
+ require_pipeline_helpers.addRuntimeTransformCandidates(generatorRuntimeSet, webpackSourceCandidateSet);
1715
1573
  const transformRuntimeSet = new Set(runtimeSet);
1716
- if (hasRuntimeTransformAssets) for (const [, originalSource] of groupedEntries.css) for (const candidate of collectGeneratedCssRuntimeCandidates(originalSource.source().toString())) transformRuntimeSet.add(candidate);
1574
+ if (hasRuntimeTransformAssets) for (const [, originalSource] of groupedEntries.css) for (const candidate of require_pipeline_helpers.collectGeneratedCssRuntimeCandidates(originalSource.source().toString())) transformRuntimeSet.add(candidate);
1717
1575
  const transformedJsRuntimeCandidates = /* @__PURE__ */ new Set();
1718
1576
  let currentJsRuntimeCandidates;
1719
1577
  let currentJsRuntimeTokenSignature;
@@ -1722,7 +1580,7 @@ function setupWebpackV5ProcessAssetsHook(options) {
1722
1580
  };
1723
1581
  const getCurrentJsRuntimeCandidates = () => {
1724
1582
  if (currentJsRuntimeCandidates) return currentJsRuntimeCandidates;
1725
- currentJsRuntimeCandidates = collectWebpackJsRuntimeCandidatesFromAssets({
1583
+ currentJsRuntimeCandidates = require_pipeline_helpers.collectWebpackJsRuntimeCandidatesFromAssets({
1726
1584
  escapeFragments,
1727
1585
  getAssetSource: getWebpackAssetSource,
1728
1586
  isWebGeneratorTarget,
@@ -1732,7 +1590,7 @@ function setupWebpackV5ProcessAssetsHook(options) {
1732
1590
  };
1733
1591
  const getCurrentJsRuntimeTokenSignature = () => {
1734
1592
  if (currentJsRuntimeTokenSignature !== void 0) return currentJsRuntimeTokenSignature;
1735
- currentJsRuntimeTokenSignature = collectWebpackJsRuntimeTokenSignature({
1593
+ currentJsRuntimeTokenSignature = require_pipeline_helpers.collectWebpackJsRuntimeTokenSignature({
1736
1594
  getAssetSource: getWebpackAssetSource,
1737
1595
  isWebGeneratorTarget,
1738
1596
  jsAssets: jsAssets.values()
@@ -1742,8 +1600,8 @@ function setupWebpackV5ProcessAssetsHook(options) {
1742
1600
  const rememberTransformedRuntimeCandidates = (source) => {
1743
1601
  currentJsRuntimeCandidates = void 0;
1744
1602
  currentJsRuntimeTokenSignature = void 0;
1745
- const code = stringifyWebpackSourceLike(source);
1746
- for (const candidate of require_hmr_timing.collectStrictEscapedRuntimeCandidates(code, _weapp_core_escape.MappingChars2String, escapeFragments)) if (isRuntimeTransformCandidate(candidate)) transformedJsRuntimeCandidates.add(candidate);
1603
+ const code = require_pipeline_helpers.stringifyWebpackSourceLike(source);
1604
+ for (const candidate of require_v4_generation_core.collectStrictEscapedRuntimeCandidates(code, _weapp_core_escape.MappingChars2String, escapeFragments)) if (require_pipeline_helpers.isRuntimeTransformCandidate(candidate)) transformedJsRuntimeCandidates.add(candidate);
1747
1605
  };
1748
1606
  const createRuntimeSetHash = (generatorRuntimeSet) => compilerOptions.cache.computeHash([
1749
1607
  require_tailwindcss.getRuntimeClassSetSignature(runtimeState.tailwindRuntime),
@@ -1763,532 +1621,112 @@ function setupWebpackV5ProcessAssetsHook(options) {
1763
1621
  const defaultTemplateHandlerOptions = { runtimeSet: transformRuntimeSet };
1764
1622
  debug("get runtimeSet, class count: %d, transform class count: %d", runtimeSet.size, transformRuntimeSet.size);
1765
1623
  const tasks = [];
1766
- const htmlTaskFactories = [];
1767
1624
  const cssTaskFactories = [];
1768
- const enqueueTask = async (factory, target) => {
1625
+ const enqueueTask = async (factory, target, phase) => {
1626
+ const timedFactory = async () => {
1627
+ const startedAt = performance.now();
1628
+ try {
1629
+ await factory();
1630
+ } finally {
1631
+ recordTimingDetail(phase, startedAt);
1632
+ }
1633
+ };
1769
1634
  if (watchMode) {
1770
- await factory();
1635
+ await timedFactory();
1771
1636
  return;
1772
1637
  }
1773
- target.push(factory);
1638
+ target.push(timedFactory);
1774
1639
  };
1775
- if (!isWebGeneratorTarget && Array.isArray(groupedEntries.html)) for (const element of groupedEntries.html) {
1776
- const [file, originalSource] = element;
1777
- let rawSource;
1778
- const readRawSource = () => {
1779
- rawSource ?? (rawSource = originalSource.source().toString());
1780
- return rawSource;
1781
- };
1782
- const cacheKey = file;
1783
- const hashKey = `${file}:asset`;
1784
- rememberProcessCacheKey(cacheKey, hashKey);
1785
- const chunkHash = assetHashByChunk.get(file);
1786
- await enqueueTask(async () => {
1787
- await require_hmr_timing.processCachedTask({
1788
- cache: compilerOptions.cache,
1789
- cacheKey,
1790
- hashKey,
1791
- rawSource: chunkHash === void 0 ? readRawSource() : void 0,
1792
- hash: chunkHash,
1793
- applyResult(source, { cacheHit }) {
1794
- updateAssetIfChanged(file, source, {
1795
- compare: !cacheHit,
1796
- notifyUpdate: !cacheHit
1797
- });
1798
- },
1799
- onCacheHit() {
1800
- debug("html cache hit: %s", file);
1801
- },
1802
- transform: async () => {
1803
- const wxml = await compilerOptions.templateHandler(readRawSource(), defaultTemplateHandlerOptions);
1804
- const source = new ConcatSource(wxml);
1805
- debug("html handle: %s", file);
1806
- return { result: source };
1807
- }
1808
- });
1809
- }, htmlTaskFactories);
1810
- }
1811
- const jsTaskFactories = [];
1812
- const enqueueJsTask = async (factory) => {
1813
- await enqueueTask(factory, jsTaskFactories);
1640
+ const { htmlTaskFactories, jsTaskFactories } = await enqueueWebpackHtmlAndJsTasks({
1641
+ ConcatSource,
1642
+ applyWebpackLinkedJsResults,
1643
+ assetHashByChunk,
1644
+ compilation,
1645
+ compilerOptions,
1646
+ debug,
1647
+ defaultTemplateHandlerOptions,
1648
+ enqueueTask,
1649
+ groupedEntries,
1650
+ isWebGeneratorTarget,
1651
+ jsAssets,
1652
+ moduleGraphOptions,
1653
+ outputDir,
1654
+ rememberProcessCacheKey,
1655
+ rememberTransformedRuntimeCandidates,
1656
+ runtimeState,
1657
+ transformRuntimeSet,
1658
+ updateAssetIfChanged,
1659
+ watchMode
1660
+ });
1661
+ const cssTaskContext = {
1662
+ ConcatSource,
1663
+ affectedCompilationScopes,
1664
+ assetHashByChunk,
1665
+ compilation,
1666
+ compilationChanges,
1667
+ compilerOptions,
1668
+ configuredCssEntryFiles,
1669
+ configuredMainCssEntryFiles,
1670
+ createRuntimeSetHash,
1671
+ cssSourceTraceSignature,
1672
+ cssSources,
1673
+ cssTaskFactories,
1674
+ debug,
1675
+ enqueueTask,
1676
+ finalizeCssAssetSource,
1677
+ finalizeTracedCss,
1678
+ generatedCssSources,
1679
+ generatorRuntimeSet,
1680
+ getCompilationDependencyRevision,
1681
+ getCssHandlerOptions,
1682
+ getCssUserHandlerOptions,
1683
+ getGeneratorRuntimeSet,
1684
+ hasConfiguredTailwindV4SourceRoots,
1685
+ isKnownWebpackProcessedCssAsset,
1686
+ isSameWebpackSourceScope,
1687
+ isWebGeneratorTarget,
1688
+ isWebpackProcessedCssAsset,
1689
+ processedCssAssetSkipDecisionCache,
1690
+ rememberProcessCacheKey,
1691
+ resolveWebpackCssSourceFile,
1692
+ runtimeAffectingSourceHash,
1693
+ runtimeState,
1694
+ transformRuntimeSet,
1695
+ updateAssetIfChanged,
1696
+ watchMode,
1697
+ webpackSourceCandidateSet,
1698
+ webpackSourceCandidateValueSignature,
1699
+ webpackSourceCandidates
1814
1700
  };
1815
- if (!isWebGeneratorTarget && Array.isArray(groupedEntries.js)) for (const [file] of groupedEntries.js) {
1816
- const cacheKey = getCacheKey(file);
1817
- const asset = compilation.getAsset(file);
1818
- if (!asset) continue;
1819
- const hashKey = `${file}:asset`;
1820
- rememberProcessCacheKey(cacheKey, hashKey);
1821
- const absoluteFile = require_source_candidate_scan_signature.toAbsoluteOutputPath(file, outputDir);
1822
- const initialSource = asset.source.source();
1823
- const initialRawSource = typeof initialSource === "string" ? initialSource : initialSource.toString();
1824
- const chunkHash = assetHashByChunk.get(file);
1825
- await enqueueJsTask(async () => {
1826
- await require_hmr_timing.processCachedTask({
1827
- cache: compilerOptions.cache,
1828
- cacheKey,
1829
- hashKey,
1830
- rawSource: chunkHash === void 0 ? initialRawSource : void 0,
1831
- hash: chunkHash,
1832
- applyResult(source, { cacheHit }) {
1833
- if (updateAssetIfChanged(file, source, {
1834
- compare: !cacheHit,
1835
- notifyUpdate: !cacheHit
1836
- })) rememberTransformedRuntimeCandidates(source);
1837
- },
1838
- onCacheHit() {
1839
- debug("js cache hit: %s", file);
1840
- },
1841
- transform: async () => {
1842
- const currentSourceValue = compilation.getAsset(file)?.source.source();
1843
- const currentSource = stringifyOptionalWebpackSourceValue(currentSourceValue);
1844
- const handlerOptions = {
1845
- tailwindcssMajorVersion: runtimeState.tailwindRuntime.majorVersion,
1846
- generateMap: false,
1847
- filename: absoluteFile,
1848
- moduleGraph: moduleGraphOptions,
1849
- babelParserOptions: { sourceFilename: absoluteFile }
1850
- };
1851
- if (require_context.shouldSkipJsTransform(currentSource, {
1852
- ...handlerOptions,
1853
- classNameSet: transformRuntimeSet
1854
- })) return { result: new ConcatSource(currentSource) };
1855
- const { code, linked } = await compilerOptions.jsHandler(currentSource, transformRuntimeSet, handlerOptions);
1856
- const source = new ConcatSource(code);
1857
- debug("js handle: %s", file);
1858
- applyWebpackLinkedJsResults({
1859
- ConcatSource,
1860
- compilation,
1861
- compilerOptions,
1862
- debug,
1863
- jsAssets,
1864
- linked
1865
- });
1866
- return { result: source };
1867
- }
1868
- });
1869
- });
1870
- }
1871
1701
  for (const element of groupedEntries.css) {
1872
- const [file, originalSource] = element;
1873
- let rawSource;
1874
- const readRawSource = () => {
1875
- rawSource ?? (rawSource = originalSource.source().toString());
1876
- return rawSource;
1877
- };
1878
- const chunkHash = assetHashByChunk.get(file);
1879
- const cssHandlerOptionsForProcessedAsset = getCssHandlerOptions(file, readRawSource());
1880
- const processedCssAssetMetadata = { isMainCssChunk: cssHandlerOptionsForProcessedAsset.isMainChunk };
1881
- const processedSourceFile = cssHandlerOptionsForProcessedAsset.sourceOptions?.sourceFile;
1882
- const processedSourceCss = processedSourceFile ? cssSources.get(node_path.default.resolve(processedSourceFile))?.css : void 0;
1883
- const shouldRegenerateProcessedTailwindV4SourceCss = processedSourceCss !== void 0 && (require_generator.hasTailwindSourceDirectives(processedSourceCss, { importFallback: true }) || processedSourceCss.includes("@config"));
1884
- const processedCssAssetKnown = isKnownWebpackProcessedCssAsset?.(file, processedCssAssetMetadata) === true;
1885
- const processedLoaderGeneratedCss = processedSourceFile ? generatedCssSources.get(node_path.default.resolve(processedSourceFile)) : void 0;
1886
- const processedAssetSourceHash = watchMode && isWebGeneratorTarget && cssHandlerOptionsForProcessedAsset.isMainChunk ? compilerOptions.cache.computeHash(readRawSource()) : chunkHash === void 0 ? processedCssAssetKnown ? "webpack-css-asset:known" : compilerOptions.cache.computeHash(readRawSource()) : "webpack-css-asset:chunk";
1887
- const processedCssDecisionCacheKey = `${file}:${createRuntimeAwareCssHash(chunkHash, processedAssetSourceHash, `${createRuntimeSetHash(getGeneratorRuntimeSet())}:${runtimeAffectingSourceHash}:${webpackSourceCandidates?.signatureHash ?? "source-candidates:0"}:${webpackSourceCandidateValueSignature}:${cssSourceTraceSignature}`)}`;
1888
- let currentProcessedRawSource;
1889
- let hasGeneratedCssMarker = false;
1890
- let hasTailwindGeneratedAssetCss = false;
1891
- const readCurrentProcessedRawSource = () => {
1892
- currentProcessedRawSource ?? (currentProcessedRawSource = readRawSource());
1893
- return currentProcessedRawSource;
1894
- };
1895
- const cachedSkipProcessedCssAsset = processedCssAssetKnown ? processedCssAssetSkipDecisionCache.get(processedCssDecisionCacheKey) : void 0;
1896
- const shouldRegenerateStaleProcessedWebCssAsset = isWebGeneratorTarget && !processedCssAssetKnown && cachedSkipProcessedCssAsset === void 0 && cssHandlerOptionsForProcessedAsset.isMainChunk && webpackSourceCandidateSet !== void 0 && (hasMissingRuntimeCandidates(processedLoaderGeneratedCss?.classSet, webpackSourceCandidateSet) || hasMissingRuntimeCandidates(resolveGeneratedCssRuntimeCandidates(readCurrentProcessedRawSource(), processedLoaderGeneratedCss?.classSet), webpackSourceCandidateSet));
1897
- if (cachedSkipProcessedCssAsset !== void 0) {
1898
- hasGeneratedCssMarker = cachedSkipProcessedCssAsset && cssHandlerOptionsForProcessedAsset.isMainChunk;
1899
- hasTailwindGeneratedAssetCss = hasGeneratedCssMarker;
1900
- } else {
1901
- const source = readCurrentProcessedRawSource();
1902
- hasGeneratedCssMarker = require_hmr_timing.hasBundlerGeneratedCssMarker(source);
1903
- hasTailwindGeneratedAssetCss = require_generator.hasTailwindGeneratedCss(source) || require_generator.hasTailwindGeneratedCssMarkers(source);
1904
- }
1905
- const hasProcessedAssetTailwindDirectives = () => {
1906
- const source = readCurrentProcessedRawSource();
1907
- return require_generator.hasTailwindRootDirectives(source, { importFallback: true }) || require_generator.hasTailwindSourceDirectives(source, { importFallback: true }) || require_generator.hasTailwindApplyDirective(source);
1908
- };
1909
- const shouldForceConfiguredMainCssGeneration = cssHandlerOptionsForProcessedAsset.isMainChunk && hasConfiguredTailwindV4SourceRoots() && !hasGeneratedCssMarker && (configuredMainCssEntryFiles.length > 0 || shouldRegenerateProcessedTailwindV4SourceCss || hasProcessedAssetTailwindDirectives());
1910
- const hasProcessedMainAssetUserCss = cachedSkipProcessedCssAsset === void 0 && cssHandlerOptionsForProcessedAsset.isMainChunk && (hasGeneratedCssMarker || hasTailwindGeneratedAssetCss) && createWebpackUserCssSourceAppend([...cssSources.entries()].map(([sourceFile, source]) => ({
1911
- ...source,
1912
- file: sourceFile
1913
- })), readCurrentProcessedRawSource()) !== void 0;
1914
- const hasProcessedLoaderGeneratedUserCss = cachedSkipProcessedCssAsset === void 0 && processedLoaderGeneratedCss !== void 0 && hasAdditionalWebpackAssetUserCssMarkers(processedLoaderGeneratedCss.css, readCurrentProcessedRawSource());
1915
- const shouldFinalizeProcessedWebCssAsset = isWebGeneratorTarget && !shouldForceConfiguredMainCssGeneration && !shouldRegenerateProcessedTailwindV4SourceCss && require_generator.hasTailwindSourceDirectives(readCurrentProcessedRawSource(), { importFallback: true });
1916
- const shouldPreserveFinalWebCssAsset = isWebGeneratorTarget && processedSourceFile === void 0 && !shouldForceConfiguredMainCssGeneration && (hasGeneratedCssMarker || hasTailwindGeneratedAssetCss);
1917
- const shouldSkipKnownProcessedCssAsset = !shouldForceConfiguredMainCssGeneration && !shouldRegenerateProcessedTailwindV4SourceCss && !shouldRegenerateStaleProcessedWebCssAsset && (processedCssAssetKnown || isWebpackProcessedCssAsset?.(file, readCurrentProcessedRawSource(), processedCssAssetMetadata)) && !hasProcessedMainAssetUserCss && !hasProcessedLoaderGeneratedUserCss && (!cssHandlerOptionsForProcessedAsset.isMainChunk || hasGeneratedCssMarker || hasTailwindGeneratedAssetCss);
1918
- const shouldSkipProcessedCssAsset = cachedSkipProcessedCssAsset ?? (shouldFinalizeProcessedWebCssAsset || shouldPreserveFinalWebCssAsset || shouldSkipKnownProcessedCssAsset);
1919
- if (processedCssAssetKnown && cachedSkipProcessedCssAsset === void 0 && !shouldFinalizeProcessedWebCssAsset && !shouldPreserveFinalWebCssAsset) processedCssAssetSkipDecisionCache.set(processedCssDecisionCacheKey, shouldSkipProcessedCssAsset === true);
1920
- if (shouldSkipProcessedCssAsset) {
1921
- const hashKey = `${file}:asset`;
1922
- const sourceHash = processedAssetSourceHash;
1923
- rememberProcessCacheKey(file, hashKey);
1924
- await enqueueTask(async () => {
1925
- await require_hmr_timing.processCachedTask({
1926
- cache: compilerOptions.cache,
1927
- cacheKey: file,
1928
- hashKey,
1929
- rawSource: chunkHash === void 0 && !processedCssAssetKnown ? readCurrentProcessedRawSource() : void 0,
1930
- hash: createRuntimeAwareCssHash(chunkHash, sourceHash, `${createRuntimeSetHash(getGeneratorRuntimeSet())}:${runtimeAffectingSourceHash}:${webpackSourceCandidates?.signatureHash ?? "source-candidates:0"}:${webpackSourceCandidateValueSignature}:${cssSourceTraceSignature}`),
1931
- applyResult(source, { cacheHit }) {
1932
- updateAssetIfChanged(file, source, {
1933
- compare: !cacheHit,
1934
- notifyUpdate: !cacheHit
1935
- });
1936
- },
1937
- onCacheHit() {
1938
- debug("css webpack-loader-pipeline cache hit: %s", file);
1939
- },
1940
- transform: async () => {
1941
- const source = readCurrentProcessedRawSource();
1942
- const missingProcessedLoaderGeneratedCss = isWebGeneratorTarget && processedLoaderGeneratedCss ? (0, _weapp_tailwindcss_postcss.filterExistingCssRules)(source, require_hmr_timing.stripBundlerGeneratedCssMarkers(processedLoaderGeneratedCss.css)) : "";
1943
- const sourceWithLoaderGeneratedCss = missingProcessedLoaderGeneratedCss.trim().length === 0 ? source : createWebpackGeneratorUserCssSourceAppend({
1944
- css: source,
1945
- processed: true
1946
- }, {
1947
- css: missingProcessedLoaderGeneratedCss,
1948
- processed: true
1949
- }).css;
1950
- const processedBareSelectorSourceCss = processedSourceCss ?? (hasTailwindGeneratedAssetCss ? removeWebpackTailwindGeneratedAssetCss(sourceWithLoaderGeneratedCss) : void 0);
1951
- const handledCss = hasTailwindGeneratedAssetCss && (!hasGeneratedCssMarker || !isWebGeneratorTarget && hasDeferredWebpackGeneratedCss(source, [...generatedCssSources.values()].map((item) => item.classSet))) ? isWebGeneratorTarget ? sourceWithLoaderGeneratedCss : (await compilerOptions.styleHandler(sourceWithLoaderGeneratedCss, cssHandlerOptionsForProcessedAsset)).css : sourceWithLoaderGeneratedCss;
1952
- const nextCss = stripTrailingLineWhitespace(finalizeCssAssetSource(handledCss, {
1953
- cssPreflight: cssHandlerOptionsForProcessedAsset.isMainChunk,
1954
- generatedCss: hasGeneratedCssMarker || hasTailwindGeneratedAssetCss
1955
- }));
1956
- const processedSourceBareUserCss = isWebGeneratorTarget || processedBareSelectorSourceCss === void 0 ? void 0 : createWebpackGeneratorUserCssSourceAppend({
1957
- css: collectWebpackBareSelectorUserCss(processedBareSelectorSourceCss),
1958
- processed: false
1959
- });
1960
- const finalizedProcessedSourceBareUserCss = processedSourceBareUserCss === void 0 ? "" : finalizeCssAssetSource(processedSourceBareUserCss.css, {
1961
- cssPreflight: false,
1962
- generatedCss: false
1963
- });
1964
- const missingProcessedSourceBareUserCss = finalizedProcessedSourceBareUserCss.trim().length === 0 ? "" : (0, _weapp_tailwindcss_postcss.filterExistingCssRules)(nextCss, finalizedProcessedSourceBareUserCss);
1965
- const css = missingProcessedSourceBareUserCss.trim().length === 0 ? nextCss : createWebpackGeneratorUserCssSourceAppend({
1966
- css: nextCss,
1967
- processed: true
1968
- }, {
1969
- css: missingProcessedSourceBareUserCss,
1970
- processed: true
1971
- }).css;
1972
- debug("css skip webpack-loader-pipeline asset: %s", file);
1973
- return { result: new ConcatSource(finalizeTracedCss(css, cssHandlerOptionsForProcessedAsset, { finalized: true })) };
1974
- }
1975
- });
1976
- }, cssTaskFactories);
1977
- continue;
1978
- }
1979
- const currentRawSource = readRawSource();
1980
- if (isWebpackCssLoaderRuntimeSource(currentRawSource)) {
1981
- const hashKey = `${file}:asset`;
1982
- rememberProcessCacheKey(file, hashKey);
1983
- await enqueueTask(async () => {
1984
- await require_hmr_timing.processCachedTask({
1985
- cache: compilerOptions.cache,
1986
- cacheKey: file,
1987
- hashKey,
1988
- rawSource: currentRawSource,
1989
- hash: createRuntimeAwareCssHash(chunkHash, compilerOptions.cache.computeHash(currentRawSource), "webpack-css-loader-runtime"),
1990
- applyResult(source, { cacheHit }) {
1991
- updateAssetIfChanged(file, source, {
1992
- compare: !cacheHit,
1993
- notifyUpdate: !cacheHit
1994
- });
1995
- },
1996
- onCacheHit() {
1997
- debug("css-loader runtime cache hit: %s", file);
1998
- },
1999
- transform: async () => ({ result: new ConcatSource(currentRawSource) })
2000
- });
2001
- }, cssTaskFactories);
2002
- continue;
2003
- }
2004
- const cacheKey = file;
2005
- const hashKey = `${file}:asset`;
2006
- rememberProcessCacheKey(cacheKey, hashKey);
2007
- const cssHandlerOptionsForHash = getCssHandlerOptions(file, currentRawSource);
2008
- const cssChunkHash = watchMode && cssHandlerOptionsForHash.isMainChunk ? void 0 : chunkHash;
2009
- const cssSourceHash = (() => {
2010
- const sourceFile = resolveWebpackCssSourceFile(file, currentRawSource);
2011
- const sourceCss = sourceFile ? cssSources.get(sourceFile)?.css : void 0;
2012
- const generatorSourceCss = removeWebpackGeneratorNonTailwindImports(sourceCss);
2013
- if (sourceCss === void 0) return sourceFile === void 0 ? "webpack-css-source:0" : `webpack-css-source:0:${sourceFile}`;
2014
- return `webpack-css-source:1:${compilerOptions.cache.computeHash(sourceCss)}:${generatorSourceCss === sourceCss || generatorSourceCss === void 0 ? "generator-source:0" : compilerOptions.cache.computeHash(generatorSourceCss)}`;
2015
- })();
2016
- const runtimeAwareHash = createRuntimeAwareCssHash(cssChunkHash, compilerOptions.cache.computeHash(currentRawSource), `${createRuntimeSetHash(getGeneratorRuntimeSet())}:${runtimeAffectingSourceHash}:${webpackSourceCandidates?.signatureHash ?? "source-candidates:0"}:${webpackSourceCandidateValueSignature}:${cssSourceTraceSignature}:${cssSourceHash}`);
2017
- await enqueueTask(async () => {
2018
- await require_hmr_timing.processCachedTask({
2019
- cache: compilerOptions.cache,
2020
- cacheKey,
2021
- hashKey,
2022
- rawSource: currentRawSource,
2023
- hash: runtimeAwareHash,
2024
- applyResult(source, { cacheHit }) {
2025
- updateAssetIfChanged(file, source, {
2026
- compare: !cacheHit,
2027
- notifyUpdate: !cacheHit
2028
- });
2029
- },
2030
- onCacheHit() {
2031
- debug("css cache hit: %s", file);
2032
- },
2033
- transform: async () => {
2034
- await runtimeState.readyPromise;
2035
- const cssHandlerOptions = getCssHandlerOptions(file, currentRawSource);
2036
- const generatorRawSource = resolveWebpackGeneratorRawSource(currentRawSource, cssHandlerOptions);
2037
- if (isWebpackCssLoaderRuntimeSource(generatorRawSource)) return { result: new ConcatSource(currentRawSource) };
2038
- const sourceFile = cssHandlerOptions.sourceOptions?.sourceFile;
2039
- const sourceCss = sourceFile ? cssSources.get(node_path.default.resolve(sourceFile))?.css : void 0;
2040
- const isConfiguredCssSource = sourceFile !== void 0 && configuredCssEntryFiles.some((entry) => node_path.default.resolve(entry) === node_path.default.resolve(sourceFile));
2041
- const isConfiguredMainCssSource = sourceFile !== void 0 && configuredMainCssEntryFiles.some((entry) => node_path.default.resolve(entry) === node_path.default.resolve(sourceFile));
2042
- const sourceCssHasTailwindRoot = sourceCss !== void 0 && require_generator.hasTailwindRootDirectives(sourceCss, { importFallback: true });
2043
- const shouldPreserveExistingPreflight = cssHandlerOptions.isMainChunk || !isConfiguredMainCssSource && (isConfiguredCssSource || sourceCssHasTailwindRoot);
2044
- const loaderGeneratedCss = sourceFile ? generatedCssSources.get(node_path.default.resolve(sourceFile)) : void 0;
2045
- const shouldRegenerateExplicitTailwindV4CssSource = sourceCss !== void 0 && (require_generator.hasTailwindSourceDirectives(sourceCss, { importFallback: true }) || sourceCss.includes("@config"));
2046
- const explicitTailwindV4SourceCandidates = shouldRegenerateExplicitTailwindV4CssSource && sourceCss && sourceFile && webpackSourceCandidates?.getSourceCandidatesForEntries ? await require_tailwindcss.resolveTailwindV4EntriesFromCssCached(sourceCss, node_path.default.dirname(sourceFile)).then((resolved) => resolved?.entries ? webpackSourceCandidates.getSourceCandidatesForEntries(resolved.entries) : void 0) : void 0;
2047
- if (loaderGeneratedCss && shouldConsumeWebpackLoaderGeneratedCss({
2048
- allowMarkerlessRegistryMatch: configuredCssEntryFiles.length === 1,
2049
- hasBundlerGeneratedCssMarker: require_hmr_timing.hasBundlerGeneratedCssMarker(currentRawSource),
2050
- loaderGeneratedClassSet: loaderGeneratedCss.classSet,
2051
- sourceCandidates: explicitTailwindV4SourceCandidates,
2052
- shouldRegenerateExplicitTailwindV4CssSource,
2053
- watchMode
2054
- })) {
2055
- for (const className of loaderGeneratedCss.classSet) {
2056
- generatorRuntimeSet.add(className);
2057
- transformRuntimeSet.add(className);
2058
- }
2059
- for (const dependency of loaderGeneratedCss.dependencies) compilation.fileDependencies?.add?.(dependency);
2060
- const currentRawSourceWithoutBundlerMarkers = require_hmr_timing.stripBundlerGeneratedCssMarkers(currentRawSource);
2061
- const currentAssetHasProcessedUrl = hasProcessedCssAssetUrl(currentRawSourceWithoutBundlerMarkers) && currentRawSourceWithoutBundlerMarkers !== loaderGeneratedCss.css;
2062
- const currentAssetUserCss = currentAssetHasProcessedUrl ? currentRawSourceWithoutBundlerMarkers : shouldUseWebpackAssetAsGeneratorUserCss(currentRawSourceWithoutBundlerMarkers, loaderGeneratedCss.css, { processed: true }) ? require_hmr_timing.removeGeneratedSelectorCompatCss(currentRawSourceWithoutBundlerMarkers, loaderGeneratedCss.css) : void 0;
2063
- const loaderGeneratedCssWithoutMarkers = require_hmr_timing.stripBundlerGeneratedCssMarkers(loaderGeneratedCss.css);
2064
- const currentAssetUserCssWithoutMarkers = currentAssetUserCss === void 0 ? "" : require_hmr_timing.stripBundlerGeneratedCssMarkers(currentAssetUserCss);
2065
- const currentAssetMissingUserCss = !(currentAssetUserCssWithoutMarkers.trim().length > 0 && !require_generator.isCommentOnlyCss(currentAssetUserCssWithoutMarkers)) ? "" : (0, _weapp_tailwindcss_postcss.filterExistingCssRules)(currentAssetUserCssWithoutMarkers, loaderGeneratedCssWithoutMarkers);
2066
- if (isConfiguredMainCssSource && !cssHandlerOptions.isMainChunk) {
2067
- debug("css skip duplicate webpack loader main generation: %s <- %s", file, sourceFile);
2068
- const userCss = currentAssetMissingUserCss.trim().length === 0 || require_generator.isCommentOnlyCss(currentAssetMissingUserCss) ? "" : finalizeCssAssetSource(currentAssetMissingUserCss, {
2069
- cssPreflight: false,
2070
- generatedCss: false
2071
- });
2072
- return { result: new ConcatSource(finalizeTracedCss(userCss, cssHandlerOptions)) };
2073
- }
2074
- const mergedLoaderCss = currentAssetUserCss === void 0 ? loaderGeneratedCss.css : createWebpackGeneratorUserCssSourceAppend({
2075
- css: currentAssetUserCss === void 0 ? loaderGeneratedCss.css : currentAssetHasProcessedUrl ? require_hmr_timing.removeGeneratedSelectorCompatCss(loaderGeneratedCss.css, currentAssetUserCss) : (0, _weapp_tailwindcss_postcss.filterExistingCssRules)(currentAssetUserCss, loaderGeneratedCss.css),
2076
- processed: true
2077
- }, currentAssetUserCss === void 0 ? void 0 : {
2078
- css: currentAssetUserCss,
2079
- processed: true
2080
- }).css;
2081
- const handledLoaderCss = isWebGeneratorTarget ? mergedLoaderCss : (await compilerOptions.styleHandler(mergedLoaderCss, cssHandlerOptions)).css;
2082
- const finalizedLoaderCss = finalizeCssAssetSource(handledLoaderCss, {
2083
- cssPreflight: cssHandlerOptions.isMainChunk,
2084
- generatedCss: true,
2085
- preserveExistingPreflight: shouldPreserveExistingPreflight
2086
- });
2087
- const loaderSourceBareUserCss = isWebGeneratorTarget ? void 0 : createWebpackGeneratorUserCssSourceAppend(...[currentAssetUserCss === void 0 ? void 0 : {
2088
- css: currentAssetUserCss,
2089
- processed: true
2090
- }, sourceCss === void 0 ? void 0 : {
2091
- css: sourceCss,
2092
- processed: false
2093
- }].map((source) => {
2094
- if (source === void 0) return;
2095
- return {
2096
- css: collectWebpackBareSelectorUserCss(source.css),
2097
- processed: source.processed
2098
- };
2099
- }));
2100
- const handledLoaderSourceBareUserCss = loaderSourceBareUserCss === void 0 ? "" : loaderSourceBareUserCss.processed ? loaderSourceBareUserCss.css : (await compilerOptions.styleHandler(loaderSourceBareUserCss.css, cssHandlerOptions)).css;
2101
- const finalizedLoaderSourceBareUserCss = handledLoaderSourceBareUserCss.trim().length === 0 ? "" : finalizeCssAssetSource(handledLoaderSourceBareUserCss, {
2102
- cssPreflight: false,
2103
- generatedCss: false
2104
- });
2105
- const missingLoaderSourceBareUserCss = finalizedLoaderSourceBareUserCss.trim().length === 0 ? "" : (0, _weapp_tailwindcss_postcss.filterExistingCssRules)(finalizedLoaderCss, finalizedLoaderSourceBareUserCss);
2106
- const css = finalizeTracedCss(missingLoaderSourceBareUserCss.trim().length === 0 ? finalizedLoaderCss : createWebpackGeneratorUserCssSourceAppend({
2107
- css: finalizedLoaderCss,
2108
- processed: true
2109
- }, {
2110
- css: missingLoaderSourceBareUserCss,
2111
- processed: true
2112
- }).css, cssHandlerOptions, { finalized: true });
2113
- debug("css consume webpack loader generation: %s <- %s", file, sourceFile);
2114
- return { result: new ConcatSource(css) };
2115
- }
2116
- const sourceCssProcessed = sourceFile ? cssSources.get(node_path.default.resolve(sourceFile))?.processed === true : false;
2117
- const registeredUserRawSource = createWebpackUserCssSourceAppend([...cssSources.entries()].map(([registeredSourceFile, source]) => ({
2118
- ...source,
2119
- file: registeredSourceFile
2120
- })), generatorRawSource, sourceFile, (registeredSourceFile) => isSameWebpackSourceScope(file, registeredSourceFile, sourceFile));
2121
- const currentAssetLooksGenerated = require_generator.hasTailwindGeneratedCss(currentRawSource) || require_generator.hasTailwindGeneratedCssMarkers(currentRawSource);
2122
- const currentAssetHasBundlerGeneratedMarker = require_hmr_timing.hasBundlerGeneratedCssMarker(currentRawSource);
2123
- const currentAssetUserCssSource = currentAssetLooksGenerated ? removeWebpackTailwindGeneratedAssetCss(currentRawSource) : currentRawSource;
2124
- if (sourceFile === void 0 && currentAssetHasBundlerGeneratedMarker && (currentAssetUserCssSource.trim().length === 0 || require_generator.isCommentOnlyCss(currentAssetUserCssSource))) return { result: new ConcatSource(finalizeTracedCss("", cssHandlerOptions)) };
2125
- const currentAssetHasAdditionalUserCss = currentAssetLooksGenerated && (hasAdditionalWebpackAssetUserCssMarkers(currentAssetUserCssSource, generatorRawSource) || currentAssetUserCssSource.trim().length > 0);
2126
- const shouldPreserveGeneratedWebAssetUserCss = isWebGeneratorTarget && currentAssetLooksGenerated && !currentAssetHasBundlerGeneratedMarker && !currentAssetHasAdditionalUserCss;
2127
- const hasExplicitSourceCssForCurrentAsset = sourceCss !== void 0 && (require_generator.hasTailwindRootDirectives(sourceCss, { importFallback: true }) || require_generator.hasTailwindSourceDirectives(sourceCss, { importFallback: true }) || require_generator.hasTailwindApplyDirective(sourceCss));
2128
- const currentAssetHasUserCss = (sourceCssProcessed || hasExplicitSourceCssForCurrentAsset) && currentAssetLooksGenerated && !shouldPreserveGeneratedWebAssetUserCss ? currentAssetHasAdditionalUserCss : shouldUseWebpackAssetAsGeneratorUserCss(currentAssetUserCssSource, generatorRawSource, { processed: sourceCssProcessed || shouldPreserveGeneratedWebAssetUserCss });
2129
- const userRawSource = createWebpackGeneratorUserCssSourceAppend(createWebpackCurrentAssetUserRawSource({
2130
- currentAssetHasUserCss,
2131
- currentAssetLooksGenerated,
2132
- currentAssetUserCssSource,
2133
- shouldAppendCurrentAssetUserCss: shouldAppendCurrentWebpackAssetUserCss({
2134
- currentAssetHasBundlerGeneratedMarker,
2135
- currentAssetHasUserCss,
2136
- currentAssetLooksGenerated,
2137
- registeredUserRawSource,
2138
- shouldPreserveGeneratedWebAssetUserCss,
2139
- sourceCssProcessed
2140
- }),
2141
- sourceCssProcessed
2142
- }), registeredUserRawSource);
2143
- if ((0, _weapp_tailwindcss_postcss.isPureLocalCssImportWrapper)(currentRawSource)) return { result: new ConcatSource(require_generator.removeTailwindSourceDirectives(require_hmr_timing.stripBundlerGeneratedCssMarkers(currentRawSource), { importFallback: true })) };
2144
- const fallbackGeneratorRuntimeSet = getGeneratorRuntimeSet();
2145
- const hasExplicitTailwindV4SourceCss = sourceCss !== void 0 && (require_generator.hasTailwindSourceDirectives(sourceCss, { importFallback: true }) || sourceCss.includes("@config"));
2146
- const currentAssetHasTailwindDirectives = require_generator.hasTailwindRootDirectives(generatorRawSource, { importFallback: true }) || require_generator.hasTailwindSourceDirectives(generatorRawSource, { importFallback: true }) || require_generator.hasTailwindApplyDirective(generatorRawSource);
2147
- const shouldForceTailwindV4Generation = hasConfiguredTailwindV4SourceRoots() && (configuredMainCssEntryFiles.length > 0 && sourceFile !== void 0 || currentAssetHasTailwindDirectives || hasExplicitTailwindV4SourceCss);
2148
- const shouldSkipUnmatchedMainCssGeneration = !isWebGeneratorTarget && cssHandlerOptions.isMainChunk && sourceFile === void 0 && configuredMainCssEntryFiles.length > 0 && !currentAssetHasTailwindDirectives;
2149
- const shouldSkipPlainNonMainCssGeneration = !cssHandlerOptions.isMainChunk && sourceCss !== void 0 && !hasExplicitSourceCssForCurrentAsset && !hasExplicitTailwindV4SourceCss && !currentAssetHasTailwindDirectives;
2150
- const shouldMergeFallbackGeneratorRuntime = cssHandlerOptions.isMainChunk || currentAssetHasTailwindDirectives || hasExplicitSourceCssForCurrentAsset;
2151
- const scopedFallbackGeneratorRuntimeSet = hasExplicitTailwindV4SourceCss || !shouldMergeFallbackGeneratorRuntime ? /* @__PURE__ */ new Set() : fallbackGeneratorRuntimeSet;
2152
- const resolvedScopedGeneratorRuntimeSet = await require_source_candidate_scan_signature.createScopedGeneratorRuntime({
2153
- cssHandlerOptions,
2154
- fallbackRuntime: scopedFallbackGeneratorRuntimeSet,
2155
- getSourceCandidatesForEntries: webpackSourceCandidates?.getSourceCandidatesForEntries,
2156
- majorVersion: runtimeState.tailwindRuntime.majorVersion,
2157
- outputFile: file,
2158
- rawSource: sourceFile ? cssSources.get(node_path.default.resolve(sourceFile))?.css ?? generatorRawSource : generatorRawSource,
2159
- shouldExcludeSubpackageSourceCandidates: () => false,
2160
- sourceFile: sourceFile ?? file,
2161
- scopedSourceCandidateGetter: webpackSourceCandidates?.getSourceCandidatesForEntries
2162
- });
2163
- const scopedGeneratorRuntimeSet = !hasExplicitTailwindV4SourceCss && resolvedScopedGeneratorRuntimeSet !== scopedFallbackGeneratorRuntimeSet && shouldMergeFallbackGeneratorRuntime ? /* @__PURE__ */ new Set([...fallbackGeneratorRuntimeSet, ...resolvedScopedGeneratorRuntimeSet]) : resolvedScopedGeneratorRuntimeSet;
2164
- const generatorCssSources = normalizeWebpackGeneratorCssSources(cssHandlerOptions.sourceOptions?.cssSources);
2165
- const scopedGeneratorCompilerOptions = scopeWebpackGeneratorOptionsToCssSource(compilerOptions, sourceFile, { disableUnmatchedCssEntries: !isWebGeneratorTarget && cssHandlerOptions.isMainChunk });
2166
- const generatorCssHandlerOptions = generatorCssSources === void 0 ? cssHandlerOptions : {
2167
- ...cssHandlerOptions,
2168
- sourceOptions: {
2169
- ...cssHandlerOptions.sourceOptions,
2170
- cssSources: generatorCssSources
2171
- }
2172
- };
2173
- const generatorOptions = {
2174
- opts: scopedGeneratorCompilerOptions,
2175
- runtimeState,
2176
- runtime: scopedGeneratorRuntimeSet,
2177
- rawSource: generatorRawSource,
2178
- forceGenerator: shouldForceTailwindV4Generation,
2179
- ...hasUsableWebpackGeneratorCssSources(generatorCssSources) ? { cssSources: generatorCssSources } : {},
2180
- ...userRawSource === void 0 ? {} : { userRawSource: userRawSource.css },
2181
- ...userRawSource?.processed === true ? { userRawSourceProcessed: true } : {},
2182
- file,
2183
- cssHandlerOptions: generatorCssHandlerOptions,
2184
- cssUserHandlerOptions: getCssUserHandlerOptions(file),
2185
- getSourceCandidatesForEntries: webpackSourceCandidates?.getSourceCandidatesForEntries,
2186
- sourceCandidates: scopedGeneratorRuntimeSet,
2187
- restoreLocalCssImports: false,
2188
- styleHandler: compilerOptions.styleHandler,
2189
- debug
2190
- };
2191
- let generated;
2192
- if (!shouldSkipUnmatchedMainCssGeneration && !shouldSkipPlainNonMainCssGeneration) try {
2193
- generated = await require_source_candidate_scan_signature.generateTailwindV4Css({
2194
- ...generatorOptions,
2195
- outputFile: file
2196
- });
2197
- } catch (error) {
2198
- if (!shouldFallbackToWebpackUserCssOnGeneratorError({
2199
- configuredMainCssEntryFilesLength: configuredMainCssEntryFiles.length,
2200
- generatorRawSource,
2201
- hasExplicitTailwindV4SourceCss
2202
- })) throw error;
2203
- debug("css generator skipped for plain webpack css asset: %s %O", file, error);
2204
- generated = void 0;
2205
- }
2206
- else debug("css generator skipped for plain webpack css asset: %s", file);
2207
- const finalizedGeneratedCss = generated ? finalizeCssAssetSource(isWebGeneratorTarget && currentRawSource.includes("tailwindcss v4.") ? createWebpackGeneratorUserCssSourceAppend({
2208
- css: generated.css,
2209
- processed: true
2210
- }, {
2211
- css: removeWebpackTailwindGeneratedAssetCss(currentRawSource),
2212
- processed: true
2213
- })?.css ?? generated.css : generated.css, {
2214
- cssPreflight: cssHandlerOptions.isMainChunk,
2215
- generatedCss: true,
2216
- preserveExistingPreflight: shouldPreserveExistingPreflight
2217
- }) : isWebGeneratorTarget ? finalizeCssAssetSource(generatorRawSource, { generatedCss: false }) : finalizeCssAssetSource((await compilerOptions.styleHandler(generatorRawSource, cssHandlerOptions)).css, { generatedCss: false });
2218
- const sourceBareUserCss = isWebGeneratorTarget ? void 0 : createWebpackGeneratorUserCssSourceAppend(...[
2219
- userRawSource,
2220
- sourceCss === void 0 ? void 0 : {
2221
- css: sourceCss,
2222
- processed: sourceCssProcessed
2223
- },
2224
- {
2225
- css: generatorRawSource,
2226
- processed: false
2227
- }
2228
- ].map((source) => {
2229
- if (source === void 0) return;
2230
- return {
2231
- css: collectWebpackBareSelectorUserCss(source.css),
2232
- processed: source.processed
2233
- };
2234
- }));
2235
- const handledSourceBareUserCss = sourceBareUserCss === void 0 ? "" : sourceBareUserCss.processed ? sourceBareUserCss.css : (await compilerOptions.styleHandler(sourceBareUserCss.css, cssHandlerOptions)).css;
2236
- const finalizedSourceBareUserCss = handledSourceBareUserCss.trim().length === 0 ? "" : finalizeCssAssetSource(handledSourceBareUserCss, {
2237
- cssPreflight: false,
2238
- generatedCss: false
2239
- });
2240
- const missingSourceBareUserCss = finalizedSourceBareUserCss.trim().length === 0 ? "" : (0, _weapp_tailwindcss_postcss.filterExistingCssRules)(finalizedGeneratedCss, finalizedSourceBareUserCss);
2241
- const css = finalizeTracedCss(missingSourceBareUserCss.trim().length === 0 ? finalizedGeneratedCss : createWebpackGeneratorUserCssSourceAppend({
2242
- css: finalizedGeneratedCss,
2243
- processed: true
2244
- }, {
2245
- css: missingSourceBareUserCss,
2246
- processed: true
2247
- }).css, cssHandlerOptions, { finalized: true });
2248
- const source = new ConcatSource(css);
2249
- if (generated) {
2250
- for (const className of generated.classSet) generatorRuntimeSet.add(className);
2251
- debug("css handle via tailwind v%s engine(%s): %s", runtimeState.tailwindRuntime.majorVersion, generated.target, file);
2252
- } else debug("css handle: %s", file);
2253
- return { result: source };
2254
- }
2255
- });
2256
- }, cssTaskFactories);
2257
- }
2258
- if (!watchMode) {
2259
- require_hmr_timing.pushConcurrentTaskFactories(tasks, htmlTaskFactories, taskConcurrency);
2260
- await Promise.all(tasks);
2261
- tasks.length = 0;
2262
- require_hmr_timing.pushConcurrentTaskFactories(tasks, jsTaskFactories, taskConcurrency);
2263
- await Promise.all(tasks);
2264
- tasks.length = 0;
2265
- require_hmr_timing.pushConcurrentTaskFactories(tasks, cssTaskFactories, taskConcurrency);
1702
+ if (await processWebpackProcessedCssAsset(element, cssTaskContext)) continue;
1703
+ await processWebpackGeneratedCssAsset(element, cssTaskContext);
2266
1704
  }
2267
- await Promise.all(tasks);
2268
- compilerOptions.cache.prune?.({
2269
- cacheKeys: activeProcessCacheKeys,
2270
- hashKeys: activeProcessHashKeys
2271
- });
2272
- const activeCssFiles = new Set(groupedEntries.css.map(([file]) => file));
2273
- pruneWebpackCssHandlerOptionCaches(cssHandlerOptionsCache, cssUserHandlerOptionsCache, activeCssFiles);
2274
- if (activeCssFiles.size > 0) pruneWebpackCssSources?.(/* @__PURE__ */ new Set([
2275
- ...registeredWebpackCssSourceFiles,
2276
- ...activeWebpackCssSourceFiles,
2277
- ...[...cssAssetResources.values()].flatMap((resources) => [...resources])
2278
- ]), { watchMode });
2279
- debug("end");
2280
- require_hmr_timing.emitHmrTiming("webpack", "processAssets", performance.now() - hmrTimingStartedAt, { memoryDebug: resolveWebpackMemoryDebugStats({
2281
- activeAssetFiles: entries.length,
2282
- activeCssFiles: activeCssFiles.size,
1705
+ await finalizeWebpackProcessAssets({
2283
1706
  activeProcessCacheKeys,
2284
1707
  activeProcessHashKeys,
2285
- cache: compilerOptions.cache,
1708
+ activeWebpackCssSourceFiles,
1709
+ compilerOptions,
1710
+ cssAssetResources,
2286
1711
  cssHandlerOptionsCache,
1712
+ cssTaskFactories,
2287
1713
  cssUserHandlerOptionsCache,
2288
- phase: "processAssets",
2289
- sourceCandidateScan: webpackSourceCandidateScanCache.getMemoryStats()
2290
- }) });
2291
- compilerOptions.onEnd();
1714
+ debug,
1715
+ entries,
1716
+ groupedEntries,
1717
+ hmrTimingStartedAt,
1718
+ htmlTaskFactories,
1719
+ jsTaskFactories,
1720
+ pruneWebpackCssSources,
1721
+ recordTimingDetail,
1722
+ registeredWebpackCssSourceFiles,
1723
+ taskConcurrency,
1724
+ tasks,
1725
+ timingDetails,
1726
+ watchMode,
1727
+ webpackSourceCandidateScanCache
1728
+ });
1729
+ require_hmr_timing.finalizeCompilerShadowRun(runtimeState);
2292
1730
  });
2293
1731
  if (!isWebGeneratorTarget) compilation.hooks.processAssets.tapPromise({
2294
1732
  name: `${require_context.pluginName}:finalize-css-assets`,
@@ -2304,11 +1742,106 @@ function setupWebpackV5ProcessAssetsHook(options) {
2304
1742
  onUpdate: compilerOptions.onUpdate,
2305
1743
  debug
2306
1744
  });
2307
- for (const [file, asset] of groupedEntries.css) updateAssetIfChanged(file, finalizeWebpackCssAssetOutputSource(stringifyWebpackSourceLike(compilation.getAsset(file)?.source.source() ?? asset.source()), compilerOptions, isWebGeneratorTarget));
1745
+ for (const [file, asset] of groupedEntries.css) updateAssetIfChanged(file, require_pipeline_helpers.finalizeWebpackCssAssetOutputSource(require_pipeline_helpers.stringifyWebpackSourceLike(compilation.getAsset(file)?.source.source() ?? asset.source()), compilerOptions, isWebGeneratorTarget));
2308
1746
  });
2309
1747
  });
2310
1748
  }
2311
1749
  //#endregion
1750
+ //#region src/shared/mpx-plugin-owner.ts
1751
+ const localRequire = (0, node_module.createRequire)(require("url").pathToFileURL(__filename).href);
1752
+ const MPX_WEBPACK_PLUGIN_PACKAGE_RE = /@mpxjs[\\/]webpack-plugin[\\/]package\.json$/;
1753
+ const MPX_WEBPACK_PLUGIN_LIB_RE = /^(.*[\\/]@mpxjs[\\/]webpack-plugin)[\\/]lib[\\/]/;
1754
+ const MPX_RECORD_RESOURCE_MAP_DEPENDENCY_RE = /@mpxjs[\\/]webpack-plugin[\\/]lib[\\/]dependencies[\\/]RecordResourceMapDependency(?:\.js)?$/;
1755
+ const compilationOwnerDirs = /* @__PURE__ */ new WeakMap();
1756
+ function findMpxWebpackPluginDir(value) {
1757
+ if (typeof value === "string") return value.match(MPX_WEBPACK_PLUGIN_LIB_RE)?.[1];
1758
+ if (Array.isArray(value)) {
1759
+ for (const item of value) {
1760
+ const result = findMpxWebpackPluginDir(item);
1761
+ if (result) return result;
1762
+ }
1763
+ return;
1764
+ }
1765
+ if (value && typeof value === "object") for (const key of [
1766
+ "loader",
1767
+ "use",
1768
+ "rules",
1769
+ "oneOf"
1770
+ ]) {
1771
+ const result = findMpxWebpackPluginDir(value[key]);
1772
+ if (result) return result;
1773
+ }
1774
+ }
1775
+ function resolveContextPluginDir(context) {
1776
+ if (typeof context !== "string" || context.length === 0) return;
1777
+ try {
1778
+ const projectRequire = (0, node_module.createRequire)(node_path.default.join(context, "package.json"));
1779
+ return node_path.default.dirname(projectRequire.resolve("@mpxjs/webpack-plugin/package.json"));
1780
+ } catch {
1781
+ return;
1782
+ }
1783
+ }
1784
+ function resolveCompilationPluginDir(compilation, candidates) {
1785
+ const getTemplate = compilation?.dependencyTemplates?.get;
1786
+ if (typeof getTemplate !== "function") return;
1787
+ if (compilation && typeof compilation === "object") {
1788
+ const cached = compilationOwnerDirs.get(compilation);
1789
+ if (cached) return cached;
1790
+ }
1791
+ const rememberOwner = (pluginDir) => {
1792
+ if (pluginDir && compilation && typeof compilation === "object") compilationOwnerDirs.set(compilation, pluginDir);
1793
+ return pluginDir;
1794
+ };
1795
+ for (const [file, module] of Object.entries(localRequire.cache)) {
1796
+ if (!MPX_RECORD_RESOURCE_MAP_DEPENDENCY_RE.test(file)) continue;
1797
+ if (getTemplate.call(compilation.dependencyTemplates, module?.exports)) return rememberOwner(file.match(MPX_WEBPACK_PLUGIN_LIB_RE)?.[1]);
1798
+ }
1799
+ for (const pluginDir of candidates) try {
1800
+ const dependency = (0, node_module.createRequire)(node_path.default.join(pluginDir, "package.json"))(node_path.default.join(pluginDir, "lib/dependencies/RecordResourceMapDependency"));
1801
+ if (getTemplate.call(compilation.dependencyTemplates, dependency)) return rememberOwner(pluginDir);
1802
+ } catch {}
1803
+ }
1804
+ function collectMpxWebpackPluginDirs(owner, fallback) {
1805
+ const activeLoaderPluginDir = findMpxWebpackPluginDir([owner?._module?.loaders, owner?.loaders]);
1806
+ const contextPluginDirs = [
1807
+ owner?.rootContext,
1808
+ owner?.context,
1809
+ owner?.options?.context,
1810
+ node_process.default.cwd()
1811
+ ].map(resolveContextPluginDir).filter((item) => Boolean(item));
1812
+ const configuredRulePluginDir = findMpxWebpackPluginDir(owner?.options?.module?.rules);
1813
+ const cachedPluginDirs = Object.keys(localRequire.cache).map((file) => file.match(MPX_WEBPACK_PLUGIN_LIB_RE)?.[1] ?? (MPX_WEBPACK_PLUGIN_PACKAGE_RE.test(file) ? node_path.default.dirname(file) : void 0)).filter((item) => Boolean(item));
1814
+ const localPluginDir = (() => {
1815
+ try {
1816
+ return node_path.default.dirname(localRequire.resolve("@mpxjs/webpack-plugin/package.json"));
1817
+ } catch {
1818
+ return;
1819
+ }
1820
+ })();
1821
+ return {
1822
+ activeLoaderPluginDir,
1823
+ candidates: new Set([
1824
+ activeLoaderPluginDir,
1825
+ ...contextPluginDirs,
1826
+ configuredRulePluginDir,
1827
+ fallback,
1828
+ ...cachedPluginDirs,
1829
+ localPluginDir
1830
+ ].filter((item) => Boolean(item))),
1831
+ configuredRulePluginDir,
1832
+ contextPluginDirs,
1833
+ cachedPluginDirs,
1834
+ localPluginDir
1835
+ };
1836
+ }
1837
+ function resolveMpxWebpackPluginCompilationOwnerDir(owner, compilation, fallback) {
1838
+ return resolveCompilationPluginDir(compilation, collectMpxWebpackPluginDirs(owner, fallback).candidates);
1839
+ }
1840
+ function resolveMpxWebpackPluginDir(owner, fallback, compilation = owner?._compilation ?? owner?.compilation) {
1841
+ const { activeLoaderPluginDir, candidates, configuredRulePluginDir, contextPluginDirs, cachedPluginDirs, localPluginDir } = collectMpxWebpackPluginDirs(owner, fallback);
1842
+ return resolveCompilationPluginDir(compilation, candidates) ?? activeLoaderPluginDir ?? contextPluginDirs[0] ?? configuredRulePluginDir ?? fallback ?? cachedPluginDirs[0] ?? localPluginDir;
1843
+ }
1844
+ //#endregion
2312
1845
  //#region src/shared/tailwindcss-css-redirect.ts
2313
1846
  const moduleWithMutableResolve = node_module.default;
2314
1847
  const patched = /* @__PURE__ */ new WeakSet();
@@ -2327,33 +1860,8 @@ function installTailwindcssCssRedirect(pkgDir) {
2327
1860
  }
2328
1861
  //#endregion
2329
1862
  //#region src/shared/mpx.ts
2330
- const localRequire = (0, node_module.createRequire)(require("url").pathToFileURL(__filename).href);
2331
1863
  const MPX_STYLE_RESOURCE_QUERY_RE = /(?:^|[?&])type=styles(?:&|$)/;
2332
- const MPX_WEBPACK_PLUGIN_PACKAGE_RE = /@mpxjs[\\/]webpack-plugin[\\/]package\.json$/;
2333
- const MPX_WEBPACK_PLUGIN_LIB_RE = /^(.*[\\/]@mpxjs[\\/]webpack-plugin)[\\/]lib[\\/]/;
2334
- const MPX_WEBPACK_PLUGIN_REQUEST_RE = /@mpxjs\/webpack-plugin\/([^!?]+)/g;
2335
- function findMpxWebpackPluginDirFromRules(rules) {
2336
- const visit = (value) => {
2337
- if (typeof value === "string") return value.match(MPX_WEBPACK_PLUGIN_LIB_RE)?.[1];
2338
- if (Array.isArray(value)) {
2339
- for (const item of value) {
2340
- const result = visit(item);
2341
- if (result) return result;
2342
- }
2343
- return;
2344
- }
2345
- if (value && typeof value === "object") for (const key of [
2346
- "loader",
2347
- "use",
2348
- "rules",
2349
- "oneOf"
2350
- ]) {
2351
- const result = visit(value[key]);
2352
- if (result) return result;
2353
- }
2354
- };
2355
- return visit(rules);
2356
- }
1864
+ const MPX_WEBPACK_PLUGIN_REQUEST_PATH_RE = /(?:^|[\\/])@mpxjs[\\/]webpack-plugin(?:[\\/](.+))?$/;
2357
1865
  function isMpxStyleResourceQuery(query) {
2358
1866
  if (typeof query !== "string") return false;
2359
1867
  return MPX_STYLE_RESOURCE_QUERY_RE.test(query);
@@ -2361,34 +1869,16 @@ function isMpxStyleResourceQuery(query) {
2361
1869
  function getTailwindcssCssEntry(pkgDir) {
2362
1870
  return node_path.default.join(pkgDir, "index.css");
2363
1871
  }
2364
- function resolveMpxWebpackPluginDir(compiler) {
2365
- const rulePluginDir = findMpxWebpackPluginDirFromRules([
2366
- compiler?._module?.loaders,
2367
- compiler?.loaders,
2368
- compiler?.options?.module?.rules
2369
- ]);
2370
- if (rulePluginDir) return rulePluginDir;
2371
- const candidates = [
2372
- compiler?.context,
2373
- compiler?.options?.context,
2374
- node_process.default.cwd()
2375
- ].filter((item) => typeof item === "string" && item.length > 0);
2376
- for (const candidate of candidates) try {
2377
- const projectRequire = (0, node_module.createRequire)(node_path.default.join(candidate, "package.json"));
2378
- return node_path.default.dirname(projectRequire.resolve("@mpxjs/webpack-plugin/package.json"));
2379
- } catch {}
2380
- const cachedPackageJson = Object.keys(localRequire.cache).find((file) => MPX_WEBPACK_PLUGIN_PACKAGE_RE.test(file));
2381
- if (cachedPackageJson) return node_path.default.dirname(cachedPackageJson);
2382
- try {
2383
- return node_path.default.dirname(localRequire.resolve("@mpxjs/webpack-plugin/package.json"));
2384
- } catch {
2385
- return;
2386
- }
2387
- }
2388
1872
  function rewriteMpxWebpackPluginRequests(request, mpxWebpackPluginDir, pathImpl = node_path.default) {
2389
- return request.replace(MPX_WEBPACK_PLUGIN_REQUEST_RE, (_full, subpath) => {
2390
- return pathImpl.join(mpxWebpackPluginDir, ...subpath.split("/"));
2391
- });
1873
+ return request.split("!").map((segment) => {
1874
+ const queryIndex = segment.indexOf("?");
1875
+ const requestPath = queryIndex === -1 ? segment : segment.slice(0, queryIndex);
1876
+ const query = queryIndex === -1 ? "" : segment.slice(queryIndex);
1877
+ const match = requestPath.match(MPX_WEBPACK_PLUGIN_REQUEST_PATH_RE);
1878
+ if (!match) return segment;
1879
+ const subpath = match[1];
1880
+ return `${subpath ? pathImpl.join(mpxWebpackPluginDir, ...subpath.split(/[\\/]/)) : mpxWebpackPluginDir}${query}`;
1881
+ }).join("!");
2392
1882
  }
2393
1883
  function patchMpxWebpackPluginRequests(compiler, mpxWebpackPluginDir) {
2394
1884
  if (!mpxWebpackPluginDir || !compiler) return false;
@@ -2396,26 +1886,37 @@ function patchMpxWebpackPluginRequests(compiler, mpxWebpackPluginDir) {
2396
1886
  const patchedCompilers = /* @__PURE__ */ new WeakSet();
2397
1887
  const patchedLoaderResolvers = /* @__PURE__ */ new WeakSet();
2398
1888
  const patchedResolverFactories = /* @__PURE__ */ new WeakSet();
1889
+ let activePluginDir = mpxWebpackPluginDir;
1890
+ const getActivePluginDir = () => activePluginDir;
2399
1891
  const install = (targetCompiler) => {
2400
1892
  if (!targetCompiler || typeof targetCompiler !== "object" || patchedCompilers.has(targetCompiler)) return;
2401
1893
  patchedCompilers.add(targetCompiler);
2402
- ensureResolveLoaderAlias(targetCompiler, mpxWebpackPluginDir);
1894
+ ensureResolveLoaderAlias(targetCompiler, activePluginDir);
2403
1895
  const resolverFactory = targetCompiler.resolverFactory;
2404
1896
  if (resolverFactory && typeof resolverFactory === "object" && !patchedResolverFactories.has(resolverFactory)) {
2405
1897
  patchedResolverFactories.add(resolverFactory);
2406
- installMpxResolveLoaderAlias(targetCompiler, mpxWebpackPluginDir);
1898
+ installMpxResolveLoaderAlias(targetCompiler, getActivePluginDir);
2407
1899
  }
2408
1900
  targetCompiler.hooks?.normalModuleFactory?.tap?.(pluginName, (normalModuleFactory) => {
2409
1901
  const loaderResolver = normalModuleFactory.getResolver?.("loader");
2410
1902
  if (loaderResolver && typeof loaderResolver === "object" && !patchedLoaderResolvers.has(loaderResolver)) {
2411
1903
  patchedLoaderResolvers.add(loaderResolver);
2412
- patchMpxLoaderResolver(loaderResolver, mpxWebpackPluginDir);
1904
+ patchMpxLoaderResolver(loaderResolver, getActivePluginDir);
2413
1905
  }
2414
1906
  normalModuleFactory.hooks.beforeResolve.tap(pluginName, (resolveData) => {
2415
- if (typeof resolveData?.request === "string") resolveData.request = rewriteMpxWebpackPluginRequests(resolveData.request, mpxWebpackPluginDir);
1907
+ const pluginDir = getActivePluginDir();
1908
+ if (pluginDir && typeof resolveData?.request === "string") resolveData.request = rewriteMpxWebpackPluginRequests(resolveData.request, pluginDir);
2416
1909
  });
2417
1910
  });
2418
1911
  targetCompiler.hooks?.compilation?.tap?.(pluginName, (compilation) => {
1912
+ const compilationPluginDir = resolveMpxWebpackPluginCompilationOwnerDir(targetCompiler, compilation, activePluginDir);
1913
+ if (compilationPluginDir) {
1914
+ activePluginDir = compilationPluginDir;
1915
+ patchMpxWebpackPluginNormalizeLib(targetCompiler, compilationPluginDir);
1916
+ ensureResolveLoaderAlias(targetCompiler, compilationPluginDir);
1917
+ const alias = targetCompiler.options?.resolve?.alias;
1918
+ if (alias) addMpxWebpackPluginAlias(alias, compilationPluginDir);
1919
+ }
2419
1920
  compilation.hooks?.childCompiler?.tap?.(pluginName, (childCompiler) => {
2420
1921
  install(childCompiler);
2421
1922
  });
@@ -2435,20 +1936,33 @@ function addMpxWebpackPluginAlias(alias, pkgDir) {
2435
1936
  const recordLoader = node_path.default.join(pkgDir, "lib/record-loader");
2436
1937
  const styleCompiler = node_path.default.join(pkgDir, "lib/style-compiler/index");
2437
1938
  const stripConditionalLoader = node_path.default.join(pkgDir, "lib/style-compiler/strip-conditional-loader");
2438
- if (Array.isArray(alias)) alias.push({
2439
- name: "@mpxjs/webpack-plugin/lib/record-loader",
2440
- alias: recordLoader
2441
- }, {
2442
- name: "@mpxjs/webpack-plugin/lib/style-compiler/index",
2443
- alias: styleCompiler
2444
- }, {
2445
- name: "@mpxjs/webpack-plugin/lib/style-compiler/strip-conditional-loader",
2446
- alias: stripConditionalLoader
2447
- }, {
2448
- name: /^@mpxjs\/webpack-plugin\//,
2449
- alias: pkgDir
2450
- });
2451
- else {
1939
+ if (Array.isArray(alias)) {
1940
+ const entries = [
1941
+ {
1942
+ name: "@mpxjs/webpack-plugin/lib/record-loader",
1943
+ alias: recordLoader
1944
+ },
1945
+ {
1946
+ name: "@mpxjs/webpack-plugin/lib/style-compiler/index",
1947
+ alias: styleCompiler
1948
+ },
1949
+ {
1950
+ name: "@mpxjs/webpack-plugin/lib/style-compiler/strip-conditional-loader",
1951
+ alias: stripConditionalLoader
1952
+ },
1953
+ {
1954
+ name: /^@mpxjs\/webpack-plugin\//,
1955
+ alias: pkgDir
1956
+ }
1957
+ ];
1958
+ const managedNames = new Set(entries.filter((entry) => typeof entry.name === "string").map((entry) => entry.name));
1959
+ const managedPatterns = new Set(entries.filter((entry) => entry.name instanceof RegExp).map((entry) => `${entry.name.source}/${entry.name.flags}`));
1960
+ for (let index = alias.length - 1; index >= 0; index--) {
1961
+ const name = alias[index]?.name;
1962
+ if (managedNames.has(name) || name instanceof RegExp && managedPatterns.has(`${name.source}/${name.flags}`)) alias.splice(index, 1);
1963
+ }
1964
+ alias.unshift(...entries);
1965
+ } else {
2452
1966
  alias["@mpxjs/webpack-plugin"] = pkgDir;
2453
1967
  alias["@mpxjs/webpack-plugin$"] = pkgDir;
2454
1968
  alias["@mpxjs/webpack-plugin/lib/record-loader"] = recordLoader;
@@ -2462,13 +1976,15 @@ function ensureResolveLoaderAlias(compiler, mpxWebpackPluginDir) {
2462
1976
  compiler.options.resolveLoader.alias = alias;
2463
1977
  addMpxWebpackPluginAlias(alias, mpxWebpackPluginDir);
2464
1978
  }
2465
- function installMpxResolveLoaderAlias(compiler, mpxWebpackPluginDir) {
1979
+ function installMpxResolveLoaderAlias(compiler, getMpxWebpackPluginDir) {
2466
1980
  const resolveOptionsHook = compiler?.resolverFactory?.hooks?.resolveOptions?.for?.("loader");
2467
1981
  if (!resolveOptionsHook?.tap) return;
2468
1982
  resolveOptionsHook.tap({
2469
1983
  name: "weapp-tailwindcss-mpx-loader-resolve",
2470
1984
  stage: 100
2471
1985
  }, (resolveOptions) => {
1986
+ const mpxWebpackPluginDir = getMpxWebpackPluginDir();
1987
+ if (!mpxWebpackPluginDir) return resolveOptions;
2472
1988
  const alias = Array.isArray(resolveOptions.alias) ? [...resolveOptions.alias] : { ...resolveOptions.alias };
2473
1989
  addMpxWebpackPluginAlias(alias, mpxWebpackPluginDir);
2474
1990
  return {
@@ -2477,13 +1993,14 @@ function installMpxResolveLoaderAlias(compiler, mpxWebpackPluginDir) {
2477
1993
  };
2478
1994
  });
2479
1995
  }
2480
- function patchMpxLoaderResolver(resolver, mpxWebpackPluginDir) {
1996
+ function patchMpxLoaderResolver(resolver, getMpxWebpackPluginDir) {
2481
1997
  const originalResolve = resolver?.resolve;
2482
1998
  if (typeof originalResolve !== "function" || originalResolve.__weappTwPatched) return;
2483
1999
  const wrappedResolve = function(...args) {
2484
2000
  const requestIndex = typeof args[0] === "string" ? 1 : 2;
2485
2001
  const request = args[requestIndex];
2486
- if (typeof request === "string" && isMpxWebpackPluginRequest(request)) args[requestIndex] = resolveMpxWebpackPluginRequest(request, mpxWebpackPluginDir);
2002
+ const mpxWebpackPluginDir = getMpxWebpackPluginDir();
2003
+ if (mpxWebpackPluginDir && typeof request === "string" && isMpxWebpackPluginRequest(request)) args[requestIndex] = resolveMpxWebpackPluginRequest(request, mpxWebpackPluginDir);
2487
2004
  return originalResolve.apply(this, args);
2488
2005
  };
2489
2006
  wrappedResolve.__weappTwPatched = true;
@@ -2533,12 +2050,13 @@ function ensureMpxTailwindcssAliases(compiler, pkgDir) {
2533
2050
  function patchMpxLoaderResolve(loaderContext, pkgDir, enabled) {
2534
2051
  if (!enabled) return;
2535
2052
  const tailwindcssCssEntry = getTailwindcssCssEntry(pkgDir);
2536
- const mpxWebpackPluginDir = resolveMpxWebpackPluginDir(loaderContext);
2053
+ const getMpxWebpackPluginDir = () => resolveMpxWebpackPluginDir(loaderContext);
2537
2054
  const originalResolve = loaderContext.resolve;
2538
2055
  if (typeof originalResolve === "function" && !originalResolve.__weappTwPatched) {
2539
2056
  const wrappedResolve = function(context, request, callback) {
2540
2057
  if (request === "tailwindcss" || request === "tailwindcss$") return callback(null, tailwindcssCssEntry);
2541
2058
  if (request?.startsWith("tailwindcss/")) return callback(null, node_path.default.join(pkgDir, request.slice(12)));
2059
+ const mpxWebpackPluginDir = getMpxWebpackPluginDir();
2542
2060
  if (mpxWebpackPluginDir && isMpxWebpackPluginRequest(request)) return callback(null, resolveMpxWebpackPluginRequest(request, mpxWebpackPluginDir));
2543
2061
  return originalResolve.call(this, context, request, callback);
2544
2062
  };
@@ -2546,9 +2064,10 @@ function patchMpxLoaderResolve(loaderContext, pkgDir, enabled) {
2546
2064
  loaderContext.resolve = wrappedResolve;
2547
2065
  }
2548
2066
  const originalImportModule = loaderContext.importModule;
2549
- if (mpxWebpackPluginDir && typeof originalImportModule === "function" && !originalImportModule.__weappTwPatched) {
2067
+ if (typeof originalImportModule === "function" && !originalImportModule.__weappTwPatched) {
2550
2068
  const wrappedImportModule = function(request, ...args) {
2551
- const resolvedRequest = typeof request === "string" ? rewriteMpxWebpackPluginRequests(request, mpxWebpackPluginDir) : request;
2069
+ const mpxWebpackPluginDir = getMpxWebpackPluginDir();
2070
+ const resolvedRequest = mpxWebpackPluginDir && typeof request === "string" ? rewriteMpxWebpackPluginRequests(request, mpxWebpackPluginDir) : request;
2552
2071
  return originalImportModule.call(this, resolvedRequest, ...args);
2553
2072
  };
2554
2073
  wrappedImportModule.__weappTwPatched = true;
@@ -2578,16 +2097,6 @@ function injectMpxCssRewritePreRules(compiler, loader, loaderOptions) {
2578
2097
  }));
2579
2098
  }
2580
2099
  //#endregion
2581
- //#region src/bundlers/webpack/loaders/runtime-registry.ts
2582
- const runtimeRegistryHolder = globalThis;
2583
- const runtimeRegistry = runtimeRegistryHolder.__WEAPP_TW_WEBPACK_LOADER_RUNTIME_REGISTRY__ ?? (runtimeRegistryHolder.__WEAPP_TW_WEBPACK_LOADER_RUNTIME_REGISTRY__ = /* @__PURE__ */ new Map());
2584
- function setWebpackLoaderRuntime(key, entry) {
2585
- runtimeRegistry.set(key, entry);
2586
- }
2587
- function deleteWebpackLoaderRuntime(key) {
2588
- runtimeRegistry.delete(key);
2589
- }
2590
- //#endregion
2591
2100
  //#region src/bundlers/webpack/shared/loader-anchors.ts
2592
2101
  const MPX_STRIP_CONDITIONAL_LOADER = "@mpxjs/webpack-plugin/lib/style-compiler/strip-conditional-loader";
2593
2102
  const MPX_STYLE_COMPILER_LOADER = "@mpxjs/webpack-plugin/lib/style-compiler/index";
@@ -2620,7 +2129,7 @@ function createDefaultLoaderAnchorFinders() {
2620
2129
  //#endregion
2621
2130
  //#region src/bundlers/webpack/BaseUnifiedPlugin/v5-loaders.ts
2622
2131
  function setupWebpackV5Loaders(options) {
2623
- const { compiler, options: compilerOptions, appType, weappTailwindcssPackageDir, shouldRewriteCssImports, runtimeLoaderPath, registerAutoCssSource, runtimeState, getClassSetInLoader, getRuntimeSetInLoader, markWebpackProcessedCssSource, markWebpackCssSourceModule, registerWebpackGeneratedCss, registerWebpackCssSourceFile, getRuntimeWatchDependencies, loaderAnchorFinders = createDefaultLoaderAnchorFinders(), mpxCssImportRewrite = false, runtimeRegistryKey = `weapp-tailwindcss-${Date.now()}-${Math.random().toString(36).slice(2)}`, debug } = options;
2132
+ const { compiler, options: compilerOptions, appType, weappTailwindcssPackageDir, shouldRewriteCssImports, runtimeLoaderPath, registerAutoCssSource, runtimeState, getClassSetInLoader, getRuntimeSetInLoader, markWebpackProcessedCssSource, markWebpackCssSourceModule, registerWebpackGeneratedCss, updateWebpackGeneratedCss, registerWebpackCssSourceFile, getRuntimeWatchDependencies, loaderAnchorFinders = createDefaultLoaderAnchorFinders(), mpxCssImportRewrite = false, runtimeRegistryKey = `weapp-tailwindcss-${Date.now()}-${Math.random().toString(36).slice(2)}`, debug } = options;
2624
2133
  const generatorOptions = require_generator.normalizeWeappTailwindcssGeneratorOptions(compilerOptions.generator, {
2625
2134
  appType: compilerOptions.appType,
2626
2135
  platform: compilerOptions.cssOptions?.platform ?? compilerOptions.platform,
@@ -2636,12 +2145,12 @@ function setupWebpackV5Loaders(options) {
2636
2145
  uniAppX: compilerOptions.uniAppX
2637
2146
  });
2638
2147
  if (shouldRewriteCssImports && mpxCssImportRewrite) ensureMpxTailwindcssAliases(compiler, weappTailwindcssPackageDir);
2639
- const runtimeClassSetLoader = runtimeLoaderPath ?? node_path.default.resolve(__dirname, "./weapp-tw-runtime-classset-loader.js");
2148
+ const runtimeClassSetLoader = runtimeLoaderPath ?? node_path.default.resolve(__dirname, "./weapp-tw-runtime-classset-loader.cjs");
2640
2149
  const shouldInjectRuntimeClassSetLoader = !generatorBranch.isWeb;
2641
2150
  const shouldInjectCssGenerationLoader = generatorOptions.enabled && runtimeState.tailwindRuntime.majorVersion === 4 && (generatorTarget === "web" || generatorTarget === "weapp");
2642
2151
  const shouldInjectCssImportRewriteLoader = shouldRewriteCssImports || shouldInjectCssGenerationLoader;
2643
- const runtimeCssGenerationLoader = shouldInjectCssGenerationLoader ? node_path.default.resolve(__dirname, "./weapp-tw-css-generation-loader.js") : void 0;
2644
- const runtimeCssImportRewriteLoader = shouldInjectCssImportRewriteLoader ? node_path.default.resolve(__dirname, "./weapp-tw-css-import-rewrite-loader.js") : void 0;
2152
+ const runtimeCssGenerationLoader = shouldInjectCssGenerationLoader ? node_path.default.resolve(__dirname, "./weapp-tw-css-generation-loader.cjs") : void 0;
2153
+ const runtimeCssImportRewriteLoader = shouldInjectCssImportRewriteLoader ? node_path.default.resolve(__dirname, "./weapp-tw-css-import-rewrite-loader.cjs") : void 0;
2645
2154
  const runtimeClassSetLoaderExists = node_fs.default.existsSync(runtimeClassSetLoader);
2646
2155
  const runtimeCssGenerationLoaderExists = runtimeCssGenerationLoader ? node_fs.default.existsSync(runtimeCssGenerationLoader) : false;
2647
2156
  const runtimeCssImportRewriteLoaderExists = runtimeCssImportRewriteLoader ? node_fs.default.existsSync(runtimeCssImportRewriteLoader) : false;
@@ -2656,16 +2165,18 @@ function setupWebpackV5Loaders(options) {
2656
2165
  ...markWebpackProcessedCssSource === void 0 ? {} : { markGeneratedCssSource: markWebpackProcessedCssSource },
2657
2166
  ...registerWebpackGeneratedCss === void 0 ? {} : { registerGeneratedCss: registerWebpackGeneratedCss }
2658
2167
  } : void 0;
2659
- setWebpackLoaderRuntime(runtimeRegistryKey, {
2168
+ require_runtime_registry.setWebpackLoaderRuntime(runtimeRegistryKey, {
2660
2169
  classSet: {
2661
2170
  getClassSet: getClassSetInLoader,
2662
2171
  getWatchDependencies: getRuntimeWatchDependencies,
2663
- ...registerWebpackCssSourceFile === void 0 ? {} : { registerCssSourceFile: registerWebpackCssSourceFile }
2172
+ ...registerWebpackCssSourceFile === void 0 ? {} : { registerCssSourceFile: registerWebpackCssSourceFile },
2173
+ ...updateWebpackGeneratedCss === void 0 ? {} : { updateGeneratedCss: updateWebpackGeneratedCss }
2664
2174
  },
2665
2175
  ...runtimeLoaderRewriteOptions === void 0 ? {} : { cssImportRewrite: runtimeLoaderRewriteOptions }
2666
2176
  });
2667
2177
  const cleanupWebpackLoaderRuntime = () => {
2668
- deleteWebpackLoaderRuntime(runtimeRegistryKey);
2178
+ require_runtime_registry.deleteWebpackLoaderRuntime(runtimeRegistryKey);
2179
+ require_v4_generation_core.disposeCompilerOwner(runtimeState);
2669
2180
  };
2670
2181
  compiler.hooks.watchClose?.tap?.(require_context.pluginName, cleanupWebpackLoaderRuntime);
2671
2182
  compiler.hooks.shutdown?.tap?.(require_context.pluginName, cleanupWebpackLoaderRuntime);
@@ -2712,6 +2223,10 @@ function setupWebpackV5Loaders(options) {
2712
2223
  let rewriteAnchorIdx = findRewriteAnchor(loaderEntries);
2713
2224
  const classSetAnchorIdx = findClassSetAnchor(loaderEntries);
2714
2225
  const isCssModule = isCssLikeModuleResource(module.resource, compilerOptions.cssMatcher, appType);
2226
+ if (isCssModule) {
2227
+ const frameworkPostcssOptions = require_v4_generation_core.collectFrameworkPostcssOptionsFromLoaderEntries(loaderEntries, _loaderContext);
2228
+ if (frameworkPostcssOptions) require_v4_generation_core.captureResolvedFrameworkPostcssOptions(compilerOptions, frameworkPostcssOptions);
2229
+ }
2715
2230
  if (isCssModule && typeof module.resource === "string") markWebpackCssSourceModule?.(module.resource);
2716
2231
  if (node_process.default.env["WEAPP_TW_LOADER_DEBUG"] && isCssModule) debug("loader hook css module: %s loaders=%o anchors=%o", module.resource, loaderEntries.map((x) => x.loader), {
2717
2232
  rewriteAnchorIdx,
@@ -2759,7 +2274,7 @@ function setupWebpackV5Loaders(options) {
2759
2274
  });
2760
2275
  }
2761
2276
  //#endregion
2762
- //#region src/bundlers/webpack/shared/create-framework-plugin.ts
2277
+ //#region src/bundlers/webpack/shared/create-framework-plugin/watch-output.ts
2763
2278
  const debug = require_wxml.createDebug();
2764
2279
  const weappTailwindcssPackageDir = require_source_candidate_scan_signature.resolvePackageDir("weapp-tailwindcss");
2765
2280
  const outputIgnoredPredicatePath = Symbol("weapp-tailwindcss.outputIgnoredPredicatePath");
@@ -2825,15 +2340,17 @@ function setupWebpackWatchOutputIgnore(compiler) {
2825
2340
  }
2826
2341
  });
2827
2342
  }
2343
+ //#endregion
2344
+ //#region src/bundlers/webpack/shared/create-framework-plugin/plugin.ts
2828
2345
  function isInternalUserDefinedOptions(options) {
2829
2346
  return typeof options.onLoad === "function" && typeof options.mainCssChunkMatcher === "function" && typeof options.tailwindRuntime === "object" && typeof options.refreshTailwindcssRuntime === "function";
2830
2347
  }
2831
2348
  var WebpackFrameworkPlugin = class {
2832
2349
  constructor(options = {}, frameworkBranch) {
2833
- require_wxml._defineProperty(this, "options", void 0);
2834
- require_wxml._defineProperty(this, "appType", void 0);
2835
- require_wxml._defineProperty(this, "hasInitialTailwindCssRoots", void 0);
2836
- require_wxml._defineProperty(this, "frameworkBranch", void 0);
2350
+ require_object._defineProperty(this, "options", void 0);
2351
+ require_object._defineProperty(this, "appType", void 0);
2352
+ require_object._defineProperty(this, "hasInitialTailwindCssRoots", void 0);
2353
+ require_object._defineProperty(this, "frameworkBranch", void 0);
2837
2354
  this.frameworkBranch = frameworkBranch;
2838
2355
  this.hasInitialTailwindCssRoots = require_generator.hasConfiguredTailwindV4CssRoots(options);
2839
2356
  this.options = isInternalUserDefinedOptions(options) ? options : require_context.getCompilerContext({
@@ -2970,6 +2487,15 @@ var WebpackFrameworkPlugin = class {
2970
2487
  });
2971
2488
  currentWebpackCssSourceFiles.add(file);
2972
2489
  };
2490
+ const updateWebpackGeneratedCss = (source) => {
2491
+ const file = node_path.default.resolve(source.file);
2492
+ const previous = webpackGeneratedCssSources.get(file);
2493
+ if (!previous) return;
2494
+ webpackGeneratedCssSources.set(file, {
2495
+ ...previous,
2496
+ css: source.css
2497
+ });
2498
+ };
2973
2499
  const pruneWebpackCssSources = (activeSourceFiles, _options = {}) => {
2974
2500
  const tailwindOptions = require_generator.resolveTailwindcssOptions(runtimeState.tailwindRuntime.options);
2975
2501
  const configuredSourceFiles = /* @__PURE__ */ new Set();
@@ -3047,6 +2573,7 @@ var WebpackFrameworkPlugin = class {
3047
2573
  markWebpackCssSourceModule,
3048
2574
  registerWebpackCssSourceFile,
3049
2575
  registerWebpackGeneratedCss,
2576
+ updateWebpackGeneratedCss,
3050
2577
  getRuntimeWatchDependencies() {
3051
2578
  return {
3052
2579
  files: runtimeWatchDependencyFiles,
@@ -3162,8 +2689,8 @@ function createWebpackFrameworkPlugin(frameworkName, options = {}) {
3162
2689
  */
3163
2690
  var WeappTailwindcss = class {
3164
2691
  constructor(options = {}) {
3165
- require_wxml._defineProperty(this, "options", void 0);
3166
- require_wxml._defineProperty(this, "appType", void 0);
2692
+ require_object._defineProperty(this, "options", void 0);
2693
+ require_object._defineProperty(this, "appType", void 0);
3167
2694
  this.options = require_context.getCompilerContext({
3168
2695
  ...options,
3169
2696
  __internalDeferMissingCssEntriesWarning: true