@grexx/grexxlinter 0.2.1111 → 0.2.1146

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
@@ -15113,7 +15113,7 @@ function isLintableYaml(text) {
15113
15113
  // src/cli.ts
15114
15114
  var PARALLEL_THRESHOLD = 200;
15115
15115
  var MAX_WORKERS = 8;
15116
- var VERSION = true ? "0.2.1111" : "0.0.0-dev";
15116
+ var VERSION = true ? "0.2.1146" : "0.0.0-dev";
15117
15117
  function isNewer(latest, current) {
15118
15118
  const a = latest.split(".").map(Number);
15119
15119
  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.1111",
3
+ "version": "0.2.1146",
4
4
  "description": "Lint Grexx Studio casetype YAML against the studio JSON Schemas.",
5
5
  "type": "module",
6
6
  "bin": {
@@ -248,6 +248,15 @@
248
248
  "unknown"
249
249
  ],
250
250
  "type": "string"
251
+ },
252
+ "_labels": {
253
+ "type": "array",
254
+ "items": {
255
+ "type": "string",
256
+ "minLength": 1
257
+ },
258
+ "uniqueItems": true,
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."
251
260
  }
252
261
  },
253
262
  "required": [
@@ -98,6 +98,15 @@
98
98
  },
99
99
  "webSearchAllowed": {
100
100
  "type": "boolean"
101
+ },
102
+ "_labels": {
103
+ "type": "array",
104
+ "items": {
105
+ "type": "string",
106
+ "minLength": 1
107
+ },
108
+ "uniqueItems": true,
109
+ "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."
101
110
  }
102
111
  },
103
112
  "required": [
@@ -217,6 +217,15 @@
217
217
  },
218
218
  "validation": {
219
219
  "type": "string"
220
+ },
221
+ "_labels": {
222
+ "type": "array",
223
+ "items": {
224
+ "type": "string",
225
+ "minLength": 1
226
+ },
227
+ "uniqueItems": true,
228
+ "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."
220
229
  }
221
230
  },
222
231
  "required": [
@@ -173,6 +173,15 @@
173
173
  "unknown"
174
174
  ],
175
175
  "type": "string"
176
+ },
177
+ "_labels": {
178
+ "type": "array",
179
+ "items": {
180
+ "type": "string",
181
+ "minLength": 1
182
+ },
183
+ "uniqueItems": true,
184
+ "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."
176
185
  }
177
186
  },
178
187
  "required": [
@@ -82,6 +82,15 @@
82
82
  },
83
83
  "pageCasetype": {
84
84
  "$ref": "common.schema.json#/$defs/caseIdOrFileReference"
85
+ },
86
+ "_labels": {
87
+ "type": "array",
88
+ "items": {
89
+ "type": "string",
90
+ "minLength": 1
91
+ },
92
+ "uniqueItems": true,
93
+ "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."
85
94
  }
86
95
  },
87
96
  "required": [
@@ -215,6 +215,15 @@
215
215
  "filter"
216
216
  ],
217
217
  "type": "string"
218
+ },
219
+ "_labels": {
220
+ "type": "array",
221
+ "items": {
222
+ "type": "string",
223
+ "minLength": 1
224
+ },
225
+ "uniqueItems": true,
226
+ "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."
218
227
  }
219
228
  },
