less 4.5.1 → 4.6.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (340) hide show
  1. package/README.md +70 -5
  2. package/bin/lessc +37 -23
  3. package/dist/less.js +14501 -11745
  4. package/dist/less.min.js +4 -4
  5. package/dist/less.min.js.map +1 -1
  6. package/index.cjs +41 -0
  7. package/lib/less/constants.js +5 -7
  8. package/lib/less/contexts.js +71 -55
  9. package/lib/less/data/colors.js +150 -153
  10. package/lib/less/data/index.js +4 -7
  11. package/lib/less/data/unit-conversions.js +2 -5
  12. package/lib/less/default-options.js +36 -26
  13. package/lib/less/deprecation.js +67 -0
  14. package/lib/less/environment/abstract-file-manager.js +62 -50
  15. package/lib/less/environment/abstract-plugin-loader.js +69 -46
  16. package/lib/less/environment/environment-api.ts +21 -0
  17. package/lib/less/environment/environment.js +34 -30
  18. package/lib/less/environment/file-manager-api.ts +77 -0
  19. package/lib/less/functions/boolean.js +13 -13
  20. package/lib/less/functions/color-blending.js +39 -31
  21. package/lib/less/functions/color.js +153 -137
  22. package/lib/less/functions/data-uri.js +73 -64
  23. package/lib/less/functions/default.js +9 -11
  24. package/lib/less/functions/function-caller.js +35 -34
  25. package/lib/less/functions/function-registry.js +16 -17
  26. package/lib/less/functions/index.js +33 -33
  27. package/lib/less/functions/list.js +88 -75
  28. package/lib/less/functions/math-helper.js +8 -11
  29. package/lib/less/functions/math.js +21 -21
  30. package/lib/less/functions/number.js +42 -53
  31. package/lib/less/functions/string.js +18 -22
  32. package/lib/less/functions/style.js +21 -20
  33. package/lib/less/functions/svg.js +83 -82
  34. package/lib/less/functions/types.js +28 -32
  35. package/lib/less/import-manager.js +73 -64
  36. package/lib/less/index.js +65 -65
  37. package/lib/less/less-error.js +63 -45
  38. package/lib/less/logger.js +11 -14
  39. package/lib/less/parse-tree.js +52 -53
  40. package/lib/less/parse.js +44 -44
  41. package/lib/less/parser/parser-input.js +151 -113
  42. package/lib/less/parser/parser.js +864 -658
  43. package/lib/less/plugin-manager.js +57 -46
  44. package/lib/less/render.js +17 -23
  45. package/lib/less/source-map-builder.js +52 -43
  46. package/lib/less/source-map-output.js +56 -43
  47. package/lib/less/transform-tree.js +40 -30
  48. package/lib/less/tree/anonymous.js +52 -28
  49. package/lib/less/tree/assignment.js +44 -27
  50. package/lib/less/tree/atrule-syntax.js +4 -6
  51. package/lib/less/tree/atrule.js +247 -140
  52. package/lib/less/tree/attribute.js +55 -24
  53. package/lib/less/tree/call.js +70 -42
  54. package/lib/less/tree/color.js +194 -145
  55. package/lib/less/tree/combinator.js +31 -21
  56. package/lib/less/tree/comment.js +44 -23
  57. package/lib/less/tree/condition.js +61 -36
  58. package/lib/less/tree/container.js +90 -34
  59. package/lib/less/tree/debug-info.js +28 -15
  60. package/lib/less/tree/declaration.js +97 -52
  61. package/lib/less/tree/detached-ruleset.js +42 -24
  62. package/lib/less/tree/dimension.js +127 -71
  63. package/lib/less/tree/element.js +82 -52
  64. package/lib/less/tree/expression.js +75 -50
  65. package/lib/less/tree/extend.js +71 -42
  66. package/lib/less/tree/import.js +184 -110
  67. package/lib/less/tree/index.js +52 -81
  68. package/lib/less/tree/javascript.js +43 -32
  69. package/lib/less/tree/js-eval-node.js +46 -32
  70. package/lib/less/tree/keyword.js +25 -17
  71. package/lib/less/tree/media.js +77 -35
  72. package/lib/less/tree/merge-rules.js +47 -0
  73. package/lib/less/tree/mixin-call.js +181 -98
  74. package/lib/less/tree/mixin-definition.js +211 -117
  75. package/lib/less/tree/namespace-value.js +63 -44
  76. package/lib/less/tree/negative.js +34 -21
  77. package/lib/less/tree/nested-at-rule.js +149 -66
  78. package/lib/less/tree/node.js +225 -90
  79. package/lib/less/tree/operation.js +59 -34
  80. package/lib/less/tree/paren.js +34 -17
  81. package/lib/less/tree/property.js +66 -35
  82. package/lib/less/tree/query-in-parens.js +52 -60
  83. package/lib/less/tree/quoted.js +93 -44
  84. package/lib/less/tree/ruleset.js +632 -318
  85. package/lib/less/tree/selector.js +151 -77
  86. package/lib/less/tree/unicode-descriptor.js +14 -12
  87. package/lib/less/tree/unit.js +111 -63
  88. package/lib/less/tree/url.js +62 -38
  89. package/lib/less/tree/value.js +50 -34
  90. package/lib/less/tree/variable-call.js +47 -30
  91. package/lib/less/tree/variable.js +53 -31
  92. package/lib/less/utils.js +44 -47
  93. package/lib/less/visitors/extend-visitor.js +233 -172
  94. package/lib/less/visitors/import-sequencer.js +24 -24
  95. package/lib/less/visitors/import-visitor.js +62 -52
  96. package/lib/less/visitors/index.js +14 -17
  97. package/lib/less/visitors/join-selector-visitor.js +40 -37
  98. package/lib/less/visitors/set-tree-visibility-visitor.js +32 -18
  99. package/lib/less/visitors/to-css-visitor.js +135 -128
  100. package/lib/less/visitors/visitor.js +60 -45
  101. package/lib/less-browser/add-default-options.js +23 -13
  102. package/lib/less-browser/bootstrap.js +23 -17
  103. package/lib/less-browser/browser.js +24 -21
  104. package/lib/less-browser/cache.js +17 -19
  105. package/lib/less-browser/error-reporting.js +52 -44
  106. package/lib/less-browser/file-manager.js +52 -42
  107. package/lib/less-browser/image-size.js +12 -12
  108. package/lib/less-browser/index.js +131 -105
  109. package/lib/less-browser/log-listener.js +30 -31
  110. package/lib/less-browser/plugin-loader.js +10 -10
  111. package/lib/less-browser/utils.js +19 -21
  112. package/lib/less-node/environment.js +32 -8
  113. package/lib/less-node/file-manager.js +62 -45
  114. package/lib/less-node/fs.js +11 -8
  115. package/lib/less-node/image-size.js +40 -31
  116. package/lib/less-node/index.js +28 -19
  117. package/lib/less-node/lessc-helper.js +20 -21
  118. package/lib/less-node/plugin-loader.js +35 -27
  119. package/lib/less-node/url-file-manager.js +33 -31
  120. package/package.json +29 -18
  121. package/.eslintignore +0 -6
  122. package/.eslintrc.js +0 -63
  123. package/Gruntfile.js +0 -403
  124. package/bower.json +0 -22
  125. package/lib/less/constants.js.map +0 -1
  126. package/lib/less/contexts.js.map +0 -1
  127. package/lib/less/data/colors.js.map +0 -1
  128. package/lib/less/data/index.js.map +0 -1
  129. package/lib/less/data/unit-conversions.js.map +0 -1
  130. package/lib/less/default-options.js.map +0 -1
  131. package/lib/less/environment/abstract-file-manager.js.map +0 -1
  132. package/lib/less/environment/abstract-plugin-loader.js.map +0 -1
  133. package/lib/less/environment/environment-api.js +0 -3
  134. package/lib/less/environment/environment-api.js.map +0 -1
  135. package/lib/less/environment/environment.js.map +0 -1
  136. package/lib/less/environment/file-manager-api.js +0 -3
  137. package/lib/less/environment/file-manager-api.js.map +0 -1
  138. package/lib/less/functions/boolean.js.map +0 -1
  139. package/lib/less/functions/color-blending.js.map +0 -1
  140. package/lib/less/functions/color.js.map +0 -1
  141. package/lib/less/functions/data-uri.js.map +0 -1
  142. package/lib/less/functions/default.js.map +0 -1
  143. package/lib/less/functions/function-caller.js.map +0 -1
  144. package/lib/less/functions/function-registry.js.map +0 -1
  145. package/lib/less/functions/index.js.map +0 -1
  146. package/lib/less/functions/list.js.map +0 -1
  147. package/lib/less/functions/math-helper.js.map +0 -1
  148. package/lib/less/functions/math.js.map +0 -1
  149. package/lib/less/functions/number.js.map +0 -1
  150. package/lib/less/functions/string.js.map +0 -1
  151. package/lib/less/functions/style.js.map +0 -1
  152. package/lib/less/functions/svg.js.map +0 -1
  153. package/lib/less/functions/types.js.map +0 -1
  154. package/lib/less/import-manager.js.map +0 -1
  155. package/lib/less/index.js.map +0 -1
  156. package/lib/less/less-error.js.map +0 -1
  157. package/lib/less/logger.js.map +0 -1
  158. package/lib/less/parse-tree.js.map +0 -1
  159. package/lib/less/parse.js.map +0 -1
  160. package/lib/less/parser/parser-input.js.map +0 -1
  161. package/lib/less/parser/parser.js.map +0 -1
  162. package/lib/less/plugin-manager.js.map +0 -1
  163. package/lib/less/render.js.map +0 -1
  164. package/lib/less/source-map-builder.js.map +0 -1
  165. package/lib/less/source-map-output.js.map +0 -1
  166. package/lib/less/transform-tree.js.map +0 -1
  167. package/lib/less/tree/anonymous.js.map +0 -1
  168. package/lib/less/tree/assignment.js.map +0 -1
  169. package/lib/less/tree/atrule-syntax.js.map +0 -1
  170. package/lib/less/tree/atrule.js.map +0 -1
  171. package/lib/less/tree/attribute.js.map +0 -1
  172. package/lib/less/tree/call.js.map +0 -1
  173. package/lib/less/tree/color.js.map +0 -1
  174. package/lib/less/tree/combinator.js.map +0 -1
  175. package/lib/less/tree/comment.js.map +0 -1
  176. package/lib/less/tree/condition.js.map +0 -1
  177. package/lib/less/tree/container.js.map +0 -1
  178. package/lib/less/tree/debug-info.js.map +0 -1
  179. package/lib/less/tree/declaration.js.map +0 -1
  180. package/lib/less/tree/detached-ruleset.js.map +0 -1
  181. package/lib/less/tree/dimension.js.map +0 -1
  182. package/lib/less/tree/element.js.map +0 -1
  183. package/lib/less/tree/expression.js.map +0 -1
  184. package/lib/less/tree/extend.js.map +0 -1
  185. package/lib/less/tree/import.js.map +0 -1
  186. package/lib/less/tree/index.js.map +0 -1
  187. package/lib/less/tree/javascript.js.map +0 -1
  188. package/lib/less/tree/js-eval-node.js.map +0 -1
  189. package/lib/less/tree/keyword.js.map +0 -1
  190. package/lib/less/tree/media.js.map +0 -1
  191. package/lib/less/tree/mixin-call.js.map +0 -1
  192. package/lib/less/tree/mixin-definition.js.map +0 -1
  193. package/lib/less/tree/namespace-value.js.map +0 -1
  194. package/lib/less/tree/negative.js.map +0 -1
  195. package/lib/less/tree/nested-at-rule.js.map +0 -1
  196. package/lib/less/tree/node.js.map +0 -1
  197. package/lib/less/tree/operation.js.map +0 -1
  198. package/lib/less/tree/paren.js.map +0 -1
  199. package/lib/less/tree/property.js.map +0 -1
  200. package/lib/less/tree/query-in-parens.js.map +0 -1
  201. package/lib/less/tree/quoted.js.map +0 -1
  202. package/lib/less/tree/ruleset.js.map +0 -1
  203. package/lib/less/tree/selector.js.map +0 -1
  204. package/lib/less/tree/unicode-descriptor.js.map +0 -1
  205. package/lib/less/tree/unit.js.map +0 -1
  206. package/lib/less/tree/url.js.map +0 -1
  207. package/lib/less/tree/value.js.map +0 -1
  208. package/lib/less/tree/variable-call.js.map +0 -1
  209. package/lib/less/tree/variable.js.map +0 -1
  210. package/lib/less/utils.js.map +0 -1
  211. package/lib/less/visitors/extend-visitor.js.map +0 -1
  212. package/lib/less/visitors/import-sequencer.js.map +0 -1
  213. package/lib/less/visitors/import-visitor.js.map +0 -1
  214. package/lib/less/visitors/index.js.map +0 -1
  215. package/lib/less/visitors/join-selector-visitor.js.map +0 -1
  216. package/lib/less/visitors/set-tree-visibility-visitor.js.map +0 -1
  217. package/lib/less/visitors/to-css-visitor.js.map +0 -1
  218. package/lib/less/visitors/visitor.js.map +0 -1
  219. package/lib/less-browser/add-default-options.js.map +0 -1
  220. package/lib/less-browser/bootstrap.js.map +0 -1
  221. package/lib/less-browser/browser.js.map +0 -1
  222. package/lib/less-browser/cache.js.map +0 -1
  223. package/lib/less-browser/error-reporting.js.map +0 -1
  224. package/lib/less-browser/file-manager.js.map +0 -1
  225. package/lib/less-browser/image-size.js.map +0 -1
  226. package/lib/less-browser/index.js.map +0 -1
  227. package/lib/less-browser/log-listener.js.map +0 -1
  228. package/lib/less-browser/plugin-loader.js.map +0 -1
  229. package/lib/less-browser/utils.js.map +0 -1
  230. package/lib/less-node/environment.js.map +0 -1
  231. package/lib/less-node/file-manager.js.map +0 -1
  232. package/lib/less-node/fs.js.map +0 -1
  233. package/lib/less-node/image-size.js.map +0 -1
  234. package/lib/less-node/index.js.map +0 -1
  235. package/lib/less-node/lessc-helper.js.map +0 -1
  236. package/lib/less-node/plugin-loader.js.map +0 -1
  237. package/lib/less-node/url-file-manager.js.map +0 -1
  238. package/scripts/coverage-lines.js +0 -207
  239. package/scripts/coverage-report.js +0 -158
  240. package/scripts/postinstall.js +0 -61
  241. package/test/.eslintrc.json +0 -9
  242. package/test/README.md +0 -3
  243. package/test/browser/common.js +0 -251
  244. package/test/browser/css/global-vars/simple.css +0 -3
  245. package/test/browser/css/modify-vars/simple.css +0 -8
  246. package/test/browser/css/plugin/plugin.css +0 -3
  247. package/test/browser/css/postProcessor/postProcessor.css +0 -4
  248. package/test/browser/css/relative-urls/urls.css +0 -36
  249. package/test/browser/css/rewrite-urls/urls.css +0 -36
  250. package/test/browser/css/rootpath/urls.css +0 -35
  251. package/test/browser/css/rootpath-relative/urls.css +0 -35
  252. package/test/browser/css/rootpath-rewrite-urls/urls.css +0 -35
  253. package/test/browser/css/urls.css +0 -54
  254. package/test/browser/generator/benchmark.config.js +0 -50
  255. package/test/browser/generator/generate.js +0 -78
  256. package/test/browser/generator/runner.config.js +0 -184
  257. package/test/browser/generator/runner.js +0 -2
  258. package/test/browser/generator/template.js +0 -104
  259. package/test/browser/generator/utils.js +0 -14
  260. package/test/browser/less/console-errors/test-error.less +0 -3
  261. package/test/browser/less/console-errors/test-error.txt +0 -2
  262. package/test/browser/less/errors/image-height-error.less +0 -3
  263. package/test/browser/less/errors/image-height-error.txt +0 -4
  264. package/test/browser/less/errors/image-size-error.less +0 -3
  265. package/test/browser/less/errors/image-size-error.txt +0 -4
  266. package/test/browser/less/errors/image-width-error.less +0 -3
  267. package/test/browser/less/errors/image-width-error.txt +0 -4
  268. package/test/browser/less/global-vars/simple.less +0 -3
  269. package/test/browser/less/imports/urls.less +0 -4
  270. package/test/browser/less/imports/urls2.less +0 -4
  271. package/test/browser/less/modify-vars/imports/simple2.less +0 -4
  272. package/test/browser/less/modify-vars/simple.less +0 -8
  273. package/test/browser/less/nested-gradient-with-svg-gradient/mixin-consumer.less +0 -5
  274. package/test/browser/less/nested-gradient-with-svg-gradient/svg-gradient-mixin.less +0 -15
  275. package/test/browser/less/plugin/plugin.js +0 -4
  276. package/test/browser/less/plugin/plugin.less +0 -4
  277. package/test/browser/less/postProcessor/postProcessor.less +0 -4
  278. package/test/browser/less/relative-urls/urls.less +0 -34
  279. package/test/browser/less/rewrite-urls/urls.less +0 -34
  280. package/test/browser/less/rootpath/urls.less +0 -33
  281. package/test/browser/less/rootpath-relative/urls.less +0 -33
  282. package/test/browser/less/rootpath-rewrite-urls/urls.less +0 -33
  283. package/test/browser/less/urls.less +0 -62
  284. package/test/browser/runner-VisitorPlugin-options.js +0 -3
  285. package/test/browser/runner-VisitorPlugin.js +0 -3
  286. package/test/browser/runner-browser-options.js +0 -51
  287. package/test/browser/runner-browser-spec.js +0 -12
  288. package/test/browser/runner-console-errors.js +0 -5
  289. package/test/browser/runner-errors-options.js +0 -6
  290. package/test/browser/runner-errors-spec.js +0 -3
  291. package/test/browser/runner-filemanagerPlugin-options.js +0 -5
  292. package/test/browser/runner-filemanagerPlugin.js +0 -3
  293. package/test/browser/runner-global-vars-options.js +0 -7
  294. package/test/browser/runner-global-vars-spec.js +0 -3
  295. package/test/browser/runner-main-options.js +0 -17
  296. package/test/browser/runner-main-spec.js +0 -7
  297. package/test/browser/runner-modify-vars-options.js +0 -5
  298. package/test/browser/runner-modify-vars-spec.js +0 -33
  299. package/test/browser/runner-no-js-errors-options.js +0 -4
  300. package/test/browser/runner-no-js-errors-spec.js +0 -3
  301. package/test/browser/runner-postProcessorPlugin-options.js +0 -3
  302. package/test/browser/runner-postProcessorPlugin.js +0 -3
  303. package/test/browser/runner-preProcessorPlugin-options.js +0 -3
  304. package/test/browser/runner-preProcessorPlugin.js +0 -3
  305. package/test/browser/runner-production-options.js +0 -3
  306. package/test/browser/runner-production-spec.js +0 -5
  307. package/test/browser/runner-relative-urls-options.js +0 -3
  308. package/test/browser/runner-relative-urls-spec.js +0 -3
  309. package/test/browser/runner-rewrite-urls-options.js +0 -3
  310. package/test/browser/runner-rewrite-urls-spec.js +0 -3
  311. package/test/browser/runner-rootpath-options.js +0 -3
  312. package/test/browser/runner-rootpath-relative-options.js +0 -4
  313. package/test/browser/runner-rootpath-relative-spec.js +0 -3
  314. package/test/browser/runner-rootpath-rewrite-urls-options.js +0 -4
  315. package/test/browser/runner-rootpath-rewrite-urls-spec.js +0 -3
  316. package/test/browser/runner-rootpath-spec.js +0 -3
  317. package/test/browser/runner-strict-units-options.js +0 -5
  318. package/test/browser/runner-strict-units-spec.js +0 -3
  319. package/test/index.js +0 -307
  320. package/test/less-test.js +0 -984
  321. package/test/mocha-playwright/runner.js +0 -210
  322. package/test/modify-vars.js +0 -28
  323. package/test/plugins/filemanager/index.js +0 -19
  324. package/test/plugins/postprocess/index.js +0 -14
  325. package/test/plugins/preprocess/index.js +0 -19
  326. package/test/plugins/visitor/index.js +0 -24
  327. package/test/sourcemaps/basic.json +0 -1
  328. package/test/sourcemaps/comprehensive.json +0 -1
  329. package/test/sourcemaps/custom-props.json +0 -1
  330. package/test/sourcemaps/index.html +0 -17
  331. package/test/sourcemaps/sourcemaps-basepath.json +0 -1
  332. package/test/sourcemaps/sourcemaps-include-source.json +0 -1
  333. package/test/sourcemaps/sourcemaps-rootpath.json +0 -1
  334. package/test/sourcemaps/sourcemaps-url.json +0 -1
  335. package/test/sourcemaps-disable-annotation/basic.json +0 -1
  336. package/test/sourcemaps-variable-selector/basic.json +0 -1
  337. package/test/test-es6.ts +0 -17
  338. package/test.less +0 -1
  339. package/tsconfig.build.json +0 -7
  340. package/tsconfig.json +0 -21
