less 4.5.1 → 4.6.0

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 (338) hide show
  1. package/bin/lessc +37 -23
  2. package/dist/less.js +14497 -11745
  3. package/dist/less.min.js +4 -4
  4. package/dist/less.min.js.map +1 -1
  5. package/lib/less/constants.js +5 -7
  6. package/lib/less/contexts.js +71 -55
  7. package/lib/less/data/colors.js +150 -153
  8. package/lib/less/data/index.js +4 -7
  9. package/lib/less/data/unit-conversions.js +2 -5
  10. package/lib/less/default-options.js +36 -26
  11. package/lib/less/deprecation.js +67 -0
  12. package/lib/less/environment/abstract-file-manager.js +62 -50
  13. package/lib/less/environment/abstract-plugin-loader.js +69 -46
  14. package/lib/less/environment/environment-api.ts +21 -0
  15. package/lib/less/environment/environment.js +34 -30
  16. package/lib/less/environment/file-manager-api.ts +77 -0
  17. package/lib/less/functions/boolean.js +13 -13
  18. package/lib/less/functions/color-blending.js +39 -31
  19. package/lib/less/functions/color.js +153 -137
  20. package/lib/less/functions/data-uri.js +73 -64
  21. package/lib/less/functions/default.js +9 -11
  22. package/lib/less/functions/function-caller.js +35 -34
  23. package/lib/less/functions/function-registry.js +16 -17
  24. package/lib/less/functions/index.js +33 -33
  25. package/lib/less/functions/list.js +88 -75
  26. package/lib/less/functions/math-helper.js +8 -11
  27. package/lib/less/functions/math.js +21 -21
  28. package/lib/less/functions/number.js +42 -53
  29. package/lib/less/functions/string.js +18 -22
  30. package/lib/less/functions/style.js +21 -20
  31. package/lib/less/functions/svg.js +83 -82
  32. package/lib/less/functions/types.js +28 -32
  33. package/lib/less/import-manager.js +73 -64
  34. package/lib/less/index.js +65 -65
  35. package/lib/less/less-error.js +63 -45
  36. package/lib/less/logger.js +11 -14
  37. package/lib/less/parse-tree.js +52 -53
  38. package/lib/less/parse.js +44 -44
  39. package/lib/less/parser/parser-input.js +151 -113
  40. package/lib/less/parser/parser.js +864 -658
  41. package/lib/less/plugin-manager.js +57 -46
  42. package/lib/less/render.js +17 -23
  43. package/lib/less/source-map-builder.js +52 -43
  44. package/lib/less/source-map-output.js +56 -43
  45. package/lib/less/transform-tree.js +40 -30
  46. package/lib/less/tree/anonymous.js +52 -28
  47. package/lib/less/tree/assignment.js +44 -27
  48. package/lib/less/tree/atrule-syntax.js +4 -6
  49. package/lib/less/tree/atrule.js +247 -140
  50. package/lib/less/tree/attribute.js +55 -24
  51. package/lib/less/tree/call.js +70 -42
  52. package/lib/less/tree/color.js +194 -145
  53. package/lib/less/tree/combinator.js +31 -21
  54. package/lib/less/tree/comment.js +44 -23
  55. package/lib/less/tree/condition.js +61 -36
  56. package/lib/less/tree/container.js +90 -34
  57. package/lib/less/tree/debug-info.js +28 -15
  58. package/lib/less/tree/declaration.js +97 -52
  59. package/lib/less/tree/detached-ruleset.js +42 -24
  60. package/lib/less/tree/dimension.js +127 -71
  61. package/lib/less/tree/element.js +82 -52
  62. package/lib/less/tree/expression.js +75 -50
  63. package/lib/less/tree/extend.js +71 -42
  64. package/lib/less/tree/import.js +184 -110
  65. package/lib/less/tree/index.js +52 -81
  66. package/lib/less/tree/javascript.js +43 -32
  67. package/lib/less/tree/js-eval-node.js +46 -32
  68. package/lib/less/tree/keyword.js +25 -17
  69. package/lib/less/tree/media.js +77 -35
  70. package/lib/less/tree/merge-rules.js +47 -0
  71. package/lib/less/tree/mixin-call.js +181 -98
  72. package/lib/less/tree/mixin-definition.js +211 -117
  73. package/lib/less/tree/namespace-value.js +63 -44
  74. package/lib/less/tree/negative.js +34 -21
  75. package/lib/less/tree/nested-at-rule.js +149 -66
  76. package/lib/less/tree/node.js +225 -90
  77. package/lib/less/tree/operation.js +59 -34
  78. package/lib/less/tree/paren.js +34 -17
  79. package/lib/less/tree/property.js +66 -35
  80. package/lib/less/tree/query-in-parens.js +52 -60
  81. package/lib/less/tree/quoted.js +93 -44
  82. package/lib/less/tree/ruleset.js +632 -318
  83. package/lib/less/tree/selector.js +151 -77
  84. package/lib/less/tree/unicode-descriptor.js +14 -12
  85. package/lib/less/tree/unit.js +111 -63
  86. package/lib/less/tree/url.js +62 -38
  87. package/lib/less/tree/value.js +50 -34
  88. package/lib/less/tree/variable-call.js +47 -30
  89. package/lib/less/tree/variable.js +53 -31
  90. package/lib/less/utils.js +44 -47
  91. package/lib/less/visitors/extend-visitor.js +233 -172
  92. package/lib/less/visitors/import-sequencer.js +24 -24
  93. package/lib/less/visitors/import-visitor.js +62 -52
  94. package/lib/less/visitors/index.js +14 -17
  95. package/lib/less/visitors/join-selector-visitor.js +40 -37
  96. package/lib/less/visitors/set-tree-visibility-visitor.js +32 -18
  97. package/lib/less/visitors/to-css-visitor.js +135 -128
  98. package/lib/less/visitors/visitor.js +60 -45
  99. package/lib/less-browser/add-default-options.js +23 -13
  100. package/lib/less-browser/bootstrap.js +23 -17
  101. package/lib/less-browser/browser.js +24 -21
  102. package/lib/less-browser/cache.js +17 -19
  103. package/lib/less-browser/error-reporting.js +52 -44
  104. package/lib/less-browser/file-manager.js +52 -42
  105. package/lib/less-browser/image-size.js +12 -12
  106. package/lib/less-browser/index.js +131 -105
  107. package/lib/less-browser/log-listener.js +30 -31
  108. package/lib/less-browser/plugin-loader.js +10 -10
  109. package/lib/less-browser/utils.js +19 -21
  110. package/lib/less-node/environment.js +32 -8
  111. package/lib/less-node/file-manager.js +62 -45
  112. package/lib/less-node/fs.js +11 -8
  113. package/lib/less-node/image-size.js +40 -31
  114. package/lib/less-node/index.js +28 -19
  115. package/lib/less-node/lessc-helper.js +20 -21
  116. package/lib/less-node/plugin-loader.js +35 -27
  117. package/lib/less-node/url-file-manager.js +33 -31
  118. package/package.json +25 -18
  119. package/.eslintignore +0 -6
  120. package/.eslintrc.js +0 -63
  121. package/Gruntfile.js +0 -403
  122. package/bower.json +0 -22
  123. package/lib/less/constants.js.map +0 -1
  124. package/lib/less/contexts.js.map +0 -1
  125. package/lib/less/data/colors.js.map +0 -1
  126. package/lib/less/data/index.js.map +0 -1
  127. package/lib/less/data/unit-conversions.js.map +0 -1
  128. package/lib/less/default-options.js.map +0 -1
  129. package/lib/less/environment/abstract-file-manager.js.map +0 -1
  130. package/lib/less/environment/abstract-plugin-loader.js.map +0 -1
  131. package/lib/less/environment/environment-api.js +0 -3
  132. package/lib/less/environment/environment-api.js.map +0 -1
  133. package/lib/less/environment/environment.js.map +0 -1
  134. package/lib/less/environment/file-manager-api.js +0 -3
  135. package/lib/less/environment/file-manager-api.js.map +0 -1
  136. package/lib/less/functions/boolean.js.map +0 -1
  137. package/lib/less/functions/color-blending.js.map +0 -1
  138. package/lib/less/functions/color.js.map +0 -1
  139. package/lib/less/functions/data-uri.js.map +0 -1
  140. package/lib/less/functions/default.js.map +0 -1
  141. package/lib/less/functions/function-caller.js.map +0 -1
  142. package/lib/less/functions/function-registry.js.map +0 -1
  143. package/lib/less/functions/index.js.map +0 -1
  144. package/lib/less/functions/list.js.map +0 -1
  145. package/lib/less/functions/math-helper.js.map +0 -1
  146. package/lib/less/functions/math.js.map +0 -1
  147. package/lib/less/functions/number.js.map +0 -1
  148. package/lib/less/functions/string.js.map +0 -1
  149. package/lib/less/functions/style.js.map +0 -1
  150. package/lib/less/functions/svg.js.map +0 -1
  151. package/lib/less/functions/types.js.map +0 -1
  152. package/lib/less/import-manager.js.map +0 -1
  153. package/lib/less/index.js.map +0 -1
  154. package/lib/less/less-error.js.map +0 -1
  155. package/lib/less/logger.js.map +0 -1
  156. package/lib/less/parse-tree.js.map +0 -1
  157. package/lib/less/parse.js.map +0 -1
  158. package/lib/less/parser/parser-input.js.map +0 -1
  159. package/lib/less/parser/parser.js.map +0 -1
  160. package/lib/less/plugin-manager.js.map +0 -1
  161. package/lib/less/render.js.map +0 -1
  162. package/lib/less/source-map-builder.js.map +0 -1
  163. package/lib/less/source-map-output.js.map +0 -1
  164. package/lib/less/transform-tree.js.map +0 -1
  165. package/lib/less/tree/anonymous.js.map +0 -1
  166. package/lib/less/tree/assignment.js.map +0 -1
  167. package/lib/less/tree/atrule-syntax.js.map +0 -1
  168. package/lib/less/tree/atrule.js.map +0 -1
  169. package/lib/less/tree/attribute.js.map +0 -1
  170. package/lib/less/tree/call.js.map +0 -1
  171. package/lib/less/tree/color.js.map +0 -1
  172. package/lib/less/tree/combinator.js.map +0 -1
  173. package/lib/less/tree/comment.js.map +0 -1
  174. package/lib/less/tree/condition.js.map +0 -1
  175. package/lib/less/tree/container.js.map +0 -1
  176. package/lib/less/tree/debug-info.js.map +0 -1
  177. package/lib/less/tree/declaration.js.map +0 -1
  178. package/lib/less/tree/detached-ruleset.js.map +0 -1
  179. package/lib/less/tree/dimension.js.map +0 -1
  180. package/lib/less/tree/element.js.map +0 -1
  181. package/lib/less/tree/expression.js.map +0 -1
  182. package/lib/less/tree/extend.js.map +0 -1
  183. package/lib/less/tree/import.js.map +0 -1
  184. package/lib/less/tree/index.js.map +0 -1
  185. package/lib/less/tree/javascript.js.map +0 -1
  186. package/lib/less/tree/js-eval-node.js.map +0 -1
  187. package/lib/less/tree/keyword.js.map +0 -1
  188. package/lib/less/tree/media.js.map +0 -1
  189. package/lib/less/tree/mixin-call.js.map +0 -1
  190. package/lib/less/tree/mixin-definition.js.map +0 -1
  191. package/lib/less/tree/namespace-value.js.map +0 -1
  192. package/lib/less/tree/negative.js.map +0 -1
  193. package/lib/less/tree/nested-at-rule.js.map +0 -1
  194. package/lib/less/tree/node.js.map +0 -1
  195. package/lib/less/tree/operation.js.map +0 -1
  196. package/lib/less/tree/paren.js.map +0 -1
  197. package/lib/less/tree/property.js.map +0 -1
  198. package/lib/less/tree/query-in-parens.js.map +0 -1
  199. package/lib/less/tree/quoted.js.map +0 -1
  200. package/lib/less/tree/ruleset.js.map +0 -1
  201. package/lib/less/tree/selector.js.map +0 -1
  202. package/lib/less/tree/unicode-descriptor.js.map +0 -1
  203. package/lib/less/tree/unit.js.map +0 -1
  204. package/lib/less/tree/url.js.map +0 -1
  205. package/lib/less/tree/value.js.map +0 -1
  206. package/lib/less/tree/variable-call.js.map +0 -1
  207. package/lib/less/tree/variable.js.map +0 -1
  208. package/lib/less/utils.js.map +0 -1
  209. package/lib/less/visitors/extend-visitor.js.map +0 -1
  210. package/lib/less/visitors/import-sequencer.js.map +0 -1
  211. package/lib/less/visitors/import-visitor.js.map +0 -1
  212. package/lib/less/visitors/index.js.map +0 -1
  213. package/lib/less/visitors/join-selector-visitor.js.map +0 -1
  214. package/lib/less/visitors/set-tree-visibility-visitor.js.map +0 -1
  215. package/lib/less/visitors/to-css-visitor.js.map +0 -1
  216. package/lib/less/visitors/visitor.js.map +0 -1
  217. package/lib/less-browser/add-default-options.js.map +0 -1
  218. package/lib/less-browser/bootstrap.js.map +0 -1
  219. package/lib/less-browser/browser.js.map +0 -1
  220. package/lib/less-browser/cache.js.map +0 -1
  221. package/lib/less-browser/error-reporting.js.map +0 -1
  222. package/lib/less-browser/file-manager.js.map +0 -1
  223. package/lib/less-browser/image-size.js.map +0 -1
  224. package/lib/less-browser/index.js.map +0 -1
  225. package/lib/less-browser/log-listener.js.map +0 -1
  226. package/lib/less-browser/plugin-loader.js.map +0 -1
  227. package/lib/less-browser/utils.js.map +0 -1
  228. package/lib/less-node/environment.js.map +0 -1
  229. package/lib/less-node/file-manager.js.map +0 -1
  230. package/lib/less-node/fs.js.map +0 -1
  231. package/lib/less-node/image-size.js.map +0 -1
  232. package/lib/less-node/index.js.map +0 -1
  233. package/lib/less-node/lessc-helper.js.map +0 -1
  234. package/lib/less-node/plugin-loader.js.map +0 -1
  235. package/lib/less-node/url-file-manager.js.map +0 -1
  236. package/scripts/coverage-lines.js +0 -207
  237. package/scripts/coverage-report.js +0 -158
  238. package/scripts/postinstall.js +0 -61
  239. package/test/.eslintrc.json +0 -9
  240. package/test/README.md +0 -3
  241. package/test/browser/common.js +0 -251
  242. package/test/browser/css/global-vars/simple.css +0 -3
  243. package/test/browser/css/modify-vars/simple.css +0 -8
  244. package/test/browser/css/plugin/plugin.css +0 -3
  245. package/test/browser/css/postProcessor/postProcessor.css +0 -4
  246. package/test/browser/css/relative-urls/urls.css +0 -36
  247. package/test/browser/css/rewrite-urls/urls.css +0 -36
  248. package/test/browser/css/rootpath/urls.css +0 -35
  249. package/test/browser/css/rootpath-relative/urls.css +0 -35
  250. package/test/browser/css/rootpath-rewrite-urls/urls.css +0 -35
  251. package/test/browser/css/urls.css +0 -54
  252. package/test/browser/generator/benchmark.config.js +0 -50
  253. package/test/browser/generator/generate.js +0 -78
  254. package/test/browser/generator/runner.config.js +0 -184
  255. package/test/browser/generator/runner.js +0 -2
  256. package/test/browser/generator/template.js +0 -104
  257. package/test/browser/generator/utils.js +0 -14
  258. package/test/browser/less/console-errors/test-error.less +0 -3
  259. package/test/browser/less/console-errors/test-error.txt +0 -2
  260. package/test/browser/less/errors/image-height-error.less +0 -3
  261. package/test/browser/less/errors/image-height-error.txt +0 -4
  262. package/test/browser/less/errors/image-size-error.less +0 -3
  263. package/test/browser/less/errors/image-size-error.txt +0 -4
  264. package/test/browser/less/errors/image-width-error.less +0 -3
  265. package/test/browser/less/errors/image-width-error.txt +0 -4
  266. package/test/browser/less/global-vars/simple.less +0 -3
  267. package/test/browser/less/imports/urls.less +0 -4
  268. package/test/browser/less/imports/urls2.less +0 -4
  269. package/test/browser/less/modify-vars/imports/simple2.less +0 -4
  270. package/test/browser/less/modify-vars/simple.less +0 -8
  271. package/test/browser/less/nested-gradient-with-svg-gradient/mixin-consumer.less +0 -5
  272. package/test/browser/less/nested-gradient-with-svg-gradient/svg-gradient-mixin.less +0 -15
  273. package/test/browser/less/plugin/plugin.js +0 -4
  274. package/test/browser/less/plugin/plugin.less +0 -4
  275. package/test/browser/less/postProcessor/postProcessor.less +0 -4
  276. package/test/browser/less/relative-urls/urls.less +0 -34
  277. package/test/browser/less/rewrite-urls/urls.less +0 -34
  278. package/test/browser/less/rootpath/urls.less +0 -33
  279. package/test/browser/less/rootpath-relative/urls.less +0 -33
  280. package/test/browser/less/rootpath-rewrite-urls/urls.less +0 -33
  281. package/test/browser/less/urls.less +0 -62
  282. package/test/browser/runner-VisitorPlugin-options.js +0 -3
  283. package/test/browser/runner-VisitorPlugin.js +0 -3
  284. package/test/browser/runner-browser-options.js +0 -51
  285. package/test/browser/runner-browser-spec.js +0 -12
  286. package/test/browser/runner-console-errors.js +0 -5
  287. package/test/browser/runner-errors-options.js +0 -6
  288. package/test/browser/runner-errors-spec.js +0 -3
  289. package/test/browser/runner-filemanagerPlugin-options.js +0 -5
  290. package/test/browser/runner-filemanagerPlugin.js +0 -3
  291. package/test/browser/runner-global-vars-options.js +0 -7
  292. package/test/browser/runner-global-vars-spec.js +0 -3
  293. package/test/browser/runner-main-options.js +0 -17
  294. package/test/browser/runner-main-spec.js +0 -7
  295. package/test/browser/runner-modify-vars-options.js +0 -5
  296. package/test/browser/runner-modify-vars-spec.js +0 -33
  297. package/test/browser/runner-no-js-errors-options.js +0 -4
  298. package/test/browser/runner-no-js-errors-spec.js +0 -3
  299. package/test/browser/runner-postProcessorPlugin-options.js +0 -3
  300. package/test/browser/runner-postProcessorPlugin.js +0 -3
  301. package/test/browser/runner-preProcessorPlugin-options.js +0 -3
  302. package/test/browser/runner-preProcessorPlugin.js +0 -3
  303. package/test/browser/runner-production-options.js +0 -3
  304. package/test/browser/runner-production-spec.js +0 -5
  305. package/test/browser/runner-relative-urls-options.js +0 -3
  306. package/test/browser/runner-relative-urls-spec.js +0 -3
  307. package/test/browser/runner-rewrite-urls-options.js +0 -3
  308. package/test/browser/runner-rewrite-urls-spec.js +0 -3
  309. package/test/browser/runner-rootpath-options.js +0 -3
  310. package/test/browser/runner-rootpath-relative-options.js +0 -4
  311. package/test/browser/runner-rootpath-relative-spec.js +0 -3
  312. package/test/browser/runner-rootpath-rewrite-urls-options.js +0 -4
  313. package/test/browser/runner-rootpath-rewrite-urls-spec.js +0 -3
  314. package/test/browser/runner-rootpath-spec.js +0 -3
  315. package/test/browser/runner-strict-units-options.js +0 -5
  316. package/test/browser/runner-strict-units-spec.js +0 -3
  317. package/test/index.js +0 -307
  318. package/test/less-test.js +0 -984
  319. package/test/mocha-playwright/runner.js +0 -210
  320. package/test/modify-vars.js +0 -28
  321. package/test/plugins/filemanager/index.js +0 -19
  322. package/test/plugins/postprocess/index.js +0 -14
  323. package/test/plugins/preprocess/index.js +0 -19
  324. package/test/plugins/visitor/index.js +0 -24
  325. package/test/sourcemaps/basic.json +0 -1
  326. package/test/sourcemaps/comprehensive.json +0 -1
  327. package/test/sourcemaps/custom-props.json +0 -1
  328. package/test/sourcemaps/index.html +0 -17
  329. package/test/sourcemaps/sourcemaps-basepath.json +0 -1
  330. package/test/sourcemaps/sourcemaps-include-source.json +0 -1
  331. package/test/sourcemaps/sourcemaps-rootpath.json +0 -1
  332. package/test/sourcemaps/sourcemaps-url.json +0 -1
  333. package/test/sourcemaps-disable-annotation/basic.json +0 -1
  334. package/test/sourcemaps-variable-selector/basic.json +0 -1
  335. package/test/test-es6.ts +0 -17
  336. package/test.less +0 -1
  337. package/tsconfig.build.json +0 -7
  338. package/tsconfig.json +0 -21
