less 4.2.0 → 4.2.2

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 (146) hide show
  1. package/Gruntfile.js +3 -13
  2. package/dist/less.js +355 -254
  3. package/dist/less.min.js +3 -3
  4. package/dist/less.min.js.map +1 -1
  5. package/lib/less/contexts.js +1 -1
  6. package/lib/less/contexts.js.map +1 -1
  7. package/lib/less/environment/abstract-file-manager.js +3 -3
  8. package/lib/less/environment/abstract-file-manager.js.map +1 -1
  9. package/lib/less/environment/abstract-plugin-loader.js +2 -2
  10. package/lib/less/environment/abstract-plugin-loader.js.map +1 -1
  11. package/lib/less/environment/environment.js +1 -1
  12. package/lib/less/environment/environment.js.map +1 -1
  13. package/lib/less/functions/color.js +1 -1
  14. package/lib/less/functions/color.js.map +1 -1
  15. package/lib/less/functions/data-uri.js +3 -3
  16. package/lib/less/functions/data-uri.js.map +1 -1
  17. package/lib/less/functions/function-caller.js +1 -1
  18. package/lib/less/functions/function-caller.js.map +1 -1
  19. package/lib/less/functions/index.js +4 -2
  20. package/lib/less/functions/index.js.map +1 -1
  21. package/lib/less/functions/math.js +1 -1
  22. package/lib/less/functions/math.js.map +1 -1
  23. package/lib/less/functions/number.js +6 -3
  24. package/lib/less/functions/number.js.map +1 -1
  25. package/lib/less/functions/style.js +28 -0
  26. package/lib/less/functions/style.js.map +1 -0
  27. package/lib/less/functions/svg.js +5 -5
  28. package/lib/less/functions/svg.js.map +1 -1
  29. package/lib/less/functions/types.js +1 -1
  30. package/lib/less/functions/types.js.map +1 -1
  31. package/lib/less/import-manager.js +2 -2
  32. package/lib/less/import-manager.js.map +1 -1
  33. package/lib/less/index.js +8 -8
  34. package/lib/less/index.js.map +1 -1
  35. package/lib/less/less-error.js +10 -10
  36. package/lib/less/less-error.js.map +1 -1
  37. package/lib/less/parse-tree.js +1 -1
  38. package/lib/less/parse-tree.js.map +1 -1
  39. package/lib/less/parser/chunker.js +1 -1
  40. package/lib/less/parser/chunker.js.map +1 -1
  41. package/lib/less/parser/parser-input.js +1 -1
  42. package/lib/less/parser/parser-input.js.map +1 -1
  43. package/lib/less/parser/parser.js +84 -25
  44. package/lib/less/parser/parser.js.map +1 -1
  45. package/lib/less/source-map-builder.js +2 -2
  46. package/lib/less/source-map-builder.js.map +1 -1
  47. package/lib/less/transform-tree.js +1 -1
  48. package/lib/less/transform-tree.js.map +1 -1
  49. package/lib/less/tree/assignment.js +1 -1
  50. package/lib/less/tree/assignment.js.map +1 -1
  51. package/lib/less/tree/atrule.js +4 -4
  52. package/lib/less/tree/atrule.js.map +1 -1
  53. package/lib/less/tree/attribute.js +1 -1
  54. package/lib/less/tree/attribute.js.map +1 -1
  55. package/lib/less/tree/call.js +2 -2
  56. package/lib/less/tree/call.js.map +1 -1
  57. package/lib/less/tree/color.js +6 -6
  58. package/lib/less/tree/color.js.map +1 -1
  59. package/lib/less/tree/comment.js +1 -1
  60. package/lib/less/tree/comment.js.map +1 -1
  61. package/lib/less/tree/debug-info.js +5 -5
  62. package/lib/less/tree/debug-info.js.map +1 -1
  63. package/lib/less/tree/declaration.js +1 -1
  64. package/lib/less/tree/declaration.js.map +1 -1
  65. package/lib/less/tree/dimension.js +2 -2
  66. package/lib/less/tree/dimension.js.map +1 -1
  67. package/lib/less/tree/expression.js +5 -1
  68. package/lib/less/tree/expression.js.map +1 -1
  69. package/lib/less/tree/javascript.js +1 -1
  70. package/lib/less/tree/javascript.js.map +1 -1
  71. package/lib/less/tree/js-eval-node.js +5 -5
  72. package/lib/less/tree/js-eval-node.js.map +1 -1
  73. package/lib/less/tree/mixin-call.js +6 -6
  74. package/lib/less/tree/mixin-call.js.map +1 -1
  75. package/lib/less/tree/mixin-definition.js +2 -2
  76. package/lib/less/tree/mixin-definition.js.map +1 -1
  77. package/lib/less/tree/namespace-value.js +5 -5
  78. package/lib/less/tree/namespace-value.js.map +1 -1
  79. package/lib/less/tree/nested-at-rule.js +4 -0
  80. package/lib/less/tree/nested-at-rule.js.map +1 -1
  81. package/lib/less/tree/property.js +2 -2
  82. package/lib/less/tree/property.js.map +1 -1
  83. package/lib/less/tree/query-in-parens.js +32 -1
  84. package/lib/less/tree/query-in-parens.js.map +1 -1
  85. package/lib/less/tree/quoted.js +2 -2
  86. package/lib/less/tree/quoted.js.map +1 -1
  87. package/lib/less/tree/ruleset.js +7 -7
  88. package/lib/less/tree/ruleset.js.map +1 -1
  89. package/lib/less/tree/unit.js +1 -1
  90. package/lib/less/tree/unit.js.map +1 -1
  91. package/lib/less/tree/url.js +2 -2
  92. package/lib/less/tree/url.js.map +1 -1
  93. package/lib/less/tree/variable-call.js +1 -1
  94. package/lib/less/tree/variable-call.js.map +1 -1
  95. package/lib/less/tree/variable.js +3 -3
  96. package/lib/less/tree/variable.js.map +1 -1
  97. package/lib/less/utils.js +2 -2
  98. package/lib/less/utils.js.map +1 -1
  99. package/lib/less/visitors/extend-visitor.js +4 -4
  100. package/lib/less/visitors/extend-visitor.js.map +1 -1
  101. package/lib/less/visitors/to-css-visitor.js +3 -3
  102. package/lib/less/visitors/to-css-visitor.js.map +1 -1
  103. package/lib/less/visitors/visitor.js +2 -2
  104. package/lib/less/visitors/visitor.js.map +1 -1
  105. package/lib/less-browser/add-default-options.js +1 -1
  106. package/lib/less-browser/add-default-options.js.map +1 -1
  107. package/lib/less-browser/bootstrap.js +3 -3
  108. package/lib/less-browser/bootstrap.js.map +1 -1
  109. package/lib/less-browser/browser.js +1 -1
  110. package/lib/less-browser/browser.js.map +1 -1
  111. package/lib/less-browser/cache.js +6 -6
  112. package/lib/less-browser/cache.js.map +1 -1
  113. package/lib/less-browser/error-reporting.js +9 -9
  114. package/lib/less-browser/error-reporting.js.map +1 -1
  115. package/lib/less-browser/file-manager.js +3 -3
  116. package/lib/less-browser/file-manager.js.map +1 -1
  117. package/lib/less-browser/index.js +11 -11
  118. package/lib/less-browser/index.js.map +1 -1
  119. package/lib/less-node/file-manager.js +1 -1
  120. package/lib/less-node/file-manager.js.map +1 -1
  121. package/lib/less-node/image-size.js +1 -1
  122. package/lib/less-node/image-size.js.map +1 -1
  123. package/lib/less-node/index.js +1 -1
  124. package/lib/less-node/index.js.map +1 -1
  125. package/lib/less-node/lessc-helper.js +1 -1
  126. package/lib/less-node/lessc-helper.js.map +1 -1
  127. package/lib/less-node/url-file-manager.js +4 -4
  128. package/lib/less-node/url-file-manager.js.map +1 -1
  129. package/package.json +140 -140
  130. package/test/browser/css/plugin/plugin.css +1 -1
  131. package/test/browser/css/relative-urls/urls.css +8 -8
  132. package/test/browser/css/rewrite-urls/urls.css +8 -8
  133. package/test/browser/css/urls.css +12 -12
  134. package/test/browser/generator/generate.js +3 -3
  135. package/test/browser/generator/runner.config.js +18 -16
  136. package/test/browser/generator/template.js +17 -7
  137. package/test/browser/generator/utils.js +14 -0
  138. package/test/browser/less/relative-urls/urls.less +1 -1
  139. package/test/browser/less/rewrite-urls/urls.less +1 -1
  140. package/test/browser/less/rootpath/urls.less +1 -1
  141. package/test/browser/less/rootpath-relative/urls.less +1 -1
  142. package/test/browser/less/rootpath-rewrite-urls/urls.less +1 -1
  143. package/test/browser/less/urls.less +2 -2
  144. package/test/mocha-playwright/runner.js +210 -0
  145. package/tsconfig.json +20 -19
  146. package/LICENSE +0 -177
