@jesscss/less-parser 2.0.0-alpha.12 → 2.0.0-alpha.13

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.
@@ -0,0 +1,478 @@
1
+ /**
2
+ * Less grammar reducer helpers, hoisted out of `less-parser/src/grammar.ts`.
3
+ *
4
+ * These are the module-private helpers the Less grammar's `node(...)` reducers
5
+ * call. They lived inside `grammar.ts` as free module scope, which is fine for a
6
+ * standalone `composeLeaf(...)` grammar but not for a COMPOSABLE delta: the
7
+ * parseman compose analyzer can only carry a reducer across a package boundary
8
+ * when every name the reducer reads has import provenance. A free module-private
9
+ * helper has none, so `compose([cssBaseRules, rules(lessDelta)])` refused them.
10
+ * Hoisting them into this importable module gives each one a resolvable import,
11
+ * and the analyzer re-emits those imports into the composing module.
12
+ *
13
+ * This is a pure code motion (B0-less): every body is byte-identical to its
14
+ * former in-grammar definition and the helpers keep calling each other exactly
15
+ * as before. These are Less's OWN helpers — promoting the ones that turn out
16
+ * byte-identical to the css/scss/jess helpers into the shared
17
+ * `@jesscss/core/ast` module is a separate, deferred dedup pass (guarded by the
18
+ * open-recursion rule: a helper is only shareable when its whole transitive
19
+ * helper-closure is identical too).
20
+ */
21
+ import type { FieldCapture, FieldMap, Span } from 'parseman';
22
+ import type { Any, AtRuleBlock, AtRuleStatement, CallArg, Combinator as SelectorCombinator, ComplexSelector, Declaration, ExtendInstruction, For, ForBinding, FunctionCall, If, Interpolation, Keyword, List, Lookup, MixinCall, MixinDefinition, Param, Quoted, Reference, Ruleset, SelectorBranch, SelectorList, SelectorTerm, SimpleSelector, SimpleToken, SourceSpan, Statement, StyleImport, Token, Url, ValueNode, ValueSlot, VariableDeclaration } from '@jesscss/core/ast';
23
+ type VarRef = Lookup & {
24
+ readonly name: string;
25
+ };
26
+ /** A `Lookup` whose target is named by a nested node — Less `@@name`. */
27
+ type IndirectRef = Lookup & {
28
+ readonly name: ValueNode;
29
+ };
30
+ type ChildContainer = {
31
+ readonly rules: readonly unknown[];
32
+ };
33
+ type InterpolationFact = {
34
+ readonly ref: ValueNode;
35
+ readonly src: string;
36
+ };
37
+ type InterpolationAccessorFact = {
38
+ readonly key: ValueNode | number;
39
+ readonly keyKind: 'var' | 'prop' | 'index';
40
+ readonly src: string;
41
+ };
42
+ /** A typed continuation of a left-associated public Reference chain. */
43
+ type ReferenceTailFact = {
44
+ readonly step: Reference['steps'][number];
45
+ readonly src: string;
46
+ };
47
+ type ComplexTailFact = {
48
+ readonly combinator: ' ' | '>' | '+' | '~' | '|' | '||';
49
+ readonly term: SelectorTerm;
50
+ };
51
+ type MixinPathSegmentFact = {
52
+ readonly combinator: ' ' | '>';
53
+ readonly selector: string;
54
+ };
55
+ type LessEachCallback = {
56
+ readonly binding: ForBinding;
57
+ readonly rules: Statement[];
58
+ };
59
+ type MixinGuard = NonNullable<MixinDefinition['guard']>;
60
+ type MixinCallArgument = MixinCall['args'][number];
61
+ /** One authored FUNCTION-call argument. The same {@link CallArg} a mixin-call
62
+ * argument is — `fade(@c, @amount: 50%)` and `.m(@amount: 50%)` are one
63
+ * construct in two callee positions. */
64
+ type LessCallArg = CallArg<ValueSlot>;
65
+ type CallValue = ValueSlot | MixinCall;
66
+ type MixinInteriorItem = {
67
+ readonly kind: 'binding';
68
+ readonly reference: VarRef;
69
+ readonly default?: CallValue;
70
+ readonly rest: boolean;
71
+ } | {
72
+ readonly kind: 'anonymous-rest';
73
+ } | {
74
+ readonly kind: 'positional';
75
+ readonly value: CallValue;
76
+ };
77
+ type MixinInteriorFact = {
78
+ readonly items: readonly MixinInteriorItem[];
79
+ readonly separators: readonly (',' | ';')[];
80
+ readonly trailingSeparator?: ',' | ';';
81
+ };
82
+ type MixinReferenceBaseFact = {
83
+ readonly call: MixinCall;
84
+ readonly raw: string;
85
+ };
86
+ type AttributeMatchFact = {
87
+ readonly operator: string;
88
+ readonly value: string;
89
+ readonly modifier: string | null;
90
+ };
91
+ type AttributeNameFact = {
92
+ readonly namespace: string;
93
+ readonly name: string;
94
+ };
95
+ type ExtendTargetFact = {
96
+ readonly target: SelectorList;
97
+ readonly partial: boolean;
98
+ };
99
+ type BodyExtendFact = {
100
+ readonly bodyExtensions: readonly ExtendInstruction[];
101
+ };
102
+ type SelectorBranchFact = {
103
+ readonly selector: SelectorBranch;
104
+ readonly extensions: readonly ExtendInstruction[];
105
+ };
106
+ type SelectorListWithExtendsFact = {
107
+ readonly selector: SelectorList;
108
+ readonly extensions: readonly ExtendInstruction[];
109
+ };
110
+ type MixinDefinitionFact = {
111
+ readonly params: readonly Param[];
112
+ readonly guard?: MixinGuard;
113
+ readonly rules: readonly Statement[];
114
+ readonly bodySpan?: SourceSpan;
115
+ };
116
+ type MixinCallFact = {
117
+ readonly args: readonly MixinCallArgument[];
118
+ readonly important: boolean;
119
+ };
120
+ type BareMixinCallFact = {
121
+ readonly important: boolean;
122
+ };
123
+ type MixinStatementFact = MixinDefinitionFact | MixinCallFact;
124
+ type RulesetTailFact = {
125
+ /** INLINE `:extend()` written on the first branch; its subject is that branch alone. */
126
+ readonly firstExtensions: readonly ExtendTargetFact[];
127
+ readonly branches: readonly SelectorBranchFact[];
128
+ readonly selectorEnd: number;
129
+ readonly guard?: MixinGuard;
130
+ readonly rules: readonly Statement[];
131
+ readonly extensions: readonly ExtendInstruction[];
132
+ readonly bodySpan?: SourceSpan;
133
+ readonly terminated?: true;
134
+ };
135
+ type CustomValuePart = string | InterpolationFact | Lookup | readonly CustomValuePart[];
136
+ type EnclosedNameFact = {
137
+ readonly name: string;
138
+ };
139
+ type FunctionConditionFact = {
140
+ readonly guard: MixinGuard;
141
+ readonly src: string;
142
+ readonly grouped: boolean;
143
+ readonly hasComparison: boolean;
144
+ /** The operand a BARE condition was built from, kept so a following comparison
145
+ * operator can reclaim it rather than unpick the {@link lessTruth} lowering. */
146
+ readonly bare?: ValueNode;
147
+ };
148
+ type UnsupportedVariableNameFact = {
149
+ readonly unsupportedVariableName: string;
150
+ };
151
+ type SlashBoundaryFact = {
152
+ readonly before: string;
153
+ readonly after: string;
154
+ };
155
+ declare function requireToken(value: unknown): Token;
156
+ declare function functionNameFromOpener(value: unknown): string;
157
+ declare function requireTerminalText(value: unknown): string;
158
+ declare function isUnsupportedVariableNameFact(value: unknown): value is UnsupportedVariableNameFact;
159
+ declare function hasChildren(value: unknown): value is ChildContainer;
160
+ declare function hasGrammarType(value: unknown, grammarType: string): boolean;
161
+ declare function variableNameTerminalText(value: unknown): string | undefined;
162
+ declare function unsupportedVariableNameFrom(value: unknown): string | undefined;
163
+ declare function variableNameText(value: unknown): string;
164
+ declare function requireSupportedVariableName(value: unknown, start: number, end: number): string;
165
+ declare function requireString(value: unknown): string;
166
+ declare function requireCombinator(value: unknown): SelectorCombinator;
167
+ declare function isLessTerminalText(value: unknown, text: string): boolean;
168
+ declare function requireField(fields: FieldMap | undefined, name: string): FieldCapture;
169
+ declare function requireFields(fields: FieldMap | undefined, name: string): readonly FieldCapture[];
170
+ /** Reassemble only grammar-produced terminal values; never slice or rescan input. */
171
+ declare function staticText(value: unknown): string;
172
+ declare function staticTextWithTriviaGaps(children: readonly unknown[], triviaLog: readonly number[]): string;
173
+ declare function isQuoted(value: unknown): value is Quoted;
174
+ declare function isInterp(value: unknown): value is Interpolation;
175
+ declare function isUrl(value: unknown): value is Url;
176
+ declare function isAny(value: unknown): value is Any;
177
+ declare function isStyleImport(value: unknown): value is StyleImport;
178
+ declare function isVarDeclaration(value: unknown): value is VariableDeclaration;
179
+ declare function isVarRef(value: unknown): value is VarRef;
180
+ declare function isVarIndirect(value: unknown): value is IndirectRef;
181
+ declare function isPropRef(value: unknown): value is VarRef;
182
+ declare function isReference(value: unknown): value is Reference;
183
+ declare function isInterpolationAccessorFact(value: unknown): value is InterpolationAccessorFact;
184
+ declare function requireInterpolationAccessorFact(value: unknown): InterpolationAccessorFact;
185
+ declare function referenceWithBracketLookups(base: ValueNode, raw: string, accessors: readonly unknown[]): ValueNode;
186
+ /** Source fallback for a grammar fact. This deliberately walks already
187
+ * reduced facts; it never inspects or re-parses source bytes. */
188
+ /** One authored call argument re-spelled, KEYWORD INCLUDED. A named argument
189
+ * whose name were dropped here would re-emit as a positional one — the same
190
+ * lossy re-derivation the node shape exists to prevent. */
191
+ declare function callArgumentSource(argument: MixinCallArgument): string;
192
+ declare function mixinArgumentSource(value: CallValue): string;
193
+ /**
194
+ * Fold only already-reduced grammar facts into a public Reference. In
195
+ * particular, this never re-reads the source to discover chain structure.
196
+ */
197
+ declare function referenceWithTails(base: ValueNode | MixinCall, baseRaw: string, tails: readonly unknown[]): Reference;
198
+ declare function isMixinInteriorItem(value: unknown): value is MixinInteriorItem;
199
+ declare function requireMixinInteriorItem(value: unknown): MixinInteriorItem;
200
+ declare function isReferenceTailFact(value: unknown): value is ReferenceTailFact;
201
+ declare function requireReferenceTailFact(value: unknown): ReferenceTailFact;
202
+ declare function isMixinReferenceBaseFact(value: unknown): value is MixinReferenceBaseFact;
203
+ declare function requireMixinReferenceBaseFact(value: unknown): MixinReferenceBaseFact;
204
+ declare function interpolationFactFromChildren(children: readonly unknown[], span: SourceSpan): InterpolationFact;
205
+ declare function appendInterpolationLiteral(parts: Interpolation['parts'], lit: string): void;
206
+ declare function appendEnclosedLiteral(parts: Interpolation['parts'], lit: string): void;
207
+ declare function enclosedInterpolationFromChildren(children: readonly unknown[]): Interpolation;
208
+ declare function isInterpolationFact(value: unknown): value is InterpolationFact;
209
+ declare function isSlashBoundaryFact(value: unknown): value is SlashBoundaryFact;
210
+ declare function requireInterpolationFact(value: unknown): InterpolationFact;
211
+ /** Fold grammar-owned interpolation facts, bare variable references, and literal
212
+ * tokens into canonical Interpolation parts. An optional `leading` literal seeds
213
+ * the run so quote openers stay attached to their following literal segment. */
214
+ declare function interpolationPartsFrom(children: readonly unknown[], unquote: boolean, leading?: string): Interpolation['parts'];
215
+ /** Reduce grammar-produced `separator` field captures into their terminal text. */
216
+ declare function separatorsFromFields(fields: FieldMap | undefined): string[];
217
+ declare function sourceFromState(state: unknown): string | undefined;
218
+ /**
219
+ * Does Less's configured `math:` policy compute THIS operator with no enclosing
220
+ * math context (§12.6b)?
221
+ *
222
+ * - `always` — every operator computes bare.
223
+ * - `parens-division` (Less's default) — everything but `/`, which stays a CSS
224
+ * separator until a paren or `calc(…)` says otherwise.
225
+ * - `parens` / `strict` — nothing computes bare.
226
+ *
227
+ * The answer is written onto `Operation.mathOutsideParens` and the evaluator
228
+ * reads the node. It is deliberately NOT handed to eval as a mode: a dialect
229
+ * difference is carried by what the lowered node says.
230
+ */
231
+ /**
232
+ * Restate one operand of a PRESERVED slash group as arithmetic that does not
233
+ * happen on its own.
234
+ *
235
+ * When the math policy keeps an authored top-level `/` as a slash rather than a
236
+ * division, the whole group is authored bytes — so a neighbouring `+` inside it
237
+ * must not fold either, or `4 / 2 + 5em` prints `4 / 7em`. That suppression
238
+ * used to live at eval, where `serialize.ts` re-entered the slot with
239
+ * `mathMode` forced to `'strict'`; it belongs here, because the shape that
240
+ * causes it is one the GRAMMAR recognised (§12.6b).
241
+ *
242
+ * Only the operation spine is restated. A parenthesized operand is a `Block`,
243
+ * not an `Operation`, and keeps its own math context — which is exactly why
244
+ * `(4px / 2) + 1px` still folds inside the parens.
245
+ */
246
+ declare function withoutBareMath(node: ValueNode): ValueNode;
247
+ declare function lessMathOutsideParens(state: unknown, operator: string): boolean;
248
+ declare const lessTriviaKindLabels: readonly ['whitespace', 'lineComment', 'blockComment'];
249
+ declare const LESS_NODE_TRIVIA_STRIDE = 4;
250
+ declare function lessTriviaEntryCount(triviaLog: readonly number[]): number;
251
+ declare function lessTriviaEntryStart(triviaLog: readonly number[], index: number): number;
252
+ declare function lessTriviaEntryEnd(triviaLog: readonly number[], index: number): number;
253
+ declare function lessTriviaEntryInsertIndex(triviaLog: readonly number[], index: number): number;
254
+ declare function lessTriviaEntryKind(triviaLog: readonly number[], index: number): typeof lessTriviaKindLabels[number] | undefined;
255
+ declare function lessTriviaEntryText(triviaLog: readonly number[], source: string, index: number): string;
256
+ declare function lessTriviaEntryHasLineBreak(triviaLog: readonly number[], source: string, index: number): boolean;
257
+ declare function triviaTextAtInsertIndex(triviaLog: readonly number[], state: unknown, insertIndex: number): string;
258
+ declare function rawLeafText(entry: unknown): string | undefined;
259
+ /** `sepBy`/`oneOrMoreSep` contribute their items and nothing else, so a list
260
+ * separator is absent from `children` and present in `rawChildren` — which is
261
+ * the array a trivia insert index has always addressed. Locate the k-th
262
+ * separator's `rawChildren` index by the exact text `field('separator')`
263
+ * captured, matched in source order, so trivia can be read against the array it
264
+ * is indexed against rather than against a `children` array that no longer
265
+ * advances in step with it. */
266
+ declare function separatorRawIndexes(rawChildren: readonly unknown[], separators: readonly string[]): number[];
267
+ /** Trivia around one separator: what sits before it, then the separator, then
268
+ * what sits between it and the item that follows. `rawIndex + 1` is that item —
269
+ * a `sepBy` separator is always followed immediately by one item entry. */
270
+ declare function separatorWithSurroundingTrivia(separator: string, rawIndex: number, triviaLog: readonly number[], state: unknown): string;
271
+ declare function functionSeparatorsFromFields(fields: FieldMap | undefined, rawChildren: readonly unknown[], triviaLog: readonly number[], state: unknown): string[];
272
+ declare function hasField(fields: FieldMap | undefined, name: string): boolean;
273
+ declare function commaListWithTriviaFromChildren<T extends ValueSlot>(children: readonly unknown[], fields: FieldMap | undefined, triviaLog: readonly number[], state: unknown, pick: (child: unknown) => child is T, rawChildren: readonly unknown[]): T | List;
274
+ declare function isGluedValueBoundary(child: unknown): boolean;
275
+ /** Shared value-term reduction for grammar branches that keep comments in
276
+ * Parseman's trivia log rather than as semantic `Comment` value nodes. */
277
+ declare function valuePieceReducerWithTrivia(children: readonly unknown[], triviaLog: readonly number[], state: unknown): ValueSlot;
278
+ /** A structural value child stays as-is; a grammar terminal becomes a keyword. */
279
+ declare function keywordOrValue(child: unknown): ValueNode;
280
+ declare function layoutFromTriviaBoundaries(children: readonly unknown[], triviaLog: readonly number[], state: unknown, pick: (child: unknown) => boolean): string[];
281
+ /** Space-join value/terminal children into a single Sequence. */
282
+ declare function spacedFromValueChildren(children: readonly unknown[], triviaLog?: readonly number[], state?: unknown): ValueNode;
283
+ declare function isComplexTailFact(value: unknown): value is ComplexTailFact;
284
+ /** Shared `optional(combinator) term` selector-tail reduction: the term
285
+ * and combinator sub-rules vary by selector family, but the fold to a
286
+ * `{ combinator, term }` fact is identical. */
287
+ declare function combinatorTailReducer(children: readonly unknown[]): ComplexTailFact;
288
+ /**
289
+ * Fold an inlined `CompoundSelector (combinator? CompoundSelector)*` child run
290
+ * into the `{ term }, { combinator, term }, …` segment list `selectorBranchOf`
291
+ * consumes. The combinator token is folded inline exactly as the CSS base does
292
+ * — there is no `ComplexTail` wrapper node — so the concrete tree converges to
293
+ * CSS's `ComplexSelector` shape. Recognition-only children (the `not(…)` guard
294
+ * lookaheads) contribute no term and reduce to the descendant default, so they
295
+ * never disturb the fold.
296
+ */
297
+ declare function complexSegmentsFrom(children: readonly unknown[]): [{
298
+ combinator?: SelectorCombinator;
299
+ term: SelectorTerm;
300
+ }, ...Array<{
301
+ combinator?: SelectorCombinator;
302
+ term: SelectorTerm;
303
+ }>];
304
+ /** Space-separated query clause reduction: keyword/value children join into a
305
+ * Sequence, and a single value collapses to itself. */
306
+ declare function queryClauseReducer(children: readonly unknown[], triviaLog?: readonly number[], state?: unknown): ValueNode;
307
+ declare function lessQueryComparisonOperators(children: readonly unknown[]): string[];
308
+ /** Turn grammar-owned custom-property leaves into a canonical value without a source scan. */
309
+ declare function customValueFromParts(parts: readonly CustomValuePart[]): ValueNode;
310
+ declare function customPartsFromChildren(children: readonly unknown[]): CustomValuePart[];
311
+ declare function isValueNode(value: unknown): value is ValueNode;
312
+ declare function lessValueSlot(value: ValueSlot): ValueSlot;
313
+ declare function isSequence(value: ValueSlot): value is Extract<ValueNode, {
314
+ type: 'Sequence';
315
+ }>;
316
+ declare function variableValueSlot(value: unknown): ValueSlot;
317
+ declare function isLessValueSlotValue(value: unknown): value is ValueSlot;
318
+ /** A reduced {@link LessCallArg}: an argument that carried a `@name:` keyword,
319
+ * as opposed to the bare value slot a positional argument reduces to. */
320
+ declare function isLessCallArg(value: unknown): value is LessCallArg;
321
+ declare function callWithLayout(name: string, args: Array<ValueSlot | LessCallArg>, separators: string[], hasTrailingSeparator: boolean, span: SourceSpan): FunctionCall;
322
+ /**
323
+ * The CONDITION an `if()` / `boolean()` / `not()` / `and()` / `or()` argument
324
+ * states, in Less's own terms.
325
+ *
326
+ * A structured {@link Condition} (the argument carried a comparison, `not(…)`
327
+ * or `and`/`or`) already IS a guard tree. Anything else is a bare operand, and
328
+ * Less's condition asks "is this literally the boolean `true`" — the same
329
+ * {@link lessTruth} rule `when (@x)` uses (§4.4.2). `"a"`, `red`, `0` and even
330
+ * the STRING `"true"` are all false under it.
331
+ */
332
+ declare function lessConditionGuard(arg: ValueSlot): MixinGuard;
333
+ /**
334
+ * Lower Less's `if()` / `boolean()` — SYNTAX wearing call parentheses, never
335
+ * functions (§4.5.3a) — into the jess constructs they mean:
336
+ *
337
+ * ```
338
+ * boolean(<cond>) -> $( <cond> ) an expression boundary
339
+ * not(<cond>) -> $( not(<cond>) ) the native operator
340
+ * and(<c>, <c>, …) -> $( (<c>) and (<c>) … ) the native operator
341
+ * or(<c>, <c>, …) -> $( (<c>) or (<c>) … ) the native operator
342
+ * if(<cond>, a, b) -> $if (<cond>) { a } $else { b } the VALUE-position $if
343
+ * ```
344
+ *
345
+ * Doing it HERE is the whole point. The condition is lowered by the grammar
346
+ * that knows the dialect, so nothing downstream needs to — core evaluates a
347
+ * guard tree that already means what `.less` meant, and the identical `.scss`
348
+ * spelling lowers to Sass's rule in its own grammar. A dialect switch in the
349
+ * evaluator would be the alternative, and there is no dialect in core.
350
+ *
351
+ * `not` / `and` / `or` land on the native logical operators (§4.5.5) rather than
352
+ * on `fns/` entries, which is the same ruling that puts them in this set at all.
353
+ */
354
+ declare function lowerLogicalCall(call: FunctionCall): ValueNode;
355
+ /**
356
+ * STATEMENT-position `if(<cond>, {…}, {…});` is the STATEMENT `$if`, not the
357
+ * value form (§4.5.3b, §4.5.6): its arms are rule bodies, so they attach as
358
+ * statements rather than producing a value.
359
+ *
360
+ * Only detached-ruleset arms qualify. `if(true, 1, 2);` returns a VALUE, which
361
+ * lessc 4.6.3 rejects outright ("Dimension node returned by a function is not
362
+ * valid here"); it stays an ordinary call statement rather than being forced
363
+ * into a shape it does not have.
364
+ */
365
+ declare function lowerLogicalCallStatement(call: FunctionCall): FunctionCall | If;
366
+ declare function functionCallFromChildren(children: readonly unknown[], fields: FieldMap | undefined, span: SourceSpan, triviaLog: readonly number[], state: unknown, rawChildren: readonly unknown[]): ValueNode;
367
+ /**
368
+ * The STATEMENT lane's call (`foo();`). {@link lowerLogicalCall} deliberately
369
+ * does not run here: `if(…)` / `boolean(…)` are VALUE-position syntax, and a
370
+ * bare `if(true, 1, 2);` statement is not that construct — lessc 4.6.3 rejects
371
+ * it outright, and the un-lowered call keeps it an ordinary unknown-call
372
+ * statement rather than a value node in a statement slot.
373
+ */
374
+ declare function argumentFunctionFromChildren(children: readonly unknown[], fields: FieldMap | undefined, span: SourceSpan): FunctionCall;
375
+ declare function requireValueSlot(value: unknown): ValueSlot;
376
+ declare function requireValueNode(value: unknown): ValueNode;
377
+ declare function requireKeyword(value: unknown): Keyword;
378
+ declare function requireMixinCallArgumentValue(value: unknown): MixinCallArgument['value'];
379
+ declare function isLessDeclaration(value: unknown): value is Declaration;
380
+ declare function isLessSelectorList(value: unknown): value is SelectorList;
381
+ declare function requireSelectorList(value: unknown): SelectorList;
382
+ declare function isComplex(value: unknown): value is ComplexSelector;
383
+ declare function isRelative(value: unknown): value is Extract<SelectorBranch, {
384
+ readonly type: 'RelativeSelector';
385
+ }>;
386
+ declare function isLessSelectorBranch(value: unknown): value is SelectorBranch;
387
+ declare const selectorBranchesFrom: (children: readonly unknown[]) => SelectorBranch[];
388
+ declare function lessBranchSegments(branch: SelectorBranch): [{
389
+ combinator?: SelectorCombinator;
390
+ term: SelectorTerm;
391
+ }, ...Array<{
392
+ combinator?: SelectorCombinator;
393
+ term: SelectorTerm;
394
+ }>];
395
+ type MixinPrefixSegment = {
396
+ readonly combinator: ' ' | '>';
397
+ readonly selector: string;
398
+ };
399
+ declare function mixinPrefixFromSelectorBranch(branch: SelectorBranch): readonly MixinPrefixSegment[] | null;
400
+ declare function mixinCallFromSelectorBranch(branch: SelectorBranch, args: readonly MixinCallArgument[], important: boolean, span: SourceSpan): MixinCall;
401
+ declare function mixinDefinitionNameFromSelectorBranch(branch: SelectorBranch): string;
402
+ declare function requiredTokenStart(rawChildren: readonly unknown[], value: string): number;
403
+ declare function hasRulesetTerminator(rawChildren: readonly unknown[]): boolean;
404
+ declare function isSelectorTerm(value: unknown): value is SelectorTerm;
405
+ declare function isSimpleSelector(value: unknown): value is SimpleSelector;
406
+ declare const STRUCTURED_PSEUDOS: Set<string>;
407
+ declare function isLessSimpleToken(value: unknown): value is SimpleToken;
408
+ declare const lessSelectorTermFromTokens: (tokens: readonly SimpleToken[]) => SelectorTerm;
409
+ declare function pseudoNameFromHead(head: string): string;
410
+ declare function staticSelectorPseudoFrom(head: string, arg: unknown): SimpleToken;
411
+ declare function staticNonSelectorPseudoFrom(head: string, arg: string | null): SimpleSelector;
412
+ declare function isRuleset(value: unknown): value is Ruleset;
413
+ declare function isAtRuleBlock(value: unknown): value is AtRuleBlock;
414
+ declare function isAtRuleStatement(value: unknown): value is AtRuleStatement;
415
+ declare function isMixinDefinition(value: unknown): value is MixinDefinition;
416
+ declare function isMixinCall(value: unknown): value is MixinCall;
417
+ declare function isReferenceCall(value: unknown): value is Reference;
418
+ declare function isParam(value: unknown): value is Param;
419
+ declare function isAttributeNameFact(value: unknown): value is AttributeNameFact;
420
+ declare function isExtendInstruction(value: unknown): value is ExtendInstruction;
421
+ declare function isExtendTargetFact(value: unknown): value is ExtendTargetFact;
422
+ declare function isBodyExtendFact(value: unknown): value is BodyExtendFact;
423
+ declare function isSelectorBranchFact(value: unknown): value is SelectorBranchFact;
424
+ declare function isSelectorListWithExtendsFact(value: unknown): value is SelectorListWithExtendsFact;
425
+ declare function isMixinDefinitionFact(value: unknown): value is MixinDefinitionFact;
426
+ declare function isMixinCallFact(value: unknown): value is MixinCallFact;
427
+ declare function isBareMixinCallFact(value: unknown): value is BareMixinCallFact;
428
+ declare function isRulesetTailFact(value: unknown): value is RulesetTailFact;
429
+ declare function requireSelectorListWithExtendsFact(value: unknown): SelectorListWithExtendsFact;
430
+ declare function isMixinPathTail(value: unknown): value is MixinPathSegmentFact;
431
+ declare function isMixinCallArgument(value: unknown): value is MixinCallArgument;
432
+ declare function isLessEachCallback(value: unknown): value is LessEachCallback;
433
+ declare function mixinArgumentsFromChildren(children: readonly unknown[]): MixinCallArgument[];
434
+ declare function mixinParamsFromInterior(interior: MixinInteriorFact): Param[];
435
+ declare function mixinCallArgumentFromInterior(item: MixinInteriorItem): MixinCallArgument;
436
+ declare function mixinCallArgsFromInterior(interior: MixinInteriorFact): MixinCallArgument[];
437
+ /**
438
+ * The LESS condition lowering (§4.4.2): `when (@x)` means `$if($x == true)`.
439
+ *
440
+ * Less's bare condition asks "is this literally the boolean `true`" — `0`,
441
+ * `"a"`, `red` and `"true"` are all false — which is a DIFFERENT question from
442
+ * `.jess`'s `$if($x)` (falsy iff `false` / `null` / `""` / `()`, §4.4). So the
443
+ * dialect states its own meaning in plain `.jess` here rather than sharing the
444
+ * truth node, which is what makes `.less` -> `.jess` -> `.css` reachable.
445
+ *
446
+ * `==` is load-bearing: with the loose `=` a `"true"` string would ground
447
+ * against `true` and come out TRUE, which Less says it is not.
448
+ */
449
+ declare function lessTruth(value: ValueSlot): MixinGuard;
450
+ /** {@link lessTruth} in `when` position — the same lowering, as a MATCH test
451
+ * (§4.2a), so a `when` tree contains no value-position assertion. `==` never
452
+ * raises, so this changes no answer; it keeps the invariant readable. */
453
+ declare function lessGuardTruth(value: ValueSlot): MixinGuard;
454
+ declare function isMixinGuard(value: unknown): value is MixinGuard;
455
+ declare function isDefaultGuardCall(value: FunctionCall): boolean;
456
+ declare function isFunctionConditionFact(value: unknown): value is FunctionConditionFact;
457
+ declare function guardOperatorText(value: unknown): string | null;
458
+ declare function foldMixinGuards(kind: 'and' | 'or', children: readonly unknown[]): MixinGuard;
459
+ declare function functionConditionSource(value: ValueSlot): string;
460
+ declare function foldFunctionCondition(kind: 'and' | 'or', children: readonly unknown[]): FunctionConditionFact;
461
+ declare function isStatement(value: unknown): value is Statement;
462
+ declare function requireStatementArray(value: unknown): Statement[];
463
+ declare function isFunctionCall(value: unknown): value is FunctionCall;
464
+ declare function isFor(value: unknown): value is For;
465
+ declare function requireRulesetBody(children: readonly unknown[]): Statement[];
466
+ /** Retain every callback body fact except an authored empty statement. */
467
+ declare function requireCallbackStatements(children: readonly unknown[]): Statement[];
468
+ /** Read a grammar-owned `{ … }` body without silently dropping non-body facts. */
469
+ declare function requireValueBlockBody(children: readonly unknown[]): Statement[];
470
+ /** Fold a grammar-produced flat binary chain left-to-right. Precedence is
471
+ * represented by which production supplies each operand; no source text is
472
+ * recovered or re-parsed here. Each folded pair records whether Less's
473
+ * configured `math:` policy computes it with no enclosing math context, so the
474
+ * evaluator never reads that policy from ambient config (§12.6b). */
475
+ declare function lessFoldOperation(children: readonly unknown[], _fields: FieldMap | undefined, _span: Span, rawChildren: readonly unknown[], _triviaLog: readonly number[], state: unknown): ValueNode;
476
+ export { LESS_NODE_TRIVIA_STRIDE, STRUCTURED_PSEUDOS, appendEnclosedLiteral, appendInterpolationLiteral, argumentFunctionFromChildren, lessBranchSegments, callArgumentSource, callWithLayout, combinatorTailReducer, commaListWithTriviaFromChildren, complexSegmentsFrom, customPartsFromChildren, customValueFromParts, enclosedInterpolationFromChildren, foldFunctionCondition, foldMixinGuards, lessFoldOperation, functionCallFromChildren, functionConditionSource, functionNameFromOpener, functionSeparatorsFromFields, guardOperatorText, hasChildren, hasField, hasGrammarType, hasRulesetTerminator, interpolationFactFromChildren, interpolationPartsFrom, isAny, isAtRuleBlock, isAtRuleStatement, isAttributeNameFact, isBareMixinCallFact, isBodyExtendFact, isComplex, isComplexTailFact, isLessDeclaration, isDefaultGuardCall, isExtendInstruction, isExtendTargetFact, isFor, isFunctionCall, isFunctionConditionFact, isGluedValueBoundary, isInterp, isInterpolationAccessorFact, isInterpolationFact, isLessCallArg, isLessEachCallback, isMixinCall, isMixinCallArgument, isMixinCallFact, isMixinDefinition, isMixinDefinitionFact, isMixinGuard, isMixinInteriorItem, isMixinPathTail, isMixinReferenceBaseFact, isParam, isPropRef, isQuoted, isReference, isReferenceCall, isReferenceTailFact, isRelative, isRuleset, isRulesetTailFact, isLessSelectorBranch, isSelectorBranchFact, isLessSelectorList, isSelectorListWithExtendsFact, isSelectorTerm, isSequence, isSimpleSelector, isLessSimpleToken, isSlashBoundaryFact, isStatement, isStyleImport, isLessTerminalText, isUnsupportedVariableNameFact, isUrl, isValueNode, isLessValueSlotValue, isVarDeclaration, isVarIndirect, isVarRef, keywordOrValue, layoutFromTriviaBoundaries, lessConditionGuard, lessGuardTruth, lessMathOutsideParens, lessTriviaEntryCount, lessTriviaEntryEnd, lessTriviaEntryHasLineBreak, lessTriviaEntryInsertIndex, lessTriviaEntryKind, lessTriviaEntryStart, lessTriviaEntryText, lessTriviaKindLabels, lessTruth, lowerLogicalCall, lowerLogicalCallStatement, mixinArgumentSource, mixinArgumentsFromChildren, mixinCallArgsFromInterior, mixinCallArgumentFromInterior, mixinCallFromSelectorBranch, mixinDefinitionNameFromSelectorBranch, mixinParamsFromInterior, mixinPrefixFromSelectorBranch, pseudoNameFromHead, queryClauseReducer, lessQueryComparisonOperators, rawLeafText, referenceWithBracketLookups, referenceWithTails, requireCallbackStatements, requireCombinator, requireField, requireFields, requireInterpolationAccessorFact, requireInterpolationFact, requireKeyword, requireMixinCallArgumentValue, requireMixinInteriorItem, requireMixinReferenceBaseFact, requireReferenceTailFact, requireRulesetBody, requireSelectorList, requireSelectorListWithExtendsFact, requireStatementArray, requireString, requireSupportedVariableName, requireTerminalText, requireToken, requireValueBlockBody, requireValueNode, requireValueSlot, requiredTokenStart, selectorBranchesFrom, lessSelectorTermFromTokens, separatorRawIndexes, separatorWithSurroundingTrivia, separatorsFromFields, sourceFromState, spacedFromValueChildren, staticNonSelectorPseudoFrom, staticSelectorPseudoFrom, staticText, staticTextWithTriviaGaps, triviaTextAtInsertIndex, unsupportedVariableNameFrom, valuePieceReducerWithTrivia, lessValueSlot, variableNameTerminalText, variableNameText, variableValueSlot, withoutBareMath };
477
+ export type { AttributeMatchFact, AttributeNameFact, BareMixinCallFact, BodyExtendFact, CallValue, ChildContainer, ComplexTailFact, CustomValuePart, EnclosedNameFact, ExtendTargetFact, FunctionConditionFact, IndirectRef, InterpolationAccessorFact, InterpolationFact, LessCallArg, LessEachCallback, MixinCallArgument, MixinCallFact, MixinDefinitionFact, MixinGuard, MixinInteriorFact, MixinInteriorItem, MixinPathSegmentFact, MixinPrefixSegment, MixinReferenceBaseFact, MixinStatementFact, ReferenceTailFact, RulesetTailFact, SelectorBranchFact, SelectorListWithExtendsFact, SlashBoundaryFact, UnsupportedVariableNameFact, VarRef };
478
+ //# sourceMappingURL=grammar-helpers.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"grammar-helpers.d.ts","sourceRoot":"","sources":["../src/grammar-helpers.ts"],"names":[],"mappings":"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"}
package/lib/grammar.d.ts CHANGED
@@ -1,8 +1,8 @@
1
- export declare const lessGrammar: Record<string, import("parseman").Runnable>;
1
+ export declare const lessGrammar: Record<string, import("parseman").FusedRule>;
2
2
  /** AST artifact with Parseman line/column tracking enabled. */