@@ -1,14 +1,18 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- var tslib_1 = require("tslib");
4
- var contexts_1 = tslib_1.__importDefault(require("./contexts"));
5
- var visitors_1 = tslib_1.__importDefault(require("./visitors"));
6
- var tree_1 = tslib_1.__importDefault(require("./tree"));
7
- function default_1(root, options) {
1
+ import contexts from './contexts.js';
2
+ import visitor from './visitors/index.js';
3
+ import tree from './tree/index.js';
4
+
5
+ /**
6
+ * @param {import('./tree/node.js').default} root
7
+ * @param {{ variables?: Record<string, *>, compress?: boolean, pluginManager?: *, frames?: *[] }} options
8
+ * @returns {import('./tree/node.js').default}
9
+ */
10
+ export default function(root, options) {
8
11
  options = options || {};
9
- var evaldRoot;
10
- var variables = options.variables;
11
- var evalEnv = new contexts_1.default.Eval(options);
12
+ let evaldRoot;
13
+ let variables = options.variables;
14
+ const evalEnv = new contexts.Eval(options);
15
+
12
16
  //
13
17
  // Allows setting variables with a hash, so:
14
18
  //
@@ -24,34 +28,38 @@ function default_1(root, options) {
24
28
  //
25
29
  if (typeof variables === 'object' && !Array.isArray(variables)) {
26
30
  variables = Object.keys(variables).map(function (k) {
27
- var value = variables[k];
28
- if (!(value instanceof tree_1.default.Value)) {
29
- if (!(value instanceof tree_1.default.Expression)) {
30
- value = new tree_1.default.Expression([value]);
31
+ let value = variables[k];
32
+
33
+ if (!(value instanceof tree.Value)) {
34
+ if (!(value instanceof tree.Expression)) {
35
+ value = new tree.Expression([value]);
31
36
  }
32
- value = new tree_1.default.Value([value]);
37
+ value = new tree.Value([value]);
33
38
  }
34
- return new tree_1.default.Declaration("@".concat(k), value, false, null, 0);
39
+ return new tree.Declaration(`@${k}`, value, false, null, 0);
35
40
  });
36
- evalEnv.frames = [new tree_1.default.Ruleset(null, variables)];
41
+ evalEnv.frames = [new tree.Ruleset(null, variables)];
37
42
  }
38
- var visitors = [
39
- new visitors_1.default.JoinSelectorVisitor(),
40
- new visitors_1.default.MarkVisibleSelectorsVisitor(true),
41
- new visitors_1.default.ExtendVisitor(),
42
- new visitors_1.default.ToCSSVisitor({ compress: Boolean(options.compress) })
43
+
44
+ const visitors = [
45
+ new visitor.JoinSelectorVisitor(),
46
+ new visitor.MarkVisibleSelectorsVisitor(true),
47
+ new visitor.ExtendVisitor(),
48
+ new visitor.ToCSSVisitor({compress: Boolean(options.compress)})
43
49
  ];
44
- var preEvalVisitors = [];
45
- var v;
46
- var visitorIterator;
50
+
51
+ const preEvalVisitors = [];
52
+ let v;
53
+ let visitorIterator;
54
+
47
55
  /**
48
56
  * first() / get() allows visitors to be added while visiting
49
- *
57
+ *
50
58
  * @todo Add scoping for visitors just like functions for @plugin; right now they're global
51
59
  */
52
60
  if (options.pluginManager) {
53
61
  visitorIterator = options.pluginManager.visitor();
54
- for (var i = 0; i < 2; i++) {
62
+ for (let i = 0; i < 2; i++) {
55
63
  visitorIterator.first();
56
64
  while ((v = visitorIterator.get())) {
57
65
  if (v.isPreEvalVisitor) {
@@ -73,10 +81,13 @@ function default_1(root, options) {
73
81
  }
74
82
  }
75
83
  }
84
+
76
85
  evaldRoot = root.eval(evalEnv);
77
- for (var i = 0; i < visitors.length; i++) {
86
+
87
+ for (let i = 0; i < visitors.length; i++) {
78
88
  visitors[i].run(evaldRoot);
79
89
  }
90
+
80
91
  // Run any remaining visitors added after eval pass
81
92
  if (options.pluginManager) {
82
93
  visitorIterator.first();
@@ -86,7 +97,6 @@ function default_1(root, options) {
86
97
  }
87
98
  }
88
99
  }
100
+
89
101
  return evaldRoot;
90
102
  }
91
- exports.default = default_1;
92
- //# sourceMappingURL=transform-tree.js.map
@@ -1,33 +1,57 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- var tslib_1 = require("tslib");
4
- var node_1 = tslib_1.__importDefault(require("./node"));
5
- var Anonymous = function (value, index, currentFileInfo, mapLines, rulesetLike, visibilityInfo) {
6
- this.value = value;
7
- this._index = index;
8
- this._fileInfo = currentFileInfo;
9
- this.mapLines = mapLines;
10
- this.rulesetLike = (typeof rulesetLike === 'undefined') ? false : rulesetLike;
11
- this.allowRoot = true;
12
- this.copyVisibilityInfo(visibilityInfo);
13
- };
14
- Anonymous.prototype = Object.assign(new node_1.default(), {
15
- type: 'Anonymous',
16
- eval: function () {
17
- return new Anonymous(this.value, this._index, this._fileInfo, this.mapLines, this.rulesetLike, this.visibilityInfo());
18
- },
19
- compare: function (other) {
20
- return other.toCSS && this.toCSS() === other.toCSS() ? 0 : undefined;
21
- },
22
- isRulesetLike: function () {
1
+ // @ts-check
2
+ /** @import { EvalContext, CSSOutput, FileInfo, VisibilityInfo } from './node.js' */
3
+ import Node from './node.js';
4
+
5
+ class Anonymous extends Node {
6
+ get type() { return 'Anonymous'; }
7
+
8
+ /**
9
+ * @param {string | null} value
10
+ * @param {number} [index]
11
+ * @param {FileInfo} [currentFileInfo]
12
+ * @param {boolean} [mapLines]
13
+ * @param {boolean} [rulesetLike]
14
+ * @param {VisibilityInfo} [visibilityInfo]
15
+ */
16
+ constructor(value, index, currentFileInfo, mapLines, rulesetLike, visibilityInfo) {
17
+ super();
18
+ this.value = value;
19
+ this._index = index;
20
+ this._fileInfo = currentFileInfo;
21
+ this.mapLines = mapLines;
22
+ this.rulesetLike = (typeof rulesetLike === 'undefined') ? false : rulesetLike;
23
+ this.allowRoot = true;
24
+ this.copyVisibilityInfo(visibilityInfo);
25
+ }
26
+
27
+ /** @returns {Anonymous} */
28
+ eval() {
29
+ return new Anonymous(/** @type {string | null} */ (this.value), this._index, this._fileInfo, this.mapLines, this.rulesetLike, this.visibilityInfo());
30
+ }
31
+
32
+ /**
33
+ * @param {Node} other
34
+ * @returns {number | undefined}
35
+ */
36
+ compare(other) {
37
+ return other.toCSS && this.toCSS(/** @type {EvalContext} */ ({})) === other.toCSS(/** @type {EvalContext} */ ({})) ? 0 : undefined;
38
+ }
39
+
40
+ /** @returns {boolean} */
41
+ isRulesetLike() {
23
42
  return this.rulesetLike;
24
- },
25
- genCSS: function (context, output) {
43
+ }
44
+
45
+ /**
46
+ * @param {EvalContext} context
47
+ * @param {CSSOutput} output
48
+ */
49
+ genCSS(context, output) {
26
50
  this.nodeVisible = Boolean(this.value);
27
51
  if (this.nodeVisible) {
28
- output.add(this.value, this._fileInfo, this._index, this.mapLines);
52
+ output.add(/** @type {string} */ (this.value), this._fileInfo, this._index, this.mapLines);
29
53
  }
30
54
  }
31
- });
32
- exports.default = Anonymous;
33
- //# sourceMappingURL=anonymous.js.map
55
+ }
56
+
57
+ export default Anonymous;
@@ -1,31 +1,48 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- var tslib_1 = require("tslib");
4
- var node_1 = tslib_1.__importDefault(require("./node"));
5
- var Assignment = function (key, val) {
6
- this.key = key;
7
- this.value = val;
8
- };
9
- Assignment.prototype = Object.assign(new node_1.default(), {
10
- type: 'Assignment',
11
- accept: function (visitor) {
12
- this.value = visitor.visit(this.value);
13
- },
14
- eval: function (context) {
15
- if (this.value.eval) {
16
- return new Assignment(this.key, this.value.eval(context));
1
+ // @ts-check
2
+ /** @import { EvalContext, CSSOutput, TreeVisitor } from './node.js' */
3
+ import Node from './node.js';
4
+
5
+ class Assignment extends Node {
6
+ get type() { return 'Assignment'; }
7
+
8
+ /**
9
+ * @param {string} key
10
+ * @param {Node} val
11
+ */
12
+ constructor(key, val) {
13
+ super();
14
+ this.key = key;
15
+ this.value = val;
16
+ }
17
+
18
+ /** @param {TreeVisitor} visitor */
19
+ accept(visitor) {
20
+ this.value = visitor.visit(/** @type {Node} */ (this.value));
21
+ }
22
+
23
+ /**
24
+ * @param {EvalContext} context
25
+ * @returns {Assignment}
26
+ */
27
+ eval(context) {
28
+ if (/** @type {Node} */ (this.value).eval) {
29
+ return new Assignment(this.key, /** @type {Node} */ (this.value).eval(context));
17
30
  }
18
31
  return this;
19
- },
20
- genCSS: function (context, output) {
21
- output.add("".concat(this.key, "="));
22
- if (this.value.genCSS) {
23
- this.value.genCSS(context, output);
24
- }
25
- else {
26
- output.add(this.value);
32
+ }
33
+
34
+ /**
35
+ * @param {EvalContext} context
36
+ * @param {CSSOutput} output
37
+ */
38
+ genCSS(context, output) {
39
+ output.add(`${this.key}=`);
40
+ if (/** @type {Node} */ (this.value).genCSS) {
41
+ /** @type {Node} */ (this.value).genCSS(context, output);
42
+ } else {
43
+ output.add(/** @type {string} */ (/** @type {unknown} */ (this.value)));
27
44
  }
28
45
  }
29
- });
30
- exports.default = Assignment;
31
- //# sourceMappingURL=assignment.js.map
46
+ }
47
+
48
+ export default Assignment;
@@ -1,10 +1,8 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.ContainerSyntaxOptions = exports.MediaSyntaxOptions = void 0;
4
- exports.MediaSyntaxOptions = {
1
+ // @ts-check
2
+ export const MediaSyntaxOptions = {
5
3
  queryInParens: true
6
4
  };
7
- exports.ContainerSyntaxOptions = {
5
+
6
+ export const ContainerSyntaxOptions = {
8
7
  queryInParens: true
9
8
  };
10
- //# sourceMappingURL=atrule-syntax.js.map