package/package.json CHANGED
@@ -1,140 +1,140 @@
1
- {
2
- "name": "less",
3
- "version": "4.2.0",
4
- "description": "Leaner CSS",
5
- "homepage": "http://lesscss.org",
6
- "author": {
7
- "name": "Alexis Sellier",
8
- "email": "self@cloudhead.net"
9
- },
10
- "contributors": [
11
- "The Core Less Team"
12
- ],
13
- "bugs": {
14
- "url": "https://github.com/less/less.js/issues"
15
- },
16
- "repository": {
17
- "type": "git",
18
- "url": "https://github.com/less/less.js.git"
19
- },
20
- "master": {
21
- "url": "https://github.com/less/less.js/blob/master/",
22
- "raw": "https://raw.githubusercontent.com/less/less.js/master/"
23
- },
24
- "license": "Apache-2.0",
25
- "bin": {
26
- "lessc": "./bin/lessc"
27
- },
28
- "main": "index",
29
- "module": "./lib/less-node/index",
30
- "directories": {
31
- "test": "./test"
32
- },
33
- "browser": "./dist/less.js",
34
- "engines": {
35
- "node": ">=6"
36
- },
37
- "scripts": {
38
- "test": "grunt test",
39
- "grunt": "grunt",
40
- "lint": "eslint '**/*.{ts,js}'",
41
- "lint:fix": "eslint '**/*.{ts,js}' --fix",
42
- "build": "npm-run-all clean compile",
43
- "clean": "shx rm -rf ./lib tsconfig.tsbuildinfo",
44
- "compile": "tsc -p tsconfig.build.json",
45
- "copy:root": "shx cp -rf ./dist ../../",
46
- "dev": "tsc -p tsconfig.build.json -w",
47
- "prepublishOnly": "grunt dist"
48
- },
49
- "optionalDependencies": {
50
- "errno": "^0.1.1",
51
- "graceful-fs": "^4.1.2",
52
- "image-size": "~0.5.0",
53
- "make-dir": "^2.1.0",
54
- "mime": "^1.4.1",
55
- "needle": "^3.1.0",
56
- "source-map": "~0.6.0"
57
- },
58
- "devDependencies": {
59
- "@less/test-data": "^4.2.0",
60
- "@less/test-import-module": "^4.0.0",
61
- "@rollup/plugin-commonjs": "^17.0.0",
62
- "@rollup/plugin-json": "^4.1.0",
63
- "@rollup/plugin-node-resolve": "^11.0.0",
64
- "@typescript-eslint/eslint-plugin": "^4.28.0",
65
- "@typescript-eslint/parser": "^4.28.0",
66
- "benny": "^3.6.12",
67
- "bootstrap-less-port": "0.3.0",
68
- "chai": "^4.2.0",
69
- "cross-env": "^7.0.3",
70
- "diff": "^3.2.0",
71
- "eslint": "^7.29.0",
72
- "fs-extra": "^8.1.0",
73
- "git-rev": "^0.2.1",
74
- "globby": "^10.0.1",
75
- "grunt": "^1.0.4",
76
- "grunt-cli": "^1.3.2",
77
- "grunt-contrib-clean": "^1.0.0",
78
- "grunt-contrib-connect": "^1.0.2",
79
- "grunt-eslint": "^23.0.0",
80
- "grunt-saucelabs": "^9.0.1",
81
- "grunt-shell": "^1.3.0",
82
- "html-template-tag": "^3.2.0",
83
- "jit-grunt": "^0.10.0",
84
- "less-plugin-autoprefix": "^1.5.1",
85
- "less-plugin-clean-css": "^1.5.1",
86
- "minimist": "^1.2.0",
87
- "mocha": "^6.2.1",
88
- "mocha-headless-chrome": "^4.0.0",
89
- "mocha-teamcity-reporter": "^3.0.0",
90
- "nock": "^11.8.2",
91
- "npm-run-all": "^4.1.5",
92
- "performance-now": "^0.2.0",
93
- "phin": "^2.2.3",
94
- "promise": "^7.1.1",
95
- "read-glob": "^3.0.0",
96
- "resolve": "^1.17.0",
97
- "rollup": "^2.52.2",
98
- "rollup-plugin-terser": "^5.1.1",
99
- "rollup-plugin-typescript2": "^0.29.0",
100
- "semver": "^6.3.0",
101
- "shx": "^0.3.2",
102
- "time-grunt": "^1.3.0",
103
- "ts-node": "^9.1.1",
104
- "typescript": "^4.3.4",
105
- "uikit": "2.27.4"
106
- },
107
- "keywords": [
108
- "compile less",
109
- "css nesting",
110
- "css variable",
111
- "css",
112
- "gradients css",
113
- "gradients css3",
114
- "less compiler",
115
- "less css",
116
- "less mixins",
117
- "less",
118
- "less.js",
119
- "lesscss",
120
- "mixins",
121
- "nested css",
122
- "parser",
123
- "preprocessor",
124
- "bootstrap css",
125
- "bootstrap less",
126
- "style",
127
- "styles",
128
- "stylesheet",
129
- "variables in css",
130
- "css less"
131
- ],
132
- "rawcurrent": "https://raw.github.com/less/less.js/v",
133
- "sourcearchive": "https://github.com/less/less.js/archive/v",
134
- "dependencies": {
135
- "copy-anything": "^2.0.1",
136
- "parse-node-version": "^1.0.1",
137
- "tslib": "^2.3.0"
138
- },
139
- "gitHead": "1df9072ee9ebdadc791bf35dfb1dbc3ef9f1948f"
140
- }
1
+ {
2
+ "name": "less",
3
+ "version": "4.2.2",
4
+ "description": "Leaner CSS",
5
+ "homepage": "http://lesscss.org",
6
+ "author": {
7
+ "name": "Alexis Sellier",
8
+ "email": "self@cloudhead.net"
9
+ },
10
+ "contributors": [
11
+ "The Core Less Team"
12
+ ],
13
+ "bugs": {
14
+ "url": "https://github.com/less/less.js/issues"
15
+ },
16
+ "repository": {
17
+ "type": "git",
18
+ "url": "https://github.com/less/less.js.git"
19
+ },
20
+ "master": {
21
+ "url": "https://github.com/less/less.js/blob/master/",
22
+ "raw": "https://raw.githubusercontent.com/less/less.js/master/"
23
+ },
24
+ "license": "Apache-2.0",
25
+ "bin": {
26
+ "lessc": "./bin/lessc"
27
+ },
28
+ "main": "index",
29
+ "module": "./lib/less-node/index",
30
+ "directories": {
31
+ "test": "./test"
32
+ },
33
+ "browser": "./dist/less.js",
34
+ "engines": {
35
+ "node": ">=6"
36
+ },
37
+ "scripts": {
38
+ "test": "grunt test",
39
+ "grunt": "grunt",
40
+ "lint": "eslint '**/*.{ts,js}'",
41
+ "lint:fix": "eslint '**/*.{ts,js}' --fix",
42
+ "build": "npm-run-all clean compile",
43
+ "clean": "shx rm -rf ./lib tsconfig.tsbuildinfo",
44
+ "compile": "tsc -p tsconfig.build.json",
45
+ "copy:root": "shx cp -rf ./dist ../../",
46
+ "dev": "tsc -p tsconfig.build.json -w",
47
+ "prepublishOnly": "grunt dist"
48
+ },
49
+ "optionalDependencies": {
50
+ "errno": "^0.1.1",
51
+ "graceful-fs": "^4.1.2",
52
+ "image-size": "~0.5.0",
53
+ "make-dir": "^2.1.0",
54
+ "mime": "^1.4.1",
55
+ "needle": "^3.1.0",
56
+ "source-map": "~0.6.0"
57
+ },
58
+ "devDependencies": {
59
+ "@less/test-data": "^4.2.2",
60
+ "@less/test-import-module": "^4.0.0",
61
+ "@rollup/plugin-commonjs": "^17.0.0",
62
+ "@rollup/plugin-json": "^4.1.0",
63
+ "@rollup/plugin-node-resolve": "^11.0.0",
64
+ "@typescript-eslint/eslint-plugin": "^4.28.0",
65
+ "@typescript-eslint/parser": "^4.28.0",
66
+ "benny": "^3.6.12",
67
+ "bootstrap-less-port": "0.3.0",
68
+ "chai": "^4.2.0",
69
+ "cross-env": "^7.0.3",
70
+ "diff": "^3.2.0",
71
+ "eslint": "^7.29.0",
72
+ "fs-extra": "^8.1.0",
73
+ "git-rev": "^0.2.1",
74
+ "globby": "^10.0.1",
75
+ "grunt": "^1.0.4",
76
+ "grunt-cli": "^1.3.2",
77
+ "grunt-contrib-clean": "^1.0.0",
78
+ "grunt-contrib-connect": "^1.0.2",
79
+ "grunt-eslint": "^23.0.0",
80
+ "grunt-saucelabs": "^9.0.1",
81
+ "grunt-shell": "^1.3.0",
82
+ "html-template-tag": "^3.2.0",
83
+ "jit-grunt": "^0.10.0",
84
+ "less-plugin-autoprefix": "^1.5.1",
85
+ "less-plugin-clean-css": "^1.6.0",
86
+ "minimist": "^1.2.0",
87
+ "mocha": "^6.2.1",
88
+ "playwright": "^1.49.0",
89
+ "mocha-teamcity-reporter": "^3.0.0",
90
+ "nock": "^11.8.2",
91
+ "npm-run-all": "^4.1.5",
92
+ "performance-now": "^0.2.0",
93
+ "phin": "^2.2.3",
94
+ "promise": "^7.1.1",
95
+ "read-glob": "^3.0.0",
96
+ "resolve": "^1.17.0",
97
+ "rollup": "^2.52.2",
98
+ "rollup-plugin-terser": "^5.1.1",
99
+ "rollup-plugin-typescript2": "^0.29.0",
100
+ "semver": "^6.3.0",
101
+ "shx": "^0.3.2",
102
+ "time-grunt": "^1.3.0",
103
+ "ts-node": "^10.9.1",
104
+ "typescript": "^4.3.4",
105
+ "uikit": "2.27.4"
106
+ },
107
+ "keywords": [
108
+ "compile less",
109
+ "css nesting",
110
+ "css variable",
111
+ "css",
112
+ "gradients css",
113
+ "gradients css3",
114
+ "less compiler",
115
+ "less css",
116
+ "less mixins",
117
+ "less",
118
+ "less.js",
119
+ "lesscss",
120
+ "mixins",
121
+ "nested css",
122
+ "parser",
123
+ "preprocessor",
124
+ "bootstrap css",
125
+ "bootstrap less",
126
+ "style",
127
+ "styles",
128
+ "stylesheet",
129
+ "variables in css",
130
+ "css less"
131
+ ],
132
+ "rawcurrent": "https://raw.github.com/less/less.js/v",
133
+ "sourcearchive": "https://github.com/less/less.js/archive/v",
134
+ "dependencies": {
135
+ "copy-anything": "^2.0.1",
136
+ "parse-node-version": "^1.0.1",
137
+ "tslib": "^2.3.0"
138
+ },
139
+ "gitHead": "1df9072ee9ebdadc791bf35dfb1dbc3ef9f1948f"
140
+ }
@@ -1,3 +1,3 @@
1
1
  .test {
2
- val: http://localhost:8081/tmp/browser/test-runner-browser.html;
2
+ val: http://localhost:8081/packages/less/tmp/browser/test-runner-browser.html;
3
3
  }
