@jesscss/core 2.0.0-alpha.4 → 2.0.0-alpha.6

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.
Files changed (637) hide show
  1. package/lib/index.cjs +20159 -0
  2. package/lib/index.d.cts +5993 -0
  3. package/lib/index.d.cts.map +1 -0
  4. package/lib/index.d.ts +5992 -21
  5. package/lib/index.d.ts.map +1 -1
  6. package/lib/index.js +19926 -22
  7. package/lib/index.js.map +1 -1
  8. package/package.json +15 -14
  9. package/src/__tests__/define-function-record.test.ts +58 -0
  10. package/src/__tests__/define-function-simple.test.ts +55 -0
  11. package/src/__tests__/define-function-split-sequence.test.ts +547 -0
  12. package/src/__tests__/define-function-type-parity.test.ts +9 -0
  13. package/src/__tests__/define-function.test.ts +763 -0
  14. package/src/__tests__/num-operations.test.ts +91 -0
  15. package/src/__tests__/safe-parse.test.ts +374 -0
  16. package/src/context.ts +896 -0
  17. package/src/conversions.ts +282 -0
  18. package/src/debug-log.ts +29 -0
  19. package/src/define-function.ts +1006 -0
  20. package/src/deprecation.ts +67 -0
  21. package/src/globals.d.ts +26 -0
  22. package/src/index.ts +31 -0
  23. package/src/jess-error.ts +773 -0
  24. package/src/logger/deprecation-processing.ts +109 -0
  25. package/src/logger.ts +31 -0
  26. package/src/plugin.ts +292 -0
  27. package/src/tree/LOOKUP_CHAINS.md +35 -0
  28. package/src/tree/README.md +18 -0
  29. package/src/tree/__tests__/__snapshots__/extend-eval-integration.test.ts.snap +1455 -0
  30. package/src/tree/__tests__/ampersand.test.ts +382 -0
  31. package/src/tree/__tests__/at-rule.test.ts +2047 -0
  32. package/src/tree/__tests__/basic-render.test.ts +212 -0
  33. package/src/tree/__tests__/block.test.ts +40 -0
  34. package/src/tree/__tests__/call.test.ts +346 -0
  35. package/src/tree/__tests__/color.test.ts +537 -0
  36. package/src/tree/__tests__/condition.test.ts +186 -0
  37. package/src/tree/__tests__/control.test.ts +564 -0
  38. package/src/tree/__tests__/declaration.test.ts +253 -0
  39. package/src/tree/__tests__/dependency-graph.test.ts +177 -0
  40. package/src/tree/__tests__/detached-rulesets.test.ts +213 -0
  41. package/src/tree/__tests__/dimension.test.ts +236 -0
  42. package/src/tree/__tests__/expression.test.ts +73 -0
  43. package/src/tree/__tests__/ext-node.test.ts +31 -0
  44. package/src/tree/__tests__/extend-eval-integration.test.ts +1033 -0
  45. package/src/tree/__tests__/extend-import-style.test.ts +929 -0
  46. package/src/tree/__tests__/extend-less-fixtures.test.ts +851 -0
  47. package/src/tree/__tests__/extend-list.test.ts +31 -0
  48. package/src/tree/__tests__/extend-roots.test.ts +1045 -0
  49. package/src/tree/__tests__/extend-rules.test.ts +740 -0
  50. package/src/tree/__tests__/func.test.ts +171 -0
  51. package/src/tree/__tests__/import-js.test.ts +33 -0
  52. package/src/tree/__tests__/import-style-test-helpers.ts +56 -0
  53. package/src/tree/__tests__/import-style.test.ts +1967 -0
  54. package/src/tree/__tests__/interpolated-reference.test.ts +44 -0
  55. package/src/tree/__tests__/interpolated.test.ts +41 -0
  56. package/src/tree/__tests__/list.test.ts +177 -0
  57. package/src/tree/__tests__/log.test.ts +83 -0
  58. package/src/tree/__tests__/mixin-recursion.test.ts +639 -0
  59. package/src/tree/__tests__/mixin.test.ts +2171 -0
  60. package/src/tree/__tests__/negative.test.ts +45 -0
  61. package/src/tree/__tests__/nesting-collapse.test.ts +519 -0
  62. package/src/tree/__tests__/node-flags-perf.test.ts +195 -0
  63. package/src/tree/__tests__/node-flags.test.ts +410 -0
  64. package/src/tree/__tests__/node-graph.test.ts +598 -0
  65. package/src/tree/__tests__/node-mutation.test.ts +182 -0
  66. package/src/tree/__tests__/operation.test.ts +18 -0
  67. package/src/tree/__tests__/paren.test.ts +90 -0
  68. package/src/tree/__tests__/preserve-mode-output.test.ts +50 -0
  69. package/src/tree/__tests__/quoted.test.ts +72 -0
  70. package/src/tree/__tests__/range.test.ts +59 -0
  71. package/src/tree/__tests__/reference.test.ts +743 -0
  72. package/src/tree/__tests__/rest.test.ts +29 -0
  73. package/src/tree/__tests__/rules-raw.test.ts +14 -0
  74. package/src/tree/__tests__/rules.test.ts +1271 -0
  75. package/src/tree/__tests__/ruleset.test.ts +597 -0
  76. package/src/tree/__tests__/selector-attr.test.ts +50 -0
  77. package/src/tree/__tests__/selector-basic.test.ts +44 -0
  78. package/src/tree/__tests__/selector-capture.test.ts +22 -0
  79. package/src/tree/__tests__/selector-complex.test.ts +120 -0
  80. package/src/tree/__tests__/selector-compound.test.ts +74 -0
  81. package/src/tree/__tests__/selector-interpolated.test.ts +50 -0
  82. package/src/tree/__tests__/selector-list.test.ts +59 -0
  83. package/src/tree/__tests__/selector-pseudo.test.ts +23 -0
  84. package/src/tree/__tests__/selector.test.ts +182 -0
  85. package/src/tree/__tests__/sequence.test.ts +226 -0
  86. package/src/tree/__tests__/serialize-types.test.ts +529 -0
  87. package/src/tree/__tests__/spaced.test.ts +8 -0
  88. package/src/tree/__tests__/url.test.ts +72 -0
  89. package/src/tree/__tests__/var-declaration.test.ts +90 -0
  90. package/src/tree/ampersand.ts +538 -0
  91. package/src/tree/any.ts +169 -0
  92. package/src/tree/at-rule.ts +760 -0
  93. package/src/tree/block.ts +72 -0
  94. package/src/tree/bool.ts +46 -0
  95. package/src/tree/call.ts +593 -0
  96. package/src/tree/collection.ts +52 -0
  97. package/src/tree/color.ts +629 -0
  98. package/src/tree/combinator.ts +30 -0
  99. package/src/tree/comment.ts +36 -0
  100. package/src/tree/condition.ts +194 -0
  101. package/src/tree/control.ts +452 -0
  102. package/src/tree/declaration-custom.ts +56 -0
  103. package/src/tree/declaration-var.ts +87 -0
  104. package/src/tree/declaration.ts +742 -0
  105. package/src/tree/default-guard.ts +35 -0
  106. package/src/tree/dimension.ts +392 -0
  107. package/src/tree/expression.ts +97 -0
  108. package/src/tree/extend-list.ts +51 -0
  109. package/src/tree/extend.ts +391 -0
  110. package/src/tree/function.ts +254 -0
  111. package/src/tree/import-js.ts +130 -0
  112. package/src/tree/import-style.ts +875 -0
  113. package/{lib/tree/index.js → src/tree/index.ts} +49 -22
  114. package/src/tree/interpolated.ts +346 -0
  115. package/src/tree/js-array.ts +21 -0
  116. package/src/tree/js-expr.ts +50 -0
  117. package/src/tree/js-function.ts +31 -0
  118. package/src/tree/js-object.ts +22 -0
  119. package/src/tree/list.ts +415 -0
  120. package/src/tree/log.ts +89 -0
  121. package/src/tree/mixin.ts +331 -0
  122. package/src/tree/negative.ts +58 -0
  123. package/src/tree/nil.ts +57 -0
  124. package/src/tree/node-base.ts +1716 -0
  125. package/src/tree/node-type.ts +122 -0
  126. package/src/tree/node.ts +118 -0
  127. package/src/tree/number.ts +54 -0
  128. package/src/tree/operation.ts +187 -0
  129. package/src/tree/paren.ts +132 -0
  130. package/src/tree/query-condition.ts +47 -0
  131. package/src/tree/quoted.ts +119 -0
  132. package/src/tree/range.ts +101 -0
  133. package/src/tree/reference.ts +1099 -0
  134. package/src/tree/rest.ts +55 -0
  135. package/src/tree/rules-raw.ts +52 -0
  136. package/src/tree/rules.ts +2896 -0
  137. package/src/tree/ruleset.ts +1217 -0
  138. package/src/tree/selector-attr.ts +172 -0
  139. package/src/tree/selector-basic.ts +75 -0
  140. package/src/tree/selector-capture.ts +85 -0
  141. package/src/tree/selector-complex.ts +189 -0
  142. package/src/tree/selector-compound.ts +205 -0
  143. package/src/tree/selector-interpolated.ts +95 -0
  144. package/src/tree/selector-list.ts +245 -0
  145. package/src/tree/selector-pseudo.ts +173 -0
  146. package/src/tree/selector-simple.ts +10 -0
  147. package/src/tree/selector.ts +152 -0
  148. package/src/tree/sequence.ts +463 -0
  149. package/src/tree/tree.ts +130 -0
  150. package/src/tree/url.ts +95 -0
  151. package/src/tree/util/EXTEND_ARCHITECTURE_ANALYSIS.md +215 -0
  152. package/src/tree/util/EXTEND_AUDIT.md +233 -0
  153. package/src/tree/util/EXTEND_BASELINE.md +64 -0
  154. package/src/tree/util/EXTEND_CALL_GRAPH_ANALYSIS.md +244 -0
  155. package/src/tree/util/EXTEND_DOCS.md +24 -0
  156. package/src/tree/util/EXTEND_FINAL_SUMMARY.md +95 -0
  157. package/src/tree/util/EXTEND_FUNCTION_AUDIT.md +1433 -0
  158. package/src/tree/util/EXTEND_OPTIMIZATION_PLAN.md +114 -0
  159. package/src/tree/util/EXTEND_REFACTORING_SUMMARY.md +152 -0
  160. package/src/tree/util/EXTEND_RULES.md +74 -0
  161. package/src/tree/util/EXTEND_UNUSED_FUNCTIONS.md +127 -0
  162. package/src/tree/util/EXTEND_UNUSED_FUNCTIONS_ANALYSIS.md +227 -0
  163. package/src/tree/util/NODE_COPY_REDUCTION_PLAN.md +12 -0
  164. package/src/tree/util/__tests__/EXTEND_TEST_INDEX.md +59 -0
  165. package/src/tree/util/__tests__/OPTIMIZATION-ANALYSIS.md +130 -0
  166. package/src/tree/util/__tests__/WALK_AND_CONSUME_DESIGN.md +138 -0
  167. package/src/tree/util/__tests__/_archive/2026-02-09__OPTIMIZATION-ANALYSIS.md +9 -0
  168. package/src/tree/util/__tests__/_archive/README.md +4 -0
  169. package/src/tree/util/__tests__/bitset.test.ts +142 -0
  170. package/src/tree/util/__tests__/debug-log.ts +50 -0
  171. package/src/tree/util/__tests__/extend-comment-handling.test.ts +187 -0
  172. package/src/tree/util/__tests__/extend-core-unit.test.ts +941 -0
  173. package/src/tree/util/__tests__/extend-pipeline-bench.test.ts +154 -0
  174. package/src/tree/util/__tests__/extend-pipeline-bench.ts +190 -0
  175. package/src/tree/util/__tests__/fast-reject.test.ts +377 -0
  176. package/src/tree/util/__tests__/is-node.test.ts +63 -0
  177. package/src/tree/util/__tests__/list-like.test.ts +63 -0
  178. package/src/tree/util/__tests__/outputwriter.test.ts +523 -0
  179. package/src/tree/util/__tests__/print.test.ts +183 -0
  180. package/src/tree/util/__tests__/process-extends.test.ts +226 -0
  181. package/src/tree/util/__tests__/process-leading-is.test.ts +205 -0
  182. package/src/tree/util/__tests__/recursion-helper.test.ts +184 -0
  183. package/src/tree/util/__tests__/selector-match-unit.test.ts +1427 -0
  184. package/src/tree/util/__tests__/sourcemap.test.ts +117 -0
  185. package/src/tree/util/ampersand-template.ts +9 -0
  186. package/src/tree/util/bitset.ts +194 -0
  187. package/src/tree/util/calculate.ts +11 -0
  188. package/src/tree/util/cast.ts +89 -0
  189. package/src/tree/util/cloning.ts +8 -0
  190. package/src/tree/util/collections.ts +299 -0
  191. package/src/tree/util/compare.ts +90 -0
  192. package/src/tree/util/cursor.ts +171 -0
  193. package/src/tree/util/extend-core.ts +2139 -0
  194. package/src/tree/util/extend-roots.ts +1108 -0
  195. package/src/tree/util/field-helpers.ts +354 -0
  196. package/src/tree/util/is-node.ts +43 -0
  197. package/src/tree/util/list-like.ts +93 -0
  198. package/src/tree/util/mixin-instance-primitives.ts +2020 -0
  199. package/src/tree/util/print.ts +303 -0
  200. package/src/tree/util/process-leading-is.ts +421 -0
  201. package/src/tree/util/recursion-helper.ts +54 -0
  202. package/src/tree/util/regex.ts +2 -0
  203. package/src/tree/util/registry-utils.ts +1953 -0
  204. package/src/tree/util/ruleset-trace.ts +17 -0
  205. package/src/tree/util/scoped-body-eval.ts +320 -0
  206. package/src/tree/util/selector-match-core.ts +2005 -0
  207. package/src/tree/util/selector-utils.ts +757 -0
  208. package/src/tree/util/serialize-helper.ts +535 -0
  209. package/src/tree/util/serialize-types.ts +318 -0
  210. package/src/tree/util/should-operate.ts +78 -0
  211. package/src/tree/util/sourcemap.ts +37 -0
  212. package/src/types/config.ts +247 -0
  213. package/src/types/index.ts +12 -0
  214. package/{lib/types/modes.d.ts → src/types/modes.ts} +2 -1
  215. package/src/types.d.ts +9 -0
  216. package/src/types.ts +68 -0
  217. package/src/use-webpack-resolver.ts +56 -0
  218. package/src/visitor/__tests__/visitor.test.ts +136 -0
  219. package/src/visitor/index.ts +263 -0
  220. package/{lib/visitor/less-visitor.js → src/visitor/less-visitor.ts} +3 -2
  221. package/lib/context.d.ts +0 -352
  222. package/lib/context.d.ts.map +0 -1
  223. package/lib/context.js +0 -636
  224. package/lib/context.js.map +0 -1
  225. package/lib/conversions.d.ts +0 -73
  226. package/lib/conversions.d.ts.map +0 -1
  227. package/lib/conversions.js +0 -253
  228. package/lib/conversions.js.map +0 -1
  229. package/lib/debug-log.d.ts +0 -2
  230. package/lib/debug-log.d.ts.map +0 -1
  231. package/lib/debug-log.js +0 -27
  232. package/lib/debug-log.js.map +0 -1
  233. package/lib/define-function.d.ts +0 -587
  234. package/lib/define-function.d.ts.map +0 -1
  235. package/lib/define-function.js +0 -726
  236. package/lib/define-function.js.map +0 -1
  237. package/lib/deprecation.d.ts +0 -34
  238. package/lib/deprecation.d.ts.map +0 -1
  239. package/lib/deprecation.js +0 -57
  240. package/lib/deprecation.js.map +0 -1
  241. package/lib/jess-error.d.ts +0 -343
  242. package/lib/jess-error.d.ts.map +0 -1
  243. package/lib/jess-error.js +0 -508
  244. package/lib/jess-error.js.map +0 -1
  245. package/lib/logger/deprecation-processing.d.ts +0 -41
  246. package/lib/logger/deprecation-processing.d.ts.map +0 -1
  247. package/lib/logger/deprecation-processing.js +0 -81
  248. package/lib/logger/deprecation-processing.js.map +0 -1
  249. package/lib/logger.d.ts +0 -10
  250. package/lib/logger.d.ts.map +0 -1
  251. package/lib/logger.js +0 -20
  252. package/lib/logger.js.map +0 -1
  253. package/lib/plugin.d.ts +0 -94
  254. package/lib/plugin.d.ts.map +0 -1
  255. package/lib/plugin.js +0 -174
  256. package/lib/plugin.js.map +0 -1
  257. package/lib/tree/ampersand.d.ts +0 -94
  258. package/lib/tree/ampersand.d.ts.map +0 -1
  259. package/lib/tree/ampersand.js +0 -269
  260. package/lib/tree/ampersand.js.map +0 -1
  261. package/lib/tree/any.d.ts +0 -58
  262. package/lib/tree/any.d.ts.map +0 -1
  263. package/lib/tree/any.js +0 -104
  264. package/lib/tree/any.js.map +0 -1
  265. package/lib/tree/at-rule.d.ts +0 -53
  266. package/lib/tree/at-rule.d.ts.map +0 -1
  267. package/lib/tree/at-rule.js +0 -503
  268. package/lib/tree/at-rule.js.map +0 -1
  269. package/lib/tree/block.d.ts +0 -22
  270. package/lib/tree/block.d.ts.map +0 -1
  271. package/lib/tree/block.js +0 -24
  272. package/lib/tree/block.js.map +0 -1
  273. package/lib/tree/bool.d.ts +0 -18
  274. package/lib/tree/bool.d.ts.map +0 -1
  275. package/lib/tree/bool.js +0 -28
  276. package/lib/tree/bool.js.map +0 -1
  277. package/lib/tree/call.d.ts +0 -66
  278. package/lib/tree/call.d.ts.map +0 -1
  279. package/lib/tree/call.js +0 -306
  280. package/lib/tree/call.js.map +0 -1
  281. package/lib/tree/collection.d.ts +0 -30
  282. package/lib/tree/collection.d.ts.map +0 -1
  283. package/lib/tree/collection.js +0 -37
  284. package/lib/tree/collection.js.map +0 -1
  285. package/lib/tree/color.d.ts +0 -101
  286. package/lib/tree/color.d.ts.map +0 -1
  287. package/lib/tree/color.js +0 -513
  288. package/lib/tree/color.js.map +0 -1
  289. package/lib/tree/combinator.d.ts +0 -13
  290. package/lib/tree/combinator.d.ts.map +0 -1
  291. package/lib/tree/combinator.js +0 -12
  292. package/lib/tree/combinator.js.map +0 -1
  293. package/lib/tree/comment.d.ts +0 -20
  294. package/lib/tree/comment.d.ts.map +0 -1
  295. package/lib/tree/comment.js +0 -19
  296. package/lib/tree/comment.js.map +0 -1
  297. package/lib/tree/condition.d.ts +0 -31
  298. package/lib/tree/condition.d.ts.map +0 -1
  299. package/lib/tree/condition.js +0 -103
  300. package/lib/tree/condition.js.map +0 -1
  301. package/lib/tree/control.d.ts +0 -104
  302. package/lib/tree/control.d.ts.map +0 -1
  303. package/lib/tree/control.js +0 -430
  304. package/lib/tree/control.js.map +0 -1
  305. package/lib/tree/declaration-custom.d.ts +0 -18
  306. package/lib/tree/declaration-custom.d.ts.map +0 -1
  307. package/lib/tree/declaration-custom.js +0 -24
  308. package/lib/tree/declaration-custom.js.map +0 -1
  309. package/lib/tree/declaration-var.d.ts +0 -35
  310. package/lib/tree/declaration-var.d.ts.map +0 -1
  311. package/lib/tree/declaration-var.js +0 -63
  312. package/lib/tree/declaration-var.js.map +0 -1
  313. package/lib/tree/declaration.d.ts +0 -78
  314. package/lib/tree/declaration.d.ts.map +0 -1
  315. package/lib/tree/declaration.js +0 -286
  316. package/lib/tree/declaration.js.map +0 -1
  317. package/lib/tree/default-guard.d.ts +0 -15
  318. package/lib/tree/default-guard.d.ts.map +0 -1
  319. package/lib/tree/default-guard.js +0 -19
  320. package/lib/tree/default-guard.js.map +0 -1
  321. package/lib/tree/dimension.d.ts +0 -34
  322. package/lib/tree/dimension.d.ts.map +0 -1
  323. package/lib/tree/dimension.js +0 -294
  324. package/lib/tree/dimension.js.map +0 -1
  325. package/lib/tree/expression.d.ts +0 -25
  326. package/lib/tree/expression.d.ts.map +0 -1
  327. package/lib/tree/expression.js +0 -32
  328. package/lib/tree/expression.js.map +0 -1
  329. package/lib/tree/extend-list.d.ts +0 -23
  330. package/lib/tree/extend-list.d.ts.map +0 -1
  331. package/lib/tree/extend-list.js +0 -23
  332. package/lib/tree/extend-list.js.map +0 -1
  333. package/lib/tree/extend.d.ts +0 -47
  334. package/lib/tree/extend.d.ts.map +0 -1
  335. package/lib/tree/extend.js +0 -296
  336. package/lib/tree/extend.js.map +0 -1
  337. package/lib/tree/function.d.ts +0 -48
  338. package/lib/tree/function.d.ts.map +0 -1
  339. package/lib/tree/function.js +0 -74
  340. package/lib/tree/function.js.map +0 -1
  341. package/lib/tree/import-js.d.ts +0 -35
  342. package/lib/tree/import-js.d.ts.map +0 -1
  343. package/lib/tree/import-js.js +0 -45
  344. package/lib/tree/import-js.js.map +0 -1
  345. package/lib/tree/import-style.d.ts +0 -156
  346. package/lib/tree/import-style.d.ts.map +0 -1
  347. package/lib/tree/import-style.js +0 -566
  348. package/lib/tree/import-style.js.map +0 -1
  349. package/lib/tree/index.d.ts +0 -71
  350. package/lib/tree/index.d.ts.map +0 -1
  351. package/lib/tree/index.js.map +0 -1
  352. package/lib/tree/interpolated-reference.d.ts +0 -24
  353. package/lib/tree/interpolated-reference.d.ts.map +0 -1
  354. package/lib/tree/interpolated-reference.js +0 -37
  355. package/lib/tree/interpolated-reference.js.map +0 -1
  356. package/lib/tree/interpolated.d.ts +0 -62
  357. package/lib/tree/interpolated.d.ts.map +0 -1
  358. package/lib/tree/interpolated.js +0 -204
  359. package/lib/tree/interpolated.js.map +0 -1
  360. package/lib/tree/js-array.d.ts +0 -10
  361. package/lib/tree/js-array.d.ts.map +0 -1
  362. package/lib/tree/js-array.js +0 -10
  363. package/lib/tree/js-array.js.map +0 -1
  364. package/lib/tree/js-expr.d.ts +0 -23
  365. package/lib/tree/js-expr.d.ts.map +0 -1
  366. package/lib/tree/js-expr.js +0 -28
  367. package/lib/tree/js-expr.js.map +0 -1
  368. package/lib/tree/js-function.d.ts +0 -20
  369. package/lib/tree/js-function.d.ts.map +0 -1
  370. package/lib/tree/js-function.js +0 -16
  371. package/lib/tree/js-function.js.map +0 -1
  372. package/lib/tree/js-object.d.ts +0 -10
  373. package/lib/tree/js-object.d.ts.map +0 -1
  374. package/lib/tree/js-object.js +0 -10
  375. package/lib/tree/js-object.js.map +0 -1
  376. package/lib/tree/list.d.ts +0 -38
  377. package/lib/tree/list.d.ts.map +0 -1
  378. package/lib/tree/list.js +0 -83
  379. package/lib/tree/list.js.map +0 -1
  380. package/lib/tree/log.d.ts +0 -29
  381. package/lib/tree/log.d.ts.map +0 -1
  382. package/lib/tree/log.js +0 -56
  383. package/lib/tree/log.js.map +0 -1
  384. package/lib/tree/mixin.d.ts +0 -87
  385. package/lib/tree/mixin.d.ts.map +0 -1
  386. package/lib/tree/mixin.js +0 -112
  387. package/lib/tree/mixin.js.map +0 -1
  388. package/lib/tree/negative.d.ts +0 -17
  389. package/lib/tree/negative.d.ts.map +0 -1
  390. package/lib/tree/negative.js +0 -22
  391. package/lib/tree/negative.js.map +0 -1
  392. package/lib/tree/nil.d.ts +0 -30
  393. package/lib/tree/nil.d.ts.map +0 -1
  394. package/lib/tree/nil.js +0 -35
  395. package/lib/tree/nil.js.map +0 -1
  396. package/lib/tree/node-base.d.ts +0 -361
  397. package/lib/tree/node-base.d.ts.map +0 -1
  398. package/lib/tree/node-base.js +0 -930
  399. package/lib/tree/node-base.js.map +0 -1
  400. package/lib/tree/node.d.ts +0 -10
  401. package/lib/tree/node.d.ts.map +0 -1
  402. package/lib/tree/node.js +0 -45
  403. package/lib/tree/node.js.map +0 -1
  404. package/lib/tree/number.d.ts +0 -21
  405. package/lib/tree/number.d.ts.map +0 -1
  406. package/lib/tree/number.js +0 -27
  407. package/lib/tree/number.js.map +0 -1
  408. package/lib/tree/operation.d.ts +0 -26
  409. package/lib/tree/operation.d.ts.map +0 -1
  410. package/lib/tree/operation.js +0 -103
  411. package/lib/tree/operation.js.map +0 -1
  412. package/lib/tree/paren.d.ts +0 -19
  413. package/lib/tree/paren.d.ts.map +0 -1
  414. package/lib/tree/paren.js +0 -92
  415. package/lib/tree/paren.js.map +0 -1
  416. package/lib/tree/query-condition.d.ts +0 -17
  417. package/lib/tree/query-condition.d.ts.map +0 -1
  418. package/lib/tree/query-condition.js +0 -39
  419. package/lib/tree/query-condition.js.map +0 -1
  420. package/lib/tree/quoted.d.ts +0 -28
  421. package/lib/tree/quoted.d.ts.map +0 -1
  422. package/lib/tree/quoted.js +0 -75
  423. package/lib/tree/quoted.js.map +0 -1
  424. package/lib/tree/range.d.ts +0 -33
  425. package/lib/tree/range.d.ts.map +0 -1
  426. package/lib/tree/range.js +0 -47
  427. package/lib/tree/range.js.map +0 -1
  428. package/lib/tree/reference.d.ts +0 -76
  429. package/lib/tree/reference.d.ts.map +0 -1
  430. package/lib/tree/reference.js +0 -521
  431. package/lib/tree/reference.js.map +0 -1
  432. package/lib/tree/rest.d.ts +0 -15
  433. package/lib/tree/rest.d.ts.map +0 -1
  434. package/lib/tree/rest.js +0 -32
  435. package/lib/tree/rest.js.map +0 -1
  436. package/lib/tree/rules-raw.d.ts +0 -17
  437. package/lib/tree/rules-raw.d.ts.map +0 -1
  438. package/lib/tree/rules-raw.js +0 -37
  439. package/lib/tree/rules-raw.js.map +0 -1
  440. package/lib/tree/rules.d.ts +0 -262
  441. package/lib/tree/rules.d.ts.map +0 -1
  442. package/lib/tree/rules.js +0 -2359
  443. package/lib/tree/rules.js.map +0 -1
  444. package/lib/tree/ruleset.d.ts +0 -92
  445. package/lib/tree/ruleset.d.ts.map +0 -1
  446. package/lib/tree/ruleset.js +0 -528
  447. package/lib/tree/ruleset.js.map +0 -1
  448. package/lib/tree/selector-attr.d.ts +0 -31
  449. package/lib/tree/selector-attr.d.ts.map +0 -1
  450. package/lib/tree/selector-attr.js +0 -99
  451. package/lib/tree/selector-attr.js.map +0 -1
  452. package/lib/tree/selector-basic.d.ts +0 -24
  453. package/lib/tree/selector-basic.d.ts.map +0 -1
  454. package/lib/tree/selector-basic.js +0 -38
  455. package/lib/tree/selector-basic.js.map +0 -1
  456. package/lib/tree/selector-capture.d.ts +0 -23
  457. package/lib/tree/selector-capture.d.ts.map +0 -1
  458. package/lib/tree/selector-capture.js +0 -34
  459. package/lib/tree/selector-capture.js.map +0 -1
  460. package/lib/tree/selector-complex.d.ts +0 -40
  461. package/lib/tree/selector-complex.d.ts.map +0 -1
  462. package/lib/tree/selector-complex.js +0 -143
  463. package/lib/tree/selector-complex.js.map +0 -1
  464. package/lib/tree/selector-compound.d.ts +0 -16
  465. package/lib/tree/selector-compound.d.ts.map +0 -1
  466. package/lib/tree/selector-compound.js +0 -114
  467. package/lib/tree/selector-compound.js.map +0 -1
  468. package/lib/tree/selector-interpolated.d.ts +0 -23
  469. package/lib/tree/selector-interpolated.d.ts.map +0 -1
  470. package/lib/tree/selector-interpolated.js +0 -27
  471. package/lib/tree/selector-interpolated.js.map +0 -1
  472. package/lib/tree/selector-list.d.ts +0 -17
  473. package/lib/tree/selector-list.d.ts.map +0 -1
  474. package/lib/tree/selector-list.js +0 -174
  475. package/lib/tree/selector-list.js.map +0 -1
  476. package/lib/tree/selector-pseudo.d.ts +0 -42
  477. package/lib/tree/selector-pseudo.d.ts.map +0 -1
  478. package/lib/tree/selector-pseudo.js +0 -204
  479. package/lib/tree/selector-pseudo.js.map +0 -1
  480. package/lib/tree/selector-simple.d.ts +0 -5
  481. package/lib/tree/selector-simple.d.ts.map +0 -1
  482. package/lib/tree/selector-simple.js +0 -6
  483. package/lib/tree/selector-simple.js.map +0 -1
  484. package/lib/tree/selector.d.ts +0 -43
  485. package/lib/tree/selector.d.ts.map +0 -1
  486. package/lib/tree/selector.js +0 -56
  487. package/lib/tree/selector.js.map +0 -1
  488. package/lib/tree/sequence.d.ts +0 -43
  489. package/lib/tree/sequence.d.ts.map +0 -1
  490. package/lib/tree/sequence.js +0 -151
  491. package/lib/tree/sequence.js.map +0 -1
  492. package/lib/tree/tree.d.ts +0 -87
  493. package/lib/tree/tree.d.ts.map +0 -1
  494. package/lib/tree/tree.js +0 -2
  495. package/lib/tree/tree.js.map +0 -1
  496. package/lib/tree/url.d.ts +0 -18
  497. package/lib/tree/url.d.ts.map +0 -1
  498. package/lib/tree/url.js +0 -35
  499. package/lib/tree/url.js.map +0 -1
  500. package/lib/tree/util/__tests__/debug-log.d.ts +0 -1
  501. package/lib/tree/util/__tests__/debug-log.d.ts.map +0 -1
  502. package/lib/tree/util/__tests__/debug-log.js +0 -36
  503. package/lib/tree/util/__tests__/debug-log.js.map +0 -1
  504. package/lib/tree/util/calculate.d.ts +0 -3
  505. package/lib/tree/util/calculate.d.ts.map +0 -1
  506. package/lib/tree/util/calculate.js +0 -10
  507. package/lib/tree/util/calculate.js.map +0 -1
  508. package/lib/tree/util/cast.d.ts +0 -10
  509. package/lib/tree/util/cast.d.ts.map +0 -1
  510. package/lib/tree/util/cast.js +0 -87
  511. package/lib/tree/util/cast.js.map +0 -1
  512. package/lib/tree/util/cloning.d.ts +0 -4
  513. package/lib/tree/util/cloning.d.ts.map +0 -1
  514. package/lib/tree/util/cloning.js +0 -8
  515. package/lib/tree/util/cloning.js.map +0 -1
  516. package/lib/tree/util/collections.d.ts +0 -57
  517. package/lib/tree/util/collections.d.ts.map +0 -1
  518. package/lib/tree/util/collections.js +0 -136
  519. package/lib/tree/util/collections.js.map +0 -1
  520. package/lib/tree/util/compare.d.ts +0 -11
  521. package/lib/tree/util/compare.d.ts.map +0 -1
  522. package/lib/tree/util/compare.js +0 -89
  523. package/lib/tree/util/compare.js.map +0 -1
  524. package/lib/tree/util/extend-helpers.d.ts +0 -2
  525. package/lib/tree/util/extend-helpers.d.ts.map +0 -1
  526. package/lib/tree/util/extend-helpers.js +0 -2
  527. package/lib/tree/util/extend-helpers.js.map +0 -1
  528. package/lib/tree/util/extend-roots.d.ts +0 -37
  529. package/lib/tree/util/extend-roots.d.ts.map +0 -1
  530. package/lib/tree/util/extend-roots.js +0 -700
  531. package/lib/tree/util/extend-roots.js.map +0 -1
  532. package/lib/tree/util/extend-roots.old.d.ts +0 -132
  533. package/lib/tree/util/extend-roots.old.d.ts.map +0 -1
  534. package/lib/tree/util/extend-roots.old.js +0 -2272
  535. package/lib/tree/util/extend-roots.old.js.map +0 -1
  536. package/lib/tree/util/extend-trace-debug.d.ts +0 -13
  537. package/lib/tree/util/extend-trace-debug.d.ts.map +0 -1
  538. package/lib/tree/util/extend-trace-debug.js +0 -34
  539. package/lib/tree/util/extend-trace-debug.js.map +0 -1
  540. package/lib/tree/util/extend-walk.d.ts +0 -53
  541. package/lib/tree/util/extend-walk.d.ts.map +0 -1
  542. package/lib/tree/util/extend-walk.js +0 -881
  543. package/lib/tree/util/extend-walk.js.map +0 -1
  544. package/lib/tree/util/extend.d.ts +0 -218
  545. package/lib/tree/util/extend.d.ts.map +0 -1
  546. package/lib/tree/util/extend.js +0 -3182
  547. package/lib/tree/util/extend.js.map +0 -1
  548. package/lib/tree/util/find-extendable-locations.d.ts +0 -2
  549. package/lib/tree/util/find-extendable-locations.d.ts.map +0 -1
  550. package/lib/tree/util/find-extendable-locations.js +0 -2
  551. package/lib/tree/util/find-extendable-locations.js.map +0 -1
  552. package/lib/tree/util/format.d.ts +0 -20
  553. package/lib/tree/util/format.d.ts.map +0 -1
  554. package/lib/tree/util/format.js +0 -67
  555. package/lib/tree/util/format.js.map +0 -1
  556. package/lib/tree/util/is-node.d.ts +0 -13
  557. package/lib/tree/util/is-node.d.ts.map +0 -1
  558. package/lib/tree/util/is-node.js +0 -43
  559. package/lib/tree/util/is-node.js.map +0 -1
  560. package/lib/tree/util/print.d.ts +0 -80
  561. package/lib/tree/util/print.d.ts.map +0 -1
  562. package/lib/tree/util/print.js +0 -205
  563. package/lib/tree/util/print.js.map +0 -1
  564. package/lib/tree/util/process-leading-is.d.ts +0 -25
  565. package/lib/tree/util/process-leading-is.d.ts.map +0 -1
  566. package/lib/tree/util/process-leading-is.js +0 -364
  567. package/lib/tree/util/process-leading-is.js.map +0 -1
  568. package/lib/tree/util/recursion-helper.d.ts +0 -15
  569. package/lib/tree/util/recursion-helper.d.ts.map +0 -1
  570. package/lib/tree/util/recursion-helper.js +0 -43
  571. package/lib/tree/util/recursion-helper.js.map +0 -1
  572. package/lib/tree/util/regex.d.ts +0 -4
  573. package/lib/tree/util/regex.d.ts.map +0 -1
  574. package/lib/tree/util/regex.js +0 -4
  575. package/lib/tree/util/regex.js.map +0 -1
  576. package/lib/tree/util/registry-utils.d.ts +0 -192
  577. package/lib/tree/util/registry-utils.d.ts.map +0 -1
  578. package/lib/tree/util/registry-utils.js +0 -1214
  579. package/lib/tree/util/registry-utils.js.map +0 -1
  580. package/lib/tree/util/ruleset-trace.d.ts +0 -4
  581. package/lib/tree/util/ruleset-trace.d.ts.map +0 -1
  582. package/lib/tree/util/ruleset-trace.js +0 -14
  583. package/lib/tree/util/ruleset-trace.js.map +0 -1
  584. package/lib/tree/util/selector-compare.d.ts +0 -2
  585. package/lib/tree/util/selector-compare.d.ts.map +0 -1
  586. package/lib/tree/util/selector-compare.js +0 -2
  587. package/lib/tree/util/selector-compare.js.map +0 -1
  588. package/lib/tree/util/selector-match-core.d.ts +0 -184
  589. package/lib/tree/util/selector-match-core.d.ts.map +0 -1
  590. package/lib/tree/util/selector-match-core.js +0 -1603
  591. package/lib/tree/util/selector-match-core.js.map +0 -1
  592. package/lib/tree/util/selector-utils.d.ts +0 -30
  593. package/lib/tree/util/selector-utils.d.ts.map +0 -1
  594. package/lib/tree/util/selector-utils.js +0 -100
  595. package/lib/tree/util/selector-utils.js.map +0 -1
  596. package/lib/tree/util/serialize-helper.d.ts +0 -13
  597. package/lib/tree/util/serialize-helper.d.ts.map +0 -1
  598. package/lib/tree/util/serialize-helper.js +0 -387
  599. package/lib/tree/util/serialize-helper.js.map +0 -1
  600. package/lib/tree/util/serialize-types.d.ts +0 -9
  601. package/lib/tree/util/serialize-types.d.ts.map +0 -1
  602. package/lib/tree/util/serialize-types.js +0 -216
  603. package/lib/tree/util/serialize-types.js.map +0 -1
  604. package/lib/tree/util/should-operate.d.ts +0 -23
  605. package/lib/tree/util/should-operate.d.ts.map +0 -1
  606. package/lib/tree/util/should-operate.js +0 -46
  607. package/lib/tree/util/should-operate.js.map +0 -1
  608. package/lib/tree/util/sourcemap.d.ts +0 -7
  609. package/lib/tree/util/sourcemap.d.ts.map +0 -1
  610. package/lib/tree/util/sourcemap.js +0 -25
  611. package/lib/tree/util/sourcemap.js.map +0 -1
  612. package/lib/types/config.d.ts +0 -205
  613. package/lib/types/config.d.ts.map +0 -1
  614. package/lib/types/config.js +0 -2
  615. package/lib/types/config.js.map +0 -1
  616. package/lib/types/index.d.ts +0 -15
  617. package/lib/types/index.d.ts.map +0 -1
  618. package/lib/types/index.js +0 -3
  619. package/lib/types/index.js.map +0 -1
  620. package/lib/types/modes.d.ts.map +0 -1
  621. package/lib/types/modes.js +0 -2
  622. package/lib/types/modes.js.map +0 -1
  623. package/lib/types.d.ts +0 -61
  624. package/lib/types.d.ts.map +0 -1
  625. package/lib/types.js +0 -2
  626. package/lib/types.js.map +0 -1
  627. package/lib/use-webpack-resolver.d.ts +0 -9
  628. package/lib/use-webpack-resolver.d.ts.map +0 -1
  629. package/lib/use-webpack-resolver.js +0 -41
  630. package/lib/use-webpack-resolver.js.map +0 -1
  631. package/lib/visitor/index.d.ts +0 -136
  632. package/lib/visitor/index.d.ts.map +0 -1
  633. package/lib/visitor/index.js +0 -135
  634. package/lib/visitor/index.js.map +0 -1
  635. package/lib/visitor/less-visitor.d.ts +0 -7
  636. package/lib/visitor/less-visitor.d.ts.map +0 -1
  637. package/lib/visitor/less-visitor.js.map +0 -1
