@weapp-tailwindcss/engine 0.1.3 → 0.1.5
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/README.md +2 -0
- package/README.zh-CN.md +2 -0
- package/dist/{index-CHGSHPWB.d.ts → index-BCGhMfsk.d.ts} +14 -3
- package/dist/{index-BnvpPg0y.d.cts → index-ubIZsEf5.d.cts} +14 -3
- package/dist/index.cjs +1 -1
- package/dist/index.d.cts +2 -2
- package/dist/index.d.ts +2 -2
- package/dist/index.js +1 -1
- package/dist/v4/index.cjs +1 -1
- package/dist/v4/index.d.cts +2 -2
- package/dist/v4/index.d.ts +2 -2
- package/dist/v4/index.js +1 -1
- package/dist/{v4-CgRRASej.cjs → v4-B5YEEbhA.cjs} +128 -36
- package/dist/{v4-DXSYux_T.js → v4-sBv0Uojf.js} +128 -36
- package/package.json +5 -5
package/README.md
CHANGED
|
@@ -20,6 +20,8 @@ The root entry exports candidate extraction, position reports, source scanning,
|
|
|
20
20
|
|
|
21
21
|
Supports `@source`, multiple CSS sources, the design system, bare arbitrary values, incremental generation sessions, and cache disposal. Only Tailwind CSS 4 is supported. There are no v3, multi-version dispatcher, custom generator, or HTML parser compatibility entry points. Platform compatibility transforms belong to `@weapp-tailwindcss/postcss`.
|
|
22
22
|
|
|
23
|
+
`createTailwindGenerationSession(source, options)` and `createTailwindV4Engine(source, options)` accept an optional `prepareSource(source, designSystem)` callback. It receives the actual CSS selected for the scan mode and returns CSS while sharing the design system used for candidate validation. Limit preparation to generated rule ordering or nonsemantic markers; do not change themes, utilities, variants, configuration, plugins, imports, or source directives. The session retains source metadata, reruns preparation after invalidation, and reuses prepared CSS when candidates are deleted. Keep the callback and its configuration unchanged for the session lifetime.
|
|
24
|
+
|
|
23
25
|
## Source
|
|
24
26
|
|
|
25
27
|
The source and corresponding v4 and extraction tests were migrated from the MIT-licensed [tailwindcss-mangle](https://github.com/sonofmagic/tailwindcss-mangle/tree/6bf58cebe073a06dfeac7ed44f55ecff50deb763/packages/engine) commit identified by the npm provenance for `@tailwindcss-mangle/engine@0.2.0`. The original [MIT license](./LICENSE) is retained. This package is maintained independently and does not depend on the old engine or a local submodule at runtime.
|
package/README.zh-CN.md
CHANGED
|
@@ -20,6 +20,8 @@ console.log(result.css)
|
|
|
20
20
|
|
|
21
21
|
支持 `@source`、多 CSS 来源、design system、裸任意值、增量生成会话与缓存释放。只支持 Tailwind CSS 4;不提供 v3、多版本分发、自定义生成器或 HTML parser 兼容入口。小程序平台兼容转换由 `@weapp-tailwindcss/postcss` 完成。
|
|
22
22
|
|
|
23
|
+
`createTailwindGenerationSession(source, options)` 和 `createTailwindV4Engine(source, options)` 可接收可选的 `prepareSource(source, designSystem)` 回调。回调接收当前扫描模式的实际 CSS,返回准备后的 CSS,并与候选校验共享 design system。该步骤仅用于生成规则排序或非语义标记清理,不得修改主题、utility、variant、配置、插件、导入或来源指令。会话保留来源元数据,失效后重新准备;候选删除只重建编译器并复用已准备的 CSS。会话存活期间,回调及其闭包配置必须保持不变。
|
|
24
|
+
|
|
23
25
|
## 来源
|
|
24
26
|
|
|
25
27
|
源码及对应 v4、提取测试迁自 MIT 项目 [tailwindcss-mangle](https://github.com/sonofmagic/tailwindcss-mangle/tree/6bf58cebe073a06dfeac7ed44f55ecff50deb763/packages/engine),对应 npm `@tailwindcss-mangle/engine@0.2.0` 的发布证明。保留原始 [MIT 许可证](./LICENSE)。本包独立维护,不在运行时依赖旧 engine 或本地 submodule。
|
|
@@ -118,6 +118,15 @@ interface TailwindGenerationArtifact {
|
|
|
118
118
|
dependencies: string[];
|
|
119
119
|
sourceEntries: SourceEntry$1[];
|
|
120
120
|
}
|
|
121
|
+
interface TailwindGenerationSessionOptions {
|
|
122
|
+
/**
|
|
123
|
+
* 使用当前实际编译来源的 design system 准备 CSS,结果与候选校验共享该实例。
|
|
124
|
+
* 仅允许调整生成规则的顺序或非语义标记,不能改变主题、utility、variant、
|
|
125
|
+
* 配置、插件、导入或来源指令;其他来源元数据由会话保留。
|
|
126
|
+
* 回调及其闭包配置在会话存活期间必须保持不变。
|
|
127
|
+
*/
|
|
128
|
+
prepareSource?: ((source: Readonly<TailwindV4ResolvedSource>, designSystem: TailwindV4DesignSystem) => string | Promise<string>) | undefined;
|
|
129
|
+
}
|
|
121
130
|
interface TailwindGenerationSession {
|
|
122
131
|
readonly source: TailwindV4ResolvedSource;
|
|
123
132
|
generate: (request?: GenerationRequest) => Promise<TailwindGenerationArtifact>;
|
|
@@ -181,6 +190,8 @@ interface TailwindV4StyleGenerateResult extends TailwindV4GenerateResult {
|
|
|
181
190
|
interface TailwindV4DesignSystem {
|
|
182
191
|
parseCandidate: (candidate: string) => unknown[];
|
|
183
192
|
candidatesToCss: (candidates: string[]) => Array<string | null | undefined>;
|
|
193
|
+
/** 当前候选集合的生成顺序;可选以兼容只提供校验能力的实现。 */
|
|
194
|
+
getClassOrder?: ((candidates: string[]) => Array<[string, bigint | null]>) | undefined;
|
|
184
195
|
}
|
|
185
196
|
interface TailwindV4Engine {
|
|
186
197
|
/** 释放内部生成会话;可选以兼容自定义引擎实现。 */
|
|
@@ -205,10 +216,10 @@ declare function replaceBareArbitraryValueSelectors(css: string, candidates: Ite
|
|
|
205
216
|
declare function canonicalizeBareArbitraryValueCandidates(candidates: Iterable<string>, options?: boolean | BareArbitraryValueOptions): string[];
|
|
206
217
|
//#endregion
|
|
207
218
|
//#region src/v4/engine.d.ts
|
|
208
|
-
declare function createTailwindV4Engine(source: TailwindV4ResolvedSource): TailwindV4Engine;
|
|
219
|
+
declare function createTailwindV4Engine(source: TailwindV4ResolvedSource, options?: TailwindGenerationSessionOptions): TailwindV4Engine;
|
|
209
220
|
//#endregion
|
|
210
221
|
//#region src/v4/generation-session.d.ts
|
|
211
|
-
declare function createTailwindGenerationSession(source: TailwindV4ResolvedSource): TailwindGenerationSession;
|
|
222
|
+
declare function createTailwindGenerationSession(source: TailwindV4ResolvedSource, options?: TailwindGenerationSessionOptions): TailwindGenerationSession;
|
|
212
223
|
//#endregion
|
|
213
224
|
//#region src/v4/node-adapter.d.ts
|
|
214
225
|
interface TailwindV4CompiledSource {
|
|
@@ -267,4 +278,4 @@ declare function resolveTailwindV4Source(options?: TailwindV4SourceOptions): Pro
|
|
|
267
278
|
declare function collectTailwindV4StyleCandidates(options: Pick<TailwindV4StyleGenerateOptions, 'bareArbitraryValues' | 'candidates' | 'sources'>): Promise<Set<string>>;
|
|
268
279
|
declare function generateTailwindV4Style(options?: TailwindV4StyleGenerateOptions): Promise<TailwindV4StyleGenerateResult>;
|
|
269
280
|
//#endregion
|
|
270
|
-
export {
|
|
281
|
+
export { TailwindV4SourcePattern as $, createTailwindGenerationSession as A, SourceEntry$1 as B, isFileExcludedByTailwindV4SourceEntries as C, getTailwindV4DesignSystemCacheKey as D, compileTailwindV4Source as E, extractTailwindV4InlineSourceCandidates as F, TailwindV4CompiledSourceRoot as G, TailwindGenerationSession as H, CssFragment as I, TailwindV4Engine as J, TailwindV4CssSource as K, CssFragmentKind as L, canonicalizeBareArbitraryValueCandidates as M, replaceBareArbitraryValueSelectors as N, loadTailwindV4DesignSystem as O, resolveValidTailwindV4Candidates as P, TailwindV4SourceOptions as Q, GenerationChange as R, groupTailwindV4SourceEntriesByBase as S, mergeTailwindV4SourceEntries as T, TailwindGenerationSessionOptions as U, TailwindGenerationArtifact as V, TailwindV4CandidateSource as W, TailwindV4GenerateResult as X, TailwindV4GenerateOptions as Y, TailwindV4ResolvedSource as Z, resolveTailwindV4SourceEntry as _, TAILWIND_V4_IGNORED_CONTENT_DIRS as a, collectTailwindStyleCandidates as at, createTailwindV4SourceExclusionMatcher as b, createTailwindV4CompiledSourceEntries as c, extractBareArbitraryValueSourceCandidates as ct, expandTailwindV4SourceEntryBraces as d, BareArbitraryValueResolveResult as dt, TailwindV4StyleGenerateOptions as et, normalizeGlobPattern as f, BareArbitraryValueSourceCandidate as ft, resolveTailwindV4SourceBaseCandidates as g, resolveSourceScanPath$1 as h, TAILWIND_V4_AUTO_SOURCE_SCAN_PATTERN as i, TailwindStyleSource as it, createTailwindV4Engine as j, loadTailwindV4NodeModule as k, createTailwindV4DefaultIgnoreSources as l, extractBareArbitraryValueSourceCandidatesWithPositions as lt, normalizeTailwindV4SourceEntries as m, generateTailwindV4Style as n, TailwindV4StyleSource as nt, TAILWIND_V4_IGNORED_EXTENSIONS as o, isBareArbitraryValuesEnabled as ot, normalizeTailwindV4ScannerSources as p, escapeCssClassName as pt, TailwindV4DesignSystem as q, resolveTailwindV4Source as r, TailwindStyleCandidateOptions as rt, TAILWIND_V4_IGNORED_FILES as s, resolveBareArbitraryValueCandidate as st, collectTailwindV4StyleCandidates as t, TailwindV4StyleGenerateResult as tt, createTailwindV4RootSources as u, BareArbitraryValueOptions as ut, toPosixPath as v, isFileMatchedByTailwindV4SourceEntries as w, expandTailwindV4SourceEntries as x, createTailwindV4SourceEntryMatcher as y, GenerationRequest as z };
|
|
@@ -118,6 +118,15 @@ interface TailwindGenerationArtifact {
|
|
|
118
118
|
dependencies: string[];
|
|
119
119
|
sourceEntries: SourceEntry$1[];
|
|
120
120
|
}
|
|
121
|
+
interface TailwindGenerationSessionOptions {
|
|
122
|
+
/**
|
|
123
|
+
* 使用当前实际编译来源的 design system 准备 CSS,结果与候选校验共享该实例。
|
|
124
|
+
* 仅允许调整生成规则的顺序或非语义标记,不能改变主题、utility、variant、
|
|
125
|
+
* 配置、插件、导入或来源指令;其他来源元数据由会话保留。
|
|
126
|
+
* 回调及其闭包配置在会话存活期间必须保持不变。
|
|
127
|
+
*/
|
|
128
|
+
prepareSource?: ((source: Readonly<TailwindV4ResolvedSource>, designSystem: TailwindV4DesignSystem) => string | Promise<string>) | undefined;
|
|
129
|
+
}
|
|
121
130
|
interface TailwindGenerationSession {
|
|
122
131
|
readonly source: TailwindV4ResolvedSource;
|
|
123
132
|
generate: (request?: GenerationRequest) => Promise<TailwindGenerationArtifact>;
|
|
@@ -181,6 +190,8 @@ interface TailwindV4StyleGenerateResult extends TailwindV4GenerateResult {
|
|
|
181
190
|
interface TailwindV4DesignSystem {
|
|
182
191
|
parseCandidate: (candidate: string) => unknown[];
|
|
183
192
|
candidatesToCss: (candidates: string[]) => Array<string | null | undefined>;
|
|
193
|
+
/** 当前候选集合的生成顺序;可选以兼容只提供校验能力的实现。 */
|
|
194
|
+
getClassOrder?: ((candidates: string[]) => Array<[string, bigint | null]>) | undefined;
|
|
184
195
|
}
|
|
185
196
|
interface TailwindV4Engine {
|
|
186
197
|
/** 释放内部生成会话;可选以兼容自定义引擎实现。 */
|
|
@@ -205,10 +216,10 @@ declare function replaceBareArbitraryValueSelectors(css: string, candidates: Ite
|
|
|
205
216
|
declare function canonicalizeBareArbitraryValueCandidates(candidates: Iterable<string>, options?: boolean | BareArbitraryValueOptions): string[];
|
|
206
217
|
//#endregion
|
|
207
218
|
//#region src/v4/engine.d.ts
|
|
208
|
-
declare function createTailwindV4Engine(source: TailwindV4ResolvedSource): TailwindV4Engine;
|
|
219
|
+
declare function createTailwindV4Engine(source: TailwindV4ResolvedSource, options?: TailwindGenerationSessionOptions): TailwindV4Engine;
|
|
209
220
|
//#endregion
|
|
210
221
|
//#region src/v4/generation-session.d.ts
|
|
211
|
-
declare function createTailwindGenerationSession(source: TailwindV4ResolvedSource): TailwindGenerationSession;
|
|
222
|
+
declare function createTailwindGenerationSession(source: TailwindV4ResolvedSource, options?: TailwindGenerationSessionOptions): TailwindGenerationSession;
|
|
212
223
|
//#endregion
|
|
213
224
|
//#region src/v4/node-adapter.d.ts
|
|
214
225
|
interface TailwindV4CompiledSource {
|
|
@@ -267,4 +278,4 @@ declare function resolveTailwindV4Source(options?: TailwindV4SourceOptions): Pro
|
|
|
267
278
|
declare function collectTailwindV4StyleCandidates(options: Pick<TailwindV4StyleGenerateOptions, 'bareArbitraryValues' | 'candidates' | 'sources'>): Promise<Set<string>>;
|
|
268
279
|
declare function generateTailwindV4Style(options?: TailwindV4StyleGenerateOptions): Promise<TailwindV4StyleGenerateResult>;
|
|
269
280
|
//#endregion
|
|
270
|
-
export {
|
|
281
|
+
export { TailwindV4SourcePattern as $, createTailwindGenerationSession as A, SourceEntry$1 as B, isFileExcludedByTailwindV4SourceEntries as C, getTailwindV4DesignSystemCacheKey as D, compileTailwindV4Source as E, extractTailwindV4InlineSourceCandidates as F, TailwindV4CompiledSourceRoot as G, TailwindGenerationSession as H, CssFragment as I, TailwindV4Engine as J, TailwindV4CssSource as K, CssFragmentKind as L, canonicalizeBareArbitraryValueCandidates as M, replaceBareArbitraryValueSelectors as N, loadTailwindV4DesignSystem as O, resolveValidTailwindV4Candidates as P, TailwindV4SourceOptions as Q, GenerationChange as R, groupTailwindV4SourceEntriesByBase as S, mergeTailwindV4SourceEntries as T, TailwindGenerationSessionOptions as U, TailwindGenerationArtifact as V, TailwindV4CandidateSource as W, TailwindV4GenerateResult as X, TailwindV4GenerateOptions as Y, TailwindV4ResolvedSource as Z, resolveTailwindV4SourceEntry as _, TAILWIND_V4_IGNORED_CONTENT_DIRS as a, collectTailwindStyleCandidates as at, createTailwindV4SourceExclusionMatcher as b, createTailwindV4CompiledSourceEntries as c, extractBareArbitraryValueSourceCandidates as ct, expandTailwindV4SourceEntryBraces as d, BareArbitraryValueResolveResult as dt, TailwindV4StyleGenerateOptions as et, normalizeGlobPattern as f, BareArbitraryValueSourceCandidate as ft, resolveTailwindV4SourceBaseCandidates as g, resolveSourceScanPath as h, TAILWIND_V4_AUTO_SOURCE_SCAN_PATTERN as i, TailwindStyleSource as it, createTailwindV4Engine as j, loadTailwindV4NodeModule as k, createTailwindV4DefaultIgnoreSources as l, extractBareArbitraryValueSourceCandidatesWithPositions as lt, normalizeTailwindV4SourceEntries as m, generateTailwindV4Style as n, TailwindV4StyleSource as nt, TAILWIND_V4_IGNORED_EXTENSIONS as o, isBareArbitraryValuesEnabled as ot, normalizeTailwindV4ScannerSources as p, escapeCssClassName as pt, TailwindV4DesignSystem as q, resolveTailwindV4Source as r, TailwindStyleCandidateOptions as rt, TAILWIND_V4_IGNORED_FILES as s, resolveBareArbitraryValueCandidate as st, collectTailwindV4StyleCandidates as t, TailwindV4StyleGenerateResult as tt, createTailwindV4RootSources as u, BareArbitraryValueOptions as ut, toPosixPath as v, isFileMatchedByTailwindV4SourceEntries as w, expandTailwindV4SourceEntries as x, createTailwindV4SourceEntryMatcher as y, GenerationRequest as z };
|
package/dist/index.cjs
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
2
|
-
const require_v4 = require("./v4-
|
|
2
|
+
const require_v4 = require("./v4-B5YEEbhA.cjs");
|
|
3
3
|
let node_process = require("node:process");
|
|
4
4
|
node_process = require_v4.__toESM(node_process, 1);
|
|
5
5
|
let _weapp_tailwindcss_source_scan = require("@weapp-tailwindcss/source-scan");
|
package/dist/index.d.cts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { $ as
|
|
1
|
+
import { $ as TailwindV4SourcePattern, A as createTailwindGenerationSession, B as SourceEntry, C as isFileExcludedByTailwindV4SourceEntries, D as getTailwindV4DesignSystemCacheKey, E as compileTailwindV4Source, F as extractTailwindV4InlineSourceCandidates, G as TailwindV4CompiledSourceRoot, H as TailwindGenerationSession, I as CssFragment, J as TailwindV4Engine, K as TailwindV4CssSource, L as CssFragmentKind, M as canonicalizeBareArbitraryValueCandidates, N as replaceBareArbitraryValueSelectors, O as loadTailwindV4DesignSystem, P as resolveValidTailwindV4Candidates, Q as TailwindV4SourceOptions, R as GenerationChange, S as groupTailwindV4SourceEntriesByBase, T as mergeTailwindV4SourceEntries, U as TailwindGenerationSessionOptions, V as TailwindGenerationArtifact, W as TailwindV4CandidateSource, X as TailwindV4GenerateResult, Y as TailwindV4GenerateOptions, Z as TailwindV4ResolvedSource, _ as resolveTailwindV4SourceEntry, a as TAILWIND_V4_IGNORED_CONTENT_DIRS, at as collectTailwindStyleCandidates, b as createTailwindV4SourceExclusionMatcher, c as createTailwindV4CompiledSourceEntries, ct as extractBareArbitraryValueSourceCandidates, d as expandTailwindV4SourceEntryBraces, dt as BareArbitraryValueResolveResult, et as TailwindV4StyleGenerateOptions, f as normalizeGlobPattern, ft as BareArbitraryValueSourceCandidate, g as resolveTailwindV4SourceBaseCandidates, h as resolveSourceScanPath, i as TAILWIND_V4_AUTO_SOURCE_SCAN_PATTERN, it as TailwindStyleSource, j as createTailwindV4Engine, k as loadTailwindV4NodeModule, l as createTailwindV4DefaultIgnoreSources, lt as extractBareArbitraryValueSourceCandidatesWithPositions, m as normalizeTailwindV4SourceEntries, n as generateTailwindV4Style, nt as TailwindV4StyleSource, o as TAILWIND_V4_IGNORED_EXTENSIONS, ot as isBareArbitraryValuesEnabled, p as normalizeTailwindV4ScannerSources, pt as escapeCssClassName, q as TailwindV4DesignSystem, r as resolveTailwindV4Source, rt as TailwindStyleCandidateOptions, s as TAILWIND_V4_IGNORED_FILES, st as resolveBareArbitraryValueCandidate, t as collectTailwindV4StyleCandidates, tt as TailwindV4StyleGenerateResult, u as createTailwindV4RootSources, ut as BareArbitraryValueOptions, v as toPosixPath, w as isFileMatchedByTailwindV4SourceEntries, x as expandTailwindV4SourceEntries, y as createTailwindV4SourceEntryMatcher, z as GenerationRequest } from "./index-ubIZsEf5.cjs";
|
|
2
2
|
import { SourceEntry as SourceEntry$1 } from "@tailwindcss/oxide";
|
|
3
3
|
//#region src/types.d.ts
|
|
4
4
|
export interface TailwindTokenLocation {
|
|
@@ -81,4 +81,4 @@ export declare const validateCandidateTokenRE: RegExp;
|
|
|
81
81
|
export declare function isValidCandidateToken(token?: string): token is string;
|
|
82
82
|
export declare function splitCandidateTokens(code: string): string[];
|
|
83
83
|
//#endregion
|
|
84
|
-
export { type BareArbitraryValueOptions, type BareArbitraryValueResolveResult, type BareArbitraryValueSourceCandidate, type CssFragment, type CssFragmentKind, type ExtractCandidateOptions, type ExtractSourceCandidate, type GenerationChange, type GenerationRequest, type SourceEntry, TAILWIND_V4_AUTO_SOURCE_SCAN_PATTERN, TAILWIND_V4_IGNORED_CONTENT_DIRS, TAILWIND_V4_IGNORED_EXTENSIONS, TAILWIND_V4_IGNORED_FILES, type TailwindGenerationArtifact, type TailwindGenerationSession, TailwindStyleCandidateOptions, TailwindStyleSource, type TailwindV4CandidateSource, type TailwindV4CompiledSourceRoot, type TailwindV4CssSource, type TailwindV4DesignSystem, type TailwindV4Engine, type TailwindV4GenerateOptions, type TailwindV4GenerateResult, type TailwindV4ResolvedSource, type TailwindV4SourceOptions, type TailwindV4SourcePattern, type TailwindV4StyleGenerateOptions, type TailwindV4StyleGenerateResult, type TailwindV4StyleSource, canonicalizeBareArbitraryValueCandidates, collectTailwindStyleCandidates, collectTailwindV4StyleCandidates, compileTailwindV4Source, createTailwindGenerationSession, createTailwindV4CompiledSourceEntries, createTailwindV4DefaultIgnoreSources, createTailwindV4Engine, createTailwindV4RootSources, createTailwindV4SourceEntryMatcher, createTailwindV4SourceExclusionMatcher, escapeCssClassName, expandTailwindV4SourceEntries, expandTailwindV4SourceEntryBraces, extractBareArbitraryValueSourceCandidates, extractBareArbitraryValueSourceCandidatesWithPositions, extractTailwindV4InlineSourceCandidates, generateTailwindV4Style, getTailwindV4DesignSystemCacheKey, groupTailwindV4SourceEntriesByBase, isBareArbitraryValuesEnabled, isFileExcludedByTailwindV4SourceEntries, isFileMatchedByTailwindV4SourceEntries, loadTailwindV4DesignSystem, loadTailwindV4NodeModule, mergeTailwindV4SourceEntries, normalizeGlobPattern, normalizeTailwindV4ScannerSources, normalizeTailwindV4SourceEntries, replaceBareArbitraryValueSelectors, resolveBareArbitraryValueCandidate, resolveSourceScanPath, resolveTailwindV4Source, resolveTailwindV4SourceBaseCandidates, resolveTailwindV4SourceEntry, resolveValidTailwindV4Candidates, toPosixPath };
|
|
84
|
+
export { type BareArbitraryValueOptions, type BareArbitraryValueResolveResult, type BareArbitraryValueSourceCandidate, type CssFragment, type CssFragmentKind, type ExtractCandidateOptions, type ExtractSourceCandidate, type GenerationChange, type GenerationRequest, type SourceEntry, TAILWIND_V4_AUTO_SOURCE_SCAN_PATTERN, TAILWIND_V4_IGNORED_CONTENT_DIRS, TAILWIND_V4_IGNORED_EXTENSIONS, TAILWIND_V4_IGNORED_FILES, type TailwindGenerationArtifact, type TailwindGenerationSession, type TailwindGenerationSessionOptions, TailwindStyleCandidateOptions, TailwindStyleSource, type TailwindV4CandidateSource, type TailwindV4CompiledSourceRoot, type TailwindV4CssSource, type TailwindV4DesignSystem, type TailwindV4Engine, type TailwindV4GenerateOptions, type TailwindV4GenerateResult, type TailwindV4ResolvedSource, type TailwindV4SourceOptions, type TailwindV4SourcePattern, type TailwindV4StyleGenerateOptions, type TailwindV4StyleGenerateResult, type TailwindV4StyleSource, canonicalizeBareArbitraryValueCandidates, collectTailwindStyleCandidates, collectTailwindV4StyleCandidates, compileTailwindV4Source, createTailwindGenerationSession, createTailwindV4CompiledSourceEntries, createTailwindV4DefaultIgnoreSources, createTailwindV4Engine, createTailwindV4RootSources, createTailwindV4SourceEntryMatcher, createTailwindV4SourceExclusionMatcher, escapeCssClassName, expandTailwindV4SourceEntries, expandTailwindV4SourceEntryBraces, extractBareArbitraryValueSourceCandidates, extractBareArbitraryValueSourceCandidatesWithPositions, extractTailwindV4InlineSourceCandidates, generateTailwindV4Style, getTailwindV4DesignSystemCacheKey, groupTailwindV4SourceEntriesByBase, isBareArbitraryValuesEnabled, isFileExcludedByTailwindV4SourceEntries, isFileMatchedByTailwindV4SourceEntries, loadTailwindV4DesignSystem, loadTailwindV4NodeModule, mergeTailwindV4SourceEntries, normalizeGlobPattern, normalizeTailwindV4ScannerSources, normalizeTailwindV4SourceEntries, replaceBareArbitraryValueSelectors, resolveBareArbitraryValueCandidate, resolveSourceScanPath, resolveTailwindV4Source, resolveTailwindV4SourceBaseCandidates, resolveTailwindV4SourceEntry, resolveValidTailwindV4Candidates, toPosixPath };
|
package/dist/index.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { $ as
|
|
1
|
+
import { $ as TailwindV4SourcePattern, A as createTailwindGenerationSession, B as SourceEntry, C as isFileExcludedByTailwindV4SourceEntries, D as getTailwindV4DesignSystemCacheKey, E as compileTailwindV4Source, F as extractTailwindV4InlineSourceCandidates, G as TailwindV4CompiledSourceRoot, H as TailwindGenerationSession, I as CssFragment, J as TailwindV4Engine, K as TailwindV4CssSource, L as CssFragmentKind, M as canonicalizeBareArbitraryValueCandidates, N as replaceBareArbitraryValueSelectors, O as loadTailwindV4DesignSystem, P as resolveValidTailwindV4Candidates, Q as TailwindV4SourceOptions, R as GenerationChange, S as groupTailwindV4SourceEntriesByBase, T as mergeTailwindV4SourceEntries, U as TailwindGenerationSessionOptions, V as TailwindGenerationArtifact, W as TailwindV4CandidateSource, X as TailwindV4GenerateResult, Y as TailwindV4GenerateOptions, Z as TailwindV4ResolvedSource, _ as resolveTailwindV4SourceEntry, a as TAILWIND_V4_IGNORED_CONTENT_DIRS, at as collectTailwindStyleCandidates, b as createTailwindV4SourceExclusionMatcher, c as createTailwindV4CompiledSourceEntries, ct as extractBareArbitraryValueSourceCandidates, d as expandTailwindV4SourceEntryBraces, dt as BareArbitraryValueResolveResult, et as TailwindV4StyleGenerateOptions, f as normalizeGlobPattern, ft as BareArbitraryValueSourceCandidate, g as resolveTailwindV4SourceBaseCandidates, h as resolveSourceScanPath, i as TAILWIND_V4_AUTO_SOURCE_SCAN_PATTERN, it as TailwindStyleSource, j as createTailwindV4Engine, k as loadTailwindV4NodeModule, l as createTailwindV4DefaultIgnoreSources, lt as extractBareArbitraryValueSourceCandidatesWithPositions, m as normalizeTailwindV4SourceEntries, n as generateTailwindV4Style, nt as TailwindV4StyleSource, o as TAILWIND_V4_IGNORED_EXTENSIONS, ot as isBareArbitraryValuesEnabled, p as normalizeTailwindV4ScannerSources, pt as escapeCssClassName, q as TailwindV4DesignSystem, r as resolveTailwindV4Source, rt as TailwindStyleCandidateOptions, s as TAILWIND_V4_IGNORED_FILES, st as resolveBareArbitraryValueCandidate, t as collectTailwindV4StyleCandidates, tt as TailwindV4StyleGenerateResult, u as createTailwindV4RootSources, ut as BareArbitraryValueOptions, v as toPosixPath, w as isFileMatchedByTailwindV4SourceEntries, x as expandTailwindV4SourceEntries, y as createTailwindV4SourceEntryMatcher, z as GenerationRequest } from "./index-BCGhMfsk.js";
|
|
2
2
|
import { SourceEntry as SourceEntry$1 } from "@tailwindcss/oxide";
|
|
3
3
|
//#region src/types.d.ts
|
|
4
4
|
export interface TailwindTokenLocation {
|
|
@@ -81,4 +81,4 @@ export declare const validateCandidateTokenRE: RegExp;
|
|
|
81
81
|
export declare function isValidCandidateToken(token?: string): token is string;
|
|
82
82
|
export declare function splitCandidateTokens(code: string): string[];
|
|
83
83
|
//#endregion
|
|
84
|
-
export { type BareArbitraryValueOptions, type BareArbitraryValueResolveResult, type BareArbitraryValueSourceCandidate, type CssFragment, type CssFragmentKind, type ExtractCandidateOptions, type ExtractSourceCandidate, type GenerationChange, type GenerationRequest, type SourceEntry, TAILWIND_V4_AUTO_SOURCE_SCAN_PATTERN, TAILWIND_V4_IGNORED_CONTENT_DIRS, TAILWIND_V4_IGNORED_EXTENSIONS, TAILWIND_V4_IGNORED_FILES, type TailwindGenerationArtifact, type TailwindGenerationSession, TailwindStyleCandidateOptions, TailwindStyleSource, type TailwindV4CandidateSource, type TailwindV4CompiledSourceRoot, type TailwindV4CssSource, type TailwindV4DesignSystem, type TailwindV4Engine, type TailwindV4GenerateOptions, type TailwindV4GenerateResult, type TailwindV4ResolvedSource, type TailwindV4SourceOptions, type TailwindV4SourcePattern, type TailwindV4StyleGenerateOptions, type TailwindV4StyleGenerateResult, type TailwindV4StyleSource, canonicalizeBareArbitraryValueCandidates, collectTailwindStyleCandidates, collectTailwindV4StyleCandidates, compileTailwindV4Source, createTailwindGenerationSession, createTailwindV4CompiledSourceEntries, createTailwindV4DefaultIgnoreSources, createTailwindV4Engine, createTailwindV4RootSources, createTailwindV4SourceEntryMatcher, createTailwindV4SourceExclusionMatcher, escapeCssClassName, expandTailwindV4SourceEntries, expandTailwindV4SourceEntryBraces, extractBareArbitraryValueSourceCandidates, extractBareArbitraryValueSourceCandidatesWithPositions, extractTailwindV4InlineSourceCandidates, generateTailwindV4Style, getTailwindV4DesignSystemCacheKey, groupTailwindV4SourceEntriesByBase, isBareArbitraryValuesEnabled, isFileExcludedByTailwindV4SourceEntries, isFileMatchedByTailwindV4SourceEntries, loadTailwindV4DesignSystem, loadTailwindV4NodeModule, mergeTailwindV4SourceEntries, normalizeGlobPattern, normalizeTailwindV4ScannerSources, normalizeTailwindV4SourceEntries, replaceBareArbitraryValueSelectors, resolveBareArbitraryValueCandidate, resolveSourceScanPath, resolveTailwindV4Source, resolveTailwindV4SourceBaseCandidates, resolveTailwindV4SourceEntry, resolveValidTailwindV4Candidates, toPosixPath };
|
|
84
|
+
export { type BareArbitraryValueOptions, type BareArbitraryValueResolveResult, type BareArbitraryValueSourceCandidate, type CssFragment, type CssFragmentKind, type ExtractCandidateOptions, type ExtractSourceCandidate, type GenerationChange, type GenerationRequest, type SourceEntry, TAILWIND_V4_AUTO_SOURCE_SCAN_PATTERN, TAILWIND_V4_IGNORED_CONTENT_DIRS, TAILWIND_V4_IGNORED_EXTENSIONS, TAILWIND_V4_IGNORED_FILES, type TailwindGenerationArtifact, type TailwindGenerationSession, type TailwindGenerationSessionOptions, TailwindStyleCandidateOptions, TailwindStyleSource, type TailwindV4CandidateSource, type TailwindV4CompiledSourceRoot, type TailwindV4CssSource, type TailwindV4DesignSystem, type TailwindV4Engine, type TailwindV4GenerateOptions, type TailwindV4GenerateResult, type TailwindV4ResolvedSource, type TailwindV4SourceOptions, type TailwindV4SourcePattern, type TailwindV4StyleGenerateOptions, type TailwindV4StyleGenerateResult, type TailwindV4StyleSource, canonicalizeBareArbitraryValueCandidates, collectTailwindStyleCandidates, collectTailwindV4StyleCandidates, compileTailwindV4Source, createTailwindGenerationSession, createTailwindV4CompiledSourceEntries, createTailwindV4DefaultIgnoreSources, createTailwindV4Engine, createTailwindV4RootSources, createTailwindV4SourceEntryMatcher, createTailwindV4SourceExclusionMatcher, escapeCssClassName, expandTailwindV4SourceEntries, expandTailwindV4SourceEntryBraces, extractBareArbitraryValueSourceCandidates, extractBareArbitraryValueSourceCandidatesWithPositions, extractTailwindV4InlineSourceCandidates, generateTailwindV4Style, getTailwindV4DesignSystemCacheKey, groupTailwindV4SourceEntriesByBase, isBareArbitraryValuesEnabled, isFileExcludedByTailwindV4SourceEntries, isFileMatchedByTailwindV4SourceEntries, loadTailwindV4DesignSystem, loadTailwindV4NodeModule, mergeTailwindV4SourceEntries, normalizeGlobPattern, normalizeTailwindV4ScannerSources, normalizeTailwindV4SourceEntries, replaceBareArbitraryValueSelectors, resolveBareArbitraryValueCandidate, resolveSourceScanPath, resolveTailwindV4Source, resolveTailwindV4SourceBaseCandidates, resolveTailwindV4SourceEntry, resolveValidTailwindV4Candidates, toPosixPath };
|
package/dist/index.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { A as expandTailwindV4SourceEntryBraces, B as expandTailwindV4SourceEntries, C as TAILWIND_V4_AUTO_SOURCE_SCAN_PATTERN, D as createTailwindV4CompiledSourceEntries, E as TAILWIND_V4_IGNORED_FILES, F as resolveTailwindV4SourceBaseCandidates, G as compileTailwindV4Source, H as isFileExcludedByTailwindV4SourceEntries, I as resolveTailwindV4SourceEntry, J as loadTailwindV4NodeModule, K as getTailwindV4DesignSystemCacheKey, L as toPosixPath, M as normalizeTailwindV4ScannerSources, N as normalizeTailwindV4SourceEntries, O as createTailwindV4DefaultIgnoreSources, P as resolveSourceScanPath, R as createTailwindV4SourceEntryMatcher, S as resolveProjectSourceFiles, T as TAILWIND_V4_IGNORED_EXTENSIONS, U as isFileMatchedByTailwindV4SourceEntries, V as groupTailwindV4SourceEntriesByBase, W as mergeTailwindV4SourceEntries, _ as isBareArbitraryValuesEnabled, a as createTailwindGenerationSession, b as extractProjectCandidatesWithPositions, c as replaceBareArbitraryValueSelectors, d as extractRawCandidates, f as extractRawCandidatesWithPositions, g as extractBareArbitraryValueSourceCandidatesWithPositions, h as extractBareArbitraryValueSourceCandidates, i as createTailwindV4Engine, j as normalizeGlobPattern, k as createTailwindV4RootSources, l as resolveValidTailwindV4Candidates, m as extractSourceCandidatesWithPositions, n as generateTailwindV4Style, o as collectTailwindStyleCandidates, p as extractSourceCandidates, q as loadTailwindV4DesignSystem, r as resolveTailwindV4Source, s as canonicalizeBareArbitraryValueCandidates, t as collectTailwindV4StyleCandidates, u as extractTailwindV4InlineSourceCandidates, v as resolveBareArbitraryValueCandidate, w as TAILWIND_V4_IGNORED_CONTENT_DIRS, x as groupTokensByFile, y as escapeCssClassName, z as createTailwindV4SourceExclusionMatcher } from "./v4-
|
|
1
|
+
import { A as expandTailwindV4SourceEntryBraces, B as expandTailwindV4SourceEntries, C as TAILWIND_V4_AUTO_SOURCE_SCAN_PATTERN, D as createTailwindV4CompiledSourceEntries, E as TAILWIND_V4_IGNORED_FILES, F as resolveTailwindV4SourceBaseCandidates, G as compileTailwindV4Source, H as isFileExcludedByTailwindV4SourceEntries, I as resolveTailwindV4SourceEntry, J as loadTailwindV4NodeModule, K as getTailwindV4DesignSystemCacheKey, L as toPosixPath, M as normalizeTailwindV4ScannerSources, N as normalizeTailwindV4SourceEntries, O as createTailwindV4DefaultIgnoreSources, P as resolveSourceScanPath, R as createTailwindV4SourceEntryMatcher, S as resolveProjectSourceFiles, T as TAILWIND_V4_IGNORED_EXTENSIONS, U as isFileMatchedByTailwindV4SourceEntries, V as groupTailwindV4SourceEntriesByBase, W as mergeTailwindV4SourceEntries, _ as isBareArbitraryValuesEnabled, a as createTailwindGenerationSession, b as extractProjectCandidatesWithPositions, c as replaceBareArbitraryValueSelectors, d as extractRawCandidates, f as extractRawCandidatesWithPositions, g as extractBareArbitraryValueSourceCandidatesWithPositions, h as extractBareArbitraryValueSourceCandidates, i as createTailwindV4Engine, j as normalizeGlobPattern, k as createTailwindV4RootSources, l as resolveValidTailwindV4Candidates, m as extractSourceCandidatesWithPositions, n as generateTailwindV4Style, o as collectTailwindStyleCandidates, p as extractSourceCandidates, q as loadTailwindV4DesignSystem, r as resolveTailwindV4Source, s as canonicalizeBareArbitraryValueCandidates, t as collectTailwindV4StyleCandidates, u as extractTailwindV4InlineSourceCandidates, v as resolveBareArbitraryValueCandidate, w as TAILWIND_V4_IGNORED_CONTENT_DIRS, x as groupTokensByFile, y as escapeCssClassName, z as createTailwindV4SourceExclusionMatcher } from "./v4-sBv0Uojf.js";
|
|
2
2
|
import process from "node:process";
|
|
3
3
|
//#region src/extraction/candidate-extractor/valid.ts
|
|
4
4
|
const designSystemCandidateCache = /* @__PURE__ */ new WeakMap();
|
package/dist/v4/index.cjs
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
2
|
-
const require_v4 = require("../v4-
|
|
2
|
+
const require_v4 = require("../v4-B5YEEbhA.cjs");
|
|
3
3
|
let _weapp_tailwindcss_source_scan = require("@weapp-tailwindcss/source-scan");
|
|
4
4
|
exports.TAILWIND_V4_AUTO_SOURCE_SCAN_PATTERN = require_v4.TAILWIND_V4_AUTO_SOURCE_SCAN_PATTERN;
|
|
5
5
|
exports.TAILWIND_V4_IGNORED_CONTENT_DIRS = require_v4.TAILWIND_V4_IGNORED_CONTENT_DIRS;
|
package/dist/v4/index.d.cts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { $ as
|
|
2
|
-
export { type BareArbitraryValueOptions, type BareArbitraryValueResolveResult, type BareArbitraryValueSourceCandidate, type CssFragment, type CssFragmentKind, type GenerationChange, type GenerationRequest, type SourceEntry, TAILWIND_V4_AUTO_SOURCE_SCAN_PATTERN, TAILWIND_V4_IGNORED_CONTENT_DIRS, TAILWIND_V4_IGNORED_EXTENSIONS, TAILWIND_V4_IGNORED_FILES, type TailwindGenerationArtifact, type TailwindGenerationSession, type TailwindV4CandidateSource, type TailwindV4CompiledSourceRoot, type TailwindV4CssSource, type TailwindV4DesignSystem, type TailwindV4Engine, type TailwindV4GenerateOptions, type TailwindV4GenerateResult, type TailwindV4ResolvedSource, type TailwindV4SourceOptions, type TailwindV4SourcePattern, type TailwindV4StyleGenerateOptions, type TailwindV4StyleGenerateResult, type TailwindV4StyleSource, canonicalizeBareArbitraryValueCandidates, collectTailwindV4StyleCandidates, compileTailwindV4Source, createTailwindGenerationSession, createTailwindV4CompiledSourceEntries, createTailwindV4DefaultIgnoreSources, createTailwindV4Engine, createTailwindV4RootSources, createTailwindV4SourceEntryMatcher, createTailwindV4SourceExclusionMatcher, escapeCssClassName, expandTailwindV4SourceEntries, expandTailwindV4SourceEntryBraces, extractBareArbitraryValueSourceCandidates, extractBareArbitraryValueSourceCandidatesWithPositions, extractTailwindV4InlineSourceCandidates, generateTailwindV4Style, getTailwindV4DesignSystemCacheKey, groupTailwindV4SourceEntriesByBase, isBareArbitraryValuesEnabled, isFileExcludedByTailwindV4SourceEntries, isFileMatchedByTailwindV4SourceEntries, loadTailwindV4DesignSystem, loadTailwindV4NodeModule, mergeTailwindV4SourceEntries, normalizeGlobPattern, normalizeTailwindV4ScannerSources, normalizeTailwindV4SourceEntries, replaceBareArbitraryValueSelectors, resolveBareArbitraryValueCandidate, resolveSourceScanPath, resolveTailwindV4Source, resolveTailwindV4SourceBaseCandidates, resolveTailwindV4SourceEntry, resolveValidTailwindV4Candidates, toPosixPath };
|
|
1
|
+
import { $ as TailwindV4SourcePattern, A as createTailwindGenerationSession, B as SourceEntry, C as isFileExcludedByTailwindV4SourceEntries, D as getTailwindV4DesignSystemCacheKey, E as compileTailwindV4Source, F as extractTailwindV4InlineSourceCandidates, G as TailwindV4CompiledSourceRoot, H as TailwindGenerationSession, I as CssFragment, J as TailwindV4Engine, K as TailwindV4CssSource, L as CssFragmentKind, M as canonicalizeBareArbitraryValueCandidates, N as replaceBareArbitraryValueSelectors, O as loadTailwindV4DesignSystem, P as resolveValidTailwindV4Candidates, Q as TailwindV4SourceOptions, R as GenerationChange, S as groupTailwindV4SourceEntriesByBase, T as mergeTailwindV4SourceEntries, U as TailwindGenerationSessionOptions, V as TailwindGenerationArtifact, W as TailwindV4CandidateSource, X as TailwindV4GenerateResult, Y as TailwindV4GenerateOptions, Z as TailwindV4ResolvedSource, _ as resolveTailwindV4SourceEntry, a as TAILWIND_V4_IGNORED_CONTENT_DIRS, b as createTailwindV4SourceExclusionMatcher, c as createTailwindV4CompiledSourceEntries, ct as extractBareArbitraryValueSourceCandidates, d as expandTailwindV4SourceEntryBraces, dt as BareArbitraryValueResolveResult, et as TailwindV4StyleGenerateOptions, f as normalizeGlobPattern, ft as BareArbitraryValueSourceCandidate, g as resolveTailwindV4SourceBaseCandidates, h as resolveSourceScanPath, i as TAILWIND_V4_AUTO_SOURCE_SCAN_PATTERN, j as createTailwindV4Engine, k as loadTailwindV4NodeModule, l as createTailwindV4DefaultIgnoreSources, lt as extractBareArbitraryValueSourceCandidatesWithPositions, m as normalizeTailwindV4SourceEntries, n as generateTailwindV4Style, nt as TailwindV4StyleSource, o as TAILWIND_V4_IGNORED_EXTENSIONS, ot as isBareArbitraryValuesEnabled, p as normalizeTailwindV4ScannerSources, pt as escapeCssClassName, q as TailwindV4DesignSystem, r as resolveTailwindV4Source, s as TAILWIND_V4_IGNORED_FILES, st as resolveBareArbitraryValueCandidate, t as collectTailwindV4StyleCandidates, tt as TailwindV4StyleGenerateResult, u as createTailwindV4RootSources, ut as BareArbitraryValueOptions, v as toPosixPath, w as isFileMatchedByTailwindV4SourceEntries, x as expandTailwindV4SourceEntries, y as createTailwindV4SourceEntryMatcher, z as GenerationRequest } from "../index-ubIZsEf5.cjs";
|
|
2
|
+
export { type BareArbitraryValueOptions, type BareArbitraryValueResolveResult, type BareArbitraryValueSourceCandidate, type CssFragment, type CssFragmentKind, type GenerationChange, type GenerationRequest, type SourceEntry, TAILWIND_V4_AUTO_SOURCE_SCAN_PATTERN, TAILWIND_V4_IGNORED_CONTENT_DIRS, TAILWIND_V4_IGNORED_EXTENSIONS, TAILWIND_V4_IGNORED_FILES, type TailwindGenerationArtifact, type TailwindGenerationSession, type TailwindGenerationSessionOptions, type TailwindV4CandidateSource, type TailwindV4CompiledSourceRoot, type TailwindV4CssSource, type TailwindV4DesignSystem, type TailwindV4Engine, type TailwindV4GenerateOptions, type TailwindV4GenerateResult, type TailwindV4ResolvedSource, type TailwindV4SourceOptions, type TailwindV4SourcePattern, type TailwindV4StyleGenerateOptions, type TailwindV4StyleGenerateResult, type TailwindV4StyleSource, canonicalizeBareArbitraryValueCandidates, collectTailwindV4StyleCandidates, compileTailwindV4Source, createTailwindGenerationSession, createTailwindV4CompiledSourceEntries, createTailwindV4DefaultIgnoreSources, createTailwindV4Engine, createTailwindV4RootSources, createTailwindV4SourceEntryMatcher, createTailwindV4SourceExclusionMatcher, escapeCssClassName, expandTailwindV4SourceEntries, expandTailwindV4SourceEntryBraces, extractBareArbitraryValueSourceCandidates, extractBareArbitraryValueSourceCandidatesWithPositions, extractTailwindV4InlineSourceCandidates, generateTailwindV4Style, getTailwindV4DesignSystemCacheKey, groupTailwindV4SourceEntriesByBase, isBareArbitraryValuesEnabled, isFileExcludedByTailwindV4SourceEntries, isFileMatchedByTailwindV4SourceEntries, loadTailwindV4DesignSystem, loadTailwindV4NodeModule, mergeTailwindV4SourceEntries, normalizeGlobPattern, normalizeTailwindV4ScannerSources, normalizeTailwindV4SourceEntries, replaceBareArbitraryValueSelectors, resolveBareArbitraryValueCandidate, resolveSourceScanPath, resolveTailwindV4Source, resolveTailwindV4SourceBaseCandidates, resolveTailwindV4SourceEntry, resolveValidTailwindV4Candidates, toPosixPath };
|
package/dist/v4/index.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { $ as
|
|
2
|
-
export { type BareArbitraryValueOptions, type BareArbitraryValueResolveResult, type BareArbitraryValueSourceCandidate, type CssFragment, type CssFragmentKind, type GenerationChange, type GenerationRequest, type SourceEntry, TAILWIND_V4_AUTO_SOURCE_SCAN_PATTERN, TAILWIND_V4_IGNORED_CONTENT_DIRS, TAILWIND_V4_IGNORED_EXTENSIONS, TAILWIND_V4_IGNORED_FILES, type TailwindGenerationArtifact, type TailwindGenerationSession, type TailwindV4CandidateSource, type TailwindV4CompiledSourceRoot, type TailwindV4CssSource, type TailwindV4DesignSystem, type TailwindV4Engine, type TailwindV4GenerateOptions, type TailwindV4GenerateResult, type TailwindV4ResolvedSource, type TailwindV4SourceOptions, type TailwindV4SourcePattern, type TailwindV4StyleGenerateOptions, type TailwindV4StyleGenerateResult, type TailwindV4StyleSource, canonicalizeBareArbitraryValueCandidates, collectTailwindV4StyleCandidates, compileTailwindV4Source, createTailwindGenerationSession, createTailwindV4CompiledSourceEntries, createTailwindV4DefaultIgnoreSources, createTailwindV4Engine, createTailwindV4RootSources, createTailwindV4SourceEntryMatcher, createTailwindV4SourceExclusionMatcher, escapeCssClassName, expandTailwindV4SourceEntries, expandTailwindV4SourceEntryBraces, extractBareArbitraryValueSourceCandidates, extractBareArbitraryValueSourceCandidatesWithPositions, extractTailwindV4InlineSourceCandidates, generateTailwindV4Style, getTailwindV4DesignSystemCacheKey, groupTailwindV4SourceEntriesByBase, isBareArbitraryValuesEnabled, isFileExcludedByTailwindV4SourceEntries, isFileMatchedByTailwindV4SourceEntries, loadTailwindV4DesignSystem, loadTailwindV4NodeModule, mergeTailwindV4SourceEntries, normalizeGlobPattern, normalizeTailwindV4ScannerSources, normalizeTailwindV4SourceEntries, replaceBareArbitraryValueSelectors, resolveBareArbitraryValueCandidate, resolveSourceScanPath, resolveTailwindV4Source, resolveTailwindV4SourceBaseCandidates, resolveTailwindV4SourceEntry, resolveValidTailwindV4Candidates, toPosixPath };
|
|
1
|
+
import { $ as TailwindV4SourcePattern, A as createTailwindGenerationSession, B as SourceEntry, C as isFileExcludedByTailwindV4SourceEntries, D as getTailwindV4DesignSystemCacheKey, E as compileTailwindV4Source, F as extractTailwindV4InlineSourceCandidates, G as TailwindV4CompiledSourceRoot, H as TailwindGenerationSession, I as CssFragment, J as TailwindV4Engine, K as TailwindV4CssSource, L as CssFragmentKind, M as canonicalizeBareArbitraryValueCandidates, N as replaceBareArbitraryValueSelectors, O as loadTailwindV4DesignSystem, P as resolveValidTailwindV4Candidates, Q as TailwindV4SourceOptions, R as GenerationChange, S as groupTailwindV4SourceEntriesByBase, T as mergeTailwindV4SourceEntries, U as TailwindGenerationSessionOptions, V as TailwindGenerationArtifact, W as TailwindV4CandidateSource, X as TailwindV4GenerateResult, Y as TailwindV4GenerateOptions, Z as TailwindV4ResolvedSource, _ as resolveTailwindV4SourceEntry, a as TAILWIND_V4_IGNORED_CONTENT_DIRS, b as createTailwindV4SourceExclusionMatcher, c as createTailwindV4CompiledSourceEntries, ct as extractBareArbitraryValueSourceCandidates, d as expandTailwindV4SourceEntryBraces, dt as BareArbitraryValueResolveResult, et as TailwindV4StyleGenerateOptions, f as normalizeGlobPattern, ft as BareArbitraryValueSourceCandidate, g as resolveTailwindV4SourceBaseCandidates, h as resolveSourceScanPath, i as TAILWIND_V4_AUTO_SOURCE_SCAN_PATTERN, j as createTailwindV4Engine, k as loadTailwindV4NodeModule, l as createTailwindV4DefaultIgnoreSources, lt as extractBareArbitraryValueSourceCandidatesWithPositions, m as normalizeTailwindV4SourceEntries, n as generateTailwindV4Style, nt as TailwindV4StyleSource, o as TAILWIND_V4_IGNORED_EXTENSIONS, ot as isBareArbitraryValuesEnabled, p as normalizeTailwindV4ScannerSources, pt as escapeCssClassName, q as TailwindV4DesignSystem, r as resolveTailwindV4Source, s as TAILWIND_V4_IGNORED_FILES, st as resolveBareArbitraryValueCandidate, t as collectTailwindV4StyleCandidates, tt as TailwindV4StyleGenerateResult, u as createTailwindV4RootSources, ut as BareArbitraryValueOptions, v as toPosixPath, w as isFileMatchedByTailwindV4SourceEntries, x as expandTailwindV4SourceEntries, y as createTailwindV4SourceEntryMatcher, z as GenerationRequest } from "../index-BCGhMfsk.js";
|
|
2
|
+
export { type BareArbitraryValueOptions, type BareArbitraryValueResolveResult, type BareArbitraryValueSourceCandidate, type CssFragment, type CssFragmentKind, type GenerationChange, type GenerationRequest, type SourceEntry, TAILWIND_V4_AUTO_SOURCE_SCAN_PATTERN, TAILWIND_V4_IGNORED_CONTENT_DIRS, TAILWIND_V4_IGNORED_EXTENSIONS, TAILWIND_V4_IGNORED_FILES, type TailwindGenerationArtifact, type TailwindGenerationSession, type TailwindGenerationSessionOptions, type TailwindV4CandidateSource, type TailwindV4CompiledSourceRoot, type TailwindV4CssSource, type TailwindV4DesignSystem, type TailwindV4Engine, type TailwindV4GenerateOptions, type TailwindV4GenerateResult, type TailwindV4ResolvedSource, type TailwindV4SourceOptions, type TailwindV4SourcePattern, type TailwindV4StyleGenerateOptions, type TailwindV4StyleGenerateResult, type TailwindV4StyleSource, canonicalizeBareArbitraryValueCandidates, collectTailwindV4StyleCandidates, compileTailwindV4Source, createTailwindGenerationSession, createTailwindV4CompiledSourceEntries, createTailwindV4DefaultIgnoreSources, createTailwindV4Engine, createTailwindV4RootSources, createTailwindV4SourceEntryMatcher, createTailwindV4SourceExclusionMatcher, escapeCssClassName, expandTailwindV4SourceEntries, expandTailwindV4SourceEntryBraces, extractBareArbitraryValueSourceCandidates, extractBareArbitraryValueSourceCandidatesWithPositions, extractTailwindV4InlineSourceCandidates, generateTailwindV4Style, getTailwindV4DesignSystemCacheKey, groupTailwindV4SourceEntriesByBase, isBareArbitraryValuesEnabled, isFileExcludedByTailwindV4SourceEntries, isFileMatchedByTailwindV4SourceEntries, loadTailwindV4DesignSystem, loadTailwindV4NodeModule, mergeTailwindV4SourceEntries, normalizeGlobPattern, normalizeTailwindV4ScannerSources, normalizeTailwindV4SourceEntries, replaceBareArbitraryValueSelectors, resolveBareArbitraryValueCandidate, resolveSourceScanPath, resolveTailwindV4Source, resolveTailwindV4SourceBaseCandidates, resolveTailwindV4SourceEntry, resolveValidTailwindV4Candidates, toPosixPath };
|
package/dist/v4/index.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { A as expandTailwindV4SourceEntryBraces, B as expandTailwindV4SourceEntries, C as TAILWIND_V4_AUTO_SOURCE_SCAN_PATTERN, D as createTailwindV4CompiledSourceEntries, E as TAILWIND_V4_IGNORED_FILES, F as resolveTailwindV4SourceBaseCandidates, G as compileTailwindV4Source, H as isFileExcludedByTailwindV4SourceEntries, I as resolveTailwindV4SourceEntry, J as loadTailwindV4NodeModule, K as getTailwindV4DesignSystemCacheKey, L as toPosixPath, M as normalizeTailwindV4ScannerSources, N as normalizeTailwindV4SourceEntries, O as createTailwindV4DefaultIgnoreSources, P as resolveSourceScanPath, R as createTailwindV4SourceEntryMatcher, T as TAILWIND_V4_IGNORED_EXTENSIONS, U as isFileMatchedByTailwindV4SourceEntries, V as groupTailwindV4SourceEntriesByBase, W as mergeTailwindV4SourceEntries, _ as isBareArbitraryValuesEnabled, a as createTailwindGenerationSession, c as replaceBareArbitraryValueSelectors, g as extractBareArbitraryValueSourceCandidatesWithPositions, h as extractBareArbitraryValueSourceCandidates, i as createTailwindV4Engine, j as normalizeGlobPattern, k as createTailwindV4RootSources, l as resolveValidTailwindV4Candidates, n as generateTailwindV4Style, q as loadTailwindV4DesignSystem, r as resolveTailwindV4Source, s as canonicalizeBareArbitraryValueCandidates, t as collectTailwindV4StyleCandidates, u as extractTailwindV4InlineSourceCandidates, v as resolveBareArbitraryValueCandidate, w as TAILWIND_V4_IGNORED_CONTENT_DIRS, y as escapeCssClassName, z as createTailwindV4SourceExclusionMatcher } from "../v4-
|
|
1
|
+
import { A as expandTailwindV4SourceEntryBraces, B as expandTailwindV4SourceEntries, C as TAILWIND_V4_AUTO_SOURCE_SCAN_PATTERN, D as createTailwindV4CompiledSourceEntries, E as TAILWIND_V4_IGNORED_FILES, F as resolveTailwindV4SourceBaseCandidates, G as compileTailwindV4Source, H as isFileExcludedByTailwindV4SourceEntries, I as resolveTailwindV4SourceEntry, J as loadTailwindV4NodeModule, K as getTailwindV4DesignSystemCacheKey, L as toPosixPath, M as normalizeTailwindV4ScannerSources, N as normalizeTailwindV4SourceEntries, O as createTailwindV4DefaultIgnoreSources, P as resolveSourceScanPath, R as createTailwindV4SourceEntryMatcher, T as TAILWIND_V4_IGNORED_EXTENSIONS, U as isFileMatchedByTailwindV4SourceEntries, V as groupTailwindV4SourceEntriesByBase, W as mergeTailwindV4SourceEntries, _ as isBareArbitraryValuesEnabled, a as createTailwindGenerationSession, c as replaceBareArbitraryValueSelectors, g as extractBareArbitraryValueSourceCandidatesWithPositions, h as extractBareArbitraryValueSourceCandidates, i as createTailwindV4Engine, j as normalizeGlobPattern, k as createTailwindV4RootSources, l as resolveValidTailwindV4Candidates, n as generateTailwindV4Style, q as loadTailwindV4DesignSystem, r as resolveTailwindV4Source, s as canonicalizeBareArbitraryValueCandidates, t as collectTailwindV4StyleCandidates, u as extractTailwindV4InlineSourceCandidates, v as resolveBareArbitraryValueCandidate, w as TAILWIND_V4_IGNORED_CONTENT_DIRS, y as escapeCssClassName, z as createTailwindV4SourceExclusionMatcher } from "../v4-sBv0Uojf.js";
|
|
2
2
|
export { TAILWIND_V4_AUTO_SOURCE_SCAN_PATTERN, TAILWIND_V4_IGNORED_CONTENT_DIRS, TAILWIND_V4_IGNORED_EXTENSIONS, TAILWIND_V4_IGNORED_FILES, canonicalizeBareArbitraryValueCandidates, collectTailwindV4StyleCandidates, compileTailwindV4Source, createTailwindGenerationSession, createTailwindV4CompiledSourceEntries, createTailwindV4DefaultIgnoreSources, createTailwindV4Engine, createTailwindV4RootSources, createTailwindV4SourceEntryMatcher, createTailwindV4SourceExclusionMatcher, escapeCssClassName, expandTailwindV4SourceEntries, expandTailwindV4SourceEntryBraces, extractBareArbitraryValueSourceCandidates, extractBareArbitraryValueSourceCandidatesWithPositions, extractTailwindV4InlineSourceCandidates, generateTailwindV4Style, getTailwindV4DesignSystemCacheKey, groupTailwindV4SourceEntriesByBase, isBareArbitraryValuesEnabled, isFileExcludedByTailwindV4SourceEntries, isFileMatchedByTailwindV4SourceEntries, loadTailwindV4DesignSystem, loadTailwindV4NodeModule, mergeTailwindV4SourceEntries, normalizeGlobPattern, normalizeTailwindV4ScannerSources, normalizeTailwindV4SourceEntries, replaceBareArbitraryValueSelectors, resolveBareArbitraryValueCandidate, resolveSourceScanPath, resolveTailwindV4Source, resolveTailwindV4SourceBaseCandidates, resolveTailwindV4SourceEntry, resolveValidTailwindV4Candidates, toPosixPath };
|
|
@@ -20,12 +20,12 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge
|
|
|
20
20
|
enumerable: true
|
|
21
21
|
}) : target, mod));
|
|
22
22
|
//#endregion
|
|
23
|
-
let node_fs = require("node:fs");
|
|
24
23
|
let node_path = require("node:path");
|
|
25
24
|
node_path = __toESM(node_path, 1);
|
|
26
25
|
let node_process = require("node:process");
|
|
27
26
|
node_process = __toESM(node_process, 1);
|
|
28
27
|
let node_crypto = require("node:crypto");
|
|
28
|
+
let node_fs = require("node:fs");
|
|
29
29
|
let node_module = require("node:module");
|
|
30
30
|
let node_url = require("node:url");
|
|
31
31
|
let node_async_hooks = require("node:async_hooks");
|
|
@@ -103,8 +103,14 @@ async function loadCachedModule(loader, file) {
|
|
|
103
103
|
const onDependency = (dependency) => {
|
|
104
104
|
dependencies.add(dependency);
|
|
105
105
|
};
|
|
106
|
-
let loaded
|
|
107
|
-
if (
|
|
106
|
+
let loaded;
|
|
107
|
+
if (node_path.default.extname(file) === ".cjs") {
|
|
108
|
+
loaded = { module: require$1(file) };
|
|
109
|
+
collectCommonJsDependencies(file, dependencies);
|
|
110
|
+
} else {
|
|
111
|
+
const initial = previous || !canUseCommonJsGraph(file) ? void 0 : await loader.loadModule(file, base, onDependency);
|
|
112
|
+
loaded = initial && collectCommonJsDependencies(file, dependencies) ? initial : await loader.loadModule(`./${node_path.default.basename(file)}`, base, onDependency);
|
|
113
|
+
}
|
|
108
114
|
const files = [...dependencies].sort();
|
|
109
115
|
return {
|
|
110
116
|
dependencies: files,
|
|
@@ -472,6 +478,37 @@ function resolveTailwindV4SourceBaseCandidates(projectRoot, base, baseFallbacks)
|
|
|
472
478
|
]);
|
|
473
479
|
}
|
|
474
480
|
//#endregion
|
|
481
|
+
//#region src/extraction/file-io.ts
|
|
482
|
+
const CANDIDATE_FILE_CONCURRENCY = 8;
|
|
483
|
+
let activeReads = 0;
|
|
484
|
+
let pendingOffset = 0;
|
|
485
|
+
const pendingReads = [];
|
|
486
|
+
/** 原始补扫、任意值补扫与位置报告共享读取预算,避免多生成请求耗尽文件描述符。 */
|
|
487
|
+
async function readCandidateFile(file) {
|
|
488
|
+
if (activeReads >= CANDIDATE_FILE_CONCURRENCY) await new Promise((resolve) => {
|
|
489
|
+
pendingReads.push(resolve);
|
|
490
|
+
});
|
|
491
|
+
else activeReads++;
|
|
492
|
+
try {
|
|
493
|
+
return await node_fs.promises.readFile(file, "utf8");
|
|
494
|
+
} finally {
|
|
495
|
+
if (pendingOffset < pendingReads.length) {
|
|
496
|
+
const next = pendingReads[pendingOffset++];
|
|
497
|
+
if (pendingOffset === pendingReads.length) {
|
|
498
|
+
pendingReads.length = 0;
|
|
499
|
+
pendingOffset = 0;
|
|
500
|
+
}
|
|
501
|
+
next();
|
|
502
|
+
} else activeReads--;
|
|
503
|
+
}
|
|
504
|
+
}
|
|
505
|
+
/** 分批遍历避免为全部文件同时分配 Promise,输出沿用文件枚举顺序。 */
|
|
506
|
+
async function mapCandidateFiles(files, handle) {
|
|
507
|
+
const results = [];
|
|
508
|
+
for (let start = 0; start < files.length; start += CANDIDATE_FILE_CONCURRENCY) results.push(...await Promise.all(files.slice(start, start + CANDIDATE_FILE_CONCURRENCY).map(handle)));
|
|
509
|
+
return results;
|
|
510
|
+
}
|
|
511
|
+
//#endregion
|
|
475
512
|
//#region src/extraction/oxide.ts
|
|
476
513
|
let oxideImportPromise;
|
|
477
514
|
function createOxideRuntimeDependencyError(cause) {
|
|
@@ -595,7 +632,7 @@ async function extractProjectCandidatesWithPositions(options) {
|
|
|
595
632
|
const batchSize = 32;
|
|
596
633
|
for (let start = 0; start < files.length; start += batchSize) {
|
|
597
634
|
const batch = files.slice(start, start + batchSize);
|
|
598
|
-
const contents = await Promise.allSettled(batch.map(
|
|
635
|
+
const contents = await Promise.allSettled(batch.map(readCandidateFile));
|
|
599
636
|
for (const [index, file] of batch.entries()) {
|
|
600
637
|
const result = contents[index];
|
|
601
638
|
if (result.status === "rejected") {
|
|
@@ -3392,27 +3429,27 @@ async function extractRawCandidates(sources, options) {
|
|
|
3392
3429
|
if (cached) return [...cached.candidates];
|
|
3393
3430
|
const scannedCandidates = scanner.scan();
|
|
3394
3431
|
if (scannedCandidates.length === 0 && files.length > 0) {
|
|
3395
|
-
const changedContents = (await
|
|
3432
|
+
const changedContents = (await mapCandidateFiles(files, async (file) => {
|
|
3396
3433
|
try {
|
|
3397
3434
|
return {
|
|
3398
|
-
content: await
|
|
3435
|
+
content: await readCandidateFile(file),
|
|
3399
3436
|
extension: toExtension(file)
|
|
3400
3437
|
};
|
|
3401
3438
|
} catch {
|
|
3402
3439
|
return;
|
|
3403
3440
|
}
|
|
3404
|
-
}))
|
|
3441
|
+
})).filter((entry) => entry !== void 0);
|
|
3405
3442
|
scannedCandidates.push(...scanner.scanFiles(changedContents));
|
|
3406
3443
|
}
|
|
3407
3444
|
const candidates = new Set(scannedCandidates);
|
|
3408
|
-
if (options?.bareArbitraryValues !== void 0 && options.bareArbitraryValues !== false) await
|
|
3445
|
+
if (options?.bareArbitraryValues !== void 0 && options.bareArbitraryValues !== false) await mapCandidateFiles(files, async (file) => {
|
|
3409
3446
|
try {
|
|
3410
|
-
const content = await
|
|
3447
|
+
const content = await readCandidateFile(file);
|
|
3411
3448
|
const extension = toExtension(file);
|
|
3412
3449
|
const jsStringStaticRanges = JS_LIKE_SOURCE_EXTENSION_RE.test(extension) ? createJsStringStaticRanges(content) : void 0;
|
|
3413
3450
|
for (const candidate of extractBareArbitraryValueSourceCandidatesWithPositions(content, options.bareArbitraryValues)) if (shouldKeepSourceCandidate(content, extension, candidate, jsStringStaticRanges)) candidates.add(candidate.rawCandidate);
|
|
3414
3451
|
} catch {}
|
|
3415
|
-
})
|
|
3452
|
+
});
|
|
3416
3453
|
const result = [...candidates];
|
|
3417
3454
|
setRawCandidateCacheEntry(cacheKey, fingerprint, result);
|
|
3418
3455
|
return [...result];
|
|
@@ -3750,23 +3787,30 @@ async function collectRawCandidates(source, options, compiledRoot, compiledSourc
|
|
|
3750
3787
|
//#endregion
|
|
3751
3788
|
//#region src/v4/generation-session.ts
|
|
3752
3789
|
var TailwindGenerationSessionImpl = class {
|
|
3790
|
+
options;
|
|
3753
3791
|
currentSource;
|
|
3754
3792
|
runtimes = /* @__PURE__ */ new Map();
|
|
3755
|
-
|
|
3793
|
+
designSystems = /* @__PURE__ */ new Map();
|
|
3794
|
+
revision = 0;
|
|
3756
3795
|
disposed = false;
|
|
3757
3796
|
moduleDependencies = /* @__PURE__ */ new Set();
|
|
3758
|
-
constructor(source) {
|
|
3797
|
+
constructor(source, options = {}) {
|
|
3798
|
+
this.options = options;
|
|
3759
3799
|
this.currentSource = source;
|
|
3760
3800
|
}
|
|
3761
3801
|
get source() {
|
|
3762
3802
|
return this.currentSource;
|
|
3763
3803
|
}
|
|
3764
3804
|
async generate(request = {}) {
|
|
3805
|
+
const revision = this.revision;
|
|
3765
3806
|
const generated = await this.generateInternal(request);
|
|
3766
|
-
|
|
3807
|
+
this.assertRevision(revision);
|
|
3808
|
+
return cloneTailwindGenerationArtifact(createTailwindGenerationArtifact(generated.css, generated.source, request, generated.classSet, generated.rawCandidates, generated.dependencies));
|
|
3767
3809
|
}
|
|
3768
3810
|
async generateLegacy(options) {
|
|
3811
|
+
const revision = this.revision;
|
|
3769
3812
|
const generated = await this.generateInternal(toGenerationRequest(options));
|
|
3813
|
+
this.assertRevision(revision);
|
|
3770
3814
|
return {
|
|
3771
3815
|
css: generated.css,
|
|
3772
3816
|
classSet: generated.classSet,
|
|
@@ -3777,9 +3821,7 @@ var TailwindGenerationSessionImpl = class {
|
|
|
3777
3821
|
};
|
|
3778
3822
|
}
|
|
3779
3823
|
loadDesignSystem() {
|
|
3780
|
-
this.
|
|
3781
|
-
this.designSystemPromise ??= loadTailwindV4DesignSystem(this.currentSource, { cache: false });
|
|
3782
|
-
return this.designSystemPromise;
|
|
3824
|
+
return this.getDesignSystem(this.currentSource);
|
|
3783
3825
|
}
|
|
3784
3826
|
async validateCandidates(candidates) {
|
|
3785
3827
|
return resolveValidTailwindV4Candidates(await this.loadDesignSystem(), candidates);
|
|
@@ -3791,57 +3833,107 @@ var TailwindGenerationSessionImpl = class {
|
|
|
3791
3833
|
invalidateGenerationModuleCache();
|
|
3792
3834
|
this.moduleDependencies.clear();
|
|
3793
3835
|
this.runtimes.clear();
|
|
3794
|
-
this.
|
|
3836
|
+
this.designSystems.clear();
|
|
3837
|
+
this.revision += 1;
|
|
3795
3838
|
}
|
|
3796
3839
|
dispose() {
|
|
3797
3840
|
(0, _tailwindcss_node_require_cache.clearRequireCache)([...this.moduleDependencies]);
|
|
3798
3841
|
this.moduleDependencies.clear();
|
|
3799
3842
|
this.runtimes.clear();
|
|
3800
|
-
this.
|
|
3843
|
+
this.designSystems.clear();
|
|
3844
|
+
this.revision += 1;
|
|
3801
3845
|
this.disposed = true;
|
|
3802
3846
|
}
|
|
3803
3847
|
assertActive() {
|
|
3804
3848
|
if (this.disposed) throw new Error("Tailwind generation session has been disposed.");
|
|
3805
3849
|
}
|
|
3806
|
-
|
|
3850
|
+
assertRevision(revision) {
|
|
3851
|
+
this.assertActive();
|
|
3852
|
+
if (revision !== this.revision) throw new Error("Tailwind generation session changed during generation.");
|
|
3853
|
+
}
|
|
3854
|
+
getDesignSystem(source) {
|
|
3855
|
+
this.assertActive();
|
|
3856
|
+
const cached = this.designSystems.get(source.css);
|
|
3857
|
+
if (cached) return cached;
|
|
3858
|
+
const revision = this.revision;
|
|
3859
|
+
const promise = loadTailwindV4DesignSystem(source, { cache: false }).then((designSystem) => {
|
|
3860
|
+
this.assertRevision(revision);
|
|
3861
|
+
return designSystem;
|
|
3862
|
+
});
|
|
3863
|
+
this.designSystems.set(source.css, promise);
|
|
3864
|
+
promise.catch(() => {
|
|
3865
|
+
if (this.designSystems.get(source.css) === promise) this.designSystems.delete(source.css);
|
|
3866
|
+
});
|
|
3867
|
+
return promise;
|
|
3868
|
+
}
|
|
3869
|
+
getRuntime(compileSourceEntries, previous) {
|
|
3807
3870
|
this.assertActive();
|
|
3808
3871
|
const cached = this.runtimes.get(compileSourceEntries);
|
|
3809
3872
|
if (cached) return cached;
|
|
3873
|
+
const revision = this.revision;
|
|
3810
3874
|
const source = compileSourceEntries ? this.currentSource : stripCompiledSourceEntries(this.currentSource);
|
|
3811
|
-
const
|
|
3812
|
-
|
|
3813
|
-
|
|
3814
|
-
designSystem
|
|
3815
|
-
|
|
3816
|
-
|
|
3875
|
+
const designSystemPromise = previous ? Promise.resolve(previous.designSystem) : this.getDesignSystem(source);
|
|
3876
|
+
const preparedSource = previous ? Promise.resolve(previous.source) : this.options.prepareSource ? designSystemPromise.then(async (designSystem) => {
|
|
3877
|
+
this.assertRevision(revision);
|
|
3878
|
+
const css = await this.options.prepareSource(source, designSystem);
|
|
3879
|
+
this.assertRevision(revision);
|
|
3880
|
+
return {
|
|
3881
|
+
...source,
|
|
3882
|
+
css
|
|
3883
|
+
};
|
|
3884
|
+
}) : Promise.resolve(source);
|
|
3885
|
+
const promise = Promise.all([preparedSource.then(async (prepared) => {
|
|
3886
|
+
this.assertRevision(revision);
|
|
3887
|
+
return {
|
|
3888
|
+
...await compileTailwindV4Source(prepared),
|
|
3889
|
+
source: prepared
|
|
3890
|
+
};
|
|
3891
|
+
}), designSystemPromise]).then(([compiledSource, designSystem]) => {
|
|
3892
|
+
this.assertRevision(revision);
|
|
3893
|
+
return {
|
|
3894
|
+
source: compiledSource.source,
|
|
3895
|
+
compiled: compiledSource.compiled,
|
|
3896
|
+
dependencies: compiledSource.dependencies,
|
|
3897
|
+
designSystem,
|
|
3898
|
+
builtCandidates: /* @__PURE__ */ new Set()
|
|
3899
|
+
};
|
|
3900
|
+
});
|
|
3817
3901
|
this.runtimes.set(compileSourceEntries, promise);
|
|
3818
3902
|
promise.catch(() => {
|
|
3819
3903
|
if (this.runtimes.get(compileSourceEntries) === promise) this.runtimes.delete(compileSourceEntries);
|
|
3820
3904
|
});
|
|
3821
3905
|
return promise;
|
|
3822
3906
|
}
|
|
3823
|
-
async resetRuntime(compileSourceEntries,
|
|
3907
|
+
async resetRuntime(compileSourceEntries, runtime) {
|
|
3824
3908
|
this.runtimes.delete(compileSourceEntries);
|
|
3825
|
-
return this.getRuntime(compileSourceEntries,
|
|
3909
|
+
return this.getRuntime(compileSourceEntries, runtime);
|
|
3826
3910
|
}
|
|
3827
3911
|
async generateInternal(request) {
|
|
3828
3912
|
this.assertActive();
|
|
3913
|
+
const revision = this.revision;
|
|
3914
|
+
const source = this.currentSource;
|
|
3829
3915
|
const options = toGenerateOptions(request);
|
|
3830
3916
|
const compileSourceEntries = shouldCompileSourceEntries(options);
|
|
3831
3917
|
let runtime = await this.getRuntime(compileSourceEntries);
|
|
3918
|
+
this.assertRevision(revision);
|
|
3832
3919
|
const sourceFiles = [];
|
|
3833
|
-
let rawCandidates = await collectRawCandidates(
|
|
3920
|
+
let rawCandidates = await collectRawCandidates(source, options, runtime.compiled.root, runtime.compiled.sources, (files) => sourceFiles.push(...files));
|
|
3921
|
+
this.assertRevision(revision);
|
|
3834
3922
|
if (request.prepareCandidates) rawCandidates = new Set(request.prepareCandidates(rawCandidates));
|
|
3835
3923
|
const classSet = resolveValidTailwindV4Candidates(runtime.designSystem, rawCandidates, { ...options.bareArbitraryValues === void 0 ? {} : { bareArbitraryValues: options.bareArbitraryValues } });
|
|
3836
|
-
const inlineSources = extractTailwindV4InlineSourceCandidates(
|
|
3924
|
+
const inlineSources = extractTailwindV4InlineSourceCandidates(source.css);
|
|
3837
3925
|
for (const candidate of inlineSources.excluded) classSet.delete(candidate);
|
|
3838
3926
|
const buildCandidates = new Set(canonicalizeBareArbitraryValueCandidates(classSet, options.bareArbitraryValues));
|
|
3839
|
-
if ([...runtime.builtCandidates].some((candidate) => !buildCandidates.has(candidate)))
|
|
3927
|
+
if ([...runtime.builtCandidates].some((candidate) => !buildCandidates.has(candidate))) {
|
|
3928
|
+
runtime = await this.resetRuntime(compileSourceEntries, runtime);
|
|
3929
|
+
this.assertRevision(revision);
|
|
3930
|
+
}
|
|
3840
3931
|
const css = replaceBareArbitraryValueSelectors(runtime.compiled.build([...buildCandidates]), classSet, options.bareArbitraryValues);
|
|
3841
3932
|
runtime.builtCandidates = new Set(buildCandidates);
|
|
3842
3933
|
for (const dependency of runtime.dependencies) this.moduleDependencies.add(dependency);
|
|
3843
3934
|
const dependencies = [.../* @__PURE__ */ new Set([...runtime.dependencies, ...sourceFiles])];
|
|
3844
3935
|
return {
|
|
3936
|
+
source,
|
|
3845
3937
|
css,
|
|
3846
3938
|
classSet,
|
|
3847
3939
|
rawCandidates,
|
|
@@ -3851,16 +3943,16 @@ var TailwindGenerationSessionImpl = class {
|
|
|
3851
3943
|
};
|
|
3852
3944
|
}
|
|
3853
3945
|
};
|
|
3854
|
-
function createTailwindGenerationSession(source) {
|
|
3855
|
-
return new TailwindGenerationSessionImpl(source);
|
|
3946
|
+
function createTailwindGenerationSession(source, options) {
|
|
3947
|
+
return new TailwindGenerationSessionImpl(source, options);
|
|
3856
3948
|
}
|
|
3857
|
-
function createTailwindV4EngineGenerationSession(source) {
|
|
3858
|
-
return new TailwindGenerationSessionImpl(source);
|
|
3949
|
+
function createTailwindV4EngineGenerationSession(source, options) {
|
|
3950
|
+
return new TailwindGenerationSessionImpl(source, options);
|
|
3859
3951
|
}
|
|
3860
3952
|
//#endregion
|
|
3861
3953
|
//#region src/v4/engine.ts
|
|
3862
|
-
function createTailwindV4Engine(source) {
|
|
3863
|
-
const session = createTailwindV4EngineGenerationSession(source);
|
|
3954
|
+
function createTailwindV4Engine(source, options) {
|
|
3955
|
+
const session = createTailwindV4EngineGenerationSession(source, options);
|
|
3864
3956
|
return {
|
|
3865
3957
|
source,
|
|
3866
3958
|
dispose() {
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { createRequire, findPackageJSON } from "node:module";
|
|
2
|
-
import { promises, readFileSync } from "node:fs";
|
|
3
2
|
import path from "node:path";
|
|
4
3
|
import process from "node:process";
|
|
5
4
|
import { createHash } from "node:crypto";
|
|
5
|
+
import { promises, readFileSync } from "node:fs";
|
|
6
6
|
import { fileURLToPath, pathToFileURL } from "node:url";
|
|
7
7
|
import { AsyncLocalStorage } from "node:async_hooks";
|
|
8
8
|
import { clearRequireCache } from "@tailwindcss/node/require-cache";
|
|
@@ -78,8 +78,14 @@ async function loadCachedModule(loader, file) {
|
|
|
78
78
|
const onDependency = (dependency) => {
|
|
79
79
|
dependencies.add(dependency);
|
|
80
80
|
};
|
|
81
|
-
let loaded
|
|
82
|
-
if (
|
|
81
|
+
let loaded;
|
|
82
|
+
if (path.extname(file) === ".cjs") {
|
|
83
|
+
loaded = { module: require(file) };
|
|
84
|
+
collectCommonJsDependencies(file, dependencies);
|
|
85
|
+
} else {
|
|
86
|
+
const initial = previous || !canUseCommonJsGraph(file) ? void 0 : await loader.loadModule(file, base, onDependency);
|
|
87
|
+
loaded = initial && collectCommonJsDependencies(file, dependencies) ? initial : await loader.loadModule(`./${path.basename(file)}`, base, onDependency);
|
|
88
|
+
}
|
|
83
89
|
const files = [...dependencies].sort();
|
|
84
90
|
return {
|
|
85
91
|
dependencies: files,
|
|
@@ -447,6 +453,37 @@ function resolveTailwindV4SourceBaseCandidates(projectRoot, base, baseFallbacks)
|
|
|
447
453
|
]);
|
|
448
454
|
}
|
|
449
455
|
//#endregion
|
|
456
|
+
//#region src/extraction/file-io.ts
|
|
457
|
+
const CANDIDATE_FILE_CONCURRENCY = 8;
|
|
458
|
+
let activeReads = 0;
|
|
459
|
+
let pendingOffset = 0;
|
|
460
|
+
const pendingReads = [];
|
|
461
|
+
/** 原始补扫、任意值补扫与位置报告共享读取预算,避免多生成请求耗尽文件描述符。 */
|
|
462
|
+
async function readCandidateFile(file) {
|
|
463
|
+
if (activeReads >= CANDIDATE_FILE_CONCURRENCY) await new Promise((resolve) => {
|
|
464
|
+
pendingReads.push(resolve);
|
|
465
|
+
});
|
|
466
|
+
else activeReads++;
|
|
467
|
+
try {
|
|
468
|
+
return await promises.readFile(file, "utf8");
|
|
469
|
+
} finally {
|
|
470
|
+
if (pendingOffset < pendingReads.length) {
|
|
471
|
+
const next = pendingReads[pendingOffset++];
|
|
472
|
+
if (pendingOffset === pendingReads.length) {
|
|
473
|
+
pendingReads.length = 0;
|
|
474
|
+
pendingOffset = 0;
|
|
475
|
+
}
|
|
476
|
+
next();
|
|
477
|
+
} else activeReads--;
|
|
478
|
+
}
|
|
479
|
+
}
|
|
480
|
+
/** 分批遍历避免为全部文件同时分配 Promise,输出沿用文件枚举顺序。 */
|
|
481
|
+
async function mapCandidateFiles(files, handle) {
|
|
482
|
+
const results = [];
|
|
483
|
+
for (let start = 0; start < files.length; start += CANDIDATE_FILE_CONCURRENCY) results.push(...await Promise.all(files.slice(start, start + CANDIDATE_FILE_CONCURRENCY).map(handle)));
|
|
484
|
+
return results;
|
|
485
|
+
}
|
|
486
|
+
//#endregion
|
|
450
487
|
//#region src/extraction/oxide.ts
|
|
451
488
|
let oxideImportPromise;
|
|
452
489
|
function createOxideRuntimeDependencyError(cause) {
|
|
@@ -570,7 +607,7 @@ async function extractProjectCandidatesWithPositions(options) {
|
|
|
570
607
|
const batchSize = 32;
|
|
571
608
|
for (let start = 0; start < files.length; start += batchSize) {
|
|
572
609
|
const batch = files.slice(start, start + batchSize);
|
|
573
|
-
const contents = await Promise.allSettled(batch.map(
|
|
610
|
+
const contents = await Promise.allSettled(batch.map(readCandidateFile));
|
|
574
611
|
for (const [index, file] of batch.entries()) {
|
|
575
612
|
const result = contents[index];
|
|
576
613
|
if (result.status === "rejected") {
|
|
@@ -3367,27 +3404,27 @@ async function extractRawCandidates(sources, options) {
|
|
|
3367
3404
|
if (cached) return [...cached.candidates];
|
|
3368
3405
|
const scannedCandidates = scanner.scan();
|
|
3369
3406
|
if (scannedCandidates.length === 0 && files.length > 0) {
|
|
3370
|
-
const changedContents = (await
|
|
3407
|
+
const changedContents = (await mapCandidateFiles(files, async (file) => {
|
|
3371
3408
|
try {
|
|
3372
3409
|
return {
|
|
3373
|
-
content: await
|
|
3410
|
+
content: await readCandidateFile(file),
|
|
3374
3411
|
extension: toExtension(file)
|
|
3375
3412
|
};
|
|
3376
3413
|
} catch {
|
|
3377
3414
|
return;
|
|
3378
3415
|
}
|
|
3379
|
-
}))
|
|
3416
|
+
})).filter((entry) => entry !== void 0);
|
|
3380
3417
|
scannedCandidates.push(...scanner.scanFiles(changedContents));
|
|
3381
3418
|
}
|
|
3382
3419
|
const candidates = new Set(scannedCandidates);
|
|
3383
|
-
if (options?.bareArbitraryValues !== void 0 && options.bareArbitraryValues !== false) await
|
|
3420
|
+
if (options?.bareArbitraryValues !== void 0 && options.bareArbitraryValues !== false) await mapCandidateFiles(files, async (file) => {
|
|
3384
3421
|
try {
|
|
3385
|
-
const content = await
|
|
3422
|
+
const content = await readCandidateFile(file);
|
|
3386
3423
|
const extension = toExtension(file);
|
|
3387
3424
|
const jsStringStaticRanges = JS_LIKE_SOURCE_EXTENSION_RE.test(extension) ? createJsStringStaticRanges(content) : void 0;
|
|
3388
3425
|
for (const candidate of extractBareArbitraryValueSourceCandidatesWithPositions(content, options.bareArbitraryValues)) if (shouldKeepSourceCandidate(content, extension, candidate, jsStringStaticRanges)) candidates.add(candidate.rawCandidate);
|
|
3389
3426
|
} catch {}
|
|
3390
|
-
})
|
|
3427
|
+
});
|
|
3391
3428
|
const result = [...candidates];
|
|
3392
3429
|
setRawCandidateCacheEntry(cacheKey, fingerprint, result);
|
|
3393
3430
|
return [...result];
|
|
@@ -3725,23 +3762,30 @@ async function collectRawCandidates(source, options, compiledRoot, compiledSourc
|
|
|
3725
3762
|
//#endregion
|
|
3726
3763
|
//#region src/v4/generation-session.ts
|
|
3727
3764
|
var TailwindGenerationSessionImpl = class {
|
|
3765
|
+
options;
|
|
3728
3766
|
currentSource;
|
|
3729
3767
|
runtimes = /* @__PURE__ */ new Map();
|
|
3730
|
-
|
|
3768
|
+
designSystems = /* @__PURE__ */ new Map();
|
|
3769
|
+
revision = 0;
|
|
3731
3770
|
disposed = false;
|
|
3732
3771
|
moduleDependencies = /* @__PURE__ */ new Set();
|
|
3733
|
-
constructor(source) {
|
|
3772
|
+
constructor(source, options = {}) {
|
|
3773
|
+
this.options = options;
|
|
3734
3774
|
this.currentSource = source;
|
|
3735
3775
|
}
|
|
3736
3776
|
get source() {
|
|
3737
3777
|
return this.currentSource;
|
|
3738
3778
|
}
|
|
3739
3779
|
async generate(request = {}) {
|
|
3780
|
+
const revision = this.revision;
|
|
3740
3781
|
const generated = await this.generateInternal(request);
|
|
3741
|
-
|
|
3782
|
+
this.assertRevision(revision);
|
|
3783
|
+
return cloneTailwindGenerationArtifact(createTailwindGenerationArtifact(generated.css, generated.source, request, generated.classSet, generated.rawCandidates, generated.dependencies));
|
|
3742
3784
|
}
|
|
3743
3785
|
async generateLegacy(options) {
|
|
3786
|
+
const revision = this.revision;
|
|
3744
3787
|
const generated = await this.generateInternal(toGenerationRequest(options));
|
|
3788
|
+
this.assertRevision(revision);
|
|
3745
3789
|
return {
|
|
3746
3790
|
css: generated.css,
|
|
3747
3791
|
classSet: generated.classSet,
|
|
@@ -3752,9 +3796,7 @@ var TailwindGenerationSessionImpl = class {
|
|
|
3752
3796
|
};
|
|
3753
3797
|
}
|
|
3754
3798
|
loadDesignSystem() {
|
|
3755
|
-
this.
|
|
3756
|
-
this.designSystemPromise ??= loadTailwindV4DesignSystem(this.currentSource, { cache: false });
|
|
3757
|
-
return this.designSystemPromise;
|
|
3799
|
+
return this.getDesignSystem(this.currentSource);
|
|
3758
3800
|
}
|
|
3759
3801
|
async validateCandidates(candidates) {
|
|
3760
3802
|
return resolveValidTailwindV4Candidates(await this.loadDesignSystem(), candidates);
|
|
@@ -3766,57 +3808,107 @@ var TailwindGenerationSessionImpl = class {
|
|
|
3766
3808
|
invalidateGenerationModuleCache();
|
|
3767
3809
|
this.moduleDependencies.clear();
|
|
3768
3810
|
this.runtimes.clear();
|
|
3769
|
-
this.
|
|
3811
|
+
this.designSystems.clear();
|
|
3812
|
+
this.revision += 1;
|
|
3770
3813
|
}
|
|
3771
3814
|
dispose() {
|
|
3772
3815
|
clearRequireCache([...this.moduleDependencies]);
|
|
3773
3816
|
this.moduleDependencies.clear();
|
|
3774
3817
|
this.runtimes.clear();
|
|
3775
|
-
this.
|
|
3818
|
+
this.designSystems.clear();
|
|
3819
|
+
this.revision += 1;
|
|
3776
3820
|
this.disposed = true;
|
|
3777
3821
|
}
|
|
3778
3822
|
assertActive() {
|
|
3779
3823
|
if (this.disposed) throw new Error("Tailwind generation session has been disposed.");
|
|
3780
3824
|
}
|
|
3781
|
-
|
|
3825
|
+
assertRevision(revision) {
|
|
3826
|
+
this.assertActive();
|
|
3827
|
+
if (revision !== this.revision) throw new Error("Tailwind generation session changed during generation.");
|
|
3828
|
+
}
|
|
3829
|
+
getDesignSystem(source) {
|
|
3830
|
+
this.assertActive();
|
|
3831
|
+
const cached = this.designSystems.get(source.css);
|
|
3832
|
+
if (cached) return cached;
|
|
3833
|
+
const revision = this.revision;
|
|
3834
|
+
const promise = loadTailwindV4DesignSystem(source, { cache: false }).then((designSystem) => {
|
|
3835
|
+
this.assertRevision(revision);
|
|
3836
|
+
return designSystem;
|
|
3837
|
+
});
|
|
3838
|
+
this.designSystems.set(source.css, promise);
|
|
3839
|
+
promise.catch(() => {
|
|
3840
|
+
if (this.designSystems.get(source.css) === promise) this.designSystems.delete(source.css);
|
|
3841
|
+
});
|
|
3842
|
+
return promise;
|
|
3843
|
+
}
|
|
3844
|
+
getRuntime(compileSourceEntries, previous) {
|
|
3782
3845
|
this.assertActive();
|
|
3783
3846
|
const cached = this.runtimes.get(compileSourceEntries);
|
|
3784
3847
|
if (cached) return cached;
|
|
3848
|
+
const revision = this.revision;
|
|
3785
3849
|
const source = compileSourceEntries ? this.currentSource : stripCompiledSourceEntries(this.currentSource);
|
|
3786
|
-
const
|
|
3787
|
-
|
|
3788
|
-
|
|
3789
|
-
designSystem
|
|
3790
|
-
|
|
3791
|
-
|
|
3850
|
+
const designSystemPromise = previous ? Promise.resolve(previous.designSystem) : this.getDesignSystem(source);
|
|
3851
|
+
const preparedSource = previous ? Promise.resolve(previous.source) : this.options.prepareSource ? designSystemPromise.then(async (designSystem) => {
|
|
3852
|
+
this.assertRevision(revision);
|
|
3853
|
+
const css = await this.options.prepareSource(source, designSystem);
|
|
3854
|
+
this.assertRevision(revision);
|
|
3855
|
+
return {
|
|
3856
|
+
...source,
|
|
3857
|
+
css
|
|
3858
|
+
};
|
|
3859
|
+
}) : Promise.resolve(source);
|
|
3860
|
+
const promise = Promise.all([preparedSource.then(async (prepared) => {
|
|
3861
|
+
this.assertRevision(revision);
|
|
3862
|
+
return {
|
|
3863
|
+
...await compileTailwindV4Source(prepared),
|
|
3864
|
+
source: prepared
|
|
3865
|
+
};
|
|
3866
|
+
}), designSystemPromise]).then(([compiledSource, designSystem]) => {
|
|
3867
|
+
this.assertRevision(revision);
|
|
3868
|
+
return {
|
|
3869
|
+
source: compiledSource.source,
|
|
3870
|
+
compiled: compiledSource.compiled,
|
|
3871
|
+
dependencies: compiledSource.dependencies,
|
|
3872
|
+
designSystem,
|
|
3873
|
+
builtCandidates: /* @__PURE__ */ new Set()
|
|
3874
|
+
};
|
|
3875
|
+
});
|
|
3792
3876
|
this.runtimes.set(compileSourceEntries, promise);
|
|
3793
3877
|
promise.catch(() => {
|
|
3794
3878
|
if (this.runtimes.get(compileSourceEntries) === promise) this.runtimes.delete(compileSourceEntries);
|
|
3795
3879
|
});
|
|
3796
3880
|
return promise;
|
|
3797
3881
|
}
|
|
3798
|
-
async resetRuntime(compileSourceEntries,
|
|
3882
|
+
async resetRuntime(compileSourceEntries, runtime) {
|
|
3799
3883
|
this.runtimes.delete(compileSourceEntries);
|
|
3800
|
-
return this.getRuntime(compileSourceEntries,
|
|
3884
|
+
return this.getRuntime(compileSourceEntries, runtime);
|
|
3801
3885
|
}
|
|
3802
3886
|
async generateInternal(request) {
|
|
3803
3887
|
this.assertActive();
|
|
3888
|
+
const revision = this.revision;
|
|
3889
|
+
const source = this.currentSource;
|
|
3804
3890
|
const options = toGenerateOptions(request);
|
|
3805
3891
|
const compileSourceEntries = shouldCompileSourceEntries(options);
|
|
3806
3892
|
let runtime = await this.getRuntime(compileSourceEntries);
|
|
3893
|
+
this.assertRevision(revision);
|
|
3807
3894
|
const sourceFiles = [];
|
|
3808
|
-
let rawCandidates = await collectRawCandidates(
|
|
3895
|
+
let rawCandidates = await collectRawCandidates(source, options, runtime.compiled.root, runtime.compiled.sources, (files) => sourceFiles.push(...files));
|
|
3896
|
+
this.assertRevision(revision);
|
|
3809
3897
|
if (request.prepareCandidates) rawCandidates = new Set(request.prepareCandidates(rawCandidates));
|
|
3810
3898
|
const classSet = resolveValidTailwindV4Candidates(runtime.designSystem, rawCandidates, { ...options.bareArbitraryValues === void 0 ? {} : { bareArbitraryValues: options.bareArbitraryValues } });
|
|
3811
|
-
const inlineSources = extractTailwindV4InlineSourceCandidates(
|
|
3899
|
+
const inlineSources = extractTailwindV4InlineSourceCandidates(source.css);
|
|
3812
3900
|
for (const candidate of inlineSources.excluded) classSet.delete(candidate);
|
|
3813
3901
|
const buildCandidates = new Set(canonicalizeBareArbitraryValueCandidates(classSet, options.bareArbitraryValues));
|
|
3814
|
-
if ([...runtime.builtCandidates].some((candidate) => !buildCandidates.has(candidate)))
|
|
3902
|
+
if ([...runtime.builtCandidates].some((candidate) => !buildCandidates.has(candidate))) {
|
|
3903
|
+
runtime = await this.resetRuntime(compileSourceEntries, runtime);
|
|
3904
|
+
this.assertRevision(revision);
|
|
3905
|
+
}
|
|
3815
3906
|
const css = replaceBareArbitraryValueSelectors(runtime.compiled.build([...buildCandidates]), classSet, options.bareArbitraryValues);
|
|
3816
3907
|
runtime.builtCandidates = new Set(buildCandidates);
|
|
3817
3908
|
for (const dependency of runtime.dependencies) this.moduleDependencies.add(dependency);
|
|
3818
3909
|
const dependencies = [.../* @__PURE__ */ new Set([...runtime.dependencies, ...sourceFiles])];
|
|
3819
3910
|
return {
|
|
3911
|
+
source,
|
|
3820
3912
|
css,
|
|
3821
3913
|
classSet,
|
|
3822
3914
|
rawCandidates,
|
|
@@ -3826,16 +3918,16 @@ var TailwindGenerationSessionImpl = class {
|
|
|
3826
3918
|
};
|
|
3827
3919
|
}
|
|
3828
3920
|
};
|
|
3829
|
-
function createTailwindGenerationSession(source) {
|
|
3830
|
-
return new TailwindGenerationSessionImpl(source);
|
|
3921
|
+
function createTailwindGenerationSession(source, options) {
|
|
3922
|
+
return new TailwindGenerationSessionImpl(source, options);
|
|
3831
3923
|
}
|
|
3832
|
-
function createTailwindV4EngineGenerationSession(source) {
|
|
3833
|
-
return new TailwindGenerationSessionImpl(source);
|
|
3924
|
+
function createTailwindV4EngineGenerationSession(source, options) {
|
|
3925
|
+
return new TailwindGenerationSessionImpl(source, options);
|
|
3834
3926
|
}
|
|
3835
3927
|
//#endregion
|
|
3836
3928
|
//#region src/v4/engine.ts
|
|
3837
|
-
function createTailwindV4Engine(source) {
|
|
3838
|
-
const session = createTailwindV4EngineGenerationSession(source);
|
|
3929
|
+
function createTailwindV4Engine(source, options) {
|
|
3930
|
+
const session = createTailwindV4EngineGenerationSession(source, options);
|
|
3839
3931
|
return {
|
|
3840
3932
|
source,
|
|
3841
3933
|
dispose() {
|
package/package.json
CHANGED
|
@@ -1,18 +1,18 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@weapp-tailwindcss/engine",
|
|
3
3
|
"type": "module",
|
|
4
|
-
"version": "0.1.
|
|
4
|
+
"version": "0.1.5",
|
|
5
5
|
"description": "Tailwind CSS 4 候选提取、源码扫描与样式生成引擎。",
|
|
6
6
|
"author": "ice breaker <1324318532@qq.com>",
|
|
7
7
|
"license": "MIT",
|
|
8
8
|
"homepage": "https://tw.weapp.dev",
|
|
9
9
|
"repository": {
|
|
10
10
|
"type": "git",
|
|
11
|
-
"url": "git+https://github.com/
|
|
11
|
+
"url": "git+https://github.com/weapp-tailwindcss/weapp-tailwindcss.git",
|
|
12
12
|
"directory": "packages/engine"
|
|
13
13
|
},
|
|
14
14
|
"bugs": {
|
|
15
|
-
"url": "https://github.com/
|
|
15
|
+
"url": "https://github.com/weapp-tailwindcss/weapp-tailwindcss/issues"
|
|
16
16
|
},
|
|
17
17
|
"keywords": [
|
|
18
18
|
"tailwindcss",
|
|
@@ -66,8 +66,8 @@
|
|
|
66
66
|
"dependencies": {
|
|
67
67
|
"@tailwindcss/node": "^4.3.3",
|
|
68
68
|
"@tailwindcss/oxide": "^4.3.3",
|
|
69
|
-
"@weapp-tailwindcss/source-scan": "0.1.
|
|
70
|
-
"postcss": "^8.5.
|
|
69
|
+
"@weapp-tailwindcss/source-scan": "0.1.2",
|
|
70
|
+
"postcss": "^8.5.29"
|
|
71
71
|
},
|
|
72
72
|
"devDependencies": {
|
|
73
73
|
"htmlparser2": "^12.0.0",
|