@jesscss/core 2.0.0-alpha.1

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 (423) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +9 -0
  3. package/lib/context.d.ts +352 -0
  4. package/lib/context.d.ts.map +1 -0
  5. package/lib/context.js +636 -0
  6. package/lib/context.js.map +1 -0
  7. package/lib/conversions.d.ts +73 -0
  8. package/lib/conversions.d.ts.map +1 -0
  9. package/lib/conversions.js +253 -0
  10. package/lib/conversions.js.map +1 -0
  11. package/lib/debug-log.d.ts +2 -0
  12. package/lib/debug-log.d.ts.map +1 -0
  13. package/lib/debug-log.js +27 -0
  14. package/lib/debug-log.js.map +1 -0
  15. package/lib/define-function.d.ts +587 -0
  16. package/lib/define-function.d.ts.map +1 -0
  17. package/lib/define-function.js +726 -0
  18. package/lib/define-function.js.map +1 -0
  19. package/lib/deprecation.d.ts +34 -0
  20. package/lib/deprecation.d.ts.map +1 -0
  21. package/lib/deprecation.js +57 -0
  22. package/lib/deprecation.js.map +1 -0
  23. package/lib/index.d.ts +22 -0
  24. package/lib/index.d.ts.map +1 -0
  25. package/lib/index.js +23 -0
  26. package/lib/index.js.map +1 -0
  27. package/lib/jess-error.d.ts +343 -0
  28. package/lib/jess-error.d.ts.map +1 -0
  29. package/lib/jess-error.js +508 -0
  30. package/lib/jess-error.js.map +1 -0
  31. package/lib/logger/deprecation-processing.d.ts +41 -0
  32. package/lib/logger/deprecation-processing.d.ts.map +1 -0
  33. package/lib/logger/deprecation-processing.js +81 -0
  34. package/lib/logger/deprecation-processing.js.map +1 -0
  35. package/lib/logger.d.ts +10 -0
  36. package/lib/logger.d.ts.map +1 -0
  37. package/lib/logger.js +20 -0
  38. package/lib/logger.js.map +1 -0
  39. package/lib/plugin.d.ts +94 -0
  40. package/lib/plugin.d.ts.map +1 -0
  41. package/lib/plugin.js +174 -0
  42. package/lib/plugin.js.map +1 -0
  43. package/lib/tree/ampersand.d.ts +94 -0
  44. package/lib/tree/ampersand.d.ts.map +1 -0
  45. package/lib/tree/ampersand.js +269 -0
  46. package/lib/tree/ampersand.js.map +1 -0
  47. package/lib/tree/any.d.ts +58 -0
  48. package/lib/tree/any.d.ts.map +1 -0
  49. package/lib/tree/any.js +101 -0
  50. package/lib/tree/any.js.map +1 -0
  51. package/lib/tree/at-rule.d.ts +53 -0
  52. package/lib/tree/at-rule.d.ts.map +1 -0
  53. package/lib/tree/at-rule.js +503 -0
  54. package/lib/tree/at-rule.js.map +1 -0
  55. package/lib/tree/block.d.ts +22 -0
  56. package/lib/tree/block.d.ts.map +1 -0
  57. package/lib/tree/block.js +24 -0
  58. package/lib/tree/block.js.map +1 -0
  59. package/lib/tree/bool.d.ts +17 -0
  60. package/lib/tree/bool.d.ts.map +1 -0
  61. package/lib/tree/bool.js +24 -0
  62. package/lib/tree/bool.js.map +1 -0
  63. package/lib/tree/call.d.ts +66 -0
  64. package/lib/tree/call.d.ts.map +1 -0
  65. package/lib/tree/call.js +306 -0
  66. package/lib/tree/call.js.map +1 -0
  67. package/lib/tree/collection.d.ts +30 -0
  68. package/lib/tree/collection.d.ts.map +1 -0
  69. package/lib/tree/collection.js +37 -0
  70. package/lib/tree/collection.js.map +1 -0
  71. package/lib/tree/color.d.ts +101 -0
  72. package/lib/tree/color.d.ts.map +1 -0
  73. package/lib/tree/color.js +513 -0
  74. package/lib/tree/color.js.map +1 -0
  75. package/lib/tree/combinator.d.ts +12 -0
  76. package/lib/tree/combinator.d.ts.map +1 -0
  77. package/lib/tree/combinator.js +8 -0
  78. package/lib/tree/combinator.js.map +1 -0
  79. package/lib/tree/comment.d.ts +20 -0
  80. package/lib/tree/comment.d.ts.map +1 -0
  81. package/lib/tree/comment.js +18 -0
  82. package/lib/tree/comment.js.map +1 -0
  83. package/lib/tree/condition.d.ts +31 -0
  84. package/lib/tree/condition.d.ts.map +1 -0
  85. package/lib/tree/condition.js +103 -0
  86. package/lib/tree/condition.js.map +1 -0
  87. package/lib/tree/control.d.ts +104 -0
  88. package/lib/tree/control.d.ts.map +1 -0
  89. package/lib/tree/control.js +430 -0
  90. package/lib/tree/control.js.map +1 -0
  91. package/lib/tree/declaration-custom.d.ts +18 -0
  92. package/lib/tree/declaration-custom.d.ts.map +1 -0
  93. package/lib/tree/declaration-custom.js +24 -0
  94. package/lib/tree/declaration-custom.js.map +1 -0
  95. package/lib/tree/declaration-var.d.ts +36 -0
  96. package/lib/tree/declaration-var.d.ts.map +1 -0
  97. package/lib/tree/declaration-var.js +63 -0
  98. package/lib/tree/declaration-var.js.map +1 -0
  99. package/lib/tree/declaration.d.ts +78 -0
  100. package/lib/tree/declaration.d.ts.map +1 -0
  101. package/lib/tree/declaration.js +289 -0
  102. package/lib/tree/declaration.js.map +1 -0
  103. package/lib/tree/default-guard.d.ts +15 -0
  104. package/lib/tree/default-guard.d.ts.map +1 -0
  105. package/lib/tree/default-guard.js +19 -0
  106. package/lib/tree/default-guard.js.map +1 -0
  107. package/lib/tree/dimension.d.ts +33 -0
  108. package/lib/tree/dimension.d.ts.map +1 -0
  109. package/lib/tree/dimension.js +291 -0
  110. package/lib/tree/dimension.js.map +1 -0
  111. package/lib/tree/expression.d.ts +24 -0
  112. package/lib/tree/expression.d.ts.map +1 -0
  113. package/lib/tree/expression.js +28 -0
  114. package/lib/tree/expression.js.map +1 -0
  115. package/lib/tree/extend-list.d.ts +23 -0
  116. package/lib/tree/extend-list.d.ts.map +1 -0
  117. package/lib/tree/extend-list.js +20 -0
  118. package/lib/tree/extend-list.js.map +1 -0
  119. package/lib/tree/extend.d.ts +47 -0
  120. package/lib/tree/extend.d.ts.map +1 -0
  121. package/lib/tree/extend.js +292 -0
  122. package/lib/tree/extend.js.map +1 -0
  123. package/lib/tree/function.d.ts +48 -0
  124. package/lib/tree/function.d.ts.map +1 -0
  125. package/lib/tree/function.js +74 -0
  126. package/lib/tree/function.js.map +1 -0
  127. package/lib/tree/import-js.d.ts +35 -0
  128. package/lib/tree/import-js.d.ts.map +1 -0
  129. package/lib/tree/import-js.js +45 -0
  130. package/lib/tree/import-js.js.map +1 -0
  131. package/lib/tree/import-style.d.ts +156 -0
  132. package/lib/tree/import-style.d.ts.map +1 -0
  133. package/lib/tree/import-style.js +556 -0
  134. package/lib/tree/import-style.js.map +1 -0
  135. package/lib/tree/index.d.ts +71 -0
  136. package/lib/tree/index.d.ts.map +1 -0
  137. package/lib/tree/index.js +95 -0
  138. package/lib/tree/index.js.map +1 -0
  139. package/lib/tree/interpolated-reference.d.ts +24 -0
  140. package/lib/tree/interpolated-reference.d.ts.map +1 -0
  141. package/lib/tree/interpolated-reference.js +37 -0
  142. package/lib/tree/interpolated-reference.js.map +1 -0
  143. package/lib/tree/interpolated.d.ts +62 -0
  144. package/lib/tree/interpolated.d.ts.map +1 -0
  145. package/lib/tree/interpolated.js +204 -0
  146. package/lib/tree/interpolated.js.map +1 -0
  147. package/lib/tree/js-array.d.ts +10 -0
  148. package/lib/tree/js-array.d.ts.map +1 -0
  149. package/lib/tree/js-array.js +10 -0
  150. package/lib/tree/js-array.js.map +1 -0
  151. package/lib/tree/js-expr.d.ts +23 -0
  152. package/lib/tree/js-expr.d.ts.map +1 -0
  153. package/lib/tree/js-expr.js +28 -0
  154. package/lib/tree/js-expr.js.map +1 -0
  155. package/lib/tree/js-function.d.ts +20 -0
  156. package/lib/tree/js-function.d.ts.map +1 -0
  157. package/lib/tree/js-function.js +16 -0
  158. package/lib/tree/js-function.js.map +1 -0
  159. package/lib/tree/js-object.d.ts +10 -0
  160. package/lib/tree/js-object.d.ts.map +1 -0
  161. package/lib/tree/js-object.js +10 -0
  162. package/lib/tree/js-object.js.map +1 -0
  163. package/lib/tree/list.d.ts +38 -0
  164. package/lib/tree/list.d.ts.map +1 -0
  165. package/lib/tree/list.js +83 -0
  166. package/lib/tree/list.js.map +1 -0
  167. package/lib/tree/log.d.ts +29 -0
  168. package/lib/tree/log.d.ts.map +1 -0
  169. package/lib/tree/log.js +56 -0
  170. package/lib/tree/log.js.map +1 -0
  171. package/lib/tree/mixin.d.ts +87 -0
  172. package/lib/tree/mixin.d.ts.map +1 -0
  173. package/lib/tree/mixin.js +112 -0
  174. package/lib/tree/mixin.js.map +1 -0
  175. package/lib/tree/negative.d.ts +17 -0
  176. package/lib/tree/negative.d.ts.map +1 -0
  177. package/lib/tree/negative.js +22 -0
  178. package/lib/tree/negative.js.map +1 -0
  179. package/lib/tree/nil.d.ts +31 -0
  180. package/lib/tree/nil.d.ts.map +1 -0
  181. package/lib/tree/nil.js +36 -0
  182. package/lib/tree/nil.js.map +1 -0
  183. package/lib/tree/node-base.d.ts +359 -0
  184. package/lib/tree/node-base.d.ts.map +1 -0
  185. package/lib/tree/node-base.js +884 -0
  186. package/lib/tree/node-base.js.map +1 -0
  187. package/lib/tree/node.d.ts +10 -0
  188. package/lib/tree/node.d.ts.map +1 -0
  189. package/lib/tree/node.js +45 -0
  190. package/lib/tree/node.js.map +1 -0
  191. package/lib/tree/number.d.ts +21 -0
  192. package/lib/tree/number.d.ts.map +1 -0
  193. package/lib/tree/number.js +27 -0
  194. package/lib/tree/number.js.map +1 -0
  195. package/lib/tree/operation.d.ts +26 -0
  196. package/lib/tree/operation.d.ts.map +1 -0
  197. package/lib/tree/operation.js +103 -0
  198. package/lib/tree/operation.js.map +1 -0
  199. package/lib/tree/paren.d.ts +18 -0
  200. package/lib/tree/paren.d.ts.map +1 -0
  201. package/lib/tree/paren.js +86 -0
  202. package/lib/tree/paren.js.map +1 -0
  203. package/lib/tree/query-condition.d.ts +17 -0
  204. package/lib/tree/query-condition.d.ts.map +1 -0
  205. package/lib/tree/query-condition.js +39 -0
  206. package/lib/tree/query-condition.js.map +1 -0
  207. package/lib/tree/quoted.d.ts +27 -0
  208. package/lib/tree/quoted.d.ts.map +1 -0
  209. package/lib/tree/quoted.js +66 -0
  210. package/lib/tree/quoted.js.map +1 -0
  211. package/lib/tree/range.d.ts +33 -0
  212. package/lib/tree/range.d.ts.map +1 -0
  213. package/lib/tree/range.js +47 -0
  214. package/lib/tree/range.js.map +1 -0
  215. package/lib/tree/reference.d.ts +76 -0
  216. package/lib/tree/reference.d.ts.map +1 -0
  217. package/lib/tree/reference.js +521 -0
  218. package/lib/tree/reference.js.map +1 -0
  219. package/lib/tree/rest.d.ts +15 -0
  220. package/lib/tree/rest.d.ts.map +1 -0
  221. package/lib/tree/rest.js +32 -0
  222. package/lib/tree/rest.js.map +1 -0
  223. package/lib/tree/rules-raw.d.ts +17 -0
  224. package/lib/tree/rules-raw.d.ts.map +1 -0
  225. package/lib/tree/rules-raw.js +37 -0
  226. package/lib/tree/rules-raw.js.map +1 -0
  227. package/lib/tree/rules.d.ts +255 -0
  228. package/lib/tree/rules.d.ts.map +1 -0
  229. package/lib/tree/rules.js +2293 -0
  230. package/lib/tree/rules.js.map +1 -0
  231. package/lib/tree/ruleset.d.ts +91 -0
  232. package/lib/tree/ruleset.d.ts.map +1 -0
  233. package/lib/tree/ruleset.js +506 -0
  234. package/lib/tree/ruleset.js.map +1 -0
  235. package/lib/tree/selector-attr.d.ts +31 -0
  236. package/lib/tree/selector-attr.d.ts.map +1 -0
  237. package/lib/tree/selector-attr.js +99 -0
  238. package/lib/tree/selector-attr.js.map +1 -0
  239. package/lib/tree/selector-basic.d.ts +23 -0
  240. package/lib/tree/selector-basic.d.ts.map +1 -0
  241. package/lib/tree/selector-basic.js +34 -0
  242. package/lib/tree/selector-basic.js.map +1 -0
  243. package/lib/tree/selector-capture.d.ts +23 -0
  244. package/lib/tree/selector-capture.d.ts.map +1 -0
  245. package/lib/tree/selector-capture.js +34 -0
  246. package/lib/tree/selector-capture.js.map +1 -0
  247. package/lib/tree/selector-complex.d.ts +40 -0
  248. package/lib/tree/selector-complex.d.ts.map +1 -0
  249. package/lib/tree/selector-complex.js +143 -0
  250. package/lib/tree/selector-complex.js.map +1 -0
  251. package/lib/tree/selector-compound.d.ts +16 -0
  252. package/lib/tree/selector-compound.d.ts.map +1 -0
  253. package/lib/tree/selector-compound.js +114 -0
  254. package/lib/tree/selector-compound.js.map +1 -0
  255. package/lib/tree/selector-interpolated.d.ts +23 -0
  256. package/lib/tree/selector-interpolated.d.ts.map +1 -0
  257. package/lib/tree/selector-interpolated.js +27 -0
  258. package/lib/tree/selector-interpolated.js.map +1 -0
  259. package/lib/tree/selector-list.d.ts +17 -0
  260. package/lib/tree/selector-list.d.ts.map +1 -0
  261. package/lib/tree/selector-list.js +184 -0
  262. package/lib/tree/selector-list.js.map +1 -0
  263. package/lib/tree/selector-pseudo.d.ts +42 -0
  264. package/lib/tree/selector-pseudo.d.ts.map +1 -0
  265. package/lib/tree/selector-pseudo.js +191 -0
  266. package/lib/tree/selector-pseudo.js.map +1 -0
  267. package/lib/tree/selector-simple.d.ts +5 -0
  268. package/lib/tree/selector-simple.d.ts.map +1 -0
  269. package/lib/tree/selector-simple.js +6 -0
  270. package/lib/tree/selector-simple.js.map +1 -0
  271. package/lib/tree/selector.d.ts +43 -0
  272. package/lib/tree/selector.d.ts.map +1 -0
  273. package/lib/tree/selector.js +56 -0
  274. package/lib/tree/selector.js.map +1 -0
  275. package/lib/tree/sequence.d.ts +43 -0
  276. package/lib/tree/sequence.d.ts.map +1 -0
  277. package/lib/tree/sequence.js +148 -0
  278. package/lib/tree/sequence.js.map +1 -0
  279. package/lib/tree/tree.d.ts +87 -0
  280. package/lib/tree/tree.d.ts.map +1 -0
  281. package/lib/tree/tree.js +2 -0
  282. package/lib/tree/tree.js.map +1 -0
  283. package/lib/tree/url.d.ts +18 -0
  284. package/lib/tree/url.d.ts.map +1 -0
  285. package/lib/tree/url.js +35 -0
  286. package/lib/tree/url.js.map +1 -0
  287. package/lib/tree/util/__tests__/debug-log.d.ts +1 -0
  288. package/lib/tree/util/__tests__/debug-log.d.ts.map +1 -0
  289. package/lib/tree/util/__tests__/debug-log.js +36 -0
  290. package/lib/tree/util/__tests__/debug-log.js.map +1 -0
  291. package/lib/tree/util/calculate.d.ts +3 -0
  292. package/lib/tree/util/calculate.d.ts.map +1 -0
  293. package/lib/tree/util/calculate.js +10 -0
  294. package/lib/tree/util/calculate.js.map +1 -0
  295. package/lib/tree/util/cast.d.ts +10 -0
  296. package/lib/tree/util/cast.d.ts.map +1 -0
  297. package/lib/tree/util/cast.js +87 -0
  298. package/lib/tree/util/cast.js.map +1 -0
  299. package/lib/tree/util/cloning.d.ts +4 -0
  300. package/lib/tree/util/cloning.d.ts.map +1 -0
  301. package/lib/tree/util/cloning.js +8 -0
  302. package/lib/tree/util/cloning.js.map +1 -0
  303. package/lib/tree/util/collections.d.ts +57 -0
  304. package/lib/tree/util/collections.d.ts.map +1 -0
  305. package/lib/tree/util/collections.js +136 -0
  306. package/lib/tree/util/collections.js.map +1 -0
  307. package/lib/tree/util/compare.d.ts +11 -0
  308. package/lib/tree/util/compare.d.ts.map +1 -0
  309. package/lib/tree/util/compare.js +89 -0
  310. package/lib/tree/util/compare.js.map +1 -0
  311. package/lib/tree/util/extend-helpers.d.ts +2 -0
  312. package/lib/tree/util/extend-helpers.d.ts.map +1 -0
  313. package/lib/tree/util/extend-helpers.js +2 -0
  314. package/lib/tree/util/extend-helpers.js.map +1 -0
  315. package/lib/tree/util/extend-roots.d.ts +37 -0
  316. package/lib/tree/util/extend-roots.d.ts.map +1 -0
  317. package/lib/tree/util/extend-roots.js +682 -0
  318. package/lib/tree/util/extend-roots.js.map +1 -0
  319. package/lib/tree/util/extend-roots.old.d.ts +132 -0
  320. package/lib/tree/util/extend-roots.old.d.ts.map +1 -0
  321. package/lib/tree/util/extend-roots.old.js +2272 -0
  322. package/lib/tree/util/extend-roots.old.js.map +1 -0
  323. package/lib/tree/util/extend-trace-debug.d.ts +13 -0
  324. package/lib/tree/util/extend-trace-debug.d.ts.map +1 -0
  325. package/lib/tree/util/extend-trace-debug.js +34 -0
  326. package/lib/tree/util/extend-trace-debug.js.map +1 -0
  327. package/lib/tree/util/extend.d.ts +218 -0
  328. package/lib/tree/util/extend.d.ts.map +1 -0
  329. package/lib/tree/util/extend.js +3033 -0
  330. package/lib/tree/util/extend.js.map +1 -0
  331. package/lib/tree/util/find-extendable-locations.d.ts +2 -0
  332. package/lib/tree/util/find-extendable-locations.d.ts.map +1 -0
  333. package/lib/tree/util/find-extendable-locations.js +2 -0
  334. package/lib/tree/util/find-extendable-locations.js.map +1 -0
  335. package/lib/tree/util/format.d.ts +20 -0
  336. package/lib/tree/util/format.d.ts.map +1 -0
  337. package/lib/tree/util/format.js +67 -0
  338. package/lib/tree/util/format.js.map +1 -0
  339. package/lib/tree/util/is-node.d.ts +13 -0
  340. package/lib/tree/util/is-node.d.ts.map +1 -0
  341. package/lib/tree/util/is-node.js +43 -0
  342. package/lib/tree/util/is-node.js.map +1 -0
  343. package/lib/tree/util/print.d.ts +80 -0
  344. package/lib/tree/util/print.d.ts.map +1 -0
  345. package/lib/tree/util/print.js +205 -0
  346. package/lib/tree/util/print.js.map +1 -0
  347. package/lib/tree/util/process-leading-is.d.ts +25 -0
  348. package/lib/tree/util/process-leading-is.d.ts.map +1 -0
  349. package/lib/tree/util/process-leading-is.js +364 -0
  350. package/lib/tree/util/process-leading-is.js.map +1 -0
  351. package/lib/tree/util/recursion-helper.d.ts +15 -0
  352. package/lib/tree/util/recursion-helper.d.ts.map +1 -0
  353. package/lib/tree/util/recursion-helper.js +43 -0
  354. package/lib/tree/util/recursion-helper.js.map +1 -0
  355. package/lib/tree/util/regex.d.ts +4 -0
  356. package/lib/tree/util/regex.d.ts.map +1 -0
  357. package/lib/tree/util/regex.js +4 -0
  358. package/lib/tree/util/regex.js.map +1 -0
  359. package/lib/tree/util/registry-utils.d.ts +192 -0
  360. package/lib/tree/util/registry-utils.d.ts.map +1 -0
  361. package/lib/tree/util/registry-utils.js +1242 -0
  362. package/lib/tree/util/registry-utils.js.map +1 -0
  363. package/lib/tree/util/ruleset-trace.d.ts +4 -0
  364. package/lib/tree/util/ruleset-trace.d.ts.map +1 -0
  365. package/lib/tree/util/ruleset-trace.js +14 -0
  366. package/lib/tree/util/ruleset-trace.js.map +1 -0
  367. package/lib/tree/util/selector-compare.d.ts +2 -0
  368. package/lib/tree/util/selector-compare.d.ts.map +1 -0
  369. package/lib/tree/util/selector-compare.js +2 -0
  370. package/lib/tree/util/selector-compare.js.map +1 -0
  371. package/lib/tree/util/selector-match-core.d.ts +171 -0
  372. package/lib/tree/util/selector-match-core.d.ts.map +1 -0
  373. package/lib/tree/util/selector-match-core.js +1578 -0
  374. package/lib/tree/util/selector-match-core.js.map +1 -0
  375. package/lib/tree/util/selector-utils.d.ts +30 -0
  376. package/lib/tree/util/selector-utils.d.ts.map +1 -0
  377. package/lib/tree/util/selector-utils.js +100 -0
  378. package/lib/tree/util/selector-utils.js.map +1 -0
  379. package/lib/tree/util/serialize-helper.d.ts +13 -0
  380. package/lib/tree/util/serialize-helper.d.ts.map +1 -0
  381. package/lib/tree/util/serialize-helper.js +387 -0
  382. package/lib/tree/util/serialize-helper.js.map +1 -0
  383. package/lib/tree/util/serialize-types.d.ts +9 -0
  384. package/lib/tree/util/serialize-types.d.ts.map +1 -0
  385. package/lib/tree/util/serialize-types.js +216 -0
  386. package/lib/tree/util/serialize-types.js.map +1 -0
  387. package/lib/tree/util/should-operate.d.ts +23 -0
  388. package/lib/tree/util/should-operate.d.ts.map +1 -0
  389. package/lib/tree/util/should-operate.js +46 -0
  390. package/lib/tree/util/should-operate.js.map +1 -0
  391. package/lib/tree/util/sourcemap.d.ts +7 -0
  392. package/lib/tree/util/sourcemap.d.ts.map +1 -0
  393. package/lib/tree/util/sourcemap.js +25 -0
  394. package/lib/tree/util/sourcemap.js.map +1 -0
  395. package/lib/types/config.d.ts +205 -0
  396. package/lib/types/config.d.ts.map +1 -0
  397. package/lib/types/config.js +2 -0
  398. package/lib/types/config.js.map +1 -0
  399. package/lib/types/index.d.ts +15 -0
  400. package/lib/types/index.d.ts.map +1 -0
  401. package/lib/types/index.js +3 -0
  402. package/lib/types/index.js.map +1 -0
  403. package/lib/types/modes.d.ts +24 -0
  404. package/lib/types/modes.d.ts.map +1 -0
  405. package/lib/types/modes.js +2 -0
  406. package/lib/types/modes.js.map +1 -0
  407. package/lib/types.d.ts +61 -0
  408. package/lib/types.d.ts.map +1 -0
  409. package/lib/types.js +2 -0
  410. package/lib/types.js.map +1 -0
  411. package/lib/use-webpack-resolver.d.ts +9 -0
  412. package/lib/use-webpack-resolver.d.ts.map +1 -0
  413. package/lib/use-webpack-resolver.js +41 -0
  414. package/lib/use-webpack-resolver.js.map +1 -0
  415. package/lib/visitor/index.d.ts +136 -0
  416. package/lib/visitor/index.d.ts.map +1 -0
  417. package/lib/visitor/index.js +135 -0
  418. package/lib/visitor/index.js.map +1 -0
  419. package/lib/visitor/less-visitor.d.ts +7 -0
  420. package/lib/visitor/less-visitor.d.ts.map +1 -0
  421. package/lib/visitor/less-visitor.js +7 -0
  422. package/lib/visitor/less-visitor.js.map +1 -0
  423. package/package.json +66 -0
