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,28 +1,28 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- var tslib_1 = require("tslib");
4
- var function_registry_1 = tslib_1.__importDefault(require("./../less/functions/function-registry"));
5
- exports.default = (function () {
1
+
2
+ import functionRegistry from './../less/functions/function-registry.js';
3
+
4
+ export default () => {
6
5
  function imageSize() {
7
6
  throw {
8
7
  type: 'Runtime',
9
8
  message: 'Image size functions are not supported in browser version of less'
10
9
  };
11
10
  }
12
- var imageFunctions = {
13
- 'image-size': function (filePathNode) {
11
+
12
+ const imageFunctions = {
13
+ 'image-size': function(filePathNode) {
14
14
  imageSize(this, filePathNode);
15
15
  return -1;
16
16
  },
17
- 'image-width': function (filePathNode) {
17
+ 'image-width': function(filePathNode) {
18
18
  imageSize(this, filePathNode);
19
19
  return -1;
20
20
  },
21
- 'image-height': function (filePathNode) {
21
+ 'image-height': function(filePathNode) {
22
22
  imageSize(this, filePathNode);
23
23
  return -1;
24
24
  }
25
25
  };
26
- function_registry_1.default.addMultiple(imageFunctions);
27
- });
28
- //# sourceMappingURL=image-size.js.map
26
+
27
+ functionRegistry.addMultiple(imageFunctions);
28
+ };
@@ -1,258 +1,284 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- var tslib_1 = require("tslib");
4
1
  //
5
2
  // index.js
6
3
  // Should expose the additional browser functions on to the less object
7
4
  //
8
- var utils_1 = require("./utils");
9
- var less_1 = tslib_1.__importDefault(require("../less"));
10
- var browser_1 = tslib_1.__importDefault(require("./browser"));
11
- var file_manager_1 = tslib_1.__importDefault(require("./file-manager"));
12
- var plugin_loader_1 = tslib_1.__importDefault(require("./plugin-loader"));
13
- var log_listener_1 = tslib_1.__importDefault(require("./log-listener"));
14
- var error_reporting_1 = tslib_1.__importDefault(require("./error-reporting"));
15
- var cache_1 = tslib_1.__importDefault(require("./cache"));
16
- var image_size_1 = tslib_1.__importDefault(require("./image-size"));
17
- exports.default = (function (window, options) {
18
- var document = window.document;
19
- var less = (0, less_1.default)();
5
+ import {addDataAttr} from './utils.js';
6
+ import lessRoot from '../less/index.js';
7
+ import browser from './browser.js';
8
+ import FM from './file-manager.js';
9
+ import PluginLoader from './plugin-loader.js';
10
+ import LogListener from './log-listener.js';
11
+ import ErrorReporting from './error-reporting.js';
12
+ import Cache from './cache.js';
13
+ import ImageSize from './image-size.js';
14
+ import pkg from '../../package.json';
15
+
16
+ /**
17
+ * @param {Window} window
18
+ * @param {Object} options
19
+ */
20
+ export default (window, options) => {
21
+ const document = window.document;
22
+ const less = lessRoot(undefined, undefined, pkg.version);
23
+
20
24
  less.options = options;
21
- var environment = less.environment;
22
- var FileManager = (0, file_manager_1.default)(options, less.logger);
23
- var fileManager = new FileManager();
25
+ const environment = less.environment;
26
+ const FileManager = FM(options, less.logger);
27
+ const fileManager = new FileManager();
24
28
  environment.addFileManager(fileManager);
25
29
  less.FileManager = FileManager;
26
- less.PluginLoader = plugin_loader_1.default;
27
- (0, log_listener_1.default)(less, options);
28
- var errors = (0, error_reporting_1.default)(window, less, options);
29
- var cache = less.cache = options.cache || (0, cache_1.default)(window, options, less.logger);
30
- (0, image_size_1.default)(less.environment);
30
+ less.PluginLoader = PluginLoader;
31
+
32
+ LogListener(less, options);
33
+ const errors = ErrorReporting(window, less, options);
34
+ const cache = less.cache = options.cache || Cache(window, options, less.logger);
35
+ ImageSize(less.environment);
36
+
31
37
  // Setup user functions - Deprecate?
32
38
  if (options.functions) {
33
39
  less.functions.functionRegistry.addMultiple(options.functions);
34
40
  }
35
- var typePattern = /^text\/(x-)?less$/;
41
+
42
+ const typePattern = /^text\/(x-)?less$/;
43
+
36
44
  function clone(obj) {
37
- var cloned = {};
38
- for (var prop in obj) {
45
+ const cloned = {};
46
+ for (const prop in obj) {
39
47
  if (Object.prototype.hasOwnProperty.call(obj, prop)) {
40
48
  cloned[prop] = obj[prop];
41
49
  }
42
50
  }
43
51
  return cloned;
44
52
  }
45
- // only really needed for phantom
46
- function bind(func, thisArg) {
47
- var curryArgs = Array.prototype.slice.call(arguments, 2);
48
- return function () {
49
- var args = curryArgs.concat(Array.prototype.slice.call(arguments, 0));
50
- return func.apply(thisArg, args);
51
- };
52
- }
53
+
53
54
  function loadStyles(modifyVars) {
54
- var styles = document.getElementsByTagName('style');
55
- var style;
56
- for (var i = 0; i < styles.length; i++) {
57
- style = styles[i];
55
+ const styles = document.getElementsByTagName('style');
56
+
57
+ for (let style of styles) {
58
58
  if (style.type.match(typePattern)) {
59
- var instanceOptions = clone(options);
60
- instanceOptions.modifyVars = modifyVars;
61
- var lessText = style.innerHTML || '';
62
- instanceOptions.filename = document.location.href.replace(/#.*$/, '');
59
+ const instanceOptions = {
60
+ ...clone(options),
61
+ modifyVars,
62
+ filename: document.location.href.replace(/#.*$/, '')
63
+ }
64
+
65
+ const lessText = style.innerHTML || '';
66
+
63
67
  /* jshint loopfunc:true */
64
- // use closure to store current style
65
- less.render(lessText, instanceOptions, bind(function (style, e, result) {
66
- if (e) {
67
- errors.add(e, 'inline');
68
- }
69
- else {
68
+ less.render(lessText, instanceOptions, (err, result) => {
69
+ if (err) {
70
+ errors.add(err, 'inline');
71
+ } else {
70
72
  style.type = 'text/css';
71
73
  if (style.styleSheet) {
72
74
  style.styleSheet.cssText = result.css;
73
- }
74
- else {
75
+ } else {
75
76
  style.innerHTML = result.css;
76
77
  }
77
78
  }
78
- }, null, style));
79
+ });
79
80
  }
80
81
  }
81
82
  }
83
+
82
84
  function loadStyleSheet(sheet, callback, reload, remaining, modifyVars) {
83
- var instanceOptions = clone(options);
84
- (0, utils_1.addDataAttr)(instanceOptions, sheet);
85
+
86
+ const instanceOptions = clone(options);
87
+ addDataAttr(instanceOptions, sheet);
85
88
  instanceOptions.mime = sheet.type;
89
+
86
90
  if (modifyVars) {
87
91
  instanceOptions.modifyVars = modifyVars;
88
92
  }
93
+
89
94
  function loadInitialFileCallback(loadedFile) {
90
- var data = loadedFile.contents;
91
- var path = loadedFile.filename;
92
- var webInfo = loadedFile.webInfo;
93
- var newFileInfo = {
95
+ const data = loadedFile.contents;
96
+ const path = loadedFile.filename;
97
+ const webInfo = loadedFile.webInfo;
98
+
99
+ const newFileInfo = {
94
100
  currentDirectory: fileManager.getPath(path),
95
101
  filename: path,
96
102
  rootFilename: path,
97
103
  rewriteUrls: instanceOptions.rewriteUrls
98
104
  };
105
+
99
106
  newFileInfo.entryPath = newFileInfo.currentDirectory;
100
107
  newFileInfo.rootpath = instanceOptions.rootpath || newFileInfo.currentDirectory;
108
+
101
109
  if (webInfo) {
102
110
  webInfo.remaining = remaining;
103
- var css = cache.getCSS(path, webInfo, instanceOptions.modifyVars);
111
+
112
+ const css = cache.getCSS(path, webInfo, instanceOptions.modifyVars);
104
113
  if (!reload && css) {
105
114
  webInfo.local = true;
106
115
  callback(null, css, data, sheet, webInfo, path);
107
116
  return;
108
117
  }
118
+
109
119
  }
120
+
110
121
  // TODO add tests around how this behaves when reloading
111
122
  errors.remove(path);
123
+
112
124
  instanceOptions.rootFileInfo = newFileInfo;
113
- less.render(data, instanceOptions, function (e, result) {
125
+ less.render(data, instanceOptions, (e, result) => {
114
126
  if (e) {
115
127
  e.href = path;
116
128
  callback(e);
117
- }
118
- else {
129
+ } else {
119
130
  cache.setCSS(sheet.href, webInfo.lastModified, instanceOptions.modifyVars, result.css);
120
131
  callback(null, result.css, data, sheet, webInfo, path);
121
132
  }
122
133
  });
123
134
  }
135
+
124
136
  fileManager.loadFile(sheet.href, null, instanceOptions, environment)
125
- .then(function (loadedFile) {
126
- loadInitialFileCallback(loadedFile);
127
- }).catch(function (err) {
128
- console.log(err);
129
- callback(err);
130
- });
137
+ .then(loadedFile => {
138
+ loadInitialFileCallback(loadedFile);
139
+ }).catch(err => {
140
+ console.log(err);
141
+ callback(err);
142
+ });
143
+
131
144
  }
145
+
132
146
  function loadStyleSheets(callback, reload, modifyVars) {
133
- for (var i = 0; i < less.sheets.length; i++) {
147
+ for (let i = 0; i < less.sheets.length; i++) {
134
148
  loadStyleSheet(less.sheets[i], callback, reload, less.sheets.length - (i + 1), modifyVars);
135
149
  }
136
150
  }
151
+
137
152
  function initRunningMode() {
138
153
  if (less.env === 'development') {
139
- less.watchTimer = setInterval(function () {
154
+ less.watchTimer = setInterval(() => {
140
155
  if (less.watchMode) {
141
156
  fileManager.clearFileCache();
142
157
  /**
143
158
  * @todo remove when this is typed with JSDoc
144
159
  */
145
160
  // eslint-disable-next-line no-unused-vars
146
- loadStyleSheets(function (e, css, _, sheet, webInfo) {
161
+ loadStyleSheets((e, css, _, sheet, webInfo) => {
147
162
  if (e) {
148
163
  errors.add(e, e.href || sheet.href);
149
- }
150
- else if (css) {
151
- browser_1.default.createCSS(window.document, css, sheet);
164
+ } else if (css) {
165
+ browser.createCSS(window.document, css, sheet);
152
166
  }
153
167
  });
154
168
  }
155
169
  }, options.poll);
156
170
  }
157
171
  }
172
+
158
173
  //
159
174
  // Watch mode
160
175
  //
161
176
  less.watch = function () {
162
- if (!less.watchMode) {
177
+ if (!less.watchMode ) {
163
178
  less.env = 'development';
164
179
  initRunningMode();
165
180
  }
166
181
  this.watchMode = true;
167
182
  return true;
168
183
  };
169
- less.unwatch = function () { clearInterval(less.watchTimer); this.watchMode = false; return false; };
184
+
185
+ less.unwatch = function () {clearInterval(less.watchTimer); this.watchMode = false; return false; };
186
+
170
187
  //
171
188
  // Synchronously get all <link> tags with the 'rel' attribute set to
172
189
  // "stylesheet/less".
173
190
  //
174
- less.registerStylesheetsImmediately = function () {
175
- var links = document.getElementsByTagName('link');
191
+ less.registerStylesheetsImmediately = () => {
192
+ const links = document.getElementsByTagName('link');
176
193
  less.sheets = [];
177
- for (var i = 0; i < links.length; i++) {
194
+
195
+ for (let i = 0; i < links.length; i++) {
178
196
  if (links[i].rel === 'stylesheet/less' || (links[i].rel.match(/stylesheet/) &&
179
197
  (links[i].type.match(typePattern)))) {
180
198
  less.sheets.push(links[i]);
181
199
  }
182
200
  }
183
201
  };
202
+
184
203
  //
185
204
  // Asynchronously get all <link> tags with the 'rel' attribute set to
186
205
  // "stylesheet/less", returning a Promise.
187
206
  //
188
- less.registerStylesheets = function () { return new Promise(function (resolve) {
207
+ less.registerStylesheets = () => new Promise((resolve) => {
189
208
  less.registerStylesheetsImmediately();
190
209
  resolve();
191
- }); };
210
+ });
211
+
192
212
  //
193
213
  // With this function, it's possible to alter variables and re-render
194
214
  // CSS without reloading less-files
195
215
  //
196
- less.modifyVars = function (record) { return less.refresh(true, record, false); };
197
- less.refresh = function (reload, modifyVars, clearFileCache) {
216
+ less.modifyVars = record => less.refresh(true, record, false);
217
+
218
+ less.refresh = (reload, modifyVars, clearFileCache) => {
198
219
  if ((reload || clearFileCache) && clearFileCache !== false) {
199
220
  fileManager.clearFileCache();
200
221
  }
201
- return new Promise(function (resolve, reject) {
202
- var startTime;
203
- var endTime;
204
- var totalMilliseconds;
205
- var remainingSheets;
222
+ return new Promise((resolve, reject) => {
223
+ let startTime;
224
+ let endTime;
225
+ let totalMilliseconds;
226
+ let remainingSheets;
206
227
  startTime = endTime = new Date();
228
+
207
229
  // Set counter for remaining unprocessed sheets
208
230
  remainingSheets = less.sheets.length;
231
+
209
232
  if (remainingSheets === 0) {
233
+
210
234
  endTime = new Date();
211
235
  totalMilliseconds = endTime - startTime;
212
236
  less.logger.info('Less has finished and no sheets were loaded.');
213
237
  resolve({
214
- startTime: startTime,
215
- endTime: endTime,
216
- totalMilliseconds: totalMilliseconds,
238
+ startTime,
239
+ endTime,
240
+ totalMilliseconds,
217
241
  sheets: less.sheets.length
218
242
  });
219
- }
220
- else {
243
+
244
+ } else {
221
245
  // Relies on less.sheets array, callback seems to be guaranteed to be called for every element of the array
222
- loadStyleSheets(function (e, css, _, sheet, webInfo) {
246
+ loadStyleSheets((e, css, _, sheet, webInfo) => {
223
247
  if (e) {
224
248
  errors.add(e, e.href || sheet.href);
225
249
  reject(e);
226
250
  return;
227
251
  }
228
252
  if (webInfo.local) {
229
- less.logger.info("Loading ".concat(sheet.href, " from cache."));
230
- }
231
- else {
232
- less.logger.info("Rendered ".concat(sheet.href, " successfully."));
253
+ less.logger.info(`Loading ${sheet.href} from cache.`);
254
+ } else {
255
+ less.logger.info(`Rendered ${sheet.href} successfully.`);
233
256
  }
234
- browser_1.default.createCSS(window.document, css, sheet);
235
- less.logger.info("CSS for ".concat(sheet.href, " generated in ").concat(new Date() - endTime, "ms"));
257
+ browser.createCSS(window.document, css, sheet);
258
+ less.logger.info(`CSS for ${sheet.href} generated in ${new Date() - endTime}ms`);
259
+
236
260
  // Count completed sheet
237
261
  remainingSheets--;
262
+
238
263
  // Check if the last remaining sheet was processed and then call the promise
239
264
  if (remainingSheets === 0) {
240
265
  totalMilliseconds = new Date() - startTime;
241
- less.logger.info("Less has finished. CSS generated in ".concat(totalMilliseconds, "ms"));
266
+ less.logger.info(`Less has finished. CSS generated in ${totalMilliseconds}ms`);
242
267
  resolve({
243
- startTime: startTime,
244
- endTime: endTime,
245
- totalMilliseconds: totalMilliseconds,
268
+ startTime,
269
+ endTime,
270
+ totalMilliseconds,
246
271
  sheets: less.sheets.length
247
272
  });
248
273
  }
249
274
  endTime = new Date();
250
275
  }, reload, modifyVars);
251
276
  }
277
+
252
278
  loadStyles(modifyVars);
253
279
  });
254
280
  };
281
+
255
282
  less.refreshStyles = loadStyles;
256
283
  return less;
257
- });
258
- //# sourceMappingURL=index.js.map
284
+ };
@@ -1,43 +1,42 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.default = (function (less, options) {
4
- var logLevel_debug = 4;
5
- var logLevel_info = 3;
6
- var logLevel_warn = 2;
7
- var logLevel_error = 1;
1
+ export default (less, options) => {
2
+ const logLevel_debug = 4;
3
+ const logLevel_info = 3;
4
+ const logLevel_warn = 2;
5
+ const logLevel_error = 1;
6
+
8
7
  // The amount of logging in the javascript console.
9
8
  // 3 - Debug, information and errors
10
9
  // 2 - Information and errors
11
10
  // 1 - Errors
12
11
  // 0 - None
13
12
  // Defaults to 2
14
- options.logLevel = typeof options.logLevel !== 'undefined' ? options.logLevel : (options.env === 'development' ? logLevel_info : logLevel_error);
13
+ options.logLevel = typeof options.logLevel !== 'undefined' ? options.logLevel : (options.env === 'development' ? logLevel_info : logLevel_error);
14
+
15
15
  if (!options.loggers) {
16
16
  options.loggers = [{
17
- debug: function (msg) {
18
- if (options.logLevel >= logLevel_debug) {
19
- console.log(msg);
20
- }
21
- },
22
- info: function (msg) {
23
- if (options.logLevel >= logLevel_info) {
24
- console.log(msg);
25
- }
26
- },
27
- warn: function (msg) {
28
- if (options.logLevel >= logLevel_warn) {
29
- console.warn(msg);
30
- }
31
- },
32
- error: function (msg) {
33
- if (options.logLevel >= logLevel_error) {
34
- console.error(msg);
35
- }
17
+ debug: function(msg) {
18
+ if (options.logLevel >= logLevel_debug) {
19
+ console.log(msg);
36
20
  }
37
- }];
21
+ },
22
+ info: function(msg) {
23
+ if (options.logLevel >= logLevel_info) {
24
+ console.log(msg);
25
+ }
26
+ },
27
+ warn: function(msg) {
28
+ if (options.logLevel >= logLevel_warn) {
29
+ console.warn(msg);
30
+ }
31
+ },
32
+ error: function(msg) {
33
+ if (options.logLevel >= logLevel_error) {
34
+ console.error(msg);
35
+ }
36
+ }
37
+ }];
38
38
  }
39
- for (var i = 0; i < options.loggers.length; i++) {
39
+ for (let i = 0; i < options.loggers.length; i++) {
40
40
  less.logger.addListener(options.loggers[i]);
41
41
  }
42
- });
43
- //# sourceMappingURL=log-listener.js.map
42
+ };
@@ -1,24 +1,24 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- var tslib_1 = require("tslib");
4
1
  /**
5
2
  * @todo Add tests for browser `@plugin`
6
3
  */
7
- var abstract_plugin_loader_js_1 = tslib_1.__importDefault(require("../less/environment/abstract-plugin-loader.js"));
4
+ import AbstractPluginLoader from '../less/environment/abstract-plugin-loader.js';
5
+
8
6
  /**
9
7
  * Browser Plugin Loader
10
8
  */
11
- var PluginLoader = function (less) {
9
+ const PluginLoader = function(less) {
12
10
  this.less = less;
13
11
  // Should we shim this.require for browser? Probably not?
14
12
  };
15
- PluginLoader.prototype = Object.assign(new abstract_plugin_loader_js_1.default(), {
16
- loadPlugin: function (filename, basePath, context, environment, fileManager) {
17
- return new Promise(function (fulfill, reject) {
13
+
14
+ PluginLoader.prototype = Object.assign(new AbstractPluginLoader(), {
15
+ loadPlugin(filename, basePath, context, environment, fileManager) {
16
+ return new Promise((fulfill, reject) => {
18
17
  fileManager.loadFile(filename, basePath, context, environment)
19
18
  .then(fulfill).catch(reject);
20
19
  });
21
20
  }
22
21
  });
23
- exports.default = PluginLoader;
24
- //# sourceMappingURL=plugin-loader.js.map
22
+
23
+ export default PluginLoader;
24
+
@@ -1,32 +1,30 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.addDataAttr = exports.extractId = void 0;
4
- function extractId(href) {
5
- return href.replace(/^[a-z-]+:\/+?[^/]+/, '') // Remove protocol & domain
6
- .replace(/[?&]livereload=\w+/, '') // Remove LiveReload cachebuster
7
- .replace(/^\//, '') // Remove root /
8
- .replace(/\.[a-zA-Z]+$/, '') // Remove simple extension
9
- .replace(/[^.\w-]+/g, '-') // Replace illegal characters
10
- .replace(/\./g, ':'); // Replace dots with colons(for valid id)
1
+
2
+ /** @param {string} href */
3
+ export function extractId(href) {
4
+ return href.replace(/^[a-z-]+:\/+?[^/]+/, '') // Remove protocol & domain
5
+ .replace(/[?&]livereload=\w+/, '') // Remove LiveReload cachebuster
6
+ .replace(/^\//, '') // Remove root /
7
+ .replace(/\.[a-zA-Z]+$/, '') // Remove simple extension
8
+ .replace(/[^.\w-]+/g, '-') // Replace illegal characters
9
+ .replace(/\./g, ':'); // Replace dots with colons(for valid id)
11
10
  }
12
- exports.extractId = extractId;
13
- function addDataAttr(options, tag) {
14
- if (!tag) {
15
- return;
16
- } // in case of tag is null or undefined
17
- for (var opt in tag.dataset) {
11
+
12
+ /**
13
+ * @param {Record<string, *>} options
14
+ * @param {HTMLElement | null} tag
15
+ */
16
+ export function addDataAttr(options, tag) {
17
+ if (!tag) {return;} // in case of tag is null or undefined
18
+ for (const opt in tag.dataset) {
18
19
  if (Object.prototype.hasOwnProperty.call(tag.dataset, opt)) {
19
20
  if (opt === 'env' || opt === 'dumpLineNumbers' || opt === 'rootpath' || opt === 'errorReporting') {
20
21
  options[opt] = tag.dataset[opt];
21
- }
22
- else {
22
+ } else {
23
23
  try {
24
24
  options[opt] = JSON.parse(tag.dataset[opt]);
25
25
  }
26
- catch (_) { }
26
+ catch (_) {}
27
27
  }
28
28
  }
29
29
  }
30
30
  }
31
- exports.addDataAttr = addDataAttr;
32
- //# sourceMappingURL=utils.js.map
@@ -1,19 +1,43 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.default = {
1
+ import { createRequire } from 'module';
2
+
3
+ const require = createRequire(import.meta.url);
4
+
5
+ class SourceMapGeneratorFallback {
6
+ addMapping(){}
7
+ setSourceContent(){}
8
+ toJSON(){
9
+ return null;
10
+ }
11
+ };
12
+
13
+ export default {
4
14
  encodeBase64: function encodeBase64(str) {
5
15
  // Avoid Buffer constructor on newer versions of Node.js.
6
- var buffer = (Buffer.from ? Buffer.from(str) : (new Buffer(str)));
16
+ const buffer = (Buffer.from ? Buffer.from(str) : (new Buffer(str)));
7
17
  return buffer.toString('base64');
8
18
  },
9
19
  mimeLookup: function (filename) {
10
- return require('mime').lookup(filename);
20
+ try {
21
+ const mimeModule = require('mime');
22
+ return mimeModule ? mimeModule.lookup(filename) : "application/octet-stream";
23
+ } catch (e) {
24
+ return "application/octet-stream";
25
+ }
11
26
  },
12
27
  charsetLookup: function (mime) {
13
- return require('mime').charsets.lookup(mime);
28
+ try {
29
+ const mimeModule = require('mime');
30
+ return mimeModule ? mimeModule.charsets.lookup(mime) : undefined;
31
+ } catch (e) {
32
+ return undefined;
33
+ }
14
34
  },
15
35
  getSourceMapGenerator: function getSourceMapGenerator() {
16
- return require('source-map').SourceMapGenerator;
36
+ try {
37
+ const sourceMapModule = require('source-map');
38
+ return sourceMapModule ? sourceMapModule.SourceMapGenerator : SourceMapGeneratorFallback;
39
+ } catch (e) {
40
+ return SourceMapGeneratorFallback;
41
+ }
17
42
  }
18
43
  };
19
- //# sourceMappingURL=environment.js.map