@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
package/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2018 Matthew Dean
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
package/README.md ADDED
@@ -0,0 +1,9 @@
1
+ # Jess Core - Syntax Tree & Core Evaluation
2
+
3
+ This is separate from the `jess` package, because it contains the AST, therefore parsers can import this package to export an AST, and `jess` can import the parser + core. (Avoids circular dependencies.)
4
+
5
+ ## Data structures
6
+
7
+ I've fiddled around with lots of data structures trying to find optimal node insertion / removal. With the latest code, I've eliminated most (if not all?) of mid-list insertion/deletion in array-like structures. I had a lot of code based on [Queue from data-structure-typed](https://github.com/zrwusa/data-structure-typed) (and tried some other structures), but Queue is really only faster when items need to be removed / added to the beginning, because of Array resizing. If we're doing only pushes & pops, no mid-list insertions, and only indexed lookups, then a native Array will always win. In those array-like structures for that library, pushes / pops, then an Array will be fine (and its an ArrayList internally).
8
+
9
+ For HashMap-like structures, I actually think using a simple extension of Map might be ideal. It's roughly the same speed as `data-structure-typed`'s HashMap, and I can do a custom clone that utilizes a [custom while loop that is currently fastest in Chrome](https://jsperf.app/savivi/6).
@@ -0,0 +1,352 @@
1
+ import type { AtRule, Ruleset, Rules, ImportOptions, Node, Any, Selector } from './tree/index.js';
2
+ import { ExtendRootRegistry } from './tree/util/extend-roots.js';
3
+ import { type Operator } from './tree/util/calculate.js';
4
+ import type { PluginInterface } from './plugin.js';
5
+ import { EqualityMode, MathMode, UnitMode } from './types/modes.js';
6
+ import { type ErrorDiagnostic, type WarningDiagnostic } from './jess-error.js';
7
+ import type { Call } from './tree/call.js';
8
+ import { CallMap } from './tree/util/recursion-helper.js';
9
+ export interface ContextOptions {
10
+ /** Hash classes for module output */
11
+ module?: boolean;
12
+ /**
13
+ * From docs:
14
+ * "Changes compilation mode so dynamic content
15
+ * is output as CSS variables, and changes
16
+ * the runtime module to generate CSS patches."
17
+ *
18
+ * @todo - Change this behavior to "live expressions"
19
+ * i.e. change compilation to always be static, but
20
+ * generate a separate module for calculated CSS variables.
21
+ */
22
+ dynamic?: boolean;
23
+ collapseNesting?: boolean;
24
+ enableJavaScript?: boolean;
25
+ mathMode?: MathMode;
26
+ unitMode?: UnitMode;
27
+ equalityMode?: EqualityMode;
28
+ /** Directories to search to resolve files */
29
+ searchPaths?: string[];
30
+ /**
31
+ * Whether to leak variables and mixins into the caller scope,
32
+ * such that they can be referenced / called by subsequent rules.
33
+ *
34
+ * @deprecated - a Less feature
35
+ */
36
+ leakyRules?: boolean;
37
+ /**
38
+ * Whether to bubble root-only at-rules (like @font-face, @keyframes)
39
+ * to the root level when they're nested inside rulesets.
40
+ *
41
+ * @deprecated - a legacy Less feature; modern CSS allows nesting
42
+ */
43
+ bubbleRootAtRules?: boolean;
44
+ /**
45
+ * Suppress warnings (similar to Less's suppressWarnings option).
46
+ * When true, warnings are collected but not emitted.
47
+ */
48
+ suppressWarnings?: boolean;
49
+ /**
50
+ * Break on first error (stop processing after first error).
51
+ * When false, errors are collected and processing continues.
52
+ */
53
+ breakOnError?: boolean;
54
+ }
55
+ export interface TreeContextOptions extends ContextOptions {
56
+ inlineJavaScript?: boolean;
57
+ /**
58
+ * For instances where a new tree needs to inherit from scope
59
+ * (like Less / SCSS `@import` rule)
60
+ *
61
+ * @todo - remove?
62
+ */
63
+ parentScope?: Rules;
64
+ scope?: Rules;
65
+ isModule?: boolean;
66
+ file?: {
67
+ /** Filename, e.g. "main.jess" */
68
+ name: string;
69
+ /** Absolute directory containing the file (no filename) */
70
+ path: string;
71
+ /** Absolute file path (directory + filename) */
72
+ fullPath: string;
73
+ /** Full file contents (recommended for code-frames) */
74
+ source?: string;
75
+ /** Lazy cache of line-start offsets (built on demand) */
76
+ lines?: Uint32Array;
77
+ };
78
+ [k: string]: any;
79
+ }
80
+ /**
81
+ * @todo - Redo:
82
+ * 1. Create a hash of the file path; that way hashes
83
+ * are unique per file, but also repeatable / predictable.
84
+ * 2. Append file (module) hash after class name
85
+ */
86
+ export declare const generateId: (length?: number) => string;
87
+ /**
88
+ * Tree context is attached to each node
89
+ * during the parsing phase / AST creation.
90
+ *
91
+ * Each file (and hence, tree) will get a new tree
92
+ * context. For the most part, it is passed around
93
+ * as an object reference.
94
+ *
95
+ * Additionally, it sets options that may be
96
+ * unique to the tree, such as the math mode.
97
+ */
98
+ export declare class TreeContext implements TreeContextOptions {
99
+ opts: Record<string, any>;
100
+ leakyRules: boolean | undefined;
101
+ bubbleRootAtRules: boolean | undefined;
102
+ mathMode: MathMode | undefined;
103
+ unitMode: UnitMode | undefined;
104
+ equalityMode: EqualityMode | undefined;
105
+ /** @todo - Change how extend works based on this value */
106
+ isModule: boolean | undefined;
107
+ file?: TreeContextOptions['file'];
108
+ /**
109
+ * The plugin that created this tree. It will have first dibs
110
+ * to resolve any imports.
111
+ */
112
+ plugin?: PluginInterface;
113
+ constructor(opts?: TreeContextOptions);
114
+ }
115
+ /**
116
+ * .a.b.c
117
+ * simple = 0b1
118
+ * compound = 0b10
119
+ * complex = 0b100
120
+ * a = 0b1000
121
+ * b = 0b10000
122
+ * c = 0b100000
123
+ *
124
+ * .a.b.c.c = 0b111010
125
+ */
126
+ /**
127
+ * This is the context object used for evaluation.
128
+ *
129
+ * @note
130
+ * Most of context represents "state" while evaluating.
131
+ * There should only ever be one Context singleton per parse & evaluation.
132
+ */
133
+ export declare class Context {
134
+ readonly plugins: PluginInterface[];
135
+ readonly opts: ContextOptions;
136
+ treeContext: TreeContext;
137
+ /**
138
+ * Collected errors during safeParse/safeRender.
139
+ * Only populated when using safe methods.
140
+ */
141
+ errors: ErrorDiagnostic[];
142
+ /**
143
+ * Collected warnings during safeParse/safeRender.
144
+ * Only populated when using safe methods.
145
+ */
146
+ warnings: WarningDiagnostic[];
147
+ /**
148
+ * A feature ported from Less - we suppress any `@charset`
149
+ * after the first one.
150
+ */
151
+ currentCharset?: Any;
152
+ /** Track whether charset has been emitted during toString to avoid duplicates */
153
+ charsetEmitted?: boolean;
154
+ /** @import rules must be at the top of CSS output */
155
+ topImports?: Node[];
156
+ /**
157
+ * This is set when entering rulesets so that child nodes
158
+ * can use this to lookup values. When evaluating inside a mixin/function,
159
+ * this also enables call-time variable resolution ($~variable).
160
+ */
161
+ rulesContext: Rules;
162
+ /** Entire context root (ultimate root) */
163
+ root: Rules;
164
+ /** Set so that we can do ruleset selector lookup for extend */
165
+ treeRoot: Rules;
166
+ allRoots: Rules[];
167
+ /** The call that is currently being evaluated */
168
+ caller?: Call;
169
+ /** Extend roots registry for managing extend scoping */
170
+ extendRoots: ExtendRootRegistry;
171
+ /**
172
+ * Depth-first document order of each Ruleset (assigned once per root before eval).
173
+ * Used so processExtends can apply extends in true source order.
174
+ */
175
+ documentOrderByRuleset?: WeakMap<Ruleset, number>;
176
+ /**
177
+ * Registered extends with their extend root context
178
+ * Format: [target, selectorWithExtend, partial, extendRoot, extendNode, documentOrder?]
179
+ */
180
+ extends: Array<[target: Selector, selectorWithExtend: Selector, partial: boolean, extendRoot: Rules, extendNode: Node, documentOrder?: number, fromReferenceScope?: boolean]>;
181
+ /**
182
+ * When doing any kind of lookup, the current node and resolved
183
+ * nodes in the search chain are added to prevent recursion errors.
184
+ *
185
+ * We use a set here because we look it up for filtering.
186
+ * Also used to track mixins currently being evaluated to prevent infinite recursion.
187
+ */
188
+ private _searchScope;
189
+ get searchScope(): Set<Node<unknown, import("./tree/node-base.js").NodeOptions>>;
190
+ /**
191
+ * The file (eval) context should have the same ID at compile-time
192
+ * as run-time, so this ID will be set in `toModule()` output
193
+ *
194
+ * @todo - Make the id a hash of the (project-relative) path + contents
195
+ */
196
+ id: string;
197
+ ruleCounter: number;
198
+ /** Rules depth, used to figure out source order */
199
+ depth: number;
200
+ private _classMap;
201
+ get classMap(): Map<any, any>;
202
+ /** Frames for nested rulesets, used for selector evaluation */
203
+ rulesetFrames: Ruleset[];
204
+ /** Unified frames array for flat rendering when collapseNesting is true */
205
+ frames: (Ruleset | AtRule)[];
206
+ /**
207
+ * We push a boolean to this array when entering a calc() call
208
+ * and pop it when leaving. This helps us determine if operations
209
+ * should be performed or not.
210
+ *
211
+ * @todo - can't this just be a number?
212
+ */
213
+ calcFrames: number;
214
+ private _callMap;
215
+ get callMap(): CallMap;
216
+ private _callStack;
217
+ get callStack(): Call[];
218
+ /**
219
+ * Stack to track reference call chain for clearing matched keys at outermost level
220
+ */
221
+ private _referenceStack;
222
+ get referenceStack(): number;
223
+ /**
224
+ * Import-evaluation scope stack.
225
+ *
226
+ * This intentionally models lexical import scope instead of global counters:
227
+ * - each import branch pushes its semantics on entry
228
+ * - each branch pops in `finally`
229
+ * - readers ask semantic questions (`inReferenceImportScope`) instead of
230
+ * inspecting mutable depth values.
231
+ *
232
+ * Why this exists:
233
+ * some behaviors depend on "how we got here" (call-path scope), not only
234
+ * on the current node's own options. Example: suppressing top-level @import
235
+ * hoists while traversing a reference-only branch.
236
+ */
237
+ private _importScopeStack;
238
+ get importScope(): {
239
+ reference: boolean;
240
+ multiple: boolean;
241
+ }[];
242
+ get inReferenceImportScope(): boolean;
243
+ get inMultipleImportScope(): boolean;
244
+ pushImportScope(scope: {
245
+ reference?: boolean;
246
+ multiple?: boolean;
247
+ }): void;
248
+ popImportScope(): void;
249
+ pushReference(): void;
250
+ /**
251
+ * Stack to track when a value comes from an important declaration
252
+ * Used to propagate !important flag to containing declarations
253
+ */
254
+ private _importantSourceStack;
255
+ get hasImportantSource(): boolean;
256
+ pushImportantSource(): void;
257
+ popImportantSource(): void;
258
+ popReference(): void;
259
+ rulesEvalStack: Rules[];
260
+ /**
261
+ * We push a boolean to this array when entering parens call
262
+ * and pop it when leaving. This helps us determine if operations
263
+ * should be performed or not.
264
+ *
265
+ * Sometimes we "reset" the "in parentheses" state by pushing false,
266
+ * such as within a function call.
267
+ */
268
+ parenFrames: boolean[];
269
+ /**
270
+ * Keys of @let variables --
271
+ * We need this b/c we need to generate code
272
+ * for over-riding in the exported function.
273
+ *
274
+ * @todo - remove?
275
+ */
276
+ private _exports;
277
+ get exports(): Set<string>;
278
+ /**
279
+ * currently generating a runtime module or not
280
+ * @todo - remove in favor of ToModuleVisitor?
281
+ */
282
+ /**
283
+ * In a custom declaration's value. All nodes should
284
+ * be preserved as-is and not evaluated, except for
285
+ * $() expressions.
286
+ */
287
+ inCustom: boolean | undefined;
288
+ /** A flag set when evaluating conditions */
289
+ isDefault: boolean | undefined;
290
+ /** A flag to clone nodes before mutating */
291
+ preserveOriginalNodes: boolean | undefined;
292
+ _leakyRules: boolean | undefined;
293
+ get leakyRules(): boolean;
294
+ _bubbleRootAtRules: boolean | undefined;
295
+ get bubbleRootAtRules(): boolean;
296
+ constructor(opts?: ContextOptions, plugins?: PluginInterface[]);
297
+ /** Full resolved path -> tree */
298
+ sourceTrees: Map<string, Rules>;
299
+ evaldTrees: Map<string, Rules>;
300
+ /**
301
+ * @param importPath - The bare import path e.g. `@import "foo";` in a .less file.
302
+ */
303
+ private _getPath;
304
+ /**
305
+ * Find the appropriate plugin for parsing based on type or extension
306
+ */
307
+ private findParserPlugin;
308
+ getTree(importPath: string, importOptions?: ImportOptions): Promise<{
309
+ node: any;
310
+ triedPaths: string[];
311
+ resolvedPath: string;
312
+ }>;
313
+ /**
314
+ * Public path resolution for import nodes that need source-path lookups
315
+ * without triggering parse/eval.
316
+ */
317
+ resolveImportPath(importPath: string): Promise<{
318
+ triedPaths: string[];
319
+ resolvedPath: string;
320
+ friendlyPath: string;
321
+ }>;
322
+ /**
323
+ * Parse a string content directly using the appropriate plugin
324
+ */
325
+ parseString(content: string, options?: {
326
+ filePath?: string;
327
+ type?: string;
328
+ extension?: string;
329
+ }): Promise<{
330
+ node: Rules;
331
+ resolvedPath: string;
332
+ }>;
333
+ /**
334
+ *
335
+ * @param importPath
336
+ * @param importOptions
337
+ */
338
+ getModule(importPath: string, importOptions?: ImportOptions): Promise<{
339
+ module: Record<string, any>;
340
+ triedPaths: string[];
341
+ resolvedPath: string;
342
+ }>;
343
+ /**
344
+ * Hash a CSS class name or not depending on the `module` setting
345
+ *
346
+ * @todo - do module files have different contexts, therefore different
347
+ * hash maps?
348
+ */
349
+ hashClass(name: string): string;
350
+ shouldOperate(op: Operator, left: Node, right: Node): boolean;
351
+ }
352
+ //# sourceMappingURL=context.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../src/context.ts"],"names":[],"mappings":"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"}