3
- export declare const lessPositionsGrammar: Record<string, import("parseman").Runnable>;
3
+ export declare const lessPositionsGrammar: Record<string, import("parseman").FusedRule>;
4
4
  /** Public Less CST artifact: the same grammar factory compiled in CST mode. */
5
- export declare const lessCstGrammar: Record<string, import("parseman").Runnable>;
5
+ export declare const lessCstGrammar: Record<string, import("parseman").FusedRule>;
6
6
  /** CST artifact with Parseman line/column tracking enabled. */
7
- export declare const lessCstPositionsGrammar: Record<string, import("parseman").Runnable>;
7
+ export declare const lessCstPositionsGrammar: Record<string, import("parseman").FusedRule>;
8
8
  //# sourceMappingURL=grammar.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"grammar.d.ts","sourceRoot":"","sources":["../src/grammar.ts"],"names":[],"mappings":"AA0qNA,eAAO,MAAM,WAAW,6CAA4L,CAAC;AAErN,+DAA+D;AAC/D,eAAO,MAAM,oBAAoB,6CAA8M,CAAC;AAEhP,+EAA+E;AAC/E,eAAO,MAAM,cAAc,6CAA6M,CAAC;AAEzO,+DAA+D;AAC/D,eAAO,MAAM,uBAAuB,6CAA+N,CAAC"}
