@csszyx/unplugin 0.15.3 → 0.16.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.
- package/dist/index.cjs +2 -1
- package/dist/index.d.cts +2 -2
- package/dist/index.d.mts +2 -2
- package/dist/index.mjs +1 -1
- package/dist/shared/{unplugin.CInSoHdQ.d.mts → unplugin.Bu2rzRtv.d.mts} +17 -1
- package/dist/shared/{unplugin.ZqxgHk5F.cjs → unplugin.D3yBoTHP.cjs} +54 -36
- package/dist/shared/{unplugin.CPo2xrEy.mjs → unplugin.Dx0ngYWw.mjs} +52 -35
- package/dist/shared/{unplugin.nvme_dSL.d.cts → unplugin.PKo7wFzu.d.cts} +17 -1
- package/dist/vite.cjs +1 -1
- package/dist/vite.d.cts +2 -2
- package/dist/vite.d.mts +1 -1
- package/dist/vite.mjs +1 -1
- package/dist/webpack.cjs +1 -1
- package/dist/webpack.d.cts +2 -2
- package/dist/webpack.d.mts +1 -1
- package/dist/webpack.mjs +1 -1
- package/package.json +9 -9
package/dist/index.cjs
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
4
|
|
|
5
5
|
const cssMangler = require('./css-mangler.cjs');
|
|
6
|
-
const unplugin = require('./shared/unplugin.
|
|
6
|
+
const unplugin = require('./shared/unplugin.D3yBoTHP.cjs');
|
|
7
7
|
const themeGroupsFile = require('./shared/unplugin.J6ue_lRJ.cjs');
|
|
8
8
|
const types = require('@csszyx/types');
|
|
9
9
|
const safelistSource = require('./shared/unplugin.DDSWQJYX.cjs');
|
|
@@ -81,6 +81,7 @@ exports.rollupPlugin = unplugin.rollupPlugin;
|
|
|
81
81
|
exports.scanGlobalVarCss = unplugin.scanGlobalVarCss;
|
|
82
82
|
exports.shouldEmitMissingCssFallback = unplugin.shouldEmitMissingCssFallback;
|
|
83
83
|
exports.shouldEmitWarning = unplugin.shouldEmitWarning;
|
|
84
|
+
exports.shouldHoldAdvisories = unplugin.shouldHoldAdvisories;
|
|
84
85
|
exports.shouldTrackGlobalVarSources = unplugin.shouldTrackGlobalVarSources;
|
|
85
86
|
exports.shouldWarnMissingTailwindEntry = unplugin.shouldWarnMissingTailwindEntry;
|
|
86
87
|
exports.shouldWarnUnscopedMonorepo = unplugin.shouldWarnUnscopedMonorepo;
|
package/dist/index.d.cts
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
export { CSSManglerOptions, CSSManglerResult, ClassAttributeSelector, MangleMap, classAttributeSelectorKey, createPostCSSPlugin, escapeCSSClassName, mangleCSS, mangleCSSSync, unescapeTailwindClass } from './css-mangler.cjs';
|
|
2
2
|
export { CSSZYX_GLOBAL_ALIAS_PREFIX, TAILWIND_RESERVED_PREFIXES } from '@csszyx/types';
|
|
3
|
-
import { G as GlobalVarScanCacheKeyInput, C as CssVarScanResult, S as ScanGlobalVarCssOptions, P as PlanGlobalVarAliasesInput, a as GlobalVarAliasPlan, R as RewriteGlobalVarCssAliasesOptions, b as GlobalVarCssAliasRewriteResult, c as CreateGlobalVarAliasValidationOptionsInput, V as ValidateGlobalVarAliasInputsOptions, d as GlobalVarAliasValidationResult } from './shared/unplugin.
|
|
3
|
+
import { G as GlobalVarScanCacheKeyInput, C as CssVarScanResult, S as ScanGlobalVarCssOptions, P as PlanGlobalVarAliasesInput, a as GlobalVarAliasPlan, R as RewriteGlobalVarCssAliasesOptions, b as GlobalVarCssAliasRewriteResult, c as CreateGlobalVarAliasValidationOptionsInput, V as ValidateGlobalVarAliasInputsOptions, d as GlobalVarAliasValidationResult } from './shared/unplugin.PKo7wFzu.cjs';
|
|
4
4
|
// @ts-ignore
|
|
5
5
|
export = undefined;
|
|
6
|
-
export { e as CssVarDefinition, f as CssVarLocation, g as CssVarReference, h as GlobalVarAliasDiagnostic, i as GlobalVarAliasDiagnosticSeverity, j as GlobalVarAliasEntry, k as GlobalVarCodeSource, l as GlobalVarCssAssetSource, m as GlobalVarCssSource, n as GlobalVarScanCacheEntry, M as MangleHybridHazards, o as MangleSelectorHazard, p as ParsedTheme, q as ParsedUtilities, Q as QuietMode, r as RSCBoundaryViolation, s as RSCModuleRecord, t as allocateMangleTokens, u as assertNoRSCBoundaryViolation, v as assertNoRSCGraphViolation, w as collectMangleHybridHazards, x as createGlobalVarMapAssetSource, y as createRSCModuleRecord, z as cssHasContentScope, B as deleteRSCModuleRecord, D as emitMissingCssFallback, E as esbuildPlugin, F as extractGlobalVarAliasesForManifest, H as fileMayContainSafelistableSz, I as findLocalImportSources, J as findRSCBoundaryViolation, K as findRSCGraphViolation, L as hasInjectableTailwindCandidate, N as hasTokens, O as hasUseClientDirective, T as hasUseServerDirective, U as isAdvisoryDiagnostic, W as isCompileSourceOptedIn, X as isHardIgnoredPath, Y as isMangleableCssId, Z as isMonorepoPackage, _ as isPackagesSkippedSource, $ as isRSCServerModule, a0 as lateMangleCensusMessage, a1 as mangleCodeClassesSync, a2 as mangleEligibleClasses, a3 as mangleHybridHazardMessage, a4 as mergeThemes, a5 as missingTailwindEntryMessage, a6 as normalizeGlobalVarAliasesForCache, a7 as parseThemeBlocks, a8 as parseUtilityBlocks, a9 as realContentHashDisabledMessage, aa as recordGlobalVarSourceFile, ab as resolveCompileSourceDirs, ac as resolveNativeCacheIdentity, ad as resolveQuietMode, ae as rollupPlugin, af as scanCustomPropertyNames, ag as shouldEmitMissingCssFallback, ah as shouldEmitWarning, ai as
|
|
6
|
+
export { e as CssVarDefinition, f as CssVarLocation, g as CssVarReference, h as GlobalVarAliasDiagnostic, i as GlobalVarAliasDiagnosticSeverity, j as GlobalVarAliasEntry, k as GlobalVarCodeSource, l as GlobalVarCssAssetSource, m as GlobalVarCssSource, n as GlobalVarScanCacheEntry, M as MangleHybridHazards, o as MangleSelectorHazard, p as ParsedTheme, q as ParsedUtilities, Q as QuietMode, r as RSCBoundaryViolation, s as RSCModuleRecord, t as allocateMangleTokens, u as assertNoRSCBoundaryViolation, v as assertNoRSCGraphViolation, w as collectMangleHybridHazards, x as createGlobalVarMapAssetSource, y as createRSCModuleRecord, z as cssHasContentScope, B as deleteRSCModuleRecord, D as emitMissingCssFallback, E as esbuildPlugin, F as extractGlobalVarAliasesForManifest, H as fileMayContainSafelistableSz, I as findLocalImportSources, J as findRSCBoundaryViolation, K as findRSCGraphViolation, L as hasInjectableTailwindCandidate, N as hasTokens, O as hasUseClientDirective, T as hasUseServerDirective, U as isAdvisoryDiagnostic, W as isCompileSourceOptedIn, X as isHardIgnoredPath, Y as isMangleableCssId, Z as isMonorepoPackage, _ as isPackagesSkippedSource, $ as isRSCServerModule, a0 as lateMangleCensusMessage, a1 as mangleCodeClassesSync, a2 as mangleEligibleClasses, a3 as mangleHybridHazardMessage, a4 as mergeThemes, a5 as missingTailwindEntryMessage, a6 as normalizeGlobalVarAliasesForCache, a7 as parseThemeBlocks, a8 as parseUtilityBlocks, a9 as realContentHashDisabledMessage, aa as recordGlobalVarSourceFile, ab as resolveCompileSourceDirs, ac as resolveNativeCacheIdentity, ad as resolveQuietMode, ae as rollupPlugin, af as scanCustomPropertyNames, ag as shouldEmitMissingCssFallback, ah as shouldEmitWarning, ai as shouldHoldAdvisories, aj as shouldTrackGlobalVarSources, ak as shouldWarnMissingTailwindEntry, al as shouldWarnUnscopedMonorepo, am as skippedSzFilesMessage, an as suppressedAdvisoryMessage, A as unplugin, ao as unscopedMonorepoMessage, ap as vitePlugin, aq as watchModeMangleMessage, ar as webpackPlugin } from './shared/unplugin.PKo7wFzu.cjs';
|
|
7
7
|
import 'postcss';
|
|
8
8
|
import '@csszyx/compiler';
|
|
9
9
|
import 'esbuild';
|
package/dist/index.d.mts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
export { CSSManglerOptions, CSSManglerResult, ClassAttributeSelector, MangleMap, classAttributeSelectorKey, createPostCSSPlugin, escapeCSSClassName, mangleCSS, mangleCSSSync, unescapeTailwindClass } from './css-mangler.mjs';
|
|
2
2
|
export { CSSZYX_GLOBAL_ALIAS_PREFIX, TAILWIND_RESERVED_PREFIXES } from '@csszyx/types';
|
|
3
|
-
import { G as GlobalVarScanCacheKeyInput, C as CssVarScanResult, S as ScanGlobalVarCssOptions, P as PlanGlobalVarAliasesInput, a as GlobalVarAliasPlan, R as RewriteGlobalVarCssAliasesOptions, b as GlobalVarCssAliasRewriteResult, c as CreateGlobalVarAliasValidationOptionsInput, V as ValidateGlobalVarAliasInputsOptions, d as GlobalVarAliasValidationResult } from './shared/unplugin.
|
|
4
|
-
export { e as CssVarDefinition, f as CssVarLocation, g as CssVarReference, h as GlobalVarAliasDiagnostic, i as GlobalVarAliasDiagnosticSeverity, j as GlobalVarAliasEntry, k as GlobalVarCodeSource, l as GlobalVarCssAssetSource, m as GlobalVarCssSource, n as GlobalVarScanCacheEntry, M as MangleHybridHazards, o as MangleSelectorHazard, p as ParsedTheme, q as ParsedUtilities, Q as QuietMode, r as RSCBoundaryViolation, s as RSCModuleRecord, t as allocateMangleTokens, u as assertNoRSCBoundaryViolation, v as assertNoRSCGraphViolation, w as collectMangleHybridHazards, x as createGlobalVarMapAssetSource, y as createRSCModuleRecord, z as cssHasContentScope, A as default, B as deleteRSCModuleRecord, D as emitMissingCssFallback, E as esbuildPlugin, F as extractGlobalVarAliasesForManifest, H as fileMayContainSafelistableSz, I as findLocalImportSources, J as findRSCBoundaryViolation, K as findRSCGraphViolation, L as hasInjectableTailwindCandidate, N as hasTokens, O as hasUseClientDirective, T as hasUseServerDirective, U as isAdvisoryDiagnostic, W as isCompileSourceOptedIn, X as isHardIgnoredPath, Y as isMangleableCssId, Z as isMonorepoPackage, _ as isPackagesSkippedSource, $ as isRSCServerModule, a0 as lateMangleCensusMessage, a1 as mangleCodeClassesSync, a2 as mangleEligibleClasses, a3 as mangleHybridHazardMessage, a4 as mergeThemes, a5 as missingTailwindEntryMessage, a6 as normalizeGlobalVarAliasesForCache, a7 as parseThemeBlocks, a8 as parseUtilityBlocks, a9 as realContentHashDisabledMessage, aa as recordGlobalVarSourceFile, ab as resolveCompileSourceDirs, ac as resolveNativeCacheIdentity, ad as resolveQuietMode, ae as rollupPlugin, af as scanCustomPropertyNames, ag as shouldEmitMissingCssFallback, ah as shouldEmitWarning, ai as
|
|
3
|
+
import { G as GlobalVarScanCacheKeyInput, C as CssVarScanResult, S as ScanGlobalVarCssOptions, P as PlanGlobalVarAliasesInput, a as GlobalVarAliasPlan, R as RewriteGlobalVarCssAliasesOptions, b as GlobalVarCssAliasRewriteResult, c as CreateGlobalVarAliasValidationOptionsInput, V as ValidateGlobalVarAliasInputsOptions, d as GlobalVarAliasValidationResult } from './shared/unplugin.Bu2rzRtv.mjs';
|
|
4
|
+
export { e as CssVarDefinition, f as CssVarLocation, g as CssVarReference, h as GlobalVarAliasDiagnostic, i as GlobalVarAliasDiagnosticSeverity, j as GlobalVarAliasEntry, k as GlobalVarCodeSource, l as GlobalVarCssAssetSource, m as GlobalVarCssSource, n as GlobalVarScanCacheEntry, M as MangleHybridHazards, o as MangleSelectorHazard, p as ParsedTheme, q as ParsedUtilities, Q as QuietMode, r as RSCBoundaryViolation, s as RSCModuleRecord, t as allocateMangleTokens, u as assertNoRSCBoundaryViolation, v as assertNoRSCGraphViolation, w as collectMangleHybridHazards, x as createGlobalVarMapAssetSource, y as createRSCModuleRecord, z as cssHasContentScope, A as default, B as deleteRSCModuleRecord, D as emitMissingCssFallback, E as esbuildPlugin, F as extractGlobalVarAliasesForManifest, H as fileMayContainSafelistableSz, I as findLocalImportSources, J as findRSCBoundaryViolation, K as findRSCGraphViolation, L as hasInjectableTailwindCandidate, N as hasTokens, O as hasUseClientDirective, T as hasUseServerDirective, U as isAdvisoryDiagnostic, W as isCompileSourceOptedIn, X as isHardIgnoredPath, Y as isMangleableCssId, Z as isMonorepoPackage, _ as isPackagesSkippedSource, $ as isRSCServerModule, a0 as lateMangleCensusMessage, a1 as mangleCodeClassesSync, a2 as mangleEligibleClasses, a3 as mangleHybridHazardMessage, a4 as mergeThemes, a5 as missingTailwindEntryMessage, a6 as normalizeGlobalVarAliasesForCache, a7 as parseThemeBlocks, a8 as parseUtilityBlocks, a9 as realContentHashDisabledMessage, aa as recordGlobalVarSourceFile, ab as resolveCompileSourceDirs, ac as resolveNativeCacheIdentity, ad as resolveQuietMode, ae as rollupPlugin, af as scanCustomPropertyNames, ag as shouldEmitMissingCssFallback, ah as shouldEmitWarning, ai as shouldHoldAdvisories, aj as shouldTrackGlobalVarSources, ak as shouldWarnMissingTailwindEntry, al as shouldWarnUnscopedMonorepo, am as skippedSzFilesMessage, an as suppressedAdvisoryMessage, A as unplugin, ao as unscopedMonorepoMessage, ap as vitePlugin, aq as watchModeMangleMessage, ar as webpackPlugin } from './shared/unplugin.Bu2rzRtv.mjs';
|
|
5
5
|
import 'postcss';
|
|
6
6
|
import '@csszyx/compiler';
|
|
7
7
|
import 'esbuild';
|
package/dist/index.mjs
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
export { classAttributeSelectorKey, createPostCSSPlugin, escapeCSSClassName, mangleCSS, mangleCSSSync, unescapeTailwindClass } from './css-mangler.mjs';
|
|
2
|
-
export { a as allocateMangleTokens, b as assertNoRSCBoundaryViolation, c as assertNoRSCGraphViolation, d as collectMangleHybridHazards, e as createGlobalVarAliasValidationOptions, f as createGlobalVarMapAssetSource, g as createGlobalVarScanCacheKey, h as createRSCModuleRecord, i as cssHasContentScope, u as default, j as deleteRSCModuleRecord, k as emitMissingCssFallback, l as esbuildPlugin, m as extractGlobalVarAliasesForManifest, n as fileMayContainSafelistableSz, o as findLocalImportSources, p as findRSCBoundaryViolation, q as findRSCGraphViolation, r as hasInjectableTailwindCandidate, s as hasUseClientDirective, t as hasUseServerDirective, v as isAdvisoryDiagnostic, w as isCompileSourceOptedIn, x as isHardIgnoredPath, y as isMangleableCssId, z as isMonorepoPackage, A as isPackagesSkippedSource, B as isRSCServerModule, C as isTailwindReservedGlobalVar, D as lateMangleCensusMessage, E as mangleCodeClassesSync, F as mangleEligibleClasses, G as mangleHybridHazardMessage, H as missingTailwindEntryMessage, I as normalizeGlobalVarAliasesForCache, J as planGlobalVarAliases, K as readGlobalVarScanCache, L as realContentHashDisabledMessage, M as recordGlobalVarSourceFile, N as resolveCompileSourceDirs, O as resolveGlobalVarScanCacheDir, P as resolveNativeCacheIdentity, Q as resolveQuietMode, R as rewriteGlobalVarCssAliases, S as rollupPlugin, T as scanGlobalVarCss, U as shouldEmitMissingCssFallback, V as shouldEmitWarning, W as
|
|
2
|
+
export { a as allocateMangleTokens, b as assertNoRSCBoundaryViolation, c as assertNoRSCGraphViolation, d as collectMangleHybridHazards, e as createGlobalVarAliasValidationOptions, f as createGlobalVarMapAssetSource, g as createGlobalVarScanCacheKey, h as createRSCModuleRecord, i as cssHasContentScope, u as default, j as deleteRSCModuleRecord, k as emitMissingCssFallback, l as esbuildPlugin, m as extractGlobalVarAliasesForManifest, n as fileMayContainSafelistableSz, o as findLocalImportSources, p as findRSCBoundaryViolation, q as findRSCGraphViolation, r as hasInjectableTailwindCandidate, s as hasUseClientDirective, t as hasUseServerDirective, v as isAdvisoryDiagnostic, w as isCompileSourceOptedIn, x as isHardIgnoredPath, y as isMangleableCssId, z as isMonorepoPackage, A as isPackagesSkippedSource, B as isRSCServerModule, C as isTailwindReservedGlobalVar, D as lateMangleCensusMessage, E as mangleCodeClassesSync, F as mangleEligibleClasses, G as mangleHybridHazardMessage, H as missingTailwindEntryMessage, I as normalizeGlobalVarAliasesForCache, J as planGlobalVarAliases, K as readGlobalVarScanCache, L as realContentHashDisabledMessage, M as recordGlobalVarSourceFile, N as resolveCompileSourceDirs, O as resolveGlobalVarScanCacheDir, P as resolveNativeCacheIdentity, Q as resolveQuietMode, R as rewriteGlobalVarCssAliases, S as rollupPlugin, T as scanGlobalVarCss, U as shouldEmitMissingCssFallback, V as shouldEmitWarning, W as shouldHoldAdvisories, X as shouldTrackGlobalVarSources, Y as shouldWarnMissingTailwindEntry, Z as shouldWarnUnscopedMonorepo, _ as skippedSzFilesMessage, $ as suppressedAdvisoryMessage, u as unplugin, a0 as unscopedMonorepoMessage, a1 as validateGlobalVarAliasInputs, a2 as vitePlugin, a3 as watchModeMangleMessage, a4 as webpackPlugin, a5 as writeGlobalVarScanCache } from './shared/unplugin.Dx0ngYWw.mjs';
|
|
3
3
|
export { h as hasTokens, m as mergeThemes, p as parseThemeBlocks, a as parseUtilityBlocks, s as scanCustomPropertyNames } from './shared/unplugin.Ceq-N4jI.mjs';
|
|
4
4
|
export { CSSZYX_GLOBAL_ALIAS_PREFIX, TAILWIND_RESERVED_PREFIXES } from '@csszyx/types';
|
|
5
5
|
export { S as SAFELIST_FILE, a as appendTailwindSourceDirective, c as computeSafelistRelPath, b as cssImportsTailwind } from './shared/unplugin.DH_ij6cf.mjs';
|
|
@@ -820,6 +820,22 @@ declare function shouldEmitWarning(quiet: QuietMode, devOnly: boolean, isProduct
|
|
|
820
820
|
* @returns True when the diagnostic is an unsilenced missing-CSS failure.
|
|
821
821
|
*/
|
|
822
822
|
declare function shouldEmitMissingCssFallback(quiet: QuietMode, message: string): boolean;
|
|
823
|
+
/**
|
|
824
|
+
* Whether this run holds the advisory fallback list back and counts it instead.
|
|
825
|
+
*
|
|
826
|
+
* A build prints the count once the bundle closes, so holding the list back
|
|
827
|
+
* still leaves a reader a number to act on. A dev server never closes a bundle:
|
|
828
|
+
* anything held back there is held back for good, which is why serving lists
|
|
829
|
+
* its fallbacks whatever the environment says. `NODE_ENV` alone was the whole
|
|
830
|
+
* test, and a monorepo script that exports it while running a dev server turned
|
|
831
|
+
* every advisory into a number nothing would print.
|
|
832
|
+
*
|
|
833
|
+
* @param quiet - Resolved quiet mode.
|
|
834
|
+
* @param serving - Whether this is a dev server rather than a build.
|
|
835
|
+
* @param nodeEnv - `process.env.NODE_ENV` as the process sees it.
|
|
836
|
+
* @returns True when the list is withheld in favour of a count.
|
|
837
|
+
*/
|
|
838
|
+
declare function shouldHoldAdvisories(quiet: QuietMode, serving: boolean, nodeEnv: string | undefined): boolean;
|
|
823
839
|
/**
|
|
824
840
|
* Emit one missing-CSS fallback through the caller's output channel.
|
|
825
841
|
*
|
|
@@ -1063,5 +1079,5 @@ declare const rollupPlugin: (options?: PartialCsszyxConfig) => InputPluginOption
|
|
|
1063
1079
|
*/
|
|
1064
1080
|
declare const esbuildPlugin: (options?: PartialCsszyxConfig) => Plugin;
|
|
1065
1081
|
|
|
1066
|
-
export { isRSCServerModule as $, unplugin as A, deleteRSCModuleRecord as B, emitMissingCssFallback as D, esbuildPlugin as E, extractGlobalVarAliasesForManifest as F, fileMayContainSafelistableSz as H, findLocalImportSources as I, findRSCBoundaryViolation as J, findRSCGraphViolation as K, hasInjectableTailwindCandidate as L, hasTokens as N, hasUseClientDirective as O, hasUseServerDirective as T, isAdvisoryDiagnostic as U, isCompileSourceOptedIn as W, isHardIgnoredPath as X, isMangleableCssId as Y, isMonorepoPackage as Z, isPackagesSkippedSource as _, lateMangleCensusMessage as a0, mangleCodeClassesSync as a1, mangleEligibleClasses as a2, mangleHybridHazardMessage as a3, mergeThemes as a4, missingTailwindEntryMessage as a5, normalizeGlobalVarAliasesForCache as a6, parseThemeBlocks as a7, parseUtilityBlocks as a8, realContentHashDisabledMessage as a9, recordGlobalVarSourceFile as aa, resolveCompileSourceDirs as ab, resolveNativeCacheIdentity as ac, resolveQuietMode as ad, rollupPlugin as ae, scanCustomPropertyNames as af, shouldEmitMissingCssFallback as ag, shouldEmitWarning as ah,
|
|
1082
|
+
export { isRSCServerModule as $, unplugin as A, deleteRSCModuleRecord as B, emitMissingCssFallback as D, esbuildPlugin as E, extractGlobalVarAliasesForManifest as F, fileMayContainSafelistableSz as H, findLocalImportSources as I, findRSCBoundaryViolation as J, findRSCGraphViolation as K, hasInjectableTailwindCandidate as L, hasTokens as N, hasUseClientDirective as O, hasUseServerDirective as T, isAdvisoryDiagnostic as U, isCompileSourceOptedIn as W, isHardIgnoredPath as X, isMangleableCssId as Y, isMonorepoPackage as Z, isPackagesSkippedSource as _, lateMangleCensusMessage as a0, mangleCodeClassesSync as a1, mangleEligibleClasses as a2, mangleHybridHazardMessage as a3, mergeThemes as a4, missingTailwindEntryMessage as a5, normalizeGlobalVarAliasesForCache as a6, parseThemeBlocks as a7, parseUtilityBlocks as a8, realContentHashDisabledMessage as a9, recordGlobalVarSourceFile as aa, resolveCompileSourceDirs as ab, resolveNativeCacheIdentity as ac, resolveQuietMode as ad, rollupPlugin as ae, scanCustomPropertyNames as af, shouldEmitMissingCssFallback as ag, shouldEmitWarning as ah, shouldHoldAdvisories as ai, shouldTrackGlobalVarSources as aj, shouldWarnMissingTailwindEntry as ak, shouldWarnUnscopedMonorepo as al, skippedSzFilesMessage as am, suppressedAdvisoryMessage as an, unscopedMonorepoMessage as ao, vitePlugin as ap, watchModeMangleMessage as aq, webpackPlugin as ar, allocateMangleTokens as t, assertNoRSCBoundaryViolation as u, assertNoRSCGraphViolation as v, collectMangleHybridHazards as w, createGlobalVarMapAssetSource as x, createRSCModuleRecord as y, cssHasContentScope as z };
|
|
1067
1083
|
export type { CssVarScanResult as C, GlobalVarScanCacheKeyInput as G, MangleHybridHazards as M, PlanGlobalVarAliasesInput as P, QuietMode as Q, RewriteGlobalVarCssAliasesOptions as R, ScanGlobalVarCssOptions as S, ValidateGlobalVarAliasInputsOptions as V, GlobalVarAliasPlan as a, GlobalVarCssAliasRewriteResult as b, CreateGlobalVarAliasValidationOptionsInput as c, GlobalVarAliasValidationResult as d, CssVarDefinition as e, CssVarLocation as f, CssVarReference as g, GlobalVarAliasDiagnostic as h, GlobalVarAliasDiagnosticSeverity as i, GlobalVarAliasEntry as j, GlobalVarCodeSource as k, GlobalVarCssAssetSource as l, GlobalVarCssSource as m, GlobalVarScanCacheEntry as n, MangleSelectorHazard as o, ParsedTheme as p, ParsedUtilities as q, RSCBoundaryViolation as r, RSCModuleRecord as s };
|
|
@@ -1936,9 +1936,18 @@ function removedMangleMapDeliveryMessage() {
|
|
|
1936
1936
|
return "[csszyx] production.mangleMapDelivery has been removed and is ignored. The runtime mangle map is always registered from inside the JS bundle now, on every lane, so the built HTML never carries an executable inline <script> and a strict script-src 'self' policy needs no exception. Delete the option. (`window.__csszyx` is now opt-in through `production.mangleDebugGlobal`.)";
|
|
1937
1937
|
}
|
|
1938
1938
|
|
|
1939
|
+
function utilityStart(className) {
|
|
1940
|
+
let depth = 0;
|
|
1941
|
+
let start = 0;
|
|
1942
|
+
for (let index = 0; index < className.length; index += 1) {
|
|
1943
|
+
const char = className[index];
|
|
1944
|
+
if (char === "[") depth += 1;
|
|
1945
|
+
else if (char === "]") depth = Math.max(0, depth - 1);
|
|
1946
|
+
else if (char === ":" && depth === 0) start = index + 1;
|
|
1947
|
+
}
|
|
1948
|
+
return start;
|
|
1949
|
+
}
|
|
1939
1950
|
function compileManglePreserve(entries) {
|
|
1940
|
-
const exact = /* @__PURE__ */ new Set();
|
|
1941
|
-
const prefixes = [];
|
|
1942
1951
|
const list = entries ?? [];
|
|
1943
1952
|
list.forEach((entry, index) => {
|
|
1944
1953
|
if (typeof entry !== "string" || entry.length === 0) {
|
|
@@ -1951,22 +1960,34 @@ function compileManglePreserve(entries) {
|
|
|
1951
1960
|
"[csszyx] production.manglePreserve must not contain a lone `*`: it would keep every class and silently turn `production.mangle` into a no-op. Name a prefix (`bg-tag-*`) or set `production.mangle: false`."
|
|
1952
1961
|
);
|
|
1953
1962
|
}
|
|
1954
|
-
if (entry.endsWith("*")) prefixes.push(entry.slice(0, -1));
|
|
1955
|
-
else exact.add(entry);
|
|
1956
1963
|
});
|
|
1957
|
-
const
|
|
1964
|
+
const compiled = list.map((value) => ({
|
|
1965
|
+
value,
|
|
1966
|
+
prefix: value.endsWith("*") ? value.slice(0, -1) : void 0
|
|
1967
|
+
}));
|
|
1968
|
+
const keeps = (entry, className, utilityStartIndex) => entry.prefix === void 0 ? className === entry.value || className.length - utilityStartIndex === entry.value.length && className.startsWith(entry.value, utilityStartIndex) : className.startsWith(entry.prefix) || className.startsWith(entry.prefix, utilityStartIndex);
|
|
1969
|
+
const test = (className) => {
|
|
1970
|
+
if (list.length === 0) return false;
|
|
1971
|
+
const start = utilityStart(className);
|
|
1972
|
+
return compiled.some((entry) => keeps(entry, className, start));
|
|
1973
|
+
};
|
|
1958
1974
|
return {
|
|
1959
1975
|
entries: list,
|
|
1960
1976
|
test,
|
|
1961
1977
|
unmatched(census) {
|
|
1962
|
-
|
|
1963
|
-
|
|
1964
|
-
|
|
1965
|
-
|
|
1966
|
-
|
|
1978
|
+
if (list.length === 0) return [];
|
|
1979
|
+
const matched = list.map(() => false);
|
|
1980
|
+
let remaining = list.length;
|
|
1981
|
+
for (const className of census) {
|
|
1982
|
+
const start = utilityStart(className);
|
|
1983
|
+
for (let index = 0; index < list.length; index += 1) {
|
|
1984
|
+
if (matched[index] || !keeps(compiled[index], className, start)) continue;
|
|
1985
|
+
matched[index] = true;
|
|
1986
|
+
remaining -= 1;
|
|
1967
1987
|
}
|
|
1968
|
-
|
|
1969
|
-
}
|
|
1988
|
+
if (remaining === 0) break;
|
|
1989
|
+
}
|
|
1990
|
+
return list.filter((_, index) => !matched[index]);
|
|
1970
1991
|
}
|
|
1971
1992
|
};
|
|
1972
1993
|
}
|
|
@@ -2239,9 +2260,9 @@ let _hasWarnedTsConfig = false;
|
|
|
2239
2260
|
let _hasWarnedTransformCacheVersion = false;
|
|
2240
2261
|
let _hasWarnedNativeFallback = false;
|
|
2241
2262
|
const _loggedActiveParsers = /* @__PURE__ */ new Set();
|
|
2242
|
-
const requireFromHere = node_module.createRequire((typeof document === 'undefined' ? require('u' + 'rl').pathToFileURL(__filename).href : (_documentCurrentScript && _documentCurrentScript.tagName.toUpperCase() === 'SCRIPT' && _documentCurrentScript.src || new URL('shared/unplugin.
|
|
2263
|
+
const requireFromHere = node_module.createRequire((typeof document === 'undefined' ? require('u' + 'rl').pathToFileURL(__filename).href : (_documentCurrentScript && _documentCurrentScript.tagName.toUpperCase() === 'SCRIPT' && _documentCurrentScript.src || new URL('shared/unplugin.D3yBoTHP.cjs', document.baseURI).href)));
|
|
2243
2264
|
const PLUGIN_VERSION = findPackageVersionFromFile(
|
|
2244
|
-
node_url.fileURLToPath((typeof document === 'undefined' ? require('u' + 'rl').pathToFileURL(__filename).href : (_documentCurrentScript && _documentCurrentScript.tagName.toUpperCase() === 'SCRIPT' && _documentCurrentScript.src || new URL('shared/unplugin.
|
|
2265
|
+
node_url.fileURLToPath((typeof document === 'undefined' ? require('u' + 'rl').pathToFileURL(__filename).href : (_documentCurrentScript && _documentCurrentScript.tagName.toUpperCase() === 'SCRIPT' && _documentCurrentScript.src || new URL('shared/unplugin.D3yBoTHP.cjs', document.baseURI).href))),
|
|
2245
2266
|
UNKNOWN_PACKAGE_VERSION
|
|
2246
2267
|
);
|
|
2247
2268
|
const COMPILER_VERSION = findPackageVersionFromModule("@csszyx/compiler", UNKNOWN_PACKAGE_VERSION);
|
|
@@ -2382,46 +2403,37 @@ function mangleHybridHazardMessage(hazards) {
|
|
|
2382
2403
|
if (collisions.length === 0 && orphans.length === 0 && selectorMatches.length === 0) {
|
|
2383
2404
|
return null;
|
|
2384
2405
|
}
|
|
2406
|
+
const broken = selectorMatches.filter((hazard) => hazard.renamed.length > 0);
|
|
2407
|
+
const newlyMatched = selectorMatches.filter((hazard) => hazard.matchedTokens.length > 0);
|
|
2385
2408
|
const parts = ["[csszyx] production mangle found hybrid hazards:"];
|
|
2386
2409
|
if (collisions.length > 0) {
|
|
2387
2410
|
const sample = collisions.slice(0, 8).join(", ");
|
|
2388
2411
|
parts.push(
|
|
2389
|
-
` ${collisions.length} mangled token(s) collide with class names in non-csszyx CSS (e.g. ${sample}) \u2014 those tokens will cross-contaminate external ".${collisions[0]}" elements
|
|
2412
|
+
` ${collisions.length} mangled token(s) collide with class names in non-csszyx CSS (e.g. ${sample}) \u2014 those tokens will cross-contaminate external ".${collisions[0]}" elements.`,
|
|
2413
|
+
" HOTFIX: pass `production: { mangle: false }` to the csszyx plugin to ship now. THEN fix it: if these short names are in your OWN CSS, rename them to something specific (e.g. `.x` \u2192 `.resize-handle-x`) \u2014 short/common names also clash on specificity with other libraries. Only for names in a third-party stylesheet you cannot edit, list them in `production.mangleExclude` instead. Run `npx @csszyx/cli scan-collisions` to find every offending name."
|
|
2390
2414
|
);
|
|
2391
2415
|
}
|
|
2392
2416
|
if (orphans.length > 0) {
|
|
2393
2417
|
const sample = orphans.slice(0, 8).join(", ");
|
|
2394
2418
|
parts.push(
|
|
2395
|
-
` ${orphans.length} mangled class(es) have no emitted CSS rule (e.g. ${sample}) \u2014 those elements lose styling
|
|
2419
|
+
` ${orphans.length} mangled class(es) have no emitted CSS rule (e.g. ${sample}) \u2014 those elements lose styling.`,
|
|
2420
|
+
" Those classes are csszyx-owned but no CSS was emitted for them (e.g. a separate Tailwind plugin owns the utility CSS, or the class is not a real utility). Ensure that CSS is generated, or pass `production: { mangle: false }` to the csszyx plugin until the pipelines are reconciled."
|
|
2396
2421
|
);
|
|
2397
2422
|
}
|
|
2398
|
-
const broken = selectorMatches.filter((hazard) => hazard.renamed.length > 0);
|
|
2399
|
-
const newlyMatched = selectorMatches.filter((hazard) => hazard.matchedTokens.length > 0);
|
|
2400
2423
|
if (broken.length > 0) {
|
|
2401
2424
|
const sample = broken.slice(0, 3).map((hazard) => `${hazard.selector} \u2192 ${hazard.renamed.slice(0, 4).join(", ")}`).join("; ");
|
|
2425
|
+
const entries = [...new Set(broken.flatMap(preserveEntriesFor))].join(", ");
|
|
2402
2426
|
parts.push(
|
|
2403
|
-
` ${broken.length} attribute selector(s) match class names by text (e.g. ${sample}) \u2014 those rules stop matching once the classes are renamed, so the elements lose those styles
|
|
2427
|
+
` ${broken.length} attribute selector(s) match class names by text (e.g. ${sample}) \u2014 those rules stop matching once the classes are renamed, so the elements lose those styles.`,
|
|
2428
|
+
` Keep those classes readable with production.manglePreserve: [${entries}] (paste-ready), or key the rule off a data attribute, which mangling never touches. production.mangleExclude cannot help here: it reserves token names and does not keep a class from being renamed.`
|
|
2404
2429
|
);
|
|
2405
2430
|
}
|
|
2406
2431
|
if (newlyMatched.length > 0) {
|
|
2407
2432
|
const sample = newlyMatched.slice(0, 3).map((hazard) => `${hazard.selector} \u2192 ${hazard.matchedTokens.slice(0, 4).join(", ")}`).join("; ");
|
|
2433
|
+
const tokens = [...new Set(newlyMatched.flatMap((hazard) => hazard.matchedTokens))].map(quoteForConfig).join(", ");
|
|
2408
2434
|
parts.push(
|
|
2409
|
-
` ${newlyMatched.length} attribute selector(s) would start matching mangled tokens instead (e.g. ${sample})
|
|
2410
|
-
|
|
2411
|
-
}
|
|
2412
|
-
if (collisions.length > 0) {
|
|
2413
|
-
parts.push(
|
|
2414
|
-
" HOTFIX: pass `production: { mangle: false }` to the csszyx plugin to ship now. THEN fix it: if these short names are in your OWN CSS, rename them to something specific (e.g. `.x` \u2192 `.resize-handle-x`) \u2014 short/common names also clash on specificity with other libraries. Only for names in a third-party stylesheet you cannot edit, list them in `production.mangleExclude` instead. Run `npx @csszyx/cli scan-collisions` to find every offending name."
|
|
2415
|
-
);
|
|
2416
|
-
} else if (orphans.length > 0) {
|
|
2417
|
-
parts.push(
|
|
2418
|
-
" Those classes are csszyx-owned but no CSS was emitted for them (e.g. a separate Tailwind plugin owns the utility CSS, or the class is not a real utility). Ensure that CSS is generated, or pass `production: { mangle: false }` to the csszyx plugin until the pipelines are reconciled."
|
|
2419
|
-
);
|
|
2420
|
-
}
|
|
2421
|
-
if (broken.length > 0) {
|
|
2422
|
-
const entries = [...new Set(broken.flatMap(preserveEntriesFor))].join(", ");
|
|
2423
|
-
parts.push(
|
|
2424
|
-
` Keep those classes readable with production.manglePreserve: [${entries}] (paste-ready), or key the rule off a data attribute, which mangling never touches. production.mangleExclude cannot help here: it reserves token names and does not keep a class from being renamed.`
|
|
2435
|
+
` ${newlyMatched.length} attribute selector(s) would start matching mangled tokens instead (e.g. ${sample}).`,
|
|
2436
|
+
` Reserve those token names with production.mangleExclude: [${tokens}] (paste-ready) so no class is renamed to one of them, or key the rule off a data attribute, which mangling never touches; a prefix or substring selector goes on matching other tokens, so the data attribute is the durable fix.`
|
|
2425
2437
|
);
|
|
2426
2438
|
}
|
|
2427
2439
|
return parts.join("");
|
|
@@ -2493,6 +2505,9 @@ function shouldEmitWarning(quiet, devOnly, isProduction) {
|
|
|
2493
2505
|
function shouldEmitMissingCssFallback(quiet, message) {
|
|
2494
2506
|
return resolveQuietMode(quiet) !== "all" && compiler.szFallbackConsequenceOf(message) === "missing-css";
|
|
2495
2507
|
}
|
|
2508
|
+
function shouldHoldAdvisories(quiet, serving, nodeEnv) {
|
|
2509
|
+
return quiet !== "off" || !serving && nodeEnv === "production";
|
|
2510
|
+
}
|
|
2496
2511
|
function emitMissingCssFallback(quiet, message, id, emit) {
|
|
2497
2512
|
if (shouldEmitMissingCssFallback(quiet, message)) emit(`[csszyx] ${id}
|
|
2498
2513
|
${message}`);
|
|
@@ -3322,6 +3337,7 @@ ${errors.join("\n")}`
|
|
|
3322
3337
|
function createCsszyxPlugins(options = {}) {
|
|
3323
3338
|
assertGlobalVarMangleConfig(options);
|
|
3324
3339
|
let manglingEnabled = options.production?.mangle === true;
|
|
3340
|
+
let serving = false;
|
|
3325
3341
|
const importedStaticSzEnabled = options.build?.importedStaticSz ?? types.DEFAULT_IMPORTED_STATIC_SZ;
|
|
3326
3342
|
const szvCrossModuleRegistry = /* @__PURE__ */ new Map();
|
|
3327
3343
|
const szvCrossModuleForwards = /* @__PURE__ */ new Map();
|
|
@@ -4462,7 +4478,7 @@ function createCsszyxPlugins(options = {}) {
|
|
|
4462
4478
|
}
|
|
4463
4479
|
const advisories = result.diagnostics.filter(isAdvisoryDiagnostic);
|
|
4464
4480
|
if (advisories.length === 0) return;
|
|
4465
|
-
if (quiet
|
|
4481
|
+
if (shouldHoldAdvisories(quiet, serving, process.env.NODE_ENV)) {
|
|
4466
4482
|
state.suppressedAdvisories += advisories.length;
|
|
4467
4483
|
return;
|
|
4468
4484
|
}
|
|
@@ -4881,6 +4897,7 @@ ${transformedCode}`;
|
|
|
4881
4897
|
specifierAliases = transformCache.collectSpecifierAliases(root, config.resolve?.alias);
|
|
4882
4898
|
if (config.command === "serve") {
|
|
4883
4899
|
manglingEnabled = false;
|
|
4900
|
+
serving = true;
|
|
4884
4901
|
}
|
|
4885
4902
|
if (manglingEnabled && config.build?.watch) {
|
|
4886
4903
|
manglingEnabled = false;
|
|
@@ -5430,6 +5447,7 @@ exports.rollupPlugin = rollupPlugin;
|
|
|
5430
5447
|
exports.scanGlobalVarCss = scanGlobalVarCss;
|
|
5431
5448
|
exports.shouldEmitMissingCssFallback = shouldEmitMissingCssFallback;
|
|
5432
5449
|
exports.shouldEmitWarning = shouldEmitWarning;
|
|
5450
|
+
exports.shouldHoldAdvisories = shouldHoldAdvisories;
|
|
5433
5451
|
exports.shouldTrackGlobalVarSources = shouldTrackGlobalVarSources;
|
|
5434
5452
|
exports.shouldWarnMissingTailwindEntry = shouldWarnMissingTailwindEntry;
|
|
5435
5453
|
exports.shouldWarnUnscopedMonorepo = shouldWarnUnscopedMonorepo;
|
|
@@ -1914,9 +1914,18 @@ function removedMangleMapDeliveryMessage() {
|
|
|
1914
1914
|
return "[csszyx] production.mangleMapDelivery has been removed and is ignored. The runtime mangle map is always registered from inside the JS bundle now, on every lane, so the built HTML never carries an executable inline <script> and a strict script-src 'self' policy needs no exception. Delete the option. (`window.__csszyx` is now opt-in through `production.mangleDebugGlobal`.)";
|
|
1915
1915
|
}
|
|
1916
1916
|
|
|
1917
|
+
function utilityStart(className) {
|
|
1918
|
+
let depth = 0;
|
|
1919
|
+
let start = 0;
|
|
1920
|
+
for (let index = 0; index < className.length; index += 1) {
|
|
1921
|
+
const char = className[index];
|
|
1922
|
+
if (char === "[") depth += 1;
|
|
1923
|
+
else if (char === "]") depth = Math.max(0, depth - 1);
|
|
1924
|
+
else if (char === ":" && depth === 0) start = index + 1;
|
|
1925
|
+
}
|
|
1926
|
+
return start;
|
|
1927
|
+
}
|
|
1917
1928
|
function compileManglePreserve(entries) {
|
|
1918
|
-
const exact = /* @__PURE__ */ new Set();
|
|
1919
|
-
const prefixes = [];
|
|
1920
1929
|
const list = entries ?? [];
|
|
1921
1930
|
list.forEach((entry, index) => {
|
|
1922
1931
|
if (typeof entry !== "string" || entry.length === 0) {
|
|
@@ -1929,22 +1938,34 @@ function compileManglePreserve(entries) {
|
|
|
1929
1938
|
"[csszyx] production.manglePreserve must not contain a lone `*`: it would keep every class and silently turn `production.mangle` into a no-op. Name a prefix (`bg-tag-*`) or set `production.mangle: false`."
|
|
1930
1939
|
);
|
|
1931
1940
|
}
|
|
1932
|
-
if (entry.endsWith("*")) prefixes.push(entry.slice(0, -1));
|
|
1933
|
-
else exact.add(entry);
|
|
1934
1941
|
});
|
|
1935
|
-
const
|
|
1942
|
+
const compiled = list.map((value) => ({
|
|
1943
|
+
value,
|
|
1944
|
+
prefix: value.endsWith("*") ? value.slice(0, -1) : void 0
|
|
1945
|
+
}));
|
|
1946
|
+
const keeps = (entry, className, utilityStartIndex) => entry.prefix === void 0 ? className === entry.value || className.length - utilityStartIndex === entry.value.length && className.startsWith(entry.value, utilityStartIndex) : className.startsWith(entry.prefix) || className.startsWith(entry.prefix, utilityStartIndex);
|
|
1947
|
+
const test = (className) => {
|
|
1948
|
+
if (list.length === 0) return false;
|
|
1949
|
+
const start = utilityStart(className);
|
|
1950
|
+
return compiled.some((entry) => keeps(entry, className, start));
|
|
1951
|
+
};
|
|
1936
1952
|
return {
|
|
1937
1953
|
entries: list,
|
|
1938
1954
|
test,
|
|
1939
1955
|
unmatched(census) {
|
|
1940
|
-
|
|
1941
|
-
|
|
1942
|
-
|
|
1943
|
-
|
|
1944
|
-
|
|
1956
|
+
if (list.length === 0) return [];
|
|
1957
|
+
const matched = list.map(() => false);
|
|
1958
|
+
let remaining = list.length;
|
|
1959
|
+
for (const className of census) {
|
|
1960
|
+
const start = utilityStart(className);
|
|
1961
|
+
for (let index = 0; index < list.length; index += 1) {
|
|
1962
|
+
if (matched[index] || !keeps(compiled[index], className, start)) continue;
|
|
1963
|
+
matched[index] = true;
|
|
1964
|
+
remaining -= 1;
|
|
1945
1965
|
}
|
|
1946
|
-
|
|
1947
|
-
}
|
|
1966
|
+
if (remaining === 0) break;
|
|
1967
|
+
}
|
|
1968
|
+
return list.filter((_, index) => !matched[index]);
|
|
1948
1969
|
}
|
|
1949
1970
|
};
|
|
1950
1971
|
}
|
|
@@ -2360,46 +2381,37 @@ function mangleHybridHazardMessage(hazards) {
|
|
|
2360
2381
|
if (collisions.length === 0 && orphans.length === 0 && selectorMatches.length === 0) {
|
|
2361
2382
|
return null;
|
|
2362
2383
|
}
|
|
2384
|
+
const broken = selectorMatches.filter((hazard) => hazard.renamed.length > 0);
|
|
2385
|
+
const newlyMatched = selectorMatches.filter((hazard) => hazard.matchedTokens.length > 0);
|
|
2363
2386
|
const parts = ["[csszyx] production mangle found hybrid hazards:"];
|
|
2364
2387
|
if (collisions.length > 0) {
|
|
2365
2388
|
const sample = collisions.slice(0, 8).join(", ");
|
|
2366
2389
|
parts.push(
|
|
2367
|
-
` ${collisions.length} mangled token(s) collide with class names in non-csszyx CSS (e.g. ${sample}) \u2014 those tokens will cross-contaminate external ".${collisions[0]}" elements
|
|
2390
|
+
` ${collisions.length} mangled token(s) collide with class names in non-csszyx CSS (e.g. ${sample}) \u2014 those tokens will cross-contaminate external ".${collisions[0]}" elements.`,
|
|
2391
|
+
" HOTFIX: pass `production: { mangle: false }` to the csszyx plugin to ship now. THEN fix it: if these short names are in your OWN CSS, rename them to something specific (e.g. `.x` \u2192 `.resize-handle-x`) \u2014 short/common names also clash on specificity with other libraries. Only for names in a third-party stylesheet you cannot edit, list them in `production.mangleExclude` instead. Run `npx @csszyx/cli scan-collisions` to find every offending name."
|
|
2368
2392
|
);
|
|
2369
2393
|
}
|
|
2370
2394
|
if (orphans.length > 0) {
|
|
2371
2395
|
const sample = orphans.slice(0, 8).join(", ");
|
|
2372
2396
|
parts.push(
|
|
2373
|
-
` ${orphans.length} mangled class(es) have no emitted CSS rule (e.g. ${sample}) \u2014 those elements lose styling
|
|
2397
|
+
` ${orphans.length} mangled class(es) have no emitted CSS rule (e.g. ${sample}) \u2014 those elements lose styling.`,
|
|
2398
|
+
" Those classes are csszyx-owned but no CSS was emitted for them (e.g. a separate Tailwind plugin owns the utility CSS, or the class is not a real utility). Ensure that CSS is generated, or pass `production: { mangle: false }` to the csszyx plugin until the pipelines are reconciled."
|
|
2374
2399
|
);
|
|
2375
2400
|
}
|
|
2376
|
-
const broken = selectorMatches.filter((hazard) => hazard.renamed.length > 0);
|
|
2377
|
-
const newlyMatched = selectorMatches.filter((hazard) => hazard.matchedTokens.length > 0);
|
|
2378
2401
|
if (broken.length > 0) {
|
|
2379
2402
|
const sample = broken.slice(0, 3).map((hazard) => `${hazard.selector} \u2192 ${hazard.renamed.slice(0, 4).join(", ")}`).join("; ");
|
|
2403
|
+
const entries = [...new Set(broken.flatMap(preserveEntriesFor))].join(", ");
|
|
2380
2404
|
parts.push(
|
|
2381
|
-
` ${broken.length} attribute selector(s) match class names by text (e.g. ${sample}) \u2014 those rules stop matching once the classes are renamed, so the elements lose those styles
|
|
2405
|
+
` ${broken.length} attribute selector(s) match class names by text (e.g. ${sample}) \u2014 those rules stop matching once the classes are renamed, so the elements lose those styles.`,
|
|
2406
|
+
` Keep those classes readable with production.manglePreserve: [${entries}] (paste-ready), or key the rule off a data attribute, which mangling never touches. production.mangleExclude cannot help here: it reserves token names and does not keep a class from being renamed.`
|
|
2382
2407
|
);
|
|
2383
2408
|
}
|
|
2384
2409
|
if (newlyMatched.length > 0) {
|
|
2385
2410
|
const sample = newlyMatched.slice(0, 3).map((hazard) => `${hazard.selector} \u2192 ${hazard.matchedTokens.slice(0, 4).join(", ")}`).join("; ");
|
|
2411
|
+
const tokens = [...new Set(newlyMatched.flatMap((hazard) => hazard.matchedTokens))].map(quoteForConfig).join(", ");
|
|
2386
2412
|
parts.push(
|
|
2387
|
-
` ${newlyMatched.length} attribute selector(s) would start matching mangled tokens instead (e.g. ${sample})
|
|
2388
|
-
|
|
2389
|
-
}
|
|
2390
|
-
if (collisions.length > 0) {
|
|
2391
|
-
parts.push(
|
|
2392
|
-
" HOTFIX: pass `production: { mangle: false }` to the csszyx plugin to ship now. THEN fix it: if these short names are in your OWN CSS, rename them to something specific (e.g. `.x` \u2192 `.resize-handle-x`) \u2014 short/common names also clash on specificity with other libraries. Only for names in a third-party stylesheet you cannot edit, list them in `production.mangleExclude` instead. Run `npx @csszyx/cli scan-collisions` to find every offending name."
|
|
2393
|
-
);
|
|
2394
|
-
} else if (orphans.length > 0) {
|
|
2395
|
-
parts.push(
|
|
2396
|
-
" Those classes are csszyx-owned but no CSS was emitted for them (e.g. a separate Tailwind plugin owns the utility CSS, or the class is not a real utility). Ensure that CSS is generated, or pass `production: { mangle: false }` to the csszyx plugin until the pipelines are reconciled."
|
|
2397
|
-
);
|
|
2398
|
-
}
|
|
2399
|
-
if (broken.length > 0) {
|
|
2400
|
-
const entries = [...new Set(broken.flatMap(preserveEntriesFor))].join(", ");
|
|
2401
|
-
parts.push(
|
|
2402
|
-
` Keep those classes readable with production.manglePreserve: [${entries}] (paste-ready), or key the rule off a data attribute, which mangling never touches. production.mangleExclude cannot help here: it reserves token names and does not keep a class from being renamed.`
|
|
2413
|
+
` ${newlyMatched.length} attribute selector(s) would start matching mangled tokens instead (e.g. ${sample}).`,
|
|
2414
|
+
` Reserve those token names with production.mangleExclude: [${tokens}] (paste-ready) so no class is renamed to one of them, or key the rule off a data attribute, which mangling never touches; a prefix or substring selector goes on matching other tokens, so the data attribute is the durable fix.`
|
|
2403
2415
|
);
|
|
2404
2416
|
}
|
|
2405
2417
|
return parts.join("");
|
|
@@ -2471,6 +2483,9 @@ function shouldEmitWarning(quiet, devOnly, isProduction) {
|
|
|
2471
2483
|
function shouldEmitMissingCssFallback(quiet, message) {
|
|
2472
2484
|
return resolveQuietMode(quiet) !== "all" && szFallbackConsequenceOf(message) === "missing-css";
|
|
2473
2485
|
}
|
|
2486
|
+
function shouldHoldAdvisories(quiet, serving, nodeEnv) {
|
|
2487
|
+
return quiet !== "off" || !serving && nodeEnv === "production";
|
|
2488
|
+
}
|
|
2474
2489
|
function emitMissingCssFallback(quiet, message, id, emit) {
|
|
2475
2490
|
if (shouldEmitMissingCssFallback(quiet, message)) emit(`[csszyx] ${id}
|
|
2476
2491
|
${message}`);
|
|
@@ -3300,6 +3315,7 @@ ${errors.join("\n")}`
|
|
|
3300
3315
|
function createCsszyxPlugins(options = {}) {
|
|
3301
3316
|
assertGlobalVarMangleConfig(options);
|
|
3302
3317
|
let manglingEnabled = options.production?.mangle === true;
|
|
3318
|
+
let serving = false;
|
|
3303
3319
|
const importedStaticSzEnabled = options.build?.importedStaticSz ?? DEFAULT_IMPORTED_STATIC_SZ;
|
|
3304
3320
|
const szvCrossModuleRegistry = /* @__PURE__ */ new Map();
|
|
3305
3321
|
const szvCrossModuleForwards = /* @__PURE__ */ new Map();
|
|
@@ -4440,7 +4456,7 @@ function createCsszyxPlugins(options = {}) {
|
|
|
4440
4456
|
}
|
|
4441
4457
|
const advisories = result.diagnostics.filter(isAdvisoryDiagnostic);
|
|
4442
4458
|
if (advisories.length === 0) return;
|
|
4443
|
-
if (quiet
|
|
4459
|
+
if (shouldHoldAdvisories(quiet, serving, process.env.NODE_ENV)) {
|
|
4444
4460
|
state.suppressedAdvisories += advisories.length;
|
|
4445
4461
|
return;
|
|
4446
4462
|
}
|
|
@@ -4859,6 +4875,7 @@ ${transformedCode}`;
|
|
|
4859
4875
|
specifierAliases = collectSpecifierAliases(root, config.resolve?.alias);
|
|
4860
4876
|
if (config.command === "serve") {
|
|
4861
4877
|
manglingEnabled = false;
|
|
4878
|
+
serving = true;
|
|
4862
4879
|
}
|
|
4863
4880
|
if (manglingEnabled && config.build?.watch) {
|
|
4864
4881
|
manglingEnabled = false;
|
|
@@ -5361,4 +5378,4 @@ const esbuildPlugin = (options = {}) => {
|
|
|
5361
5378
|
};
|
|
5362
5379
|
};
|
|
5363
5380
|
|
|
5364
|
-
export {
|
|
5381
|
+
export { suppressedAdvisoryMessage as $, isPackagesSkippedSource as A, isRSCServerModule as B, isTailwindReservedGlobalVar as C, lateMangleCensusMessage as D, mangleCodeClassesSync as E, mangleEligibleClasses as F, mangleHybridHazardMessage as G, missingTailwindEntryMessage as H, normalizeGlobalVarAliasesForCache as I, planGlobalVarAliases as J, readGlobalVarScanCache as K, realContentHashDisabledMessage as L, recordGlobalVarSourceFile as M, resolveCompileSourceDirs as N, resolveGlobalVarScanCacheDir as O, resolveNativeCacheIdentity as P, resolveQuietMode as Q, rewriteGlobalVarCssAliases as R, rollupPlugin as S, scanGlobalVarCss as T, shouldEmitMissingCssFallback as U, shouldEmitWarning as V, shouldHoldAdvisories as W, shouldTrackGlobalVarSources as X, shouldWarnMissingTailwindEntry as Y, shouldWarnUnscopedMonorepo as Z, skippedSzFilesMessage as _, allocateMangleTokens as a, unscopedMonorepoMessage as a0, validateGlobalVarAliasInputs as a1, vitePlugin as a2, watchModeMangleMessage as a3, webpackPlugin as a4, writeGlobalVarScanCache as a5, assertNoRSCBoundaryViolation as b, assertNoRSCGraphViolation as c, collectMangleHybridHazards as d, createGlobalVarAliasValidationOptions as e, createGlobalVarMapAssetSource as f, createGlobalVarScanCacheKey as g, createRSCModuleRecord as h, cssHasContentScope as i, deleteRSCModuleRecord as j, emitMissingCssFallback as k, esbuildPlugin as l, extractGlobalVarAliasesForManifest as m, fileMayContainSafelistableSz as n, findLocalImportSources as o, findRSCBoundaryViolation as p, findRSCGraphViolation as q, hasInjectableTailwindCandidate as r, hasUseClientDirective as s, hasUseServerDirective as t, unplugin as u, isAdvisoryDiagnostic as v, isCompileSourceOptedIn as w, isHardIgnoredPath as x, isMangleableCssId as y, isMonorepoPackage as z };
|
|
@@ -820,6 +820,22 @@ declare function shouldEmitWarning(quiet: QuietMode, devOnly: boolean, isProduct
|
|
|
820
820
|
* @returns True when the diagnostic is an unsilenced missing-CSS failure.
|
|
821
821
|
*/
|
|
822
822
|
declare function shouldEmitMissingCssFallback(quiet: QuietMode, message: string): boolean;
|
|
823
|
+
/**
|
|
824
|
+
* Whether this run holds the advisory fallback list back and counts it instead.
|
|
825
|
+
*
|
|
826
|
+
* A build prints the count once the bundle closes, so holding the list back
|
|
827
|
+
* still leaves a reader a number to act on. A dev server never closes a bundle:
|
|
828
|
+
* anything held back there is held back for good, which is why serving lists
|
|
829
|
+
* its fallbacks whatever the environment says. `NODE_ENV` alone was the whole
|
|
830
|
+
* test, and a monorepo script that exports it while running a dev server turned
|
|
831
|
+
* every advisory into a number nothing would print.
|
|
832
|
+
*
|
|
833
|
+
* @param quiet - Resolved quiet mode.
|
|
834
|
+
* @param serving - Whether this is a dev server rather than a build.
|
|
835
|
+
* @param nodeEnv - `process.env.NODE_ENV` as the process sees it.
|
|
836
|
+
* @returns True when the list is withheld in favour of a count.
|
|
837
|
+
*/
|
|
838
|
+
declare function shouldHoldAdvisories(quiet: QuietMode, serving: boolean, nodeEnv: string | undefined): boolean;
|
|
823
839
|
/**
|
|
824
840
|
* Emit one missing-CSS fallback through the caller's output channel.
|
|
825
841
|
*
|
|
@@ -1063,5 +1079,5 @@ declare const rollupPlugin: (options?: PartialCsszyxConfig) => InputPluginOption
|
|
|
1063
1079
|
*/
|
|
1064
1080
|
declare const esbuildPlugin: (options?: PartialCsszyxConfig) => Plugin;
|
|
1065
1081
|
|
|
1066
|
-
export { isRSCServerModule as $, unplugin as A, deleteRSCModuleRecord as B, emitMissingCssFallback as D, esbuildPlugin as E, extractGlobalVarAliasesForManifest as F, fileMayContainSafelistableSz as H, findLocalImportSources as I, findRSCBoundaryViolation as J, findRSCGraphViolation as K, hasInjectableTailwindCandidate as L, hasTokens as N, hasUseClientDirective as O, hasUseServerDirective as T, isAdvisoryDiagnostic as U, isCompileSourceOptedIn as W, isHardIgnoredPath as X, isMangleableCssId as Y, isMonorepoPackage as Z, isPackagesSkippedSource as _, lateMangleCensusMessage as a0, mangleCodeClassesSync as a1, mangleEligibleClasses as a2, mangleHybridHazardMessage as a3, mergeThemes as a4, missingTailwindEntryMessage as a5, normalizeGlobalVarAliasesForCache as a6, parseThemeBlocks as a7, parseUtilityBlocks as a8, realContentHashDisabledMessage as a9, recordGlobalVarSourceFile as aa, resolveCompileSourceDirs as ab, resolveNativeCacheIdentity as ac, resolveQuietMode as ad, rollupPlugin as ae, scanCustomPropertyNames as af, shouldEmitMissingCssFallback as ag, shouldEmitWarning as ah,
|
|
1082
|
+
export { isRSCServerModule as $, unplugin as A, deleteRSCModuleRecord as B, emitMissingCssFallback as D, esbuildPlugin as E, extractGlobalVarAliasesForManifest as F, fileMayContainSafelistableSz as H, findLocalImportSources as I, findRSCBoundaryViolation as J, findRSCGraphViolation as K, hasInjectableTailwindCandidate as L, hasTokens as N, hasUseClientDirective as O, hasUseServerDirective as T, isAdvisoryDiagnostic as U, isCompileSourceOptedIn as W, isHardIgnoredPath as X, isMangleableCssId as Y, isMonorepoPackage as Z, isPackagesSkippedSource as _, lateMangleCensusMessage as a0, mangleCodeClassesSync as a1, mangleEligibleClasses as a2, mangleHybridHazardMessage as a3, mergeThemes as a4, missingTailwindEntryMessage as a5, normalizeGlobalVarAliasesForCache as a6, parseThemeBlocks as a7, parseUtilityBlocks as a8, realContentHashDisabledMessage as a9, recordGlobalVarSourceFile as aa, resolveCompileSourceDirs as ab, resolveNativeCacheIdentity as ac, resolveQuietMode as ad, rollupPlugin as ae, scanCustomPropertyNames as af, shouldEmitMissingCssFallback as ag, shouldEmitWarning as ah, shouldHoldAdvisories as ai, shouldTrackGlobalVarSources as aj, shouldWarnMissingTailwindEntry as ak, shouldWarnUnscopedMonorepo as al, skippedSzFilesMessage as am, suppressedAdvisoryMessage as an, unscopedMonorepoMessage as ao, vitePlugin as ap, watchModeMangleMessage as aq, webpackPlugin as ar, allocateMangleTokens as t, assertNoRSCBoundaryViolation as u, assertNoRSCGraphViolation as v, collectMangleHybridHazards as w, createGlobalVarMapAssetSource as x, createRSCModuleRecord as y, cssHasContentScope as z };
|
|
1067
1083
|
export type { CssVarScanResult as C, GlobalVarScanCacheKeyInput as G, MangleHybridHazards as M, PlanGlobalVarAliasesInput as P, QuietMode as Q, RewriteGlobalVarCssAliasesOptions as R, ScanGlobalVarCssOptions as S, ValidateGlobalVarAliasInputsOptions as V, GlobalVarAliasPlan as a, GlobalVarCssAliasRewriteResult as b, CreateGlobalVarAliasValidationOptionsInput as c, GlobalVarAliasValidationResult as d, CssVarDefinition as e, CssVarLocation as f, CssVarReference as g, GlobalVarAliasDiagnostic as h, GlobalVarAliasDiagnosticSeverity as i, GlobalVarAliasEntry as j, GlobalVarCodeSource as k, GlobalVarCssAssetSource as l, GlobalVarCssSource as m, GlobalVarScanCacheEntry as n, MangleSelectorHazard as o, ParsedTheme as p, ParsedUtilities as q, RSCBoundaryViolation as r, RSCModuleRecord as s };
|
package/dist/vite.cjs
CHANGED
package/dist/vite.d.cts
CHANGED
package/dist/vite.d.mts
CHANGED
package/dist/vite.mjs
CHANGED
package/dist/webpack.cjs
CHANGED
package/dist/webpack.d.cts
CHANGED
package/dist/webpack.d.mts
CHANGED
package/dist/webpack.mjs
CHANGED
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@csszyx/unplugin",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.16.0",
|
|
4
4
|
"description": "Vite and Webpack integration for csszyx",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"csszyx",
|
|
@@ -122,11 +122,11 @@
|
|
|
122
122
|
"dist"
|
|
123
123
|
],
|
|
124
124
|
"dependencies": {
|
|
125
|
-
"@csszyx/compiler": "0.
|
|
126
|
-
"@csszyx/core": "0.
|
|
127
|
-
"@csszyx/svelte-adapter": "0.
|
|
128
|
-
"@csszyx/types": "0.
|
|
129
|
-
"@csszyx/vue-adapter": "0.
|
|
125
|
+
"@csszyx/compiler": "0.16.0",
|
|
126
|
+
"@csszyx/core": "0.16.0",
|
|
127
|
+
"@csszyx/svelte-adapter": "0.16.0",
|
|
128
|
+
"@csszyx/types": "0.16.0",
|
|
129
|
+
"@csszyx/vue-adapter": "0.16.0",
|
|
130
130
|
"postcss": "^8.5.26",
|
|
131
131
|
"postcss-selector-parser": "^7.1.5",
|
|
132
132
|
"postcss-value-parser": "^4.2.0",
|
|
@@ -134,7 +134,7 @@
|
|
|
134
134
|
"unplugin": "^3.3.0"
|
|
135
135
|
},
|
|
136
136
|
"peerDependencies": {
|
|
137
|
-
"@csszyx/runtime": "^0.
|
|
137
|
+
"@csszyx/runtime": "^0.16.0",
|
|
138
138
|
"vite": ">=5.0.0"
|
|
139
139
|
},
|
|
140
140
|
"peerDependenciesMeta": {
|
|
@@ -143,8 +143,8 @@
|
|
|
143
143
|
}
|
|
144
144
|
},
|
|
145
145
|
"devDependencies": {
|
|
146
|
-
"@csszyx/runtime": "0.
|
|
147
|
-
"@csszyx/tooling-metadata": "0.
|
|
146
|
+
"@csszyx/runtime": "0.16.0",
|
|
147
|
+
"@csszyx/tooling-metadata": "0.16.0",
|
|
148
148
|
"@tailwindcss/node": "4.3.3",
|
|
149
149
|
"@types/node": "^22.20.1",
|
|
150
150
|
"@types/proper-lockfile": "^4.1.4",
|