doc-detective-common 4.28.0 → 4.29.1

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/dist/index.cjs CHANGED
@@ -9323,7 +9323,7 @@ var schemas_default = {
9323
9323
  },
9324
9324
  elementText: {
9325
9325
  type: "string",
9326
- description: "Display text of the element to find. If combined with other element finding fields, the element must match all specified criteria."
9326
+ description: "Display text of the element to find. Matched against the element's full visible text with whitespace normalized (leading/trailing trimmed, internal runs collapsed to single spaces), so text a framework splits across several nodes still matches and a driver's surrounding whitespace doesn't cause a miss. Wrap the value in slashes (`/pattern/`) to match a substring by regular expression instead of the whole normalized text. If combined with other element finding fields, the element must match all specified criteria."
9327
9327
  },
9328
9328
  selector: {
9329
9329
  type: "string",
@@ -13469,7 +13469,7 @@ var schemas_default = {
13469
13469
  },
13470
13470
  elementText: {
13471
13471
  type: "string",
13472
- description: "Display text of the element to find. If combined with other element finding fields, the element must match all specified criteria."
13472
+ description: "Display text of the element to find. Matched against the element's full visible text with whitespace normalized (leading/trailing trimmed, internal runs collapsed to single spaces), so text a framework splits across several nodes still matches and a driver's surrounding whitespace doesn't cause a miss. Wrap the value in slashes (`/pattern/`) to match a substring by regular expression instead of the whole normalized text. If combined with other element finding fields, the element must match all specified criteria."
13473
13473
  },
13474
13474
  selector: {
13475
13475
  type: "string",
@@ -18700,7 +18700,7 @@ var schemas_default = {
18700
18700
  },
18701
18701
  elementText: {
18702
18702
  type: "string",
18703
- description: "Text content the element must contain. Supports exact match or regex pattern using /pattern/ syntax."
18703
+ description: "Display text of the element to wait for. Matched against the element's full visible text with whitespace normalized (leading/trailing trimmed, internal runs collapsed), so framework-fragmented text still matches. Wrap the value in slashes (`/pattern/`) to match a substring by regular expression instead of the whole normalized text."
18704
18704
  },
18705
18705
  elementId: {
18706
18706
  type: "string",
@@ -19232,7 +19232,7 @@ var schemas_default = {
19232
19232
  },
19233
19233
  elementText: {
19234
19234
  type: "string",
19235
- description: "Text content the element must contain. Supports exact match or regex pattern using /pattern/ syntax."
19235
+ description: "Display text of the element to wait for. Matched against the element's full visible text with whitespace normalized (leading/trailing trimmed, internal runs collapsed), so framework-fragmented text still matches. Wrap the value in slashes (`/pattern/`) to match a substring by regular expression instead of the whole normalized text."
19236
19236
  },
19237
19237
  elementId: {
19238
19238
  type: "string",
@@ -54962,7 +54962,7 @@ var schemas_default = {
54962
54962
  },
54963
54963
  elementText: {
54964
54964
  type: "string",
54965
- description: "Display text of the element to find. If combined with other element finding fields, the element must match all specified criteria."
54965
+ description: "Display text of the element to find. Matched against the element's full visible text with whitespace normalized (leading/trailing trimmed, internal runs collapsed to single spaces), so text a framework splits across several nodes still matches and a driver's surrounding whitespace doesn't cause a miss. Wrap the value in slashes (`/pattern/`) to match a substring by regular expression instead of the whole normalized text. If combined with other element finding fields, the element must match all specified criteria."
54966
54966
  },
54967
54967
  selector: {
54968
54968
  type: "string",
@@ -59108,7 +59108,7 @@ var schemas_default = {
59108
59108
  },
59109
59109
  elementText: {
59110
59110
  type: "string",
59111
- description: "Display text of the element to find. If combined with other element finding fields, the element must match all specified criteria."
59111
+ description: "Display text of the element to find. Matched against the element's full visible text with whitespace normalized (leading/trailing trimmed, internal runs collapsed to single spaces), so text a framework splits across several nodes still matches and a driver's surrounding whitespace doesn't cause a miss. Wrap the value in slashes (`/pattern/`) to match a substring by regular expression instead of the whole normalized text. If combined with other element finding fields, the element must match all specified criteria."
59112
59112
  },
59113
59113
  selector: {
59114
59114
  type: "string",
@@ -64339,7 +64339,7 @@ var schemas_default = {
64339
64339
  },
64340
64340
  elementText: {
64341
64341
  type: "string",
64342
- description: "Text content the element must contain. Supports exact match or regex pattern using /pattern/ syntax."
64342
+ description: "Display text of the element to wait for. Matched against the element's full visible text with whitespace normalized (leading/trailing trimmed, internal runs collapsed), so framework-fragmented text still matches. Wrap the value in slashes (`/pattern/`) to match a substring by regular expression instead of the whole normalized text."
64343
64343
  },
64344
64344
  elementId: {
64345
64345
  type: "string",
@@ -64871,7 +64871,7 @@ var schemas_default = {
64871
64871
  },
64872
64872
  elementText: {
64873
64873
  type: "string",
64874
- description: "Text content the element must contain. Supports exact match or regex pattern using /pattern/ syntax."
64874
+ description: "Display text of the element to wait for. Matched against the element's full visible text with whitespace normalized (leading/trailing trimmed, internal runs collapsed), so framework-fragmented text still matches. Wrap the value in slashes (`/pattern/`) to match a substring by regular expression instead of the whole normalized text."
64875
64875
  },
64876
64876
  elementId: {
64877
64877
  type: "string",
@@ -95535,7 +95535,7 @@ var schemas_default = {
95535
95535
  },
95536
95536
  elementText: {
95537
95537
  type: "string",
95538
- description: "Display text of the element to find. If combined with other element finding fields, the element must match all specified criteria."
95538
+ description: "Display text of the element to find. Matched against the element's full visible text with whitespace normalized (leading/trailing trimmed, internal runs collapsed to single spaces), so text a framework splits across several nodes still matches and a driver's surrounding whitespace doesn't cause a miss. Wrap the value in slashes (`/pattern/`) to match a substring by regular expression instead of the whole normalized text. If combined with other element finding fields, the element must match all specified criteria."
95539
95539
  },
95540
95540
  selector: {
95541
95541
  type: "string",
@@ -99681,7 +99681,7 @@ var schemas_default = {
99681
99681
  },
99682
99682
  elementText: {
99683
99683
  type: "string",
99684
- description: "Display text of the element to find. If combined with other element finding fields, the element must match all specified criteria."
99684
+ description: "Display text of the element to find. Matched against the element's full visible text with whitespace normalized (leading/trailing trimmed, internal runs collapsed to single spaces), so text a framework splits across several nodes still matches and a driver's surrounding whitespace doesn't cause a miss. Wrap the value in slashes (`/pattern/`) to match a substring by regular expression instead of the whole normalized text. If combined with other element finding fields, the element must match all specified criteria."
99685
99685
  },
99686
99686
  selector: {
99687
99687
  type: "string",
@@ -103963,7 +103963,7 @@ var schemas_default = {
103963
103963
  },
103964
103964
  elementText: {
103965
103965
  type: "string",
103966
- description: "Text content the element must contain. Supports exact match or regex pattern using /pattern/ syntax."
103966
+ description: "Display text of the element to wait for. Matched against the element's full visible text with whitespace normalized (leading/trailing trimmed, internal runs collapsed), so framework-fragmented text still matches. Wrap the value in slashes (`/pattern/`) to match a substring by regular expression instead of the whole normalized text."
103967
103967
  },
103968
103968
  elementId: {
103969
103969
  type: "string",
@@ -104495,7 +104495,7 @@ var schemas_default = {
104495
104495
  },
104496
104496
  elementText: {
104497
104497
  type: "string",
104498
- description: "Text content the element must contain. Supports exact match or regex pattern using /pattern/ syntax."
104498
+ description: "Display text of the element to wait for. Matched against the element's full visible text with whitespace normalized (leading/trailing trimmed, internal runs collapsed), so framework-fragmented text still matches. Wrap the value in slashes (`/pattern/`) to match a substring by regular expression instead of the whole normalized text."
104499
104499
  },
104500
104500
  elementId: {
104501
104501
  type: "string",
@@ -113888,7 +113888,7 @@ var schemas_default = {
113888
113888
  },
113889
113889
  elementText: {
113890
113890
  type: "string",
113891
- description: "Display text of the element to find. If combined with other element finding fields, the element must match all specified criteria."
113891
+ description: "Display text of the element to find. Matched against the element's full visible text with whitespace normalized (leading/trailing trimmed, internal runs collapsed to single spaces), so text a framework splits across several nodes still matches and a driver's surrounding whitespace doesn't cause a miss. Wrap the value in slashes (`/pattern/`) to match a substring by regular expression instead of the whole normalized text. If combined with other element finding fields, the element must match all specified criteria."
113892
113892
  },
113893
113893
  selector: {
113894
113894
  type: "string",
@@ -118034,7 +118034,7 @@ var schemas_default = {
118034
118034
  },
118035
118035
  elementText: {
118036
118036
  type: "string",
118037
- description: "Display text of the element to find. If combined with other element finding fields, the element must match all specified criteria."
118037
+ description: "Display text of the element to find. Matched against the element's full visible text with whitespace normalized (leading/trailing trimmed, internal runs collapsed to single spaces), so text a framework splits across several nodes still matches and a driver's surrounding whitespace doesn't cause a miss. Wrap the value in slashes (`/pattern/`) to match a substring by regular expression instead of the whole normalized text. If combined with other element finding fields, the element must match all specified criteria."
118038
118038
  },
118039
118039
  selector: {
118040
118040
  type: "string",
@@ -123265,7 +123265,7 @@ var schemas_default = {
123265
123265
  },
123266
123266
  elementText: {
123267
123267
  type: "string",
123268
- description: "Text content the element must contain. Supports exact match or regex pattern using /pattern/ syntax."
123268
+ description: "Display text of the element to wait for. Matched against the element's full visible text with whitespace normalized (leading/trailing trimmed, internal runs collapsed), so framework-fragmented text still matches. Wrap the value in slashes (`/pattern/`) to match a substring by regular expression instead of the whole normalized text."
123269
123269
  },
123270
123270
  elementId: {
123271
123271
  type: "string",
@@ -123797,7 +123797,7 @@ var schemas_default = {
123797
123797
  },
123798
123798
  elementText: {
123799
123799
  type: "string",
123800
- description: "Text content the element must contain. Supports exact match or regex pattern using /pattern/ syntax."
123800
+ description: "Display text of the element to wait for. Matched against the element's full visible text with whitespace normalized (leading/trailing trimmed, internal runs collapsed), so framework-fragmented text still matches. Wrap the value in slashes (`/pattern/`) to match a substring by regular expression instead of the whole normalized text."
123801
123801
  },
123802
123802
  elementId: {
123803
123803
  type: "string",
@@ -159527,7 +159527,7 @@ var schemas_default = {
159527
159527
  },
159528
159528
  elementText: {
159529
159529
  type: "string",
159530
- description: "Display text of the element to find. If combined with other element finding fields, the element must match all specified criteria."
159530
+ description: "Display text of the element to find. Matched against the element's full visible text with whitespace normalized (leading/trailing trimmed, internal runs collapsed to single spaces), so text a framework splits across several nodes still matches and a driver's surrounding whitespace doesn't cause a miss. Wrap the value in slashes (`/pattern/`) to match a substring by regular expression instead of the whole normalized text. If combined with other element finding fields, the element must match all specified criteria."
159531
159531
  },
159532
159532
  selector: {
159533
159533
  type: "string",
@@ -163673,7 +163673,7 @@ var schemas_default = {
163673
163673
  },
163674
163674
  elementText: {
163675
163675
  type: "string",
163676
- description: "Display text of the element to find. If combined with other element finding fields, the element must match all specified criteria."
163676
+ description: "Display text of the element to find. Matched against the element's full visible text with whitespace normalized (leading/trailing trimmed, internal runs collapsed to single spaces), so text a framework splits across several nodes still matches and a driver's surrounding whitespace doesn't cause a miss. Wrap the value in slashes (`/pattern/`) to match a substring by regular expression instead of the whole normalized text. If combined with other element finding fields, the element must match all specified criteria."
163677
163677
  },
163678
163678
  selector: {
163679
163679
  type: "string",
@@ -168904,7 +168904,7 @@ var schemas_default = {
168904
168904
  },
168905
168905
  elementText: {
168906
168906
  type: "string",
168907
- description: "Text content the element must contain. Supports exact match or regex pattern using /pattern/ syntax."
168907
+ description: "Display text of the element to wait for. Matched against the element's full visible text with whitespace normalized (leading/trailing trimmed, internal runs collapsed), so framework-fragmented text still matches. Wrap the value in slashes (`/pattern/`) to match a substring by regular expression instead of the whole normalized text."
168908
168908
  },
168909
168909
  elementId: {
168910
168910
  type: "string",
@@ -169436,7 +169436,7 @@ var schemas_default = {
169436
169436
  },
169437
169437
  elementText: {
169438
169438
  type: "string",
169439
- description: "Text content the element must contain. Supports exact match or regex pattern using /pattern/ syntax."
169439
+ description: "Display text of the element to wait for. Matched against the element's full visible text with whitespace normalized (leading/trailing trimmed, internal runs collapsed), so framework-fragmented text still matches. Wrap the value in slashes (`/pattern/`) to match a substring by regular expression instead of the whole normalized text."
169440
169440
  },
169441
169441
  elementId: {
169442
169442
  type: "string",
@@ -206905,7 +206905,7 @@ var schemas_default = {
206905
206905
  },
206906
206906
  elementText: {
206907
206907
  type: "string",
206908
- description: "Display text of the element to find. If combined with other element finding fields, the element must match all specified criteria."
206908
+ description: "Display text of the element to find. Matched against the element's full visible text with whitespace normalized (leading/trailing trimmed, internal runs collapsed to single spaces), so text a framework splits across several nodes still matches and a driver's surrounding whitespace doesn't cause a miss. Wrap the value in slashes (`/pattern/`) to match a substring by regular expression instead of the whole normalized text. If combined with other element finding fields, the element must match all specified criteria."
206909
206909
  },
206910
206910
  selector: {
206911
206911
  type: "string",
@@ -211051,7 +211051,7 @@ var schemas_default = {
211051
211051
  },
211052
211052
  elementText: {
211053
211053
  type: "string",
211054
- description: "Display text of the element to find. If combined with other element finding fields, the element must match all specified criteria."
211054
+ description: "Display text of the element to find. Matched against the element's full visible text with whitespace normalized (leading/trailing trimmed, internal runs collapsed to single spaces), so text a framework splits across several nodes still matches and a driver's surrounding whitespace doesn't cause a miss. Wrap the value in slashes (`/pattern/`) to match a substring by regular expression instead of the whole normalized text. If combined with other element finding fields, the element must match all specified criteria."
211055
211055
  },
211056
211056
  selector: {
211057
211057
  type: "string",
@@ -216282,7 +216282,7 @@ var schemas_default = {
216282
216282
  },
216283
216283
  elementText: {
216284
216284
  type: "string",
216285
- description: "Text content the element must contain. Supports exact match or regex pattern using /pattern/ syntax."
216285
+ description: "Display text of the element to wait for. Matched against the element's full visible text with whitespace normalized (leading/trailing trimmed, internal runs collapsed), so framework-fragmented text still matches. Wrap the value in slashes (`/pattern/`) to match a substring by regular expression instead of the whole normalized text."
216286
216286
  },
216287
216287
  elementId: {
216288
216288
  type: "string",
@@ -216814,7 +216814,7 @@ var schemas_default = {
216814
216814
  },
216815
216815
  elementText: {
216816
216816
  type: "string",
216817
- description: "Text content the element must contain. Supports exact match or regex pattern using /pattern/ syntax."
216817
+ description: "Display text of the element to wait for. Matched against the element's full visible text with whitespace normalized (leading/trailing trimmed, internal runs collapsed), so framework-fragmented text still matches. Wrap the value in slashes (`/pattern/`) to match a substring by regular expression instead of the whole normalized text."
216818
216818
  },
216819
216819
  elementId: {
216820
216820
  type: "string",
@@ -251806,7 +251806,7 @@ var schemas_default = {
251806
251806
  },
251807
251807
  elementText: {
251808
251808
  type: "string",
251809
- description: "Display text of the element to find. If combined with other element finding fields, the element must match all specified criteria."
251809
+ description: "Display text of the element to find. Matched against the element's full visible text with whitespace normalized (leading/trailing trimmed, internal runs collapsed to single spaces), so text a framework splits across several nodes still matches and a driver's surrounding whitespace doesn't cause a miss. Wrap the value in slashes (`/pattern/`) to match a substring by regular expression instead of the whole normalized text. If combined with other element finding fields, the element must match all specified criteria."
251810
251810
  },
251811
251811
  selector: {
251812
251812
  type: "string",
@@ -255952,7 +255952,7 @@ var schemas_default = {
255952
255952
  },
255953
255953
  elementText: {
255954
255954
  type: "string",
255955
- description: "Display text of the element to find. If combined with other element finding fields, the element must match all specified criteria."
255955
+ description: "Display text of the element to find. Matched against the element's full visible text with whitespace normalized (leading/trailing trimmed, internal runs collapsed to single spaces), so text a framework splits across several nodes still matches and a driver's surrounding whitespace doesn't cause a miss. Wrap the value in slashes (`/pattern/`) to match a substring by regular expression instead of the whole normalized text. If combined with other element finding fields, the element must match all specified criteria."
255956
255956
  },
255957
255957
  selector: {
255958
255958
  type: "string",
@@ -261183,7 +261183,7 @@ var schemas_default = {
261183
261183
  },
261184
261184
  elementText: {
261185
261185
  type: "string",
261186
- description: "Text content the element must contain. Supports exact match or regex pattern using /pattern/ syntax."
261186
+ description: "Display text of the element to wait for. Matched against the element's full visible text with whitespace normalized (leading/trailing trimmed, internal runs collapsed), so framework-fragmented text still matches. Wrap the value in slashes (`/pattern/`) to match a substring by regular expression instead of the whole normalized text."
261187
261187
  },
261188
261188
  elementId: {
261189
261189
  type: "string",
@@ -261715,7 +261715,7 @@ var schemas_default = {
261715
261715
  },
261716
261716
  elementText: {
261717
261717
  type: "string",
261718
- description: "Text content the element must contain. Supports exact match or regex pattern using /pattern/ syntax."
261718
+ description: "Display text of the element to wait for. Matched against the element's full visible text with whitespace normalized (leading/trailing trimmed, internal runs collapsed), so framework-fragmented text still matches. Wrap the value in slashes (`/pattern/`) to match a substring by regular expression instead of the whole normalized text."
261719
261719
  },
261720
261720
  elementId: {
261721
261721
  type: "string",
@@ -299668,7 +299668,7 @@ var schemas_default = {
299668
299668
  },
299669
299669
  elementText: {
299670
299670
  type: "string",
299671
- description: "Display text of the element to find. If combined with other element finding fields, the element must match all specified criteria."
299671
+ description: "Display text of the element to find. Matched against the element's full visible text with whitespace normalized (leading/trailing trimmed, internal runs collapsed to single spaces), so text a framework splits across several nodes still matches and a driver's surrounding whitespace doesn't cause a miss. Wrap the value in slashes (`/pattern/`) to match a substring by regular expression instead of the whole normalized text. If combined with other element finding fields, the element must match all specified criteria."
299672
299672
  },
299673
299673
  selector: {
299674
299674
  type: "string",
@@ -303814,7 +303814,7 @@ var schemas_default = {
303814
303814
  },
303815
303815
  elementText: {
303816
303816
  type: "string",
303817
- description: "Display text of the element to find. If combined with other element finding fields, the element must match all specified criteria."
303817
+ description: "Display text of the element to find. Matched against the element's full visible text with whitespace normalized (leading/trailing trimmed, internal runs collapsed to single spaces), so text a framework splits across several nodes still matches and a driver's surrounding whitespace doesn't cause a miss. Wrap the value in slashes (`/pattern/`) to match a substring by regular expression instead of the whole normalized text. If combined with other element finding fields, the element must match all specified criteria."
303818
303818
  },
303819
303819
  selector: {
303820
303820
  type: "string",
@@ -309045,7 +309045,7 @@ var schemas_default = {
309045
309045
  },
309046
309046
  elementText: {
309047
309047
  type: "string",
309048
- description: "Text content the element must contain. Supports exact match or regex pattern using /pattern/ syntax."
309048
+ description: "Display text of the element to wait for. Matched against the element's full visible text with whitespace normalized (leading/trailing trimmed, internal runs collapsed), so framework-fragmented text still matches. Wrap the value in slashes (`/pattern/`) to match a substring by regular expression instead of the whole normalized text."
309049
309049
  },
309050
309050
  elementId: {
309051
309051
  type: "string",
@@ -309577,7 +309577,7 @@ var schemas_default = {
309577
309577
  },
309578
309578
  elementText: {
309579
309579
  type: "string",
309580
- description: "Text content the element must contain. Supports exact match or regex pattern using /pattern/ syntax."
309580
+ description: "Display text of the element to wait for. Matched against the element's full visible text with whitespace normalized (leading/trailing trimmed, internal runs collapsed), so framework-fragmented text still matches. Wrap the value in slashes (`/pattern/`) to match a substring by regular expression instead of the whole normalized text."
309581
309581
  },
309582
309582
  elementId: {
309583
309583
  type: "string",
@@ -344569,7 +344569,7 @@ var schemas_default = {
344569
344569
  },
344570
344570
  elementText: {
344571
344571
  type: "string",
344572
- description: "Display text of the element to find. If combined with other element finding fields, the element must match all specified criteria."
344572
+ description: "Display text of the element to find. Matched against the element's full visible text with whitespace normalized (leading/trailing trimmed, internal runs collapsed to single spaces), so text a framework splits across several nodes still matches and a driver's surrounding whitespace doesn't cause a miss. Wrap the value in slashes (`/pattern/`) to match a substring by regular expression instead of the whole normalized text. If combined with other element finding fields, the element must match all specified criteria."
344573
344573
  },
344574
344574
  selector: {
344575
344575
  type: "string",
@@ -348715,7 +348715,7 @@ var schemas_default = {
348715
348715
  },
348716
348716
  elementText: {
348717
348717
  type: "string",
348718
- description: "Display text of the element to find. If combined with other element finding fields, the element must match all specified criteria."
348718
+ description: "Display text of the element to find. Matched against the element's full visible text with whitespace normalized (leading/trailing trimmed, internal runs collapsed to single spaces), so text a framework splits across several nodes still matches and a driver's surrounding whitespace doesn't cause a miss. Wrap the value in slashes (`/pattern/`) to match a substring by regular expression instead of the whole normalized text. If combined with other element finding fields, the element must match all specified criteria."
348719
348719
  },
348720
348720
  selector: {
348721
348721
  type: "string",
@@ -353946,7 +353946,7 @@ var schemas_default = {
353946
353946
  },
353947
353947
  elementText: {
353948
353948
  type: "string",
353949
- description: "Text content the element must contain. Supports exact match or regex pattern using /pattern/ syntax."
353949
+ description: "Display text of the element to wait for. Matched against the element's full visible text with whitespace normalized (leading/trailing trimmed, internal runs collapsed), so framework-fragmented text still matches. Wrap the value in slashes (`/pattern/`) to match a substring by regular expression instead of the whole normalized text."
353950
353950
  },
353951
353951
  elementId: {
353952
353952
  type: "string",
@@ -354478,7 +354478,7 @@ var schemas_default = {
354478
354478
  },
354479
354479
  elementText: {
354480
354480
  type: "string",
354481
- description: "Text content the element must contain. Supports exact match or regex pattern using /pattern/ syntax."
354481
+ description: "Display text of the element to wait for. Matched against the element's full visible text with whitespace normalized (leading/trailing trimmed, internal runs collapsed), so framework-fragmented text still matches. Wrap the value in slashes (`/pattern/`) to match a substring by regular expression instead of the whole normalized text."
354482
354482
  },
354483
354483
  elementId: {
354484
354484
  type: "string",
@@ -383843,6 +383843,71 @@ var schemas_default = {
383843
383843
  }
383844
383844
  ]
383845
383845
  }
383846
+ },
383847
+ warm: {
383848
+ type: "object",
383849
+ description: "Results of the run's inline warm phase \u2014 the always-on, best-effort provisioning pass (dependency installs, device boots, session probes) performed between test resolution and test execution. A failed task never gates the run; the per-context paths retry or skip with their normal semantics. Absent when the run ended before the phase (for example, when no specs matched). System-populated.",
383850
+ readOnly: true,
383851
+ additionalProperties: false,
383852
+ required: [
383853
+ "durationMs",
383854
+ "tasks"
383855
+ ],
383856
+ properties: {
383857
+ durationMs: {
383858
+ type: "number",
383859
+ description: "Wall-clock duration of the warm phase in milliseconds. Tasks overlap, so this is less than the sum of the per-task durations."
383860
+ },
383861
+ tasks: {
383862
+ type: "array",
383863
+ description: "One entry per executed warm task.",
383864
+ items: {
383865
+ type: "object",
383866
+ additionalProperties: false,
383867
+ required: [
383868
+ "name",
383869
+ "kind",
383870
+ "outcome",
383871
+ "durationMs"
383872
+ ],
383873
+ properties: {
383874
+ name: {
383875
+ type: "string",
383876
+ description: "Task identity, e.g. `browser-install:chrome` or `device-boot:android:<default>:<latest>`."
383877
+ },
383878
+ kind: {
383879
+ type: "string",
383880
+ enum: [
383881
+ "driver-install",
383882
+ "browser-install",
383883
+ "device-boot",
383884
+ "wda-check",
383885
+ "session-probe",
383886
+ "chromedriver-prefetch"
383887
+ ],
383888
+ description: "What the task pre-pays: a native app driver install, a browser install, a simulator/emulator boot, the managed WebDriverAgent availability check, the concurrent-run driver session probe, or the android mobile-web chromedriver download."
383889
+ },
383890
+ outcome: {
383891
+ type: "string",
383892
+ enum: [
383893
+ "warmed",
383894
+ "skipped",
383895
+ "failed"
383896
+ ],
383897
+ description: "`warmed` \u2014 the work was performed (for device boots, the boot was initiated); `skipped` \u2014 nothing to do or the environment isn't ready (the consuming context handles it as usual); `failed` \u2014 the attempt failed (logged as a warning; never fails the run)."
383898
+ },
383899
+ durationMs: {
383900
+ type: "number",
383901
+ description: "Wall-clock duration of this task in milliseconds."
383902
+ },
383903
+ note: {
383904
+ type: "string",
383905
+ description: "Human-readable detail about the outcome."
383906
+ }
383907
+ }
383908
+ }
383909
+ }
383910
+ }
383846
383911
  }
383847
383912
  },
383848
383913
  required: [
@@ -383864,7 +383929,26 @@ var schemas_default = {
383864
383929
  }
383865
383930
  ]
383866
383931
  }
383867
- ]
383932
+ ],
383933
+ warm: {
383934
+ durationMs: 4211,
383935
+ tasks: [
383936
+ {
383937
+ name: "browser-install:chrome",
383938
+ kind: "browser-install",
383939
+ outcome: "skipped",
383940
+ durationMs: 2,
383941
+ note: "'chrome' is already available"
383942
+ },
383943
+ {
383944
+ name: "session-probe",
383945
+ kind: "session-probe",
383946
+ outcome: "warmed",
383947
+ durationMs: 4205,
383948
+ note: "1 combination ok"
383949
+ }
383950
+ ]
383951
+ }
383868
383952
  },
383869
383953
  {
383870
383954
  specs: [
@@ -395671,7 +395755,7 @@ var schemas_default = {
395671
395755
  },
395672
395756
  elementText: {
395673
395757
  type: "string",
395674
- description: "Display text of the element to find. If combined with other element finding fields, the element must match all specified criteria."
395758
+ description: "Display text of the element to find. Matched against the element's full visible text with whitespace normalized (leading/trailing trimmed, internal runs collapsed to single spaces), so text a framework splits across several nodes still matches and a driver's surrounding whitespace doesn't cause a miss. Wrap the value in slashes (`/pattern/`) to match a substring by regular expression instead of the whole normalized text. If combined with other element finding fields, the element must match all specified criteria."
395675
395759
  },
395676
395760
  selector: {
395677
395761
  type: "string",
@@ -399817,7 +399901,7 @@ var schemas_default = {
399817
399901
  },
399818
399902
  elementText: {
399819
399903
  type: "string",
399820
- description: "Display text of the element to find. If combined with other element finding fields, the element must match all specified criteria."
399904
+ description: "Display text of the element to find. Matched against the element's full visible text with whitespace normalized (leading/trailing trimmed, internal runs collapsed to single spaces), so text a framework splits across several nodes still matches and a driver's surrounding whitespace doesn't cause a miss. Wrap the value in slashes (`/pattern/`) to match a substring by regular expression instead of the whole normalized text. If combined with other element finding fields, the element must match all specified criteria."
399821
399905
  },
399822
399906
  selector: {
399823
399907
  type: "string",
@@ -405048,7 +405132,7 @@ var schemas_default = {
405048
405132
  },
405049
405133
  elementText: {
405050
405134
  type: "string",
405051
- description: "Text content the element must contain. Supports exact match or regex pattern using /pattern/ syntax."
405135
+ description: "Display text of the element to wait for. Matched against the element's full visible text with whitespace normalized (leading/trailing trimmed, internal runs collapsed), so framework-fragmented text still matches. Wrap the value in slashes (`/pattern/`) to match a substring by regular expression instead of the whole normalized text."
405052
405136
  },
405053
405137
  elementId: {
405054
405138
  type: "string",
@@ -405580,7 +405664,7 @@ var schemas_default = {
405580
405664
  },
405581
405665
  elementText: {
405582
405666
  type: "string",
405583
- description: "Text content the element must contain. Supports exact match or regex pattern using /pattern/ syntax."
405667
+ description: "Display text of the element to wait for. Matched against the element's full visible text with whitespace normalized (leading/trailing trimmed, internal runs collapsed), so framework-fragmented text still matches. Wrap the value in slashes (`/pattern/`) to match a substring by regular expression instead of the whole normalized text."
405584
405668
  },
405585
405669
  elementId: {
405586
405670
  type: "string",
@@ -440572,7 +440656,7 @@ var schemas_default = {
440572
440656
  },
440573
440657
  elementText: {
440574
440658
  type: "string",
440575
- description: "Display text of the element to find. If combined with other element finding fields, the element must match all specified criteria."
440659
+ description: "Display text of the element to find. Matched against the element's full visible text with whitespace normalized (leading/trailing trimmed, internal runs collapsed to single spaces), so text a framework splits across several nodes still matches and a driver's surrounding whitespace doesn't cause a miss. Wrap the value in slashes (`/pattern/`) to match a substring by regular expression instead of the whole normalized text. If combined with other element finding fields, the element must match all specified criteria."
440576
440660
  },
440577
440661
  selector: {
440578
440662
  type: "string",
@@ -444718,7 +444802,7 @@ var schemas_default = {
444718
444802
  },
444719
444803
  elementText: {
444720
444804
  type: "string",
444721
- description: "Display text of the element to find. If combined with other element finding fields, the element must match all specified criteria."
444805
+ description: "Display text of the element to find. Matched against the element's full visible text with whitespace normalized (leading/trailing trimmed, internal runs collapsed to single spaces), so text a framework splits across several nodes still matches and a driver's surrounding whitespace doesn't cause a miss. Wrap the value in slashes (`/pattern/`) to match a substring by regular expression instead of the whole normalized text. If combined with other element finding fields, the element must match all specified criteria."
444722
444806
  },
444723
444807
  selector: {
444724
444808
  type: "string",
@@ -449949,7 +450033,7 @@ var schemas_default = {
449949
450033
  },
449950
450034
  elementText: {
449951
450035
  type: "string",
449952
- description: "Text content the element must contain. Supports exact match or regex pattern using /pattern/ syntax."
450036
+ description: "Display text of the element to wait for. Matched against the element's full visible text with whitespace normalized (leading/trailing trimmed, internal runs collapsed), so framework-fragmented text still matches. Wrap the value in slashes (`/pattern/`) to match a substring by regular expression instead of the whole normalized text."
449953
450037
  },
449954
450038
  elementId: {
449955
450039
  type: "string",
@@ -450481,7 +450565,7 @@ var schemas_default = {
450481
450565
  },
450482
450566
  elementText: {
450483
450567
  type: "string",
450484
- description: "Text content the element must contain. Supports exact match or regex pattern using /pattern/ syntax."
450568
+ description: "Display text of the element to wait for. Matched against the element's full visible text with whitespace normalized (leading/trailing trimmed, internal runs collapsed), so framework-fragmented text still matches. Wrap the value in slashes (`/pattern/`) to match a substring by regular expression instead of the whole normalized text."
450485
450569
  },
450486
450570
  elementId: {
450487
450571
  type: "string",
@@ -487165,7 +487249,7 @@ var schemas_default = {
487165
487249
  },
487166
487250
  elementText: {
487167
487251
  type: "string",
487168
- description: "Display text of the element to find. If combined with other element finding fields, the element must match all specified criteria."
487252
+ description: "Display text of the element to find. Matched against the element's full visible text with whitespace normalized (leading/trailing trimmed, internal runs collapsed to single spaces), so text a framework splits across several nodes still matches and a driver's surrounding whitespace doesn't cause a miss. Wrap the value in slashes (`/pattern/`) to match a substring by regular expression instead of the whole normalized text. If combined with other element finding fields, the element must match all specified criteria."
487169
487253
  },
487170
487254
  selector: {
487171
487255
  type: "string",
@@ -491311,7 +491395,7 @@ var schemas_default = {
491311
491395
  },
491312
491396
  elementText: {
491313
491397
  type: "string",
491314
- description: "Display text of the element to find. If combined with other element finding fields, the element must match all specified criteria."
491398
+ description: "Display text of the element to find. Matched against the element's full visible text with whitespace normalized (leading/trailing trimmed, internal runs collapsed to single spaces), so text a framework splits across several nodes still matches and a driver's surrounding whitespace doesn't cause a miss. Wrap the value in slashes (`/pattern/`) to match a substring by regular expression instead of the whole normalized text. If combined with other element finding fields, the element must match all specified criteria."
491315
491399
  },
491316
491400
  selector: {
491317
491401
  type: "string",
@@ -496542,7 +496626,7 @@ var schemas_default = {
496542
496626
  },
496543
496627
  elementText: {
496544
496628
  type: "string",
496545
- description: "Text content the element must contain. Supports exact match or regex pattern using /pattern/ syntax."
496629
+ description: "Display text of the element to wait for. Matched against the element's full visible text with whitespace normalized (leading/trailing trimmed, internal runs collapsed), so framework-fragmented text still matches. Wrap the value in slashes (`/pattern/`) to match a substring by regular expression instead of the whole normalized text."
496546
496630
  },
496547
496631
  elementId: {
496548
496632
  type: "string",
@@ -497074,7 +497158,7 @@ var schemas_default = {
497074
497158
  },
497075
497159
  elementText: {
497076
497160
  type: "string",
497077
- description: "Text content the element must contain. Supports exact match or regex pattern using /pattern/ syntax."
497161
+ description: "Display text of the element to wait for. Matched against the element's full visible text with whitespace normalized (leading/trailing trimmed, internal runs collapsed), so framework-fragmented text still matches. Wrap the value in slashes (`/pattern/`) to match a substring by regular expression instead of the whole normalized text."
497078
497162
  },
497079
497163
  elementId: {
497080
497164
  type: "string",
@@ -535411,7 +535495,7 @@ var schemas_default = {
535411
535495
  },
535412
535496
  elementText: {
535413
535497
  type: "string",
535414
- description: "Display text of the element to find. If combined with other element finding fields, the element must match all specified criteria."
535498
+ description: "Display text of the element to find. Matched against the element's full visible text with whitespace normalized (leading/trailing trimmed, internal runs collapsed to single spaces), so text a framework splits across several nodes still matches and a driver's surrounding whitespace doesn't cause a miss. Wrap the value in slashes (`/pattern/`) to match a substring by regular expression instead of the whole normalized text. If combined with other element finding fields, the element must match all specified criteria."
535415
535499
  },
535416
535500
  selector: {
535417
535501
  type: "string",
@@ -539557,7 +539641,7 @@ var schemas_default = {
539557
539641
  },
539558
539642
  elementText: {
539559
539643
  type: "string",
539560
- description: "Display text of the element to find. If combined with other element finding fields, the element must match all specified criteria."
539644
+ description: "Display text of the element to find. Matched against the element's full visible text with whitespace normalized (leading/trailing trimmed, internal runs collapsed to single spaces), so text a framework splits across several nodes still matches and a driver's surrounding whitespace doesn't cause a miss. Wrap the value in slashes (`/pattern/`) to match a substring by regular expression instead of the whole normalized text. If combined with other element finding fields, the element must match all specified criteria."
539561
539645
  },
539562
539646
  selector: {
539563
539647
  type: "string",
@@ -544788,7 +544872,7 @@ var schemas_default = {
544788
544872
  },
544789
544873
  elementText: {
544790
544874
  type: "string",
544791
- description: "Text content the element must contain. Supports exact match or regex pattern using /pattern/ syntax."
544875
+ description: "Display text of the element to wait for. Matched against the element's full visible text with whitespace normalized (leading/trailing trimmed, internal runs collapsed), so framework-fragmented text still matches. Wrap the value in slashes (`/pattern/`) to match a substring by regular expression instead of the whole normalized text."
544792
544876
  },
544793
544877
  elementId: {
544794
544878
  type: "string",
@@ -545320,7 +545404,7 @@ var schemas_default = {
545320
545404
  },
545321
545405
  elementText: {
545322
545406
  type: "string",
545323
- description: "Text content the element must contain. Supports exact match or regex pattern using /pattern/ syntax."
545407
+ description: "Display text of the element to wait for. Matched against the element's full visible text with whitespace normalized (leading/trailing trimmed, internal runs collapsed), so framework-fragmented text still matches. Wrap the value in slashes (`/pattern/`) to match a substring by regular expression instead of the whole normalized text."
545324
545408
  },
545325
545409
  elementId: {
545326
545410
  type: "string",
@@ -580312,7 +580396,7 @@ var schemas_default = {
580312
580396
  },
580313
580397
  elementText: {
580314
580398
  type: "string",
580315
- description: "Display text of the element to find. If combined with other element finding fields, the element must match all specified criteria."
580399
+ description: "Display text of the element to find. Matched against the element's full visible text with whitespace normalized (leading/trailing trimmed, internal runs collapsed to single spaces), so text a framework splits across several nodes still matches and a driver's surrounding whitespace doesn't cause a miss. Wrap the value in slashes (`/pattern/`) to match a substring by regular expression instead of the whole normalized text. If combined with other element finding fields, the element must match all specified criteria."
580316
580400
  },
580317
580401
  selector: {
580318
580402
  type: "string",
@@ -584458,7 +584542,7 @@ var schemas_default = {
584458
584542
  },
584459
584543
  elementText: {
584460
584544
  type: "string",
584461
- description: "Display text of the element to find. If combined with other element finding fields, the element must match all specified criteria."
584545
+ description: "Display text of the element to find. Matched against the element's full visible text with whitespace normalized (leading/trailing trimmed, internal runs collapsed to single spaces), so text a framework splits across several nodes still matches and a driver's surrounding whitespace doesn't cause a miss. Wrap the value in slashes (`/pattern/`) to match a substring by regular expression instead of the whole normalized text. If combined with other element finding fields, the element must match all specified criteria."
584462
584546
  },
584463
584547
  selector: {
584464
584548
  type: "string",
@@ -589689,7 +589773,7 @@ var schemas_default = {
589689
589773
  },
589690
589774
  elementText: {
589691
589775
  type: "string",
589692
- description: "Text content the element must contain. Supports exact match or regex pattern using /pattern/ syntax."
589776
+ description: "Display text of the element to wait for. Matched against the element's full visible text with whitespace normalized (leading/trailing trimmed, internal runs collapsed), so framework-fragmented text still matches. Wrap the value in slashes (`/pattern/`) to match a substring by regular expression instead of the whole normalized text."
589693
589777
  },
589694
589778
  elementId: {
589695
589779
  type: "string",
@@ -590221,7 +590305,7 @@ var schemas_default = {
590221
590305
  },
590222
590306
  elementText: {
590223
590307
  type: "string",
590224
- description: "Text content the element must contain. Supports exact match or regex pattern using /pattern/ syntax."
590308
+ description: "Display text of the element to wait for. Matched against the element's full visible text with whitespace normalized (leading/trailing trimmed, internal runs collapsed), so framework-fragmented text still matches. Wrap the value in slashes (`/pattern/`) to match a substring by regular expression instead of the whole normalized text."
590225
590309
  },
590226
590310
  elementId: {
590227
590311
  type: "string",
@@ -631786,12 +631870,26 @@ var ajv = new import_ajv.default({
631786
631870
  allowUnionTypes: true,
631787
631871
  coerceTypes: true
631788
631872
  });
631873
+ var ajvCheck = new import_ajv.default({
631874
+ strictSchema: false,
631875
+ useDefaults: false,
631876
+ allErrors: true,
631877
+ allowUnionTypes: true,
631878
+ coerceTypes: false
631879
+ });
631789
631880
  import_dynamicDefaults.default.DEFAULTS.uuid = (_args) => getRandomUUID;
631790
631881
  (0, import_ajv_formats.default)(ajv);
631791
631882
  (0, import_ajv_keywords.default)(ajv);
631792
631883
  (0, import_ajv_errors.default)(ajv);
631884
+ (0, import_ajv_formats.default)(ajvCheck);
631885
+ (0, import_ajv_keywords.default)(ajvCheck);
631886
+ (0, import_ajv_errors.default)(ajvCheck);
631793
631887
  for (const [key, value] of Object.entries(schemas)) {
631794
631888
  ajv.addSchema(value, key);
631889
+ ajvCheck.addSchema(value, key);
631890
+ }
631891
+ function cloneForValidation(object) {
631892
+ return JSON.parse(JSON.stringify(object));
631795
631893
  }
631796
631894
  var compatibleSchemas = {
631797
631895
  config_v3: ["config_v2"],
@@ -631837,29 +631935,37 @@ function validate({ schemaKey, object, addDefaults = true }) {
631837
631935
  result.object = object;
631838
631936
  return result;
631839
631937
  }
631840
- validationObject = JSON.parse(JSON.stringify(object));
631938
+ validationObject = cloneForValidation(object);
631841
631939
  result.valid = check(validationObject);
631842
631940
  result.errors = "";
631843
631941
  if (check.errors) {
631942
+ const targetErrors = check.errors;
631844
631943
  const compatibleSchemasList = compatibleSchemas[schemaKey];
631845
631944
  if (!compatibleSchemasList) {
631846
- result.errors = check.errors.map((error) => `${error.instancePath} ${error.message} (${JSON.stringify(error.params)})`).join(", ");
631945
+ result.errors = targetErrors.map((error) => `${error.instancePath} ${error.message} (${JSON.stringify(error.params)})`).join(", ");
631847
631946
  result.object = object;
631848
631947
  result.valid = false;
631849
631948
  return result;
631850
631949
  }
631851
- const matchedSchemaKey = compatibleSchemasList.find((key) => {
631852
- validationObject = JSON.parse(JSON.stringify(object));
631853
- const check2 = ajv.getSchema(key);
631854
- if (check2 && check2(validationObject))
631855
- return key;
631950
+ let matchedSchemaKey = compatibleSchemasList.find((key) => {
631951
+ const probe = ajvCheck.getSchema(key);
631952
+ return probe(object);
631856
631953
  });
631857
631954
  if (!matchedSchemaKey) {
631858
- result.errors = check.errors.map((error) => `${error.instancePath} ${error.message} (${JSON.stringify(error.params)})`).join(", ");
631955
+ matchedSchemaKey = compatibleSchemasList.find((key) => {
631956
+ const mutatingCheck = ajv.getSchema(key);
631957
+ return mutatingCheck(cloneForValidation(object));
631958
+ });
631959
+ }
631960
+ if (!matchedSchemaKey) {
631961
+ result.errors = targetErrors.map((error) => `${error.instancePath} ${error.message} (${JSON.stringify(error.params)})`).join(", ");
631859
631962
  result.object = object;
631860
631963
  result.valid = false;
631861
631964
  return result;
631862
631965
  } else {
631966
+ validationObject = cloneForValidation(object);
631967
+ const matchedCheck = ajv.getSchema(matchedSchemaKey);
631968
+ matchedCheck(validationObject);
631863
631969
  const transformedObject = transformToSchemaKey({
631864
631970
  currentSchema: matchedSchemaKey,
631865
631971
  targetSchema: schemaKey,
@@ -632507,17 +632613,24 @@ function detectFileTypeFromContent(content) {
632507
632613
  }
632508
632614
 
632509
632615
  // dist/detectTests.js
632616
+ var compiledRegExpCache = /* @__PURE__ */ new Map();
632510
632617
  function safeRegExp(pattern, flags) {
632511
632618
  if (typeof pattern !== "string" || pattern.length === 0)
632512
632619
  return null;
632513
632620
  if (pattern.length > 1500)
632514
632621
  return null;
632515
- const sanitized = Array.from(pattern, (c) => String.fromCharCode(c.charCodeAt(0))).join("");
632622
+ const cacheKey = pattern + " " + flags;
632623
+ const cached = compiledRegExpCache.get(cacheKey);
632624
+ if (cached !== void 0)
632625
+ return cached;
632626
+ let compiled;
632516
632627
  try {
632517
- return new RegExp(sanitized, flags);
632628
+ compiled = new RegExp(pattern, flags);
632518
632629
  } catch {
632519
- return null;
632630
+ compiled = null;
632520
632631
  }
632632
+ compiledRegExpCache.set(cacheKey, compiled);
632633
+ return compiled;
632521
632634
  }
632522
632635
  var HASH_EXCLUDED_KEYS = /* @__PURE__ */ new Set([
632523
632636
  "location",