@@ -1,269 +0,0 @@
1
- import { defineType, F_AMPERSAND, F_IMPLICIT_AMPERSAND } from './node.js';
2
- import { Nil } from './nil.js';
3
- import { SimpleSelector } from './selector-simple.js';
4
- import { PseudoSelector } from './selector-pseudo.js';
5
- import { SelectorList } from './selector-list.js';
6
- import { BasicSelector } from './selector-basic.js';
7
- import { isNode } from './util/is-node.js';
8
- import { atIndex } from './util/collections.js';
9
- import { getPrintOptions } from './util/print.js';
10
- import { F_VISIBLE } from './node.js';
11
- /**
12
- * The '&' selector element
13
- */
14
- export class Ampersand extends SimpleSelector {
15
- type = 'Ampersand';
16
- shortType = 'amp';
17
- _storedSelector;
18
- _selectorContainer;
19
- constructor(value, options, location, treeContext) {
20
- let finalValue = {};
21
- if (typeof value === 'string') {
22
- finalValue.appendValue = value;
23
- super(finalValue, options, location, treeContext);
24
- }
25
- else {
26
- finalValue = value ? { appendValue: value.appendValue } : {};
27
- super(finalValue, options, location, treeContext);
28
- const selectorContainer = value?.selectorContainer;
29
- if (selectorContainer) {
30
- this._selectorContainer = selectorContainer;
31
- this._storedSelector = selectorContainer?.selector;
32
- }
33
- }
34
- // Set the F_AMPERSAND flag so it bubbles up to parent selectors
35
- this.addFlag(F_AMPERSAND);
36
- }
37
- get keySet() {
38
- const stored = this._storedSelector;
39
- const current = this._selectorContainer?.selector;
40
- if (!current || isNode(current, 'Nil')) {
41
- return new Set(['&']);
42
- }
43
- let keySet = this._keySet;
44
- if (!keySet || stored !== current) {
45
- this._computeKeySetAndFastReject();
46
- return this._keySet;
47
- }
48
- return keySet;
49
- }
50
- /** The keys of an ampersand are the keys of the selector it contains */
51
- _computeKeySetAndFastReject() {
52
- const selector = this._selectorContainer?.selector;
53
- if (selector && 'keySet' in selector) {
54
- this._keySet = selector.keySet;
55
- // For visibleKeySet, if this ampersand has a selector value, it's an implicit ampersand
56
- // (added by getImplicitSelector). For indexing purposes, we want to exclude implicit ampersands
57
- // regardless of visibility, so always set visibleKeySet to empty when there's a selector value
58
- if (this.hasFlag(F_VISIBLE) && !selector) {
59
- // Only include visibleKeySet if visible AND no selector value (explicit ampersand)
60
- this._visibleKeySet = new Set();
61
- }
62
- else {
63
- // Implicit ampersand (has selector value) or invisible - exclude from visibleKeySet
64
- this._visibleKeySet = new Set();
65
- }
66
- this._canFastReject = selector.canFastReject;
67
- return;
68
- }
69
- this._keySet = new Set(['&']);
70
- this._visibleKeySet = new Set();
71
- }
72
- /**
73
- * Returns the current selector from the selector container (live when container is ruleset value).
74
- * Used by extend, serialization, and matching so nested rules see the parent after extend.
75
- */
76
- getResolvedSelector() {
77
- const selector = this._selectorContainer?.selector;
78
- if (selector && isNode(selector, 'SelectorList') && this.hasFlag(F_IMPLICIT_AMPERSAND)) {
79
- const wrapped = PseudoSelector.create({ name: ':is', arg: selector.copy(true) });
80
- wrapped.generated = true;
81
- return wrapped;
82
- }
83
- return selector;
84
- }
85
- valueOf() {
86
- const selector = this._selectorContainer?.selector;
87
- if (selector) {
88
- return selector.valueOf();
89
- }
90
- return '&';
91
- }
92
- toTrimmedString(options) {
93
- options = getPrintOptions(options);
94
- const w = options.writer;
95
- const mark = w.mark();
96
- const { appendValue } = this.value;
97
- if (appendValue) {
98
- w.add('&(');
99
- if (appendValue) {
100
- w.add(appendValue, this);
101
- }
102
- w.add(')');
103
- }
104
- else {
105
- w.add('&', this);
106
- }
107
- return w.getSince(mark);
108
- }
109
- /** Hmm this should never return Extend */
110
- evalNode(context) {
111
- const { appendValue } = this.value;
112
- const selectorContainer = this._selectorContainer;
113
- const storedSelector = selectorContainer?.selector;
114
- // Check if appendValue is defined (including empty string), or if hoistToRoot/collapseNesting is set
115
- if (appendValue !== undefined || this.hoistToRoot || context.opts.collapseNesting) {
116
- // Use the stored selector if available, otherwise fall back to frame selector
117
- let frame = atIndex(context.rulesetFrames, -1);
118
- let selector = storedSelector ?? frame?.selector;
119
- if (!selector) {
120
- return new Nil();
121
- }
122
- // Never mutate the frame selector in-place for append forms (&-foo / &()).
123
- if (appendValue !== undefined && !isNode(selector, 'Nil')) {
124
- selector = selector.clone(true);
125
- }
126
- /** Remove any surrounding whitespace */
127
- selector.pre = undefined;
128
- selector.post = undefined;
129
- if (appendValue && !isNode(selector, 'Nil')) {
130
- const isTemplateMerge = appendValue.includes('&');
131
- if (isTemplateMerge) {
132
- const isIdentJoinChar = (char) => {
133
- return !!char && /[a-zA-Z0-9_-]/.test(char);
134
- };
135
- const assertValidTemplateJoin = (template, replacement) => {
136
- if (!replacement) {
137
- return;
138
- }
139
- let searchFrom = 0;
140
- while (true) {
141
- const idx = template.indexOf('&', searchFrom);
142
- if (idx === -1) {
143
- break;
144
- }
145
- const before = idx > 0 ? template[idx - 1] : undefined;
146
- const after = idx < template.length - 1 ? template[idx + 1] : undefined;
147
- const first = replacement[0];
148
- const last = replacement[replacement.length - 1];
149
- const invalidHeadJoin = (first === '.' || first === '#') && isIdentJoinChar(before);
150
- const invalidTailJoin = (last === '.' || last === '#') && isIdentJoinChar(after);
151
- if (invalidHeadJoin || invalidTailJoin) {
152
- throw new SyntaxError(`Invalid ampersand merge template "${template}" with parent selector "${replacement}"`);
153
- }
154
- searchFrom = idx + 1;
155
- }
156
- };
157
- const mergeTemplate = (baseSelector) => {
158
- const baseSelectors = [];
159
- if (isNode(baseSelector, 'PseudoSelector')
160
- && baseSelector.value.name === ':is'
161
- && baseSelector.value.arg
162
- && isNode(baseSelector.value.arg, 'SelectorList')) {
163
- baseSelectors.push(...baseSelector.value.arg.value.map(item => item));
164
- }
165
- else if (isNode(baseSelector, 'SelectorList')) {
166
- baseSelectors.push(...baseSelector.value.map(item => item));
167
- }
168
- else {
169
- baseSelectors.push(baseSelector);
170
- }
171
- const merged = baseSelectors.map((item) => {
172
- const value = item.toTrimmedString();
173
- assertValidTemplateJoin(appendValue, value);
174
- return new BasicSelector(appendValue.split('&').join(value)).inherit(baseSelector);
175
- });
176
- if (merged.length === 1) {
177
- return merged[0];
178
- }
179
- return new SelectorList(merged).inherit(baseSelector);
180
- };
181
- if (isNode(selector, 'SelectorList')) {
182
- const mergedItems = [];
183
- for (const item of selector.value) {
184
- const merged = mergeTemplate(item);
185
- if (isNode(merged, 'SelectorList')) {
186
- mergedItems.push(...merged.value);
187
- }
188
- else {
189
- mergedItems.push(merged);
190
- }
191
- }
192
- selector = new SelectorList(mergedItems).inherit(selector);
193
- }
194
- else {
195
- selector = mergeTemplate(selector);
196
- }
197
- }
198
- else {
199
- let doAppendValue = (n) => {
200
- let appended = false;
201
- for (let s of n.nodes(true)) {
202
- /** Find the last simple selector and attempt to append */
203
- if (isNode(s, 'SimpleSelector')) {
204
- if (typeof s.value === 'string') {
205
- s.value += appendValue;
206
- appended = true;
207
- break;
208
- }
209
- throw new SyntaxError(`Cannot append "${appendValue}" to this type of selector`);
210
- }
211
- }
212
- if (!appended) {
213
- throw new SyntaxError(`Cannot append "${appendValue}" to this type of selector`);
214
- }
215
- };
216
- if (isNode(selector, 'SelectorList')) {
217
- selector.value.forEach(doAppendValue);
218
- }
219
- else {
220
- doAppendValue(selector);
221
- }
222
- }
223
- }
224
- let result;
225
- const shouldWrapSelectorList = isNode(selector, 'SelectorList') && (context.opts.collapseNesting || this.hoistToRoot || appendValue !== undefined);
226
- const shouldWrapComplexSelector = isNode(selector, 'ComplexSelector');
227
- if (shouldWrapSelectorList || shouldWrapComplexSelector) {
228
- result = PseudoSelector.create({ name: ':is', arg: selector });
229
- // When create() is invoked from this eval path, generated is not set on the instance
230
- // (repro: process-leading-is test "unwraps evaled &[e] with frame * b"). Set explicitly.
231
- result.generated = true;
232
- }
233
- else {
234
- result = selector;
235
- }
236
- // If we're appending (e.g. `&-1`), we must hoist this selector out of its parent frames
237
- // because it materially changes the inherited selector.
238
- if (appendValue !== undefined) {
239
- result.hoistToRoot = true;
240
- }
241
- // Only set hoistToRoot if we actually wrapped or if it was already set
242
- if (shouldWrapSelectorList || shouldWrapComplexSelector || this.hoistToRoot) {
243
- result.hoistToRoot = true;
244
- }
245
- return result;
246
- }
247
- const amp = this.maybeClone(context);
248
- let frame = atIndex(context.rulesetFrames, -1);
249
- /**
250
- * Attach the current context selector if we need it later, for extends and such.
251
- * The frame is constant, so we can use the selector directly.
252
- * If the ampersand already has a stored selector (from getImplicitSelector),
253
- * preserve it instead of overwriting with the frame selector.
254
- */
255
- if (!amp._selectorContainer && frame && frame.selector) {
256
- amp._selectorContainer = frame;
257
- }
258
- return amp;
259
- }
260
- clone(deep, cloneFn) {
261
- const newNode = super.clone(deep, cloneFn);
262
- if (this._selectorContainer) {
263
- newNode._selectorContainer = this._selectorContainer;
264
- }
265
- return newNode;
266
- }
267
- }
268
- export const amp = defineType(Ampersand, 'Ampersand', 'amp');
269
- //# sourceMappingURL=ampersand.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ampersand.js","sourceRoot":"","sources":["../../src/tree/ampersand.ts"],"names":[],"mappings":"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"}
package/lib/tree/any.d.ts DELETED
@@ -1,58 +0,0 @@
1
- /**
2
- * Import from node-base to avoid circular dependency.
3
- * The patching happens in node.ts
4
- */
5
- import { Node, type LocationInfo, type NodeOptions } from './node-base.js';
6
- import type { Context, TreeContext } from '../context.js';
7
- import { type MaybePromise } from '@jesscss/awaitable-pipe';
8
- import { Nil } from './nil.js';
9
- export type AnyRole = 'ident' | 'name' | 'charset' | 'keyword' | 'property' | 'atkeyword' | 'urlvalue' | 'flag' | 'customprop' | 'semi' | 'operator' | 'any';
10
- /** Doesn't get assigned but can be used for inference? */
11
- export type AnyOptions<T extends string> = NodeOptions & {
12
- role?: T;
13
- };
14
- export interface Any<Role extends AnyRole = AnyRole> extends Node<string, AnyOptions<Role>> {
15
- eval(context: Context): Any<Role>;
16
- valueOf(): string;
17
- }
18
- /**
19
- * Any is a simple token that has a string value and a role.
20
- * Sometimes that role is unspecified. Think of it as a generic,
21
- * and a placeholder for tokens that don't have anything special
22
- * to do during evaluation.
23
- *
24
- * Called "Anonymous" in Less's original tree, but "anonymous"
25
- * was somewhat a counter-intuitive name.
26
- */
27
- export declare class Any<Role extends AnyRole = AnyRole> extends Node<string, AnyOptions<Role>> {
28
- type: string;
29
- shortType: string;
30
- constructor(...args: ConstructorParameters<typeof Node<string, AnyOptions<Role>>>);
31
- preEval(context: Context): this | Nil;
32
- evalNode(context: Context): MaybePromise<Node>;
33
- compare(other: Node): 0 | 1 | -1 | undefined;
34
- }
35
- export declare function any<Role extends AnyRole = AnyRole>(value: string, options?: AnyOptions<Role>): Any<Role>;
36
- /** Legacy class - remove? */
37
- export declare class Anonymous<Role extends AnyRole = AnyRole> extends Any<Role> {
38
- }
39
- /**
40
- * Keyword represents a CSS keyword value (e.g., 'auto', 'none', 'inherit', 'and', 'or').
41
- *
42
- * This is a convenience class that extends Any with role: 'keyword' fixed.
43
- * It provides better type safety and aligns with Less.js's Keyword node type
44
- * for compatibility purposes.
45
- *
46
- * Note: In Jess, boolean values ('true', 'false') are represented as Bool nodes,
47
- * not Keyword nodes, unlike Less.js where they are Keyword instances.
48
- */
49
- export declare class Keyword extends Any<'keyword'> {
50
- type: "Keyword";
51
- shortType: string;
52
- constructor(value: string, options?: Omit<NodeOptions, 'role'>, location?: LocationInfo, context?: TreeContext);
53
- }
54
- /**
55
- * Helper function to create a Keyword node
56
- */
57
- export declare function keyword(value: string, options?: Omit<NodeOptions, 'role'>, location?: LocationInfo, context?: TreeContext): Keyword;
58
- //# sourceMappingURL=any.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"any.d.ts","sourceRoot":"","sources":["../../src/tree/any.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,EAAE,IAAI,EAAc,KAAK,YAAY,EAAE,KAAK,WAAW,EAAY,MAAM,gBAAgB,CAAC;AACjG,OAAO,KAAK,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC1D,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAC5D,OAAO,EAAE,GAAG,EAAE,MAAM,UAAU,CAAC;AAE/B,MAAM,MAAM,OAAO,GACjB,OAAO,GACL,MAAM,GACN,SAAS,GACT,SAAS,GACT,UAAU,GACV,WAAW,GACX,UAAU,GACV,MAAM,GACN,YAAY,GACZ,MAAM,GACN,UAAU,GACV,KAAK,CAAC;AAEV,0DAA0D;AAC1D,MAAM,MAAM,UAAU,CAAC,CAAC,SAAS,MAAM,IAAI,WAAW,GAAG;IACvD,IAAI,CAAC,EAAE,CAAC,CAAC;CACV,CAAC;AAEF,MAAM,WAAW,GAAG,CAClB,IAAI,SAAS,OAAO,GAAG,OAAO,CAC9B,SAAQ,IAAI,CAAC,MAAM,EAAE,UAAU,CAAC,IAAI,CAAC,CAAC;IACtC,IAAI,CAAC,OAAO,EAAE,OAAO,GAAG,GAAG,CAAC,IAAI,CAAC,CAAC;IAClC,OAAO,IAAI,MAAM,CAAC;CACnB;AAED;;;;;;;;GAQG;AACH,qBAAa,GAAG,CACd,IAAI,SAAS,OAAO,GAAG,OAAO,CAC9B,SAAQ,IAAI,CAAC,MAAM,EAAE,UAAU,CAAC,IAAI,CAAC,CAAC;IACtC,IAAI,SAAS;IACb,SAAS,SAAS;gBAEN,GAAG,IAAI,EAAE,qBAAqB,CAAC,OAAO,IAAI,CAAC,MAAM,EAAE,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC;IAKxE,OAAO,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,GAAG,GAAG;IAcrC,QAAQ,CAAC,OAAO,EAAE,OAAO,GAAG,YAAY,CAAC,IAAI,CAAC;IAI9C,OAAO,CAAC,KAAK,EAAE,IAAI,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,SAAS;CA8BtD;AAGD,wBAAgB,GAAG,CAAC,IAAI,SAAS,OAAO,GAAG,OAAO,EAChD,KAAK,EAAE,MAAM,EACb,OAAO,CAAC,EAAE,UAAU,CAAC,IAAI,CAAC,GACzB,GAAG,CAAC,IAAI,CAAC,CAEX;AAGD,6BAA6B;AAC7B,qBAAa,SAAS,CACpB,IAAI,SAAS,OAAO,GAAG,OAAO,CAC9B,SAAQ,GAAG,CAAC,IAAI,CAAC;CAAG;AAGtB;;;;;;;;;GASG;AACH,qBAAa,OAAQ,SAAQ,GAAG,CAAC,SAAS,CAAC;IAChC,IAAI,EAAG,SAAS,CAAU;IAC1B,SAAS,SAAa;gBAG7B,KAAK,EAAE,MAAM,EACb,OAAO,CAAC,EAAE,IAAI,CAAC,WAAW,EAAE,MAAM,CAAC,EACnC,QAAQ,CAAC,EAAE,YAAY,EACvB,OAAO,CAAC,EAAE,WAAW;CAKxB;AAGD;;GAEG;AACH,wBAAgB,OAAO,CACrB,KAAK,EAAE,MAAM,EACb,OAAO,CAAC,EAAE,IAAI,CAAC,WAAW,EAAE,MAAM,CAAC,EACnC,QAAQ,CAAC,EAAE,YAAY,EACvB,OAAO,CAAC,EAAE,WAAW,GACpB,OAAO,CAET"}
package/lib/tree/any.js DELETED
@@ -1,104 +0,0 @@
1
- /**
2
- * Import from node-base to avoid circular dependency.
3
- * The patching happens in node.ts
4
- */
5
- import { Node, defineType, F_STATIC } from './node-base.js';
6
- import { Nil } from './nil.js';
7
- /**
8
- * Any is a simple token that has a string value and a role.
9
- * Sometimes that role is unspecified. Think of it as a generic,
10
- * and a placeholder for tokens that don't have anything special
11
- * to do during evaluation.
12
- *
13
- * Called "Anonymous" in Less's original tree, but "anonymous"
14
- * was somewhat a counter-intuitive name.
15
- */
16
- export class Any extends Node {
17
- type = 'Any';
18
- shortType = 'any';
19
- constructor(...args) {
20
- super(...args);
21
- this.addFlag(F_STATIC);
22
- }
23
- preEval(context) {
24
- this.preEvaluated = true;
25
- // Index should already be assigned by parent Rules
26
- if (this.options.role === 'charset') {
27
- if (!context.currentCharset) {
28
- /** @todo - Throw error in the future? */
29
- context.currentCharset = this;
30
- }
31
- return new Nil();
32
- }
33
- return this;
34
- }
35
- // Any values are static and don't need evaluation
36
- evalNode(context) {
37
- return this;
38
- }
39
- compare(other) {
40
- // In Less guards, quoted strings are distinct from bare identifiers.
41
- if (other.type === 'Quoted') {
42
- return undefined;
43
- }
44
- if (other.type === 'Any' || other.type === 'Keyword') {
45
- return this.value === String(other.valueOf?.() ?? '') ? 0 : undefined;
46
- }
47
- if (other.type === 'Number' || other.type === 'Dimension') {
48
- const text = this.value.trim();
49
- if (!/^[-+]?(?:\d+\.?\d*|\.\d+)$/.test(text)) {
50
- return undefined;
51
- }
52
- const otherValue = other.value;
53
- const otherNumber = otherValue?.number;
54
- const otherUnit = otherValue?.unit;
55
- if (typeof otherNumber !== 'number') {
56
- return undefined;
57
- }
58
- if (other.type === 'Dimension' && otherUnit) {
59
- return undefined;
60
- }
61
- return Number(text) === otherNumber ? 0 : undefined;
62
- }
63
- if (other.toString) {
64
- const normalize = (s) => s.replace(/;\s*/g, ', ').replace(/\s+/g, ' ').trim();
65
- return normalize(this.toString()) === normalize(other.toString()) ? 0 : undefined;
66
- }
67
- return undefined;
68
- }
69
- }
70
- // Custom any function that properly handles role narrowing
71
- export function any(value, options) {
72
- return new Any(value, options);
73
- }
74
- defineType(Any, 'Any');
75
- /** Legacy class - remove? */
76
- export class Anonymous extends Any {
77
- }
78
- defineType(Anonymous, 'Anonymous');
79
- /**
80
- * Keyword represents a CSS keyword value (e.g., 'auto', 'none', 'inherit', 'and', 'or').
81
- *
82
- * This is a convenience class that extends Any with role: 'keyword' fixed.
83
- * It provides better type safety and aligns with Less.js's Keyword node type
84
- * for compatibility purposes.
85
- *
86
- * Note: In Jess, boolean values ('true', 'false') are represented as Bool nodes,
87
- * not Keyword nodes, unlike Less.js where they are Keyword instances.
88
- */
89
- export class Keyword extends Any {
90
- type = 'Keyword';
91
- shortType = 'keyword';
92
- constructor(value, options, location, context) {
93
- // Force role to 'keyword'
94
- super(value, { ...options, role: 'keyword' }, location, context);
95
- }
96
- }
97
- defineType(Keyword, 'Keyword');
98
- /**
99
- * Helper function to create a Keyword node
100
- */
101
- export function keyword(value, options, location, context) {
102
- return new Keyword(value, options, location, context);
103
- }
104
- //# sourceMappingURL=any.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"any.js","sourceRoot":"","sources":["../../src/tree/any.ts"],"names":[],"mappings":"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"}
@@ -1,53 +0,0 @@
1
- import { Node, type NodeOptions } from './node.js';
2
- import { Ruleset } from './ruleset.js';
3
- import { Any } from './any.js';
4
- import { Rules } from './rules.js';
5
- import type { Context } from '../context.js';
6
- import { type FinalPrintOptions, type PrintOptions } from './util/print.js';
7
- import { type MaybePromise } from '@jesscss/awaitable-pipe';
8
- import { Nil } from './nil.js';
9
- export type AtRuleValue = {
10
- name: Any<'atkeyword'>;
11
- /** The prelude */
12
- prelude?: Node;
13
- rules?: Rules;
14
- };
15
- export declare const NESTABLE_AT_RULES: readonly ["@media", "@supports", "@layer", "@container", "@scope"];
16
- export declare const ROOT_ONLY_AT_RULES: readonly ["@charset", "@import", "@namespace", "@font-face", "@keyframes", "@page", "@property", "@counter-style", "@viewport"];
17
- export type AtRuleOptions = NodeOptions;
18
- /**
19
- * A rule like @charset or @media
20
- */
21
- export declare class AtRule extends Node<AtRuleValue, AtRuleOptions> {
22
- type: "AtRule";
23
- shortType: "atrule";
24
- allowRoot: boolean;
25
- frames: (Ruleset | AtRule)[] | undefined;
26
- protected _valueOf: string | undefined;
27
- /** Used for equality comparison with other at-rules */
28
- valueOf(): string;
29
- /**
30
- * Means: can bubble ruleset parents to children.
31
- */
32
- isNestable(): boolean;
33
- /**
34
- * For legacy collapseNesting, will push ruleset to root silently.
35
- */
36
- isRootOnly(): boolean;
37
- isHoisted(opts: {
38
- collapseNesting?: boolean;
39
- }): boolean;
40
- toTrimmedString(options?: PrintOptions): string;
41
- /**
42
- * Pre-evaluate name and prelude (similar to Ruleset.preEval)
43
- * This allows us to extract layer names before rules are evaluated
44
- */
45
- preEval(context: Context): MaybePromise<AtRule | Nil>;
46
- private _preEvalPrelude;
47
- private _extractAndStoreLayerName;
48
- /** Render the opening of this at-rule (name and prelude) */
49
- getHeaderString(options: FinalPrintOptions, withoutComments?: boolean): string;
50
- evalNode(context: Context): MaybePromise<AtRule | Nil>;
51
- }
52
- export declare const atrule: (value?: AtRuleValue | undefined, options?: NodeOptions | undefined, location?: import("./node-base.js").LocationInfo | undefined) => AtRule;
53
- //# sourceMappingURL=at-rule.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"at-rule.d.ts","sourceRoot":"","sources":["../../src/tree/at-rule.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAyB,KAAK,WAAW,EAAE,MAAM,WAAW,CAAC;AAC1E,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,OAAO,EAAE,GAAG,EAAE,MAAM,UAAU,CAAC;AAC/B,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACnC,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AA0B7C,OAAO,EAAE,KAAK,iBAAiB,EAAE,KAAK,YAAY,EAAmB,MAAM,iBAAiB,CAAC;AAC7F,OAAO,EAAc,KAAK,YAAY,EAAQ,MAAM,yBAAyB,CAAC;AAK9E,OAAO,EAAE,GAAG,EAAE,MAAM,UAAU,CAAC;AAE/B,MAAM,MAAM,WAAW,GAAG;IACxB,IAAI,EAAE,GAAG,CAAC,WAAW,CAAC,CAAC;IACvB,kBAAkB;IAClB,OAAO,CAAC,EAAE,IAAI,CAAC;IACf,KAAK,CAAC,EAAE,KAAK,CAAC;CACf,CAAC;AAEF,eAAO,MAAM,iBAAiB,oEAAqE,CAAC;AACpG,eAAO,MAAM,kBAAkB,iIAUrB,CAAC;AAEX,MAAM,MAAM,aAAa,GAAG,WAAW,CAAC;AAExC;;GAEG;AACH,qBAAa,MAAO,SAAQ,IAAI,CAAC,WAAW,EAAE,aAAa,CAAC;IAC1D,IAAI,EAAG,QAAQ,CAAU;IACzB,SAAS,EAAG,QAAQ,CAAU;IACrB,SAAS,UAAQ;IAE1B,MAAM,EAAE,CAAC,OAAO,GAAG,MAAM,CAAC,EAAE,GAAG,SAAS,CAAC;IAEzC,SAAS,CAAC,QAAQ,EAAE,MAAM,GAAG,SAAS,CAAC;IAEvC,uDAAuD;IAC9C,OAAO;IAIhB;;OAEG;IACH,UAAU;IAIV;;OAEG;IACH,UAAU;IAIV,SAAS,CAAC,IAAI,EAAE;QAAE,eAAe,CAAC,EAAE,OAAO,CAAA;KAAE;IAIpC,eAAe,CAAC,OAAO,CAAC,EAAE,YAAY,GAAG,MAAM;IAKxD;;;OAGG;IACM,OAAO,CAAC,OAAO,EAAE,OAAO,GAAG,YAAY,CAAC,MAAM,GAAG,GAAG,CAAC;IAyB9D,OAAO,CAAC,eAAe;IAkFvB,OAAO,CAAC,yBAAyB;IAqBjC,4DAA4D;IAC5D,eAAe,CAAC,OAAO,EAAE,iBAAiB,EAAE,eAAe,CAAC,EAAE,OAAO,GAAG,MAAM;IAqDrE,QAAQ,CAAC,OAAO,EAAE,OAAO,GAAG,YAAY,CAAC,MAAM,GAAG,GAAG,CAAC;CAiThE;AAED,eAAO,MAAM,MAAM,8IAA+B,CAAC"}