@jesscss/core 2.0.0-alpha.2 → 2.0.0-alpha.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 +3 -1
- package/lib/tree/ampersand.d.ts +4 -0
- package/lib/tree/ampersand.d.ts.map +1 -1
- package/lib/tree/ampersand.js +51 -1
- package/lib/tree/ampersand.js.map +1 -1
- package/lib/tree/any.d.ts +1 -1
- package/lib/tree/any.d.ts.map +1 -1
- package/lib/tree/any.js +5 -2
- package/lib/tree/any.js.map +1 -1
- package/lib/tree/bool.d.ts +1 -0
- package/lib/tree/bool.d.ts.map +1 -1
- package/lib/tree/bool.js +5 -1
- package/lib/tree/bool.js.map +1 -1
- package/lib/tree/color.d.ts.map +1 -1
- package/lib/tree/color.js +2 -2
- package/lib/tree/color.js.map +1 -1
- package/lib/tree/combinator.d.ts +1 -0
- package/lib/tree/combinator.d.ts.map +1 -1
- package/lib/tree/combinator.js +5 -1
- package/lib/tree/combinator.js.map +1 -1
- package/lib/tree/comment.d.ts.map +1 -1
- package/lib/tree/comment.js +2 -1
- package/lib/tree/comment.js.map +1 -1
- package/lib/tree/declaration-var.d.ts +0 -1
- package/lib/tree/declaration-var.d.ts.map +1 -1
- package/lib/tree/declaration-var.js +1 -1
- package/lib/tree/declaration-var.js.map +1 -1
- package/lib/tree/declaration.d.ts.map +1 -1
- package/lib/tree/declaration.js +5 -8
- package/lib/tree/declaration.js.map +1 -1
- package/lib/tree/dimension.d.ts +1 -0
- package/lib/tree/dimension.d.ts.map +1 -1
- package/lib/tree/dimension.js +5 -2
- package/lib/tree/dimension.js.map +1 -1
- package/lib/tree/expression.d.ts +1 -0
- package/lib/tree/expression.d.ts.map +1 -1
- package/lib/tree/expression.js +5 -1
- package/lib/tree/expression.js.map +1 -1
- package/lib/tree/extend-list.d.ts +2 -2
- package/lib/tree/extend-list.d.ts.map +1 -1
- package/lib/tree/extend-list.js +5 -2
- package/lib/tree/extend-list.js.map +1 -1
- package/lib/tree/extend.d.ts +2 -2
- package/lib/tree/extend.d.ts.map +1 -1
- package/lib/tree/extend.js +6 -2
- package/lib/tree/extend.js.map +1 -1
- package/lib/tree/import-style.d.ts.map +1 -1
- package/lib/tree/import-style.js +11 -1
- package/lib/tree/import-style.js.map +1 -1
- package/lib/tree/nil.d.ts +0 -1
- package/lib/tree/nil.d.ts.map +1 -1
- package/lib/tree/nil.js +2 -3
- package/lib/tree/nil.js.map +1 -1
- package/lib/tree/node-base.d.ts +2 -0
- package/lib/tree/node-base.d.ts.map +1 -1
- package/lib/tree/node-base.js +46 -0
- package/lib/tree/node-base.js.map +1 -1
- package/lib/tree/paren.d.ts +2 -1
- package/lib/tree/paren.d.ts.map +1 -1
- package/lib/tree/paren.js +7 -1
- package/lib/tree/paren.js.map +1 -1
- package/lib/tree/quoted.d.ts +2 -1
- package/lib/tree/quoted.d.ts.map +1 -1
- package/lib/tree/quoted.js +10 -1
- package/lib/tree/quoted.js.map +1 -1
- package/lib/tree/reference.d.ts.map +1 -1
- package/lib/tree/reference.js.map +1 -1
- package/lib/tree/rules.d.ts +7 -0
- package/lib/tree/rules.d.ts.map +1 -1
- package/lib/tree/rules.js +147 -81
- package/lib/tree/rules.js.map +1 -1
- package/lib/tree/ruleset.d.ts +1 -0
- package/lib/tree/ruleset.d.ts.map +1 -1
- package/lib/tree/ruleset.js +27 -5
- package/lib/tree/ruleset.js.map +1 -1
- package/lib/tree/selector-basic.d.ts +1 -0
- package/lib/tree/selector-basic.d.ts.map +1 -1
- package/lib/tree/selector-basic.js +5 -1
- package/lib/tree/selector-basic.js.map +1 -1
- package/lib/tree/selector-list.d.ts.map +1 -1
- package/lib/tree/selector-list.js +3 -13
- package/lib/tree/selector-list.js.map +1 -1
- package/lib/tree/selector-pseudo.d.ts.map +1 -1
- package/lib/tree/selector-pseudo.js +13 -0
- package/lib/tree/selector-pseudo.js.map +1 -1
- package/lib/tree/sequence.d.ts.map +1 -1
- package/lib/tree/sequence.js +4 -1
- package/lib/tree/sequence.js.map +1 -1
- package/lib/tree/util/extend-roots.d.ts.map +1 -1
- package/lib/tree/util/extend-roots.js +25 -7
- package/lib/tree/util/extend-roots.js.map +1 -1
- package/lib/tree/util/extend-walk.d.ts +53 -0
- package/lib/tree/util/extend-walk.d.ts.map +1 -0
- package/lib/tree/util/extend-walk.js +881 -0
- package/lib/tree/util/extend-walk.js.map +1 -0
- package/lib/tree/util/extend.d.ts.map +1 -1
- package/lib/tree/util/extend.js +160 -11
- package/lib/tree/util/extend.js.map +1 -1
- package/lib/tree/util/registry-utils.d.ts.map +1 -1
- package/lib/tree/util/registry-utils.js +13 -41
- package/lib/tree/util/registry-utils.js.map +1 -1
- package/lib/tree/util/selector-match-core.d.ts +13 -0
- package/lib/tree/util/selector-match-core.d.ts.map +1 -1
- package/lib/tree/util/selector-match-core.js +55 -30
- package/lib/tree/util/selector-match-core.js.map +1 -1
- package/package.json +4 -2
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"extend-walk.js","sourceRoot":"","sources":["../../../src/tree/util/extend-walk.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"extend.d.ts","sourceRoot":"","sources":["../../../src/tree/util/extend.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4GG;AAEH,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,KAAK,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAU/C,OAAO,EAA2B,KAAK,cAAc,EAAE,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"extend.d.ts","sourceRoot":"","sources":["../../../src/tree/util/extend.ts"],"names":[],"mappings":"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"}
|
package/lib/tree/util/extend.js
CHANGED
|
@@ -118,6 +118,7 @@ import { findExtendableLocations } from './extend-helpers.js';
|
|
|
118
118
|
import { normalizeSelectorForExtend } from './find-extendable-locations.js';
|
|
119
119
|
import { F_EXTENDED, F_EXTEND_TARGET, F_IMPLICIT_AMPERSAND, F_VISIBLE } from '../node.js';
|
|
120
120
|
import { selectorCompare } from './selector-compare.js';
|
|
121
|
+
import { canUseWalkAndConsume, walkAndExtend, extendWithNeedsConflictValidation } from './extend-walk.js';
|
|
121
122
|
const { isArray } = Array;
|
|
122
123
|
let extendOrderMap = null;
|
|
123
124
|
/** Fallback for clones: selectors inside :is() may be clones, so WeakMap lookup fails. Key by valueOf() string. */
|
|
@@ -129,6 +130,43 @@ export function setExtendOrderMap(map, orderByValueOf) {
|
|
|
129
130
|
function isSelectorNode(value) {
|
|
130
131
|
return !!value && typeof value === 'object' && value.isSelector === true;
|
|
131
132
|
}
|
|
133
|
+
/**
|
|
134
|
+
* Walk-and-consume eligibility check for extendSelector dispatch.
|
|
135
|
+
* Returns true only when the walk path is known to produce correct results.
|
|
136
|
+
*
|
|
137
|
+
* Currently very conservative: only handles the simplest cases where
|
|
138
|
+
* walk-and-consume is verified to produce identical output to the legacy path.
|
|
139
|
+
*/
|
|
140
|
+
function canUseWalkAndConsumeForExtend(target, find) {
|
|
141
|
+
// Walk-and-consume doesn't handle extendOrderMap (dead code, but guard anyway)
|
|
142
|
+
if (extendOrderMap) {
|
|
143
|
+
return false;
|
|
144
|
+
}
|
|
145
|
+
// ComplexSelector find is supported by the walk for diagnostics (wouldExtendChange)
|
|
146
|
+
// but not yet for the actual extend application — the downstream createProcessedSelector
|
|
147
|
+
// chain produces subtly different output. Restrict to Simple/Compound find for now.
|
|
148
|
+
if (!isNode(find, 'SimpleSelector') && !isNode(find, 'CompoundSelector')) {
|
|
149
|
+
return false;
|
|
150
|
+
}
|
|
151
|
+
if (!canUseWalkAndConsume(target, find)) {
|
|
152
|
+
return false;
|
|
153
|
+
}
|
|
154
|
+
return true;
|
|
155
|
+
}
|
|
156
|
+
/**
|
|
157
|
+
* Bridge: attempt walk-and-consume, return null to fall through to legacy path.
|
|
158
|
+
* Returns the extended selector, or null if walk couldn't handle it.
|
|
159
|
+
*/
|
|
160
|
+
function walkAndExtendForExtendSelector(target, find, extendWith, partial) {
|
|
161
|
+
const result = walkAndExtend(target, find, extendWith, partial);
|
|
162
|
+
// walkAndExtend returns the original target when no match is found.
|
|
163
|
+
// The legacy path throws ExtendError('NOT_FOUND') in that case.
|
|
164
|
+
// Return null to let the legacy path handle it (including the throw).
|
|
165
|
+
if (result === target) {
|
|
166
|
+
return null;
|
|
167
|
+
}
|
|
168
|
+
return result;
|
|
169
|
+
}
|
|
132
170
|
/**
|
|
133
171
|
* Error type constants for extend operations
|
|
134
172
|
*/
|
|
@@ -150,6 +188,9 @@ export class ExtendError extends Error {
|
|
|
150
188
|
}
|
|
151
189
|
}
|
|
152
190
|
export function applyExtendsToSelector(initialSelector, extendsList) {
|
|
191
|
+
if (extendsList.length === 0) {
|
|
192
|
+
return initialSelector;
|
|
193
|
+
}
|
|
153
194
|
let selector = initialSelector;
|
|
154
195
|
const instructions = extendsList.slice();
|
|
155
196
|
let changed = true;
|
|
@@ -161,6 +202,34 @@ export function applyExtendsToSelector(initialSelector, extendsList) {
|
|
|
161
202
|
continue;
|
|
162
203
|
}
|
|
163
204
|
const { target, extendWith, partial } = instruction;
|
|
205
|
+
// Batch all same-target non-partial instructions to avoid O(N²) growing-list
|
|
206
|
+
// scans. Common in Bootstrap-style code where many selectors extend the same base.
|
|
207
|
+
if (!partial && i + 1 < instructions.length) {
|
|
208
|
+
const targetVal = target.valueOf();
|
|
209
|
+
const batchExtendWiths = [extendWith];
|
|
210
|
+
const batchIndices = [i];
|
|
211
|
+
for (let j = i + 1; j < instructions.length; j++) {
|
|
212
|
+
const next = instructions[j];
|
|
213
|
+
if (!next.partial && next.target.valueOf() === targetVal) {
|
|
214
|
+
batchExtendWiths.push(next.extendWith);
|
|
215
|
+
batchIndices.push(j);
|
|
216
|
+
}
|
|
217
|
+
}
|
|
218
|
+
if (batchExtendWiths.length > 1) {
|
|
219
|
+
const batched = applyBatchedExtend(selector, target, batchExtendWiths);
|
|
220
|
+
if (batched !== null && batched.valueOf() !== selector.valueOf()) {
|
|
221
|
+
selector = batched;
|
|
222
|
+
for (let k = batchIndices.length - 1; k >= 0; k--) {
|
|
223
|
+
instructions.splice(batchIndices[k], 1);
|
|
224
|
+
}
|
|
225
|
+
changed = true;
|
|
226
|
+
break;
|
|
227
|
+
}
|
|
228
|
+
// No match — skip over all instructions in this batch group
|
|
229
|
+
i = batchIndices[batchIndices.length - 1];
|
|
230
|
+
continue;
|
|
231
|
+
}
|
|
232
|
+
}
|
|
164
233
|
const result = tryExtendSelector(selector, target, extendWith, partial);
|
|
165
234
|
if (result && !result.error) {
|
|
166
235
|
const beforeValue = selector.valueOf();
|
|
@@ -176,6 +245,69 @@ export function applyExtendsToSelector(initialSelector, extendsList) {
|
|
|
176
245
|
}
|
|
177
246
|
return selector;
|
|
178
247
|
}
|
|
248
|
+
/**
|
|
249
|
+
* Fast-path for applying multiple non-partial extensions of the SAME target in one pass.
|
|
250
|
+
*
|
|
251
|
+
* For a SelectorList target with a SimpleSelector find, this avoids the O(N²) pattern
|
|
252
|
+
* where each sequential tryExtendSelector call scans a growing SelectorList.
|
|
253
|
+
*
|
|
254
|
+
* Returns null if the target is not found (no change), or the new selector if extensions
|
|
255
|
+
* were applied.
|
|
256
|
+
*
|
|
257
|
+
* Falls back to sequential application for complex cases (ComplexSelector find, partial
|
|
258
|
+
* extends, non-SelectorList targets).
|
|
259
|
+
*/
|
|
260
|
+
function applyBatchedExtend(selector, find, extendWithList) {
|
|
261
|
+
// Fast path: non-partial SelectorList with a SimpleSelector find.
|
|
262
|
+
// One scan to find all matching items, then append all extendWiths at once.
|
|
263
|
+
if (isNode(selector, 'SelectorList') && isNode(find, 'SimpleSelector')) {
|
|
264
|
+
const searchResult = findExtendableLocations(selector, find);
|
|
265
|
+
if (!searchResult.hasMatches) {
|
|
266
|
+
return null;
|
|
267
|
+
}
|
|
268
|
+
const originalItems = [];
|
|
269
|
+
const newItems = [];
|
|
270
|
+
let anyWholeMatch = false;
|
|
271
|
+
for (const item of selector.value) {
|
|
272
|
+
const sItem = item;
|
|
273
|
+
const itemCompare = selectorCompare(sItem, find);
|
|
274
|
+
if (!itemCompare.hasWholeMatch) {
|
|
275
|
+
originalItems.push(sItem);
|
|
276
|
+
continue;
|
|
277
|
+
}
|
|
278
|
+
anyWholeMatch = true;
|
|
279
|
+
const c = sItem.clone(true);
|
|
280
|
+
c.addFlag(F_EXTENDED);
|
|
281
|
+
originalItems.push(c);
|
|
282
|
+
const itemVal = sItem.valueOf();
|
|
283
|
+
for (const extendWith of extendWithList) {
|
|
284
|
+
if (extendWith.valueOf() !== itemVal) {
|
|
285
|
+
const ext = extendWith.clone(true);
|
|
286
|
+
ext.addFlag(F_EXTENDED);
|
|
287
|
+
newItems.push(ext);
|
|
288
|
+
}
|
|
289
|
+
}
|
|
290
|
+
}
|
|
291
|
+
if (!anyWholeMatch || newItems.length === 0) {
|
|
292
|
+
return null;
|
|
293
|
+
}
|
|
294
|
+
const processed = createProcessedSelector([...originalItems, ...newItems], true);
|
|
295
|
+
const processedArray = isArray(processed) ? processed : [processed];
|
|
296
|
+
return SelectorList.create(processedArray).inherit(selector);
|
|
297
|
+
}
|
|
298
|
+
// Generic fallback: apply each extendWith sequentially.
|
|
299
|
+
// This still avoids the per-restart-from-zero overhead by not using the while-loop restart.
|
|
300
|
+
let result = selector;
|
|
301
|
+
let anyChanged = false;
|
|
302
|
+
for (const extendWith of extendWithList) {
|
|
303
|
+
const single = tryExtendSelector(result, find, extendWith, false);
|
|
304
|
+
if (!single.error && single.value.valueOf() !== result.valueOf()) {
|
|
305
|
+
result = single.value;
|
|
306
|
+
anyChanged = true;
|
|
307
|
+
}
|
|
308
|
+
}
|
|
309
|
+
return anyChanged ? result : null;
|
|
310
|
+
}
|
|
179
311
|
/**
|
|
180
312
|
* Helper to create successful extend results
|
|
181
313
|
*/
|
|
@@ -357,6 +489,7 @@ export function createProcessedSelector(selectors, root) {
|
|
|
357
489
|
if (extendOrderMap && flattened.length >= 2 && extendOrderByValueOf) {
|
|
358
490
|
const orderMap = extendOrderMap;
|
|
359
491
|
const orderByValue = extendOrderByValueOf;
|
|
492
|
+
const NO_ORDER = 999999;
|
|
360
493
|
const orderFor = (s) => {
|
|
361
494
|
const fromMap = orderMap.get(s);
|
|
362
495
|
if (fromMap !== undefined) {
|
|
@@ -370,25 +503,29 @@ export function createProcessedSelector(selectors, root) {
|
|
|
370
503
|
order = orderByValue.get(lastPart);
|
|
371
504
|
}
|
|
372
505
|
}
|
|
373
|
-
return order ??
|
|
506
|
+
return order ?? NO_ORDER;
|
|
374
507
|
};
|
|
375
|
-
|
|
376
|
-
|
|
377
|
-
|
|
378
|
-
|
|
379
|
-
|
|
380
|
-
|
|
381
|
-
if (
|
|
508
|
+
// Pre-compute order keys once — calling orderFor inside the comparator causes
|
|
509
|
+
// repeated valueOf()/split() on every comparison step (O(N log N) × valueOf cost).
|
|
510
|
+
const withKeys = flattened.map(s => ({ s, o: orderFor(s) }));
|
|
511
|
+
const hasOrder = withKeys.filter(x => x.o !== NO_ORDER);
|
|
512
|
+
if (hasOrder.length >= 2) {
|
|
513
|
+
withKeys.sort((a, b) => {
|
|
514
|
+
if (a.o === NO_ORDER && b.o === NO_ORDER) {
|
|
382
515
|
return 0;
|
|
383
516
|
}
|
|
384
|
-
if (
|
|
517
|
+
if (a.o === NO_ORDER) {
|
|
385
518
|
return -1;
|
|
386
519
|
}
|
|
387
|
-
if (
|
|
520
|
+
if (b.o === NO_ORDER) {
|
|
388
521
|
return 1;
|
|
389
522
|
}
|
|
390
|
-
return
|
|
523
|
+
return a.o - b.o;
|
|
391
524
|
});
|
|
525
|
+
flattened.length = 0;
|
|
526
|
+
for (const x of withKeys) {
|
|
527
|
+
flattened.push(x.s);
|
|
528
|
+
}
|
|
392
529
|
}
|
|
393
530
|
}
|
|
394
531
|
el.value = flattened;
|
|
@@ -906,6 +1043,18 @@ export function extendSelector(target, find, extendWith, partial, skipAmpersandC
|
|
|
906
1043
|
if (partial && find.valueOf() === extendWith.valueOf()) {
|
|
907
1044
|
return target;
|
|
908
1045
|
}
|
|
1046
|
+
// Walk-and-consume fast path for simple cases (Phase 1).
|
|
1047
|
+
// Only for SimpleSelector find with no ampersands and no extra flags.
|
|
1048
|
+
// Also skip when extendWith contains element/ID selectors that need conflict validation.
|
|
1049
|
+
if (!skipAmpersandCheck && !hasMoreAfterIs
|
|
1050
|
+
&& canUseWalkAndConsumeForExtend(target, find)
|
|
1051
|
+
&& !(partial && extendWithNeedsConflictValidation(extendWith))) {
|
|
1052
|
+
const walkResult = walkAndExtendForExtendSelector(target, find, extendWith, partial);
|
|
1053
|
+
if (walkResult !== null) {
|
|
1054
|
+
return walkResult;
|
|
1055
|
+
}
|
|
1056
|
+
// Walk path returned null → fall through to legacy path
|
|
1057
|
+
}
|
|
909
1058
|
// Use the unified ExtendLocation API for all selector matching.
|
|
910
1059
|
//
|
|
911
1060
|
// IMPORTANT: normalize :is(...) equivalences for matching. In Less output we often materialize
|