@sasjs/lint 2.4.0 → 2.4.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.
- package/.all-contributorsrc +11 -1
- package/.github/dependabot.yml +1 -1
- package/.github/reviewer-lottery.yml +0 -2
- package/.github/workflows/assign-reviewer.yml +2 -2
- package/README.md +41 -37
- package/format/formatFile.d.ts +1 -1
- package/format/formatFile.js +24 -72
- package/format/formatFile.js.map +1 -1
- package/format/formatFolder.d.ts +1 -1
- package/format/formatFolder.js +36 -104
- package/format/formatFolder.js.map +1 -1
- package/format/formatProject.js +10 -45
- package/format/formatProject.js.map +1 -1
- package/format/formatText.d.ts +1 -1
- package/format/formatText.js +6 -46
- package/format/formatText.js.map +1 -1
- package/format/index.js +5 -1
- package/format/index.js.map +1 -1
- package/format/shared.js +16 -16
- package/format/shared.js.map +1 -1
- package/formatExample.js +10 -6
- package/formatExample.js.map +1 -1
- package/index.js +5 -1
- package/index.js.map +1 -1
- package/lint/index.js +5 -1
- package/lint/index.js.map +1 -1
- package/lint/lintFile.d.ts +1 -1
- package/lint/lintFile.js +12 -76
- package/lint/lintFile.js.map +1 -1
- package/lint/lintFolder.d.ts +1 -1
- package/lint/lintFolder.js +23 -114
- package/lint/lintFolder.js.map +1 -1
- package/lint/lintProject.js +10 -45
- package/lint/lintProject.js.map +1 -1
- package/lint/lintText.js +6 -40
- package/lint/lintText.js.map +1 -1
- package/lint/shared.js +24 -45
- package/lint/shared.js.map +1 -1
- package/lintExample.js +45 -5
- package/lintExample.js.map +1 -1
- package/package.json +3 -3
- package/rules/file/hasDoxygenHeader.js +29 -29
- package/rules/file/hasDoxygenHeader.js.map +1 -1
- package/rules/file/hasMacroNameInMend.js +59 -59
- package/rules/file/hasMacroNameInMend.js.map +1 -1
- package/rules/file/hasMacroParentheses.js +25 -27
- package/rules/file/hasMacroParentheses.js.map +1 -1
- package/rules/file/hasRequiredMacroOptions.js +20 -20
- package/rules/file/hasRequiredMacroOptions.js.map +1 -1
- package/rules/file/lineEndings.js +27 -27
- package/rules/file/lineEndings.js.map +1 -1
- package/rules/file/noNestedMacros.js +23 -23
- package/rules/file/noNestedMacros.js.map +1 -1
- package/rules/file/strictMacroDefinition.js +52 -57
- package/rules/file/strictMacroDefinition.js.map +1 -1
- package/rules/line/indentationMultiple.js +16 -16
- package/rules/line/indentationMultiple.js.map +1 -1
- package/rules/line/maxLineLength.js +16 -16
- package/rules/line/maxLineLength.js.map +1 -1
- package/rules/line/noEncodedPasswords.js +18 -18
- package/rules/line/noEncodedPasswords.js.map +1 -1
- package/rules/line/noGremlins.js +29 -69
- package/rules/line/noGremlins.js.map +1 -1
- package/rules/line/noTabs.js +19 -19
- package/rules/line/noTabs.js.map +1 -1
- package/rules/line/noTrailingSpaces.js +16 -16
- package/rules/line/noTrailingSpaces.js.map +1 -1
- package/rules/path/lowerCaseFileNames.js +15 -15
- package/rules/path/lowerCaseFileNames.js.map +1 -1
- package/rules/path/noSpacesInFileNames.js +15 -15
- package/rules/path/noSpacesInFileNames.js.map +1 -1
- package/types/LintConfig.js +28 -68
- package/types/LintConfig.js.map +1 -1
- package/types/index.js +5 -1
- package/types/index.js.map +1 -1
- package/utils/asyncForEach.js +4 -46
- package/utils/asyncForEach.js.map +1 -1
- package/utils/getColumnNumber.js +3 -3
- package/utils/getColumnNumber.js.map +1 -1
- package/utils/getDataSectionsDetail.js +16 -38
- package/utils/getDataSectionsDetail.js.map +1 -1
- package/utils/getHeaderLinesCount.js +8 -30
- package/utils/getHeaderLinesCount.js.map +1 -1
- package/utils/getIndicesOf.js +3 -4
- package/utils/getIndicesOf.js.map +1 -1
- package/utils/getLintConfig.js +14 -52
- package/utils/getLintConfig.js.map +1 -1
- package/utils/getProjectRoot.js +22 -59
- package/utils/getProjectRoot.js.map +1 -1
- package/utils/index.js +5 -1
- package/utils/index.js.map +1 -1
- package/utils/isIgnored.d.ts +1 -1
- package/utils/isIgnored.js +20 -67
- package/utils/isIgnored.js.map +1 -1
- package/utils/listSasFiles.js +5 -39
- package/utils/listSasFiles.js.map +1 -1
- package/utils/parseMacros.d.ts +1 -1
- package/utils/parseMacros.js +29 -50
- package/utils/parseMacros.js.map +1 -1
- package/utils/splitText.js +4 -4
- package/utils/splitText.js.map +1 -1
- package/utils/trimComments.js +8 -10
- package/utils/trimComments.js.map +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"indentationMultiple.js","sourceRoot":"","sources":["../../../src/rules/line/indentationMultiple.ts"],"names":[],"mappings":";;;AAEA,
|
|
1
|
+
{"version":3,"file":"indentationMultiple.js","sourceRoot":"","sources":["../../../src/rules/line/indentationMultiple.ts"],"names":[],"mappings":";;;AAEA,2DAAuD;AACvD,mDAA+C;AAE/C,MAAM,IAAI,GAAG,qBAAqB,CAAA;AAClC,MAAM,WAAW,GAAG,4DAA4D,CAAA;AAChF,MAAM,OAAO,GAAG,gCAAgC,CAAA;AAEhD,MAAM,IAAI,GAAG,CAAC,KAAa,EAAE,UAAkB,EAAE,MAAmB,EAAE,EAAE;IACtE,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC;QAAE,OAAO,EAAE,CAAA;IAErC,MAAM,QAAQ,GAAG,CAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,aAAa,CAAC,IAAI,CAAC,KAAI,mBAAQ,CAAC,OAAO,CAAA;IAChE,MAAM,mBAAmB,GAAG,KAAK,CAAC,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,mBAA6B,CAAC;QACtE,CAAC,CAAC,CAAC;QACH,CAAC,CAAC,MAAO,CAAC,mBAAmB,CAAA;IAE/B,IAAI,mBAAmB,KAAK,CAAC;QAAE,OAAO,EAAE,CAAA;IACxC,MAAM,cAAc,GAAG,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAA;IAC3C,IAAI,cAAc,GAAG,mBAAoB,KAAK,CAAC;QAAE,OAAO,EAAE,CAAA;IAC1D,OAAO;QACL;YACE,OAAO,EAAE,GAAG,OAAO,MAAM,cAAc,IACrC,cAAc,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,QACnC,EAAE;YACF,UAAU;YACV,iBAAiB,EAAE,CAAC;YACpB,eAAe,EAAE,CAAC;YAClB,QAAQ;SACT;KACF,CAAA;AACH,CAAC,CAAA;AAED;;GAEG;AACU,QAAA,mBAAmB,GAAiB;IAC/C,IAAI,EAAE,2BAAY,CAAC,IAAI;IACvB,IAAI;IACJ,WAAW;IACX,OAAO;IACP,IAAI;CACL,CAAA"}
|
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.maxLineLength = void 0;
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
4
|
+
const LintRuleType_1 = require("../../types/LintRuleType");
|
|
5
|
+
const Severity_1 = require("../../types/Severity");
|
|
6
|
+
const utils_1 = require("../../utils");
|
|
7
|
+
const name = 'maxLineLength';
|
|
8
|
+
const description = 'Restrict lines to the specified length.';
|
|
9
|
+
const message = 'Line exceeds maximum length';
|
|
10
|
+
const test = (value, lineNumber, config, options) => {
|
|
11
|
+
const severity = (config === null || config === void 0 ? void 0 : config.severityLevel[name]) || Severity_1.Severity.Warning;
|
|
12
|
+
let maxLineLength = utils_1.DefaultLintConfiguration.maxLineLength;
|
|
13
13
|
if (config) {
|
|
14
14
|
if (options === null || options === void 0 ? void 0 : options.isHeaderLine) {
|
|
15
15
|
maxLineLength = Math.max(config.maxLineLength, config.maxHeaderLineLength);
|
|
@@ -25,11 +25,11 @@ var test = function (value, lineNumber, config, options) {
|
|
|
25
25
|
return [];
|
|
26
26
|
return [
|
|
27
27
|
{
|
|
28
|
-
message: message
|
|
29
|
-
lineNumber
|
|
28
|
+
message: `${message} by ${value.length - maxLineLength} characters`,
|
|
29
|
+
lineNumber,
|
|
30
30
|
startColumnNumber: 1,
|
|
31
31
|
endColumnNumber: 1,
|
|
32
|
-
severity
|
|
32
|
+
severity
|
|
33
33
|
}
|
|
34
34
|
];
|
|
35
35
|
};
|
|
@@ -38,9 +38,9 @@ var test = function (value, lineNumber, config, options) {
|
|
|
38
38
|
*/
|
|
39
39
|
exports.maxLineLength = {
|
|
40
40
|
type: LintRuleType_1.LintRuleType.Line,
|
|
41
|
-
name
|
|
42
|
-
description
|
|
43
|
-
message
|
|
44
|
-
test
|
|
41
|
+
name,
|
|
42
|
+
description,
|
|
43
|
+
message,
|
|
44
|
+
test
|
|
45
45
|
};
|
|
46
46
|
//# sourceMappingURL=maxLineLength.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"maxLineLength.js","sourceRoot":"","sources":["../../../src/rules/line/maxLineLength.ts"],"names":[],"mappings":";;;AAEA,
|
|
1
|
+
{"version":3,"file":"maxLineLength.js","sourceRoot":"","sources":["../../../src/rules/line/maxLineLength.ts"],"names":[],"mappings":";;;AAEA,2DAAuD;AACvD,mDAA+C;AAC/C,uCAAsD;AAEtD,MAAM,IAAI,GAAG,eAAe,CAAA;AAC5B,MAAM,WAAW,GAAG,yCAAyC,CAAA;AAC7D,MAAM,OAAO,GAAG,6BAA6B,CAAA;AAE7C,MAAM,IAAI,GAAG,CACX,KAAa,EACb,UAAkB,EAClB,MAAmB,EACnB,OAA6B,EAC7B,EAAE;IACF,MAAM,QAAQ,GAAG,CAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,aAAa,CAAC,IAAI,CAAC,KAAI,mBAAQ,CAAC,OAAO,CAAA;IAChE,IAAI,aAAa,GAAG,gCAAwB,CAAC,aAAa,CAAA;IAE1D,IAAI,MAAM,EAAE;QACV,IAAI,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,YAAY,EAAE;YACzB,aAAa,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,aAAa,EAAE,MAAM,CAAC,mBAAmB,CAAC,CAAA;SAC3E;aAAM,IAAI,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,UAAU,EAAE;YAC9B,aAAa,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,aAAa,EAAE,MAAM,CAAC,iBAAiB,CAAC,CAAA;SACzE;aAAM;YACL,aAAa,GAAG,MAAM,CAAC,aAAa,CAAA;SACrC;KACF;IAED,IAAI,KAAK,CAAC,MAAM,IAAI,aAAa;QAAE,OAAO,EAAE,CAAA;IAC5C,OAAO;QACL;YACE,OAAO,EAAE,GAAG,OAAO,OAAO,KAAK,CAAC,MAAM,GAAG,aAAa,aAAa;YACnE,UAAU;YACV,iBAAiB,EAAE,CAAC;YACpB,eAAe,EAAE,CAAC;YAClB,QAAQ;SACT;KACF,CAAA;AACH,CAAC,CAAA;AAED;;GAEG;AACU,QAAA,aAAa,GAAiB;IACzC,IAAI,EAAE,2BAAY,CAAC,IAAI;IACvB,IAAI;IACJ,WAAW;IACX,OAAO;IACP,IAAI;CACL,CAAA"}
|
|
@@ -1,33 +1,33 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.noEncodedPasswords = void 0;
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
4
|
+
const LintRuleType_1 = require("../../types/LintRuleType");
|
|
5
|
+
const Severity_1 = require("../../types/Severity");
|
|
6
|
+
const name = 'noEncodedPasswords';
|
|
7
|
+
const description = 'Disallow encoded passwords in SAS code.';
|
|
8
|
+
const message = 'Line contains encoded password';
|
|
9
|
+
const test = (value, lineNumber, config) => {
|
|
10
|
+
const severity = (config === null || config === void 0 ? void 0 : config.severityLevel[name]) || Severity_1.Severity.Error;
|
|
11
|
+
const regex = new RegExp(/{sas(\d{2,4}|enc)}[^;"'\s]*/, 'gi');
|
|
12
|
+
const matches = value.match(regex);
|
|
13
13
|
if (!matches || !matches.length)
|
|
14
14
|
return [];
|
|
15
|
-
return matches.map(
|
|
16
|
-
message
|
|
17
|
-
lineNumber
|
|
15
|
+
return matches.map((match) => ({
|
|
16
|
+
message,
|
|
17
|
+
lineNumber,
|
|
18
18
|
startColumnNumber: value.indexOf(match) + 1,
|
|
19
19
|
endColumnNumber: value.indexOf(match) + match.length + 1,
|
|
20
|
-
severity
|
|
21
|
-
})
|
|
20
|
+
severity
|
|
21
|
+
}));
|
|
22
22
|
};
|
|
23
23
|
/**
|
|
24
24
|
* Lint rule that checks for the presence of encoded password(s) in a given line of text.
|
|
25
25
|
*/
|
|
26
26
|
exports.noEncodedPasswords = {
|
|
27
27
|
type: LintRuleType_1.LintRuleType.Line,
|
|
28
|
-
name
|
|
29
|
-
description
|
|
30
|
-
message
|
|
31
|
-
test
|
|
28
|
+
name,
|
|
29
|
+
description,
|
|
30
|
+
message,
|
|
31
|
+
test
|
|
32
32
|
};
|
|
33
33
|
//# sourceMappingURL=noEncodedPasswords.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"noEncodedPasswords.js","sourceRoot":"","sources":["../../../src/rules/line/noEncodedPasswords.ts"],"names":[],"mappings":";;;AAEA,
|
|
1
|
+
{"version":3,"file":"noEncodedPasswords.js","sourceRoot":"","sources":["../../../src/rules/line/noEncodedPasswords.ts"],"names":[],"mappings":";;;AAEA,2DAAuD;AACvD,mDAA+C;AAE/C,MAAM,IAAI,GAAG,oBAAoB,CAAA;AACjC,MAAM,WAAW,GAAG,yCAAyC,CAAA;AAC7D,MAAM,OAAO,GAAG,gCAAgC,CAAA;AAEhD,MAAM,IAAI,GAAG,CAAC,KAAa,EAAE,UAAkB,EAAE,MAAmB,EAAE,EAAE;IACtE,MAAM,QAAQ,GAAG,CAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,aAAa,CAAC,IAAI,CAAC,KAAI,mBAAQ,CAAC,KAAK,CAAA;IAC9D,MAAM,KAAK,GAAG,IAAI,MAAM,CAAC,6BAA6B,EAAE,IAAI,CAAC,CAAA;IAC7D,MAAM,OAAO,GAAG,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,CAAA;IAClC,IAAI,CAAC,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM;QAAE,OAAO,EAAE,CAAA;IAC1C,OAAO,OAAO,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;QAC7B,OAAO;QACP,UAAU;QACV,iBAAiB,EAAE,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC;QAC3C,eAAe,EAAE,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC;QACxD,QAAQ;KACT,CAAC,CAAC,CAAA;AACL,CAAC,CAAA;AAED;;GAEG;AACU,QAAA,kBAAkB,GAAiB;IAC9C,IAAI,EAAE,2BAAY,CAAC,IAAI;IACvB,IAAI;IACJ,WAAW;IACX,OAAO;IACP,IAAI;CACL,CAAA"}
|
package/rules/line/noGremlins.js
CHANGED
|
@@ -1,75 +1,37 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var __values = (this && this.__values) || function(o) {
|
|
3
|
-
var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0;
|
|
4
|
-
if (m) return m.call(o);
|
|
5
|
-
if (o && typeof o.length === "number") return {
|
|
6
|
-
next: function () {
|
|
7
|
-
if (o && i >= o.length) o = void 0;
|
|
8
|
-
return { value: o && o[i++], done: !o };
|
|
9
|
-
}
|
|
10
|
-
};
|
|
11
|
-
throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined.");
|
|
12
|
-
};
|
|
13
|
-
var __read = (this && this.__read) || function (o, n) {
|
|
14
|
-
var m = typeof Symbol === "function" && o[Symbol.iterator];
|
|
15
|
-
if (!m) return o;
|
|
16
|
-
var i = m.call(o), r, ar = [], e;
|
|
17
|
-
try {
|
|
18
|
-
while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
|
|
19
|
-
}
|
|
20
|
-
catch (error) { e = { error: error }; }
|
|
21
|
-
finally {
|
|
22
|
-
try {
|
|
23
|
-
if (r && !r.done && (m = i["return"])) m.call(i);
|
|
24
|
-
}
|
|
25
|
-
finally { if (e) throw e.error; }
|
|
26
|
-
}
|
|
27
|
-
return ar;
|
|
28
|
-
};
|
|
29
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
30
3
|
exports.charFromHex = exports.noGremlins = void 0;
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
gremlins[exports.charFromHex(hexCode)] = Object.assign({}, gremlinConfig, {
|
|
48
|
-
hexCode: hexCode
|
|
49
|
-
});
|
|
50
|
-
}
|
|
51
|
-
}
|
|
52
|
-
}
|
|
53
|
-
catch (e_1_1) { e_1 = { error: e_1_1 }; }
|
|
54
|
-
finally {
|
|
55
|
-
try {
|
|
56
|
-
if (_c && !_c.done && (_a = _b.return)) _a.call(_b);
|
|
4
|
+
const LintRuleType_1 = require("../../types/LintRuleType");
|
|
5
|
+
const Severity_1 = require("../../types/Severity");
|
|
6
|
+
const utils_1 = require("../../utils");
|
|
7
|
+
const name = 'noGremlins';
|
|
8
|
+
const description = 'Disallow characters specified in gremlins array';
|
|
9
|
+
const message = 'Line contains a gremlin';
|
|
10
|
+
const test = (value, lineNumber, config) => {
|
|
11
|
+
const severity = (config === null || config === void 0 ? void 0 : config.severityLevel[name]) || Severity_1.Severity.Warning;
|
|
12
|
+
const allowedGremlins = (config === null || config === void 0 ? void 0 : config.allowedGremlins) || [];
|
|
13
|
+
const diagnostics = [];
|
|
14
|
+
const gremlins = {};
|
|
15
|
+
for (const [hexCode, gremlinConfig] of Object.entries(utils_1.gremlinCharacters)) {
|
|
16
|
+
if (!allowedGremlins.includes(hexCode)) {
|
|
17
|
+
gremlins[(0, exports.charFromHex)(hexCode)] = Object.assign({}, gremlinConfig, {
|
|
18
|
+
hexCode
|
|
19
|
+
});
|
|
57
20
|
}
|
|
58
|
-
finally { if (e_1) throw e_1.error; }
|
|
59
21
|
}
|
|
60
|
-
|
|
61
|
-
.map(
|
|
22
|
+
const regexpWithAllChars = new RegExp(Object.keys(gremlins)
|
|
23
|
+
.map((char) => `${char}+`)
|
|
62
24
|
.join('|'), 'g');
|
|
63
|
-
|
|
25
|
+
let match;
|
|
64
26
|
while ((match = regexpWithAllChars.exec(value))) {
|
|
65
|
-
|
|
66
|
-
|
|
27
|
+
const matchedCharacter = match[0][0];
|
|
28
|
+
const gremlin = gremlins[matchedCharacter];
|
|
67
29
|
diagnostics.push({
|
|
68
|
-
message: message
|
|
69
|
-
lineNumber
|
|
30
|
+
message: `${message}: ${gremlin.description}, hexCode(${gremlin.hexCode})`,
|
|
31
|
+
lineNumber,
|
|
70
32
|
startColumnNumber: match.index + 1,
|
|
71
33
|
endColumnNumber: match.index + 1 + match[0].length,
|
|
72
|
-
severity
|
|
34
|
+
severity
|
|
73
35
|
});
|
|
74
36
|
}
|
|
75
37
|
return diagnostics;
|
|
@@ -79,13 +41,11 @@ var test = function (value, lineNumber, config) {
|
|
|
79
41
|
*/
|
|
80
42
|
exports.noGremlins = {
|
|
81
43
|
type: LintRuleType_1.LintRuleType.Line,
|
|
82
|
-
name
|
|
83
|
-
description
|
|
84
|
-
message
|
|
85
|
-
test
|
|
86
|
-
};
|
|
87
|
-
var charFromHex = function (hexCode) {
|
|
88
|
-
return String.fromCodePoint(parseInt(hexCode));
|
|
44
|
+
name,
|
|
45
|
+
description,
|
|
46
|
+
message,
|
|
47
|
+
test
|
|
89
48
|
};
|
|
49
|
+
const charFromHex = (hexCode) => String.fromCodePoint(parseInt(hexCode));
|
|
90
50
|
exports.charFromHex = charFromHex;
|
|
91
51
|
//# sourceMappingURL=noGremlins.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"noGremlins.js","sourceRoot":"","sources":["../../../src/rules/line/noGremlins.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"noGremlins.js","sourceRoot":"","sources":["../../../src/rules/line/noGremlins.ts"],"names":[],"mappings":";;;AAEA,2DAAuD;AACvD,mDAA+C;AAC/C,uCAA+C;AAE/C,MAAM,IAAI,GAAG,YAAY,CAAA;AACzB,MAAM,WAAW,GAAG,iDAAiD,CAAA;AACrE,MAAM,OAAO,GAAG,yBAAyB,CAAA;AAEzC,MAAM,IAAI,GAAG,CAAC,KAAa,EAAE,UAAkB,EAAE,MAAmB,EAAE,EAAE;IACtE,MAAM,QAAQ,GAAG,CAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,aAAa,CAAC,IAAI,CAAC,KAAI,mBAAQ,CAAC,OAAO,CAAA;IAChE,MAAM,eAAe,GAAG,CAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,eAAe,KAAI,EAAE,CAAA;IAErD,MAAM,WAAW,GAAiB,EAAE,CAAA;IAEpC,MAAM,QAAQ,GAAQ,EAAE,CAAA;IAExB,KAAK,MAAM,CAAC,OAAO,EAAE,aAAa,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,yBAAiB,CAAC,EAAE;QACxE,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE;YACtC,QAAQ,CAAC,IAAA,mBAAW,EAAC,OAAO,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,aAAa,EAAE;gBAChE,OAAO;aACR,CAAC,CAAA;SACH;KACF;IAED,MAAM,kBAAkB,GAAG,IAAI,MAAM,CACnC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC;SAClB,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,IAAI,GAAG,CAAC;SACzB,IAAI,CAAC,GAAG,CAAC,EACZ,GAAG,CACJ,CAAA;IAED,IAAI,KAAK,CAAA;IACT,OAAO,CAAC,KAAK,GAAG,kBAAkB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE;QAC/C,MAAM,gBAAgB,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;QACpC,MAAM,OAAO,GAAG,QAAQ,CAAC,gBAAgB,CAAC,CAAA;QAE1C,WAAW,CAAC,IAAI,CAAC;YACf,OAAO,EAAE,GAAG,OAAO,KAAK,OAAO,CAAC,WAAW,aAAa,OAAO,CAAC,OAAO,GAAG;YAC1E,UAAU;YACV,iBAAiB,EAAE,KAAK,CAAC,KAAK,GAAG,CAAC;YAClC,eAAe,EAAE,KAAK,CAAC,KAAK,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM;YAClD,QAAQ;SACT,CAAC,CAAA;KACH;IAED,OAAO,WAAW,CAAA;AACpB,CAAC,CAAA;AAED;;GAEG;AACU,QAAA,UAAU,GAAiB;IACtC,IAAI,EAAE,2BAAY,CAAC,IAAI;IACvB,IAAI;IACJ,WAAW;IACX,OAAO;IACP,IAAI;CACL,CAAA;AAEM,MAAM,WAAW,GAAG,CAAC,OAAe,EAAE,EAAE,CAC7C,MAAM,CAAC,aAAa,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAA;AAD5B,QAAA,WAAW,eACiB"}
|
package/rules/line/noTabs.js
CHANGED
|
@@ -1,34 +1,34 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.noTabs = void 0;
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
4
|
+
const LintRuleType_1 = require("../../types/LintRuleType");
|
|
5
|
+
const Severity_1 = require("../../types/Severity");
|
|
6
|
+
const utils_1 = require("../../utils");
|
|
7
|
+
const name = 'noTabs';
|
|
8
|
+
const alias = 'noTabIndentation';
|
|
9
|
+
const description = 'Disallow indenting with tabs.';
|
|
10
|
+
const message = 'Line contains a tab character (09x)';
|
|
11
|
+
const test = (value, lineNumber, config) => {
|
|
12
|
+
const severity = (config === null || config === void 0 ? void 0 : config.severityLevel[name]) ||
|
|
13
13
|
(config === null || config === void 0 ? void 0 : config.severityLevel[alias]) ||
|
|
14
14
|
Severity_1.Severity.Warning;
|
|
15
|
-
|
|
16
|
-
return indices.map(
|
|
17
|
-
message
|
|
18
|
-
lineNumber
|
|
15
|
+
const indices = (0, utils_1.getIndicesOf)('\t', value);
|
|
16
|
+
return indices.map((index) => ({
|
|
17
|
+
message,
|
|
18
|
+
lineNumber,
|
|
19
19
|
startColumnNumber: index + 1,
|
|
20
20
|
endColumnNumber: index + 2,
|
|
21
|
-
severity
|
|
22
|
-
})
|
|
21
|
+
severity
|
|
22
|
+
}));
|
|
23
23
|
};
|
|
24
24
|
/**
|
|
25
25
|
* Lint rule that checks if a given line of text is indented with a tab.
|
|
26
26
|
*/
|
|
27
27
|
exports.noTabs = {
|
|
28
28
|
type: LintRuleType_1.LintRuleType.Line,
|
|
29
|
-
name
|
|
30
|
-
description
|
|
31
|
-
message
|
|
32
|
-
test
|
|
29
|
+
name,
|
|
30
|
+
description,
|
|
31
|
+
message,
|
|
32
|
+
test
|
|
33
33
|
};
|
|
34
34
|
//# sourceMappingURL=noTabs.js.map
|
package/rules/line/noTabs.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"noTabs.js","sourceRoot":"","sources":["../../../src/rules/line/noTabs.ts"],"names":[],"mappings":";;;AAEA,
|
|
1
|
+
{"version":3,"file":"noTabs.js","sourceRoot":"","sources":["../../../src/rules/line/noTabs.ts"],"names":[],"mappings":";;;AAEA,2DAAuD;AACvD,mDAA+C;AAC/C,uCAA0C;AAE1C,MAAM,IAAI,GAAG,QAAQ,CAAA;AACrB,MAAM,KAAK,GAAG,kBAAkB,CAAA;AAChC,MAAM,WAAW,GAAG,+BAA+B,CAAA;AACnD,MAAM,OAAO,GAAG,qCAAqC,CAAA;AAErD,MAAM,IAAI,GAAG,CAAC,KAAa,EAAE,UAAkB,EAAE,MAAmB,EAAE,EAAE;IACtE,MAAM,QAAQ,GACZ,CAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,aAAa,CAAC,IAAI,CAAC;SAC3B,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,aAAa,CAAC,KAAK,CAAC,CAAA;QAC5B,mBAAQ,CAAC,OAAO,CAAA;IAElB,MAAM,OAAO,GAAG,IAAA,oBAAY,EAAC,IAAI,EAAE,KAAK,CAAC,CAAA;IAEzC,OAAO,OAAO,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;QAC7B,OAAO;QACP,UAAU;QACV,iBAAiB,EAAE,KAAK,GAAG,CAAC;QAC5B,eAAe,EAAE,KAAK,GAAG,CAAC;QAC1B,QAAQ;KACT,CAAC,CAAC,CAAA;AACL,CAAC,CAAA;AAED;;GAEG;AACU,QAAA,MAAM,GAAiB;IAClC,IAAI,EAAE,2BAAY,CAAC,IAAI;IACvB,IAAI;IACJ,WAAW;IACX,OAAO;IACP,IAAI;CACL,CAAA"}
|
|
@@ -1,35 +1,35 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.noTrailingSpaces = void 0;
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
4
|
+
const LintRuleType_1 = require("../../types/LintRuleType");
|
|
5
|
+
const Severity_1 = require("../../types/Severity");
|
|
6
|
+
const name = 'noTrailingSpaces';
|
|
7
|
+
const description = 'Disallow trailing spaces on lines.';
|
|
8
|
+
const message = 'Line contains trailing spaces';
|
|
9
|
+
const test = (value, lineNumber, config) => {
|
|
10
|
+
const severity = (config === null || config === void 0 ? void 0 : config.severityLevel[name]) || Severity_1.Severity.Warning;
|
|
11
11
|
return value.trimEnd() === value
|
|
12
12
|
? []
|
|
13
13
|
: [
|
|
14
14
|
{
|
|
15
|
-
message
|
|
16
|
-
lineNumber
|
|
15
|
+
message,
|
|
16
|
+
lineNumber,
|
|
17
17
|
startColumnNumber: value.trimEnd().length + 1,
|
|
18
18
|
endColumnNumber: value.length,
|
|
19
|
-
severity
|
|
19
|
+
severity
|
|
20
20
|
}
|
|
21
21
|
];
|
|
22
22
|
};
|
|
23
|
-
|
|
23
|
+
const fix = (value) => value.trimEnd();
|
|
24
24
|
/**
|
|
25
25
|
* Lint rule that checks for the presence of trailing space(s) in a given line of text.
|
|
26
26
|
*/
|
|
27
27
|
exports.noTrailingSpaces = {
|
|
28
28
|
type: LintRuleType_1.LintRuleType.Line,
|
|
29
|
-
name
|
|
30
|
-
description
|
|
31
|
-
message
|
|
32
|
-
test
|
|
33
|
-
fix
|
|
29
|
+
name,
|
|
30
|
+
description,
|
|
31
|
+
message,
|
|
32
|
+
test,
|
|
33
|
+
fix
|
|
34
34
|
};
|
|
35
35
|
//# sourceMappingURL=noTrailingSpaces.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"noTrailingSpaces.js","sourceRoot":"","sources":["../../../src/rules/line/noTrailingSpaces.ts"],"names":[],"mappings":";;;AAEA,
|
|
1
|
+
{"version":3,"file":"noTrailingSpaces.js","sourceRoot":"","sources":["../../../src/rules/line/noTrailingSpaces.ts"],"names":[],"mappings":";;;AAEA,2DAAuD;AACvD,mDAA+C;AAE/C,MAAM,IAAI,GAAG,kBAAkB,CAAA;AAC/B,MAAM,WAAW,GAAG,oCAAoC,CAAA;AACxD,MAAM,OAAO,GAAG,+BAA+B,CAAA;AAE/C,MAAM,IAAI,GAAG,CAAC,KAAa,EAAE,UAAkB,EAAE,MAAmB,EAAE,EAAE;IACtE,MAAM,QAAQ,GAAG,CAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,aAAa,CAAC,IAAI,CAAC,KAAI,mBAAQ,CAAC,OAAO,CAAA;IAEhE,OAAO,KAAK,CAAC,OAAO,EAAE,KAAK,KAAK;QAC9B,CAAC,CAAC,EAAE;QACJ,CAAC,CAAC;YACE;gBACE,OAAO;gBACP,UAAU;gBACV,iBAAiB,EAAE,KAAK,CAAC,OAAO,EAAE,CAAC,MAAM,GAAG,CAAC;gBAC7C,eAAe,EAAE,KAAK,CAAC,MAAM;gBAC7B,QAAQ;aACT;SACF,CAAA;AACP,CAAC,CAAA;AAED,MAAM,GAAG,GAAG,CAAC,KAAa,EAAE,EAAE,CAAC,KAAK,CAAC,OAAO,EAAE,CAAA;AAE9C;;GAEG;AACU,QAAA,gBAAgB,GAAiB;IAC5C,IAAI,EAAE,2BAAY,CAAC,IAAI;IACvB,IAAI;IACJ,WAAW;IACX,OAAO;IACP,IAAI;IACJ,GAAG;CACJ,CAAA"}
|
|
@@ -4,24 +4,24 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
exports.lowerCaseFileNames = void 0;
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
7
|
+
const LintRuleType_1 = require("../../types/LintRuleType");
|
|
8
|
+
const Severity_1 = require("../../types/Severity");
|
|
9
|
+
const path_1 = __importDefault(require("path"));
|
|
10
|
+
const name = 'lowerCaseFileNames';
|
|
11
|
+
const description = 'Enforce the use of lower case file names.';
|
|
12
|
+
const message = 'File name contains uppercase characters';
|
|
13
|
+
const test = (value, config) => {
|
|
14
|
+
const severity = (config === null || config === void 0 ? void 0 : config.severityLevel[name]) || Severity_1.Severity.Warning;
|
|
15
|
+
const fileName = path_1.default.basename(value);
|
|
16
16
|
if (fileName.toLocaleLowerCase() === fileName)
|
|
17
17
|
return [];
|
|
18
18
|
return [
|
|
19
19
|
{
|
|
20
|
-
message
|
|
20
|
+
message,
|
|
21
21
|
lineNumber: 1,
|
|
22
22
|
startColumnNumber: 1,
|
|
23
23
|
endColumnNumber: 1,
|
|
24
|
-
severity
|
|
24
|
+
severity
|
|
25
25
|
}
|
|
26
26
|
];
|
|
27
27
|
};
|
|
@@ -30,9 +30,9 @@ var test = function (value, config) {
|
|
|
30
30
|
*/
|
|
31
31
|
exports.lowerCaseFileNames = {
|
|
32
32
|
type: LintRuleType_1.LintRuleType.Path,
|
|
33
|
-
name
|
|
34
|
-
description
|
|
35
|
-
message
|
|
36
|
-
test
|
|
33
|
+
name,
|
|
34
|
+
description,
|
|
35
|
+
message,
|
|
36
|
+
test
|
|
37
37
|
};
|
|
38
38
|
//# sourceMappingURL=lowerCaseFileNames.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lowerCaseFileNames.js","sourceRoot":"","sources":["../../../src/rules/path/lowerCaseFileNames.ts"],"names":[],"mappings":";;;;;;AACA,
|
|
1
|
+
{"version":3,"file":"lowerCaseFileNames.js","sourceRoot":"","sources":["../../../src/rules/path/lowerCaseFileNames.ts"],"names":[],"mappings":";;;;;;AACA,2DAAuD;AACvD,mDAA+C;AAC/C,gDAAuB;AAGvB,MAAM,IAAI,GAAG,oBAAoB,CAAA;AACjC,MAAM,WAAW,GAAG,2CAA2C,CAAA;AAC/D,MAAM,OAAO,GAAG,yCAAyC,CAAA;AAEzD,MAAM,IAAI,GAAG,CAAC,KAAa,EAAE,MAAmB,EAAE,EAAE;IAClD,MAAM,QAAQ,GAAG,CAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,aAAa,CAAC,IAAI,CAAC,KAAI,mBAAQ,CAAC,OAAO,CAAA;IAChE,MAAM,QAAQ,GAAG,cAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAA;IAErC,IAAI,QAAQ,CAAC,iBAAiB,EAAE,KAAK,QAAQ;QAAE,OAAO,EAAE,CAAA;IAExD,OAAO;QACL;YACE,OAAO;YACP,UAAU,EAAE,CAAC;YACb,iBAAiB,EAAE,CAAC;YACpB,eAAe,EAAE,CAAC;YAClB,QAAQ;SACT;KACF,CAAA;AACH,CAAC,CAAA;AAED;;GAEG;AACU,QAAA,kBAAkB,GAAiB;IAC9C,IAAI,EAAE,2BAAY,CAAC,IAAI;IACvB,IAAI;IACJ,WAAW;IACX,OAAO;IACP,IAAI;CACL,CAAA"}
|
|
@@ -4,23 +4,23 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
exports.noSpacesInFileNames = void 0;
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
7
|
+
const LintRuleType_1 = require("../../types/LintRuleType");
|
|
8
|
+
const Severity_1 = require("../../types/Severity");
|
|
9
|
+
const path_1 = __importDefault(require("path"));
|
|
10
|
+
const name = 'noSpacesInFileNames';
|
|
11
|
+
const description = 'Enforce the absence of spaces within file names.';
|
|
12
|
+
const message = 'File name contains spaces';
|
|
13
|
+
const test = (value, config) => {
|
|
14
|
+
const severity = (config === null || config === void 0 ? void 0 : config.severityLevel[name]) || Severity_1.Severity.Warning;
|
|
15
|
+
const fileName = path_1.default.basename(value);
|
|
16
16
|
if (fileName.includes(' ')) {
|
|
17
17
|
return [
|
|
18
18
|
{
|
|
19
|
-
message
|
|
19
|
+
message,
|
|
20
20
|
lineNumber: 1,
|
|
21
21
|
startColumnNumber: 1,
|
|
22
22
|
endColumnNumber: 1,
|
|
23
|
-
severity
|
|
23
|
+
severity
|
|
24
24
|
}
|
|
25
25
|
];
|
|
26
26
|
}
|
|
@@ -31,9 +31,9 @@ var test = function (value, config) {
|
|
|
31
31
|
*/
|
|
32
32
|
exports.noSpacesInFileNames = {
|
|
33
33
|
type: LintRuleType_1.LintRuleType.Path,
|
|
34
|
-
name
|
|
35
|
-
description
|
|
36
|
-
message
|
|
37
|
-
test
|
|
34
|
+
name,
|
|
35
|
+
description,
|
|
36
|
+
message,
|
|
37
|
+
test
|
|
38
38
|
};
|
|
39
39
|
//# sourceMappingURL=noSpacesInFileNames.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"noSpacesInFileNames.js","sourceRoot":"","sources":["../../../src/rules/path/noSpacesInFileNames.ts"],"names":[],"mappings":";;;;;;AACA,
|
|
1
|
+
{"version":3,"file":"noSpacesInFileNames.js","sourceRoot":"","sources":["../../../src/rules/path/noSpacesInFileNames.ts"],"names":[],"mappings":";;;;;;AACA,2DAAuD;AACvD,mDAA+C;AAC/C,gDAAuB;AAGvB,MAAM,IAAI,GAAG,qBAAqB,CAAA;AAClC,MAAM,WAAW,GAAG,kDAAkD,CAAA;AACtE,MAAM,OAAO,GAAG,2BAA2B,CAAA;AAE3C,MAAM,IAAI,GAAG,CAAC,KAAa,EAAE,MAAmB,EAAE,EAAE;IAClD,MAAM,QAAQ,GAAG,CAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,aAAa,CAAC,IAAI,CAAC,KAAI,mBAAQ,CAAC,OAAO,CAAA;IAChE,MAAM,QAAQ,GAAG,cAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAA;IAErC,IAAI,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE;QAC1B,OAAO;YACL;gBACE,OAAO;gBACP,UAAU,EAAE,CAAC;gBACb,iBAAiB,EAAE,CAAC;gBACpB,eAAe,EAAE,CAAC;gBAClB,QAAQ;aACT;SACF,CAAA;KACF;IACD,OAAO,EAAE,CAAA;AACX,CAAC,CAAA;AAED;;GAEG;AACU,QAAA,mBAAmB,GAAiB;IAC/C,IAAI,EAAE,2BAAY,CAAC,IAAI;IACvB,IAAI;IACJ,WAAW;IACX,OAAO;IACP,IAAI;CACL,CAAA"}
|