@@ -1,210 +0,0 @@
1
- 'use strict';
2
-
3
- const path = require('path');
4
- const util = require('util');
5
- const { chromium } = require('playwright');
6
- const TIMEOUT_MILLISECONDS = 60000;
7
-
8
- function initMocha(reporter) {
9
-
10
- console.log = (console => {
11
- const log = console.log.bind(console);
12
- return (...args) => args.length ? log(...args) : log('');
13
- })(console);
14
-
15
- function shimMochaInstance(m) {
16
-
17
- const originalReporter = m.reporter.bind(m);
18
- let reporterIsChanged = false;
19
-
20
- m.reporter = (...args) => {
21
- reporterIsChanged = true;
22
- originalReporter(...args);
23
- };
24
-
25
- const run = m.run.bind(m);
26
-
27
- m.run = () => {
28
- const all = [], pending = [], failures = [], passes = [];
29
-
30
- function error(err) {
31
- if (!err) return {};
32
-
33
- let res = {};
34
- Object.getOwnPropertyNames(err).forEach(key => res[key] = err[key]);
35
- return res;
36
- }
37
-
38
- function clean(test) {
39
- return {
40
- title: test.title,
41
- fullTitle: test.fullTitle(),
42
- duration: test.duration,
43
- err: error(test.err)
44
- };
45
- }
46
-
47
- function result(stats) {
48
- return {
49
- result: {
50
- stats: {
51
- tests: all.length,
52
- passes: passes.length,
53
- pending: pending.length,
54
- failures: failures.length,
55
- start: stats.start.toISOString(),
56
- end: stats.end.toISOString(),
57
- duration: stats.duration
58
- },
59
- tests: all.map(clean),
60
- pending: pending.map(clean),
61
- failures: failures.map(clean),
62
- passes: passes.map(clean)
63
- },
64
- coverage: window.__coverage__
65
- };
66
- }
67
-
68
- function setResult() {
69
- !window.__mochaResult__ && (window.__mochaResult__ = result(this.stats));
70
- }
71
-
72
- !reporterIsChanged && m.setup({
73
- reporter: Mocha.reporters[reporter] || Mocha.reporters.spec
74
- });
75
-
76
- const runner = run(() => setTimeout(() => setResult.call(runner), 0))
77
- .on('pass', test => { passes.push(test); all.push(test); })
78
- .on('fail', test => { failures.push(test); all.push(test); })
79
- .on('pending', test => { pending.push(test); all.push(test); })
80
- .on('end', setResult);
81
-
82
- return runner;
83
- };
84
- }
85
-
86
- function shimMochaProcess(M) {
87
- // Mocha needs a process.stdout.write in order to change the cursor position.
88
- !M.process && (M.process = {});
89
- !M.process.stdout && (M.process.stdout = {});
90
-
91
- M.process.stdout.write = data => console.log('stdout:', data);
92
- M.reporters.Base.useColors = true;
93
- M.reporters.none = function None(runner) {
94
- M.reporters.Base.call(this, runner);
95
- };
96
- }
97
-
98
- Object.defineProperty(window, 'mocha', {
99
- get: function() { return undefined },
100
- set: function(m) {
101
- shimMochaInstance(m);
102
- delete window.mocha;
103
- window.mocha = m
104
- },
105
- configurable: true
106
- })
107
-
108
- Object.defineProperty(window, 'Mocha', {
109
- get: function() { return undefined },
110
- set: function(m) {
111
- shimMochaProcess(m);
112
- delete window.Mocha;
113
- window.Mocha = m;
114
- },
115
- configurable: true
116
- });
117
- }
118
-
119
- function configureViewport(width, height, page) {
120
- if (!width && !height) return page;
121
-
122
- let viewport = page.viewport();
123
- width && (viewport.width = width);
124
- height && (viewport.height = height);
125
-
126
- return page.setViewport(viewport).then(() => page);
127
- }
128
-
129
- function handleConsole(msg) {
130
- const args = msg.args() || [];
131
-
132
- Promise.all(args.map(a => a.jsonValue().catch(error => {
133
- console.warn('Failed to retrieve JSON value from argument:', error);
134
- return '';
135
- })))
136
- .then(args => {
137
- // process stdout stub
138
- let isStdout = args[0] === 'stdout:';
139
- isStdout && (args = args.slice(1));
140
-
141
- let msg = util.format(...args);
142
- !isStdout && msg && (msg += '\n');
143
- process.stdout.write(msg);
144
- });
145
- }
146
-
147
- function prepareUrl(filePath) {
148
- if (/^[a-zA-Z]+:\/\//.test(filePath)) {
149
- // path is URL
150
- return filePath;
151
- }
152
-
153
- // local path
154
- let resolvedPath = path.resolve(filePath);
155
- return `file://${resolvedPath}`;
156
- }
157
-
158
- exports.runner = function ({ file, reporter, timeout, width, height, args, executablePath, visible, polling }) {
159
- return new Promise(resolve => {
160
-
161
- // validate options
162
- if (!file) {
163
- throw new Error('Test page path is required.');
164
- }
165
-
166
- args = [].concat(args || []).map(arg => '--' + arg);
167
- !timeout && (timeout = TIMEOUT_MILLISECONDS);
168
- /^\d+$/.test(polling) && (polling = parseInt(polling));
169
-
170
- const url = prepareUrl(file);
171
-
172
- const options = {
173
- ignoreHTTPSErrors: true,
174
- headless: !visible,
175
- executablePath,
176
- args
177
- };
178
-
179
- const result = chromium.launch(options)
180
- .then(browser => browser.newContext()
181
- .then(context => context.newPage()
182
- .then(page => {
183
- if (width || height) {
184
- return page.setViewportSize({ width: width || 800, height: height || 600 }).then(() => page);
185
- }
186
- return page;
187
- })
188
- .then(page => {
189
- page.on('console', handleConsole);
190
- page.on('dialog', dialog => dialog.dismiss());
191
- page.on('pageerror', err => console.error(err));
192
-
193
- return page.addInitScript(initMocha, reporter)
194
- .then(() => page.goto(url))
195
- .then(() => page.waitForFunction(() => window.__mochaResult__, { timeout, polling }))
196
- .then(() => page.evaluate(() => window.__mochaResult__))
197
- .then(result => {
198
- if (!result) {
199
- throw new Error('Mocha results not found after waiting. The tests may not have run correctly.');
200
- }
201
- // Close browser before resolving result
202
- return browser.close().then(() => result);
203
- });
204
- })
205
- )
206
- );
207
-
208
- resolve(result);
209
- });
210
- };
@@ -1,28 +0,0 @@
1
- var less;
2
-
3
- // Dist fallback for NPM-installed Less (for plugins that do testing)
4
- try {
5
- less = require('../tmp/less.cjs.js');
6
- }
7
- catch (e) {
8
- less = require('../dist/less.cjs.js');
9
- }
10
-
11
- var fs = require('fs');
12
-
13
- var input = fs.readFileSync('./test/less/modifyVars/extended.less', 'utf8');
14
- var expectedCss = fs.readFileSync('./test/css/modifyVars/extended.css', 'utf8');
15
- var options = {
16
- modifyVars: JSON.parse(fs.readFileSync('./test/less/modifyVars/extended.json', 'utf8'))
17
- };
18
-
19
- less.render(input, options, function (err, result) {
20
- if (err) {
21
- console.log(err);
22
- }
23
- if (result.css === expectedCss) {
24
- console.log('PASS');
25
- } else {
26
- console.log('FAIL');
27
- }
28
- });
@@ -1,19 +0,0 @@
1
- (function(exports) {
2
- var plugin = function(less) {
3
- var FileManager = less.FileManager, TestFileManager = new FileManager();
4
- function TestFileManager() { }
5
- TestFileManager.loadFile = function (filename, currentDirectory, options, environment, callback) {
6
- if (filename.match(/.*\.test$/)) {
7
- return less.environment.fileManagers[0].loadFile('colors.test', currentDirectory, options, environment, callback);
8
- }
9
- return less.environment.fileManagers[0].loadFile(filename, currentDirectory, options, environment, callback);
10
- };
11
-
12
- return TestFileManager;
13
- };
14
-
15
- exports.install = function(less, pluginManager) {
16
- less.environment.addFileManager(new plugin(less));
17
- };
18
-
19
- })(typeof exports === 'undefined' ? this['AddFilePlugin'] = {} : exports);
@@ -1,14 +0,0 @@
1
- (function(exports) {
2
- var postProcessor = function() {};
3
-
4
- postProcessor.prototype = {
5
- process: function (css) {
6
- return 'hr {height:50px;}\n' + css;
7
- }
8
- };
9
-
10
- exports.install = function(less, pluginManager) {
11
- pluginManager.addPostProcessor( new postProcessor());
12
- };
13
-
14
- })(typeof exports === 'undefined' ? this['postProcessorPlugin'] = {} : exports);
@@ -1,19 +0,0 @@
1
- (function(exports) {
2
- var preProcessor = function() {};
3
-
4
- preProcessor.prototype = {
5
- process : function (src, extra) {
6
- var injected = '@color: red;\n';
7
- var ignored = extra.imports.contentsIgnoredChars;
8
- var fileInfo = extra.fileInfo;
9
- ignored[fileInfo.filename] = ignored[fileInfo.filename] || 0;
10
- ignored[fileInfo.filename] += injected.length;
11
- return injected + src;
12
- }
13
- };
14
-
15
- exports.install = function(less, pluginManager) {
16
- pluginManager.addPreProcessor( new preProcessor() );
17
- };
18
-
19
- })(typeof exports === 'undefined' ? this['preProcessorPlugin'] = {} : exports);
@@ -1,24 +0,0 @@
1
- (function(exports) {
2
- var RemoveProperty = function(less) {
3
- this._visitor = new less.visitors.Visitor(this);
4
- };
5
-
6
- RemoveProperty.prototype = {
7
- isReplacing: true,
8
- run: function (root) {
9
- return this._visitor.visit(root);
10
- },
11
- visitDeclaration: function (ruleNode, visitArgs) {
12
- if (ruleNode.name != '-some-aribitrary-property') {
13
- return ruleNode;
14
- } else {
15
- return [];
16
- }
17
- }
18
- };
19
-
20
- exports.install = function(less, pluginManager) {
21
- pluginManager.addVisitor( new RemoveProperty(less));
22
- };
23
-
24
- })(typeof exports === 'undefined' ? this['VisitorPlugin'] = {} : exports);
@@ -1 +0,0 @@
1
- {"version":3,"sources":["testweb/sourcemaps/basic.less","testweb/sourcemaps/imported.css"],"names":[],"mappings":"AAMA;EACE,YAAA;EAJA,UAAA;EAWA,iBAAA;EALA,WAAA;EACA,iBAAA;;AAJF,EASE;AATF,EASM;EACF,gBAAA;;AACA,EAFF,GAEI,KAFJ;AAEE,EAFF,GAEI,KAFA;AAEF,EAFE,GAEA,KAFJ;AAEE,EAFE,GAEA,KAFA;EAGA,UAAA;;AALN;AAAI;AAUJ;EATE,iBAAA;;AADF,EAEE;AAFE,EAEF;AAFF,EAEM;AAFF,EAEE;AAQN,OARE;AAQF,OARM;EACF,gBAAA;;AACA,EAFF,GAEI,KAFJ;AAEE,EAFF,GAEI,KAFJ;AAEE,EAFF,GAEI,KAFA;AAEF,EAFF,GAEI,KAFA;AAEF,EAFF,GAEI,KAFJ;AAEE,EAFF,GAEI,KAFJ;AAEE,EAFF,GAEI,KAFA;AAEF,EAFF,GAEI,KAFA;AAEF,EAFE,GAEA,KAFJ;AAEE,EAFE,GAEA,KAFJ;AAEE,EAFE,GAEA,KAFA;AAEF,EAFE,GAEA,KAFA;AAEF,EAFE,GAEA,KAFJ;AAEE,EAFE,GAEA,KAFJ;AAEE,EAFE,GAEA,KAFA;AAEF,EAFE,GAEA,KAFA;AAQN,OARE,GAQF,UARE;AAQF,OARE,GAEI,KAFJ;AAQF,OARE,GAQF,UARM;AAQN,OARE,GAEI,KAFA;AAEF,EAFF,GAQF,UARE;AAEE,EAFF,GAQF,UARM;AAQN,OARM,GAQN,UARE;AAQF,OARM,GAEA,KAFJ;AAQF,OARM,GAQN,UARM;AAQN,OARM,GAEA,KAFA;AAEF,EAFE,GAQN,UARE;AAEE,EAFE,GAQN,UARM;EAGA,UAAA;;AAKN;EACE,WAAA;;ACxBF;AACA;AACA;AACA;AACA;AACA;AACA","file":"sourcemaps/basic.css"}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["comprehensive.less"],"names":[],"mappings":"AAoBA;EACE,aAAA;EACA,mBAAA;;AAFF,UAIE;EACE,YAAA;EACA,eAAA;;AANJ,UAIE,QAIE;EACE,iBAAA;EACA,mBAAA;;AAVN,UAcE;EACE,mBAAA;EACA,aAAA;;AAhBJ,UAcE,SAIE;EACE,SAAA;EACA,gBAAA;;AAMN;EACE,OAAO,qBAAP;EACA,QAAQ,iBAAR;EACA,YAAA;;AAIF;EACE,cAAA;EACA,mBAAA;EACA,yCAAA;;AAIF;EAlDE,mBAAA;EACA,2BAAA;EACA,wBAAA;EAIA,yCAAA;EA+CA,aAAA;EACA,iBAAA;;AAIF,QAA0B;EACxB;IACE,aAAA;;EADF,UAGE;IACE,eAAA;;;AAKN;EACE;IACE,aAAA;IACA,uBAAuB,cAAvB;IACA,SAAA;;;AAKJ;AAMA;EALE,kBAAA;EACA,YAAA;EACA,eAAA;;AAGF;EAEE,mBAAA;EACA,YAAA;;AAIF,WACE;EACE,gBAAA;;AAFJ,WACE,GAGE;EACE,qBAAA;;AALN,WACE,GAGE,GAGE;EACE,qBAAA;;AAEA,WATN,GAGE,GAGE,EAGG;EACC,cAAA;;AAGF,WAbN,GAGE,GAGE,EAOG;EACC,cAAA;;AAYT;EACC,cAAA;;AAIF,OACE,QACE,QACE;EACE,cAAA","file":"{path}comprehensive.css"}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["testweb/sourcemaps/custom-props.less"],"names":[],"mappings":"AAEA;EACC,uBAHO,UAGP;EACA,OAAO,eAAP;EACA,sBALO,UAKP","file":"sourcemaps/custom-props.css"}
@@ -1,17 +0,0 @@
1
- <html>
2
- <link type="text/css" rel="stylesheet" media="all" href="import.css">
3
- <link type="text/css" rel="stylesheet" media="all" href="basic.css">
4
- <head>
5
- </head>
6
- <body>
7
- <div id="import-test">id import-test</div>
8
- <div id="import">id import-test</div>
9
- <div class="imported inline">class imported inline</div>
10
- <div id="mixin">class mixin</div>
11
- <div class="a">class a</div>
12
- <div class="b">class b</div>
13
- <div class="b">class b<div class="c">class c</div></div>
14
- <div class="a">class a<div class="d">class d</div></div>
15
- <div class="extend">class extend<div class="c">class c</div></div>
16
- </body>
17
- </html>
@@ -1 +0,0 @@
1
- {"version":3,"sources":["testweb/sourcemaps-basepath.less"],"names":[],"mappings":"AAEA;EACE,eAAA;EACA,gBAAA;;AAGF;EACE,iBAAA","file":"tests-config/sourcemaps-basepath/sourcemaps-basepath.css"}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["testweb/sourcemaps-include-source.less"],"names":[],"mappings":"AAGA;EACE,mBAAA;EACA,YAAA;EACA,kBAAA;;AAGF;EACE,mBAAA","file":"tests-config/sourcemaps-include-source/sourcemaps-include-source.css","sourcesContent":["@primary: #007bff;\n@secondary: #6c757d;\n\n.button {\n background: @primary;\n color: white;\n padding: 10px 20px;\n}\n\n.secondary {\n background: @secondary;\n}\n\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["https://example.com/less/sourcemaps-rootpath.less"],"names":[],"mappings":"AAEA;EACE,aAAA;EACA,YAAA;;AAGF;EACE,WAAA","file":"tests-config/sourcemaps-rootpath/sourcemaps-rootpath.css"}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["testweb/sourcemaps-url.less"],"names":[],"mappings":"AAEA;EACE,UAAA;EACA,gBAAA;;AAGF;EACE,YAAA","file":"tests-config/sourcemaps-url/sourcemaps-url.css"}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["testweb/sourcemaps-disable-annotation/basic.less"],"names":[],"mappings":"AAAA;;EAEE,YAAA","file":"sourcemaps-disable-annotation/basic.css"}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["testweb/sourcemaps-variable-selector/basic.less"],"names":[],"mappings":"AAEC;EACG,eAAA","file":"sourcemaps-variable-selector/basic.css"}
package/test/test-es6.ts DELETED
@@ -1,17 +0,0 @@
1
- // https://github.com/less/less.js/issues/3533
2
- console.log('Testing ES6 imports...')
3
-
4
- import less from '..';
5
- const lessRender = less.render;
6
-
7
- // then I call lessRender on something
8
- lessRender(`
9
- body {
10
- a: 1;
11
- b: 2;
12
- c: 30;
13
- d: 4;
14
- }`, {sourceMap: {}}, function(error: any, output: any) {
15
- if (error)
16
- console.error(error)
17
- })
package/test.less DELETED
@@ -1 +0,0 @@
1
- .test { color: red; }
@@ -1,7 +0,0 @@
1
- {
2
- "extends": "./tsconfig",
3
- "compilerOptions": {
4
- "rootDir": "./src",
5
- },
6
- "include": ["src/**/*"]
7
- }
package/tsconfig.json DELETED
@@ -1,21 +0,0 @@
1
- {
2
- "compilerOptions": {
3
- "outDir": "./lib",
4
- "moduleResolution": "node",
5
- "rootDir": ".",
6
- "allowJs": true,
7
- "sourceMap": true,
8
- "inlineSources": true,
9
- "esModuleInterop": true,
10
- "importHelpers": true,
11
- "noImplicitAny": true,
12
- "target": "ES5"
13
- },
14
- "ts-node": {
15
- "compilerOptions": {
16
- "rootDir": "."
17
- }
18
- },
19
- "include": ["**/*"],
20
- "exclude": ["node_modules", "lib/**/*"]
21
- }