@sasjs/lint 2.0.1 → 2.1.0

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/README.md CHANGED
@@ -29,6 +29,7 @@ Configuration is via a `.sasjslint` file with the following structure (these are
29
29
  "lowerCaseFileNames": true,
30
30
  "maxLineLength": 80,
31
31
  "noNestedMacros": true,
32
+ "noGremlins": true,
32
33
  "noSpacesInFileNames": true,
33
34
  "noTabs": true,
34
35
  "noTrailingSpaces": true,
@@ -125,6 +126,15 @@ We strongly recommend a line length limit, and set the bar at 80. To turn this f
125
126
  - Default: 80
126
127
  - Severity: WARNING
127
128
 
129
+ ### noGremlins
130
+
131
+ Capture zero-width whitespace and other non-standard characters. The logic is borrowed from the [VSCode Gremlins Extension](https://github.com/nhoizey/vscode-gremlins) - if you are looking for more advanced gremlin zapping capabilities, we highly recommend to use their extension instead.
132
+
133
+ The list of characters can be found in this file: [https://github.com/sasjs/lint/blob/main/src/rules/line/noGremlins.ts](https://github.com/sasjs/lint/blob/main/src/rules/line/noGremlins.ts)
134
+
135
+ - Default: true
136
+ - Severity: WARNING
137
+
128
138
  ### noNestedMacros
129
139
 
130
140
  Where macros are defined inside other macros, they are recompiled every time the outer macro is invoked. Hence, it is widely considered inefficient, and bad practice, to nest macro definitions.
package/package.json CHANGED
@@ -51,5 +51,5 @@
51
51
  "@sasjs/utils": "^2.19.0",
52
52
  "ignore": "^5.2.0"
53
53
  },
54
- "version": "2.0.1"
54
+ "version": "2.1.0"
55
55
  }
@@ -1,3 +1,4 @@
1
+ export { noGremlins } from './noGremlins';
1
2
  export { indentationMultiple } from './indentationMultiple';
2
3
  export { maxLineLength } from './maxLineLength';
3
4
  export { noEncodedPasswords } from './noEncodedPasswords';
@@ -1,6 +1,8 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.noTrailingSpaces = exports.noTabs = exports.noEncodedPasswords = exports.maxLineLength = exports.indentationMultiple = void 0;
3
+ exports.noTrailingSpaces = exports.noTabs = exports.noEncodedPasswords = exports.maxLineLength = exports.indentationMultiple = exports.noGremlins = void 0;
4
+ var noGremlins_1 = require("./noGremlins");
5
+ Object.defineProperty(exports, "noGremlins", { enumerable: true, get: function () { return noGremlins_1.noGremlins; } });
4
6
  var indentationMultiple_1 = require("./indentationMultiple");
5
7
  Object.defineProperty(exports, "indentationMultiple", { enumerable: true, get: function () { return indentationMultiple_1.indentationMultiple; } });
6
8
  var maxLineLength_1 = require("./maxLineLength");
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/rules/line/index.ts"],"names":[],"mappings":";;;AAAA,6DAA2D;AAAlD,0HAAA,mBAAmB,OAAA;AAC5B,iDAA+C;AAAtC,8GAAA,aAAa,OAAA;AACtB,2DAAyD;AAAhD,wHAAA,kBAAkB,OAAA;AAC3B,mCAAiC;AAAxB,gGAAA,MAAM,OAAA;AACf,uDAAqD;AAA5C,oHAAA,gBAAgB,OAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/rules/line/index.ts"],"names":[],"mappings":";;;AAAA,2CAAyC;AAAhC,wGAAA,UAAU,OAAA;AACnB,6DAA2D;AAAlD,0HAAA,mBAAmB,OAAA;AAC5B,iDAA+C;AAAtC,8GAAA,aAAa,OAAA;AACtB,2DAAyD;AAAhD,wHAAA,kBAAkB,OAAA;AAC3B,mCAAiC;AAAxB,gGAAA,MAAM,OAAA;AACf,uDAAqD;AAA5C,oHAAA,gBAAgB,OAAA"}
@@ -0,0 +1,5 @@
1
+ import { LineLintRule } from '../../types/LintRule';
2
+ /**
3
+ * Lint rule that checks if a given line of text contains any gremlins.
4
+ */
5
+ export declare const noGremlins: LineLintRule;
@@ -0,0 +1,153 @@
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
+ Object.defineProperty(exports, "__esModule", { value: true });
30
+ exports.noGremlins = void 0;
31
+ var LintRuleType_1 = require("../../types/LintRuleType");
32
+ var Severity_1 = require("../../types/Severity");
33
+ var name = 'noGremlins';
34
+ var description = 'Disallow characters specified in gremlins array';
35
+ var message = 'Line contains a gremlin';
36
+ var test = function (value, lineNumber, config) {
37
+ var e_1, _a;
38
+ var severity = (config === null || config === void 0 ? void 0 : config.severityLevel[name]) || Severity_1.Severity.Warning;
39
+ var diagnostics = [];
40
+ var gremlins = {};
41
+ try {
42
+ for (var _b = __values(Object.entries(gremlinCharacters)), _c = _b.next(); !_c.done; _c = _b.next()) {
43
+ var _d = __read(_c.value, 2), hexCode = _d[0], config_1 = _d[1];
44
+ gremlins[charFromHex(hexCode)] = Object.assign({}, config_1, {
45
+ hexCode: hexCode
46
+ });
47
+ }
48
+ }
49
+ catch (e_1_1) { e_1 = { error: e_1_1 }; }
50
+ finally {
51
+ try {
52
+ if (_c && !_c.done && (_a = _b.return)) _a.call(_b);
53
+ }
54
+ finally { if (e_1) throw e_1.error; }
55
+ }
56
+ var regexpWithAllChars = new RegExp(Object.keys(gremlins)
57
+ .map(function (char) { return char + "+"; })
58
+ .join('|'), 'g');
59
+ var match;
60
+ while ((match = regexpWithAllChars.exec(value))) {
61
+ var matchedCharacter = match[0][0];
62
+ var gremlin = gremlins[matchedCharacter];
63
+ diagnostics.push({
64
+ message: message + ": " + gremlin.description + ", hexCode(" + gremlin.hexCode + ")",
65
+ lineNumber: lineNumber,
66
+ startColumnNumber: match.index + 1,
67
+ endColumnNumber: match.index + 1 + match[0].length,
68
+ severity: severity
69
+ });
70
+ }
71
+ return diagnostics;
72
+ };
73
+ /**
74
+ * Lint rule that checks if a given line of text contains any gremlins.
75
+ */
76
+ exports.noGremlins = {
77
+ type: LintRuleType_1.LintRuleType.Line,
78
+ name: name,
79
+ description: description,
80
+ message: message,
81
+ test: test
82
+ };
83
+ var charFromHex = function (hexCode) { return String.fromCodePoint(parseInt(hexCode)); };
84
+ var gremlinCharacters = {
85
+ '0x2013': {
86
+ description: 'en dash'
87
+ },
88
+ '0x2018': {
89
+ description: 'left single quotation mark'
90
+ },
91
+ '0x2019': {
92
+ description: 'right single quotation mark'
93
+ },
94
+ '0x2029': {
95
+ zeroWidth: true,
96
+ description: 'paragraph separator'
97
+ },
98
+ '0x2066': {
99
+ zeroWidth: true,
100
+ description: 'Left to right'
101
+ },
102
+ '0x2069': {
103
+ zeroWidth: true,
104
+ description: 'Pop directional'
105
+ },
106
+ '0x0003': {
107
+ description: 'end of text'
108
+ },
109
+ '0x000b': {
110
+ description: 'line tabulation'
111
+ },
112
+ '0x00a0': {
113
+ description: 'non breaking space'
114
+ },
115
+ '0x00ad': {
116
+ description: 'soft hyphen'
117
+ },
118
+ '0x200b': {
119
+ zeroWidth: true,
120
+ description: 'zero width space'
121
+ },
122
+ '0x200c': {
123
+ zeroWidth: true,
124
+ description: 'zero width non-joiner'
125
+ },
126
+ '0x200e': {
127
+ zeroWidth: true,
128
+ description: 'left-to-right mark'
129
+ },
130
+ '0x201c': {
131
+ description: 'left double quotation mark'
132
+ },
133
+ '0x201d': {
134
+ description: 'right double quotation mark'
135
+ },
136
+ '0x202c': {
137
+ zeroWidth: true,
138
+ description: 'pop directional formatting'
139
+ },
140
+ '0x202d': {
141
+ zeroWidth: true,
142
+ description: 'left-to-right override'
143
+ },
144
+ '0x202e': {
145
+ zeroWidth: true,
146
+ description: 'right-to-left override'
147
+ },
148
+ '0xfffc': {
149
+ zeroWidth: true,
150
+ description: 'object replacement character'
151
+ }
152
+ };
153
+ //# sourceMappingURL=noGremlins.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"noGremlins.js","sourceRoot":"","sources":["../../../src/rules/line/noGremlins.ts"],"names":[],"mappings":"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"}
@@ -13,6 +13,7 @@
13
13
  "indentationMultiple": 2,
14
14
  "lowerCaseFileNames": true,
15
15
  "maxLineLength": 80,
16
+ "noGremlins": true,
16
17
  "noNestedMacros": true,
17
18
  "noSpacesInFileNames": true,
18
19
  "noTabs": true,
@@ -29,6 +30,7 @@
29
30
  "noSpacesInFileNames": true,
30
31
  "lowerCaseFileNames": true,
31
32
  "maxLineLength": 80,
33
+ "noGremlins": true,
32
34
  "noTabs": true,
33
35
  "indentationMultiple": 4,
34
36
  "hasMacroNameInMend": true,
@@ -64,6 +66,14 @@
64
66
  "default": "/**{lineEnding} @file{lineEnding} @brief <Your brief here>{lineEnding} <h4> SAS Macros </h4>{lineEnding}**/",
65
67
  "examples": []
66
68
  },
