@sasjs/lint 2.4.1 → 2.4.3
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/.github/dependabot.yml +1 -1
- package/.github/reviewer-lottery.yml +0 -2
- package/.github/workflows/assign-reviewer.yml +2 -2
- package/.github/workflows/build.yml +2 -0
- package/.github/workflows/publish.yml +2 -0
- 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 -5
- 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,24 +1,24 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.lineEndings = void 0;
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
4
|
+
const LineEndings_1 = require("../../types/LineEndings");
|
|
5
|
+
const LintRuleType_1 = require("../../types/LintRuleType");
|
|
6
|
+
const Severity_1 = require("../../types/Severity");
|
|
7
|
+
const name = 'lineEndings';
|
|
8
|
+
const description = 'Ensures line endings conform to the configured type.';
|
|
9
|
+
const message = 'Incorrect line ending - {actual} instead of {expected}';
|
|
10
|
+
const test = (value, config) => {
|
|
11
|
+
const lineEndingConfig = (config === null || config === void 0 ? void 0 : config.lineEndings) || LineEndings_1.LineEndings.LF;
|
|
12
|
+
const expectedLineEnding = lineEndingConfig === LineEndings_1.LineEndings.LF ? '{lf}' : '{crlf}';
|
|
13
|
+
const incorrectLineEnding = expectedLineEnding === '{lf}' ? '{crlf}' : '{lf}';
|
|
14
|
+
const lines = value
|
|
15
15
|
.replace(/\r\n/g, '{crlf}')
|
|
16
16
|
.replace(/\n/g, '{lf}')
|
|
17
|
-
.split(new RegExp(
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
lines.forEach(
|
|
17
|
+
.split(new RegExp(`(?<=${expectedLineEnding})`));
|
|
18
|
+
const diagnostics = [];
|
|
19
|
+
const severity = (config === null || config === void 0 ? void 0 : config.severityLevel[name]) || Severity_1.Severity.Warning;
|
|
20
|
+
let indexOffset = 0;
|
|
21
|
+
lines.forEach((line, index) => {
|
|
22
22
|
if (line.endsWith(incorrectLineEnding)) {
|
|
23
23
|
diagnostics.push({
|
|
24
24
|
message: message
|
|
@@ -27,15 +27,15 @@ var test = function (value, config) {
|
|
|
27
27
|
lineNumber: index + 1 + indexOffset,
|
|
28
28
|
startColumnNumber: line.indexOf(incorrectLineEnding),
|
|
29
29
|
endColumnNumber: line.indexOf(incorrectLineEnding) + 1,
|
|
30
|
-
severity
|
|
30
|
+
severity
|
|
31
31
|
});
|
|
32
32
|
}
|
|
33
33
|
else {
|
|
34
|
-
|
|
34
|
+
const splitLine = line.split(new RegExp(`(?<=${incorrectLineEnding})`));
|
|
35
35
|
if (splitLine.length > 1) {
|
|
36
36
|
indexOffset += splitLine.length - 1;
|
|
37
37
|
}
|
|
38
|
-
splitLine.forEach(
|
|
38
|
+
splitLine.forEach((l, i) => {
|
|
39
39
|
if (l.endsWith(incorrectLineEnding)) {
|
|
40
40
|
diagnostics.push({
|
|
41
41
|
message: message
|
|
@@ -44,7 +44,7 @@ var test = function (value, config) {
|
|
|
44
44
|
lineNumber: index + i + 1,
|
|
45
45
|
startColumnNumber: l.indexOf(incorrectLineEnding),
|
|
46
46
|
endColumnNumber: l.indexOf(incorrectLineEnding) + 1,
|
|
47
|
-
severity
|
|
47
|
+
severity
|
|
48
48
|
});
|
|
49
49
|
}
|
|
50
50
|
});
|
|
@@ -52,8 +52,8 @@ var test = function (value, config) {
|
|
|
52
52
|
});
|
|
53
53
|
return diagnostics;
|
|
54
54
|
};
|
|
55
|
-
|
|
56
|
-
|
|
55
|
+
const fix = (value, config) => {
|
|
56
|
+
const lineEndingConfig = (config === null || config === void 0 ? void 0 : config.lineEndings) || LineEndings_1.LineEndings.LF;
|
|
57
57
|
return value
|
|
58
58
|
.replace(/\r\n/g, '{crlf}')
|
|
59
59
|
.replace(/\n/g, '{lf}')
|
|
@@ -65,10 +65,10 @@ var fix = function (value, config) {
|
|
|
65
65
|
*/
|
|
66
66
|
exports.lineEndings = {
|
|
67
67
|
type: LintRuleType_1.LintRuleType.File,
|
|
68
|
-
name
|
|
69
|
-
description
|
|
70
|
-
message
|
|
71
|
-
test
|
|
72
|
-
fix
|
|
68
|
+
name,
|
|
69
|
+
description,
|
|
70
|
+
message,
|
|
71
|
+
test,
|
|
72
|
+
fix
|
|
73
73
|
};
|
|
74
74
|
//# sourceMappingURL=lineEndings.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lineEndings.js","sourceRoot":"","sources":["../../../src/rules/file/lineEndings.ts"],"names":[],"mappings":";;;AACA,
|
|
1
|
+
{"version":3,"file":"lineEndings.js","sourceRoot":"","sources":["../../../src/rules/file/lineEndings.ts"],"names":[],"mappings":";;;AACA,yDAAqD;AAErD,2DAAuD;AACvD,mDAA+C;AAE/C,MAAM,IAAI,GAAG,aAAa,CAAA;AAC1B,MAAM,WAAW,GAAG,sDAAsD,CAAA;AAC1E,MAAM,OAAO,GAAG,wDAAwD,CAAA;AAExE,MAAM,IAAI,GAAG,CAAC,KAAa,EAAE,MAAmB,EAAE,EAAE;IAClD,MAAM,gBAAgB,GAAG,CAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,WAAW,KAAI,yBAAW,CAAC,EAAE,CAAA;IAC9D,MAAM,kBAAkB,GACtB,gBAAgB,KAAK,yBAAW,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAA;IACzD,MAAM,mBAAmB,GAAG,kBAAkB,KAAK,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAA;IAE7E,MAAM,KAAK,GAAG,KAAK;SAChB,OAAO,CAAC,OAAO,EAAE,QAAQ,CAAC;SAC1B,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC;SACtB,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,kBAAkB,GAAG,CAAC,CAAC,CAAA;IAClD,MAAM,WAAW,GAAiB,EAAE,CAAA;IACpC,MAAM,QAAQ,GAAG,CAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,aAAa,CAAC,IAAI,CAAC,KAAI,mBAAQ,CAAC,OAAO,CAAA;IAEhE,IAAI,WAAW,GAAG,CAAC,CAAA;IAEnB,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE;QAC5B,IAAI,IAAI,CAAC,QAAQ,CAAC,mBAAmB,CAAC,EAAE;YACtC,WAAW,CAAC,IAAI,CAAC;gBACf,OAAO,EAAE,OAAO;qBACb,OAAO,CAAC,YAAY,EAAE,kBAAkB,KAAK,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC;qBACpE,OAAO,CAAC,UAAU,EAAE,mBAAmB,KAAK,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC;gBACtE,UAAU,EAAE,KAAK,GAAG,CAAC,GAAG,WAAW;gBACnC,iBAAiB,EAAE,IAAI,CAAC,OAAO,CAAC,mBAAmB,CAAC;gBACpD,eAAe,EAAE,IAAI,CAAC,OAAO,CAAC,mBAAmB,CAAC,GAAG,CAAC;gBACtD,QAAQ;aACT,CAAC,CAAA;SACH;aAAM;YACL,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,mBAAmB,GAAG,CAAC,CAAC,CAAA;YACvE,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE;gBACxB,WAAW,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,CAAA;aACpC;YACD,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;gBACzB,IAAI,CAAC,CAAC,QAAQ,CAAC,mBAAmB,CAAC,EAAE;oBACnC,WAAW,CAAC,IAAI,CAAC;wBACf,OAAO,EAAE,OAAO;6BACb,OAAO,CACN,YAAY,EACZ,kBAAkB,KAAK,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAC9C;6BACA,OAAO,CACN,UAAU,EACV,mBAAmB,KAAK,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAC/C;wBACH,UAAU,EAAE,KAAK,GAAG,CAAC,GAAG,CAAC;wBACzB,iBAAiB,EAAE,CAAC,CAAC,OAAO,CAAC,mBAAmB,CAAC;wBACjD,eAAe,EAAE,CAAC,CAAC,OAAO,CAAC,mBAAmB,CAAC,GAAG,CAAC;wBACnD,QAAQ;qBACT,CAAC,CAAA;iBACH;YACH,CAAC,CAAC,CAAA;SACH;IACH,CAAC,CAAC,CAAA;IACF,OAAO,WAAW,CAAA;AACpB,CAAC,CAAA;AAED,MAAM,GAAG,GAAG,CAAC,KAAa,EAAE,MAAmB,EAAU,EAAE;IACzD,MAAM,gBAAgB,GAAG,CAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,WAAW,KAAI,yBAAW,CAAC,EAAE,CAAA;IAE9D,OAAO,KAAK;SACT,OAAO,CAAC,OAAO,EAAE,QAAQ,CAAC;SAC1B,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC;SACtB,OAAO,CAAC,SAAS,EAAE,gBAAgB,KAAK,yBAAW,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC;SACvE,OAAO,CAAC,OAAO,EAAE,gBAAgB,KAAK,yBAAW,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAA;AAC1E,CAAC,CAAA;AAED;;GAEG;AACU,QAAA,WAAW,GAAiB;IACvC,IAAI,EAAE,2BAAY,CAAC,IAAI;IACvB,IAAI;IACJ,WAAW;IACX,OAAO;IACP,IAAI;IACJ,GAAG;CACJ,CAAA"}
|
|
@@ -1,33 +1,33 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.noNestedMacros = void 0;
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
4
|
+
const LintRuleType_1 = require("../../types/LintRuleType");
|
|
5
|
+
const Severity_1 = require("../../types/Severity");
|
|
6
|
+
const getColumnNumber_1 = require("../../utils/getColumnNumber");
|
|
7
|
+
const parseMacros_1 = require("../../utils/parseMacros");
|
|
8
|
+
const LineEndings_1 = require("../../types/LineEndings");
|
|
9
|
+
const name = 'noNestedMacros';
|
|
10
|
+
const description = 'Enfoces the absence of nested macro definitions.';
|
|
11
|
+
const message = `Macro definition for '{macro}' present in macro '{parent}'`;
|
|
12
|
+
const test = (value, config) => {
|
|
13
|
+
const lineEnding = (config === null || config === void 0 ? void 0 : config.lineEndings) === LineEndings_1.LineEndings.CRLF ? '\r\n' : '\n';
|
|
14
|
+
const lines = value ? value.split(lineEnding) : [];
|
|
15
|
+
const diagnostics = [];
|
|
16
|
+
const macros = (0, parseMacros_1.parseMacros)(value, config);
|
|
17
|
+
const severity = (config === null || config === void 0 ? void 0 : config.severityLevel[name]) || Severity_1.Severity.Warning;
|
|
18
18
|
macros
|
|
19
|
-
.filter(
|
|
20
|
-
.forEach(
|
|
19
|
+
.filter((m) => !!m.parentMacro)
|
|
20
|
+
.forEach((macro) => {
|
|
21
21
|
diagnostics.push({
|
|
22
22
|
message: message
|
|
23
23
|
.replace('{macro}', macro.name)
|
|
24
24
|
.replace('{parent}', macro.parentMacro),
|
|
25
25
|
lineNumber: macro.startLineNumbers[0],
|
|
26
|
-
startColumnNumber: getColumnNumber_1.getColumnNumber(lines[macro.startLineNumbers[0] - 1], '%macro'),
|
|
27
|
-
endColumnNumber: getColumnNumber_1.getColumnNumber(lines[macro.startLineNumbers[0] - 1], '%macro') +
|
|
26
|
+
startColumnNumber: (0, getColumnNumber_1.getColumnNumber)(lines[macro.startLineNumbers[0] - 1], '%macro'),
|
|
27
|
+
endColumnNumber: (0, getColumnNumber_1.getColumnNumber)(lines[macro.startLineNumbers[0] - 1], '%macro') +
|
|
28
28
|
lines[macro.startLineNumbers[0] - 1].trim().length -
|
|
29
29
|
1,
|
|
30
|
-
severity
|
|
30
|
+
severity
|
|
31
31
|
});
|
|
32
32
|
});
|
|
33
33
|
return diagnostics;
|
|
@@ -37,9 +37,9 @@ var test = function (value, config) {
|
|
|
37
37
|
*/
|
|
38
38
|
exports.noNestedMacros = {
|
|
39
39
|
type: LintRuleType_1.LintRuleType.File,
|
|
40
|
-
name
|
|
41
|
-
description
|
|
42
|
-
message
|
|
43
|
-
test
|
|
40
|
+
name,
|
|
41
|
+
description,
|
|
42
|
+
message,
|
|
43
|
+
test
|
|
44
44
|
};
|
|
45
45
|
//# sourceMappingURL=noNestedMacros.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"noNestedMacros.js","sourceRoot":"","sources":["../../../src/rules/file/noNestedMacros.ts"],"names":[],"mappings":";;;AAEA,
|
|
1
|
+
{"version":3,"file":"noNestedMacros.js","sourceRoot":"","sources":["../../../src/rules/file/noNestedMacros.ts"],"names":[],"mappings":";;;AAEA,2DAAuD;AACvD,mDAA+C;AAC/C,iEAA6D;AAC7D,yDAAqD;AAErD,yDAAqD;AAErD,MAAM,IAAI,GAAG,gBAAgB,CAAA;AAC7B,MAAM,WAAW,GAAG,kDAAkD,CAAA;AACtE,MAAM,OAAO,GAAG,4DAA4D,CAAA;AAE5E,MAAM,IAAI,GAAG,CAAC,KAAa,EAAE,MAAmB,EAAE,EAAE;IAClD,MAAM,UAAU,GAAG,CAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,WAAW,MAAK,yBAAW,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAA;IAC3E,MAAM,KAAK,GAAa,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,EAAE,CAAA;IAC5D,MAAM,WAAW,GAAiB,EAAE,CAAA;IACpC,MAAM,MAAM,GAAG,IAAA,yBAAW,EAAC,KAAK,EAAE,MAAM,CAAC,CAAA;IACzC,MAAM,QAAQ,GAAG,CAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,aAAa,CAAC,IAAI,CAAC,KAAI,mBAAQ,CAAC,OAAO,CAAA;IAEhE,MAAM;SACH,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC;SAC9B,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE;QACjB,WAAW,CAAC,IAAI,CAAC;YACf,OAAO,EAAE,OAAO;iBACb,OAAO,CAAC,SAAS,EAAE,KAAK,CAAC,IAAI,CAAC;iBAC9B,OAAO,CAAC,UAAU,EAAE,KAAK,CAAC,WAAW,CAAC;YACzC,UAAU,EAAE,KAAK,CAAC,gBAAiB,CAAC,CAAC,CAAW;YAChD,iBAAiB,EAAE,IAAA,iCAAe,EAChC,KAAK,CAAE,KAAK,CAAC,gBAAiB,CAAC,CAAC,CAAY,GAAG,CAAC,CAAC,EACjD,QAAQ,CACT;YACD,eAAe,EACb,IAAA,iCAAe,EACb,KAAK,CAAE,KAAK,CAAC,gBAAiB,CAAC,CAAC,CAAY,GAAG,CAAC,CAAC,EACjD,QAAQ,CACT;gBACD,KAAK,CAAE,KAAK,CAAC,gBAAiB,CAAC,CAAC,CAAY,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,MAAM;gBAC/D,CAAC;YACH,QAAQ;SACT,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;IACJ,OAAO,WAAW,CAAA;AACpB,CAAC,CAAA;AAED;;GAEG;AACU,QAAA,cAAc,GAAiB;IAC1C,IAAI,EAAE,2BAAY,CAAC,IAAI;IACvB,IAAI;IACJ,WAAW;IACX,OAAO;IACP,IAAI;CACL,CAAA"}
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.strictMacroDefinition = void 0;
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
4
|
+
const types_1 = require("../../types");
|
|
5
|
+
const LintRuleType_1 = require("../../types/LintRuleType");
|
|
6
|
+
const parseMacros_1 = require("../../utils/parseMacros");
|
|
7
|
+
const name = 'strictMacroDefinition';
|
|
8
|
+
const description = 'Enforce strictly rules of macro definition syntax.';
|
|
9
|
+
const message = 'Incorrent Macro Definition Syntax';
|
|
10
|
+
const validOptions = [
|
|
11
11
|
'CMD',
|
|
12
12
|
'DES',
|
|
13
13
|
'MINDELIMITER',
|
|
@@ -21,43 +21,38 @@ var validOptions = [
|
|
|
21
21
|
'SRC',
|
|
22
22
|
'STORE'
|
|
23
23
|
];
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
24
|
+
const processParams = (content, macro, diagnostics, config) => {
|
|
25
|
+
const declaration = macro.declaration;
|
|
26
|
+
const severity = (config === null || config === void 0 ? void 0 : config.severityLevel[name]) || types_1.Severity.Warning;
|
|
27
|
+
const regExpParams = new RegExp(/(?<=\().*(?=\))/);
|
|
28
|
+
const regExpParamsResult = regExpParams.exec(declaration);
|
|
29
|
+
let _declaration = declaration;
|
|
30
30
|
if (regExpParamsResult) {
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
params.forEach(
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
if (macro.declarationLines.findIndex(
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
31
|
+
const paramsPresent = regExpParamsResult[0];
|
|
32
|
+
const params = paramsPresent.trim().split(',');
|
|
33
|
+
params.forEach((param) => {
|
|
34
|
+
const trimedParam = param.split('=')[0].trim();
|
|
35
|
+
let paramLineNumber = 1, paramStartIndex = 1, paramEndIndex = content.length;
|
|
36
|
+
if (macro.declarationLines.findIndex((dl) => dl.indexOf(trimedParam) !== -1) === -1) {
|
|
37
|
+
const comment = '/\\*(.*?)\\*/';
|
|
38
|
+
for (let i = 1; i < trimedParam.length; i++) {
|
|
39
|
+
const paramWithComment = trimedParam.slice(0, i) + comment + trimedParam.slice(i);
|
|
40
|
+
const regEx = new RegExp(paramWithComment);
|
|
41
|
+
const declarationLineIndex = macro.declarationLines.findIndex((dl) => !!regEx.exec(dl));
|
|
42
42
|
if (declarationLineIndex !== -1) {
|
|
43
|
-
|
|
44
|
-
|
|
43
|
+
const declarationLine = macro.declarationLines[declarationLineIndex];
|
|
44
|
+
const partFound = regEx.exec(declarationLine)[0];
|
|
45
45
|
paramLineNumber = macro.startLineNumbers[declarationLineIndex];
|
|
46
46
|
paramStartIndex = declarationLine.indexOf(partFound);
|
|
47
47
|
paramEndIndex =
|
|
48
48
|
declarationLine.indexOf(partFound) + partFound.length;
|
|
49
|
-
return "break";
|
|
50
|
-
}
|
|
51
|
-
};
|
|
52
|
-
for (var i = 1; i < trimedParam.length; i++) {
|
|
53
|
-
var state_1 = _loop_1(i);
|
|
54
|
-
if (state_1 === "break")
|
|
55
49
|
break;
|
|
50
|
+
}
|
|
56
51
|
}
|
|
57
52
|
}
|
|
58
53
|
else {
|
|
59
|
-
|
|
60
|
-
|
|
54
|
+
const declarationLineIndex = macro.declarationLines.findIndex((dl) => dl.indexOf(trimedParam) !== -1);
|
|
55
|
+
const declarationLine = macro.declarationLines[declarationLineIndex];
|
|
61
56
|
paramLineNumber = macro.startLineNumbers[declarationLineIndex];
|
|
62
57
|
paramStartIndex = declarationLine.indexOf(trimedParam);
|
|
63
58
|
paramEndIndex =
|
|
@@ -65,25 +60,25 @@ var processParams = function (content, macro, diagnostics, config) {
|
|
|
65
60
|
}
|
|
66
61
|
if (trimedParam.includes(' ')) {
|
|
67
62
|
diagnostics.push({
|
|
68
|
-
message:
|
|
63
|
+
message: `Param '${trimedParam}' cannot have space`,
|
|
69
64
|
lineNumber: paramLineNumber,
|
|
70
65
|
startColumnNumber: paramStartIndex + 1,
|
|
71
66
|
endColumnNumber: paramEndIndex,
|
|
72
|
-
severity
|
|
67
|
+
severity
|
|
73
68
|
});
|
|
74
69
|
}
|
|
75
70
|
});
|
|
76
|
-
_declaration = declaration.split(
|
|
71
|
+
_declaration = declaration.split(`(${paramsPresent})`)[1];
|
|
77
72
|
}
|
|
78
73
|
return _declaration;
|
|
79
74
|
};
|
|
80
|
-
|
|
75
|
+
const processOptions = (_declaration, macro, diagnostics, config) => {
|
|
81
76
|
var _a, _b, _c;
|
|
82
|
-
|
|
83
|
-
|
|
77
|
+
let optionsPresent = (_b = (_a = _declaration.split('/')) === null || _a === void 0 ? void 0 : _a[1]) === null || _b === void 0 ? void 0 : _b.trim();
|
|
78
|
+
const severity = (config === null || config === void 0 ? void 0 : config.severityLevel[name]) || types_1.Severity.Warning;
|
|
84
79
|
if (optionsPresent) {
|
|
85
|
-
|
|
86
|
-
|
|
80
|
+
const regex = new RegExp(/=["|'](.*?)["|']/, 'g');
|
|
81
|
+
let result = regex.exec(optionsPresent);
|
|
87
82
|
// removing Option's `="..."` part, e.g. des="..."
|
|
88
83
|
while (result) {
|
|
89
84
|
optionsPresent =
|
|
@@ -92,27 +87,27 @@ var processOptions = function (_declaration, macro, diagnostics, config) {
|
|
|
92
87
|
result = regex.exec(optionsPresent);
|
|
93
88
|
}
|
|
94
89
|
(_c = optionsPresent
|
|
95
|
-
.split(' ')) === null || _c === void 0 ? void 0 : _c.filter(
|
|
96
|
-
|
|
90
|
+
.split(' ')) === null || _c === void 0 ? void 0 : _c.filter((o) => !!o).forEach((option) => {
|
|
91
|
+
const trimmedOption = option.trim();
|
|
97
92
|
if (!validOptions.includes(trimmedOption.toUpperCase())) {
|
|
98
|
-
|
|
99
|
-
|
|
93
|
+
const declarationLineIndex = macro.declarationLines.findIndex((dl) => dl.indexOf(trimmedOption) !== -1);
|
|
94
|
+
const declarationLine = macro.declarationLines[declarationLineIndex];
|
|
100
95
|
diagnostics.push({
|
|
101
|
-
message:
|
|
96
|
+
message: `Option '${trimmedOption}' is not valid`,
|
|
102
97
|
lineNumber: macro.startLineNumbers[declarationLineIndex],
|
|
103
98
|
startColumnNumber: declarationLine.indexOf(trimmedOption) + 1,
|
|
104
99
|
endColumnNumber: declarationLine.indexOf(trimmedOption) + trimmedOption.length,
|
|
105
|
-
severity
|
|
100
|
+
severity
|
|
106
101
|
});
|
|
107
102
|
}
|
|
108
103
|
});
|
|
109
104
|
}
|
|
110
105
|
};
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
macros.forEach(
|
|
115
|
-
|
|
106
|
+
const test = (value, config) => {
|
|
107
|
+
const diagnostics = [];
|
|
108
|
+
const macros = (0, parseMacros_1.parseMacros)(value, config);
|
|
109
|
+
macros.forEach((macro) => {
|
|
110
|
+
const _declaration = processParams(value, macro, diagnostics, config);
|
|
116
111
|
processOptions(_declaration, macro, diagnostics, config);
|
|
117
112
|
});
|
|
118
113
|
return diagnostics;
|
|
@@ -122,9 +117,9 @@ var test = function (value, config) {
|
|
|
122
117
|
*/
|
|
123
118
|
exports.strictMacroDefinition = {
|
|
124
119
|
type: LintRuleType_1.LintRuleType.File,
|
|
125
|
-
name
|
|
126
|
-
description
|
|
127
|
-
message
|
|
128
|
-
test
|
|
120
|
+
name,
|
|
121
|
+
description,
|
|
122
|
+
message,
|
|
123
|
+
test
|
|
129
124
|
};
|
|
130
125
|
//# sourceMappingURL=strictMacroDefinition.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"strictMacroDefinition.js","sourceRoot":"","sources":["../../../src/rules/file/strictMacroDefinition.ts"],"names":[],"mappings":";;;AAAA,
|
|
1
|
+
{"version":3,"file":"strictMacroDefinition.js","sourceRoot":"","sources":["../../../src/rules/file/strictMacroDefinition.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,30 +1,30 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.indentationMultiple = void 0;
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
4
|
+
const LintRuleType_1 = require("../../types/LintRuleType");
|
|
5
|
+
const Severity_1 = require("../../types/Severity");
|
|
6
|
+
const name = 'indentationMultiple';
|
|
7
|
+
const description = 'Ensure indentation by a multiple of the configured number.';
|
|
8
|
+
const message = 'Line has incorrect indentation';
|
|
9
|
+
const test = (value, lineNumber, config) => {
|
|
10
10
|
if (!value.startsWith(' '))
|
|
11
11
|
return [];
|
|
12
|
-
|
|
13
|
-
|
|
12
|
+
const severity = (config === null || config === void 0 ? void 0 : config.severityLevel[name]) || Severity_1.Severity.Warning;
|
|
13
|
+
const indentationMultiple = isNaN(config === null || config === void 0 ? void 0 : config.indentationMultiple)
|
|
14
14
|
? 2
|
|
15
15
|
: config.indentationMultiple;
|
|
16
16
|
if (indentationMultiple === 0)
|
|
17
17
|
return [];
|
|
18
|
-
|
|
18
|
+
const numberOfSpaces = value.search(/\S|$/);
|
|
19
19
|
if (numberOfSpaces % indentationMultiple === 0)
|
|
20
20
|
return [];
|
|
21
21
|
return [
|
|
22
22
|
{
|
|
23
|
-
message: message
|
|
24
|
-
lineNumber
|
|
23
|
+
message: `${message} - ${numberOfSpaces} ${numberOfSpaces === 1 ? 'space' : 'spaces'}`,
|
|
24
|
+
lineNumber,
|
|
25
25
|
startColumnNumber: 1,
|
|
26
26
|
endColumnNumber: 1,
|
|
27
|
-
severity
|
|
27
|
+
severity
|
|
28
28
|
}
|
|
29
29
|
];
|
|
30
30
|
};
|
|
@@ -33,9 +33,9 @@ var test = function (value, lineNumber, config) {
|
|
|
33
33
|
*/
|
|
34
34
|
exports.indentationMultiple = {
|
|
35
35
|
type: LintRuleType_1.LintRuleType.Line,
|
|
36
|
-
name
|
|
37
|
-
description
|
|
38
|
-
message
|
|
39
|
-
test
|
|
36
|
+
name,
|
|
37
|
+
description,
|
|
38
|
+
message,
|
|
39
|
+
test
|
|
40
40
|
};
|
|
41
41
|
//# sourceMappingURL=indentationMultiple.js.map
|
|
@@ -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"}
|