@grexx/grexxlinter 0.2.723 → 0.2.1032
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/cli.js +5 -2
- package/lsp.js +4 -1
- package/package.json +1 -1
- package/schemas/.coverage.json +192 -0
- package/schemas/securityRequirement.schema.json +189 -0
package/cli.js
CHANGED
|
@@ -14943,6 +14943,9 @@ function meetsThreshold(severity, failOn) {
|
|
|
14943
14943
|
const floor = failOn === "warning" ? SEVERITY_RANK.warning : SEVERITY_RANK.error;
|
|
14944
14944
|
return SEVERITY_RANK[severity] >= floor;
|
|
14945
14945
|
}
|
|
14946
|
+
function messageKey(m) {
|
|
14947
|
+
return `${m.rule}|${m.path}|${m.severity}|${m.message}`;
|
|
14948
|
+
}
|
|
14946
14949
|
function lintDocument(ctx, input) {
|
|
14947
14950
|
const settings = normalizeSettings(ctx.settings);
|
|
14948
14951
|
const casetype = detectCasetype(input);
|
|
@@ -15029,7 +15032,7 @@ function lintDocument(ctx, input) {
|
|
|
15029
15032
|
}
|
|
15030
15033
|
const seen = /* @__PURE__ */ new Set();
|
|
15031
15034
|
const deduped = messages.filter((m) => {
|
|
15032
|
-
const k =
|
|
15035
|
+
const k = messageKey(m);
|
|
15033
15036
|
if (seen.has(k)) return false;
|
|
15034
15037
|
seen.add(k);
|
|
15035
15038
|
return true;
|
|
@@ -15061,7 +15064,7 @@ function isLintableYaml(text) {
|
|
|
15061
15064
|
// src/cli.ts
|
|
15062
15065
|
var PARALLEL_THRESHOLD = 200;
|
|
15063
15066
|
var MAX_WORKERS = 8;
|
|
15064
|
-
var VERSION = true ? "0.2.
|
|
15067
|
+
var VERSION = true ? "0.2.1032" : "0.0.0-dev";
|
|
15065
15068
|
function isNewer(latest, current) {
|
|
15066
15069
|
const a = latest.split(".").map(Number);
|
|
15067
15070
|
const b = current.split(".").map(Number);
|
package/lsp.js
CHANGED
|
@@ -23901,6 +23901,9 @@ function meetsThreshold(severity, failOn) {
|
|
|
23901
23901
|
const floor = failOn === "warning" ? SEVERITY_RANK.warning : SEVERITY_RANK.error;
|
|
23902
23902
|
return SEVERITY_RANK[severity] >= floor;
|
|
23903
23903
|
}
|
|
23904
|
+
function messageKey(m) {
|
|
23905
|
+
return `${m.rule}|${m.path}|${m.severity}|${m.message}`;
|
|
23906
|
+
}
|
|
23904
23907
|
function lintDocument(ctx2, input) {
|
|
23905
23908
|
const settings2 = normalizeSettings(ctx2.settings);
|
|
23906
23909
|
const casetype = detectCasetype(input);
|
|
@@ -23987,7 +23990,7 @@ function lintDocument(ctx2, input) {
|
|
|
23987
23990
|
}
|
|
23988
23991
|
const seen = /* @__PURE__ */ new Set();
|
|
23989
23992
|
const deduped = messages.filter((m) => {
|
|
23990
|
-
const k =
|
|
23993
|
+
const k = messageKey(m);
|
|
23991
23994
|
if (seen.has(k)) return false;
|
|
23992
23995
|
seen.add(k);
|
|
23993
23996
|
return true;
|
package/package.json
CHANGED
package/schemas/.coverage.json
CHANGED
|
@@ -9441,6 +9441,198 @@
|
|
|
9441
9441
|
}
|
|
9442
9442
|
}
|
|
9443
9443
|
},
|
|
9444
|
+
"securityRequirement": {
|
|
9445
|
+
"schema": "securityRequirement.schema.json",
|
|
9446
|
+
"fields": {
|
|
9447
|
+
"passwordLength": {
|
|
9448
|
+
"baseline": "MUST_NOT",
|
|
9449
|
+
"storedAs": "value",
|
|
9450
|
+
"clauses": [
|
|
9451
|
+
{
|
|
9452
|
+
"modality": "MUST",
|
|
9453
|
+
"when": {
|
|
9454
|
+
"op": "cmp",
|
|
9455
|
+
"field": "key",
|
|
9456
|
+
"operator": "==",
|
|
9457
|
+
"value": "passwordLength"
|
|
9458
|
+
},
|
|
9459
|
+
"covered": true,
|
|
9460
|
+
"storedAs": "value"
|
|
9461
|
+
}
|
|
9462
|
+
]
|
|
9463
|
+
},
|
|
9464
|
+
"passwordComplexity": {
|
|
9465
|
+
"baseline": "MUST_NOT",
|
|
9466
|
+
"storedAs": "value",
|
|
9467
|
+
"clauses": [
|
|
9468
|
+
{
|
|
9469
|
+
"modality": "MUST",
|
|
9470
|
+
"when": {
|
|
9471
|
+
"op": "cmp",
|
|
9472
|
+
"field": "key",
|
|
9473
|
+
"operator": "==",
|
|
9474
|
+
"value": "passwordComplexity"
|
|
9475
|
+
},
|
|
9476
|
+
"covered": true,
|
|
9477
|
+
"storedAs": "value"
|
|
9478
|
+
}
|
|
9479
|
+
]
|
|
9480
|
+
},
|
|
9481
|
+
"loginMethods": {
|
|
9482
|
+
"baseline": "MUST_NOT",
|
|
9483
|
+
"storedAs": "value",
|
|
9484
|
+
"clauses": [
|
|
9485
|
+
{
|
|
9486
|
+
"modality": "MUST",
|
|
9487
|
+
"when": {
|
|
9488
|
+
"op": "cmp",
|
|
9489
|
+
"field": "key",
|
|
9490
|
+
"operator": "==",
|
|
9491
|
+
"value": "loginMethods"
|
|
9492
|
+
},
|
|
9493
|
+
"covered": true,
|
|
9494
|
+
"storedAs": "value"
|
|
9495
|
+
}
|
|
9496
|
+
]
|
|
9497
|
+
},
|
|
9498
|
+
"twoFactorAuthentication": {
|
|
9499
|
+
"baseline": "MUST_NOT",
|
|
9500
|
+
"storedAs": "value",
|
|
9501
|
+
"clauses": [
|
|
9502
|
+
{
|
|
9503
|
+
"modality": "MUST",
|
|
9504
|
+
"when": {
|
|
9505
|
+
"op": "cmp",
|
|
9506
|
+
"field": "key",
|
|
9507
|
+
"operator": "==",
|
|
9508
|
+
"value": "twoFactorAuthentication"
|
|
9509
|
+
},
|
|
9510
|
+
"covered": true,
|
|
9511
|
+
"storedAs": "value"
|
|
9512
|
+
}
|
|
9513
|
+
]
|
|
9514
|
+
},
|
|
9515
|
+
"twoFactorAuthenticationAllowedMethods": {
|
|
9516
|
+
"baseline": "MUST_NOT",
|
|
9517
|
+
"storedAs": "value",
|
|
9518
|
+
"clauses": [
|
|
9519
|
+
{
|
|
9520
|
+
"modality": "MUST",
|
|
9521
|
+
"when": {
|
|
9522
|
+
"op": "cmp",
|
|
9523
|
+
"field": "key",
|
|
9524
|
+
"operator": "==",
|
|
9525
|
+
"value": "twoFactorAuthentication-methods"
|
|
9526
|
+
},
|
|
9527
|
+
"covered": true,
|
|
9528
|
+
"storedAs": "value"
|
|
9529
|
+
}
|
|
9530
|
+
]
|
|
9531
|
+
},
|
|
9532
|
+
"maximumPasswordAgeDays": {
|
|
9533
|
+
"baseline": "MUST_NOT",
|
|
9534
|
+
"storedAs": "value",
|
|
9535
|
+
"clauses": [
|
|
9536
|
+
{
|
|
9537
|
+
"modality": "MUST",
|
|
9538
|
+
"when": {
|
|
9539
|
+
"op": "cmp",
|
|
9540
|
+
"field": "key",
|
|
9541
|
+
"operator": "==",
|
|
9542
|
+
"value": "passwordAge"
|
|
9543
|
+
},
|
|
9544
|
+
"covered": true,
|
|
9545
|
+
"storedAs": "value"
|
|
9546
|
+
}
|
|
9547
|
+
]
|
|
9548
|
+
},
|
|
9549
|
+
"passwordMinimalLowercase": {
|
|
9550
|
+
"baseline": "MUST_NOT",
|
|
9551
|
+
"storedAs": "value",
|
|
9552
|
+
"clauses": [
|
|
9553
|
+
{
|
|
9554
|
+
"modality": "MUST",
|
|
9555
|
+
"when": {
|
|
9556
|
+
"op": "cmp",
|
|
9557
|
+
"field": "key",
|
|
9558
|
+
"operator": "==",
|
|
9559
|
+
"value": "passwordMinLowercase"
|
|
9560
|
+
},
|
|
9561
|
+
"covered": true,
|
|
9562
|
+
"storedAs": "value"
|
|
9563
|
+
}
|
|
9564
|
+
]
|
|
9565
|
+
},
|
|
9566
|
+
"passwordMinimalUppercase": {
|
|
9567
|
+
"baseline": "MUST_NOT",
|
|
9568
|
+
"storedAs": "value",
|
|
9569
|
+
"clauses": [
|
|
9570
|
+
{
|
|
9571
|
+
"modality": "MUST",
|
|
9572
|
+
"when": {
|
|
9573
|
+
"op": "cmp",
|
|
9574
|
+
"field": "key",
|
|
9575
|
+
"operator": "==",
|
|
9576
|
+
"value": "passwordMinUppercase"
|
|
9577
|
+
},
|
|
9578
|
+
"covered": true,
|
|
9579
|
+
"storedAs": "value"
|
|
9580
|
+
}
|
|
9581
|
+
]
|
|
9582
|
+
},
|
|
9583
|
+
"passwordMinimalSpecialCharacters": {
|
|
9584
|
+
"baseline": "MUST_NOT",
|
|
9585
|
+
"storedAs": "value",
|
|
9586
|
+
"clauses": [
|
|
9587
|
+
{
|
|
9588
|
+
"modality": "MUST",
|
|
9589
|
+
"when": {
|
|
9590
|
+
"op": "cmp",
|
|
9591
|
+
"field": "key",
|
|
9592
|
+
"operator": "==",
|
|
9593
|
+
"value": "passwordMinSpecial"
|
|
9594
|
+
},
|
|
9595
|
+
"covered": true,
|
|
9596
|
+
"storedAs": "value"
|
|
9597
|
+
}
|
|
9598
|
+
]
|
|
9599
|
+
},
|
|
9600
|
+
"passwordMinimalNumbers": {
|
|
9601
|
+
"baseline": "MUST_NOT",
|
|
9602
|
+
"storedAs": "value",
|
|
9603
|
+
"clauses": [
|
|
9604
|
+
{
|
|
9605
|
+
"modality": "MUST",
|
|
9606
|
+
"when": {
|
|
9607
|
+
"op": "cmp",
|
|
9608
|
+
"field": "key",
|
|
9609
|
+
"operator": "==",
|
|
9610
|
+
"value": "passwordMinNumber"
|
|
9611
|
+
},
|
|
9612
|
+
"covered": true,
|
|
9613
|
+
"storedAs": "value"
|
|
9614
|
+
}
|
|
9615
|
+
]
|
|
9616
|
+
},
|
|
9617
|
+
"passwordMaximumSequentialCharacters": {
|
|
9618
|
+
"baseline": "MUST_NOT",
|
|
9619
|
+
"storedAs": "value",
|
|
9620
|
+
"clauses": [
|
|
9621
|
+
{
|
|
9622
|
+
"modality": "MUST",
|
|
9623
|
+
"when": {
|
|
9624
|
+
"op": "cmp",
|
|
9625
|
+
"field": "key",
|
|
9626
|
+
"operator": "==",
|
|
9627
|
+
"value": "passwordMaxSequential"
|
|
9628
|
+
},
|
|
9629
|
+
"covered": true,
|
|
9630
|
+
"storedAs": "value"
|
|
9631
|
+
}
|
|
9632
|
+
]
|
|
9633
|
+
}
|
|
9634
|
+
}
|
|
9635
|
+
},
|
|
9444
9636
|
"simpleCondition": {
|
|
9445
9637
|
"schema": "simpleCondition.schema.json",
|
|
9446
9638
|
"fields": {
|
|
@@ -64,5 +64,194 @@
|
|
|
64
64
|
],
|
|
65
65
|
"title": "securityRequirement",
|
|
66
66
|
"type": "object",
|
|
67
|
+
"allOf": [
|
|
68
|
+
{
|
|
69
|
+
"if": {
|
|
70
|
+
"properties": {
|
|
71
|
+
"key": {
|
|
72
|
+
"const": "passwordLength"
|
|
73
|
+
}
|
|
74
|
+
},
|
|
75
|
+
"required": [
|
|
76
|
+
"key"
|
|
77
|
+
]
|
|
78
|
+
},
|
|
79
|
+
"then": {
|
|
80
|
+
"required": [
|
|
81
|
+
"value"
|
|
82
|
+
]
|
|
83
|
+
}
|
|
84
|
+
},
|
|
85
|
+
{
|
|
86
|
+
"if": {
|
|
87
|
+
"properties": {
|
|
88
|
+
"key": {
|
|
89
|
+
"const": "passwordComplexity"
|
|
90
|
+
}
|
|
91
|
+
},
|
|
92
|
+
"required": [
|
|
93
|
+
"key"
|
|
94
|
+
]
|
|
95
|
+
},
|
|
96
|
+
"then": {
|
|
97
|
+
"required": [
|
|
98
|
+
"value"
|
|
99
|
+
]
|
|
100
|
+
}
|
|
101
|
+
},
|
|
102
|
+
{
|
|
103
|
+
"if": {
|
|
104
|
+
"properties": {
|
|
105
|
+
"key": {
|
|
106
|
+
"const": "loginMethods"
|
|
107
|
+
}
|
|
108
|
+
},
|
|
109
|
+
"required": [
|
|
110
|
+
"key"
|
|
111
|
+
]
|
|
112
|
+
},
|
|
113
|
+
"then": {
|
|
114
|
+
"required": [
|
|
115
|
+
"value"
|
|
116
|
+
]
|
|
117
|
+
}
|
|
118
|
+
},
|
|
119
|
+
{
|
|
120
|
+
"if": {
|
|
121
|
+
"properties": {
|
|
122
|
+
"key": {
|
|
123
|
+
"const": "twoFactorAuthentication"
|
|
124
|
+
}
|
|
125
|
+
},
|
|
126
|
+
"required": [
|
|
127
|
+
"key"
|
|
128
|
+
]
|
|
129
|
+
},
|
|
130
|
+
"then": {
|
|
131
|
+
"required": [
|
|
132
|
+
"value"
|
|
133
|
+
]
|
|
134
|
+
}
|
|
135
|
+
},
|
|
136
|
+
{
|
|
137
|
+
"if": {
|
|
138
|
+
"properties": {
|
|
139
|
+
"key": {
|
|
140
|
+
"const": "twoFactorAuthentication-methods"
|
|
141
|
+
}
|
|
142
|
+
},
|
|
143
|
+
"required": [
|
|
144
|
+
"key"
|
|
145
|
+
]
|
|
146
|
+
},
|
|
147
|
+
"then": {
|
|
148
|
+
"required": [
|
|
149
|
+
"value"
|
|
150
|
+
]
|
|
151
|
+
}
|
|
152
|
+
},
|
|
153
|
+
{
|
|
154
|
+
"if": {
|
|
155
|
+
"properties": {
|
|
156
|
+
"key": {
|
|
157
|
+
"const": "passwordAge"
|
|
158
|
+
}
|
|
159
|
+
},
|
|
160
|
+
"required": [
|
|
161
|
+
"key"
|
|
162
|
+
]
|
|
163
|
+
},
|
|
164
|
+
"then": {
|
|
165
|
+
"required": [
|
|
166
|
+
"value"
|
|
167
|
+
]
|
|
168
|
+
}
|
|
169
|
+
},
|
|
170
|
+
{
|
|
171
|
+
"if": {
|
|
172
|
+
"properties": {
|
|
173
|
+
"key": {
|
|
174
|
+
"const": "passwordMinLowercase"
|
|
175
|
+
}
|
|
176
|
+
},
|
|
177
|
+
"required": [
|
|
178
|
+
"key"
|
|
179
|
+
]
|
|
180
|
+
},
|
|
181
|
+
"then": {
|
|
182
|
+
"required": [
|
|
183
|
+
"value"
|
|
184
|
+
]
|
|
185
|
+
}
|
|
186
|
+
},
|
|
187
|
+
{
|
|
188
|
+
"if": {
|
|
189
|
+
"properties": {
|
|
190
|
+
"key": {
|
|
191
|
+
"const": "passwordMinUppercase"
|
|
192
|
+
}
|
|
193
|
+
},
|
|
194
|
+
"required": [
|
|
195
|
+
"key"
|
|
196
|
+
]
|
|
197
|
+
},
|
|
198
|
+
"then": {
|
|
199
|
+
"required": [
|
|
200
|
+
"value"
|
|
201
|
+
]
|
|
202
|
+
}
|
|
203
|
+
},
|
|
204
|
+
{
|
|
205
|
+
"if": {
|
|
206
|
+
"properties": {
|
|
207
|
+
"key": {
|
|
208
|
+
"const": "passwordMinSpecial"
|
|
209
|
+
}
|
|
210
|
+
},
|
|
211
|
+
"required": [
|
|
212
|
+
"key"
|
|
213
|
+
]
|
|
214
|
+
},
|
|
215
|
+
"then": {
|
|
216
|
+
"required": [
|
|
217
|
+
"value"
|
|
218
|
+
]
|
|
219
|
+
}
|
|
220
|
+
},
|
|
221
|
+
{
|
|
222
|
+
"if": {
|
|
223
|
+
"properties": {
|
|
224
|
+
"key": {
|
|
225
|
+
"const": "passwordMinNumber"
|
|
226
|
+
}
|
|
227
|
+
},
|
|
228
|
+
"required": [
|
|
229
|
+
"key"
|
|
230
|
+
]
|
|
231
|
+
},
|
|
232
|
+
"then": {
|
|
233
|
+
"required": [
|
|
234
|
+
"value"
|
|
235
|
+
]
|
|
236
|
+
}
|
|
237
|
+
},
|
|
238
|
+
{
|
|
239
|
+
"if": {
|
|
240
|
+
"properties": {
|
|
241
|
+
"key": {
|
|
242
|
+
"const": "passwordMaxSequential"
|
|
243
|
+
}
|
|
244
|
+
},
|
|
245
|
+
"required": [
|
|
246
|
+
"key"
|
|
247
|
+
]
|
|
248
|
+
},
|
|
249
|
+
"then": {
|
|
250
|
+
"required": [
|
|
251
|
+
"value"
|
|
252
|
+
]
|
|
253
|
+
}
|
|
254
|
+
}
|
|
255
|
+
],
|
|
67
256
|
"$comment": "Conditionals generated by packages/schemas/scripts/extend.mjs from rules/securityRequirement.json."
|
|
68
257
|
}
|