1
+ {"version":3,"file":"grammar.d.ts","sourceRoot":"","sources":["../src/grammar.ts"],"names":[],"mappings":"AA4zJA,eAAO,MAAM,WAAW,8CAAgN,CAAC;AAEzO,+DAA+D;AAC/D,eAAO,MAAM,oBAAoB,8CAAkO,CAAC;AAEpQ,+EAA+E;AAC/E,eAAO,MAAM,cAAc,8CAAgN,CAAC;AAE5O,+DAA+D;AAC/D,eAAO,MAAM,uBAAuB,8CAAkO,CAAC"}
package/package.json CHANGED
@@ -4,9 +4,9 @@
4
4
  "publishConfig": {
5
5
  "access": "public"
6
6
  },
7
- "version": "2.0.0-alpha.12",
7
+ "version": "2.0.0-alpha.13",
8
8
  "engines": {
9
- "node": "^20.19.0 || >=22.18.0"
9
+ "node": "^20.19.0 || >=22.12.0"
10
10
  },
11
11
  "description": "Jess LESS parser",
12
12
  "main": "lib/index.cjs",
@@ -64,11 +64,11 @@
64
64
  ],
65
65
  "dependencies": {
66
66
  "known-css-properties": "~0.37.0",
67
- "@jesscss/css-parser": "2.0.0-alpha.12"
67
+ "@jesscss/css-parser": "2.0.0-alpha.13"
68
68
  },
69
69
  "peerDependencies": {
70
- "parseman": "^0.50.1",
71
- "@jesscss/core": "2.0.0-alpha.12"
70
+ "parseman": "^0.50.5",
71
+ "@jesscss/core": "2.0.0-alpha.13"
72
72
  },
73
73
  "peerDependenciesMeta": {
74
74
  "@jesscss/core": {
@@ -78,11 +78,11 @@
78
78
  "devDependencies": {
79
79
  "@types/node": "^18.19.31",
80
80
  "less": "^4.6.3",
81
- "parseman": "^0.50.1",
81
+ "parseman": "^0.50.5",
82
82
  "postcss-less": "~6.0.0",
83
83
  "tsx": "~4.21.0",
84
- "@jesscss/core": "2.0.0-alpha.12",
85
- "@jesscss/parser-shared": "2.0.0-alpha.12",
84
+ "@jesscss/core": "2.0.0-alpha.13",
85
+ "@jesscss/parser-shared": "2.0.0-alpha.13",
86
86
  "@jesscss/shared": "2.0.0-alpha.1"
87
87
  },
88
88
  "author": "Matthew Dean <matthew-dean@users.noreply.github.com>",