220
229
  "required": [
@@ -1,87 +1,99 @@
1
1
  {
2
- "$id" : "https://grexx.net/studio-next/schemas/dateProfile.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/dateProfile.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" : "dateProfile"
27
+ "_type": {
28
+ "const": "dateProfile"
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
- "dateProfileFriday" : {
36
- "type" : "boolean"
35
+ "dateProfileFriday": {
36
+ "type": "boolean"
37
37
  },
38
- "dateProfileIncludeHolidays" : {
39
- "type" : "boolean"
38
+ "dateProfileIncludeHolidays": {
39
+ "type": "boolean"
40
40
  },
41
- "dateProfileMaxDate" : {
42
- "$ref" : "template/inlineTemplate.schema.json"
41
+ "dateProfileMaxDate": {
42
+ "$ref": "template/inlineTemplate.schema.json"
43
43
  },
44
- "dateProfileMinDate" : {
45
- "$ref" : "template/inlineTemplate.schema.json"
44
+ "dateProfileMinDate": {
45
+ "$ref": "template/inlineTemplate.schema.json"
46
46
  },
47
- "dateProfileMonday" : {
48
- "type" : "boolean"
47
+ "dateProfileMonday": {
48
+ "type": "boolean"
49
49
  },
50
- "dateProfileSaturday" : {
51
- "type" : "boolean"
50
+ "dateProfileSaturday": {
51
+ "type": "boolean"
52
52
  },
53
- "dateProfileSunday" : {
54
- "type" : "boolean"
53
+ "dateProfileSunday": {
54
+ "type": "boolean"
55
55
  },
56
- "dateProfileThursday" : {
57
- "type" : "boolean"
56
+ "dateProfileThursday": {
57
+ "type": "boolean"
58
58
  },
59
- "dateProfileTuesday" : {
60
- "type" : "boolean"
59
+ "dateProfileTuesday": {
60
+ "type": "boolean"
61
61
  },
62
- "dateProfileWednesday" : {
63
- "type" : "boolean"
62
+ "dateProfileWednesday": {
63
+ "type": "boolean"
64
64
  },
65
- "description" : {
66
- "$ref" : "template/inlineTemplate.schema.json"
65
+ "description": {
66
+ "$ref": "template/inlineTemplate.schema.json"
67
67
  },
68
- "inactive" : {
69
- "type" : "boolean"
68
+ "inactive": {
69
+ "type": "boolean"
70
70
  },
71
- "interfaceStudioProduct" : {
72
- "$ref" : "common.schema.json#/$defs/caseIdOrFileReference"
71
+ "interfaceStudioProduct": {
72
+ "$ref": "common.schema.json#/$defs/caseIdOrFileReference"
73
73
  },
74
- "metaCaseToOtap" : {
75
- "type" : "boolean"
74
+ "metaCaseToOtap": {
75
+ "type": "boolean"
76
76
  },
77
- "name" : {
78
- "$ref" : "common.schema.json#/$defs/multilanguageStringStructure"
77
+ "name": {
78
+ "$ref": "common.schema.json#/$defs/multilanguageStringStructure"
79
79
  },
80
- "ourProductId" : {
81
- "$ref" : "common.schema.json#/$defs/caseIdOrFileReference"
80
+ "ourProductId": {
81
+ "$ref": "common.schema.json#/$defs/caseIdOrFileReference"
82
+ },
83
+ "_labels": {
84
+ "type": "array",
85
+ "items": {
86
+ "type": "string",
87
+ "minLength": 1
88
+ },
89
+ "uniqueItems": true,
90
+ "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."
82
91
  }
83
92
  },
84
- "required" : [ "_type", "_uid" ],
85
- "title" : "dateProfile",
86
- "type" : "object"
87
- }
93
+ "required": [
94
+ "_type",
95
+ "_uid"
96
+ ],
97
+ "title": "dateProfile",
98
+ "type": "object"
99
+ }
@@ -67,6 +67,15 @@
67
67
  },
68
68
  "ourProductId": {
69
69
  "$ref": "common.schema.json#/$defs/caseIdOrFileReference"
70
+ },
71
+ "_labels": {
72
+ "type": "array",
73
+ "items": {
74
+ "type": "string",
75
+ "minLength": 1
76
+ },
77
+ "uniqueItems": true,
78
+ "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."
70
79
  }
71
80
  },
72
81
  "required": [
@@ -5,40 +5,85 @@
5
5
  "$comment": "Hand-maintained — L2 does not define folderInfo. Lives in packages/schemas/custom/ and is overlaid into extended/ by scripts/extend.mjs. Permissive on purpose (no additionalProperties:false yet); tighten as the shape is nailed down.",
6
6
  "type": "object",
7
7
  "properties": {
8
- "_type": { "const": "folderInfo" },
9
- "_id": { "type": "string" },
10
- "_uid": { "type": "string" },
11
- "folderName": { "type": "string" },
12
- "folderType": { "type": "string" },
13
- "component": { "type": "string" },
14
- "marketPlaceProduct": { "type": "string" },
8
+ "_type": {
9
+ "const": "folderInfo"
10
+ },
11
+ "_id": {
12
+ "type": "string"
13
+ },
14
+ "_uid": {
15
+ "type": "string"
16
+ },
17
+ "folderName": {
18
+ "type": "string"
19
+ },
20
+ "folderType": {
21
+ "type": "string"
22
+ },
23
+ "component": {
24
+ "type": "string"
25
+ },
26
+ "marketPlaceProduct": {
27
+ "type": "string"
28
+ },
15
29
  "marketPlaceAvailableProducts": {
16
30
  "type": "array",
17
- "items": { "$ref": "#/$defs/availableProduct" }
31
+ "items": {
32
+ "$ref": "#/$defs/availableProduct"
33
+ }
34
+ },
35
+ "_labels": {
36
+ "type": "array",
37
+ "items": {
38
+ "type": "string",
39
+ "minLength": 1
40
+ },
41
+ "uniqueItems": true,
42
+ "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."
18
43
  }
19
44
  },
20
- "required": ["_type"],
45
+ "required": [
46
+ "_type"
47
+ ],
21
48
  "$defs": {
22
49
  "availableProduct": {
23
50
  "type": "object",
24
51
  "properties": {
25
- "_type": { "const": "availableProduct" },
26
- "_id": { "type": "string" },
27
- "storeProductId": { "type": "string" },
28
- "storeSpaceId": { "type": "string" },
52
+ "_type": {
53
+ "const": "availableProduct"
54
+ },
55
+ "_id": {
56
+ "type": "string"
57
+ },
58
+ "storeProductId": {
59
+ "type": "string"
60
+ },
61
+ "storeSpaceId": {
62
+ "type": "string"
63
+ },
29
64
  "availableVersions": {
30
65
  "type": "array",
31
- "items": { "$ref": "#/$defs/availableProductVersion" }
66
+ "items": {
67
+ "$ref": "#/$defs/availableProductVersion"
68
+ }
32
69
  }
33
70
  }
34
71
  },
35
72
  "availableProductVersion": {
36
73
  "type": "object",
37
74
  "properties": {
38
- "_type": { "const": "availableProductVersion" },
39
- "_id": { "type": "string" },
40
- "status": { "type": "string" },
41
- "versionName": { "type": "string" }
75
+ "_type": {
76
+ "const": "availableProductVersion"
77
+ },
78
+ "_id": {
79
+ "type": "string"
80
+ },
81
+ "status": {
82
+ "type": "string"
83
+ },
84
+ "versionName": {
85
+ "type": "string"
86
+ }
42
87
  }
43
88
  }
44
89
  }
@@ -1,103 +1,115 @@
1
1
  {
2
- "$id" : "https://grexx.net/studio-next/schemas/form.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/form.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" : "form"
27
+ "_type": {
28
+ "const": "form"
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
- "condition" : {
36
- "$ref" : "conditionList.schema.json"
35
+ "condition": {
36
+ "$ref": "conditionList.schema.json"
37
37
  },
38
- "cssClass" : {
39
- "items" : {
40
- "type" : "string"
38
+ "cssClass": {
39
+ "items": {
40
+ "type": "string"
41
41
  },
42
- "type" : "array"
42
+ "type": "array"
43
43
  },
44
- "dataset" : {
45
- "$ref" : "common.schema.json#/$defs/caseIdOrFileReference"
44
+ "dataset": {
45
+ "$ref": "common.schema.json#/$defs/caseIdOrFileReference"
46
46
  },
47
- "description" : {
48
- "$ref" : "template/inlineTemplate.schema.json"
47
+ "description": {
48
+ "$ref": "template/inlineTemplate.schema.json"
49
49
  },
50
- "formGroup" : {
51
- "$ref" : "formGroup.schema.json"
50
+ "formGroup": {
51
+ "$ref": "formGroup.schema.json"
52
52
  },
53
- "formLogic" : {
54
- "items" : {
55
- "$ref" : "abstractRule.schema.json"
53
+ "formLogic": {
54
+ "items": {
55
+ "$ref": "abstractRule.schema.json"
56
56
  },
57
- "type" : "array"
57
+ "type": "array"
58
58
  },
59
- "formVersion" : {
60
- "type" : "string"
59
+ "formVersion": {
60
+ "type": "string"
61
61
  },
62
- "inactive" : {
63
- "type" : "boolean"
62
+ "inactive": {
63
+ "type": "boolean"
64
64
  },
65
- "instruction" : {
66
- "$ref" : "template/inlineTemplate.schema.json"
65
+ "instruction": {
66
+ "$ref": "template/inlineTemplate.schema.json"
67
67
  },
68
- "interfaceStudioProduct" : {
69
- "$ref" : "common.schema.json#/$defs/caseIdOrFileReference"
68
+ "interfaceStudioProduct": {
69
+ "$ref": "common.schema.json#/$defs/caseIdOrFileReference"
70
70
  },
71
- "isMultiTaskForm" : {
72
- "type" : "boolean"
71
+ "isMultiTaskForm": {
72
+ "type": "boolean"
73
73
  },
74
- "logic" : {
75
- "additionalProperties" : true,
76
- "type" : "object"
74
+ "logic": {
75
+ "additionalProperties": true,
76
+ "type": "object"
77
77
  },
78
- "metaCaseToOtap" : {
79
- "type" : "boolean"
78
+ "metaCaseToOtap": {
79
+ "type": "boolean"
80
80
  },
81
- "name" : {
82
- "$ref" : "common.schema.json#/$defs/multilanguageStringStructure"
81
+ "name": {
82
+ "$ref": "common.schema.json#/$defs/multilanguageStringStructure"
83
83
  },
84
- "onStart" : {
85
- "items" : {
86
- "$ref" : "abstractRule.schema.json"
84
+ "onStart": {
85
+ "items": {
86
+ "$ref": "abstractRule.schema.json"
87
87
  },
88
- "type" : "array"
88
+ "type": "array"
89
89
  },
90
- "ourProductId" : {
91
- "$ref" : "common.schema.json#/$defs/caseIdOrFileReference"
90
+ "ourProductId": {
91
+ "$ref": "common.schema.json#/$defs/caseIdOrFileReference"
92
92
  },
93
- "rights" : {
94
- "items" : {
95
- "$ref" : "formRight.schema.json"
93
+ "rights": {
94
+ "items": {
95
+ "$ref": "formRight.schema.json"
96
96
  },
97
- "type" : "array"
97
+ "type": "array"
98
+ },
99
+ "_labels": {
100
+ "type": "array",
101
+ "items": {
102
+ "type": "string",
103
+ "minLength": 1
104
+ },
105
+ "uniqueItems": true,
106
+ "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."
98
107
  }
99
108
  },
100
- "required" : [ "_type", "_uid" ],
101
- "title" : "form",
102
- "type" : "object"
103
- }
109
+ "required": [
110
+ "_type",
111
+ "_uid"
112
+ ],
113
+ "title": "form",
114
+ "type": "object"
115
+ }