@sasjs/lint 2.4.1 → 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/.github/dependabot.yml +1 -1
- package/.github/reviewer-lottery.yml +0 -2
- package/.github/workflows/assign-reviewer.yml +2 -2
- 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
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"}
|
package/types/LintConfig.js
CHANGED
|
@@ -1,39 +1,12 @@
|
|
|
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.LintConfig = void 0;
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
4
|
+
const file_1 = require("../rules/file");
|
|
5
|
+
const line_1 = require("../rules/line");
|
|
6
|
+
const path_1 = require("../rules/path");
|
|
7
|
+
const LineEndings_1 = require("./LineEndings");
|
|
8
|
+
const utils_1 = require("../utils");
|
|
9
|
+
const Severity_1 = require("./Severity");
|
|
37
10
|
/**
|
|
38
11
|
* LintConfig is the logical representation of the .sasjslint file.
|
|
39
12
|
* It exposes two sets of rules - one to be run against each line in a file,
|
|
@@ -41,10 +14,8 @@ var Severity_1 = require("./Severity");
|
|
|
41
14
|
*
|
|
42
15
|
* More types of rules, when available, will be added here.
|
|
43
16
|
*/
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
var e_1, _a;
|
|
47
|
-
var _this = this;
|
|
17
|
+
class LintConfig {
|
|
18
|
+
constructor(json) {
|
|
48
19
|
this.ignoreList = [];
|
|
49
20
|
this.allowedGremlins = [];
|
|
50
21
|
this.lineLintRules = [];
|
|
@@ -55,20 +26,20 @@ var LintConfig = /** @class */ (function () {
|
|
|
55
26
|
this.maxDataLineLength = 80;
|
|
56
27
|
this.indentationMultiple = 2;
|
|
57
28
|
this.lineEndings = LineEndings_1.LineEndings.LF;
|
|
58
|
-
this.defaultHeader = utils_1.getDefaultHeader();
|
|
29
|
+
this.defaultHeader = (0, utils_1.getDefaultHeader)();
|
|
59
30
|
this.severityLevel = {};
|
|
60
31
|
this.requiredMacroOptions = [];
|
|
61
32
|
if (json === null || json === void 0 ? void 0 : json.ignoreList) {
|
|
62
33
|
if (Array.isArray(json.ignoreList)) {
|
|
63
|
-
json.ignoreList.forEach(
|
|
34
|
+
json.ignoreList.forEach((item) => {
|
|
64
35
|
if (typeof item === 'string')
|
|
65
|
-
|
|
36
|
+
this.ignoreList.push(item);
|
|
66
37
|
else
|
|
67
|
-
throw new Error(
|
|
38
|
+
throw new Error(`Property "ignoreList" has invalid type of values. It can contain only strings.`);
|
|
68
39
|
});
|
|
69
40
|
}
|
|
70
41
|
else {
|
|
71
|
-
throw new Error(
|
|
42
|
+
throw new Error(`Property "ignoreList" can only be an array of strings`);
|
|
72
43
|
}
|
|
73
44
|
}
|
|
74
45
|
if ((json === null || json === void 0 ? void 0 : json.noTrailingSpaces) !== false) {
|
|
@@ -94,7 +65,7 @@ var LintConfig = /** @class */ (function () {
|
|
|
94
65
|
if ((json === null || json === void 0 ? void 0 : json.lineEndings) && json.lineEndings !== LineEndings_1.LineEndings.OFF) {
|
|
95
66
|
if (json.lineEndings !== LineEndings_1.LineEndings.LF &&
|
|
96
67
|
json.lineEndings !== LineEndings_1.LineEndings.CRLF) {
|
|
97
|
-
throw new Error(
|
|
68
|
+
throw new Error(`Invalid value for lineEndings: can be ${LineEndings_1.LineEndings.LF} or ${LineEndings_1.LineEndings.CRLF}`);
|
|
98
69
|
}
|
|
99
70
|
this.fileLintRules.push(file_1.lineEndings);
|
|
100
71
|
this.lineEndings = json.lineEndings;
|
|
@@ -132,17 +103,17 @@ var LintConfig = /** @class */ (function () {
|
|
|
132
103
|
if (json === null || json === void 0 ? void 0 : json.requiredMacroOptions) {
|
|
133
104
|
if (Array.isArray(json.requiredMacroOptions) &&
|
|
134
105
|
json.requiredMacroOptions.length > 0) {
|
|
135
|
-
json.requiredMacroOptions.forEach(
|
|
106
|
+
json.requiredMacroOptions.forEach((item) => {
|
|
136
107
|
if (typeof item === 'string') {
|
|
137
|
-
|
|
108
|
+
this.requiredMacroOptions.push(item);
|
|
138
109
|
}
|
|
139
110
|
else {
|
|
140
|
-
throw new Error(
|
|
111
|
+
throw new Error(`Property "requiredMacroOptions" has invalid type of values. It can only contain strings.`);
|
|
141
112
|
}
|
|
142
113
|
});
|
|
143
114
|
}
|
|
144
115
|
else {
|
|
145
|
-
throw new Error(
|
|
116
|
+
throw new Error(`Property "requiredMacroOptions" can only be an array of strings.`);
|
|
146
117
|
}
|
|
147
118
|
}
|
|
148
119
|
}
|
|
@@ -150,38 +121,27 @@ var LintConfig = /** @class */ (function () {
|
|
|
150
121
|
this.lineLintRules.push(line_1.noGremlins);
|
|
151
122
|
if (json === null || json === void 0 ? void 0 : json.allowedGremlins) {
|
|
152
123
|
if (Array.isArray(json.allowedGremlins)) {
|
|
153
|
-
json.allowedGremlins.forEach(
|
|
124
|
+
json.allowedGremlins.forEach((item) => {
|
|
154
125
|
if (typeof item === 'string' && /^0x[0-9a-f]{4}$/i.test(item))
|
|
155
|
-
|
|
126
|
+
this.allowedGremlins.push(item);
|
|
156
127
|
else
|
|
157
|
-
throw new Error(
|
|
128
|
+
throw new Error(`Property "allowedGremlins" has invalid type of values. It can contain only strings of form hexcode like '["0x0080", "0x3000"]'`);
|
|
158
129
|
});
|
|
159
130
|
}
|
|
160
131
|
else {
|
|
161
|
-
throw new Error(
|
|
132
|
+
throw new Error(`Property "allowedGremlins" can only be an array of strings of form hexcode like '["0x0080", "0x3000"]'`);
|
|
162
133
|
}
|
|
163
134
|
}
|
|
164
135
|
}
|
|
165
136
|
if (json === null || json === void 0 ? void 0 : json.severityLevel) {
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
if (severity === 'error')
|
|
172
|
-
this.severityLevel[rule] = Severity_1.Severity.Error;
|
|
173
|
-
}
|
|
174
|
-
}
|
|
175
|
-
catch (e_1_1) { e_1 = { error: e_1_1 }; }
|
|
176
|
-
finally {
|
|
177
|
-
try {
|
|
178
|
-
if (_c && !_c.done && (_a = _b.return)) _a.call(_b);
|
|
179
|
-
}
|
|
180
|
-
finally { if (e_1) throw e_1.error; }
|
|
137
|
+
for (const [rule, severity] of Object.entries(json.severityLevel)) {
|
|
138
|
+
if (severity === 'warn')
|
|
139
|
+
this.severityLevel[rule] = Severity_1.Severity.Warning;
|
|
140
|
+
if (severity === 'error')
|
|
141
|
+
this.severityLevel[rule] = Severity_1.Severity.Error;
|
|
181
142
|
}
|
|
182
143
|
}
|
|
183
144
|
}
|
|
184
|
-
|
|
185
|
-
}());
|
|
145
|
+
}
|
|
186
146
|
exports.LintConfig = LintConfig;
|
|
187
147
|
//# sourceMappingURL=LintConfig.js.map
|
package/types/LintConfig.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LintConfig.js","sourceRoot":"","sources":["../../src/types/LintConfig.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"LintConfig.js","sourceRoot":"","sources":["../../src/types/LintConfig.ts"],"names":[],"mappings":"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"}
|
package/types/index.js
CHANGED
|
@@ -1,7 +1,11 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
3
|
if (k2 === undefined) k2 = k;
|
|
4
|
-
Object.
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
5
9
|
}) : (function(o, m, k, k2) {
|
|
6
10
|
if (k2 === undefined) k2 = k;
|
|
7
11
|
o[k2] = m[k];
|
package/types/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,+CAA4B;AAC5B,iDAA8B;AAC9B,+CAA4B;AAC5B,6CAA0B;AAC1B,iDAA8B;AAC9B,6CAA0B;AAC1B,0CAAuB"}
|
package/utils/asyncForEach.js
CHANGED
|
@@ -8,58 +8,16 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
8
8
|
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
9
|
});
|
|
10
10
|
};
|
|
11
|
-
var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
12
|
-
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
|
|
13
|
-
return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
|
|
14
|
-
function verb(n) { return function (v) { return step([n, v]); }; }
|
|
15
|
-
function step(op) {
|
|
16
|
-
if (f) throw new TypeError("Generator is already executing.");
|
|
17
|
-
while (_) try {
|
|
18
|
-
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
|
|
19
|
-
if (y = 0, t) op = [op[0] & 2, t.value];
|
|
20
|
-
switch (op[0]) {
|
|
21
|
-
case 0: case 1: t = op; break;
|
|
22
|
-
case 4: _.label++; return { value: op[1], done: false };
|
|
23
|
-
case 5: _.label++; y = op[1]; op = [0]; continue;
|
|
24
|
-
case 7: op = _.ops.pop(); _.trys.pop(); continue;
|
|
25
|
-
default:
|
|
26
|
-
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
|
|
27
|
-
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
|
|
28
|
-
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
|
|
29
|
-
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
|
|
30
|
-
if (t[2]) _.ops.pop();
|
|
31
|
-
_.trys.pop(); continue;
|
|
32
|
-
}
|
|
33
|
-
op = body.call(thisArg, _);
|
|
34
|
-
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
|
|
35
|
-
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
|
|
36
|
-
}
|
|
37
|
-
};
|
|
38
11
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
39
12
|
exports.asyncForEach = void 0;
|
|
40
13
|
/**
|
|
41
14
|
* Executes an async callback for each item in the given array.
|
|
42
15
|
*/
|
|
43
16
|
function asyncForEach(array, callback) {
|
|
44
|
-
return __awaiter(this, void 0, void 0, function () {
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
case 0:
|
|
49
|
-
index = 0;
|
|
50
|
-
_a.label = 1;
|
|
51
|
-
case 1:
|
|
52
|
-
if (!(index < array.length)) return [3 /*break*/, 4];
|
|
53
|
-
return [4 /*yield*/, callback(array[index], index, array)];
|
|
54
|
-
case 2:
|
|
55
|
-
_a.sent();
|
|
56
|
-
_a.label = 3;
|
|
57
|
-
case 3:
|
|
58
|
-
index++;
|
|
59
|
-
return [3 /*break*/, 1];
|
|
60
|
-
case 4: return [2 /*return*/];
|
|
61
|
-
}
|
|
62
|
-
});
|
|
17
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
18
|
+
for (let index = 0; index < array.length; index++) {
|
|
19
|
+
yield callback(array[index], index, array);
|
|
20
|
+
}
|
|
63
21
|
});
|
|
64
22
|
}
|
|
65
23
|
exports.asyncForEach = asyncForEach;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"asyncForEach.js","sourceRoot":"","sources":["../../src/utils/asyncForEach.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"asyncForEach.js","sourceRoot":"","sources":["../../src/utils/asyncForEach.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA;;GAEG;AACH,SAAsB,YAAY,CAChC,KAAY,EACZ,QAAiE;;QAEjE,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,KAAK,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE;YACjD,MAAM,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,CAAA;SAC3C;IACH,CAAC;CAAA;AAPD,oCAOC"}
|
package/utils/getColumnNumber.js
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.getColumnNumber = void 0;
|
|
4
|
-
|
|
5
|
-
|
|
4
|
+
const getColumnNumber = (line, text) => {
|
|
5
|
+
const index = line.split('\n').pop().indexOf(text);
|
|
6
6
|
if (index < 0) {
|
|
7
|
-
throw new Error(
|
|
7
|
+
throw new Error(`String '${text}' was not found in line '${line}'`);
|
|
8
8
|
}
|
|
9
9
|
return line.split('\n').pop().indexOf(text) + 1;
|
|
10
10
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getColumnNumber.js","sourceRoot":"","sources":["../../src/utils/getColumnNumber.ts"],"names":[],"mappings":";;;AAAO,
|
|
1
|
+
{"version":3,"file":"getColumnNumber.js","sourceRoot":"","sources":["../../src/utils/getColumnNumber.ts"],"names":[],"mappings":";;;AAAO,MAAM,eAAe,GAAG,CAAC,IAAY,EAAE,IAAY,EAAU,EAAE;IACpE,MAAM,KAAK,GAAI,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,GAAG,EAAa,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;IAC9D,IAAI,KAAK,GAAG,CAAC,EAAE;QACb,MAAM,IAAI,KAAK,CAAC,WAAW,IAAI,4BAA4B,IAAI,GAAG,CAAC,CAAA;KACpE;IACD,OAAQ,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,GAAG,EAAa,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;AAC7D,CAAC,CAAA;AANY,QAAA,eAAe,mBAM3B"}
|
|
@@ -1,29 +1,18 @@
|
|
|
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
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
14
3
|
exports.checkIsDataLine = exports.getDataSectionsDetail = void 0;
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
lines.forEach(
|
|
4
|
+
const splitText_1 = require("./splitText");
|
|
5
|
+
const getDataSectionsDetail = (text, config) => {
|
|
6
|
+
const dataSections = [];
|
|
7
|
+
const lines = (0, splitText_1.splitText)(text, config);
|
|
8
|
+
const dataSectionStartRegex1 = new RegExp('^(datalines;)|(cards;)|(parmcards;)');
|
|
9
|
+
const dataSectionEndRegex1 = new RegExp(';');
|
|
10
|
+
const dataSectionStartRegex2 = new RegExp('^(datalines4;)|(cards4;)|(parmcards4;)');
|
|
11
|
+
const dataSectionEndRegex2 = new RegExp(';;;;');
|
|
12
|
+
let dataSectionStarted = false;
|
|
13
|
+
let dataSectionStartIndex = -1;
|
|
14
|
+
let dataSectionEndRegex = dataSectionEndRegex1;
|
|
15
|
+
lines.forEach((line, index) => {
|
|
27
16
|
if (dataSectionStarted) {
|
|
28
17
|
if (dataSectionEndRegex.test(line)) {
|
|
29
18
|
dataSections.push({ start: dataSectionStartIndex, end: index });
|
|
@@ -46,21 +35,10 @@ var getDataSectionsDetail = function (text, config) {
|
|
|
46
35
|
return dataSections;
|
|
47
36
|
};
|
|
48
37
|
exports.getDataSectionsDetail = getDataSectionsDetail;
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
var dataSection = dataSections_1_1.value;
|
|
54
|
-
if (lineIndex >= dataSection.start && lineIndex <= dataSection.end)
|
|
55
|
-
return true;
|
|
56
|
-
}
|
|
57
|
-
}
|
|
58
|
-
catch (e_1_1) { e_1 = { error: e_1_1 }; }
|
|
59
|
-
finally {
|
|
60
|
-
try {
|
|
61
|
-
if (dataSections_1_1 && !dataSections_1_1.done && (_a = dataSections_1.return)) _a.call(dataSections_1);
|
|
62
|
-
}
|
|
63
|
-
finally { if (e_1) throw e_1.error; }
|
|
38
|
+
const checkIsDataLine = (dataSections, lineIndex) => {
|
|
39
|
+
for (const dataSection of dataSections) {
|
|
40
|
+
if (lineIndex >= dataSection.start && lineIndex <= dataSection.end)
|
|
41
|
+
return true;
|
|
64
42
|
}
|
|
65
43
|
return false;
|
|
66
44
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getDataSectionsDetail.js","sourceRoot":"","sources":["../../src/utils/getDataSectionsDetail.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"getDataSectionsDetail.js","sourceRoot":"","sources":["../../src/utils/getDataSectionsDetail.ts"],"names":[],"mappings":";;;AACA,2CAAuC;AAOhC,MAAM,qBAAqB,GAAG,CAAC,IAAY,EAAE,MAAkB,EAAE,EAAE;IACxE,MAAM,YAAY,GAAyB,EAAE,CAAA;IAC7C,MAAM,KAAK,GAAG,IAAA,qBAAS,EAAC,IAAI,EAAE,MAAM,CAAC,CAAA;IAErC,MAAM,sBAAsB,GAAG,IAAI,MAAM,CACvC,qCAAqC,CACtC,CAAA;IACD,MAAM,oBAAoB,GAAG,IAAI,MAAM,CAAC,GAAG,CAAC,CAAA;IAC5C,MAAM,sBAAsB,GAAG,IAAI,MAAM,CACvC,wCAAwC,CACzC,CAAA;IACD,MAAM,oBAAoB,GAAG,IAAI,MAAM,CAAC,MAAM,CAAC,CAAA;IAE/C,IAAI,kBAAkB,GAAG,KAAK,CAAA;IAC9B,IAAI,qBAAqB,GAAG,CAAC,CAAC,CAAA;IAC9B,IAAI,mBAAmB,GAAG,oBAAoB,CAAA;IAE9C,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE;QAC5B,IAAI,kBAAkB,EAAE;YACtB,IAAI,mBAAmB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;gBAClC,YAAY,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,qBAAqB,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC,CAAA;gBAC/D,kBAAkB,GAAG,KAAK,CAAA;aAC3B;SACF;aAAM;YACL,IAAI,sBAAsB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;gBACrC,kBAAkB,GAAG,IAAI,CAAA;gBACzB,qBAAqB,GAAG,KAAK,CAAA;gBAC7B,mBAAmB,GAAG,oBAAoB,CAAA;aAC3C;iBAAM,IAAI,sBAAsB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;gBAC5C,kBAAkB,GAAG,IAAI,CAAA;gBACzB,qBAAqB,GAAG,KAAK,CAAA;gBAC7B,mBAAmB,GAAG,oBAAoB,CAAA;aAC3C;SACF;IACH,CAAC,CAAC,CAAA;IAEF,OAAO,YAAY,CAAA;AACrB,CAAC,CAAA;AArCY,QAAA,qBAAqB,yBAqCjC;AAEM,MAAM,eAAe,GAAG,CAC7B,YAAkC,EAClC,SAAiB,EACjB,EAAE;IACF,KAAK,MAAM,WAAW,IAAI,YAAY,EAAE;QACtC,IAAI,SAAS,IAAI,WAAW,CAAC,KAAK,IAAI,SAAS,IAAI,WAAW,CAAC,GAAG;YAChE,OAAO,IAAI,CAAA;KACd;IAED,OAAO,KAAK,CAAA;AACd,CAAC,CAAA;AAVY,QAAA,eAAe,mBAU3B"}
|