doc-detective-common 3.4.1-dev.2 → 3.4.1-dev.4

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.
Files changed (48) hide show
  1. package/dist/schemas/checkLink_v3.schema.json +2 -2
  2. package/dist/schemas/click_v3.schema.json +142 -6
  3. package/dist/schemas/config_v3.schema.json +2257 -151
  4. package/dist/schemas/find_v3.schema.json +647 -28
  5. package/dist/schemas/httpRequest_v3.schema.json +2 -2
  6. package/dist/schemas/report_v3.schema.json +2264 -158
  7. package/dist/schemas/resolvedTests_v3.schema.json +4478 -266
  8. package/dist/schemas/runCode_v3.schema.json +4 -4
  9. package/dist/schemas/runShell_v3.schema.json +4 -4
  10. package/dist/schemas/screenshot_v3.schema.json +204 -0
  11. package/dist/schemas/spec_v3.schema.json +2264 -158
  12. package/dist/schemas/step_v3.schema.json +1114 -61
  13. package/dist/schemas/test_v3.schema.json +2253 -147
  14. package/dist/schemas/type_v3.schema.json +98 -4
  15. package/package.json +1 -1
  16. package/src/schemas/build/checkLink_v3.schema.json +1 -1
  17. package/src/schemas/build/click_v3.schema.json +71 -3
  18. package/src/schemas/build/find_v3.schema.json +90 -4
  19. package/src/schemas/build/httpRequest_v3.schema.json +1 -1
  20. package/src/schemas/build/runCode_v3.schema.json +2 -2
  21. package/src/schemas/build/runShell_v3.schema.json +2 -2
  22. package/src/schemas/build/screenshot_v3.schema.json +68 -0
  23. package/src/schemas/build/test_v3.schema.json +1 -1
  24. package/src/schemas/build/type_v3.schema.json +48 -1
  25. package/src/schemas/output_schemas/checkLink_v3.schema.json +2 -2
  26. package/src/schemas/output_schemas/click_v3.schema.json +142 -6
  27. package/src/schemas/output_schemas/config_v3.schema.json +2257 -151
  28. package/src/schemas/output_schemas/find_v3.schema.json +647 -28
  29. package/src/schemas/output_schemas/httpRequest_v3.schema.json +2 -2
  30. package/src/schemas/output_schemas/report_v3.schema.json +2264 -158
  31. package/src/schemas/output_schemas/resolvedTests_v3.schema.json +4478 -266
  32. package/src/schemas/output_schemas/runCode_v3.schema.json +4 -4
  33. package/src/schemas/output_schemas/runShell_v3.schema.json +4 -4
  34. package/src/schemas/output_schemas/screenshot_v3.schema.json +204 -0
  35. package/src/schemas/output_schemas/spec_v3.schema.json +2264 -158
  36. package/src/schemas/output_schemas/step_v3.schema.json +1114 -61
  37. package/src/schemas/output_schemas/test_v3.schema.json +2253 -147
  38. package/src/schemas/output_schemas/type_v3.schema.json +98 -4
  39. package/src/schemas/schemas.json +15467 -725
  40. package/src/schemas/src_schemas/checkLink_v3.schema.json +1 -1
  41. package/src/schemas/src_schemas/click_v3.schema.json +71 -3
  42. package/src/schemas/src_schemas/find_v3.schema.json +87 -4
  43. package/src/schemas/src_schemas/httpRequest_v3.schema.json +1 -1
  44. package/src/schemas/src_schemas/runCode_v3.schema.json +2 -2
  45. package/src/schemas/src_schemas/runShell_v3.schema.json +2 -2
  46. package/src/schemas/src_schemas/screenshot_v3.schema.json +68 -0
  47. package/src/schemas/src_schemas/test_v3.schema.json +1 -1
  48. package/src/schemas/src_schemas/type_v3.schema.json +48 -1
