@grexx/grexxlinter 0.2.2992 → 0.2.3026

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 CHANGED
@@ -15828,7 +15828,7 @@ function lintFiles(files, ctx, settings) {
15828
15828
  // src/cli.ts
15829
15829
  var PARALLEL_THRESHOLD = 200;
15830
15830
  var MAX_WORKERS = 8;
15831
- var VERSION = "0.2.2992";
15831
+ var VERSION = "0.2.3026";
15832
15832
  function isNewer(latest, current) {
15833
15833
  const a = latest.split(".").map(Number);
15834
15834
  const b = current.split(".").map(Number);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@grexx/grexxlinter",
3
- "version": "0.2.2992",
3
+ "version": "0.2.3026",
4
4
  "description": "Lint Grexx Studio casetype YAML against the studio JSON Schemas.",
5
5
  "type": "module",
6
6
  "bin": {
@@ -112,6 +112,17 @@
112
112
  "datasetColumn"
113
113
  ]
114
114
  },
115
+ "directRole": {
116
+ "attribute": [
117
+ "attribute"
118
+ ],
119
+ "roleName": [
120
+ "roleName"
121
+ ],
122
+ "securityprofile": [
123
+ "securityProfile"
124
+ ]
125
+ },
115
126
  "forEach": {
116
127
  "forDataset": [
117
128
  "dataset"
@@ -177,6 +188,20 @@
177
188
  "roleName"
178
189
  ]
179
190
  },
191
+ "indirectRole": {
192
+ "caseAttribute": [
193
+ "attribute"
194
+ ],
195
+ "externalRole": [
196
+ "roleName"
197
+ ],
198
+ "roleName": [
199
+ "roleName"
200
+ ],
201
+ "securityprofile": [
202
+ "securityProfile"
203
+ ]
204
+ },
180
205
  "picklist": {
181
206
  "deleteActivity": [
182
207
  "activity"
@@ -257,6 +257,13 @@
257
257
  },
258
258
  "uniqueItems": true,
259
259
  "description": "Studio-only organisational labels, as plain strings. Assignable to a casetype, to the files inside a casetype (activity, view, form, attribute), and to platform-level assets. Root level only: the studio reads labels off the file root, never off a nested object. The platform-level registry (labelRegistry.yaml) supplies each label's colour and canonical casing but is not authoritative — a label may appear here without a registry entry."
260
+ },
261
+ "hasValidConfiguration": {
262
+ "type": "boolean"
263
+ },
264
+ "wasEverFullyConfigured": {
265
+ "$comment": "The designer bookkeeping pair — see README.md, \"Adding a rule by hand\".",
266
+ "type": "boolean"
260
267
  }
261
268
  },
262
269
  "required": [
@@ -70,6 +70,13 @@
70
70
  },
71
71
  "showProgress": {
72
72
  "type": "boolean"
73
+ },
74
+ "hasValidConfiguration": {
75
+ "type": "boolean"
76
+ },
77
+ "wasEverFullyConfigured": {
78
+ "$comment": "The designer bookkeeping pair — see README.md, \"Adding a rule by hand\".",
79
+ "type": "boolean"
73
80
  }
74
81
  },