@@ -0,0 +1,503 @@
1
+ import { Node, defineType, F_VISIBLE } from './node.js';
2
+ import { Ruleset } from './ruleset.js';
3
+ import { Any } from './any.js';
4
+ import { Rules } from './rules.js';
5
+ /**
6
+ * When collapseNesting/hoist wrapped at-rule rules in a single Ruleset(&),
7
+ * the real rulesets (.ma, .md, etc.) registered to the inner Rules (the wrapper
8
+ * Ruleset's rules). Register that inner Rules as a child extend root so
9
+ * processExtends can find them. Extend behavior must not depend on collapseNesting.
10
+ */
11
+ function registerInnerExtendRootIfHoisted(wrapperRules, context, layerName) {
12
+ if (wrapperRules.value.length !== 1) {
13
+ return;
14
+ }
15
+ const first = wrapperRules.value[0];
16
+ if (!isNode(first, 'Ruleset')) {
17
+ return;
18
+ }
19
+ const innerRules = first.value.rules;
20
+ if (!innerRules || !isNode(innerRules, 'Rules')) {
21
+ return;
22
+ }
23
+ context.extendRoots.registerRoot(innerRules, wrapperRules, { layerName });
24
+ }
25
+ import { getPrintOptions } from './util/print.js';
26
+ import { isThenable, pipe } from '@jesscss/awaitable-pipe';
27
+ import { Ampersand } from './ampersand.js';
28
+ import { isNode } from './util/is-node.js';
29
+ import { indent, normalizeIndent, serializeRulesContainer } from './util/serialize-helper.js';
30
+ import { Interpolated } from './interpolated.js';
31
+ import { Nil } from './nil.js';
32
+ export const NESTABLE_AT_RULES = ['@media', '@supports', '@layer', '@container', '@scope'];
33
+ export const ROOT_ONLY_AT_RULES = [
34
+ '@charset',
35
+ '@import',
36
+ '@namespace',
37
+ '@font-face',
38
+ '@keyframes',
39
+ '@page',
40
+ '@property',
41
+ '@counter-style',
42
+ '@viewport'
43
+ ];
44
+ /**
45
+ * A rule like @charset or @media
46
+ */
47
+ export class AtRule extends Node {
48
+ type = 'AtRule';
49
+ shortType = 'atrule';
50
+ allowRoot = true;
51
+ frames;
52
+ _valueOf;
53
+ /** Used for equality comparison with other at-rules */
54
+ valueOf() {
55
+ return (this._valueOf ??= (this.value.name.toString() + (this.value.prelude ? ' ' + this.value.prelude.valueOf() : '')));
56
+ }
57
+ /**
58
+ * Means: can bubble ruleset parents to children.
59
+ */
60
+ isNestable() {
61
+ return NESTABLE_AT_RULES.includes(this.value.name.valueOf());
62
+ }
63
+ /**
64
+ * For legacy collapseNesting, will push ruleset to root silently.
65
+ */
66
+ isRootOnly() {
67
+ return ROOT_ONLY_AT_RULES.includes(this.value.name.valueOf());
68
+ }
69
+ isHoisted(opts) {
70
+ return this.hoistToRoot ?? opts.collapseNesting ?? false;
71
+ }
72
+ toTrimmedString(options) {
73
+ options = getPrintOptions(options);
74
+ return serializeRulesContainer(this, options);
75
+ }
76
+ /**
77
+ * Pre-evaluate name and prelude (similar to Ruleset.preEval)
78
+ * This allows us to extract layer names before rules are evaluated
79
+ */
80
+ preEval(context) {
81
+ if (!this.preEvaluated) {
82
+ const node = this.maybeClone(context);
83
+ node.preEvaluated = true;
84
+ // Index should already be assigned by parent Rules
85
+ node.sourceNode ??= this;
86
+ // Evaluate name if needed (for interpolated names)
87
+ let { name } = node.value;
88
+ if (name && name instanceof Interpolated) {
89
+ const maybeKey = name.eval(context);
90
+ if (isThenable(maybeKey)) {
91
+ return maybeKey.then((key) => {
92
+ node.value.name = key;
93
+ return this._preEvalPrelude(node, context);
94
+ });
95
+ }
96
+ node.value.name = maybeKey;
97
+ }
98
+ return this._preEvalPrelude(node, context);
99
+ }
100
+ return this;
101
+ }
102
+ _preEvalPrelude(node, context) {
103
+ const { prelude, rules } = node.value;
104
+ // Preserve @import prelude as-authored (including comments). Evaluation here can
105
+ // normalize/strip comment tokens inside the prelude, but less.js expects them preserved.
106
+ const atRuleName = String(node.value.name.valueOf?.() ?? node.value.name ?? '').trim();
107
+ if (atRuleName === '@import') {
108
+ if (prelude) {
109
+ node.value.prelude = prelude;
110
+ }
111
+ // Reference branches are traversed for symbol/extend resolution, but plain
112
+ // CSS @import hoisting must remain a visible-output concern only.
113
+ if (!context.inReferenceImportScope) {
114
+ const topImports = (context.topImports ??= []);
115
+ const nodeLoc = node.location?.join(':') ?? '';
116
+ const nodeSig = `${node.value.name.valueOf?.() ?? node.value.name}:${node.value.prelude?.valueOf?.() ?? ''}`;
117
+ const alreadyQueued = topImports.some((queuedNode) => {
118
+ if (!isNode(queuedNode, 'AtRule')) {
119
+ return false;
120
+ }
121
+ const queued = queuedNode;
122
+ return (queued === node
123
+ || queued.sourceNode === node.sourceNode
124
+ || queued.sourceNode === node
125
+ || ((queued.location?.join(':') ?? '') === nodeLoc
126
+ && `${queued.value.name.valueOf?.() ?? queued.value.name}:${queued.value.prelude?.valueOf?.() ?? ''}` === nodeSig));
127
+ });
128
+ if (!alreadyQueued) {
129
+ topImports.push(node);
130
+ }
131
+ }
132
+ return new Nil();
133
+ }
134
+ // Defer prelude evaluation to evalNode so variable lookups happen in the correct
135
+ // call-time scope (e.g. mixin parameters referenced from nested @media preludes).
136
+ if (prelude) {
137
+ node.value.prelude = prelude;
138
+ }
139
+ // Depth-first: preEval child rules immediately so all nested rulesets/extends
140
+ // are registered in source order before we process extends.
141
+ if (rules && !rules.preEvaluated) {
142
+ // For nestable at-rules we do NOT push the original here. The body's Rules.preEval
143
+ // pushes the clone (the Rules that ends up in the tree) so rulesets register to it.
144
+ // Pushing the original would leave the clone's registry empty (extend + collapseNesting bug).
145
+ let pushedExtendRootForPreEval = false;
146
+ if (!node.isNestable()) {
147
+ context.extendRoots.pushExtendRoot(rules);
148
+ pushedExtendRootForPreEval = true;
149
+ }
150
+ // Root-only at-rules (@keyframes, @font-face, etc.): do not let parent ruleset frames
151
+ // pierce into the body — clear rulesetFrames so 0%/100% etc. are not combined with .parent.
152
+ const savedRulesetFramesForPreEval = node.isRootOnly() ? context.rulesetFrames : undefined;
153
+ if (node.isRootOnly()) {
154
+ context.rulesetFrames = [];
155
+ }
156
+ const preEvaldRules = rules.preEval(context);
157
+ if (isThenable(preEvaldRules)) {
158
+ return preEvaldRules.then((evaldRules) => {
159
+ if (savedRulesetFramesForPreEval !== undefined) {
160
+ context.rulesetFrames = savedRulesetFramesForPreEval;
161
+ }
162
+ if (pushedExtendRootForPreEval) {
163
+ context.extendRoots.popExtendRoot();
164
+ }
165
+ node.value.rules = evaldRules;
166
+ return node;
167
+ });
168
+ }
169
+ if (savedRulesetFramesForPreEval !== undefined) {
170
+ context.rulesetFrames = savedRulesetFramesForPreEval;
171
+ }
172
+ if (pushedExtendRootForPreEval) {
173
+ context.extendRoots.popExtendRoot();
174
+ }
175
+ node.value.rules = preEvaldRules;
176
+ }
177
+ return node;
178
+ }
179
+ _extractAndStoreLayerName(node, context) {
180
+ const atRuleName = node.value.name?.toTrimmedString?.() ?? node.value.name?.toString?.() ?? '';
181
+ if (atRuleName === '@layer' && node.value.prelude) {
182
+ const preludeStr = String(node.value.prelude.valueOf?.() ?? node.value.prelude.toTrimmedString?.() ?? node.value.prelude.toString?.() ?? '');
183
+ if (preludeStr) {
184
+ let parentLayerName;
185
+ for (let i = context.frames.length - 2; i >= 0; i--) {
186
+ const frame = context.frames[i];
187
+ if (isNode(frame, 'AtRule') && frame.value.name?.toTrimmedString?.() === '@layer' && frame.value.rules?.value?.includes(node)) {
188
+ parentLayerName = context.extendRoots.getLayerName(frame);
189
+ if (parentLayerName) {
190
+ break;
191
+ }
192
+ }
193
+ }
194
+ const layerName = parentLayerName ? `${parentLayerName}.${preludeStr}` : preludeStr;
195
+ context.extendRoots.setLayerName(node, layerName);
196
+ }
197
+ }
198
+ }
199
+ /** Render the opening of this at-rule (name and prelude) */
200
+ getHeaderString(options, withoutComments) {
201
+ const w = options.writer;
202
+ let { name, prelude, rules } = this.value;
203
+ let idt = indent(options.depth);
204
+ let out = idt;
205
+ if (withoutComments) {
206
+ name = name.copy(true);
207
+ if (prelude) {
208
+ prelude = prelude.copy(true);
209
+ }
210
+ }
211
+ const nameOut = w.capture(() => name.toString(options));
212
+ const nameEndsWithSpace = /\s$/.test(nameOut);
213
+ if (prelude) {
214
+ const preludeOut = w.capture(() => prelude.toString(options));
215
+ const preludeStartsWithSpace = /^\s/.test(preludeOut);
216
+ out += nameOut;
217
+ // If name ends with space AND prelude starts with space, trim the prelude's leading space
218
+ // Otherwise, add a space only if neither has spacing
219
+ let finalPreludeOut = preludeOut;
220
+ if (nameEndsWithSpace && preludeStartsWithSpace) {
221
+ finalPreludeOut = preludeOut.replace(/^\s+/, '');
222
+ }
223
+ else if (!nameEndsWithSpace && !preludeStartsWithSpace) {
224
+ out += ' ';
225
+ }
226
+ out += finalPreludeOut;
227
+ if (rules) {
228
+ const preludeEndsWithSpace = /\s$/.test(preludeOut);
229
+ if (!preludeEndsWithSpace) {
230
+ out += ' ';
231
+ }
232
+ out = normalizeIndent(out + '{', idt) + '\n';
233
+ }
234
+ else {
235
+ out = normalizeIndent(out + ';', idt);
236
+ }
237
+ }
238
+ else {
239
+ out += nameOut;
240
+ if (rules) {
241
+ if (!nameEndsWithSpace) {
242
+ out += ' ';
243
+ }
244
+ out = normalizeIndent(out + '{', idt) + '\n';
245
+ }
246
+ else {
247
+ out = normalizeIndent(out + ';', idt);
248
+ }
249
+ }
250
+ return out;
251
+ }
252
+ evalNode(context) {
253
+ let node = this;
254
+ // @plugin is handled by the Less compatibility plugin (preEval). If we reach eval and it's still visible, no plugin processed it.
255
+ const atName = String(node.value?.name?.valueOf?.() ?? '');
256
+ if (atName === '@plugin' && node.visible) {
257
+ throw new Error('@plugin is only supported when using the Less compatibility plugin (@jesscss/plugin-less-compat).');
258
+ }
259
+ // Check if this is a root-only at-rule that should bubble to root
260
+ // when nested inside a Ruleset. Use hoistToRoot for in-place rendering.
261
+ let shouldClearRulesetFrames = false;
262
+ if (context.bubbleRootAtRules && node.isRootOnly()) {
263
+ const hasRulesetParent = context.frames.some(f => isNode(f, 'Ruleset'));
264
+ if (hasRulesetParent) {
265
+ // Mark for hoisting - this will render at root level but in-place
266
+ node.hoistToRoot = true;
267
+ // We'll clear rulesetFrames when evaluating internal rules
268
+ // to prevent selector inheritance from piercing through
269
+ shouldClearRulesetFrames = true;
270
+ }
271
+ }
272
+ // Store frames snapshot for hoisting serialization
273
+ if (context.opts.collapseNesting || node.hoistToRoot) {
274
+ node.frames = [...context.frames];
275
+ }
276
+ const tryMergeNestedMedia = () => {
277
+ // Nested @media merge is currently disabled to match less.js fixture expectations.
278
+ // (Some fixtures expect nested @media blocks to remain nested rather than being
279
+ // rewritten as `@media a and b`.)
280
+ if (process.env.ENABLE_NESTED_MEDIA_MERGE !== 'true') {
281
+ return;
282
+ }
283
+ if (node.value.name?.valueOf?.() !== '@media') {
284
+ return;
285
+ }
286
+ const outerRules = node.value.rules;
287
+ if (!outerRules) {
288
+ return;
289
+ }
290
+ const visible = outerRules.value.filter(n => n.visible);
291
+ if (visible.length !== 1) {
292
+ return;
293
+ }
294
+ const only = visible[0];
295
+ if (!isNode(only, 'AtRule') || only.value.name?.valueOf?.() !== '@media') {
296
+ return;
297
+ }
298
+ const inner = only;
299
+ const innerRules = inner.value.rules;
300
+ if (!innerRules) {
301
+ return;
302
+ }
303
+ // Combine media queries using "and" like Less does.
304
+ const outerPrelude = node.value.prelude;
305
+ const innerPrelude = inner.value.prelude;
306
+ if (outerPrelude && innerPrelude) {
307
+ // Build a normalized text prelude to avoid double-spacing from nested sequences.
308
+ const outerText = outerPrelude.toTrimmedString().trim();
309
+ const innerText = innerPrelude.toTrimmedString().trim();
310
+ const combined = `${outerText} and ${innerText}`.replace(/[ \t]+/g, ' ').trim();
311
+ node.value.prelude = new Any(combined);
312
+ }
313
+ else {
314
+ node.value.prelude = outerPrelude ?? innerPrelude;
315
+ }
316
+ // Replace outer rules with the inner rules (flatten nested media).
317
+ node.value.rules = innerRules;
318
+ node.adopt(innerRules);
319
+ };
320
+ return pipe(() => {
321
+ // Evaluate prelude in the correct scope (mixin params, vars, etc.).
322
+ let { prelude } = node.value;
323
+ if (prelude) {
324
+ // Evaluate the prelude in the outer (enclosing) Rules scope, not the nested @media Rules scope.
325
+ // This matches Less behavior for mixin parameters referenced from nested @media preludes.
326
+ const savedRulesContext = context.rulesContext;
327
+ let liftedRulesContext = savedRulesContext;
328
+ // If our current rulesContext is a Rules whose parent is an AtRule, lift to the enclosing Rules.
329
+ if (liftedRulesContext && isNode(liftedRulesContext, 'Rules')) {
330
+ let cursor = liftedRulesContext;
331
+ let depth = 0;
332
+ while (cursor?.parent && depth++ < 10) {
333
+ if (isNode(cursor.parent, 'AtRule') && isNode(cursor.parent.parent, 'Rules')) {
334
+ cursor = cursor.parent.parent;
335
+ continue;
336
+ }
337
+ break;
338
+ }
339
+ liftedRulesContext = cursor;
340
+ }
341
+ context.rulesContext = liftedRulesContext;
342
+ const out = prelude.eval(context);
343
+ context.rulesContext = savedRulesContext;
344
+ if (isThenable(out)) {
345
+ return out.then((n) => {
346
+ node.value.prelude = n;
347
+ return undefined;
348
+ });
349
+ }
350
+ node.value.prelude = out;
351
+ }
352
+ }, () => {
353
+ let { rules } = node.value;
354
+ if (rules) {
355
+ if (context.opts.collapseNesting) {
356
+ node.hoistToRoot = true;
357
+ }
358
+ // Push to frames before evaluating rules so we can use context.frames to find parent layers
359
+ // This allows nested layers to find their parent layer names
360
+ // NOTE: We do NOT pop here - the frame must remain accessible during rules evaluation
361
+ // The frame will be popped at the end of evalNode
362
+ context.frames.push(node);
363
+ // Extract and store layer name AFTER pushing to frames but BEFORE evaluating rules
364
+ // This ensures parent layers are already on the stack when we look for them
365
+ this._extractAndStoreLayerName(node, context);
366
+ // Wrap in Ruleset(&) when hoisted for nestable at-rules only. Do NOT wrap @keyframes,
367
+ // @font-face, or other at-rules in ROOT_ONLY_AT_RULES — their children must not get
368
+ // a wrapper so keyframe percentages (0%, 100%) etc. are not combined with parent selectors.
369
+ // Required for serialization: rulesets inside @media need this wrapper to output
370
+ // e.g. ".parent { font-size: 14px; }" inside @media.
371
+ if (node.isNestable() && !node.isRootOnly() && node.isHoisted(context.opts)) {
372
+ let existingRules = rules;
373
+ rules = Rules.create([
374
+ Ruleset.create({
375
+ selector: Ampersand.create(undefined),
376
+ rules: existingRules
377
+ }, { generated: true })
378
+ ]).inherit(existingRules);
379
+ node.adopt(rules);
380
+ }
381
+ // Register extend root for nestable at-rules (including @layer).
382
+ // Run preEval first so we push and later register the Rules that is actually evaluated
383
+ // (clone or original). Otherwise we push the original but eval runs on a clone, so the
384
+ // registered root has no rulesets and extend-chaining / nested at-rule extends fail.
385
+ let pushedExtendRoot = false;
386
+ let parentExtendRoot;
387
+ let bodyToEval = rules;
388
+ if (node.isNestable()) {
389
+ parentExtendRoot = context.extendRoots.getCurrentExtendRoot();
390
+ const preEvalResult = rules.preEval(context);
391
+ if (isThenable(preEvalResult)) {
392
+ return preEvalResult.then((resolved) => {
393
+ bodyToEval = resolved;
394
+ context.extendRoots.pushExtendRoot(bodyToEval);
395
+ pushedExtendRoot = true;
396
+ const savedRulesetFrames = shouldClearRulesetFrames ? context.rulesetFrames : undefined;
397
+ if (shouldClearRulesetFrames) {
398
+ context.rulesetFrames = [];
399
+ }
400
+ const onlyRuleSetChild = isNode(bodyToEval.value[0], 'Ruleset');
401
+ const evalOut = bodyToEval.eval(context);
402
+ const doRegister = (r) => {
403
+ if (savedRulesetFrames !== undefined) {
404
+ context.rulesetFrames = savedRulesetFrames;
405
+ }
406
+ const finalRules = onlyRuleSetChild && isNode(r.value[0], 'Rules') ? r.value[0] : r;
407
+ node.value.rules = finalRules;
408
+ tryMergeNestedMedia();
409
+ context.extendRoots.popExtendRoot();
410
+ const layerName = context.extendRoots.takeLayerName(node);
411
+ const parent = parentExtendRoot ?? context.root ?? undefined;
412
+ context.extendRoots.registerRoot(bodyToEval, parent, {
413
+ layerName
414
+ });
415
+ registerInnerExtendRootIfHoisted(bodyToEval, context, layerName);
416
+ if (finalRules !== bodyToEval) {
417
+ registerInnerExtendRootIfHoisted(finalRules, context, layerName);
418
+ }
419
+ context.extendRoots.pushExtendRoot(bodyToEval);
420
+ context.extendRoots.popExtendRoot();
421
+ return node;
422
+ };
423
+ if (isThenable(evalOut)) {
424
+ return evalOut.then(doRegister);
425
+ }
426
+ return doRegister(evalOut);
427
+ });
428
+ }
429
+ bodyToEval = preEvalResult;
430
+ context.extendRoots.pushExtendRoot(bodyToEval);
431
+ pushedExtendRoot = true;
432
+ }
433
+ let onlyRuleSetChild = isNode(bodyToEval.value[0], 'Ruleset');
434
+ // For root-only at-rules that are hoisted, clear rulesetFrames
435
+ // so internal rulesets don't inherit parent selectors
436
+ const savedRulesetFrames = shouldClearRulesetFrames ? context.rulesetFrames : undefined;
437
+ if (shouldClearRulesetFrames) {
438
+ context.rulesetFrames = [];
439
+ }
440
+ let out = bodyToEval.eval(context);
441
+ if (isThenable(out)) {
442
+ return out.then((r) => {
443
+ // Restore rulesetFrames
444
+ if (savedRulesetFrames !== undefined) {
445
+ context.rulesetFrames = savedRulesetFrames;
446
+ }
447
+ // If the only rule was a ruleset, and it evaluated to Rules,
448
+ // discard the extra rules wrapper
449
+ const finalRules = onlyRuleSetChild && isNode(r.value[0], 'Rules') ? r.value[0] : r;
450
+ node.value.rules = finalRules;
451
+ tryMergeNestedMedia();
452
+ if (pushedExtendRoot && node.isNestable()) {
453
+ context.extendRoots.popExtendRoot();
454
+ const layerName = context.extendRoots.takeLayerName(node);
455
+ const parent = parentExtendRoot ?? context.root ?? undefined;
456
+ context.extendRoots.registerRoot(bodyToEval, parent, {
457
+ layerName
458
+ });
459
+ registerInnerExtendRootIfHoisted(bodyToEval, context, layerName);
460
+ if (finalRules !== bodyToEval) {
461
+ registerInnerExtendRootIfHoisted(finalRules, context, layerName);
462
+ }
463
+ context.extendRoots.pushExtendRoot(bodyToEval);
464
+ context.extendRoots.popExtendRoot();
465
+ }
466
+ return node;
467
+ });
468
+ }
469
+ // Restore rulesetFrames (sync path)
470
+ if (savedRulesetFrames !== undefined) {
471
+ context.rulesetFrames = savedRulesetFrames;
472
+ }
473
+ const finalRules = onlyRuleSetChild && isNode(out.value[0], 'Rules') ? out.value[0] : out;
474
+ node.value.rules = finalRules;
475
+ tryMergeNestedMedia();
476
+ if (pushedExtendRoot && node.isNestable()) {
477
+ context.extendRoots.popExtendRoot();
478
+ const layerName = context.extendRoots.takeLayerName(node);
479
+ const parent = parentExtendRoot ?? context.root ?? undefined;
480
+ context.extendRoots.registerRoot(bodyToEval, parent, { layerName });
481
+ registerInnerExtendRootIfHoisted(bodyToEval, context, layerName);
482
+ if (finalRules !== bodyToEval) {
483
+ registerInnerExtendRootIfHoisted(finalRules, context, layerName);
484
+ }
485
+ context.extendRoots.pushExtendRoot(bodyToEval);
486
+ context.extendRoots.popExtendRoot();
487
+ }
488
+ }
489
+ return node;
490
+ }, () => {
491
+ // Pop the frame that was pushed in preEval
492
+ // This frame was kept on the stack during rules evaluation so children could access it
493
+ context.frames.pop();
494
+ let rules = node.value.rules;
495
+ if (rules && rules.visibleRules().length === 0) {
496
+ this.removeFlag(F_VISIBLE);
497
+ }
498
+ return node;
499
+ });
500
+ }
501
+ }
502
+ export const atrule = defineType(AtRule, 'AtRule');
503
+ //# sourceMappingURL=at-rule.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"at-rule.js","sourceRoot":"","sources":["../../src/tree/at-rule.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,22 @@
1
+ import type { Context } from '../context.js';
2
+ import { Node } from './node.js';
3
+ import { type PrintOptions } from './util/print.js';
4
+ export type BlockOptions = {
5
+ type: 'curly' | 'square';
6
+ };
7
+ export interface Block extends Node<Node, BlockOptions> {
8
+ eval(context: Context): Block;
9
+ }
10
+ /**
11
+ * A block like `{ ... }` or `[ ... ]`. This is used
12
+ * for things like custom properties and unknown at-rules.
13
+ */
14
+ export declare class Block extends Node<Node, BlockOptions> {
15
+ type: "Block";
16
+ shortType: "block";
17
+ toTrimmedString(options?: PrintOptions): string;
18
+ }
19
+ type BlockParams = ConstructorParameters<typeof Block>;
20
+ export declare const block: (value: BlockParams[0], options?: BlockParams[1], location?: BlockParams[2], treeContext?: BlockParams[3]) => Block;
21
+ export {};
22
+ //# sourceMappingURL=block.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"block.d.ts","sourceRoot":"","sources":["../../src/tree/block.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAC7C,OAAO,EAAE,IAAI,EAAc,MAAM,WAAW,CAAC;AAC7C,OAAO,EAAE,KAAK,YAAY,EAAmB,MAAM,iBAAiB,CAAC;AAErE,MAAM,MAAM,YAAY,GAAG;IACzB,IAAI,EAAE,OAAO,GAAG,QAAQ,CAAC;CAC1B,CAAC;AAEF,MAAM,WAAW,KAAM,SAAQ,IAAI,CAAC,IAAI,EAAE,YAAY,CAAC;IACrD,IAAI,CAAC,OAAO,EAAE,OAAO,GAAG,KAAK,CAAC;CAC/B;AAED;;;GAGG;AACH,qBAAa,KAAM,SAAQ,IAAI,CAAC,IAAI,EAAE,YAAY,CAAC;IACjD,IAAI,EAAG,OAAO,CAAU;IACxB,SAAS,EAAG,OAAO,CAAU;IAEpB,eAAe,CAAC,OAAO,CAAC,EAAE,YAAY;CAYhD;AAED,KAAK,WAAW,GAAG,qBAAqB,CAAC,OAAO,KAAK,CAAC,CAAC;AAEvD,eAAO,MAAM,KAAK,EAAiC,CACjD,KAAK,EAAE,WAAW,CAAC,CAAC,CAAC,EACrB,OAAO,CAAC,EAAE,WAAW,CAAC,CAAC,CAAC,EACxB,QAAQ,CAAC,EAAE,WAAW,CAAC,CAAC,CAAC,EACzB,WAAW,CAAC,EAAE,WAAW,CAAC,CAAC,CAAC,KACzB,KAAK,CAAC"}
@@ -0,0 +1,24 @@
1
+ import { Node, defineType } from './node.js';
2
+ import { getPrintOptions } from './util/print.js';
3
+ /**
4
+ * A block like `{ ... }` or `[ ... ]`. This is used
5
+ * for things like custom properties and unknown at-rules.
6
+ */
7
+ export class Block extends Node {
8
+ type = 'Block';
9
+ shortType = 'block';
10
+ toTrimmedString(options) {
11
+ options = getPrintOptions(options);
12
+ const w = options.writer;
13
+ const mark = w.mark();
14
+ let { type } = this.options ?? {};
15
+ let start = type === 'square' ? '[' : '{';
16
+ let end = type === 'square' ? ']' : '}';
17
+ w.add(start);
18
+ super.toTrimmedString(options);
19
+ w.add(end);
20
+ return w.getSince(mark);
21
+ }
22
+ }
23
+ export const block = defineType(Block, 'Block');
24
+ //# sourceMappingURL=block.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"block.js","sourceRoot":"","sources":["../../src/tree/block.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAC7C,OAAO,EAAqB,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAUrE;;;GAGG;AACH,MAAM,OAAO,KAAM,SAAQ,IAAwB;IACjD,IAAI,GAAG,OAAgB,CAAC;IACxB,SAAS,GAAG,OAAgB,CAAC;IAEpB,eAAe,CAAC,OAAsB;QAC7C,OAAO,GAAG,eAAe,CAAC,OAAO,CAAC,CAAC;QACnC,MAAM,CAAC,GAAG,OAAO,CAAC,MAAO,CAAC;QAC1B,MAAM,IAAI,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;QACtB,IAAI,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC,OAAO,IAAI,EAAE,CAAC;QAClC,IAAI,KAAK,GAAG,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;QAC1C,IAAI,GAAG,GAAG,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;QACxC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QACb,KAAK,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;QAC/B,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACX,OAAO,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;IAC1B,CAAC;CACF;AAID,MAAM,CAAC,MAAM,KAAK,GAAG,UAAU,CAAC,KAAK,EAAE,OAAO,CAKpC,CAAC"}
@@ -0,0 +1,17 @@
1
+ import type { Context } from '../context.js';
2
+ import { Node } from './node.js';
3
+ import { type PrintOptions } from './util/print.js';
4
+ export interface Bool extends Node<boolean> {
5
+ eval(context: Context): Bool;
6
+ }
7
+ /**
8
+ * A boolean. Named `Bool` to avoid conflict with the built-in `Boolean` class.
9
+ */
10
+ export declare class Bool extends Node<boolean> {
11
+ type: "Bool";
12
+ shortType: "bool";
13
+ compare(other: Node): 0 | 1 | -1 | undefined;
14
+ toTrimmedString(options?: PrintOptions): string;
15
+ }
16
+ export declare const bool: (value?: boolean | undefined, options?: import("./node-base.js").NodeOptions | undefined, location?: import("./node-base.js").LocationInfo | undefined) => Bool;
17
+ //# sourceMappingURL=bool.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bool.d.ts","sourceRoot":"","sources":["../../src/tree/bool.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAC7C,OAAO,EAAE,IAAI,EAAc,MAAM,WAAW,CAAC;AAC7C,OAAO,EAAE,KAAK,YAAY,EAAmB,MAAM,iBAAiB,CAAC;AAErE,MAAM,WAAW,IAAK,SAAQ,IAAI,CAAC,OAAO,CAAC;IACzC,IAAI,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAAC;CAC9B;AAED;;GAEG;AACH,qBAAa,IAAK,SAAQ,IAAI,CAAC,OAAO,CAAC;IACrC,IAAI,EAAG,MAAM,CAAU;IACvB,SAAS,EAAG,MAAM,CAAU;IAEnB,OAAO,CAAC,KAAK,EAAE,IAAI,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,SAAS;IAO5C,eAAe,CAAC,OAAO,CAAC,EAAE,YAAY;CAOhD;AACD,eAAO,MAAM,IAAI,iKAA2B,CAAC"}
@@ -0,0 +1,24 @@
1
+ import { Node, defineType } from './node.js';
2
+ import { getPrintOptions } from './util/print.js';
3
+ /**
4
+ * A boolean. Named `Bool` to avoid conflict with the built-in `Boolean` class.
5
+ */
6
+ export class Bool extends Node {
7
+ type = 'Bool';
8
+ shortType = 'bool';
9
+ compare(other) {
10
+ if (other instanceof Bool) {
11
+ return this.value === other.value ? 0 : undefined;
12
+ }
13
+ return undefined;
14
+ }
15
+ toTrimmedString(options) {
16
+ options = getPrintOptions(options);
17
+ const w = options.writer;
18
+ const mark = w.mark();
19
+ w.add(this.value ? 'true' : 'false', this);
20
+ return w.getSince(mark);
21
+ }
22
+ }
23
+ export const bool = defineType(Bool, 'Bool');
24
+ //# sourceMappingURL=bool.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bool.js","sourceRoot":"","sources":["../../src/tree/bool.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAC7C,OAAO,EAAqB,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAMrE;;GAEG;AACH,MAAM,OAAO,IAAK,SAAQ,IAAa;IACrC,IAAI,GAAG,MAAe,CAAC;IACvB,SAAS,GAAG,MAAe,CAAC;IAEnB,OAAO,CAAC,KAAW;QAC1B,IAAI,KAAK,YAAY,IAAI,EAAE,CAAC;YAC1B,OAAO,IAAI,CAAC,KAAK,KAAK,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QACpD,CAAC;QACD,OAAO,SAAS,CAAC;IACnB,CAAC;IAEQ,eAAe,CAAC,OAAsB;QAC7C,OAAO,GAAG,eAAe,CAAC,OAAO,CAAC,CAAC;QACnC,MAAM,CAAC,GAAG,OAAO,CAAC,MAAO,CAAC;QAC1B,MAAM,IAAI,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;QACtB,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;QAC3C,OAAO,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;IAC1B,CAAC;CACF;AACD,MAAM,CAAC,MAAM,IAAI,GAAG,UAAU,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC"}