less 4.4.1 → 4.5.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 (46) hide show
  1. package/Gruntfile.js +16 -17
  2. package/bin/lessc +35 -40
  3. package/dist/less.js +125 -186
  4. package/dist/less.min.js +2 -2
  5. package/dist/less.min.js.map +1 -1
  6. package/lib/less/contexts.js +0 -1
  7. package/lib/less/contexts.js.map +1 -1
  8. package/lib/less/default-options.js +22 -3
  9. package/lib/less/default-options.js.map +1 -1
  10. package/lib/less/less-error.js +2 -1
  11. package/lib/less/less-error.js.map +1 -1
  12. package/lib/less/parse-tree.js +58 -1
  13. package/lib/less/parse-tree.js.map +1 -1
  14. package/lib/less/parser/parser-input.js +2 -19
  15. package/lib/less/parser/parser-input.js.map +1 -1
  16. package/lib/less/parser/parser.js +8 -14
  17. package/lib/less/parser/parser.js.map +1 -1
  18. package/lib/less/source-map-output.js +1 -1
  19. package/lib/less/source-map-output.js.map +1 -1
  20. package/lib/less/tree/debug-info.js +29 -0
  21. package/lib/less/tree/debug-info.js.map +1 -1
  22. package/lib/less/tree/nested-at-rule.js +1 -1
  23. package/lib/less/tree/nested-at-rule.js.map +1 -1
  24. package/lib/less-node/lessc-helper.js +8 -7
  25. package/lib/less-node/lessc-helper.js.map +1 -1
  26. package/package.json +10 -5
  27. package/scripts/coverage-lines.js +207 -0
  28. package/scripts/coverage-report.js +158 -0
  29. package/scripts/postinstall.js +61 -0
  30. package/test/browser/common.js +22 -1
  31. package/test/browser/generator/runner.config.js +20 -24
  32. package/test/browser/generator/template.js +14 -3
  33. package/test/browser/runner-browser-options.js +5 -5
  34. package/test/index.js +293 -98
  35. package/test/less-test.js +453 -94
  36. package/test/sourcemaps/comprehensive.json +1 -0
  37. package/test/sourcemaps/sourcemaps-basepath.json +1 -0
  38. package/test/sourcemaps/sourcemaps-include-source.json +1 -0
  39. package/test/sourcemaps/sourcemaps-rootpath.json +1 -0
  40. package/test/sourcemaps/sourcemaps-url.json +1 -0
  41. package/test.less +1 -0
  42. package/tsconfig.json +20 -20
  43. package/lib/less/parser/chunker.js +0 -148
  44. package/lib/less/parser/chunker.js.map +0 -1
  45. package/test/browser/runner-legacy-options.js +0 -6
  46. package/test/browser/runner-legacy-spec.js +0 -3
@@ -0,0 +1 @@
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"}
@@ -0,0 +1 @@
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"}
@@ -0,0 +1 @@
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"]}
@@ -0,0 +1 @@
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"}
@@ -0,0 +1 @@
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"}
package/test.less ADDED
@@ -0,0 +1 @@
1
+ .test { color: red; }
package/tsconfig.json CHANGED
@@ -1,21 +1,21 @@
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/**/*"]
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
21
  }