69
+ "noGremlins": {
70
+ "$id": "#/properties/noGremlins",
71
+ "type": "array",
72
+ "title": "noGremlins",
73
+ "description": "Captures problematic characters such as zero-width whitespace and others that look valid but usually are not (such as the en dash)",
74
+ "default": [true],
75
+ "examples": [true, false]
76
+ },
67
77
  "hasMacroNameInMend": {
68
78
  "$id": "#/properties/hasMacroNameInMend",
69
79
  "type": "boolean",
@@ -193,6 +203,13 @@
193
203
  "enum": ["error", "warn"],
194
204
  "default": "warn"
195
205
  },
206
+ "noGremlins": {
207
+ "$id": "#/properties/severityLevel/noGremlins",
208
+ "title": "noGremlins",
209
+ "type": "string",
210
+ "enum": ["error", "warn"],
211
+ "default": "warn"
212
+ },
196
213
  "hasMacroNameInMend": {
197
214
  "$id": "#/properties/severityLevel/hasMacroNameInMend",
198
215
  "title": "hasMacroNameInMend",
@@ -116,6 +116,9 @@ var LintConfig = /** @class */ (function () {
116
116
  if (json === null || json === void 0 ? void 0 : json.strictMacroDefinition) {
117
117
  this.fileLintRules.push(file_1.strictMacroDefinition);
118
118
  }
119
+ if (json === null || json === void 0 ? void 0 : json.noGremlins) {
120
+ this.lineLintRules.push(line_1.noGremlins);
121
+ }
119
122
  if (json === null || json === void 0 ? void 0 : json.severityLevel) {
120
123
  try {
121
124
  for (var _b = __values(Object.entries(json.severityLevel)), _c = _b.next(); !_c.done; _c = _b.next()) {
@@ -1 +1 @@
1
- {"version":3,"file":"LintConfig.js","sourceRoot":"","sources":["../../src/types/LintConfig.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"LintConfig.js","sourceRoot":"","sources":["../../src/types/LintConfig.ts"],"names":[],"mappings":"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"}