@csszyx/unplugin 0.10.7 → 0.10.8
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 +3 -1
- package/dist/index.d.cts +2 -2
- package/dist/index.d.mts +2 -2
- package/dist/index.mjs +1 -1
- package/dist/next-prebuild.cjs +1 -1
- package/dist/next-prebuild.mjs +1 -1
- package/dist/next-turbo-loader.cjs +4 -4
- package/dist/next-turbo-loader.mjs +4 -4
- package/dist/shared/{unplugin.DWtXPCGo.cjs → unplugin.C3H4KqpP.cjs} +3 -3
- package/dist/shared/{unplugin.DjIGzbic.d.cts → unplugin.CK6U5gAP.d.cts} +38 -2
- package/dist/shared/{unplugin.DjIGzbic.d.mts → unplugin.CK6U5gAP.d.mts} +38 -2
- package/dist/shared/{unplugin.C1N5i6Eg.mjs → unplugin.D2_Q3rOU.mjs} +3 -3
- package/dist/shared/{unplugin.CaH_X1dP.cjs → unplugin.DlGyBb8o.cjs} +110 -12
- package/dist/shared/{unplugin.D_GIYc2p.mjs → unplugin.mdW7U-K4.mjs} +107 -11
- package/dist/vite.cjs +1 -1
- package/dist/vite.d.cts +1 -1
- package/dist/vite.d.mts +1 -1
- package/dist/vite.mjs +1 -1
- package/dist/webpack.cjs +1 -1
- package/dist/webpack.d.cts +1 -1
- package/dist/webpack.d.mts +1 -1
- package/dist/webpack.mjs +1 -1
- package/package.json +7 -7
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.DlGyBb8o.cjs');
|
|
7
7
|
const types = require('@csszyx/types');
|
|
8
8
|
require('postcss');
|
|
9
9
|
require('postcss-selector-parser');
|
|
@@ -33,6 +33,7 @@ exports.unescapeTailwindClass = cssMangler.unescapeTailwindClass;
|
|
|
33
33
|
exports.appendTailwindSourceDirective = unplugin.appendTailwindSourceDirective;
|
|
34
34
|
exports.assertNoRSCBoundaryViolation = unplugin.assertNoRSCBoundaryViolation;
|
|
35
35
|
exports.assertNoRSCGraphViolation = unplugin.assertNoRSCGraphViolation;
|
|
36
|
+
exports.collectMangleHybridHazards = unplugin.collectMangleHybridHazards;
|
|
36
37
|
exports.computeSafelistRelPath = unplugin.computeSafelistRelPath;
|
|
37
38
|
exports.createGlobalVarAliasValidationOptions = unplugin.createGlobalVarAliasValidationOptions;
|
|
38
39
|
exports.createGlobalVarMapAssetSource = unplugin.createGlobalVarMapAssetSource;
|
|
@@ -58,6 +59,7 @@ exports.isPackagesSkippedSource = unplugin.isPackagesSkippedSource;
|
|
|
58
59
|
exports.isRSCServerModule = unplugin.isRSCServerModule;
|
|
59
60
|
exports.isTailwindReservedGlobalVar = unplugin.isTailwindReservedGlobalVar;
|
|
60
61
|
exports.mangleCodeClassesSync = unplugin.mangleCodeClassesSync;
|
|
62
|
+
exports.mangleHybridHazardMessage = unplugin.mangleHybridHazardMessage;
|
|
61
63
|
exports.mergeThemes = unplugin.mergeThemes;
|
|
62
64
|
exports.missingTailwindEntryMessage = unplugin.missingTailwindEntryMessage;
|
|
63
65
|
exports.normalizeGlobalVarAliasesForCache = unplugin.normalizeGlobalVarAliasesForCache;
|
package/dist/index.d.cts
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
export { CSSManglerOptions, CSSManglerResult, MangleMap, 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.CK6U5gAP.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, o as appendTailwindSourceDirective, p 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 appendTailwindSourceDirective, p as collectMangleHybridHazards, q as computeSafelistRelPath, r as createGlobalVarMapAssetSource, s as cssHasContentScope, t as cssImportsTailwind, v as esbuildPlugin, w as extractGlobalVarAliasesForManifest, x as fileMayContainSafelistableSz, y as hasInjectableTailwindCandidate, z as isCompileSourceOptedIn, A as isHardIgnoredPath, B as isMonorepoPackage, D as isPackagesSkippedSource, E as mangleCodeClassesSync, F as mangleHybridHazardMessage, H as missingTailwindEntryMessage, I as normalizeGlobalVarAliasesForCache, J as resolveCompileSourceDirs, K as resolveNativeCacheIdentity, L as rollupPlugin, N as shouldEmitWarning, O as shouldWarnMissingTailwindEntry, Q as shouldWarnUnscopedMonorepo, T as skippedSzFilesMessage, u as unplugin, U as unscopedMonorepoMessage, W as vitePlugin, X as webpackPlugin } from './shared/unplugin.CK6U5gAP.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, MangleMap, 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, o as appendTailwindSourceDirective, p 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.CK6U5gAP.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 appendTailwindSourceDirective, p as collectMangleHybridHazards, q as computeSafelistRelPath, r as createGlobalVarMapAssetSource, s as cssHasContentScope, t as cssImportsTailwind, u as default, v as esbuildPlugin, w as extractGlobalVarAliasesForManifest, x as fileMayContainSafelistableSz, y as hasInjectableTailwindCandidate, z as isCompileSourceOptedIn, A as isHardIgnoredPath, B as isMonorepoPackage, D as isPackagesSkippedSource, E as mangleCodeClassesSync, F as mangleHybridHazardMessage, H as missingTailwindEntryMessage, I as normalizeGlobalVarAliasesForCache, J as resolveCompileSourceDirs, K as resolveNativeCacheIdentity, L as rollupPlugin, N as shouldEmitWarning, O as shouldWarnMissingTailwindEntry, Q as shouldWarnUnscopedMonorepo, T as skippedSzFilesMessage, u as unplugin, U as unscopedMonorepoMessage, W as vitePlugin, X as webpackPlugin } from './shared/unplugin.CK6U5gAP.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 { createPostCSSPlugin, escapeCSSClassName, mangleCSS, mangleCSSSync, unescapeTailwindClass } from './css-mangler.mjs';
|
|
2
|
-
export { a as appendTailwindSourceDirective, b as assertNoRSCBoundaryViolation, c as assertNoRSCGraphViolation, d as
|
|
2
|
+
export { a as appendTailwindSourceDirective, b as assertNoRSCBoundaryViolation, c as assertNoRSCGraphViolation, d as collectMangleHybridHazards, e as computeSafelistRelPath, f as createGlobalVarAliasValidationOptions, g as createGlobalVarMapAssetSource, h as createGlobalVarScanCacheKey, i as createRSCModuleRecord, j as cssHasContentScope, k as cssImportsTailwind, u as default, l as deleteRSCModuleRecord, m as esbuildPlugin, n as extractGlobalVarAliasesForManifest, o as fileMayContainSafelistableSz, p as findRSCBoundaryViolation, q as findRSCGraphViolation, r as hasInjectableTailwindCandidate, s as hasTokens, t as hasUseClientDirective, v as hasUseServerDirective, w as isCompileSourceOptedIn, x as isHardIgnoredPath, y as isMonorepoPackage, z as isPackagesSkippedSource, A as isRSCServerModule, B as isTailwindReservedGlobalVar, C as mangleCodeClassesSync, D as mangleHybridHazardMessage, E as mergeThemes, F as missingTailwindEntryMessage, G as normalizeGlobalVarAliasesForCache, H as parseThemeBlocks, I as planGlobalVarAliases, J as readGlobalVarScanCache, K as resolveCompileSourceDirs, L as resolveGlobalVarScanCacheDir, M as resolveNativeCacheIdentity, N as rewriteGlobalVarCssAliases, O as rollupPlugin, P as scanGlobalVarCss, Q as shouldEmitWarning, R as shouldWarnMissingTailwindEntry, S as shouldWarnUnscopedMonorepo, T as skippedSzFilesMessage, u as unplugin, U as unscopedMonorepoMessage, V as validateGlobalVarAliasInputs, W as vitePlugin, X as webpackPlugin, Y as writeGlobalVarScanCache } from './shared/unplugin.mdW7U-K4.mjs';
|
|
3
3
|
export { CSSZYX_GLOBAL_ALIAS_PREFIX, TAILWIND_RESERVED_PREFIXES } from '@csszyx/types';
|
|
4
4
|
import 'postcss';
|
|
5
5
|
import 'postcss-selector-parser';
|
package/dist/next-prebuild.cjs
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
const node_crypto = require('node:crypto');
|
|
4
4
|
const fs = require('node:fs');
|
|
5
5
|
const path = require('node:path');
|
|
6
|
-
const nextTransformMetadata = require('./shared/unplugin.
|
|
6
|
+
const nextTransformMetadata = require('./shared/unplugin.C3H4KqpP.cjs');
|
|
7
7
|
const nextWatcherCycle = require('./shared/unplugin.Cwe-dz1f.cjs');
|
|
8
8
|
const transformCache = require('./shared/unplugin.pmTknYLy.cjs');
|
|
9
9
|
require('@csszyx/compiler');
|
package/dist/next-prebuild.mjs
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { createHash } from 'node:crypto';
|
|
2
2
|
import { existsSync, readFileSync } from 'node:fs';
|
|
3
3
|
import * as path from 'node:path';
|
|
4
|
-
import { r as readPackageVersion, t as transformNextSource, c as collectNextTransformMetadata, a as createNextSafelistShardFromMetadata } from './shared/unplugin.
|
|
4
|
+
import { r as readPackageVersion, t as transformNextSource, c as collectNextTransformMetadata, a as createNextSafelistShardFromMetadata } from './shared/unplugin.D2_Q3rOU.mjs';
|
|
5
5
|
import { c as createNextStateContext, w as writeNextSafelistShard, r as runNextWatcherCycle } from './shared/unplugin.CLjhn81z.mjs';
|
|
6
6
|
import { r as resolveTransformCacheDir } from './shared/unplugin.BpWUtI9U.mjs';
|
|
7
7
|
import '@csszyx/compiler';
|
|
@@ -5,7 +5,7 @@ Object.defineProperty(exports, '__esModule', { value: true });
|
|
|
5
5
|
const node_crypto = require('node:crypto');
|
|
6
6
|
const path = require('node:path');
|
|
7
7
|
const nextWatcherCycle = require('./shared/unplugin.Cwe-dz1f.cjs');
|
|
8
|
-
const nextTransformMetadata = require('./shared/unplugin.
|
|
8
|
+
const nextTransformMetadata = require('./shared/unplugin.C3H4KqpP.cjs');
|
|
9
9
|
const transformCache = require('./shared/unplugin.pmTknYLy.cjs');
|
|
10
10
|
require('node:fs');
|
|
11
11
|
require('node:os');
|
|
@@ -30,9 +30,9 @@ const path__namespace = /*#__PURE__*/_interopNamespaceCompat(path);
|
|
|
30
30
|
|
|
31
31
|
const DIRECTIVE_PROLOGUE_PREFIX_RE = /^((?:\s|\/\/[^\n]*\n|\/\*(?:[^*]|\*(?!\/))*\*\/)*)(['"]use (?:client|server)['"];?\s*)/;
|
|
32
32
|
const RUNTIME_HELPER_IMPORT_RE = {
|
|
33
|
-
_sz:
|
|
34
|
-
_szMerge:
|
|
35
|
-
__szColorVar:
|
|
33
|
+
_sz: /(?:import|export)\s+\{[^{}]*\b_sz\b[^{}]*\}\s*from\s*['"]@csszyx\/runtime['"]/,
|
|
34
|
+
_szMerge: /(?:import|export)\s+\{[^{}]*\b_szMerge\b[^{}]*\}\s*from\s*['"]@csszyx\/runtime['"]/,
|
|
35
|
+
__szColorVar: /(?:import|export)\s+\{[^{}]*\b__szColorVar\b[^{}]*\}\s*from\s*['"]@csszyx\/runtime['"]/
|
|
36
36
|
};
|
|
37
37
|
function injectNextRuntimeImports(code, usage) {
|
|
38
38
|
const helpers = runtimeHelpersFromUsage(usage);
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { createHash } from 'node:crypto';
|
|
2
2
|
import * as path from 'node:path';
|
|
3
3
|
import { c as createNextStateContext, w as writeNextSafelistShard, r as runNextWatcherCycle, v as validateNextGenerationManifest, a as readNextGenerationManifest } from './shared/unplugin.CLjhn81z.mjs';
|
|
4
|
-
import { r as readPackageVersion, t as transformNextSource, c as collectNextTransformMetadata, a as createNextSafelistShardFromMetadata } from './shared/unplugin.
|
|
4
|
+
import { r as readPackageVersion, t as transformNextSource, c as collectNextTransformMetadata, a as createNextSafelistShardFromMetadata } from './shared/unplugin.D2_Q3rOU.mjs';
|
|
5
5
|
import { r as resolveTransformCacheDir } from './shared/unplugin.BpWUtI9U.mjs';
|
|
6
6
|
import 'node:fs';
|
|
7
7
|
import 'node:os';
|
|
@@ -11,9 +11,9 @@ import '@csszyx/compiler';
|
|
|
11
11
|
|
|
12
12
|
const DIRECTIVE_PROLOGUE_PREFIX_RE = /^((?:\s|\/\/[^\n]*\n|\/\*(?:[^*]|\*(?!\/))*\*\/)*)(['"]use (?:client|server)['"];?\s*)/;
|
|
13
13
|
const RUNTIME_HELPER_IMPORT_RE = {
|
|
14
|
-
_sz:
|
|
15
|
-
_szMerge:
|
|
16
|
-
__szColorVar:
|
|
14
|
+
_sz: /(?:import|export)\s+\{[^{}]*\b_sz\b[^{}]*\}\s*from\s*['"]@csszyx\/runtime['"]/,
|
|
15
|
+
_szMerge: /(?:import|export)\s+\{[^{}]*\b_szMerge\b[^{}]*\}\s*from\s*['"]@csszyx\/runtime['"]/,
|
|
16
|
+
__szColorVar: /(?:import|export)\s+\{[^{}]*\b__szColorVar\b[^{}]*\}\s*from\s*['"]@csszyx\/runtime['"]/
|
|
17
17
|
};
|
|
18
18
|
function injectNextRuntimeImports(code, usage) {
|
|
19
19
|
const helpers = runtimeHelpersFromUsage(usage);
|
|
@@ -234,7 +234,7 @@ function collectRuntimeStaticClasses(result, discoveredClasses) {
|
|
|
234
234
|
}
|
|
235
235
|
}
|
|
236
236
|
function collectRuntimeStringClasses(objectSource, discoveredClasses) {
|
|
237
|
-
const stringKeyValue =
|
|
237
|
+
const stringKeyValue = /\b(\w+)\s*:\s*(?:"([^"]*)"|'([^']*)')/g;
|
|
238
238
|
for (const match of objectSource.matchAll(stringKeyValue)) {
|
|
239
239
|
try {
|
|
240
240
|
collectTransformClasses(
|
|
@@ -246,7 +246,7 @@ function collectRuntimeStringClasses(objectSource, discoveredClasses) {
|
|
|
246
246
|
}
|
|
247
247
|
}
|
|
248
248
|
function collectRuntimeNumberClasses(objectSource, discoveredClasses) {
|
|
249
|
-
const numberKeyValue =
|
|
249
|
+
const numberKeyValue = /\b(\w+)\s*:\s*(-?\d+(?:\.\d+)?)\s*(?=[,}\n])/g;
|
|
250
250
|
for (const match of objectSource.matchAll(numberKeyValue)) {
|
|
251
251
|
try {
|
|
252
252
|
collectTransformClasses(
|
|
@@ -258,7 +258,7 @@ function collectRuntimeNumberClasses(objectSource, discoveredClasses) {
|
|
|
258
258
|
}
|
|
259
259
|
}
|
|
260
260
|
function collectRuntimeBooleanClasses(objectSource, discoveredClasses) {
|
|
261
|
-
const booleanKeyValue =
|
|
261
|
+
const booleanKeyValue = /\b(\w+)\s*:\s*(true|false)\s*(?=[,}\n])/g;
|
|
262
262
|
for (const match of objectSource.matchAll(booleanKeyValue)) {
|
|
263
263
|
try {
|
|
264
264
|
collectTransformClasses(
|
|
@@ -285,6 +285,42 @@ declare function shouldWarnMissingTailwindEntry(ownedClassCount: number, sawTail
|
|
|
285
285
|
* @returns the warning string.
|
|
286
286
|
*/
|
|
287
287
|
declare function missingTailwindEntryMessage(ownedClassCount: number): string;
|
|
288
|
+
/**
|
|
289
|
+
* Hazards that make production mangling unsafe in a hybrid build (a separate
|
|
290
|
+
* Tailwind plugin owns the utility CSS and/or hand-written CSS uses literal class
|
|
291
|
+
* names). Computed from data `mangleCSSSync` already returns across every CSS
|
|
292
|
+
* asset, so it is free to surface.
|
|
293
|
+
*/
|
|
294
|
+
interface MangleHybridHazards {
|
|
295
|
+
/**
|
|
296
|
+
* Mangled tokens that ALSO appear as a class name in non-csszyx CSS. The
|
|
297
|
+
* short token (e.g. `y` for `w-full`) then matches external `.y` elements and
|
|
298
|
+
* cross-contaminates their styles — the core hybrid-mangle failure.
|
|
299
|
+
*/
|
|
300
|
+
collisions: string[];
|
|
301
|
+
/**
|
|
302
|
+
* Map sources csszyx mangled but whose class never appeared in any emitted
|
|
303
|
+
* CSS (e.g. a utility Tailwind never generated, or a malformed key). Their
|
|
304
|
+
* DOM class is rewritten to a token with no rule → the element loses styling.
|
|
305
|
+
*/
|
|
306
|
+
orphans: string[];
|
|
307
|
+
}
|
|
308
|
+
/**
|
|
309
|
+
* Detect hybrid-mangle hazards from the accumulated per-asset mangle results.
|
|
310
|
+
*
|
|
311
|
+
* @param mangleMap - the full original→token map injected into the runtime.
|
|
312
|
+
* @param mangledSources - map keys that were actually found and renamed in some CSS asset.
|
|
313
|
+
* @param externalClasses - class names found in CSS that are NOT in the mangle map (non-csszyx).
|
|
314
|
+
* @returns the colliding tokens and orphan sources (each sorted, deduped).
|
|
315
|
+
*/
|
|
316
|
+
declare function collectMangleHybridHazards(mangleMap: Record<string, string>, mangledSources: ReadonlySet<string>, externalClasses: ReadonlySet<string>): MangleHybridHazards;
|
|
317
|
+
/**
|
|
318
|
+
* Build the hybrid-mangle hazard warning, or null when there is nothing to warn.
|
|
319
|
+
*
|
|
320
|
+
* @param hazards - the detected collisions and orphans.
|
|
321
|
+
* @returns a warning string, or null when both lists are empty.
|
|
322
|
+
*/
|
|
323
|
+
declare function mangleHybridHazardMessage(hazards: MangleHybridHazards): string | null;
|
|
288
324
|
/**
|
|
289
325
|
* Whether a CSS module scopes Tailwind's content detection — `source(none)` or
|
|
290
326
|
* `source("…")` on the `@import "tailwindcss"`, or any `@source not` exclusion.
|
|
@@ -504,5 +540,5 @@ declare const rollupPlugin: (options?: PartialCsszyxConfig) => InputPluginOption
|
|
|
504
540
|
*/
|
|
505
541
|
declare const esbuildPlugin: (options?: PartialCsszyxConfig) => Plugin;
|
|
506
542
|
|
|
507
|
-
export {
|
|
508
|
-
export type { CssVarScanResult as C, GlobalVarScanCacheKeyInput as G, PlanGlobalVarAliasesInput as P, 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 };
|
|
543
|
+
export { isHardIgnoredPath as A, isMonorepoPackage as B, isPackagesSkippedSource as D, mangleCodeClassesSync as E, mangleHybridHazardMessage as F, missingTailwindEntryMessage as H, normalizeGlobalVarAliasesForCache as I, resolveCompileSourceDirs as J, resolveNativeCacheIdentity as K, rollupPlugin as L, shouldEmitWarning as N, shouldWarnMissingTailwindEntry as O, shouldWarnUnscopedMonorepo as Q, skippedSzFilesMessage as T, unscopedMonorepoMessage as U, vitePlugin as W, webpackPlugin as X, appendTailwindSourceDirective as o, collectMangleHybridHazards as p, computeSafelistRelPath as q, createGlobalVarMapAssetSource as r, cssHasContentScope as s, cssImportsTailwind as t, unplugin as u, esbuildPlugin as v, extractGlobalVarAliasesForManifest as w, fileMayContainSafelistableSz as x, hasInjectableTailwindCandidate as y, isCompileSourceOptedIn as z };
|
|
544
|
+
export type { CssVarScanResult as C, GlobalVarScanCacheKeyInput as G, MangleHybridHazards as M, PlanGlobalVarAliasesInput as P, 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 };
|
|
@@ -285,6 +285,42 @@ declare function shouldWarnMissingTailwindEntry(ownedClassCount: number, sawTail
|
|
|
285
285
|
* @returns the warning string.
|
|
286
286
|
*/
|
|
287
287
|
declare function missingTailwindEntryMessage(ownedClassCount: number): string;
|
|
288
|
+
/**
|
|
289
|
+
* Hazards that make production mangling unsafe in a hybrid build (a separate
|
|
290
|
+
* Tailwind plugin owns the utility CSS and/or hand-written CSS uses literal class
|
|
291
|
+
* names). Computed from data `mangleCSSSync` already returns across every CSS
|
|
292
|
+
* asset, so it is free to surface.
|
|
293
|
+
*/
|
|
294
|
+
interface MangleHybridHazards {
|
|
295
|
+
/**
|
|
296
|
+
* Mangled tokens that ALSO appear as a class name in non-csszyx CSS. The
|
|
297
|
+
* short token (e.g. `y` for `w-full`) then matches external `.y` elements and
|
|
298
|
+
* cross-contaminates their styles — the core hybrid-mangle failure.
|
|
299
|
+
*/
|
|
300
|
+
collisions: string[];
|
|
301
|
+
/**
|
|
302
|
+
* Map sources csszyx mangled but whose class never appeared in any emitted
|
|
303
|
+
* CSS (e.g. a utility Tailwind never generated, or a malformed key). Their
|
|
304
|
+
* DOM class is rewritten to a token with no rule → the element loses styling.
|
|
305
|
+
*/
|
|
306
|
+
orphans: string[];
|
|
307
|
+
}
|
|
308
|
+
/**
|
|
309
|
+
* Detect hybrid-mangle hazards from the accumulated per-asset mangle results.
|
|
310
|
+
*
|
|
311
|
+
* @param mangleMap - the full original→token map injected into the runtime.
|
|
312
|
+
* @param mangledSources - map keys that were actually found and renamed in some CSS asset.
|
|
313
|
+
* @param externalClasses - class names found in CSS that are NOT in the mangle map (non-csszyx).
|
|
314
|
+
* @returns the colliding tokens and orphan sources (each sorted, deduped).
|
|
315
|
+
*/
|
|
316
|
+
declare function collectMangleHybridHazards(mangleMap: Record<string, string>, mangledSources: ReadonlySet<string>, externalClasses: ReadonlySet<string>): MangleHybridHazards;
|
|
317
|
+
/**
|
|
318
|
+
* Build the hybrid-mangle hazard warning, or null when there is nothing to warn.
|
|
319
|
+
*
|
|
320
|
+
* @param hazards - the detected collisions and orphans.
|
|
321
|
+
* @returns a warning string, or null when both lists are empty.
|
|
322
|
+
*/
|
|
323
|
+
declare function mangleHybridHazardMessage(hazards: MangleHybridHazards): string | null;
|
|
288
324
|
/**
|
|
289
325
|
* Whether a CSS module scopes Tailwind's content detection — `source(none)` or
|
|
290
326
|
* `source("…")` on the `@import "tailwindcss"`, or any `@source not` exclusion.
|
|
@@ -504,5 +540,5 @@ declare const rollupPlugin: (options?: PartialCsszyxConfig) => InputPluginOption
|
|
|
504
540
|
*/
|
|
505
541
|
declare const esbuildPlugin: (options?: PartialCsszyxConfig) => Plugin;
|
|
506
542
|
|
|
507
|
-
export {
|
|
508
|
-
export type { CssVarScanResult as C, GlobalVarScanCacheKeyInput as G, PlanGlobalVarAliasesInput as P, 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 };
|
|
543
|
+
export { isHardIgnoredPath as A, isMonorepoPackage as B, isPackagesSkippedSource as D, mangleCodeClassesSync as E, mangleHybridHazardMessage as F, missingTailwindEntryMessage as H, normalizeGlobalVarAliasesForCache as I, resolveCompileSourceDirs as J, resolveNativeCacheIdentity as K, rollupPlugin as L, shouldEmitWarning as N, shouldWarnMissingTailwindEntry as O, shouldWarnUnscopedMonorepo as Q, skippedSzFilesMessage as T, unscopedMonorepoMessage as U, vitePlugin as W, webpackPlugin as X, appendTailwindSourceDirective as o, collectMangleHybridHazards as p, computeSafelistRelPath as q, createGlobalVarMapAssetSource as r, cssHasContentScope as s, cssImportsTailwind as t, unplugin as u, esbuildPlugin as v, extractGlobalVarAliasesForManifest as w, fileMayContainSafelistableSz as x, hasInjectableTailwindCandidate as y, isCompileSourceOptedIn as z };
|
|
544
|
+
export type { CssVarScanResult as C, GlobalVarScanCacheKeyInput as G, MangleHybridHazards as M, PlanGlobalVarAliasesInput as P, 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 };
|
|
@@ -232,7 +232,7 @@ function collectRuntimeStaticClasses(result, discoveredClasses) {
|
|
|
232
232
|
}
|
|
233
233
|
}
|
|
234
234
|
function collectRuntimeStringClasses(objectSource, discoveredClasses) {
|
|
235
|
-
const stringKeyValue =
|
|
235
|
+
const stringKeyValue = /\b(\w+)\s*:\s*(?:"([^"]*)"|'([^']*)')/g;
|
|
236
236
|
for (const match of objectSource.matchAll(stringKeyValue)) {
|
|
237
237
|
try {
|
|
238
238
|
collectTransformClasses(
|
|
@@ -244,7 +244,7 @@ function collectRuntimeStringClasses(objectSource, discoveredClasses) {
|
|
|
244
244
|
}
|
|
245
245
|
}
|
|
246
246
|
function collectRuntimeNumberClasses(objectSource, discoveredClasses) {
|
|
247
|
-
const numberKeyValue =
|
|
247
|
+
const numberKeyValue = /\b(\w+)\s*:\s*(-?\d+(?:\.\d+)?)\s*(?=[,}\n])/g;
|
|
248
248
|
for (const match of objectSource.matchAll(numberKeyValue)) {
|
|
249
249
|
try {
|
|
250
250
|
collectTransformClasses(
|
|
@@ -256,7 +256,7 @@ function collectRuntimeNumberClasses(objectSource, discoveredClasses) {
|
|
|
256
256
|
}
|
|
257
257
|
}
|
|
258
258
|
function collectRuntimeBooleanClasses(objectSource, discoveredClasses) {
|
|
259
|
-
const booleanKeyValue =
|
|
259
|
+
const booleanKeyValue = /\b(\w+)\s*:\s*(true|false)\s*(?=[,}\n])/g;
|
|
260
260
|
for (const match of objectSource.matchAll(booleanKeyValue)) {
|
|
261
261
|
try {
|
|
262
262
|
collectTransformClasses(
|
|
@@ -913,7 +913,7 @@ function readImportedSymbols(clause) {
|
|
|
913
913
|
if (!trimmed || trimmed.startsWith("type ")) {
|
|
914
914
|
continue;
|
|
915
915
|
}
|
|
916
|
-
const sourceName = trimmed.replace(/^type[ \t]+/, "").split(/[ \t]+as[ \t]+/)[0]?.trim();
|
|
916
|
+
const sourceName = trimmed.replace(/^type[ \t]+/, "").split(/(?<![ \t])[ \t]+as[ \t]+/)[0]?.trim();
|
|
917
917
|
if (sourceName) {
|
|
918
918
|
symbols.push(sourceName);
|
|
919
919
|
}
|
|
@@ -1602,16 +1602,18 @@ const DEFAULT_VAR_MANGLE_MAP_MAX_BYTES = 100 * 1024;
|
|
|
1602
1602
|
const GLOBAL_VAR_ALIAS_MAP_OWNER = "\0csszyx:global-var-aliases";
|
|
1603
1603
|
const DIRECTIVE_PROLOGUE_PREFIX_RE = /^((?:\s|\/\/[^\n]*\n|\/\*(?:[^*]|\*(?!\/))*\*\/)*)(['"]use (?:client|server)['"];?\s*)/;
|
|
1604
1604
|
const RUNTIME_HELPER_IMPORT_RE = {
|
|
1605
|
-
_sz:
|
|
1606
|
-
_szMerge:
|
|
1607
|
-
__szColorVar:
|
|
1605
|
+
_sz: /(?:import|export)\s+\{[^{}]*\b_sz\b[^{}]*\}\s*from\s*['"]@csszyx\/runtime['"]/,
|
|
1606
|
+
_szMerge: /(?:import|export)\s+\{[^{}]*\b_szMerge\b[^{}]*\}\s*from\s*['"]@csszyx\/runtime['"]/,
|
|
1607
|
+
__szColorVar: /(?:import|export)\s+\{[^{}]*\b__szColorVar\b[^{}]*\}\s*from\s*['"]@csszyx\/runtime['"]/
|
|
1608
1608
|
};
|
|
1609
1609
|
let _hasWarnedTsConfig = false;
|
|
1610
1610
|
let _hasWarnedTransformCacheVersion = false;
|
|
1611
1611
|
let _hasWarnedNativeFallback = false;
|
|
1612
|
-
|
|
1612
|
+
let _hasLoggedActiveParser = false;
|
|
1613
|
+
const _babelFallbackFiles = /* @__PURE__ */ new Set();
|
|
1614
|
+
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.DlGyBb8o.cjs', document.baseURI).href)));
|
|
1613
1615
|
const PLUGIN_VERSION = findPackageVersionFromFile(
|
|
1614
|
-
node_url.fileURLToPath((typeof document === 'undefined' ? require('u' + 'rl').pathToFileURL(__filename).href : (_documentCurrentScript && _documentCurrentScript.tagName.toUpperCase() === 'SCRIPT' && _documentCurrentScript.src || new URL('shared/unplugin.
|
|
1616
|
+
node_url.fileURLToPath((typeof document === 'undefined' ? require('u' + 'rl').pathToFileURL(__filename).href : (_documentCurrentScript && _documentCurrentScript.tagName.toUpperCase() === 'SCRIPT' && _documentCurrentScript.src || new URL('shared/unplugin.DlGyBb8o.cjs', document.baseURI).href))),
|
|
1615
1617
|
UNKNOWN_PACKAGE_VERSION
|
|
1616
1618
|
);
|
|
1617
1619
|
const COMPILER_VERSION = findPackageVersionFromModule("@csszyx/compiler", UNKNOWN_PACKAGE_VERSION);
|
|
@@ -1688,6 +1690,41 @@ function shouldWarnMissingTailwindEntry(ownedClassCount, sawTailwindEntry, sawAn
|
|
|
1688
1690
|
function missingTailwindEntryMessage(ownedClassCount) {
|
|
1689
1691
|
return `[csszyx] generated ${ownedClassCount} sz class(es) but found no CSS entry importing "tailwindcss" \u2014 those classes will produce no CSS. Import "tailwindcss" in a CSS file (csszyx auto-injects @source for the generated classes) so Tailwind emits their styles.`;
|
|
1690
1692
|
}
|
|
1693
|
+
function collectMangleHybridHazards(mangleMap, mangledSources, externalClasses) {
|
|
1694
|
+
const tokenValues = new Set(Object.values(mangleMap));
|
|
1695
|
+
const collisions = [...tokenValues].filter((token) => externalClasses.has(token)).sort();
|
|
1696
|
+
const orphans = Object.keys(mangleMap).filter((source) => !mangledSources.has(source)).sort();
|
|
1697
|
+
return { collisions, orphans };
|
|
1698
|
+
}
|
|
1699
|
+
function mangleHybridHazardMessage(hazards) {
|
|
1700
|
+
const { collisions, orphans } = hazards;
|
|
1701
|
+
if (collisions.length === 0 && orphans.length === 0) {
|
|
1702
|
+
return null;
|
|
1703
|
+
}
|
|
1704
|
+
const parts = ["[csszyx] production mangle found hybrid hazards:"];
|
|
1705
|
+
if (collisions.length > 0) {
|
|
1706
|
+
const sample = collisions.slice(0, 8).join(", ");
|
|
1707
|
+
parts.push(
|
|
1708
|
+
` ${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.`
|
|
1709
|
+
);
|
|
1710
|
+
}
|
|
1711
|
+
if (orphans.length > 0) {
|
|
1712
|
+
const sample = orphans.slice(0, 8).join(", ");
|
|
1713
|
+
parts.push(
|
|
1714
|
+
` ${orphans.length} mangled class(es) have no emitted CSS rule (e.g. ${sample}) \u2014 those elements lose styling.`
|
|
1715
|
+
);
|
|
1716
|
+
}
|
|
1717
|
+
if (collisions.length > 0) {
|
|
1718
|
+
parts.push(
|
|
1719
|
+
" 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."
|
|
1720
|
+
);
|
|
1721
|
+
} else {
|
|
1722
|
+
parts.push(
|
|
1723
|
+
" 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."
|
|
1724
|
+
);
|
|
1725
|
+
}
|
|
1726
|
+
return parts.join("");
|
|
1727
|
+
}
|
|
1691
1728
|
function cssHasContentScope(code) {
|
|
1692
1729
|
const s = stripCssBlockComments(code);
|
|
1693
1730
|
return /@import\s+["']tailwindcss(?:\/[^"']*)?["']\s+source\(/.test(s) || /@source\s+not\b/.test(s);
|
|
@@ -2364,7 +2401,7 @@ function mangleCodeClassesSync(code, mangleMap) {
|
|
|
2364
2401
|
result = out + result.slice(copiedTo);
|
|
2365
2402
|
}
|
|
2366
2403
|
}
|
|
2367
|
-
result = result.replace(/(
|
|
2404
|
+
result = result.replace(/([,(]|&&)(\s*)"([^"]+)"/g, (match, sep, ws, inner) => {
|
|
2368
2405
|
const tokens = inner.split(/\s+/).filter(Boolean);
|
|
2369
2406
|
if (tokens.length === 0) {
|
|
2370
2407
|
return match;
|
|
@@ -2384,7 +2421,7 @@ function mangleCodeClassesSync(code, mangleMap) {
|
|
|
2384
2421
|
if (!changed) {
|
|
2385
2422
|
return match;
|
|
2386
2423
|
}
|
|
2387
|
-
return
|
|
2424
|
+
return `${sep}${ws}"${mangled.join(" ")}"`;
|
|
2388
2425
|
});
|
|
2389
2426
|
return result;
|
|
2390
2427
|
}
|
|
@@ -2413,6 +2450,7 @@ ${errors.join("\n")}`
|
|
|
2413
2450
|
function createCsszyxPlugins(options = {}) {
|
|
2414
2451
|
assertGlobalVarMangleConfig(options);
|
|
2415
2452
|
let manglingEnabled = options.production?.mangle !== false;
|
|
2453
|
+
const mangleReserved = new Set(options.production?.mangleExclude ?? []);
|
|
2416
2454
|
const astBudgetOverride = options.build?.astBudgetLimit;
|
|
2417
2455
|
const cacheRequested = (options.build?.cache ?? types.DEFAULT_BUILD_CONFIG.cache) !== false;
|
|
2418
2456
|
const cacheVersionsKnown = PLUGIN_VERSION !== UNKNOWN_PACKAGE_VERSION && COMPILER_VERSION !== UNKNOWN_PACKAGE_VERSION;
|
|
@@ -2450,6 +2488,11 @@ function createCsszyxPlugins(options = {}) {
|
|
|
2450
2488
|
"[csszyx] No prebuilt native binary (@csszyx/core-*) is available for this platform, so the default `rust` parser fell back to `oxc`. Output classes are identical (parity-tested); only parse speed differs. To use the native engine, install the matching @csszyx/core-<platform> package (or do not omit optional dependencies). Set `build.parser` explicitly to silence this."
|
|
2451
2489
|
);
|
|
2452
2490
|
}
|
|
2491
|
+
if (!_hasLoggedActiveParser) {
|
|
2492
|
+
_hasLoggedActiveParser = true;
|
|
2493
|
+
const detail = parserDegraded ? "oxc (degraded from default `rust`: no native binary for this platform)" : parserMode === "rust" ? "rust (native engine)" : parserMode;
|
|
2494
|
+
console.warn(`[csszyx] active parser: ${detail}`);
|
|
2495
|
+
}
|
|
2453
2496
|
let evictedCacheRoot = null;
|
|
2454
2497
|
const transformMemoryCache = /* @__PURE__ */ new Map();
|
|
2455
2498
|
const state = {
|
|
@@ -2591,6 +2634,12 @@ function createCsszyxPlugins(options = {}) {
|
|
|
2591
2634
|
result.diagnostics.push(
|
|
2592
2635
|
`[csszyx] oxc parser fell back to Babel for ${effectiveFilename}: ${reason}`
|
|
2593
2636
|
);
|
|
2637
|
+
if (!_babelFallbackFiles.has(effectiveFilename)) {
|
|
2638
|
+
_babelFallbackFiles.add(effectiveFilename);
|
|
2639
|
+
console.warn(
|
|
2640
|
+
`[csszyx] oxc parser fell back to Babel for ${effectiveFilename}: ${reason} (${_babelFallbackFiles.size} file(s) so far). Output is still correct; this usually means the file uses a syntax the oxc lane does not yet handle.`
|
|
2641
|
+
);
|
|
2642
|
+
}
|
|
2594
2643
|
return result;
|
|
2595
2644
|
}
|
|
2596
2645
|
}
|
|
@@ -2890,7 +2939,7 @@ function createCsszyxPlugins(options = {}) {
|
|
|
2890
2939
|
}
|
|
2891
2940
|
}
|
|
2892
2941
|
function collectRuntimeStringClasses(objStr, discoveredClasses) {
|
|
2893
|
-
const strKv =
|
|
2942
|
+
const strKv = /\b(\w+)\s*:\s*(?:"([^"]*)"|'([^']*)')/g;
|
|
2894
2943
|
for (const kv of objStr.matchAll(strKv)) {
|
|
2895
2944
|
try {
|
|
2896
2945
|
const val = kv[2] ?? kv[3];
|
|
@@ -2900,7 +2949,7 @@ function createCsszyxPlugins(options = {}) {
|
|
|
2900
2949
|
}
|
|
2901
2950
|
}
|
|
2902
2951
|
function collectRuntimeNumberClasses(objStr, discoveredClasses) {
|
|
2903
|
-
const numKv =
|
|
2952
|
+
const numKv = /\b(\w+)\s*:\s*(-?\d+(?:\.\d+)?)\s*(?=[,}\n])/g;
|
|
2904
2953
|
for (const kv of objStr.matchAll(numKv)) {
|
|
2905
2954
|
try {
|
|
2906
2955
|
collectTransformClasses(
|
|
@@ -2912,7 +2961,7 @@ function createCsszyxPlugins(options = {}) {
|
|
|
2912
2961
|
}
|
|
2913
2962
|
}
|
|
2914
2963
|
function collectRuntimeBooleanClasses(objStr, discoveredClasses) {
|
|
2915
|
-
const boolKv =
|
|
2964
|
+
const boolKv = /\b(\w+)\s*:\s*(true|false)\s*(?=[,}\n])/g;
|
|
2916
2965
|
for (const kv of objStr.matchAll(boolKv)) {
|
|
2917
2966
|
try {
|
|
2918
2967
|
collectTransformClasses(
|
|
@@ -2965,8 +3014,15 @@ function createCsszyxPlugins(options = {}) {
|
|
|
2965
3014
|
function finalizeMangleMap() {
|
|
2966
3015
|
const sortedClasses = Array.from(state.ownedClasses);
|
|
2967
3016
|
const newMap = {};
|
|
3017
|
+
let tokenIndex = 0;
|
|
2968
3018
|
for (let i = 0; i < sortedClasses.length; i++) {
|
|
2969
|
-
|
|
3019
|
+
let token = core.encode(tokenIndex);
|
|
3020
|
+
while (mangleReserved.has(token)) {
|
|
3021
|
+
tokenIndex++;
|
|
3022
|
+
token = core.encode(tokenIndex);
|
|
3023
|
+
}
|
|
3024
|
+
newMap[sortedClasses[i]] = token;
|
|
3025
|
+
tokenIndex++;
|
|
2970
3026
|
}
|
|
2971
3027
|
state.mangleMap = newMap;
|
|
2972
3028
|
assertVarMangleMapSize(state.varMangleMap, varMangleMapMaxBytes);
|
|
@@ -3476,6 +3532,8 @@ function createCsszyxPlugins(options = {}) {
|
|
|
3476
3532
|
);
|
|
3477
3533
|
}
|
|
3478
3534
|
}
|
|
3535
|
+
const mangledSources = /* @__PURE__ */ new Set();
|
|
3536
|
+
const externalClasses = /* @__PURE__ */ new Set();
|
|
3479
3537
|
for (const file in assets) {
|
|
3480
3538
|
const asset = assets[file];
|
|
3481
3539
|
const source = asset.source().toString();
|
|
@@ -3491,6 +3549,12 @@ function createCsszyxPlugins(options = {}) {
|
|
|
3491
3549
|
debug: options.development?.debug,
|
|
3492
3550
|
from: file
|
|
3493
3551
|
});
|
|
3552
|
+
for (const c of result.mangledClasses) {
|
|
3553
|
+
mangledSources.add(c);
|
|
3554
|
+
}
|
|
3555
|
+
for (const c of result.unmangledClasses) {
|
|
3556
|
+
externalClasses.add(c);
|
|
3557
|
+
}
|
|
3494
3558
|
if (result.transformedCount > 0) {
|
|
3495
3559
|
css = result.css;
|
|
3496
3560
|
}
|
|
@@ -3552,6 +3616,18 @@ function createCsszyxPlugins(options = {}) {
|
|
|
3552
3616
|
}
|
|
3553
3617
|
}
|
|
3554
3618
|
}
|
|
3619
|
+
if (manglingEnabled && !isWebpackDevMode && Object.keys(state.mangleMap).length > 0) {
|
|
3620
|
+
const hazardMessage = mangleHybridHazardMessage(
|
|
3621
|
+
collectMangleHybridHazards(
|
|
3622
|
+
state.mangleMap,
|
|
3623
|
+
mangledSources,
|
|
3624
|
+
externalClasses
|
|
3625
|
+
)
|
|
3626
|
+
);
|
|
3627
|
+
if (hazardMessage) {
|
|
3628
|
+
console.warn(hazardMessage);
|
|
3629
|
+
}
|
|
3630
|
+
}
|
|
3555
3631
|
}
|
|
3556
3632
|
);
|
|
3557
3633
|
});
|
|
@@ -3608,6 +3684,8 @@ function createCsszyxPlugins(options = {}) {
|
|
|
3608
3684
|
});
|
|
3609
3685
|
}
|
|
3610
3686
|
}
|
|
3687
|
+
const mangledSources = /* @__PURE__ */ new Set();
|
|
3688
|
+
const externalClasses = /* @__PURE__ */ new Set();
|
|
3611
3689
|
for (const file in bundle) {
|
|
3612
3690
|
const chunk = bundle[file];
|
|
3613
3691
|
if (chunk.type === "asset" && chunk.fileName.endsWith(".css")) {
|
|
@@ -3623,6 +3701,12 @@ function createCsszyxPlugins(options = {}) {
|
|
|
3623
3701
|
debug: options.development?.debug,
|
|
3624
3702
|
from: file
|
|
3625
3703
|
});
|
|
3704
|
+
for (const c of result.mangledClasses) {
|
|
3705
|
+
mangledSources.add(c);
|
|
3706
|
+
}
|
|
3707
|
+
for (const c of result.unmangledClasses) {
|
|
3708
|
+
externalClasses.add(c);
|
|
3709
|
+
}
|
|
3626
3710
|
if (result.transformedCount > 0) {
|
|
3627
3711
|
css = result.css;
|
|
3628
3712
|
}
|
|
@@ -3654,6 +3738,18 @@ function createCsszyxPlugins(options = {}) {
|
|
|
3654
3738
|
}
|
|
3655
3739
|
}
|
|
3656
3740
|
}
|
|
3741
|
+
if (manglingEnabled && Object.keys(state.mangleMap).length > 0) {
|
|
3742
|
+
const hazardMessage = mangleHybridHazardMessage(
|
|
3743
|
+
collectMangleHybridHazards(
|
|
3744
|
+
state.mangleMap,
|
|
3745
|
+
mangledSources,
|
|
3746
|
+
externalClasses
|
|
3747
|
+
)
|
|
3748
|
+
);
|
|
3749
|
+
if (hazardMessage) {
|
|
3750
|
+
console.warn(hazardMessage);
|
|
3751
|
+
}
|
|
3752
|
+
}
|
|
3657
3753
|
}
|
|
3658
3754
|
}
|
|
3659
3755
|
}));
|
|
@@ -3704,6 +3800,7 @@ const esbuildPlugin = (options = {}) => {
|
|
|
3704
3800
|
exports.appendTailwindSourceDirective = appendTailwindSourceDirective;
|
|
3705
3801
|
exports.assertNoRSCBoundaryViolation = assertNoRSCBoundaryViolation;
|
|
3706
3802
|
exports.assertNoRSCGraphViolation = assertNoRSCGraphViolation;
|
|
3803
|
+
exports.collectMangleHybridHazards = collectMangleHybridHazards;
|
|
3707
3804
|
exports.computeSafelistRelPath = computeSafelistRelPath;
|
|
3708
3805
|
exports.createGlobalVarAliasValidationOptions = createGlobalVarAliasValidationOptions;
|
|
3709
3806
|
exports.createGlobalVarMapAssetSource = createGlobalVarMapAssetSource;
|
|
@@ -3728,6 +3825,7 @@ exports.isPackagesSkippedSource = isPackagesSkippedSource;
|
|
|
3728
3825
|
exports.isRSCServerModule = isRSCServerModule;
|
|
3729
3826
|
exports.isTailwindReservedGlobalVar = isTailwindReservedGlobalVar;
|
|
3730
3827
|
exports.mangleCodeClassesSync = mangleCodeClassesSync;
|
|
3828
|
+
exports.mangleHybridHazardMessage = mangleHybridHazardMessage;
|
|
3731
3829
|
exports.mergeThemes = mergeThemes;
|
|
3732
3830
|
exports.missingTailwindEntryMessage = missingTailwindEntryMessage;
|
|
3733
3831
|
exports.normalizeGlobalVarAliasesForCache = normalizeGlobalVarAliasesForCache;
|
|
@@ -893,7 +893,7 @@ function readImportedSymbols(clause) {
|
|
|
893
893
|
if (!trimmed || trimmed.startsWith("type ")) {
|
|
894
894
|
continue;
|
|
895
895
|
}
|
|
896
|
-
const sourceName = trimmed.replace(/^type[ \t]+/, "").split(/[ \t]+as[ \t]+/)[0]?.trim();
|
|
896
|
+
const sourceName = trimmed.replace(/^type[ \t]+/, "").split(/(?<![ \t])[ \t]+as[ \t]+/)[0]?.trim();
|
|
897
897
|
if (sourceName) {
|
|
898
898
|
symbols.push(sourceName);
|
|
899
899
|
}
|
|
@@ -1582,13 +1582,15 @@ const DEFAULT_VAR_MANGLE_MAP_MAX_BYTES = 100 * 1024;
|
|
|
1582
1582
|
const GLOBAL_VAR_ALIAS_MAP_OWNER = "\0csszyx:global-var-aliases";
|
|
1583
1583
|
const DIRECTIVE_PROLOGUE_PREFIX_RE = /^((?:\s|\/\/[^\n]*\n|\/\*(?:[^*]|\*(?!\/))*\*\/)*)(['"]use (?:client|server)['"];?\s*)/;
|
|
1584
1584
|
const RUNTIME_HELPER_IMPORT_RE = {
|
|
1585
|
-
_sz:
|
|
1586
|
-
_szMerge:
|
|
1587
|
-
__szColorVar:
|
|
1585
|
+
_sz: /(?:import|export)\s+\{[^{}]*\b_sz\b[^{}]*\}\s*from\s*['"]@csszyx\/runtime['"]/,
|
|
1586
|
+
_szMerge: /(?:import|export)\s+\{[^{}]*\b_szMerge\b[^{}]*\}\s*from\s*['"]@csszyx\/runtime['"]/,
|
|
1587
|
+
__szColorVar: /(?:import|export)\s+\{[^{}]*\b__szColorVar\b[^{}]*\}\s*from\s*['"]@csszyx\/runtime['"]/
|
|
1588
1588
|
};
|
|
1589
1589
|
let _hasWarnedTsConfig = false;
|
|
1590
1590
|
let _hasWarnedTransformCacheVersion = false;
|
|
1591
1591
|
let _hasWarnedNativeFallback = false;
|
|
1592
|
+
let _hasLoggedActiveParser = false;
|
|
1593
|
+
const _babelFallbackFiles = /* @__PURE__ */ new Set();
|
|
1592
1594
|
const requireFromHere = createRequire(import.meta.url);
|
|
1593
1595
|
const PLUGIN_VERSION = findPackageVersionFromFile(
|
|
1594
1596
|
fileURLToPath(import.meta.url),
|
|
@@ -1668,6 +1670,41 @@ function shouldWarnMissingTailwindEntry(ownedClassCount, sawTailwindEntry, sawAn
|
|
|
1668
1670
|
function missingTailwindEntryMessage(ownedClassCount) {
|
|
1669
1671
|
return `[csszyx] generated ${ownedClassCount} sz class(es) but found no CSS entry importing "tailwindcss" \u2014 those classes will produce no CSS. Import "tailwindcss" in a CSS file (csszyx auto-injects @source for the generated classes) so Tailwind emits their styles.`;
|
|
1670
1672
|
}
|
|
1673
|
+
function collectMangleHybridHazards(mangleMap, mangledSources, externalClasses) {
|
|
1674
|
+
const tokenValues = new Set(Object.values(mangleMap));
|
|
1675
|
+
const collisions = [...tokenValues].filter((token) => externalClasses.has(token)).sort();
|
|
1676
|
+
const orphans = Object.keys(mangleMap).filter((source) => !mangledSources.has(source)).sort();
|
|
1677
|
+
return { collisions, orphans };
|
|
1678
|
+
}
|
|
1679
|
+
function mangleHybridHazardMessage(hazards) {
|
|
1680
|
+
const { collisions, orphans } = hazards;
|
|
1681
|
+
if (collisions.length === 0 && orphans.length === 0) {
|
|
1682
|
+
return null;
|
|
1683
|
+
}
|
|
1684
|
+
const parts = ["[csszyx] production mangle found hybrid hazards:"];
|
|
1685
|
+
if (collisions.length > 0) {
|
|
1686
|
+
const sample = collisions.slice(0, 8).join(", ");
|
|
1687
|
+
parts.push(
|
|
1688
|
+
` ${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.`
|
|
1689
|
+
);
|
|
1690
|
+
}
|
|
1691
|
+
if (orphans.length > 0) {
|
|
1692
|
+
const sample = orphans.slice(0, 8).join(", ");
|
|
1693
|
+
parts.push(
|
|
1694
|
+
` ${orphans.length} mangled class(es) have no emitted CSS rule (e.g. ${sample}) \u2014 those elements lose styling.`
|
|
1695
|
+
);
|
|
1696
|
+
}
|
|
1697
|
+
if (collisions.length > 0) {
|
|
1698
|
+
parts.push(
|
|
1699
|
+
" 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."
|
|
1700
|
+
);
|
|
1701
|
+
} else {
|
|
1702
|
+
parts.push(
|
|
1703
|
+
" 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."
|
|
1704
|
+
);
|
|
1705
|
+
}
|
|
1706
|
+
return parts.join("");
|
|
1707
|
+
}
|
|
1671
1708
|
function cssHasContentScope(code) {
|
|
1672
1709
|
const s = stripCssBlockComments(code);
|
|
1673
1710
|
return /@import\s+["']tailwindcss(?:\/[^"']*)?["']\s+source\(/.test(s) || /@source\s+not\b/.test(s);
|
|
@@ -2344,7 +2381,7 @@ function mangleCodeClassesSync(code, mangleMap) {
|
|
|
2344
2381
|
result = out + result.slice(copiedTo);
|
|
2345
2382
|
}
|
|
2346
2383
|
}
|
|
2347
|
-
result = result.replace(/(
|
|
2384
|
+
result = result.replace(/([,(]|&&)(\s*)"([^"]+)"/g, (match, sep, ws, inner) => {
|
|
2348
2385
|
const tokens = inner.split(/\s+/).filter(Boolean);
|
|
2349
2386
|
if (tokens.length === 0) {
|
|
2350
2387
|
return match;
|
|
@@ -2364,7 +2401,7 @@ function mangleCodeClassesSync(code, mangleMap) {
|
|
|
2364
2401
|
if (!changed) {
|
|
2365
2402
|
return match;
|
|
2366
2403
|
}
|
|
2367
|
-
return
|
|
2404
|
+
return `${sep}${ws}"${mangled.join(" ")}"`;
|
|
2368
2405
|
});
|
|
2369
2406
|
return result;
|
|
2370
2407
|
}
|
|
@@ -2393,6 +2430,7 @@ ${errors.join("\n")}`
|
|
|
2393
2430
|
function createCsszyxPlugins(options = {}) {
|
|
2394
2431
|
assertGlobalVarMangleConfig(options);
|
|
2395
2432
|
let manglingEnabled = options.production?.mangle !== false;
|
|
2433
|
+
const mangleReserved = new Set(options.production?.mangleExclude ?? []);
|
|
2396
2434
|
const astBudgetOverride = options.build?.astBudgetLimit;
|
|
2397
2435
|
const cacheRequested = (options.build?.cache ?? DEFAULT_BUILD_CONFIG.cache) !== false;
|
|
2398
2436
|
const cacheVersionsKnown = PLUGIN_VERSION !== UNKNOWN_PACKAGE_VERSION && COMPILER_VERSION !== UNKNOWN_PACKAGE_VERSION;
|
|
@@ -2430,6 +2468,11 @@ function createCsszyxPlugins(options = {}) {
|
|
|
2430
2468
|
"[csszyx] No prebuilt native binary (@csszyx/core-*) is available for this platform, so the default `rust` parser fell back to `oxc`. Output classes are identical (parity-tested); only parse speed differs. To use the native engine, install the matching @csszyx/core-<platform> package (or do not omit optional dependencies). Set `build.parser` explicitly to silence this."
|
|
2431
2469
|
);
|
|
2432
2470
|
}
|
|
2471
|
+
if (!_hasLoggedActiveParser) {
|
|
2472
|
+
_hasLoggedActiveParser = true;
|
|
2473
|
+
const detail = parserDegraded ? "oxc (degraded from default `rust`: no native binary for this platform)" : parserMode === "rust" ? "rust (native engine)" : parserMode;
|
|
2474
|
+
console.warn(`[csszyx] active parser: ${detail}`);
|
|
2475
|
+
}
|
|
2433
2476
|
let evictedCacheRoot = null;
|
|
2434
2477
|
const transformMemoryCache = /* @__PURE__ */ new Map();
|
|
2435
2478
|
const state = {
|
|
@@ -2571,6 +2614,12 @@ function createCsszyxPlugins(options = {}) {
|
|
|
2571
2614
|
result.diagnostics.push(
|
|
2572
2615
|
`[csszyx] oxc parser fell back to Babel for ${effectiveFilename}: ${reason}`
|
|
2573
2616
|
);
|
|
2617
|
+
if (!_babelFallbackFiles.has(effectiveFilename)) {
|
|
2618
|
+
_babelFallbackFiles.add(effectiveFilename);
|
|
2619
|
+
console.warn(
|
|
2620
|
+
`[csszyx] oxc parser fell back to Babel for ${effectiveFilename}: ${reason} (${_babelFallbackFiles.size} file(s) so far). Output is still correct; this usually means the file uses a syntax the oxc lane does not yet handle.`
|
|
2621
|
+
);
|
|
2622
|
+
}
|
|
2574
2623
|
return result;
|
|
2575
2624
|
}
|
|
2576
2625
|
}
|
|
@@ -2870,7 +2919,7 @@ function createCsszyxPlugins(options = {}) {
|
|
|
2870
2919
|
}
|
|
2871
2920
|
}
|
|
2872
2921
|
function collectRuntimeStringClasses(objStr, discoveredClasses) {
|
|
2873
|
-
const strKv =
|
|
2922
|
+
const strKv = /\b(\w+)\s*:\s*(?:"([^"]*)"|'([^']*)')/g;
|
|
2874
2923
|
for (const kv of objStr.matchAll(strKv)) {
|
|
2875
2924
|
try {
|
|
2876
2925
|
const val = kv[2] ?? kv[3];
|
|
@@ -2880,7 +2929,7 @@ function createCsszyxPlugins(options = {}) {
|
|
|
2880
2929
|
}
|
|
2881
2930
|
}
|
|
2882
2931
|
function collectRuntimeNumberClasses(objStr, discoveredClasses) {
|
|
2883
|
-
const numKv =
|
|
2932
|
+
const numKv = /\b(\w+)\s*:\s*(-?\d+(?:\.\d+)?)\s*(?=[,}\n])/g;
|
|
2884
2933
|
for (const kv of objStr.matchAll(numKv)) {
|
|
2885
2934
|
try {
|
|
2886
2935
|
collectTransformClasses(
|
|
@@ -2892,7 +2941,7 @@ function createCsszyxPlugins(options = {}) {
|
|
|
2892
2941
|
}
|
|
2893
2942
|
}
|
|
2894
2943
|
function collectRuntimeBooleanClasses(objStr, discoveredClasses) {
|
|
2895
|
-
const boolKv =
|
|
2944
|
+
const boolKv = /\b(\w+)\s*:\s*(true|false)\s*(?=[,}\n])/g;
|
|
2896
2945
|
for (const kv of objStr.matchAll(boolKv)) {
|
|
2897
2946
|
try {
|
|
2898
2947
|
collectTransformClasses(
|
|
@@ -2945,8 +2994,15 @@ function createCsszyxPlugins(options = {}) {
|
|
|
2945
2994
|
function finalizeMangleMap() {
|
|
2946
2995
|
const sortedClasses = Array.from(state.ownedClasses);
|
|
2947
2996
|
const newMap = {};
|
|
2997
|
+
let tokenIndex = 0;
|
|
2948
2998
|
for (let i = 0; i < sortedClasses.length; i++) {
|
|
2949
|
-
|
|
2999
|
+
let token = encode(tokenIndex);
|
|
3000
|
+
while (mangleReserved.has(token)) {
|
|
3001
|
+
tokenIndex++;
|
|
3002
|
+
token = encode(tokenIndex);
|
|
3003
|
+
}
|
|
3004
|
+
newMap[sortedClasses[i]] = token;
|
|
3005
|
+
tokenIndex++;
|
|
2950
3006
|
}
|
|
2951
3007
|
state.mangleMap = newMap;
|
|
2952
3008
|
assertVarMangleMapSize(state.varMangleMap, varMangleMapMaxBytes);
|
|
@@ -3456,6 +3512,8 @@ function createCsszyxPlugins(options = {}) {
|
|
|
3456
3512
|
);
|
|
3457
3513
|
}
|
|
3458
3514
|
}
|
|
3515
|
+
const mangledSources = /* @__PURE__ */ new Set();
|
|
3516
|
+
const externalClasses = /* @__PURE__ */ new Set();
|
|
3459
3517
|
for (const file in assets) {
|
|
3460
3518
|
const asset = assets[file];
|
|
3461
3519
|
const source = asset.source().toString();
|
|
@@ -3471,6 +3529,12 @@ function createCsszyxPlugins(options = {}) {
|
|
|
3471
3529
|
debug: options.development?.debug,
|
|
3472
3530
|
from: file
|
|
3473
3531
|
});
|
|
3532
|
+
for (const c of result.mangledClasses) {
|
|
3533
|
+
mangledSources.add(c);
|
|
3534
|
+
}
|
|
3535
|
+
for (const c of result.unmangledClasses) {
|
|
3536
|
+
externalClasses.add(c);
|
|
3537
|
+
}
|
|
3474
3538
|
if (result.transformedCount > 0) {
|
|
3475
3539
|
css = result.css;
|
|
3476
3540
|
}
|
|
@@ -3532,6 +3596,18 @@ function createCsszyxPlugins(options = {}) {
|
|
|
3532
3596
|
}
|
|
3533
3597
|
}
|
|
3534
3598
|
}
|
|
3599
|
+
if (manglingEnabled && !isWebpackDevMode && Object.keys(state.mangleMap).length > 0) {
|
|
3600
|
+
const hazardMessage = mangleHybridHazardMessage(
|
|
3601
|
+
collectMangleHybridHazards(
|
|
3602
|
+
state.mangleMap,
|
|
3603
|
+
mangledSources,
|
|
3604
|
+
externalClasses
|
|
3605
|
+
)
|
|
3606
|
+
);
|
|
3607
|
+
if (hazardMessage) {
|
|
3608
|
+
console.warn(hazardMessage);
|
|
3609
|
+
}
|
|
3610
|
+
}
|
|
3535
3611
|
}
|
|
3536
3612
|
);
|
|
3537
3613
|
});
|
|
@@ -3588,6 +3664,8 @@ function createCsszyxPlugins(options = {}) {
|
|
|
3588
3664
|
});
|
|
3589
3665
|
}
|
|
3590
3666
|
}
|
|
3667
|
+
const mangledSources = /* @__PURE__ */ new Set();
|
|
3668
|
+
const externalClasses = /* @__PURE__ */ new Set();
|
|
3591
3669
|
for (const file in bundle) {
|
|
3592
3670
|
const chunk = bundle[file];
|
|
3593
3671
|
if (chunk.type === "asset" && chunk.fileName.endsWith(".css")) {
|
|
@@ -3603,6 +3681,12 @@ function createCsszyxPlugins(options = {}) {
|
|
|
3603
3681
|
debug: options.development?.debug,
|
|
3604
3682
|
from: file
|
|
3605
3683
|
});
|
|
3684
|
+
for (const c of result.mangledClasses) {
|
|
3685
|
+
mangledSources.add(c);
|
|
3686
|
+
}
|
|
3687
|
+
for (const c of result.unmangledClasses) {
|
|
3688
|
+
externalClasses.add(c);
|
|
3689
|
+
}
|
|
3606
3690
|
if (result.transformedCount > 0) {
|
|
3607
3691
|
css = result.css;
|
|
3608
3692
|
}
|
|
@@ -3634,6 +3718,18 @@ function createCsszyxPlugins(options = {}) {
|
|
|
3634
3718
|
}
|
|
3635
3719
|
}
|
|
3636
3720
|
}
|
|
3721
|
+
if (manglingEnabled && Object.keys(state.mangleMap).length > 0) {
|
|
3722
|
+
const hazardMessage = mangleHybridHazardMessage(
|
|
3723
|
+
collectMangleHybridHazards(
|
|
3724
|
+
state.mangleMap,
|
|
3725
|
+
mangledSources,
|
|
3726
|
+
externalClasses
|
|
3727
|
+
)
|
|
3728
|
+
);
|
|
3729
|
+
if (hazardMessage) {
|
|
3730
|
+
console.warn(hazardMessage);
|
|
3731
|
+
}
|
|
3732
|
+
}
|
|
3637
3733
|
}
|
|
3638
3734
|
}
|
|
3639
3735
|
}));
|
|
@@ -3681,4 +3777,4 @@ const esbuildPlugin = (options = {}) => {
|
|
|
3681
3777
|
};
|
|
3682
3778
|
};
|
|
3683
3779
|
|
|
3684
|
-
export {
|
|
3780
|
+
export { isRSCServerModule as A, isTailwindReservedGlobalVar as B, mangleCodeClassesSync as C, mangleHybridHazardMessage as D, mergeThemes as E, missingTailwindEntryMessage as F, normalizeGlobalVarAliasesForCache as G, parseThemeBlocks as H, planGlobalVarAliases as I, readGlobalVarScanCache as J, resolveCompileSourceDirs as K, resolveGlobalVarScanCacheDir as L, resolveNativeCacheIdentity as M, rewriteGlobalVarCssAliases as N, rollupPlugin as O, scanGlobalVarCss as P, shouldEmitWarning as Q, shouldWarnMissingTailwindEntry as R, shouldWarnUnscopedMonorepo as S, skippedSzFilesMessage as T, unscopedMonorepoMessage as U, validateGlobalVarAliasInputs as V, vitePlugin as W, webpackPlugin as X, writeGlobalVarScanCache as Y, appendTailwindSourceDirective as a, assertNoRSCBoundaryViolation as b, assertNoRSCGraphViolation as c, collectMangleHybridHazards as d, computeSafelistRelPath as e, createGlobalVarAliasValidationOptions as f, createGlobalVarMapAssetSource as g, createGlobalVarScanCacheKey as h, createRSCModuleRecord as i, cssHasContentScope as j, cssImportsTailwind as k, deleteRSCModuleRecord as l, esbuildPlugin as m, extractGlobalVarAliasesForManifest as n, fileMayContainSafelistableSz as o, findRSCBoundaryViolation as p, findRSCGraphViolation as q, hasInjectableTailwindCandidate as r, hasTokens as s, hasUseClientDirective as t, unplugin as u, hasUseServerDirective as v, isCompileSourceOptedIn as w, isHardIgnoredPath as x, isMonorepoPackage as y, isPackagesSkippedSource as z };
|
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.10.
|
|
3
|
+
"version": "0.10.8",
|
|
4
4
|
"description": "Vite and Webpack integration for csszyx",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"csszyx",
|
|
@@ -117,14 +117,14 @@
|
|
|
117
117
|
"postcss-value-parser": "^4.2.0",
|
|
118
118
|
"proper-lockfile": "^4.1.2",
|
|
119
119
|
"unplugin": "^1.10.1",
|
|
120
|
-
"@csszyx/compiler": "0.10.
|
|
121
|
-
"@csszyx/
|
|
122
|
-
"@csszyx/
|
|
123
|
-
"@csszyx/
|
|
124
|
-
"@csszyx/
|
|
120
|
+
"@csszyx/compiler": "0.10.8",
|
|
121
|
+
"@csszyx/core": "0.10.8",
|
|
122
|
+
"@csszyx/svelte-adapter": "0.10.8",
|
|
123
|
+
"@csszyx/types": "0.10.8",
|
|
124
|
+
"@csszyx/vue-adapter": "0.10.8"
|
|
125
125
|
},
|
|
126
126
|
"peerDependencies": {
|
|
127
|
-
"@csszyx/runtime": "^0.10.
|
|
127
|
+
"@csszyx/runtime": "^0.10.8"
|
|
128
128
|
},
|
|
129
129
|
"devDependencies": {
|
|
130
130
|
"@types/node": "^20.11.0",
|