@@ -1,20 +1,20 @@
1
- @import "http://localhost:8081/test/browser/less/imports/modify-this.css";
2
- @import "http://localhost:8081/test/browser/less/imports/modify-again.css";
1
+ @import "http://localhost:8081/packages/less/test/browser/less/imports/modify-this.css";
2
+ @import "http://localhost:8081/packages/less/test/browser/less/imports/modify-again.css";
3
3
  .modify {
4
- my-url: url("http://localhost:8081/test/browser/less/imports/a.png");
4
+ my-url: url("http://localhost:8081/packages/less/test/browser/less/imports/a.png");
5
5
  }
6
6
  .modify {
7
- my-url: url("http://localhost:8081/test/browser/less/imports/b.png");
7
+ my-url: url("http://localhost:8081/packages/less/test/browser/less/imports/b.png");
8
8
  }
9
9
  @font-face {
10
10
  src: url("/fonts/garamond-pro.ttf");
11
- src: local(Futura-Medium), url(http://localhost:8081/test/browser/less/relative-urls/fonts.svg#MyGeometricModern) format("svg");
11
+ src: local(Futura-Medium), url(http://localhost:8081/packages/less/test/browser/less/relative-urls/fonts.svg#MyGeometricModern) format("svg");
12
12
  }
13
13
  #shorthands {
14
14
  background: url("http://www.lesscss.org/spec.html") no-repeat 0 4px;
15
15
  }
16
16
  #misc {
17
- background-image: url(http://localhost:8081/test/browser/less/relative-urls/images/image.jpg);
17
+ background-image: url(http://localhost:8081/packages/less/test/browser/less/relative-urls/images/image.jpg);
18
18
  background: url("#inline-svg");
19
19
  }
20
20
  #data-uri {
@@ -29,8 +29,8 @@
29
29
  background: transparent url('data:image/svg+xml, <svg version="1.1"><g></g></svg>');
30
30
  }
31
31
  .comma-delimited {
32
- background: url(http://localhost:8081/test/browser/less/relative-urls/bg.jpg) no-repeat, url(http://localhost:8081/test/browser/less/relative-urls/bg.png) repeat-x top left, url(http://localhost:8081/test/browser/less/relative-urls/bg);
32
+ background: url(http://localhost:8081/packages/less/test/browser/less/relative-urls/bg.jpg) no-repeat, url(http://localhost:8081/packages/less/test/browser/less/relative-urls/bg.png) repeat-x top left, url(http://localhost:8081/packages/less/test/browser/less/relative-urls/bg);
33
33
  }
34
34
  .values {
35
- url: url('http://localhost:8081/test/browser/less/relative-urls/Trebuchet');
35
+ url: url('http://localhost:8081/packages/less/test/browser/less/relative-urls/Trebuchet');
36
36
  }
@@ -1,20 +1,20 @@
1
- @import "http://localhost:8081/test/browser/less/imports/modify-this.css";
2
- @import "http://localhost:8081/test/browser/less/imports/modify-again.css";
1
+ @import "http://localhost:8081/packages/less/test/browser/less/imports/modify-this.css";
2
+ @import "http://localhost:8081/packages/less/test/browser/less/imports/modify-again.css";
3
3
  .modify {
4
- my-url: url("http://localhost:8081/test/browser/less/imports/a.png");
4
+ my-url: url("http://localhost:8081/packages/less/test/browser/less/imports/a.png");
5
5
  }
6
6
  .modify {
7
- my-url: url("http://localhost:8081/test/browser/less/imports/b.png");
7
+ my-url: url("http://localhost:8081/packages/less/test/browser/less/imports/b.png");
8
8
  }
9
9
  @font-face {
10
10
  src: url("/fonts/garamond-pro.ttf");
11
- src: local(Futura-Medium), url(http://localhost:8081/test/browser/less/rewrite-urls/fonts.svg#MyGeometricModern) format("svg");
11
+ src: local(Futura-Medium), url(http://localhost:8081/packages/less/test/browser/less/rewrite-urls/fonts.svg#MyGeometricModern) format("svg");
12
12
  }
13
13
  #shorthands {
14
14
  background: url("http://www.lesscss.org/spec.html") no-repeat 0 4px;
15
15
  }
16
16
  #misc {
17
- background-image: url(http://localhost:8081/test/browser/less/rewrite-urls/images/image.jpg);
17
+ background-image: url(http://localhost:8081/packages/less/test/browser/less/rewrite-urls/images/image.jpg);
18
18
  background: url("#inline-svg");
19
19
  }
20
20
  #data-uri {
@@ -29,8 +29,8 @@
29
29
  background: transparent url('data:image/svg+xml, <svg version="1.1"><g></g></svg>');
30
30
  }
31
31
  .comma-delimited {
32
- background: url(http://localhost:8081/test/browser/less/rewrite-urls/bg.jpg) no-repeat, url(http://localhost:8081/test/browser/less/rewrite-urls/bg.png) repeat-x top left, url(http://localhost:8081/test/browser/less/rewrite-urls/bg);
32
+ background: url(http://localhost:8081/packages/less/test/browser/less/rewrite-urls/bg.jpg) no-repeat, url(http://localhost:8081/packages/less/test/browser/less/rewrite-urls/bg.png) repeat-x top left, url(http://localhost:8081/packages/less/test/browser/less/rewrite-urls/bg);
33
33
  }
34
34
  .values {
35
- url: url('http://localhost:8081/test/browser/less/rewrite-urls/Trebuchet');
35
+ url: url('http://localhost:8081/packages/less/test/browser/less/rewrite-urls/Trebuchet');
36
36
  }
@@ -1,24 +1,24 @@
1
- @import "http://localhost:8081/test/browser/less/modify-this.css";
2
- @import "http://localhost:8081/test/browser/less/modify-again.css";
1
+ @import "http://localhost:8081/packages/less/test/browser/less/modify-this.css";
2
+ @import "http://localhost:8081/packages/less/test/browser/less/modify-again.css";
3
3
  .modify {
4
- my-url: url("http://localhost:8081/test/browser/less/a.png");
4
+ my-url: url("http://localhost:8081/packages/less/test/browser/less/a.png");
5
5
  }
6
6
  .modify {
7
- my-url: url("http://localhost:8081/test/browser/less/b.png");
7
+ my-url: url("http://localhost:8081/packages/less/test/browser/less/b.png");
8
8
  }
9
9
  .gray-gradient {
10
10
  background: url('data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%201%201%22%3E%3ClinearGradient%20id%3D%22g%22%20x1%3D%220%25%22%20y1%3D%220%25%22%20x2%3D%220%25%22%20y2%3D%22100%25%22%3E%3Cstop%20offset%3D%220%25%22%20stop-color%3D%22%23999999%22%20stop-opacity%3D%220%22%2F%3E%3Cstop%20offset%3D%2260%25%22%20stop-color%3D%22%23999999%22%20stop-opacity%3D%220.05%22%2F%3E%3Cstop%20offset%3D%2270%25%22%20stop-color%3D%22%23999999%22%20stop-opacity%3D%220.1%22%2F%3E%3Cstop%20offset%3D%2273%25%22%20stop-color%3D%22%23999999%22%20stop-opacity%3D%220.15%22%2F%3E%3Cstop%20offset%3D%2275%25%22%20stop-color%3D%22%23999999%22%20stop-opacity%3D%220.2%22%2F%3E%3Cstop%20offset%3D%2280%25%22%20stop-color%3D%22%23999999%22%20stop-opacity%3D%220.25%22%2F%3E%3Cstop%20offset%3D%2285%25%22%20stop-color%3D%22%23999999%22%20stop-opacity%3D%220.3%22%2F%3E%3Cstop%20offset%3D%2288%25%22%20stop-color%3D%22%23999999%22%20stop-opacity%3D%220.35%22%2F%3E%3Cstop%20offset%3D%2290%25%22%20stop-color%3D%22%23999999%22%20stop-opacity%3D%220.4%22%2F%3E%3Cstop%20offset%3D%2295%25%22%20stop-color%3D%22%23999999%22%20stop-opacity%3D%220.45%22%2F%3E%3Cstop%20offset%3D%22100%25%22%20stop-color%3D%22%23999999%22%20stop-opacity%3D%220.5%22%2F%3E%3C%2FlinearGradient%3E%3Crect%20x%3D%220%22%20y%3D%220%22%20width%3D%221%22%20height%3D%221%22%20fill%3D%22url(%23g)%22%20%2F%3E%3C%2Fsvg%3E');
11
11
  }
12
12
  @font-face {
13
13
  src: url("/fonts/garamond-pro.ttf");
14
- src: local(Futura-Medium), url(http://localhost:8081/test/browser/less/fonts.svg#MyGeometricModern) format("svg");
14
+ src: local(Futura-Medium), url(http://localhost:8081/packages/less/test/browser/less/fonts.svg#MyGeometricModern) format("svg");
15
15
  not-a-comment: url(//z);
16
16
  }
17
17
  #shorthands {
18
18
  background: url("http://www.lesscss.org/spec.html") no-repeat 0 4px;
19
19
  }
20
20
  #misc {
21
- background-image: url(http://localhost:8081/test/browser/less/images/image.jpg);
21
+ background-image: url(http://localhost:8081/packages/less/test/browser/less/images/image.jpg);
22
22
  }
23
23
  #data-uri {
24
24
  background: url(data:image/png;charset=utf-8;base64,
@@ -32,20 +32,20 @@
32
32
  background: transparent url('data:image/svg+xml, <svg version="1.1"><g></g></svg>');
33
33
  }
34
34
  .comma-delimited {
35
- background: url(http://localhost:8081/test/browser/less/bg.jpg) no-repeat, url(http://localhost:8081/test/browser/less/bg.png) repeat-x top left, url(http://localhost:8081/test/browser/less/bg);
35
+ background: url(http://localhost:8081/packages/less/test/browser/less/bg.jpg) no-repeat, url(http://localhost:8081/packages/less/test/browser/less/bg.png) repeat-x top left, url(http://localhost:8081/packages/less/test/browser/less/bg);
36
36
  }
37
37
  .values {
38
- url: url('http://localhost:8081/test/browser/less/Trebuchet');
38
+ url: url('http://localhost:8081/packages/less/test/browser/less/Trebuchet');
39
39
  }
40
40
  #data-uri {
41
- uri: url('http://localhost:8081/test/data/image.jpg');
41
+ uri: url('http://localhost:8081/packages/less/test/data/image.jpg');
42
42
  }
43
43
  #data-uri-guess {
44
- uri: url('http://localhost:8081/test/data/image.jpg');
44
+ uri: url('http://localhost:8081/packages/less/test/data/image.jpg');
45
45
  }
46
46
  #data-uri-ascii {
47
- uri-1: url('http://localhost:8081/test/data/page.html');
48
- uri-2: url('http://localhost:8081/test/data/page.html');
47
+ uri-1: url('http://localhost:8081/packages/less/test/data/page.html');
48
+ uri-2: url('http://localhost:8081/packages/less/test/data/page.html');
49
49
  }
50
50
  #svg-functions {
51
51
  background-image: url('data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%201%201%22%3E%3ClinearGradient%20id%3D%22g%22%20x1%3D%220%25%22%20y1%3D%220%25%22%20x2%3D%220%25%22%20y2%3D%22100%25%22%3E%3Cstop%20offset%3D%220%25%22%20stop-color%3D%22%23000000%22%2F%3E%3Cstop%20offset%3D%22100%25%22%20stop-color%3D%22%23ffffff%22%2F%3E%3C%2FlinearGradient%3E%3Crect%20x%3D%220%22%20y%3D%220%22%20width%3D%221%22%20height%3D%221%22%20fill%3D%22url(%23g)%22%20%2F%3E%3C%2Fsvg%3E');
@@ -3,7 +3,7 @@ let config
3
3
  const fs = require('fs-extra')
4
4
  const path = require('path')
5
5
  const globby = require('globby')
6
- const { runner } = require('mocha-headless-chrome')
6
+ const { runner } = require('../../mocha-playwright/runner')
7
7
 
8
8
 
9
9
  if (process.argv[2]) {
@@ -52,12 +52,12 @@ Object.entries(config).forEach(entry => {
52
52
  const templateString = template(paths, test.options.helpers, test.options.specs)
53
53
  fs.writeFileSync(path.join(cwd, test.options.outfile), templateString)
54
54
  tests.push(() => {
55
- const file = 'http://localhost:8081/' + test.options.outfile
55
+ const file = 'http://localhost:8081/packages/less/' + test.options.outfile
56
56
  console.log(file)
57
57
  return runner({
58
58
  file,
59
59
  timeout: 3500,
60
- args: ['disable-web-security']
60
+ args: ['disable-web-security', 'no-sandbox', 'disable-setuid-sandbox'],
61
61
  })
62
62
  })
63
63
  })
@@ -1,9 +1,11 @@
1
1
  var path = require('path');
2
2
  var resolve = require('resolve')
3
+ var { forceCovertToBrowserPath } = require('./utils');
3
4
 
4
- var rootFolder = path.resolve(__dirname, '../../../');
5
- var testFolder = path.relative(rootFolder, path.dirname(resolve.sync('@less/test-data')))
6
- var lessFolder = path.join(testFolder, 'less');
5
+ /** Root of repo */
6
+ var testFolder = forceCovertToBrowserPath(path.dirname(resolve.sync('@less/test-data')));
7
+ var lessFolder = forceCovertToBrowserPath(path.join(testFolder, 'less'));
8
+ var localTests = forceCovertToBrowserPath(path.resolve(__dirname, '..'));
7
9
 
8
10
  module.exports = {
9
11
  main: {
@@ -33,7 +35,7 @@ module.exports = {
33
35
  }
34
36
  },
35
37
  strictUnits: {
36
- src: [`${lessFolder}/strict-units/*.less`],
38
+ src: [`${lessFolder}/units/strict/*.less`],
37
39
  options: {
38
40
  helpers: 'test/browser/runner-strict-units-options.js',
39
41
  specs: 'test/browser/runner-strict-units-spec.js',
@@ -44,7 +46,7 @@ module.exports = {
44
46
  src: [
45
47
  `${lessFolder}/errors/*.less`,
46
48
  `${testFolder}/errors/javascript-error.less`,
47
- 'test/browser/less/errors/*.less'
49
+ `${localTests}/less/errors/*.less`
48
50
  ],
49
51
  options: {
50
52
  timeout: 20000,
@@ -63,8 +65,8 @@ module.exports = {
63
65
  },
64
66
  browser: {
65
67
  src: [
66
- 'test/browser/less/*.less',
67
- 'test/browser/less/plugin/*.less'
68
+ `${localTests}/less/*.less`,
69
+ `${localTests}/less/plugin/*.less`
68
70
  ],
69
71
  options: {
70
72
  helpers: 'test/browser/runner-browser-options.js',
@@ -73,7 +75,7 @@ module.exports = {
73
75
  }
74
76
  },
75
77
  relativeUrls: {
76
- src: ['test/browser/less/relative-urls/*.less'],
78
+ src: [`${localTests}/less/relative-urls/*.less`],
77
79
  options: {
78
80
  helpers: 'test/browser/runner-relative-urls-options.js',
79
81
  specs: 'test/browser/runner-relative-urls-spec.js',
@@ -81,7 +83,7 @@ module.exports = {
81
83
  }
82
84
  },
83
85
  rewriteUrls: {
84
- src: ['test/browser/less/rewrite-urls/*.less'],
86
+ src: [`${localTests}/less/rewrite-urls/*.less`],
85
87
  options: {
86
88
  helpers: 'test/browser/runner-rewrite-urls-options.js',
87
89
  specs: 'test/browser/runner-rewrite-urls-spec.js',
@@ -89,7 +91,7 @@ module.exports = {
89
91
  }
90
92
  },
91
93
  rootpath: {
92
- src: ['test/browser/less/rootpath/*.less'],
94
+ src: [`${localTests}/less/rootpath/*.less`],
93
95
  options: {
94
96
  helpers: 'test/browser/runner-rootpath-options.js',
95
97
  specs: 'test/browser/runner-rootpath-spec.js',
@@ -97,7 +99,7 @@ module.exports = {
97
99
  }
98
100
  },
99
101
  rootpathRelative: {
100
- src: ['test/browser/less/rootpath-relative/*.less'],
102
+ src: [`${localTests}/less/rootpath-relative/*.less`],
101
103
  options: {
102
104
  helpers: 'test/browser/runner-rootpath-relative-options.js',
103
105
  specs: 'test/browser/runner-rootpath-relative-spec.js',
@@ -105,7 +107,7 @@ module.exports = {
105
107
  }
106
108
  },
107
109
  rootpathRewriteUrls: {
108
- src: ['test/browser/less/rootpath-rewrite-urls/*.less'],
110
+ src: [`${localTests}/less/rootpath-rewrite-urls/*.less`],
109
111
  options: {
110
112
  helpers:
111
113
  'test/browser/runner-rootpath-rewrite-urls-options.js',
@@ -115,7 +117,7 @@ module.exports = {
115
117
  }
116
118
  },
117
119
  production: {
118
- src: ['test/browser/less/production/*.less'],
120
+ src: [`${localTests}/less/production/*.less`],
119
121
  options: {
120
122
  helpers: 'test/browser/runner-production-options.js',
121
123
  specs: 'test/browser/runner-production-spec.js',
@@ -123,7 +125,7 @@ module.exports = {
123
125
  }
124
126
  },
125
127
  modifyVars: {
126
- src: ['test/browser/less/modify-vars/*.less'],
128
+ src: [`${localTests}/less/modify-vars/*.less`],
127
129
  options: {
128
130
  helpers: 'test/browser/runner-modify-vars-options.js',
129
131
  specs: 'test/browser/runner-modify-vars-spec.js',
@@ -131,7 +133,7 @@ module.exports = {
131
133
  }
132
134
  },
133
135
  globalVars: {
134
- src: ['test/browser/less/global-vars/*.less'],
136
+ src: [`${localTests}/less/global-vars/*.less`],
135
137
  options: {
136
138
  helpers: 'test/browser/runner-global-vars-options.js',
137
139
  specs: 'test/browser/runner-global-vars-spec.js',
@@ -183,4 +185,4 @@ module.exports = {
183
185
  outfile: 'tmp/browser/test-runner-filemanager-plugin.html'
184
186
  }
185
187
  }
186
- }
188
+ }
@@ -1,4 +1,11 @@
1
1
  const html = require('html-template-tag')
2
+ const path = require('path')
3
+ const { forceCovertToBrowserPath } = require('./utils')
4
+
5
+ const webRoot = path.resolve(__dirname, '../../../../../');
6
+ const mochaDir = forceCovertToBrowserPath(path.relative(webRoot, path.dirname(require.resolve('mocha'))))
7
+ const chaiDir = forceCovertToBrowserPath(path.relative(webRoot, path.dirname(require.resolve('chai'))))
8
+ const mochaTeamCityDir = forceCovertToBrowserPath(path.relative(webRoot, path.dirname(require.resolve('mocha-teamcity-reporter'))))
2
9
 
3
10
  /**
4
11
  * Generates HTML templates from list of test sheets
@@ -18,28 +25,30 @@ module.exports = (stylesheets, helpers, spec, less) => {
18
25
  <!-- for each test, generate CSS/LESS link tags -->
19
26
  $${stylesheets.map(function(fullLessName) {
20
27
  var pathParts = fullLessName.split('/');
21
- var fullCssName = fullLessName.replace(/\/less\//g, '/css/').replace(/less$/, 'css')
28
+ var fullCssName = fullLessName
29
+ .replace(/\/(browser|test-data)\/less\//g, '/$1/css/')
30
+ .replace(/less$/, 'css')
22
31
  var lessName = pathParts[pathParts.length - 1];
23
32
  var name = lessName.split('.')[0];
24
33
  return `
25
34
  <!-- the tags to be generated -->
26
- <link id="original-less:test-less-${name}" title="test-less-${name}" rel="stylesheet/less" type="text/css" href="../../${fullLessName}">
27
- <link id="expected-less:test-less-${name}" rel="stylesheet" type="text/css" href="../../${fullCssName}">
35
+ <link id="original-less:test-less-${name}" title="test-less-${name}" rel="stylesheet/less" type="text/css" href="/${path.relative(webRoot, fullLessName)}">
36
+ <link id="expected-less:test-less-${name}" rel="stylesheet" type="text/css" href="/${path.relative(webRoot, fullCssName)}">
28
37
  ` }).join('')}
29
38
 
30
39
  $${helpers.map(helper => `
31
40
  <script src="../../${helper}"></script>
32
41
  `).join('')}
33
42
 
34
- <link rel="stylesheet" href="../../node_modules/mocha/mocha.css">
43
+ <link rel="stylesheet" href="/${mochaDir}/mocha.css">
35
44
  </head>
36
45
 
37
46
  <body>
38
47
  <!-- content -->
39
48
  <div id="mocha"></div>
40
- <script src="../../node_modules/mocha/mocha.js"></script>
41
- <script src="../../node_modules/mocha-teamcity-reporter/lib/teamcityBrowser.js"></script>
42
- <script src="../../node_modules/chai/chai.js"></script>
49
+ <script src="/${mochaDir}/mocha.js"></script>
50
+ <script src="/${mochaTeamCityDir}/teamcityBrowser.js"></script>
51
+ <script src="/${chaiDir}/chai.js"></script>
43
52
  <script>
44
53
  expect = chai.expect
45
54
  mocha.setup({
@@ -76,6 +85,7 @@ module.exports = (stylesheets, helpers, spec, less) => {
76
85
  failedTests.push({name: test.title, result: false, message: err.message, stack: err.stack, titles: flattenTitles(test) });
77
86
  };
78
87
  };
88
+
79
89
  </script>
80
90
  </body>
81
91
  </html>
@@ -0,0 +1,14 @@
1
+ /**
2
+ * utils for covert browser paths,
3
+ * fix https://github.com/less/less.js/pull/4213
4
+ *
5
+ * @param {string} path
6
+ * @returns {string}
7
+ */
8
+ function forceCovertToBrowserPath (path) {
9
+ return (path || '').replace(/\\/g, '/');
10
+ }
11
+
12
+ module.exports = {
13
+ forceCovertToBrowserPath
14
+ }