@weapp-tailwindcss/engine 0.1.0 → 0.1.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{index-BKLDGE3a.d.cts → index-BnvpPg0y.d.cts} +16 -13
- package/dist/{index-CJQBHKch.d.ts → index-CHGSHPWB.d.ts} +17 -14
- package/dist/index.cjs +64 -110
- package/dist/index.d.cts +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.js +12 -98
- package/dist/v4/index.cjs +50 -9
- package/dist/v4/index.d.cts +1 -1
- package/dist/v4/index.d.ts +1 -1
- package/dist/v4/index.js +1 -1
- package/dist/{v4-BdeIFyye.js → v4-Ct27rkAi.js} +369 -250
- package/dist/{v4-CUw9Iuc5.cjs → v4-_oyKsjgy.cjs} +375 -311
- package/package.json +2 -2
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { SourceEntry } from "@tailwindcss/oxide";
|
|
2
2
|
import { Root } from "postcss";
|
|
3
|
+
import { expandSourceEntries as expandTailwindV4SourceEntries, expandSourceEntryBraces as expandTailwindV4SourceEntryBraces, groupSourceEntriesByBase as groupTailwindV4SourceEntriesByBase, isFileExcludedByTailwindSourceEntries as isFileExcludedByTailwindV4SourceEntries, mergeSourceEntries as mergeTailwindV4SourceEntries, normalizeGlobPattern, resolveSourceScanPath, toPosixPath } from "@weapp-tailwindcss/source-scan";
|
|
3
4
|
//#region src/v4/bare-arbitrary-values/escape.d.ts
|
|
4
5
|
declare function escapeCssClassName(value: string): string;
|
|
5
6
|
//#endregion
|
|
@@ -76,6 +77,12 @@ interface SourceEntry$1 extends TailwindV4CandidateSource {
|
|
|
76
77
|
id: string;
|
|
77
78
|
}
|
|
78
79
|
interface GenerationRequest {
|
|
80
|
+
/** 使用当前编译会话解析的来源扫描,避免调用方预编译入口。 */
|
|
81
|
+
scanSources?: boolean | TailwindV4SourcePattern[];
|
|
82
|
+
/** 构建输出等明确不能作为输入的文件。 */
|
|
83
|
+
excludeFiles?: string[];
|
|
84
|
+
/** 平台适配器在验证候选之前归一化候选;不负责生成新来源。 */
|
|
85
|
+
prepareCandidates?: (candidates: Set<string>) => Iterable<string>;
|
|
79
86
|
candidates?: Iterable<string>;
|
|
80
87
|
sourceEntries?: SourceEntry$1[];
|
|
81
88
|
/**
|
|
@@ -119,6 +126,8 @@ interface TailwindGenerationSession {
|
|
|
119
126
|
}
|
|
120
127
|
interface TailwindV4StyleSource extends TailwindStyleSource {}
|
|
121
128
|
interface TailwindV4GenerateOptions {
|
|
129
|
+
/** 从候选扫描中排除的输出文件。 */
|
|
130
|
+
excludeFiles?: string[];
|
|
122
131
|
candidates?: Iterable<string>;
|
|
123
132
|
sources?: TailwindV4CandidateSource[];
|
|
124
133
|
/**
|
|
@@ -174,6 +183,8 @@ interface TailwindV4DesignSystem {
|
|
|
174
183
|
candidatesToCss: (candidates: string[]) => Array<string | null | undefined>;
|
|
175
184
|
}
|
|
176
185
|
interface TailwindV4Engine {
|
|
186
|
+
/** 释放内部生成会话;可选以兼容自定义引擎实现。 */
|
|
187
|
+
dispose?: () => void;
|
|
177
188
|
source: TailwindV4ResolvedSource;
|
|
178
189
|
loadDesignSystem: () => Promise<TailwindV4DesignSystem>;
|
|
179
190
|
validateCandidates: (candidates: Iterable<string>) => Promise<Set<string>>;
|
|
@@ -206,6 +217,9 @@ interface TailwindV4CompiledSource {
|
|
|
206
217
|
build: (candidates: string[]) => string;
|
|
207
218
|
}
|
|
208
219
|
interface TailwindV4NodeModule {
|
|
220
|
+
loadModule?: (id: string, base: string, onDependency: (dependency: string) => void) => Promise<{
|
|
221
|
+
module: unknown;
|
|
222
|
+
}>;
|
|
209
223
|
compile: (css: string, options: {
|
|
210
224
|
base: string;
|
|
211
225
|
onDependency: (dependency: string) => void;
|
|
@@ -226,34 +240,23 @@ declare function compileTailwindV4Source(source: TailwindV4ResolvedSource): Prom
|
|
|
226
240
|
}>;
|
|
227
241
|
//#endregion
|
|
228
242
|
//#region src/v4/source-scan/matcher.d.ts
|
|
229
|
-
declare function isFileExcludedByTailwindV4SourceEntries(file: string, entries: TailwindV4SourcePattern[] | undefined): boolean;
|
|
230
243
|
declare function isFileMatchedByTailwindV4SourceEntries(file: string, entries: TailwindV4SourcePattern[] | undefined): boolean;
|
|
231
244
|
declare function createTailwindV4SourceEntryMatcher(entries: TailwindV4SourcePattern[] | undefined): ((file: string) => boolean) | undefined;
|
|
232
245
|
declare function createTailwindV4SourceExclusionMatcher(entries: TailwindV4SourcePattern[] | undefined): ((file: string) => boolean) | undefined;
|
|
233
|
-
declare function groupTailwindV4SourceEntriesByBase(entries: TailwindV4SourcePattern[]): Map<string, TailwindV4SourcePattern[]>;
|
|
234
|
-
declare function expandTailwindV4SourceEntries(entries: TailwindV4SourcePattern[], resolveFiles: (options: {
|
|
235
|
-
cwd: string;
|
|
236
|
-
sources: TailwindV4SourcePattern[];
|
|
237
|
-
}) => Promise<string[]>): Promise<string[]>;
|
|
238
|
-
declare function mergeTailwindV4SourceEntries(...entries: Array<TailwindV4SourcePattern[] | undefined>): TailwindV4SourcePattern[];
|
|
239
246
|
//#endregion
|
|
240
247
|
//#region src/v4/source-scan/sources.d.ts
|
|
241
248
|
declare const TAILWIND_V4_IGNORED_CONTENT_DIRS: string[];
|
|
242
249
|
declare const TAILWIND_V4_IGNORED_EXTENSIONS: string[];
|
|
243
250
|
declare const TAILWIND_V4_IGNORED_FILES: string[];
|
|
244
251
|
declare const TAILWIND_V4_AUTO_SOURCE_SCAN_PATTERN = "**/*";
|
|
245
|
-
declare function toPosixPath(value: string): string;
|
|
246
|
-
declare function resolveSourceScanPath(value: string): string;
|
|
247
|
-
declare function normalizeGlobPattern(pattern: string): string;
|
|
248
252
|
declare function createTailwindV4DefaultIgnoreSources(base: string): TailwindV4SourcePattern[];
|
|
249
253
|
declare function createTailwindV4RootSources(root: TailwindV4CompiledSourceRoot, fallbackBase: string): TailwindV4SourcePattern[];
|
|
250
254
|
declare function createTailwindV4CompiledSourceEntries(root: TailwindV4CompiledSourceRoot, sources: TailwindV4SourcePattern[], fallbackBase: string): TailwindV4SourcePattern[];
|
|
251
|
-
declare function resolveTailwindV4SourceEntry(sourcePath: string, base: string, negated: boolean, defaultPattern?: string): Promise<
|
|
255
|
+
declare function resolveTailwindV4SourceEntry(sourcePath: string, base: string, negated: boolean, defaultPattern?: string): Promise<import("@weapp-tailwindcss/source-scan").TailwindSourceEntry>;
|
|
252
256
|
declare function normalizeTailwindV4SourceEntries(sources: TailwindV4SourcePattern[], options?: {
|
|
253
257
|
cwd?: string;
|
|
254
258
|
defaultPattern?: string;
|
|
255
|
-
}): Promise<
|
|
256
|
-
declare function expandTailwindV4SourceEntryBraces(sources: TailwindV4SourcePattern[]): TailwindV4SourcePattern[];
|
|
259
|
+
}): Promise<import("@weapp-tailwindcss/source-scan").TailwindSourceEntry[]>;
|
|
257
260
|
declare function normalizeTailwindV4ScannerSources(sources: TailwindV4SourcePattern[] | undefined, cwd: string, ignoredSources?: TailwindV4SourcePattern[]): SourceEntry[];
|
|
258
261
|
declare function resolveTailwindV4SourceBaseCandidates(projectRoot: string, base: string, baseFallbacks: string[]): string[];
|
|
259
262
|
//#endregion
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { expandSourceEntries as expandTailwindV4SourceEntries, expandSourceEntryBraces as expandTailwindV4SourceEntryBraces, groupSourceEntriesByBase as groupTailwindV4SourceEntriesByBase, isFileExcludedByTailwindSourceEntries as isFileExcludedByTailwindV4SourceEntries, mergeSourceEntries as mergeTailwindV4SourceEntries, normalizeGlobPattern, resolveSourceScanPath as resolveSourceScanPath$1, toPosixPath } from "@weapp-tailwindcss/source-scan";
|
|
1
2
|
import { Root } from "postcss";
|
|
2
3
|
import { SourceEntry } from "@tailwindcss/oxide";
|
|
3
4
|
//#region src/v4/bare-arbitrary-values/escape.d.ts
|
|
@@ -76,6 +77,12 @@ interface SourceEntry$1 extends TailwindV4CandidateSource {
|
|
|
76
77
|
id: string;
|
|
77
78
|
}
|
|
78
79
|
interface GenerationRequest {
|
|
80
|
+
/** 使用当前编译会话解析的来源扫描,避免调用方预编译入口。 */
|
|
81
|
+
scanSources?: boolean | TailwindV4SourcePattern[];
|
|
82
|
+
/** 构建输出等明确不能作为输入的文件。 */
|
|
83
|
+
excludeFiles?: string[];
|
|
84
|
+
/** 平台适配器在验证候选之前归一化候选;不负责生成新来源。 */
|
|
85
|
+
prepareCandidates?: (candidates: Set<string>) => Iterable<string>;
|
|
79
86
|
candidates?: Iterable<string>;
|
|
80
87
|
sourceEntries?: SourceEntry$1[];
|
|
81
88
|
/**
|
|
@@ -119,6 +126,8 @@ interface TailwindGenerationSession {
|
|
|
119
126
|
}
|
|
120
127
|
interface TailwindV4StyleSource extends TailwindStyleSource {}
|
|
121
128
|
interface TailwindV4GenerateOptions {
|
|
129
|
+
/** 从候选扫描中排除的输出文件。 */
|
|
130
|
+
excludeFiles?: string[];
|
|
122
131
|
candidates?: Iterable<string>;
|
|
123
132
|
sources?: TailwindV4CandidateSource[];
|
|
124
133
|
/**
|
|
@@ -174,6 +183,8 @@ interface TailwindV4DesignSystem {
|
|
|
174
183
|
candidatesToCss: (candidates: string[]) => Array<string | null | undefined>;
|
|
175
184
|
}
|
|
176
185
|
interface TailwindV4Engine {
|
|
186
|
+
/** 释放内部生成会话;可选以兼容自定义引擎实现。 */
|
|
187
|
+
dispose?: () => void;
|
|
177
188
|
source: TailwindV4ResolvedSource;
|
|
178
189
|
loadDesignSystem: () => Promise<TailwindV4DesignSystem>;
|
|
179
190
|
validateCandidates: (candidates: Iterable<string>) => Promise<Set<string>>;
|
|
@@ -206,6 +217,9 @@ interface TailwindV4CompiledSource {
|
|
|
206
217
|
build: (candidates: string[]) => string;
|
|
207
218
|
}
|
|
208
219
|
interface TailwindV4NodeModule {
|
|
220
|
+
loadModule?: (id: string, base: string, onDependency: (dependency: string) => void) => Promise<{
|
|
221
|
+
module: unknown;
|
|
222
|
+
}>;
|
|
209
223
|
compile: (css: string, options: {
|
|
210
224
|
base: string;
|
|
211
225
|
onDependency: (dependency: string) => void;
|
|
@@ -226,34 +240,23 @@ declare function compileTailwindV4Source(source: TailwindV4ResolvedSource): Prom
|
|
|
226
240
|
}>;
|
|
227
241
|
//#endregion
|
|
228
242
|
//#region src/v4/source-scan/matcher.d.ts
|
|
229
|
-
declare function isFileExcludedByTailwindV4SourceEntries(file: string, entries: TailwindV4SourcePattern[] | undefined): boolean;
|
|
230
243
|
declare function isFileMatchedByTailwindV4SourceEntries(file: string, entries: TailwindV4SourcePattern[] | undefined): boolean;
|
|
231
244
|
declare function createTailwindV4SourceEntryMatcher(entries: TailwindV4SourcePattern[] | undefined): ((file: string) => boolean) | undefined;
|
|
232
245
|
declare function createTailwindV4SourceExclusionMatcher(entries: TailwindV4SourcePattern[] | undefined): ((file: string) => boolean) | undefined;
|
|
233
|
-
declare function groupTailwindV4SourceEntriesByBase(entries: TailwindV4SourcePattern[]): Map<string, TailwindV4SourcePattern[]>;
|
|
234
|
-
declare function expandTailwindV4SourceEntries(entries: TailwindV4SourcePattern[], resolveFiles: (options: {
|
|
235
|
-
cwd: string;
|
|
236
|
-
sources: TailwindV4SourcePattern[];
|
|
237
|
-
}) => Promise<string[]>): Promise<string[]>;
|
|
238
|
-
declare function mergeTailwindV4SourceEntries(...entries: Array<TailwindV4SourcePattern[] | undefined>): TailwindV4SourcePattern[];
|
|
239
246
|
//#endregion
|
|
240
247
|
//#region src/v4/source-scan/sources.d.ts
|
|
241
248
|
declare const TAILWIND_V4_IGNORED_CONTENT_DIRS: string[];
|
|
242
249
|
declare const TAILWIND_V4_IGNORED_EXTENSIONS: string[];
|
|
243
250
|
declare const TAILWIND_V4_IGNORED_FILES: string[];
|
|
244
251
|
declare const TAILWIND_V4_AUTO_SOURCE_SCAN_PATTERN = "**/*";
|
|
245
|
-
declare function toPosixPath(value: string): string;
|
|
246
|
-
declare function resolveSourceScanPath(value: string): string;
|
|
247
|
-
declare function normalizeGlobPattern(pattern: string): string;
|
|
248
252
|
declare function createTailwindV4DefaultIgnoreSources(base: string): TailwindV4SourcePattern[];
|
|
249
253
|
declare function createTailwindV4RootSources(root: TailwindV4CompiledSourceRoot, fallbackBase: string): TailwindV4SourcePattern[];
|
|
250
254
|
declare function createTailwindV4CompiledSourceEntries(root: TailwindV4CompiledSourceRoot, sources: TailwindV4SourcePattern[], fallbackBase: string): TailwindV4SourcePattern[];
|
|
251
|
-
declare function resolveTailwindV4SourceEntry(sourcePath: string, base: string, negated: boolean, defaultPattern?: string): Promise<
|
|
255
|
+
declare function resolveTailwindV4SourceEntry(sourcePath: string, base: string, negated: boolean, defaultPattern?: string): Promise<import("@weapp-tailwindcss/source-scan").TailwindSourceEntry>;
|
|
252
256
|
declare function normalizeTailwindV4SourceEntries(sources: TailwindV4SourcePattern[], options?: {
|
|
253
257
|
cwd?: string;
|
|
254
258
|
defaultPattern?: string;
|
|
255
|
-
}): Promise<
|
|
256
|
-
declare function expandTailwindV4SourceEntryBraces(sources: TailwindV4SourcePattern[]): TailwindV4SourcePattern[];
|
|
259
|
+
}): Promise<import("@weapp-tailwindcss/source-scan").TailwindSourceEntry[]>;
|
|
257
260
|
declare function normalizeTailwindV4ScannerSources(sources: TailwindV4SourcePattern[] | undefined, cwd: string, ignoredSources?: TailwindV4SourcePattern[]): SourceEntry[];
|
|
258
261
|
declare function resolveTailwindV4SourceBaseCandidates(projectRoot: string, base: string, baseFallbacks: string[]): string[];
|
|
259
262
|
//#endregion
|
|
@@ -264,4 +267,4 @@ declare function resolveTailwindV4Source(options?: TailwindV4SourceOptions): Pro
|
|
|
264
267
|
declare function collectTailwindV4StyleCandidates(options: Pick<TailwindV4StyleGenerateOptions, 'bareArbitraryValues' | 'candidates' | 'sources'>): Promise<Set<string>>;
|
|
265
268
|
declare function generateTailwindV4Style(options?: TailwindV4StyleGenerateOptions): Promise<TailwindV4StyleGenerateResult>;
|
|
266
269
|
//#endregion
|
|
267
|
-
export { TailwindV4StyleGenerateOptions as $, createTailwindGenerationSession as A, SourceEntry$1 as B, isFileExcludedByTailwindV4SourceEntries as C, getTailwindV4DesignSystemCacheKey as D, compileTailwindV4Source as E, extractTailwindV4InlineSourceCandidates as F, TailwindV4CssSource as G, TailwindGenerationSession as H, CssFragment as I, TailwindV4GenerateOptions as J, TailwindV4DesignSystem as K, CssFragmentKind as L, canonicalizeBareArbitraryValueCandidates as M, replaceBareArbitraryValueSelectors as N, loadTailwindV4DesignSystem as O, resolveValidTailwindV4Candidates as P, TailwindV4SourcePattern as Q, GenerationChange as R, groupTailwindV4SourceEntriesByBase as S, mergeTailwindV4SourceEntries as T, TailwindV4CandidateSource as U, TailwindGenerationArtifact as V, TailwindV4CompiledSourceRoot as W, TailwindV4ResolvedSource as X, TailwindV4GenerateResult as Y, TailwindV4SourceOptions as Z, resolveTailwindV4SourceEntry as _, TAILWIND_V4_IGNORED_CONTENT_DIRS as a, isBareArbitraryValuesEnabled as at, createTailwindV4SourceExclusionMatcher as b, createTailwindV4CompiledSourceEntries as c, extractBareArbitraryValueSourceCandidatesWithPositions as ct, expandTailwindV4SourceEntryBraces as d, BareArbitraryValueSourceCandidate as dt, TailwindV4StyleGenerateResult as et, normalizeGlobPattern as f, escapeCssClassName as ft, resolveTailwindV4SourceBaseCandidates as g, resolveSourceScanPath as h, TAILWIND_V4_AUTO_SOURCE_SCAN_PATTERN as i, collectTailwindStyleCandidates as it, createTailwindV4Engine as j, loadTailwindV4NodeModule as k, createTailwindV4DefaultIgnoreSources as l, BareArbitraryValueOptions as lt, normalizeTailwindV4SourceEntries as m, generateTailwindV4Style as n, TailwindStyleCandidateOptions as nt, TAILWIND_V4_IGNORED_EXTENSIONS as o, resolveBareArbitraryValueCandidate as ot, normalizeTailwindV4ScannerSources as p, TailwindV4Engine as q, resolveTailwindV4Source as r, TailwindStyleSource as rt, TAILWIND_V4_IGNORED_FILES as s, extractBareArbitraryValueSourceCandidates as st, collectTailwindV4StyleCandidates as t, TailwindV4StyleSource as tt, createTailwindV4RootSources as u, BareArbitraryValueResolveResult as ut, toPosixPath as v, isFileMatchedByTailwindV4SourceEntries as w, expandTailwindV4SourceEntries as x, createTailwindV4SourceEntryMatcher as y, GenerationRequest as z };
|
|
270
|
+
export { TailwindV4StyleGenerateOptions as $, createTailwindGenerationSession as A, SourceEntry$1 as B, isFileExcludedByTailwindV4SourceEntries as C, getTailwindV4DesignSystemCacheKey as D, compileTailwindV4Source as E, extractTailwindV4InlineSourceCandidates as F, TailwindV4CssSource as G, TailwindGenerationSession as H, CssFragment as I, TailwindV4GenerateOptions as J, TailwindV4DesignSystem as K, CssFragmentKind as L, canonicalizeBareArbitraryValueCandidates as M, replaceBareArbitraryValueSelectors as N, loadTailwindV4DesignSystem as O, resolveValidTailwindV4Candidates as P, TailwindV4SourcePattern as Q, GenerationChange as R, groupTailwindV4SourceEntriesByBase as S, mergeTailwindV4SourceEntries as T, TailwindV4CandidateSource as U, TailwindGenerationArtifact as V, TailwindV4CompiledSourceRoot as W, TailwindV4ResolvedSource as X, TailwindV4GenerateResult as Y, TailwindV4SourceOptions as Z, resolveTailwindV4SourceEntry as _, TAILWIND_V4_IGNORED_CONTENT_DIRS as a, isBareArbitraryValuesEnabled as at, createTailwindV4SourceExclusionMatcher as b, createTailwindV4CompiledSourceEntries as c, extractBareArbitraryValueSourceCandidatesWithPositions as ct, expandTailwindV4SourceEntryBraces as d, BareArbitraryValueSourceCandidate as dt, TailwindV4StyleGenerateResult as et, normalizeGlobPattern as f, escapeCssClassName as ft, resolveTailwindV4SourceBaseCandidates as g, resolveSourceScanPath$1 as h, TAILWIND_V4_AUTO_SOURCE_SCAN_PATTERN as i, collectTailwindStyleCandidates as it, createTailwindV4Engine as j, loadTailwindV4NodeModule as k, createTailwindV4DefaultIgnoreSources as l, BareArbitraryValueOptions as lt, normalizeTailwindV4SourceEntries as m, generateTailwindV4Style as n, TailwindStyleCandidateOptions as nt, TAILWIND_V4_IGNORED_EXTENSIONS as o, resolveBareArbitraryValueCandidate as ot, normalizeTailwindV4ScannerSources as p, TailwindV4Engine as q, resolveTailwindV4Source as r, TailwindStyleSource as rt, TAILWIND_V4_IGNORED_FILES as s, extractBareArbitraryValueSourceCandidates as st, collectTailwindV4StyleCandidates as t, TailwindV4StyleSource as tt, createTailwindV4RootSources as u, BareArbitraryValueResolveResult as ut, toPosixPath as v, isFileMatchedByTailwindV4SourceEntries as w, expandTailwindV4SourceEntries as x, createTailwindV4SourceEntryMatcher as y, GenerationRequest as z };
|
package/dist/index.cjs
CHANGED
|
@@ -1,99 +1,13 @@
|
|
|
1
1
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
2
|
-
const require_v4 = require("./v4-
|
|
3
|
-
let node_fs = require("node:fs");
|
|
4
|
-
let node_path = require("node:path");
|
|
5
|
-
node_path = require_v4.__toESM(node_path, 1);
|
|
2
|
+
const require_v4 = require("./v4-_oyKsjgy.cjs");
|
|
6
3
|
let node_process = require("node:process");
|
|
7
4
|
node_process = require_v4.__toESM(node_process, 1);
|
|
8
|
-
|
|
9
|
-
async function resolveScannerSources(options) {
|
|
10
|
-
const cwd = options?.cwd ? node_path.default.resolve(options.cwd) : node_process.default.cwd();
|
|
11
|
-
if (options?.sources?.length || options?.css === void 0) return {
|
|
12
|
-
cwd,
|
|
13
|
-
sources: require_v4.normalizeTailwindV4ScannerSources(options?.sources, cwd, options?.ignoredSources)
|
|
14
|
-
};
|
|
15
|
-
const base = options.base ? node_path.default.resolve(options.base) : cwd;
|
|
16
|
-
const { compiled } = await require_v4.compileTailwindV4Source({
|
|
17
|
-
projectRoot: cwd,
|
|
18
|
-
base,
|
|
19
|
-
baseFallbacks: options.baseFallbacks?.map((baseFallback) => node_path.default.resolve(baseFallback)) ?? [],
|
|
20
|
-
css: options.css,
|
|
21
|
-
dependencies: []
|
|
22
|
-
});
|
|
23
|
-
return {
|
|
24
|
-
cwd,
|
|
25
|
-
sources: require_v4.normalizeTailwindV4ScannerSources(require_v4.createTailwindV4CompiledSourceEntries(compiled.root, compiled.sources, base), cwd, options.ignoredSources)
|
|
26
|
-
};
|
|
27
|
-
}
|
|
28
|
-
async function resolveProjectSourceFiles(options) {
|
|
29
|
-
const { sources } = await resolveScannerSources(options);
|
|
30
|
-
const { Scanner } = await require_v4.getOxideModule();
|
|
31
|
-
const files = new Scanner({ sources }).files ?? [];
|
|
32
|
-
return options?.filter ? files.filter(options.filter) : files;
|
|
33
|
-
}
|
|
34
|
-
async function extractProjectCandidatesWithPositions(options) {
|
|
35
|
-
const { cwd, sources } = await resolveScannerSources(options);
|
|
36
|
-
const { Scanner } = await require_v4.getOxideModule();
|
|
37
|
-
const scanner = new Scanner({ sources });
|
|
38
|
-
const files = scanner.files ?? [];
|
|
39
|
-
const entries = [];
|
|
40
|
-
const skipped = [];
|
|
41
|
-
for (const file of files) {
|
|
42
|
-
let content;
|
|
43
|
-
try {
|
|
44
|
-
content = await node_fs.promises.readFile(file, "utf8");
|
|
45
|
-
} catch (error) {
|
|
46
|
-
skipped.push({
|
|
47
|
-
file,
|
|
48
|
-
reason: error instanceof Error ? error.message : "Unknown error"
|
|
49
|
-
});
|
|
50
|
-
continue;
|
|
51
|
-
}
|
|
52
|
-
const extension = require_v4.toExtension(file);
|
|
53
|
-
const matches = scanner.getCandidatesWithPositions({
|
|
54
|
-
file,
|
|
55
|
-
content,
|
|
56
|
-
extension
|
|
57
|
-
});
|
|
58
|
-
if (!matches.length) continue;
|
|
59
|
-
const offsets = require_v4.buildLineOffsets(content);
|
|
60
|
-
for (const match of matches) entries.push(require_v4.createTokenLocation({
|
|
61
|
-
cwd,
|
|
62
|
-
file,
|
|
63
|
-
content,
|
|
64
|
-
extension,
|
|
65
|
-
candidate: match.candidate,
|
|
66
|
-
position: match.position,
|
|
67
|
-
offsets
|
|
68
|
-
}));
|
|
69
|
-
}
|
|
70
|
-
return {
|
|
71
|
-
entries,
|
|
72
|
-
filesScanned: files.length,
|
|
73
|
-
skippedFiles: skipped,
|
|
74
|
-
sources
|
|
75
|
-
};
|
|
76
|
-
}
|
|
77
|
-
function groupTokensByFile(report, options) {
|
|
78
|
-
const key = options?.key ?? "relative";
|
|
79
|
-
const stripAbsolute = options?.stripAbsolutePaths ?? key !== "absolute";
|
|
80
|
-
return report.entries.reduce((acc, entry) => {
|
|
81
|
-
const bucketKey = key === "absolute" ? entry.file : entry.relativeFile;
|
|
82
|
-
const bucket = acc[bucketKey] ?? (acc[bucketKey] = []);
|
|
83
|
-
const value = stripAbsolute ? {
|
|
84
|
-
...entry,
|
|
85
|
-
file: entry.relativeFile
|
|
86
|
-
} : entry;
|
|
87
|
-
bucket.push(value);
|
|
88
|
-
return acc;
|
|
89
|
-
}, {});
|
|
90
|
-
}
|
|
91
|
-
//#endregion
|
|
5
|
+
let _weapp_tailwindcss_source_scan = require("@weapp-tailwindcss/source-scan");
|
|
92
6
|
//#region src/extraction/candidate-extractor/valid.ts
|
|
93
|
-
const designSystemCandidateCache = /* @__PURE__ */ new
|
|
94
|
-
function createCandidateCacheKey(
|
|
95
|
-
if (options.bareArbitraryValues == null || options.bareArbitraryValues === false) return
|
|
96
|
-
return
|
|
7
|
+
const designSystemCandidateCache = /* @__PURE__ */ new WeakMap();
|
|
8
|
+
function createCandidateCacheKey(options) {
|
|
9
|
+
if (options.bareArbitraryValues == null || options.bareArbitraryValues === false) return "default";
|
|
10
|
+
return `bare-arbitrary:${JSON.stringify(options.bareArbitraryValues)}`;
|
|
97
11
|
}
|
|
98
12
|
async function extractValidCandidates(options) {
|
|
99
13
|
const providedOptions = options ?? {};
|
|
@@ -110,18 +24,18 @@ async function extractValidCandidates(options) {
|
|
|
110
24
|
pattern: source.pattern,
|
|
111
25
|
negated: source.negated
|
|
112
26
|
}));
|
|
113
|
-
const
|
|
27
|
+
const designSystem = await require_v4.loadTailwindV4DesignSystem({
|
|
114
28
|
projectRoot: defaultCwd,
|
|
115
29
|
base,
|
|
116
30
|
baseFallbacks,
|
|
117
31
|
css,
|
|
118
32
|
dependencies: []
|
|
119
|
-
};
|
|
120
|
-
const
|
|
121
|
-
const
|
|
122
|
-
|
|
123
|
-
const candidateCache =
|
|
124
|
-
|
|
33
|
+
});
|
|
34
|
+
const candidateCacheKey = createCandidateCacheKey(providedOptions);
|
|
35
|
+
const caches = designSystemCandidateCache.get(designSystem) ?? /* @__PURE__ */ new Map();
|
|
36
|
+
designSystemCandidateCache.set(designSystem, caches);
|
|
37
|
+
const candidateCache = caches.get(candidateCacheKey) ?? /* @__PURE__ */ new Map();
|
|
38
|
+
caches.set(candidateCacheKey, candidateCache);
|
|
125
39
|
const candidates = await require_v4.extractRawCandidates(sources, providedOptions.bareArbitraryValues === void 0 ? void 0 : { bareArbitraryValues: providedOptions.bareArbitraryValues });
|
|
126
40
|
const inlineSources = require_v4.extractTailwindV4InlineSourceCandidates(css);
|
|
127
41
|
for (const candidate of inlineSources.included) candidates.push(candidate);
|
|
@@ -234,11 +148,21 @@ exports.createTailwindV4RootSources = require_v4.createTailwindV4RootSources;
|
|
|
234
148
|
exports.createTailwindV4SourceEntryMatcher = require_v4.createTailwindV4SourceEntryMatcher;
|
|
235
149
|
exports.createTailwindV4SourceExclusionMatcher = require_v4.createTailwindV4SourceExclusionMatcher;
|
|
236
150
|
exports.escapeCssClassName = require_v4.escapeCssClassName;
|
|
237
|
-
exports
|
|
238
|
-
|
|
151
|
+
Object.defineProperty(exports, "expandTailwindV4SourceEntries", {
|
|
152
|
+
enumerable: true,
|
|
153
|
+
get: function() {
|
|
154
|
+
return _weapp_tailwindcss_source_scan.expandSourceEntries;
|
|
155
|
+
}
|
|
156
|
+
});
|
|
157
|
+
Object.defineProperty(exports, "expandTailwindV4SourceEntryBraces", {
|
|
158
|
+
enumerable: true,
|
|
159
|
+
get: function() {
|
|
160
|
+
return _weapp_tailwindcss_source_scan.expandSourceEntryBraces;
|
|
161
|
+
}
|
|
162
|
+
});
|
|
239
163
|
exports.extractBareArbitraryValueSourceCandidates = require_v4.extractBareArbitraryValueSourceCandidates;
|
|
240
164
|
exports.extractBareArbitraryValueSourceCandidatesWithPositions = require_v4.extractBareArbitraryValueSourceCandidatesWithPositions;
|
|
241
|
-
exports.extractProjectCandidatesWithPositions = extractProjectCandidatesWithPositions;
|
|
165
|
+
exports.extractProjectCandidatesWithPositions = require_v4.extractProjectCandidatesWithPositions;
|
|
242
166
|
exports.extractRawCandidates = require_v4.extractRawCandidates;
|
|
243
167
|
exports.extractRawCandidatesWithPositions = require_v4.extractRawCandidatesWithPositions;
|
|
244
168
|
exports.extractSourceCandidates = require_v4.extractSourceCandidates;
|
|
@@ -247,26 +171,56 @@ exports.extractTailwindV4InlineSourceCandidates = require_v4.extractTailwindV4In
|
|
|
247
171
|
exports.extractValidCandidates = extractValidCandidates;
|
|
248
172
|
exports.generateTailwindV4Style = require_v4.generateTailwindV4Style;
|
|
249
173
|
exports.getTailwindV4DesignSystemCacheKey = require_v4.getTailwindV4DesignSystemCacheKey;
|
|
250
|
-
exports
|
|
251
|
-
|
|
174
|
+
Object.defineProperty(exports, "groupTailwindV4SourceEntriesByBase", {
|
|
175
|
+
enumerable: true,
|
|
176
|
+
get: function() {
|
|
177
|
+
return _weapp_tailwindcss_source_scan.groupSourceEntriesByBase;
|
|
178
|
+
}
|
|
179
|
+
});
|
|
180
|
+
exports.groupTokensByFile = require_v4.groupTokensByFile;
|
|
252
181
|
exports.isBareArbitraryValuesEnabled = require_v4.isBareArbitraryValuesEnabled;
|
|
253
|
-
exports
|
|
182
|
+
Object.defineProperty(exports, "isFileExcludedByTailwindV4SourceEntries", {
|
|
183
|
+
enumerable: true,
|
|
184
|
+
get: function() {
|
|
185
|
+
return _weapp_tailwindcss_source_scan.isFileExcludedByTailwindSourceEntries;
|
|
186
|
+
}
|
|
187
|
+
});
|
|
254
188
|
exports.isFileMatchedByTailwindV4SourceEntries = require_v4.isFileMatchedByTailwindV4SourceEntries;
|
|
255
189
|
exports.isValidCandidateToken = isValidCandidateToken;
|
|
256
190
|
exports.loadTailwindV4DesignSystem = require_v4.loadTailwindV4DesignSystem;
|
|
257
191
|
exports.loadTailwindV4NodeModule = require_v4.loadTailwindV4NodeModule;
|
|
258
|
-
exports
|
|
259
|
-
|
|
192
|
+
Object.defineProperty(exports, "mergeTailwindV4SourceEntries", {
|
|
193
|
+
enumerable: true,
|
|
194
|
+
get: function() {
|
|
195
|
+
return _weapp_tailwindcss_source_scan.mergeSourceEntries;
|
|
196
|
+
}
|
|
197
|
+
});
|
|
198
|
+
Object.defineProperty(exports, "normalizeGlobPattern", {
|
|
199
|
+
enumerable: true,
|
|
200
|
+
get: function() {
|
|
201
|
+
return _weapp_tailwindcss_source_scan.normalizeGlobPattern;
|
|
202
|
+
}
|
|
203
|
+
});
|
|
260
204
|
exports.normalizeTailwindV4ScannerSources = require_v4.normalizeTailwindV4ScannerSources;
|
|
261
205
|
exports.normalizeTailwindV4SourceEntries = require_v4.normalizeTailwindV4SourceEntries;
|
|
262
206
|
exports.replaceBareArbitraryValueSelectors = require_v4.replaceBareArbitraryValueSelectors;
|
|
263
207
|
exports.resolveBareArbitraryValueCandidate = require_v4.resolveBareArbitraryValueCandidate;
|
|
264
|
-
exports.resolveProjectSourceFiles = resolveProjectSourceFiles;
|
|
265
|
-
exports
|
|
208
|
+
exports.resolveProjectSourceFiles = require_v4.resolveProjectSourceFiles;
|
|
209
|
+
Object.defineProperty(exports, "resolveSourceScanPath", {
|
|
210
|
+
enumerable: true,
|
|
211
|
+
get: function() {
|
|
212
|
+
return _weapp_tailwindcss_source_scan.resolveSourceScanPath;
|
|
213
|
+
}
|
|
214
|
+
});
|
|
266
215
|
exports.resolveTailwindV4Source = require_v4.resolveTailwindV4Source;
|
|
267
216
|
exports.resolveTailwindV4SourceBaseCandidates = require_v4.resolveTailwindV4SourceBaseCandidates;
|
|
268
217
|
exports.resolveTailwindV4SourceEntry = require_v4.resolveTailwindV4SourceEntry;
|
|
269
218
|
exports.resolveValidTailwindV4Candidates = require_v4.resolveValidTailwindV4Candidates;
|
|
270
219
|
exports.splitCandidateTokens = splitCandidateTokens;
|
|
271
|
-
exports
|
|
220
|
+
Object.defineProperty(exports, "toPosixPath", {
|
|
221
|
+
enumerable: true,
|
|
222
|
+
get: function() {
|
|
223
|
+
return _weapp_tailwindcss_source_scan.toPosixPath;
|
|
224
|
+
}
|
|
225
|
+
});
|
|
272
226
|
exports.validateCandidateTokenRE = validateCandidateTokenRE;
|
package/dist/index.d.cts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { $ as TailwindV4StyleGenerateOptions, A as createTailwindGenerationSession, B as SourceEntry, C as isFileExcludedByTailwindV4SourceEntries, D as getTailwindV4DesignSystemCacheKey, E as compileTailwindV4Source, F as extractTailwindV4InlineSourceCandidates, G as TailwindV4CssSource, H as TailwindGenerationSession, I as CssFragment, J as TailwindV4GenerateOptions, K as TailwindV4DesignSystem, L as CssFragmentKind, M as canonicalizeBareArbitraryValueCandidates, N as replaceBareArbitraryValueSelectors, O as loadTailwindV4DesignSystem, P as resolveValidTailwindV4Candidates, Q as TailwindV4SourcePattern, R as GenerationChange, S as groupTailwindV4SourceEntriesByBase, T as mergeTailwindV4SourceEntries, U as TailwindV4CandidateSource, V as TailwindGenerationArtifact, W as TailwindV4CompiledSourceRoot, X as TailwindV4ResolvedSource, Y as TailwindV4GenerateResult, Z as TailwindV4SourceOptions, _ as resolveTailwindV4SourceEntry, a as TAILWIND_V4_IGNORED_CONTENT_DIRS, at as isBareArbitraryValuesEnabled, b as createTailwindV4SourceExclusionMatcher, c as createTailwindV4CompiledSourceEntries, ct as extractBareArbitraryValueSourceCandidatesWithPositions, d as expandTailwindV4SourceEntryBraces, dt as BareArbitraryValueSourceCandidate, et as TailwindV4StyleGenerateResult, f as normalizeGlobPattern, ft as escapeCssClassName, g as resolveTailwindV4SourceBaseCandidates, h as resolveSourceScanPath, i as TAILWIND_V4_AUTO_SOURCE_SCAN_PATTERN, it as collectTailwindStyleCandidates, j as createTailwindV4Engine, k as loadTailwindV4NodeModule, l as createTailwindV4DefaultIgnoreSources, lt as BareArbitraryValueOptions, m as normalizeTailwindV4SourceEntries, n as generateTailwindV4Style, nt as TailwindStyleCandidateOptions, o as TAILWIND_V4_IGNORED_EXTENSIONS, ot as resolveBareArbitraryValueCandidate, p as normalizeTailwindV4ScannerSources, q as TailwindV4Engine, r as resolveTailwindV4Source, rt as TailwindStyleSource, s as TAILWIND_V4_IGNORED_FILES, st as extractBareArbitraryValueSourceCandidates, t as collectTailwindV4StyleCandidates, tt as TailwindV4StyleSource, u as createTailwindV4RootSources, ut as BareArbitraryValueResolveResult, v as toPosixPath, w as isFileMatchedByTailwindV4SourceEntries, x as expandTailwindV4SourceEntries, y as createTailwindV4SourceEntryMatcher, z as GenerationRequest } from "./index-
|
|
1
|
+
import { $ as TailwindV4StyleGenerateOptions, A as createTailwindGenerationSession, B as SourceEntry, C as isFileExcludedByTailwindV4SourceEntries, D as getTailwindV4DesignSystemCacheKey, E as compileTailwindV4Source, F as extractTailwindV4InlineSourceCandidates, G as TailwindV4CssSource, H as TailwindGenerationSession, I as CssFragment, J as TailwindV4GenerateOptions, K as TailwindV4DesignSystem, L as CssFragmentKind, M as canonicalizeBareArbitraryValueCandidates, N as replaceBareArbitraryValueSelectors, O as loadTailwindV4DesignSystem, P as resolveValidTailwindV4Candidates, Q as TailwindV4SourcePattern, R as GenerationChange, S as groupTailwindV4SourceEntriesByBase, T as mergeTailwindV4SourceEntries, U as TailwindV4CandidateSource, V as TailwindGenerationArtifact, W as TailwindV4CompiledSourceRoot, X as TailwindV4ResolvedSource, Y as TailwindV4GenerateResult, Z as TailwindV4SourceOptions, _ as resolveTailwindV4SourceEntry, a as TAILWIND_V4_IGNORED_CONTENT_DIRS, at as isBareArbitraryValuesEnabled, b as createTailwindV4SourceExclusionMatcher, c as createTailwindV4CompiledSourceEntries, ct as extractBareArbitraryValueSourceCandidatesWithPositions, d as expandTailwindV4SourceEntryBraces, dt as BareArbitraryValueSourceCandidate, et as TailwindV4StyleGenerateResult, f as normalizeGlobPattern, ft as escapeCssClassName, g as resolveTailwindV4SourceBaseCandidates, h as resolveSourceScanPath, i as TAILWIND_V4_AUTO_SOURCE_SCAN_PATTERN, it as collectTailwindStyleCandidates, j as createTailwindV4Engine, k as loadTailwindV4NodeModule, l as createTailwindV4DefaultIgnoreSources, lt as BareArbitraryValueOptions, m as normalizeTailwindV4SourceEntries, n as generateTailwindV4Style, nt as TailwindStyleCandidateOptions, o as TAILWIND_V4_IGNORED_EXTENSIONS, ot as resolveBareArbitraryValueCandidate, p as normalizeTailwindV4ScannerSources, q as TailwindV4Engine, r as resolveTailwindV4Source, rt as TailwindStyleSource, s as TAILWIND_V4_IGNORED_FILES, st as extractBareArbitraryValueSourceCandidates, t as collectTailwindV4StyleCandidates, tt as TailwindV4StyleSource, u as createTailwindV4RootSources, ut as BareArbitraryValueResolveResult, v as toPosixPath, w as isFileMatchedByTailwindV4SourceEntries, x as expandTailwindV4SourceEntries, y as createTailwindV4SourceEntryMatcher, z as GenerationRequest } from "./index-BnvpPg0y.cjs";
|
|
2
2
|
import { SourceEntry as SourceEntry$1 } from "@tailwindcss/oxide";
|
|
3
3
|
//#region src/types.d.ts
|
|
4
4
|
export interface TailwindTokenLocation {
|
package/dist/index.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { $ as TailwindV4StyleGenerateOptions, A as createTailwindGenerationSession, B as SourceEntry, C as isFileExcludedByTailwindV4SourceEntries, D as getTailwindV4DesignSystemCacheKey, E as compileTailwindV4Source, F as extractTailwindV4InlineSourceCandidates, G as TailwindV4CssSource, H as TailwindGenerationSession, I as CssFragment, J as TailwindV4GenerateOptions, K as TailwindV4DesignSystem, L as CssFragmentKind, M as canonicalizeBareArbitraryValueCandidates, N as replaceBareArbitraryValueSelectors, O as loadTailwindV4DesignSystem, P as resolveValidTailwindV4Candidates, Q as TailwindV4SourcePattern, R as GenerationChange, S as groupTailwindV4SourceEntriesByBase, T as mergeTailwindV4SourceEntries, U as TailwindV4CandidateSource, V as TailwindGenerationArtifact, W as TailwindV4CompiledSourceRoot, X as TailwindV4ResolvedSource, Y as TailwindV4GenerateResult, Z as TailwindV4SourceOptions, _ as resolveTailwindV4SourceEntry, a as TAILWIND_V4_IGNORED_CONTENT_DIRS, at as isBareArbitraryValuesEnabled, b as createTailwindV4SourceExclusionMatcher, c as createTailwindV4CompiledSourceEntries, ct as extractBareArbitraryValueSourceCandidatesWithPositions, d as expandTailwindV4SourceEntryBraces, dt as BareArbitraryValueSourceCandidate, et as TailwindV4StyleGenerateResult, f as normalizeGlobPattern, ft as escapeCssClassName, g as resolveTailwindV4SourceBaseCandidates, h as resolveSourceScanPath, i as TAILWIND_V4_AUTO_SOURCE_SCAN_PATTERN, it as collectTailwindStyleCandidates, j as createTailwindV4Engine, k as loadTailwindV4NodeModule, l as createTailwindV4DefaultIgnoreSources, lt as BareArbitraryValueOptions, m as normalizeTailwindV4SourceEntries, n as generateTailwindV4Style, nt as TailwindStyleCandidateOptions, o as TAILWIND_V4_IGNORED_EXTENSIONS, ot as resolveBareArbitraryValueCandidate, p as normalizeTailwindV4ScannerSources, q as TailwindV4Engine, r as resolveTailwindV4Source, rt as TailwindStyleSource, s as TAILWIND_V4_IGNORED_FILES, st as extractBareArbitraryValueSourceCandidates, t as collectTailwindV4StyleCandidates, tt as TailwindV4StyleSource, u as createTailwindV4RootSources, ut as BareArbitraryValueResolveResult, v as toPosixPath, w as isFileMatchedByTailwindV4SourceEntries, x as expandTailwindV4SourceEntries, y as createTailwindV4SourceEntryMatcher, z as GenerationRequest } from "./index-
|
|
1
|
+
import { $ as TailwindV4StyleGenerateOptions, A as createTailwindGenerationSession, B as SourceEntry, C as isFileExcludedByTailwindV4SourceEntries, D as getTailwindV4DesignSystemCacheKey, E as compileTailwindV4Source, F as extractTailwindV4InlineSourceCandidates, G as TailwindV4CssSource, H as TailwindGenerationSession, I as CssFragment, J as TailwindV4GenerateOptions, K as TailwindV4DesignSystem, L as CssFragmentKind, M as canonicalizeBareArbitraryValueCandidates, N as replaceBareArbitraryValueSelectors, O as loadTailwindV4DesignSystem, P as resolveValidTailwindV4Candidates, Q as TailwindV4SourcePattern, R as GenerationChange, S as groupTailwindV4SourceEntriesByBase, T as mergeTailwindV4SourceEntries, U as TailwindV4CandidateSource, V as TailwindGenerationArtifact, W as TailwindV4CompiledSourceRoot, X as TailwindV4ResolvedSource, Y as TailwindV4GenerateResult, Z as TailwindV4SourceOptions, _ as resolveTailwindV4SourceEntry, a as TAILWIND_V4_IGNORED_CONTENT_DIRS, at as isBareArbitraryValuesEnabled, b as createTailwindV4SourceExclusionMatcher, c as createTailwindV4CompiledSourceEntries, ct as extractBareArbitraryValueSourceCandidatesWithPositions, d as expandTailwindV4SourceEntryBraces, dt as BareArbitraryValueSourceCandidate, et as TailwindV4StyleGenerateResult, f as normalizeGlobPattern, ft as escapeCssClassName, g as resolveTailwindV4SourceBaseCandidates, h as resolveSourceScanPath, i as TAILWIND_V4_AUTO_SOURCE_SCAN_PATTERN, it as collectTailwindStyleCandidates, j as createTailwindV4Engine, k as loadTailwindV4NodeModule, l as createTailwindV4DefaultIgnoreSources, lt as BareArbitraryValueOptions, m as normalizeTailwindV4SourceEntries, n as generateTailwindV4Style, nt as TailwindStyleCandidateOptions, o as TAILWIND_V4_IGNORED_EXTENSIONS, ot as resolveBareArbitraryValueCandidate, p as normalizeTailwindV4ScannerSources, q as TailwindV4Engine, r as resolveTailwindV4Source, rt as TailwindStyleSource, s as TAILWIND_V4_IGNORED_FILES, st as extractBareArbitraryValueSourceCandidates, t as collectTailwindV4StyleCandidates, tt as TailwindV4StyleSource, u as createTailwindV4RootSources, ut as BareArbitraryValueResolveResult, v as toPosixPath, w as isFileMatchedByTailwindV4SourceEntries, x as expandTailwindV4SourceEntries, y as createTailwindV4SourceEntryMatcher, z as GenerationRequest } from "./index-CHGSHPWB.js";
|
|
2
2
|
import { SourceEntry as SourceEntry$1 } from "@tailwindcss/oxide";
|
|
3
3
|
//#region src/types.d.ts
|
|
4
4
|
export interface TailwindTokenLocation {
|
package/dist/index.js
CHANGED
|
@@ -1,96 +1,10 @@
|
|
|
1
|
-
import { A as
|
|
2
|
-
import { promises } from "node:fs";
|
|
3
|
-
import path from "node:path";
|
|
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-Ct27rkAi.js";
|
|
4
2
|
import process from "node:process";
|
|
5
|
-
//#region src/extraction/candidate-extractor/project.ts
|
|
6
|
-
async function resolveScannerSources(options) {
|
|
7
|
-
const cwd = options?.cwd ? path.resolve(options.cwd) : process.cwd();
|
|
8
|
-
if (options?.sources?.length || options?.css === void 0) return {
|
|
9
|
-
cwd,
|
|
10
|
-
sources: normalizeTailwindV4ScannerSources(options?.sources, cwd, options?.ignoredSources)
|
|
11
|
-
};
|
|
12
|
-
const base = options.base ? path.resolve(options.base) : cwd;
|
|
13
|
-
const { compiled } = await compileTailwindV4Source({
|
|
14
|
-
projectRoot: cwd,
|
|
15
|
-
base,
|
|
16
|
-
baseFallbacks: options.baseFallbacks?.map((baseFallback) => path.resolve(baseFallback)) ?? [],
|
|
17
|
-
css: options.css,
|
|
18
|
-
dependencies: []
|
|
19
|
-
});
|
|
20
|
-
return {
|
|
21
|
-
cwd,
|
|
22
|
-
sources: normalizeTailwindV4ScannerSources(createTailwindV4CompiledSourceEntries(compiled.root, compiled.sources, base), cwd, options.ignoredSources)
|
|
23
|
-
};
|
|
24
|
-
}
|
|
25
|
-
async function resolveProjectSourceFiles(options) {
|
|
26
|
-
const { sources } = await resolveScannerSources(options);
|
|
27
|
-
const { Scanner } = await getOxideModule();
|
|
28
|
-
const files = new Scanner({ sources }).files ?? [];
|
|
29
|
-
return options?.filter ? files.filter(options.filter) : files;
|
|
30
|
-
}
|
|
31
|
-
async function extractProjectCandidatesWithPositions(options) {
|
|
32
|
-
const { cwd, sources } = await resolveScannerSources(options);
|
|
33
|
-
const { Scanner } = await getOxideModule();
|
|
34
|
-
const scanner = new Scanner({ sources });
|
|
35
|
-
const files = scanner.files ?? [];
|
|
36
|
-
const entries = [];
|
|
37
|
-
const skipped = [];
|
|
38
|
-
for (const file of files) {
|
|
39
|
-
let content;
|
|
40
|
-
try {
|
|
41
|
-
content = await promises.readFile(file, "utf8");
|
|
42
|
-
} catch (error) {
|
|
43
|
-
skipped.push({
|
|
44
|
-
file,
|
|
45
|
-
reason: error instanceof Error ? error.message : "Unknown error"
|
|
46
|
-
});
|
|
47
|
-
continue;
|
|
48
|
-
}
|
|
49
|
-
const extension = toExtension(file);
|
|
50
|
-
const matches = scanner.getCandidatesWithPositions({
|
|
51
|
-
file,
|
|
52
|
-
content,
|
|
53
|
-
extension
|
|
54
|
-
});
|
|
55
|
-
if (!matches.length) continue;
|
|
56
|
-
const offsets = buildLineOffsets(content);
|
|
57
|
-
for (const match of matches) entries.push(createTokenLocation({
|
|
58
|
-
cwd,
|
|
59
|
-
file,
|
|
60
|
-
content,
|
|
61
|
-
extension,
|
|
62
|
-
candidate: match.candidate,
|
|
63
|
-
position: match.position,
|
|
64
|
-
offsets
|
|
65
|
-
}));
|
|
66
|
-
}
|
|
67
|
-
return {
|
|
68
|
-
entries,
|
|
69
|
-
filesScanned: files.length,
|
|
70
|
-
skippedFiles: skipped,
|
|
71
|
-
sources
|
|
72
|
-
};
|
|
73
|
-
}
|
|
74
|
-
function groupTokensByFile(report, options) {
|
|
75
|
-
const key = options?.key ?? "relative";
|
|
76
|
-
const stripAbsolute = options?.stripAbsolutePaths ?? key !== "absolute";
|
|
77
|
-
return report.entries.reduce((acc, entry) => {
|
|
78
|
-
const bucketKey = key === "absolute" ? entry.file : entry.relativeFile;
|
|
79
|
-
const bucket = acc[bucketKey] ?? (acc[bucketKey] = []);
|
|
80
|
-
const value = stripAbsolute ? {
|
|
81
|
-
...entry,
|
|
82
|
-
file: entry.relativeFile
|
|
83
|
-
} : entry;
|
|
84
|
-
bucket.push(value);
|
|
85
|
-
return acc;
|
|
86
|
-
}, {});
|
|
87
|
-
}
|
|
88
|
-
//#endregion
|
|
89
3
|
//#region src/extraction/candidate-extractor/valid.ts
|
|
90
|
-
const designSystemCandidateCache = /* @__PURE__ */ new
|
|
91
|
-
function createCandidateCacheKey(
|
|
92
|
-
if (options.bareArbitraryValues == null || options.bareArbitraryValues === false) return
|
|
93
|
-
return
|
|
4
|
+
const designSystemCandidateCache = /* @__PURE__ */ new WeakMap();
|
|
5
|
+
function createCandidateCacheKey(options) {
|
|
6
|
+
if (options.bareArbitraryValues == null || options.bareArbitraryValues === false) return "default";
|
|
7
|
+
return `bare-arbitrary:${JSON.stringify(options.bareArbitraryValues)}`;
|
|
94
8
|
}
|
|
95
9
|
async function extractValidCandidates(options) {
|
|
96
10
|
const providedOptions = options ?? {};
|
|
@@ -107,18 +21,18 @@ async function extractValidCandidates(options) {
|
|
|
107
21
|
pattern: source.pattern,
|
|
108
22
|
negated: source.negated
|
|
109
23
|
}));
|
|
110
|
-
const
|
|
24
|
+
const designSystem = await loadTailwindV4DesignSystem({
|
|
111
25
|
projectRoot: defaultCwd,
|
|
112
26
|
base,
|
|
113
27
|
baseFallbacks,
|
|
114
28
|
css,
|
|
115
29
|
dependencies: []
|
|
116
|
-
};
|
|
117
|
-
const
|
|
118
|
-
const
|
|
119
|
-
|
|
120
|
-
const candidateCache =
|
|
121
|
-
|
|
30
|
+
});
|
|
31
|
+
const candidateCacheKey = createCandidateCacheKey(providedOptions);
|
|
32
|
+
const caches = designSystemCandidateCache.get(designSystem) ?? /* @__PURE__ */ new Map();
|
|
33
|
+
designSystemCandidateCache.set(designSystem, caches);
|
|
34
|
+
const candidateCache = caches.get(candidateCacheKey) ?? /* @__PURE__ */ new Map();
|
|
35
|
+
caches.set(candidateCacheKey, candidateCache);
|
|
122
36
|
const candidates = await extractRawCandidates(sources, providedOptions.bareArbitraryValues === void 0 ? void 0 : { bareArbitraryValues: providedOptions.bareArbitraryValues });
|
|
123
37
|
const inlineSources = extractTailwindV4InlineSourceCandidates(css);
|
|
124
38
|
for (const candidate of inlineSources.included) candidates.push(candidate);
|