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,61 +1,63 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- var tslib_1 = require("tslib");
4
- var less_error_1 = tslib_1.__importDefault(require("./less-error"));
5
- var transform_tree_1 = tslib_1.__importDefault(require("./transform-tree"));
6
- var logger_1 = tslib_1.__importDefault(require("./logger"));
7
- function default_1(SourceMapBuilder) {
8
- var ParseTree = /** @class */ (function () {
9
- function ParseTree(root, imports) {
1
+ import LessError from './less-error.js';
2
+ import transformTree from './transform-tree.js';
3
+ import logger from './logger.js';
4
+
5
+ export default function(SourceMapBuilder) {
6
+ class ParseTree {
7
+ constructor(root, imports) {
10
8
  this.root = root;
11
9
  this.imports = imports;
12
10
  }
13
- ParseTree.prototype.toCSS = function (options) {
14
- var evaldRoot;
15
- var result = {};
16
- var sourceMapBuilder;
11
+
12
+ toCSS(options) {
13
+ let evaldRoot;
14
+ const result = {};
15
+ let sourceMapBuilder;
17
16
  try {
18
- evaldRoot = (0, transform_tree_1.default)(this.root, options);
19
- }
20
- catch (e) {
21
- throw new less_error_1.default(e, this.imports);
17
+ evaldRoot = transformTree(this.root, options);
18
+ } catch (e) {
19
+ throw new LessError(e, this.imports);
22
20
  }
21
+
23
22
  try {
24
- var compress = Boolean(options.compress);
23
+ const compress = Boolean(options.compress);
25
24
  if (compress) {
26
- logger_1.default.warn('The compress option has been deprecated. ' +
25
+ logger.warn('The compress option has been deprecated. ' +
27
26
  'We recommend you use a dedicated css minifier, for instance see less-plugin-clean-css.');
28
27
  }
29
- var toCSSOptions = {
30
- compress: compress,
28
+
29
+ const toCSSOptions = {
30
+ compress,
31
31
  // @deprecated The dumpLineNumbers option is deprecated. Use sourcemaps instead. All modes will be removed in a future version.
32
32
  dumpLineNumbers: options.dumpLineNumbers,
33
33
  strictUnits: Boolean(options.strictUnits),
34
- numPrecision: 8
35
- };
34
+ numPrecision: 8};
35
+
36
36
  if (options.sourceMap) {
37
37
  // Normalize sourceMap option: if it's just true, convert to object
38
38
  if (options.sourceMap === true) {
39
39
  options.sourceMap = {};
40
40
  }
41
- var sourceMapOpts = options.sourceMap;
41
+ const sourceMapOpts = options.sourceMap;
42
+
42
43
  // Set sourceMapInputFilename if not set and filename is available
43
44
  if (!sourceMapOpts.sourceMapInputFilename && options.filename) {
44
45
  sourceMapOpts.sourceMapInputFilename = options.filename;
45
46
  }
47
+
46
48
  // Default sourceMapBasepath to the input file's directory if not set
47
49
  // This matches the behavior documented and implemented in bin/lessc
48
50
  if (sourceMapOpts.sourceMapBasepath === undefined && options.filename) {
49
51
  // Get directory from filename using string manipulation (works cross-platform)
50
- var lastSlash = Math.max(options.filename.lastIndexOf('/'), options.filename.lastIndexOf('\\'));
52
+ const lastSlash = Math.max(options.filename.lastIndexOf('/'), options.filename.lastIndexOf('\\'));
51
53
  if (lastSlash >= 0) {
52
54
  sourceMapOpts.sourceMapBasepath = options.filename.substring(0, lastSlash);
53
- }
54
- else {
55
+ } else {
55
56
  // No directory separator found, use current directory
56
57
  sourceMapOpts.sourceMapBasepath = '.';
57
58
  }
58
59
  }
60
+
59
61
  // Handle sourceMapFullFilename (CLI-specific: --source-map=filename)
60
62
  // This is converted to sourceMapFilename and sourceMapOutputFilename
61
63
  if (sourceMapOpts.sourceMapFullFilename && !sourceMapOpts.sourceMapFileInline) {
@@ -63,63 +65,60 @@ function default_1(SourceMapBuilder) {
63
65
  // We just need to ensure sourceMapFilename is set if sourceMapFullFilename is provided
64
66
  if (!sourceMapOpts.sourceMapFilename && !sourceMapOpts.sourceMapURL) {
65
67
  // Extract just the basename for the sourceMappingURL comment
66
- var mapBase = sourceMapOpts.sourceMapFullFilename.split(/[/\\]/).pop();
68
+ const mapBase = sourceMapOpts.sourceMapFullFilename.split(/[/\\]/).pop();
67
69
  sourceMapOpts.sourceMapFilename = mapBase;
68
70
  }
69
- }
70
- else if (!sourceMapOpts.sourceMapFilename && !sourceMapOpts.sourceMapURL) {
71
+ } else if (!sourceMapOpts.sourceMapFilename && !sourceMapOpts.sourceMapURL) {
71
72
  // If sourceMapFilename is not set and sourceMapURL is not set,
72
73
  // derive it from the output filename (if available) or input filename
73
74
  if (sourceMapOpts.sourceMapOutputFilename) {
74
75
  // Use output filename + .map
75
76
  sourceMapOpts.sourceMapFilename = sourceMapOpts.sourceMapOutputFilename + '.map';
76
- }
77
- else if (options.filename) {
78
- // Fallback to input filename + .css.map
79
- var inputBase = options.filename.replace(/\.[^/.]+$/, '');
80
- sourceMapOpts.sourceMapFilename = inputBase + '.css.map';
77
+ } else if (options.filename) {
78
+ // Fallback to input filename + .css.map (basename only)
79
+ const inputBasename = options.filename.split(/[/\\]/).pop().replace(/\.[^/.]+$/, '');
80
+ sourceMapOpts.sourceMapFilename = inputBasename + '.css.map';
81
81
  }
82
82
  }
83
+
83
84
  // Default sourceMapOutputFilename if not set
84
85
  if (!sourceMapOpts.sourceMapOutputFilename) {
85
86
  if (options.filename) {
86
- var inputBase = options.filename.replace(/\.[^/.]+$/, '');
87
- sourceMapOpts.sourceMapOutputFilename = inputBase + '.css';
88
- }
89
- else {
87
+ const inputBasename = options.filename.split(/[/\\]/).pop().replace(/\.[^/.]+$/, '');
88
+ sourceMapOpts.sourceMapOutputFilename = inputBasename + '.css';
89
+ } else {
90
90
  sourceMapOpts.sourceMapOutputFilename = 'output.css';
91
91
  }
92
92
  }
93
+
93
94
  sourceMapBuilder = new SourceMapBuilder(sourceMapOpts);
94
95
  result.css = sourceMapBuilder.toCSS(evaldRoot, toCSSOptions, this.imports);
95
- }
96
- else {
96
+ } else {
97
97
  result.css = evaldRoot.toCSS(toCSSOptions);
98
98
  }
99
+ } catch (e) {
100
+ throw new LessError(e, this.imports);
99
101
  }
100
- catch (e) {
101
- throw new less_error_1.default(e, this.imports);
102
- }
102
+
103
103
  if (options.pluginManager) {
104
- var postProcessors = options.pluginManager.getPostProcessors();
105
- for (var i = 0; i < postProcessors.length; i++) {
106
- result.css = postProcessors[i].process(result.css, { sourceMap: sourceMapBuilder, options: options, imports: this.imports });
104
+ const postProcessors = options.pluginManager.getPostProcessors();
105
+ for (let i = 0; i < postProcessors.length; i++) {
106
+ result.css = postProcessors[i].process(result.css, { sourceMap: sourceMapBuilder, options, imports: this.imports });
107
107
  }
108
108
  }
109
109
  if (options.sourceMap) {
110
110
  result.map = sourceMapBuilder.getExternalSourceMap();
111
111
  }
112
+
112
113
  result.imports = [];
113
- for (var file in this.imports.files) {
114
+ for (const file in this.imports.files) {
114
115
  if (Object.prototype.hasOwnProperty.call(this.imports.files, file) && file !== this.imports.rootFilename) {
115
116
  result.imports.push(file);
116
117
  }
117
118
  }
118
119
  return result;
119
- };
120
- return ParseTree;
121
- }());
120
+ }
121
+ }
122
+
122
123
  return ParseTree;
123
124
  }
124
- exports.default = default_1;
125
- //# sourceMappingURL=parse-tree.js.map
package/lib/less/parse.js CHANGED
@@ -1,13 +1,12 @@
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 parser_1 = tslib_1.__importDefault(require("./parser/parser"));
6
- var plugin_manager_1 = tslib_1.__importDefault(require("./plugin-manager"));
7
- var less_error_1 = tslib_1.__importDefault(require("./less-error"));
8
- var utils = tslib_1.__importStar(require("./utils"));
9
- function default_1(environment, ParseTree, ImportManager) {
10
- var parse = function (input, options, callback) {
1
+ import contexts from './contexts.js';
2
+ import Parser from './parser/parser.js';
3
+ import PluginManager from './plugin-manager.js';
4
+ import LessError from './less-error.js';
5
+ import * as utils from './utils.js';
6
+
7
+ export default function(environment, ParseTree, ImportManager) {
8
+ const parse = function (input, options, callback) {
9
+
11
10
  if (typeof options === 'function') {
12
11
  callback = options;
13
12
  options = utils.copyOptions(this.options, {});
@@ -15,37 +14,38 @@ function default_1(environment, ParseTree, ImportManager) {
15
14
  else {
16
15
  options = utils.copyOptions(this.options, options || {});
17
16
  }
17
+
18
18
  if (!callback) {
19
- var self_1 = this;
19
+ const self = this;
20
20
  return new Promise(function (resolve, reject) {
21
- parse.call(self_1, input, options, function (err, output) {
21
+ parse.call(self, input, options, function(err, output) {
22
22
  if (err) {
23
23
  reject(err);
24
- }
25
- else {
24
+ } else {
26
25
  resolve(output);
27
26
  }
28
27
  });
29
28
  });
30
- }
31
- else {
32
- var context_1;
33
- var rootFileInfo = void 0;
34
- var pluginManager_1 = new plugin_manager_1.default(this, !options.reUsePluginManager);
35
- options.pluginManager = pluginManager_1;
36
- context_1 = new contexts_1.default.Parse(options);
29
+ } else {
30
+ let context;
31
+ let rootFileInfo;
32
+ const pluginManager = new PluginManager(this, !options.reUsePluginManager);
33
+
34
+ options.pluginManager = pluginManager;
35
+
36
+ context = new contexts.Parse(options);
37
+
37
38
  if (options.rootFileInfo) {
38
39
  rootFileInfo = options.rootFileInfo;
39
- }
40
- else {
41
- var filename = options.filename || 'input';
42
- var entryPath = filename.replace(/[^/\\]*$/, '');
40
+ } else {
41
+ const filename = options.filename || 'input';
42
+ const entryPath = filename.replace(/[^/\\]*$/, '');
43
43
  rootFileInfo = {
44
- filename: filename,
45
- rewriteUrls: context_1.rewriteUrls,
46
- rootpath: context_1.rootpath || '',
44
+ filename,
45
+ rewriteUrls: context.rewriteUrls,
46
+ rootpath: context.rootpath || '',
47
47
  currentDirectory: entryPath,
48
- entryPath: entryPath,
48
+ entryPath,
49
49
  rootFilename: filename
50
50
  };
51
51
  // add in a missing trailing slash
@@ -53,35 +53,35 @@ function default_1(environment, ParseTree, ImportManager) {
53
53
  rootFileInfo.rootpath += '/';
54
54
  }
55
55
  }
56
- var imports_1 = new ImportManager(this, context_1, rootFileInfo);
57
- this.importManager = imports_1;
56
+
57
+ const imports = new ImportManager(this, context, rootFileInfo);
58
+ this.importManager = imports;
59
+
58
60
  // TODO: allow the plugins to be just a list of paths or names
59
61
  // Do an async plugin queue like lessc
62
+
60
63
  if (options.plugins) {
61
- options.plugins.forEach(function (plugin) {
62
- var evalResult, contents;
64
+ options.plugins.forEach(function(plugin) {
65
+ let evalResult, contents;
63
66
  if (plugin.fileContent) {
64
67
  contents = plugin.fileContent.replace(/^\uFEFF/, '');
65
- evalResult = pluginManager_1.Loader.evalPlugin(contents, context_1, imports_1, plugin.options, plugin.filename);
66
- if (evalResult instanceof less_error_1.default) {
68
+ evalResult = pluginManager.Loader.evalPlugin(contents, context, imports, plugin.options, plugin.filename);
69
+ if (evalResult instanceof LessError) {
67
70
  return callback(evalResult);
68
71
  }
69
72
  }
70
73
  else {
71
- pluginManager_1.addPlugin(plugin);
74
+ pluginManager.addPlugin(plugin);
72
75
  }
73
76
  });
74
77
  }
75
- new parser_1.default(context_1, imports_1, rootFileInfo)
78
+
79
+ new Parser(context, imports, rootFileInfo)
76
80
  .parse(input, function (e, root) {
77
- if (e) {
78
- return callback(e);
79
- }
80
- callback(null, root, imports_1, options);
81
- }, options);
81
+ if (e) { return callback(e); }
82
+ callback(null, root, imports, options);
83
+ }, options);
82
84
  }
83
85
  };
84
86
  return parse;
85
87
  }
86
- exports.default = default_1;
87
- //# sourceMappingURL=parse.js.map