75
82
  "required": [
@@ -1,67 +1,80 @@
1
1
  {
2
- "$id" : "https://grexx.net/studio-next/schemas/conditionList.schema.json",
3
- "$schema" : "https://json-schema.org/draft/2020-12/schema",
4
- "additionalProperties" : false,
5
- "properties" : {
6
- "_id" : {
7
- "type" : "string"
8
- },
9
- "_interfaceID" : {
10
- "type" : "string"
11
- },
12
- "_isInterface" : {
13
- "type" : "boolean"
14
- },
15
- "_knownIDs" : {
16
- "items" : {
17
- "type" : "string"
2
+ "$id": "https://grexx.net/studio-next/schemas/conditionList.schema.json",
3
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
4
+ "additionalProperties": false,
5
+ "properties": {
6
+ "_id": {
7
+ "type": "string"
8
+ },
9
+ "_interfaceID": {
10
+ "type": "string"
11
+ },
12
+ "_isInterface": {
13
+ "type": "boolean"
14
+ },
15
+ "_knownIDs": {
16
+ "items": {
17
+ "type": "string"
18
18
  },
19
- "type" : "array"
19
+ "type": "array"
20
20
  },
21
- "_origin" : {
22
- "type" : "string"
21
+ "_origin": {
22
+ "type": "string"
23
23
  },
24
- "_src" : {
25
- "type" : "string"
24
+ "_src": {
25
+ "type": "string"
26
26
  },
27
- "_type" : {
28
- "const" : "conditionList"
27
+ "_type": {
28
+ "const": "conditionList"
29
29
  },
30
- "_uid" : {
31
- "description" : "Deterministic UUID derived from case-ID.",
32
- "format" : "uuid",
33
- "type" : "string"
30
+ "_uid": {
31
+ "description": "Deterministic UUID derived from case-ID.",
32
+ "format": "uuid",
33
+ "type": "string"
34
34
  },
35
- "conditions" : {
36
- "items" : {
37
- "$ref" : "abstractCondition.schema.json"
35
+ "conditions": {
36
+ "items": {
37
+ "$ref": "abstractCondition.schema.json"
38
38
  },
39
- "type" : "array"
39
+ "type": "array"
40
+ },
41
+ "description": {
42
+ "$ref": "template/inlineTemplate.schema.json"
43
+ },
44
+ "inactive": {
45
+ "type": "boolean"
40
46
  },
41
- "description" : {
42
- "$ref" : "template/inlineTemplate.schema.json"
47
+ "interfaceStudioProduct": {
48
+ "$ref": "common.schema.json#/$defs/caseIdOrFileReference"
43
49
  },
44
- "inactive" : {
45
- "type" : "boolean"
50
+ "metaCaseToOtap": {
51
+ "type": "boolean"
46
52
  },
47
- "interfaceStudioProduct" : {
48
- "$ref" : "common.schema.json#/$defs/caseIdOrFileReference"
53
+ "negate": {
54
+ "type": "boolean"
49
55
  },
50
- "metaCaseToOtap" : {
51
- "type" : "boolean"
56
+ "ourProductId": {
57
+ "$ref": "common.schema.json#/$defs/caseIdOrFileReference"
52
58
  },
53
- "negate" : {
54
- "type" : "boolean"
59
+ "type": {
60
+ "enum": [
61
+ "AND",
62
+ "OR"
63
+ ],
64
+ "type": "string"
55
65
  },
56
- "ourProductId" : {
57
- "$ref" : "common.schema.json#/$defs/caseIdOrFileReference"
66
+ "hasValidConfiguration": {
67
+ "type": "boolean"
58
68
  },
59
- "type" : {
60
- "enum" : [ "AND", "OR" ],
61
- "type" : "string"
69
+ "wasEverFullyConfigured": {
70
+ "$comment": "The designer bookkeeping pair — see README.md, \"Adding a rule by hand\".",
71
+ "type": "boolean"
62
72
  }
63
73
  },
64
- "required" : [ "_type", "_uid" ],
65
- "title" : "conditionList",
66
- "type" : "object"
67
- }
74
+ "required": [
75
+ "_type",
76
+ "_uid"
77
+ ],
78
+ "title": "conditionList",
79
+ "type": "object"
80
+ }
@@ -69,6 +69,13 @@
69
69
  },
70
70
  "showProgress": {
71
71
  "type": "boolean"
72
+ },
73
+ "hasValidConfiguration": {
74
+ "type": "boolean"
75
+ },
76
+ "wasEverFullyConfigured": {
77
+ "$comment": "The designer bookkeeping pair — see README.md, \"Adding a rule by hand\".",
78
+ "type": "boolean"
72
79
  }
73
80
  },
74
81
  "required": [
@@ -273,56 +273,7 @@
273
273
  ]
274
274
  },
275
275
  "includedCasetype": {
276
- "baseline": "MAY",
277
- "enabledWhen": [
278
- {
279
- "op": "cmp",
280
- "field": "type",
281
- "fieldName": "Type",
282
- "operator": "==",
283
- "value": "cases",
284
- "valueIsField": false,
285
- "isEmpty": false
286
- }
287
- ],
288
- "forbiddenWhen": [
289
- {
290
- "op": "cmp",
291
- "field": "type",
292
- "fieldName": "Type",
293
- "operator": "==",
294
- "value": "all",
295
- "valueIsField": false,
296
- "isEmpty": false
297
- },
298
- {
299
- "op": "cmp",
300
- "field": "type",
301
- "fieldName": "Type",
302
- "operator": "==",
303
- "value": "multivalueAttribute",
304
- "valueIsField": false,
305
- "isEmpty": false
306
- },
307
- {
308
- "op": "cmp",
309
- "field": "type",
310
- "fieldName": "Type",
311
- "operator": "==",
312
- "value": "",
313
- "valueIsField": false,
314
- "isEmpty": true
315
- },
316
- {
317
- "op": "cmp",
318
- "field": "type",
319
- "fieldName": "Type",
320
- "operator": "!=",
321
- "value": "cases",
322
- "valueIsField": false,
323
- "isEmpty": false
324
- }
325
- ]
276
+ "baseline": "MAY"
326
277
  },
327
278
  "copiedCase": {
328
279
  "baseline": "MUST_NOT"
@@ -97,6 +97,13 @@
97
97
  },
98
98
  "vectorEmbeddingModel": {
99
99
  "type": "string"
100
+ },
101
+ "hasValidConfiguration": {
102
+ "type": "boolean"
103
+ },
104
+ "wasEverFullyConfigured": {
105
+ "$comment": "The designer bookkeeping pair — see README.md, \"Adding a rule by hand\".",
106
+ "type": "boolean"
100
107
  }
101
108
  },
102
109
  "required": [
@@ -147,6 +147,13 @@
147
147
  },
148
148
  "vectorSimilarityMeasure": {
149
149
  "type": "number"
150
+ },
151
+ "hasValidConfiguration": {
152
+ "type": "boolean"
153
+ },
154
+ "wasEverFullyConfigured": {
155
+ "$comment": "The designer bookkeeping pair — see README.md, \"Adding a rule by hand\".",
156
+ "type": "boolean"
150
157
  }
151
158
  },
152
159
  "required": [
@@ -58,12 +58,6 @@
58
58
  },
59
59
  "securityprofile": {
60
60
  "$ref": "common.schema.json#/$defs/caseIdOrFileReference"
61
- },
62
- "aiAgents": {
63
- "items": {
64
- "$ref": "common.schema.json#/$defs/caseIdOrFileReference"
65
- },
66
- "type": "array"
67
61
  }
68
62
  },
69
63
  "required": [
@@ -73,5 +67,5 @@
73
67
  ],
74
68
  "title": "directRole",
75
69
  "type": "object",
76
- "$comment": "Hand-maintained overlay (deep-merged by scripts/extend.mjs into extended/directRole.schema.json). The direct-role form writes aiAgents, but L2's directRole schema does not declare it yet (platformRole does, identically). Declared here until L2 MR !4395 lands and l2-base/ is re-synced; then this file is redundant and should be deleted. Conditionals generated by packages/schemas/scripts/extend.mjs from rules/directRole.json."
70
+ "$comment": "Conditionals generated by packages/schemas/scripts/extend.mjs from rules/directRole.json."
77
71
  }
@@ -76,6 +76,13 @@
76
76
  },
77
77
  "useCaseIDOnly": {
78
78
  "type": "boolean"
79
+ },
80
+ "hasValidConfiguration": {
81
+ "type": "boolean"
82
+ },
83
+ "wasEverFullyConfigured": {
84
+ "$comment": "The designer bookkeeping pair — see README.md, \"Adding a rule by hand\".",
85
+ "type": "boolean"
79
86
  }
80
87
  },
81
88
  "required": [
@@ -108,6 +108,13 @@
108
108
  },
109
109
  "value": {
110
110
  "$ref": "template/inlineTemplate.schema.json"
111
+ },
112
+ "hasValidConfiguration": {
113
+ "type": "boolean"
114
+ },
115
+ "wasEverFullyConfigured": {
116
+ "$comment": "The designer bookkeeping pair — see README.md, \"Adding a rule by hand\".",
117
+ "type": "boolean"
111
118
  }
112
119
  },
113
120
  "required": [
@@ -1,81 +1,91 @@
1
1
  {
2
- "$id" : "https://grexx.net/studio-next/schemas/formActionAi.schema.json",
3
- "$schema" : "https://json-schema.org/draft/2020-12/schema",
4
- "additionalProperties" : false,
5
- "properties" : {
6
- "_id" : {
7
- "type" : "string"
8
- },
9
- "_interfaceID" : {
10
- "type" : "string"
11
- },
12
- "_isInterface" : {
13
- "type" : "boolean"
14
- },
15
- "_knownIDs" : {
16
- "items" : {
17
- "type" : "string"
2
+ "$id": "https://grexx.net/studio-next/schemas/formActionAi.schema.json",
3
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
4
+ "additionalProperties": false,
5
+ "properties": {
6
+ "_id": {
7
+ "type": "string"
8
+ },
9
+ "_interfaceID": {
10
+ "type": "string"
11
+ },
12
+ "_isInterface": {
13
+ "type": "boolean"
14
+ },
15
+ "_knownIDs": {
16
+ "items": {
17
+ "type": "string"
18
18
  },
19
- "type" : "array"
19
+ "type": "array"
20
20
  },
21
- "_origin" : {
22
- "type" : "string"
21
+ "_origin": {
22
+ "type": "string"
23
23
  },
24
- "_src" : {
25
- "type" : "string"
24
+ "_src": {
25
+ "type": "string"
26
26
  },
27
- "_type" : {
28
- "const" : "formActionAi"
27
+ "_type": {
28
+ "const": "formActionAi"
29
29
  },
30
- "_uid" : {
31
- "description" : "Deterministic UUID derived from case-ID.",
32
- "format" : "uuid",
33
- "type" : "string"
30
+ "_uid": {
31
+ "description": "Deterministic UUID derived from case-ID.",
32
+ "format": "uuid",
33
+ "type": "string"
34
34
  },
35
- "aiModel" : {
36
- "type" : "string"
35
+ "aiModel": {
36
+ "type": "string"
37
37
  },
38
- "description" : {
39
- "$ref" : "template/inlineTemplate.schema.json"
38
+ "description": {
39
+ "$ref": "template/inlineTemplate.schema.json"
40
40
  },
41
- "formField" : {
42
- "items" : {
43
- "$ref" : "common.schema.json#/$defs/caseIdOrFileReference"
41
+ "formField": {
42
+ "items": {
43
+ "$ref": "common.schema.json#/$defs/caseIdOrFileReference"
44
44
  },
45
- "type" : "array"
45
+ "type": "array"
46
46
  },
47
- "inactive" : {
48
- "type" : "boolean"
47
+ "inactive": {
48
+ "type": "boolean"
49
49
  },
50
- "interfaceStudioProduct" : {
51
- "$ref" : "common.schema.json#/$defs/caseIdOrFileReference"
50
+ "interfaceStudioProduct": {
51
+ "$ref": "common.schema.json#/$defs/caseIdOrFileReference"
52
52
  },
53
- "metaCaseToOtap" : {
54
- "type" : "boolean"
53
+ "metaCaseToOtap": {
54
+ "type": "boolean"
55
55
  },
56
- "model" : {
57
- "$ref" : "common.schema.json#/$defs/caseIdOrFileReference"
56
+ "model": {
57
+ "$ref": "common.schema.json#/$defs/caseIdOrFileReference"
58
58
  },
59
- "ourProductId" : {
60
- "$ref" : "common.schema.json#/$defs/caseIdOrFileReference"
59
+ "ourProductId": {
60
+ "$ref": "common.schema.json#/$defs/caseIdOrFileReference"
61
61
  },
62
- "progressTemplate" : {
63
- "$ref" : "template/inlineTemplate.schema.json"
62
+ "progressTemplate": {
63
+ "$ref": "template/inlineTemplate.schema.json"
64
64
  },
65
- "progressTitle" : {
66
- "$ref" : "common.schema.json#/$defs/multilanguageStringStructure"
65
+ "progressTitle": {
66
+ "$ref": "common.schema.json#/$defs/multilanguageStringStructure"
67
67
  },
68
- "prompt" : {
69
- "$ref" : "template/inlineTemplate.schema.json"
68
+ "prompt": {
69
+ "$ref": "template/inlineTemplate.schema.json"
70
70
  },
71
- "showProgress" : {
72
- "type" : "boolean"
71
+ "showProgress": {
72
+ "type": "boolean"
73
73
  },
74
- "type" : {
75
- "type" : "string"
74
+ "type": {
75
+ "type": "string"
76
+ },
77
+ "hasValidConfiguration": {
78
+ "type": "boolean"
79
+ },
80
+ "wasEverFullyConfigured": {
81
+ "$comment": "The designer bookkeeping pair — see README.md, \"Adding a rule by hand\".",
82
+ "type": "boolean"
76
83
  }
77
84
  },
78
- "required" : [ "_type", "_uid" ],
79
- "title" : "formActionAi",
80
- "type" : "object"
81
- }
85
+ "required": [
86
+ "_type",
87
+ "_uid"
88
+ ],
89
+ "title": "formActionAi",
90
+ "type": "object"
91
+ }
@@ -1,66 +1,76 @@
1
1
  {
2
- "$id" : "https://grexx.net/studio-next/schemas/formActionInlineJavascript.schema.json",
3
- "$schema" : "https://json-schema.org/draft/2020-12/schema",
4
- "additionalProperties" : false,
5
- "properties" : {
6
- "_id" : {
7
- "type" : "string"
8
- },
9
- "_interfaceID" : {
10
- "type" : "string"
11
- },
12
- "_isInterface" : {
13
- "type" : "boolean"
14
- },
15
- "_knownIDs" : {
16
- "items" : {
17
- "type" : "string"
2
+ "$id": "https://grexx.net/studio-next/schemas/formActionInlineJavascript.schema.json",
3
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
4
+ "additionalProperties": false,
5
+ "properties": {
6
+ "_id": {
7
+ "type": "string"
8
+ },
9
+ "_interfaceID": {
10
+ "type": "string"
11
+ },
12
+ "_isInterface": {
13
+ "type": "boolean"
14
+ },
15
+ "_knownIDs": {
16
+ "items": {
17
+ "type": "string"
18
18
  },
19
- "type" : "array"
19
+ "type": "array"
20
20
  },
21
- "_origin" : {
22
- "type" : "string"
21
+ "_origin": {
22
+ "type": "string"
23
23
  },
24
- "_src" : {
25
- "type" : "string"
24
+ "_src": {
25
+ "type": "string"
26
26
  },
27
- "_type" : {
28
- "const" : "formActionInlineJavascript"
27
+ "_type": {
28
+ "const": "formActionInlineJavascript"
29
29
  },
30
- "_uid" : {
31
- "description" : "Deterministic UUID derived from case-ID.",
32
- "format" : "uuid",
33
- "type" : "string"
30
+ "_uid": {
31
+ "description": "Deterministic UUID derived from case-ID.",
32
+ "format": "uuid",
33
+ "type": "string"
34
34
  },
35
- "codeBlock" : {
36
- "type" : "string"
35
+ "codeBlock": {
36
+ "type": "string"
37
37
  },
38
- "description" : {
39
- "$ref" : "template/inlineTemplate.schema.json"
38
+ "description": {
39
+ "$ref": "template/inlineTemplate.schema.json"
40
40
  },
41
- "inactive" : {
42
- "type" : "boolean"
41
+ "inactive": {
42
+ "type": "boolean"
43
43
  },
44
- "interfaceStudioProduct" : {
45
- "$ref" : "common.schema.json#/$defs/caseIdOrFileReference"
44
+ "interfaceStudioProduct": {
45
+ "$ref": "common.schema.json#/$defs/caseIdOrFileReference"
46
46
  },
47
- "metaCaseToOtap" : {
48
- "type" : "boolean"
47
+ "metaCaseToOtap": {
48
+ "type": "boolean"
49
49
  },
50
- "ourProductId" : {
51
- "$ref" : "common.schema.json#/$defs/caseIdOrFileReference"
50
+ "ourProductId": {
51
+ "$ref": "common.schema.json#/$defs/caseIdOrFileReference"
52
52
  },
53
- "progressTemplate" : {
54
- "$ref" : "template/inlineTemplate.schema.json"
53
+ "progressTemplate": {
54
+ "$ref": "template/inlineTemplate.schema.json"
55
55
  },
56
- "progressTitle" : {
57
- "$ref" : "common.schema.json#/$defs/multilanguageStringStructure"
56
+ "progressTitle": {
57
+ "$ref": "common.schema.json#/$defs/multilanguageStringStructure"
58
58
  },
59
- "showProgress" : {
60
- "type" : "boolean"
59
+ "showProgress": {
60
+ "type": "boolean"
61
+ },
62
+ "hasValidConfiguration": {
63
+ "type": "boolean"
64
+ },
65
+ "wasEverFullyConfigured": {
66
+ "$comment": "The designer bookkeeping pair — see README.md, \"Adding a rule by hand\".",
67
+ "type": "boolean"
61
68
  }
62
69
  },
63
- "required" : [ "_type", "_uid" ],
64
- "title" : "formActionInlineJavascript",
65
- "type" : "object"
66
- }
70
+ "required": [
71
+ "_type",
72
+ "_uid"
73
+ ],
74
+ "title": "formActionInlineJavascript",
75
+ "type": "object"
76
+ }