@@ -13,7 +13,7 @@
13
13
  {
14
14
  "type": "array",
15
15
  "items": {
16
- "oneOf": [
16
+ "anyOf": [
17
17
  {
18
18
  "type": "string"
19
19
  }
@@ -36,7 +36,7 @@
36
36
  {
37
37
  "type": "array",
38
38
  "items": {
39
- "oneOf": [
39
+ "anyOf": [
40
40
  {
41
41
  "type": "string"
42
42
  }
@@ -53,6 +53,53 @@
53
53
  "selector": {
54
54
  "type": "string",
55
55
  "description": "Selector for the element to type into. If not specified, the typing occurs in the active element."
56
+ },
57
+ "elementText": {
58
+ "type": "string",
59
+ "description": "Display text of the element to type into. If combined with other element finding fields, the element must match all specified criteria."
60
+ },
61
+ "elementId": {
62
+ "type": "string",
63
+ "description": "ID attribute of the element to find. Supports exact match or regex pattern using /pattern/ syntax."
64
+ },
65
+ "elementTestId": {
66
+ "type": "string",
67
+ "description": "data-testid attribute of the element to find. Supports exact match or regex pattern using /pattern/ syntax."
68
+ },
69
+ "elementClass": {
70
+ "anyOf": [
71
+ {
72
+ "type": "string"
73
+ },
74
+ {
75
+ "type": "array",
76
+ "items": {
77
+ "type": "string"
78
+ }
79
+ }
80
+ ],
81
+ "description": "Class or array of classes that the element must have. Each class supports exact match or regex pattern using /pattern/ syntax. Element must have all specified classes."
82
+ },
83
+ "elementAttribute": {
84
+ "type": "object",
85
+ "description": "Object of attribute key-value pairs that the element must have. Values can be strings (supporting /pattern/ regex), numbers, or booleans. Boolean true matches attribute presence, false matches absence.",
86
+ "additionalProperties": {
87
+ "anyOf": [
88
+ {
89
+ "type": "string"
90
+ },
91
+ {
92
+ "type": "number"
93
+ },
94
+ {
95
+ "type": "boolean"
96
+ }
97
+ ]
98
+ }
99
+ },
100
+ "elementAria": {
101
+ "type": "string",
102
+ "description": "Computed accessible name of the element per ARIA specification. Supports exact match or regex pattern using /pattern/ syntax."
56
103
  }
57
104
  },
58
105
  "required": [
@@ -73,7 +120,7 @@
73
120
  {
74
121
  "type": "array",
75
122
  "items": {
76
- "oneOf": [
123
+ "anyOf": [
77
124
  {
78
125
  "type": "string"
79
126
  }
@@ -96,7 +143,7 @@
96
143
  {
97
144
  "type": "array",
98
145
  "items": {
99
- "oneOf": [
146
+ "anyOf": [
100
147
  {
101
148
  "type": "string"
102
149
  }
@@ -113,6 +160,53 @@
113
160
  "selector": {
114
161
  "type": "string",
115
162
  "description": "Selector for the element to type into. If not specified, the typing occurs in the active element."
163
+ },
164
+ "elementText": {
165
+ "type": "string",
166
+ "description": "Display text of the element to type into. If combined with other element finding fields, the element must match all specified criteria."
167
+ },
168
+ "elementId": {
169
+ "type": "string",
170
+ "description": "ID attribute of the element to find. Supports exact match or regex pattern using /pattern/ syntax."
171
+ },
172
+ "elementTestId": {
173
+ "type": "string",
174
+ "description": "data-testid attribute of the element to find. Supports exact match or regex pattern using /pattern/ syntax."
175
+ },
176
+ "elementClass": {
177
+ "anyOf": [
178
+ {
179
+ "type": "string"
180
+ },
181
+ {
182
+ "type": "array",
183
+ "items": {
184
+ "type": "string"
185
+ }
186
+ }
187
+ ],
188
+ "description": "Class or array of classes that the element must have. Each class supports exact match or regex pattern using /pattern/ syntax. Element must have all specified classes."
189
+ },
190
+ "elementAttribute": {
191
+ "type": "object",
192
+ "description": "Object of attribute key-value pairs that the element must have. Values can be strings (supporting /pattern/ regex), numbers, or booleans. Boolean true matches attribute presence, false matches absence.",
193
+ "additionalProperties": {
194
+ "anyOf": [
195
+ {
196
+ "type": "string"
197
+ },
198
+ {
199
+ "type": "number"
200
+ },
201
+ {
202
+ "type": "boolean"
203
+ }
204
+ ]
205
+ }
206
+ },
207
+ "elementAria": {
208
+ "type": "string",
209
+ "description": "Computed accessible name of the element per ARIA specification. Supports exact match or regex pattern using /pattern/ syntax."
116
210
  }
117
211
  },
118
212
  "required": [
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "doc-detective-common",
3
- "version": "3.4.1-dev.2",
3
+ "version": "3.4.1-dev.4",
4
4
  "description": "Shared components for Doc Detective projects.",
5
5
  "main": "src/index.js",
6
6
  "scripts": {
@@ -53,7 +53,7 @@
53
53
  {
54
54
  "type": "array",
55
55
  "items": {
56
- "oneOf": [
56
+ "anyOf": [
57
57
  {
58
58
  "type": "integer"
59
59
  }
@@ -18,7 +18,7 @@
18
18
  "string": {
19
19
  "title": "Click element (simple)",
20
20
  "type": "string",
21
- "description": "Display text or selector of the element to find."
21
+ "description": "Identifier for the element to click. Can be a selector, element text, ARIA name, ID, or test ID."
22
22
  },
23
23
  "button": {
24
24
  "description": "Kind of click to perform.",
@@ -42,6 +42,31 @@
42
42
  "required": [
43
43
  "elementText"
44
44
  ]
45
+ },
46
+ {
47
+ "required": [
48
+ "elementId"
49
+ ]
50
+ },
51
+ {
52
+ "required": [
53
+ "elementTestId"
54
+ ]
55
+ },
56
+ {
57
+ "required": [
58
+ "elementClass"
59
+ ]
60
+ },
61
+ {
62
+ "required": [
63
+ "elementAttribute"
64
+ ]
65
+ },
66
+ {
67
+ "required": [
68
+ "elementAria"
69
+ ]
45
70
  }
46
71
  ],
47
72
  "properties": {
@@ -50,11 +75,54 @@
50
75
  },
51
76
  "elementText": {
52
77
  "type": "string",
53
- "description": "Display text of the element to click. If combined with `selector`, the element must match both the text and the selector."
78
+ "description": "Display text of the element to click. If combined with other element finding fields, the element must match all specified criteria."
54
79
  },
55
80
  "selector": {
56
81
  "type": "string",
57
- "description": "Selector of the element to click. If combined with `elementText`, the element must match both the text and the selector."
82
+ "description": "Selector of the element to click. If combined with other element finding fields, the element must match all specified criteria."
83
+ },
84
+ "elementId": {
85
+ "type": "string",
86
+ "description": "ID attribute of the element to click. Supports exact match or regex pattern using /pattern/ syntax."
87
+ },
88
+ "elementTestId": {
89
+ "type": "string",
90
+ "description": "data-testid attribute of the element to click. Supports exact match or regex pattern using /pattern/ syntax."
91
+ },
92
+ "elementClass": {
93
+ "anyOf": [
94
+ {
95
+ "type": "string"
96
+ },
97
+ {
98
+ "type": "array",
99
+ "items": {
100
+ "type": "string"
101
+ }
102
+ }
103
+ ],
104
+ "description": "Class or array of classes that the element must have. Each class supports exact match or regex pattern using /pattern/ syntax. Element must have all specified classes."
105
+ },
106
+ "elementAttribute": {
107
+ "type": "object",
108
+ "description": "Object of attribute key-value pairs that the element must have. Values can be strings (supporting /pattern/ regex), numbers, or booleans. Boolean true matches attribute presence, false matches absence.",
109
+ "additionalProperties": {
110
+ "anyOf": [
111
+ {
112
+ "type": "string"
113
+ },
114
+ {
115
+ "type": "number"
116
+ },
117
+ {
118
+ "type": "boolean"
119
+ }
120
+ ]
121
+ }
122
+ },
123
+ "elementAria": {
124
+ "type": "string",
125
+ "description": "Computed accessible name of the element per ARIA specification. Supports exact match or regex pattern using /pattern/ syntax."
58
126
  }
59
127
  }
60
128
  }
@@ -15,7 +15,7 @@
15
15
  "string": {
16
16
  "title": "Find element (simple)",
17
17
  "type": "string",
18
- "description": "Display text or selector of the element to find."
18
+ "description": "Identifier for the element to find. Can be a selector, element text, ARIA name, ID, or test ID."
19
19
  },
20
20
  "object": {
21
21
  "title": "Find element (detailed)",
@@ -30,17 +30,85 @@
30
30
  "required": [
31
31
  "elementText"
32
32
  ]
33
+ },
34
+ {
35
+ "required": [
36
+ "elementId"
37
+ ]
38
+ },
39
+ {
40
+ "required": [
41
+ "elementTestId"
42
+ ]
43
+ },
44
+ {
45
+ "required": [
46
+ "elementClass"
47
+ ]
48
+ },
49
+ {
50
+ "required": [
51
+ "elementAttribute"
52
+ ]
53
+ },
54
+ {
55
+ "required": [
56
+ "elementAria"
57
+ ]
33
58
  }
34
59
  ],
35
60
  "additionalProperties": false,
36
61
  "properties": {
37
62
  "elementText": {
38
63
  "type": "string",
39
- "description": "Display text of the element to find. If combined with `selector`, the element must match both the text and the selector."
64
+ "description": "Display text of the element to find. If combined with other element finding fields, the element must match all specified criteria."
40
65
  },
41
66
  "selector": {
42
67
  "type": "string",
43
- "description": "Selector of the element to find. If combined with `elementText`, the element must match both the text and the selector."
68
+ "description": "Selector of the element to find. If combined with other element finding fields, the element must match all specified criteria."
69
+ },
70
+ "elementId": {
71
+ "type": "string",
72
+ "description": "ID attribute of the element to find. Supports exact match or regex pattern using /pattern/ syntax."
73
+ },
74
+ "elementTestId": {
75
+ "type": "string",
76
+ "description": "data-testid attribute of the element to find. Supports exact match or regex pattern using /pattern/ syntax."
77
+ },
78
+ "elementClass": {
79
+ "anyOf": [
80
+ {
81
+ "type": "string"
82
+ },
83
+ {
84
+ "type": "array",
85
+ "items": {
86
+ "type": "string"
87
+ }
88
+ }
89
+ ],
90
+ "description": "Class or array of classes that the element must have. Each class supports exact match or regex pattern using /pattern/ syntax. Element must have all specified classes."
91
+ },
92
+ "elementAttribute": {
93
+ "type": "object",
94
+ "description": "Object of attribute key-value pairs that the element must have. Values can be strings (supporting /pattern/ regex), numbers, or booleans. Boolean true matches attribute presence, false matches absence.",
95
+ "additionalProperties": {
96
+ "anyOf": [
97
+ {
98
+ "type": "string"
99
+ },
100
+ {
101
+ "type": "number"
102
+ },
103
+ {
104
+ "type": "boolean"
105
+ }
106
+ ]
107
+ }
108
+ },
109
+ "elementAria": {
110
+ "type": "string",
111
+ "description": "Computed accessible name of the element per ARIA specification. Supports exact match or regex pattern using /pattern/ syntax."
44
112
  },
45
113
  "timeout": {
46
114
  "type": "integer",
@@ -80,7 +148,12 @@
80
148
  "type": "object",
81
149
  "required": [
82
150
  "selector",
83
- "elementText"
151
+ "elementText",
152
+ "elementId",
153
+ "elementTestId",
154
+ "elementClass",
155
+ "elementAttribute",
156
+ "elementAria"
84
157
  ],
85
158
  "title": "Find element and type"
86
159
  }
@@ -122,6 +195,19 @@
122
195
  ],
123
196
  "inputDelay": 100
124
197
  }
198
+ },
199
+ {
200
+ "elementId": "/^user-[0-9]+$/",
201
+ "elementClass": [
202
+ "admin",
203
+ "/^level-[1-5]$/"
204
+ ],
205
+ "elementAttribute": {
206
+ "data-active": true,
207
+ "data-score": "/^[0-9]+$/"
208
+ },
209
+ "timeout": 8000,
210
+ "moveTo": false
125
211
  }
126
212
  ],
127
213
  "$id": "/home/runner/work/common/common/src/schemas/src_schemas/find_v3.schema.json"
@@ -74,7 +74,7 @@
74
74
  "description": "Accepted status codes. If the specified URL returns a code other than what is specified here, the action fails.",
75
75
  "type": "array",
76
76
  "items": {
77
- "oneOf": [
77
+ "anyOf": [
78
78
  {
79
79
  "type": "integer"
80
80
  }
@@ -33,7 +33,7 @@
33
33
  "type": "array",
34
34
  "description": "Arguments for the command.",
35
35
  "items": {
36
- "oneOf": [
36
+ "anyOf": [
37
37
  {
38
38
  "type": "string"
39
39
  }
@@ -50,7 +50,7 @@
50
50
  "type": "array",
51
51
  "description": "Expected exit codes of the command. If the command's actual exit code isn't in this list, the step fails.",
52
52
  "items": {
53
- "oneOf": [
53
+ "anyOf": [
54
54
  {
55
55
  "type": "integer"
56
56
  }
@@ -35,7 +35,7 @@
35
35
  "type": "array",
36
36
  "description": "Arguments for the command.",
37
37
  "items": {
38
- "oneOf": [
38
+ "anyOf": [
39
39
  {
40
40
  "type": "string"
41
41
  }
@@ -52,7 +52,7 @@
52
52
  "type": "array",
53
53
  "description": "Expected exit codes of the command. If the command's actual exit code isn't in this list, the step fails.",
54
54
  "items": {
55
- "oneOf": [
55
+ "anyOf": [
56
56
  {
57
57
  "type": "integer"
58
58
  }
@@ -87,6 +87,31 @@
87
87
  "required": [
88
88
  "elementText"
89
89
  ]
90
+ },
91
+ {
92
+ "required": [
93
+ "elementId"
94
+ ]
95
+ },
96
+ {
97
+ "required": [
98
+ "elementTestId"
99
+ ]
100
+ },
101
+ {
102
+ "required": [
103
+ "elementClass"
104
+ ]
105
+ },
106
+ {
107
+ "required": [
108
+ "elementAttribute"
109
+ ]
110
+ },
111
+ {
112
+ "required": [
113
+ "elementAria"
114
+ ]
90
115
  }
91
116
  ],
92
117
  "properties": {
@@ -98,6 +123,49 @@
98
123
  "type": "string",
99
124
  "description": "Selector of the element to screenshot."
100
125
  },
126
+ "elementId": {
127
+ "type": "string",
128
+ "description": "ID attribute of the element to find. Supports exact match or regex pattern using /pattern/ syntax."
129
+ },
130
+ "elementTestId": {
131
+ "type": "string",
132
+ "description": "data-testid attribute of the element to find. Supports exact match or regex pattern using /pattern/ syntax."
133
+ },
134
+ "elementClass": {
135
+ "anyOf": [
136
+ {
137
+ "type": "string"
138
+ },
139
+ {
140
+ "type": "array",
141
+ "items": {
142
+ "type": "string"
143
+ }
144
+ }
145
+ ],
146
+ "description": "Class or array of classes that the element must have. Each class supports exact match or regex pattern using /pattern/ syntax. Element must have all specified classes."
147
+ },
148
+ "elementAttribute": {
149
+ "type": "object",
150
+ "description": "Object of attribute key-value pairs that the element must have. Values can be strings (supporting /pattern/ regex), numbers, or booleans. Boolean true matches attribute presence, false matches absence.",
151
+ "additionalProperties": {
152
+ "anyOf": [
153
+ {
154
+ "type": "string"
155
+ },
156
+ {
157
+ "type": "number"
158
+ },
159
+ {
160
+ "type": "boolean"
161
+ }
162
+ ]
163
+ }
164
+ },
165
+ "elementAria": {
166
+ "type": "string",
167
+ "description": "Computed accessible name of the element per ARIA specification. Supports exact match or regex pattern using /pattern/ syntax."
168
+ },
101
169
  "padding": {
102
170
  "anyOf": [
103
171
  {
@@ -25,7 +25,7 @@
25
25
  "type": "array",
26
26
  "description": "Contexts to run the test in. Overrides contexts defined at the config and spec levels.",
27
27
  "items": {
28
- "oneOf": [
28
+ "anyOf": [
29
29
  {
30
30
  "$ref": "/home/runner/work/common/common/src/schemas/build/context_v3.schema.json#"
31
31
  }
@@ -22,7 +22,7 @@
22
22
  {
23
23
  "type": "array",
24
24
  "items": {
25
- "oneOf": [
25
+ "anyOf": [
26
26
  {
27
27
  "type": "string"
28
28
  }
@@ -46,6 +46,53 @@
46
46
  "selector": {
47
47
  "type": "string",
48
48
  "description": "Selector for the element to type into. If not specified, the typing occurs in the active element."
49
+ },
50
+ "elementText": {
51
+ "type": "string",
52
+ "description": "Display text of the element to type into. If combined with other element finding fields, the element must match all specified criteria."
53
+ },
54
+ "elementId": {
55
+ "type": "string",
56
+ "description": "ID attribute of the element to find. Supports exact match or regex pattern using /pattern/ syntax."
57
+ },
58
+ "elementTestId": {
59
+ "type": "string",
60
+ "description": "data-testid attribute of the element to find. Supports exact match or regex pattern using /pattern/ syntax."
61
+ },
62
+ "elementClass": {
63
+ "anyOf": [
64
+ {
65
+ "type": "string"
66
+ },
67
+ {
68
+ "type": "array",
69
+ "items": {
70
+ "type": "string"
71
+ }
72
+ }
73
+ ],
74
+ "description": "Class or array of classes that the element must have. Each class supports exact match or regex pattern using /pattern/ syntax. Element must have all specified classes."
75
+ },
76
+ "elementAttribute": {
77
+ "type": "object",
78
+ "description": "Object of attribute key-value pairs that the element must have. Values can be strings (supporting /pattern/ regex), numbers, or booleans. Boolean true matches attribute presence, false matches absence.",
79
+ "additionalProperties": {
80
+ "anyOf": [
81
+ {
82
+ "type": "string"
83
+ },
84
+ {
85
+ "type": "number"
86
+ },
87
+ {
88
+ "type": "boolean"
89
+ }
90
+ ]
91
+ }
92
+ },
93
+ "elementAria": {
94
+ "type": "string",
95
+ "description": "Computed accessible name of the element per ARIA specification. Supports exact match or regex pattern using /pattern/ syntax."
49
96
  }
50
97
  },
51
98
  "required": [
@@ -44,7 +44,7 @@
44
44
  {
45
45
  "type": "array",
46
46
  "items": {
47
- "oneOf": [
47
+ "anyOf": [
48
48
  {
49
49
  "type": "integer"
50
50
  }
@@ -107,7 +107,7 @@
107
107
  {
108
108
  "type": "array",
109
109
  "items": {
110
- "oneOf": [
110
+ "anyOf": [
111
111
  {
112
112
  "type": "integer"
113
113
  }