@@ -1,148 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- // Split the input into chunks.
4
- function default_1(input, fail) {
5
- var len = input.length;
6
- var level = 0;
7
- var parenLevel = 0;
8
- var lastOpening;
9
- var lastOpeningParen;
10
- var lastMultiComment;
11
- var lastMultiCommentEndBrace;
12
- var chunks = [];
13
- var emitFrom = 0;
14
- var chunkerCurrentIndex;
15
- var currentChunkStartIndex;
16
- var cc;
17
- var cc2;
18
- var matched;
19
- function emitChunk(force) {
20
- var len = chunkerCurrentIndex - emitFrom;
21
- if (((len < 512) && !force) || !len) {
22
- return;
23
- }
24
- chunks.push(input.slice(emitFrom, chunkerCurrentIndex + 1));
25
- emitFrom = chunkerCurrentIndex + 1;
26
- }
27
- for (chunkerCurrentIndex = 0; chunkerCurrentIndex < len; chunkerCurrentIndex++) {
28
- cc = input.charCodeAt(chunkerCurrentIndex);
29
- if (((cc >= 97) && (cc <= 122)) || (cc < 34)) {
30
- // a-z or whitespace
31
- continue;
32
- }
33
- switch (cc) {
34
- case 40: // (
35
- parenLevel++;
36
- lastOpeningParen = chunkerCurrentIndex;
37
- continue;
38
- case 41: // )
39
- if (--parenLevel < 0) {
40
- return fail('missing opening `(`', chunkerCurrentIndex);
41
- }
42
- continue;
43
- case 59: // ;
44
- if (!parenLevel) {
45
- emitChunk();
46
- }
47
- continue;
48
- case 123: // {
49
- level++;
50
- lastOpening = chunkerCurrentIndex;
51
- continue;
52
- case 125: // }
53
- if (--level < 0) {
54
- return fail('missing opening `{`', chunkerCurrentIndex);
55
- }
56
- if (!level && !parenLevel) {
57
- emitChunk();
58
- }
59
- continue;
60
- case 92: // \
61
- if (chunkerCurrentIndex < len - 1) {
62
- chunkerCurrentIndex++;
63
- continue;
64
- }
65
- return fail('unescaped `\\`', chunkerCurrentIndex);
66
- case 34:
67
- case 39:
68
- case 96: // ", ' and `
69
- matched = 0;
70
- currentChunkStartIndex = chunkerCurrentIndex;
71
- for (chunkerCurrentIndex = chunkerCurrentIndex + 1; chunkerCurrentIndex < len; chunkerCurrentIndex++) {
72
- cc2 = input.charCodeAt(chunkerCurrentIndex);
73
- if (cc2 > 96) {
74
- continue;
75
- }
76
- if (cc2 == cc) {
77
- matched = 1;
78
- break;
79
- }
80
- if (cc2 == 92) { // \
81
- if (chunkerCurrentIndex == len - 1) {
82
- return fail('unescaped `\\`', chunkerCurrentIndex);
83
- }
84
- chunkerCurrentIndex++;
85
- }
86
- }
87
- if (matched) {
88
- continue;
89
- }
90
- return fail("unmatched `".concat(String.fromCharCode(cc), "`"), currentChunkStartIndex);
91
- case 47: // /, check for comment
92
- if (parenLevel || (chunkerCurrentIndex == len - 1)) {
93
- continue;
94
- }
95
- cc2 = input.charCodeAt(chunkerCurrentIndex + 1);
96
- if (cc2 == 47) {
97
- // //, find lnfeed
98
- for (chunkerCurrentIndex = chunkerCurrentIndex + 2; chunkerCurrentIndex < len; chunkerCurrentIndex++) {
99
- cc2 = input.charCodeAt(chunkerCurrentIndex);
100
- if ((cc2 <= 13) && ((cc2 == 10) || (cc2 == 13))) {
101
- break;
102
- }
103
- }
104
- }
105
- else if (cc2 == 42) {
106
- // /*, find */
107
- lastMultiComment = currentChunkStartIndex = chunkerCurrentIndex;
108
- for (chunkerCurrentIndex = chunkerCurrentIndex + 2; chunkerCurrentIndex < len - 1; chunkerCurrentIndex++) {
109
- cc2 = input.charCodeAt(chunkerCurrentIndex);
110
- if (cc2 == 125) {
111
- lastMultiCommentEndBrace = chunkerCurrentIndex;
112
- }
113
- if (cc2 != 42) {
114
- continue;
115
- }
116
- if (input.charCodeAt(chunkerCurrentIndex + 1) == 47) {
117
- break;
118
- }
119
- }
120
- if (chunkerCurrentIndex == len - 1) {
121
- return fail('missing closing `*/`', currentChunkStartIndex);
122
- }
123
- chunkerCurrentIndex++;
124
- }
125
- continue;
126
- case 42: // *, check for unmatched */
127
- if ((chunkerCurrentIndex < len - 1) && (input.charCodeAt(chunkerCurrentIndex + 1) == 47)) {
128
- return fail('unmatched `/*`', chunkerCurrentIndex);
129
- }
130
- continue;
131
- }
132
- }
133
- if (level !== 0) {
134
- if ((lastMultiComment > lastOpening) && (lastMultiCommentEndBrace > lastMultiComment)) {
135
- return fail('missing closing `}` or `*/`', lastOpening);
136
- }
137
- else {
138
- return fail('missing closing `}`', lastOpening);
139
- }
140
- }
141
- else if (parenLevel !== 0) {
142
- return fail('missing closing `)`', lastOpeningParen);
143
- }
144
- emitChunk(true);
145
- return chunks;
146
- }
147
- exports.default = default_1;
148
- //# sourceMappingURL=chunker.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"chunker.js","sourceRoot":"","sources":["../../../src/less/parser/chunker.js"],"names":[],"mappings":"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","sourcesContent":["// Split the input into chunks.\nexport default function (input, fail) {\n const len = input.length;\n let level = 0;\n let parenLevel = 0;\n let lastOpening;\n let lastOpeningParen;\n let lastMultiComment;\n let lastMultiCommentEndBrace;\n const chunks = [];\n let emitFrom = 0;\n let chunkerCurrentIndex;\n let currentChunkStartIndex;\n let cc;\n let cc2;\n let matched;\n\n function emitChunk(force) {\n const len = chunkerCurrentIndex - emitFrom;\n if (((len < 512) && !force) || !len) {\n return;\n }\n chunks.push(input.slice(emitFrom, chunkerCurrentIndex + 1));\n emitFrom = chunkerCurrentIndex + 1;\n }\n\n for (chunkerCurrentIndex = 0; chunkerCurrentIndex < len; chunkerCurrentIndex++) {\n cc = input.charCodeAt(chunkerCurrentIndex);\n if (((cc >= 97) && (cc <= 122)) || (cc < 34)) {\n // a-z or whitespace\n continue;\n }\n\n switch (cc) {\n case 40: // (\n parenLevel++;\n lastOpeningParen = chunkerCurrentIndex;\n continue;\n case 41: // )\n if (--parenLevel < 0) {\n return fail('missing opening `(`', chunkerCurrentIndex);\n }\n continue;\n case 59: // ;\n if (!parenLevel) { emitChunk(); }\n continue;\n case 123: // {\n level++;\n lastOpening = chunkerCurrentIndex;\n continue;\n case 125: // }\n if (--level < 0) {\n return fail('missing opening `{`', chunkerCurrentIndex);\n }\n if (!level && !parenLevel) { emitChunk(); }\n continue;\n case 92: // \\\n if (chunkerCurrentIndex < len - 1) { chunkerCurrentIndex++; continue; }\n return fail('unescaped `\\\\`', chunkerCurrentIndex);\n case 34:\n case 39:\n case 96: // \", ' and `\n matched = 0;\n currentChunkStartIndex = chunkerCurrentIndex;\n for (chunkerCurrentIndex = chunkerCurrentIndex + 1; chunkerCurrentIndex < len; chunkerCurrentIndex++) {\n cc2 = input.charCodeAt(chunkerCurrentIndex);\n if (cc2 > 96) { continue; }\n if (cc2 == cc) { matched = 1; break; }\n if (cc2 == 92) { // \\\n if (chunkerCurrentIndex == len - 1) {\n return fail('unescaped `\\\\`', chunkerCurrentIndex);\n }\n chunkerCurrentIndex++;\n }\n }\n if (matched) { continue; }\n return fail(`unmatched \\`${String.fromCharCode(cc)}\\``, currentChunkStartIndex);\n case 47: // /, check for comment\n if (parenLevel || (chunkerCurrentIndex == len - 1)) { continue; }\n cc2 = input.charCodeAt(chunkerCurrentIndex + 1);\n if (cc2 == 47) {\n // //, find lnfeed\n for (chunkerCurrentIndex = chunkerCurrentIndex + 2; chunkerCurrentIndex < len; chunkerCurrentIndex++) {\n cc2 = input.charCodeAt(chunkerCurrentIndex);\n if ((cc2 <= 13) && ((cc2 == 10) || (cc2 == 13))) { break; }\n }\n } else if (cc2 == 42) {\n // /*, find */\n lastMultiComment = currentChunkStartIndex = chunkerCurrentIndex;\n for (chunkerCurrentIndex = chunkerCurrentIndex + 2; chunkerCurrentIndex < len - 1; chunkerCurrentIndex++) {\n cc2 = input.charCodeAt(chunkerCurrentIndex);\n if (cc2 == 125) { lastMultiCommentEndBrace = chunkerCurrentIndex; }\n if (cc2 != 42) { continue; }\n if (input.charCodeAt(chunkerCurrentIndex + 1) == 47) { break; }\n }\n if (chunkerCurrentIndex == len - 1) {\n return fail('missing closing `*/`', currentChunkStartIndex);\n }\n chunkerCurrentIndex++;\n }\n continue;\n case 42: // *, check for unmatched */\n if ((chunkerCurrentIndex < len - 1) && (input.charCodeAt(chunkerCurrentIndex + 1) == 47)) {\n return fail('unmatched `/*`', chunkerCurrentIndex);\n }\n continue;\n }\n }\n\n if (level !== 0) {\n if ((lastMultiComment > lastOpening) && (lastMultiCommentEndBrace > lastMultiComment)) {\n return fail('missing closing `}` or `*/`', lastOpening);\n } else {\n return fail('missing closing `}`', lastOpening);\n }\n } else if (parenLevel !== 0) {\n return fail('missing closing `)`', lastOpeningParen);\n }\n\n emitChunk(true);\n return chunks;\n}\n"]}
@@ -1,6 +0,0 @@
1
- var less = {
2
- logLevel: 4,
3
- errorReporting: 'console',
4
- math: 'always',
5
- strictUnits: false
6
- };
@@ -1,3 +0,0 @@
1
- describe('less.js legacy tests', function() {
2
- testLessEqualsInDocument();
3
- });