doc-detective-common 4.0.2 → 4.1.0

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
@@ -77,6 +77,14 @@ var schemas_default = {
77
77
  "trim"
78
78
  ]
79
79
  },
80
+ params: {
81
+ description: "Query parameters to append to the resolved URL. Merged on top of `originParams` from config; step keys win on collision. If `url` already contains a colliding query key, the value here replaces it. Values support environment variable substitution via `$VAR` syntax. WARNING: values are embedded in the request URL and appear in test results, logs, and reports.",
82
+ type: "object",
83
+ additionalProperties: {
84
+ type: "string"
85
+ },
86
+ default: {}
87
+ },
80
88
  statusCodes: {
81
89
  description: "Accepted status codes. If the specified URL returns a code other than what is specified here, the action fails.",
82
90
  anyOf: [
@@ -101,6 +109,26 @@ var schemas_default = {
101
109
  307,
102
110
  308
103
111
  ]
112
+ },
113
+ headers: {
114
+ description: "Additional HTTP headers to include in the request. Merged on top of Doc Detective's default browser-mimicking headers. Useful for sites behind bot protection or WAFs that allowlist specific headers (for example, a Cloudflare Access service token or a `Cookie` with a `cf_clearance` value).",
115
+ default: {},
116
+ anyOf: [
117
+ {
118
+ title: "Request headers (object)",
119
+ description: "Headers to include in the HTTP request, in key/value format. Values must be strings.",
120
+ type: "object",
121
+ additionalProperties: {
122
+ type: "string"
123
+ },
124
+ properties: {}
125
+ },
126
+ {
127
+ title: "Request headers (string)",
128
+ description: "Headers to include in the HTTP request, as newline-separated values. For example, `X-Api-Key: abc123\nAuthorization: Bearer token`.",
129
+ type: "string"
130
+ }
131
+ ]
104
132
  }
105
133
  }
106
134
  }
@@ -140,6 +168,14 @@ var schemas_default = {
140
168
  "trim"
141
169
  ]
142
170
  },
171
+ params: {
172
+ description: "Query parameters to append to the resolved URL. Merged on top of `originParams` from config; step keys win on collision. If `url` already contains a colliding query key, the value here replaces it. Values support environment variable substitution via `$VAR` syntax. WARNING: values are embedded in the request URL and appear in test results, logs, and reports.",
173
+ type: "object",
174
+ additionalProperties: {
175
+ type: "string"
176
+ },
177
+ default: {}
178
+ },
143
179
  statusCodes: {
144
180
  description: "Accepted status codes. If the specified URL returns a code other than what is specified here, the action fails.",
145
181
  anyOf: [
@@ -164,6 +200,26 @@ var schemas_default = {
164
200
  307,
165
201
  308
166
202
  ]
203
+ },
204
+ headers: {
205
+ description: "Additional HTTP headers to include in the request. Merged on top of Doc Detective's default browser-mimicking headers. Useful for sites behind bot protection or WAFs that allowlist specific headers (for example, a Cloudflare Access service token or a `Cookie` with a `cf_clearance` value).",
206
+ default: {},
207
+ anyOf: [
208
+ {
209
+ title: "Request headers (object)",
210
+ description: "Headers to include in the HTTP request, in key/value format. Values must be strings.",
211
+ type: "object",
212
+ additionalProperties: {
213
+ type: "string"
214
+ },
215
+ properties: {}
216
+ },
217
+ {
218
+ title: "Request headers (string)",
219
+ description: "Headers to include in the HTTP request, as newline-separated values. For example, `X-Api-Key: abc123\nAuthorization: Bearer token`.",
220
+ type: "string"
221
+ }
222
+ ]
167
223
  }
168
224
  }
169
225
  }
@@ -182,6 +238,13 @@ var schemas_default = {
182
238
  statusCodes: [
183
239
  200
184
240
  ]
241
+ },
242
+ {
243
+ url: "/health",
244
+ origin: "https://my-app.com",
245
+ params: {
246
+ __clerk_testing_token: "$CLERK_TESTING_TOKEN"
247
+ }
185
248
  }
186
249
  ]
187
250
  },
@@ -488,6 +551,18 @@ var schemas_default = {
488
551
  type: "string",
489
552
  default: "."
490
553
  },
554
+ reporters: {
555
+ description: "Reporters to use when emitting test results. Built-in reporters: `terminal`, `json`, `html`. Custom reporters registered via `registerReporter()` can also be referenced by name.",
556
+ type: "array",
557
+ items: {
558
+ type: "string",
559
+ minLength: 1
560
+ },
561
+ default: [
562
+ "terminal",
563
+ "json"
564
+ ]
565
+ },
491
566
  recursive: {
492
567
  description: "If `true` searches `input`, `setup`, and `cleanup` paths recursively for test specifications and source files.",
493
568
  type: "boolean",
@@ -515,6 +590,14 @@ var schemas_default = {
515
590
  description: "Default protocol and domain to use for relative URLs.",
516
591
  type: "string"
517
592
  },
593
+ originParams: {
594
+ description: "Query parameters to append to URLs resolved against `origin`. Values support environment variable substitution via `$VAR` syntax. Step-level `params` on `goTo` / `checkLink` are merged on top of these, with step keys winning on collision. WARNING: values are embedded in request URLs and appear verbatim in test results, logs, and reports \u2014 avoid putting long-lived secrets here.",
595
+ type: "object",
596
+ additionalProperties: {
597
+ type: "string"
598
+ },
599
+ default: {}
600
+ },
518
601
  beforeAny: {
519
602
  description: "Path(s) to test specifications to perform before those specified by `input`. Useful for setting up testing environments.",
520
603
  anyOf: [
@@ -1529,6 +1612,14 @@ var schemas_default = {
1529
1612
  "trim"
1530
1613
  ]
1531
1614
  },
1615
+ params: {
1616
+ description: "Query parameters to append to the resolved URL. Merged on top of `originParams` from config; step keys win on collision. If `url` already contains a colliding query key, the value here replaces it. Values support environment variable substitution via `$VAR` syntax. WARNING: values are embedded in the request URL and appear in test results, logs, and reports.",
1617
+ type: "object",
1618
+ additionalProperties: {
1619
+ type: "string"
1620
+ },
1621
+ default: {}
1622
+ },
1532
1623
  statusCodes: {
1533
1624
  description: "Accepted status codes. If the specified URL returns a code other than what is specified here, the action fails.",
1534
1625
  anyOf: [
@@ -1553,6 +1644,26 @@ var schemas_default = {
1553
1644
  307,
1554
1645
  308
1555
1646
  ]
1647
+ },
1648
+ headers: {
1649
+ description: "Additional HTTP headers to include in the request. Merged on top of Doc Detective's default browser-mimicking headers. Useful for sites behind bot protection or WAFs that allowlist specific headers (for example, a Cloudflare Access service token or a `Cookie` with a `cf_clearance` value).",
1650
+ default: {},
1651
+ anyOf: [
1652
+ {
1653
+ title: "Request headers (object)",
1654
+ description: "Headers to include in the HTTP request, in key/value format. Values must be strings.",
1655
+ type: "object",
1656
+ additionalProperties: {
1657
+ type: "string"
1658
+ },
1659
+ properties: {}
1660
+ },
1661
+ {
1662
+ title: "Request headers (string)",
1663
+ description: "Headers to include in the HTTP request, as newline-separated values. For example, `X-Api-Key: abc123\nAuthorization: Bearer token`.",
1664
+ type: "string"
1665
+ }
1666
+ ]
1556
1667
  }
1557
1668
  }
1558
1669
  }
@@ -1592,6 +1703,14 @@ var schemas_default = {
1592
1703
  "trim"
1593
1704
  ]
1594
1705
  },
1706
+ params: {
1707
+ description: "Query parameters to append to the resolved URL. Merged on top of `originParams` from config; step keys win on collision. If `url` already contains a colliding query key, the value here replaces it. Values support environment variable substitution via `$VAR` syntax. WARNING: values are embedded in the request URL and appear in test results, logs, and reports.",
1708
+ type: "object",
1709
+ additionalProperties: {
1710
+ type: "string"
1711
+ },
1712
+ default: {}
1713
+ },
1595
1714
  statusCodes: {
1596
1715
  description: "Accepted status codes. If the specified URL returns a code other than what is specified here, the action fails.",
1597
1716
  anyOf: [
@@ -1616,6 +1735,26 @@ var schemas_default = {
1616
1735
  307,
1617
1736
  308
1618
1737
  ]
1738
+ },
1739
+ headers: {
1740
+ description: "Additional HTTP headers to include in the request. Merged on top of Doc Detective's default browser-mimicking headers. Useful for sites behind bot protection or WAFs that allowlist specific headers (for example, a Cloudflare Access service token or a `Cookie` with a `cf_clearance` value).",
1741
+ default: {},
1742
+ anyOf: [
1743
+ {
1744
+ title: "Request headers (object)",
1745
+ description: "Headers to include in the HTTP request, in key/value format. Values must be strings.",
1746
+ type: "object",
1747
+ additionalProperties: {
1748
+ type: "string"
1749
+ },
1750
+ properties: {}
1751
+ },
1752
+ {
1753
+ title: "Request headers (string)",
1754
+ description: "Headers to include in the HTTP request, as newline-separated values. For example, `X-Api-Key: abc123\nAuthorization: Bearer token`.",
1755
+ type: "string"
1756
+ }
1757
+ ]
1619
1758
  }
1620
1759
  }
1621
1760
  }
@@ -1634,6 +1773,13 @@ var schemas_default = {
1634
1773
  statusCodes: [
1635
1774
  200
1636
1775
  ]
1776
+ },
1777
+ {
1778
+ url: "/health",
1779
+ origin: "https://my-app.com",
1780
+ params: {
1781
+ __clerk_testing_token: "$CLERK_TESTING_TOKEN"
1782
+ }
1637
1783
  }
1638
1784
  ]
1639
1785
  }
@@ -3574,6 +3720,14 @@ var schemas_default = {
3574
3720
  "trim"
3575
3721
  ]
3576
3722
  },
3723
+ params: {
3724
+ description: "Query parameters to append to the resolved URL. Merged on top of `originParams` from config; step keys win on collision. If `url` already contains a colliding query key, the value here replaces it. Values support environment variable substitution via `$VAR` syntax. WARNING: values are embedded in the request URL and appear in test results, logs, and reports.",
3725
+ type: "object",
3726
+ additionalProperties: {
3727
+ type: "string"
3728
+ },
3729
+ default: {}
3730
+ },
3577
3731
  timeout: {
3578
3732
  type: "integer",
3579
3733
  description: "Maximum time in milliseconds to wait for the page to be ready. If exceeded, the goTo action fails.",
@@ -3746,6 +3900,14 @@ var schemas_default = {
3746
3900
  "trim"
3747
3901
  ]
3748
3902
  },
3903
+ params: {
3904
+ description: "Query parameters to append to the resolved URL. Merged on top of `originParams` from config; step keys win on collision. If `url` already contains a colliding query key, the value here replaces it. Values support environment variable substitution via `$VAR` syntax. WARNING: values are embedded in the request URL and appear in test results, logs, and reports.",
3905
+ type: "object",
3906
+ additionalProperties: {
3907
+ type: "string"
3908
+ },
3909
+ default: {}
3910
+ },
3749
3911
  timeout: {
3750
3912
  type: "integer",
3751
3913
  description: "Maximum time in milliseconds to wait for the page to be ready. If exceeded, the goTo action fails.",
@@ -3895,6 +4057,13 @@ var schemas_default = {
3895
4057
  url: "/search",
3896
4058
  origin: "https://www.google.com"
3897
4059
  },
4060
+ {
4061
+ url: "/dashboard",
4062
+ origin: "https://my-app.com",
4063
+ params: {
4064
+ __clerk_testing_token: "$CLERK_TESTING_TOKEN"
4065
+ }
4066
+ },
3898
4067
  {
3899
4068
  url: "https://www.example.com",
3900
4069
  waitUntil: {
@@ -6160,9 +6329,9 @@ var schemas_default = {
6160
6329
  anyOf: [
6161
6330
  {
6162
6331
  title: "Screenshot (simple)",
6163
- description: "File path of the PNG file. Accepts absolute paths. If not specified, the file name is the ID of the step.",
6332
+ description: "File path of the PNG file. Accepts absolute paths. If not specified, the file name is the ID of the step. If an `http(s)` URL is supplied, the remote image is downloaded and used as a read-only reference for comparison; the new capture is written to a local run-specific folder instead of being uploaded back to the URL.",
6164
6333
  type: "string",
6165
- pattern: "([A-Za-z0-9_-]*\\.(png|PNG)$|\\$[A-Za-z0-9_]+)",
6334
+ pattern: "^(?:https?:\\/\\/.+\\.(?:png|PNG)(?:\\?.*)?|[A-Za-z]:[\\/\\\\].*\\.(?:png|PNG)|[\\/\\\\]?[A-Za-z0-9_.\\/\\\\-]*\\.(?:png|PNG)|\\$[A-Za-z0-9_]+)$",
6166
6335
  transform: [
6167
6336
  "trim"
6168
6337
  ]
@@ -6173,9 +6342,9 @@ var schemas_default = {
6173
6342
  properties: {
6174
6343
  path: {
6175
6344
  title: "Screenshot (simple)",
6176
- description: "File path of the PNG file. Accepts absolute paths. If not specified, the file name is the ID of the step.",
6345
+ description: "File path of the PNG file. Accepts absolute paths. If not specified, the file name is the ID of the step. If an `http(s)` URL is supplied, the remote image is downloaded and used as a read-only reference for comparison; the new capture is written to a local run-specific folder instead of being uploaded back to the URL.",
6177
6346
  type: "string",
6178
- pattern: "([A-Za-z0-9_-]*\\.(png|PNG)$|\\$[A-Za-z0-9_]+)",
6347
+ pattern: "^(?:https?:\\/\\/.+\\.(?:png|PNG)(?:\\?.*)?|[A-Za-z]:[\\/\\\\].*\\.(?:png|PNG)|[\\/\\\\]?[A-Za-z0-9_.\\/\\\\-]*\\.(?:png|PNG)|\\$[A-Za-z0-9_]+)$",
6179
6348
  transform: [
6180
6349
  "trim"
6181
6350
  ]
@@ -6406,9 +6575,9 @@ var schemas_default = {
6406
6575
  schemas: {
6407
6576
  path: {
6408
6577
  title: "Screenshot (simple)",
6409
- description: "File path of the PNG file. Accepts absolute paths. If not specified, the file name is the ID of the step.",
6578
+ description: "File path of the PNG file. Accepts absolute paths. If not specified, the file name is the ID of the step. If an `http(s)` URL is supplied, the remote image is downloaded and used as a read-only reference for comparison; the new capture is written to a local run-specific folder instead of being uploaded back to the URL.",
6410
6579
  type: "string",
6411
- pattern: "([A-Za-z0-9_-]*\\.(png|PNG)$|\\$[A-Za-z0-9_]+)",
6580
+ pattern: "^(?:https?:\\/\\/.+\\.(?:png|PNG)(?:\\?.*)?|[A-Za-z]:[\\/\\\\].*\\.(?:png|PNG)|[\\/\\\\]?[A-Za-z0-9_.\\/\\\\-]*\\.(?:png|PNG)|\\$[A-Za-z0-9_]+)$",
6412
6581
  transform: [
6413
6582
  "trim"
6414
6583
  ]
@@ -6419,9 +6588,9 @@ var schemas_default = {
6419
6588
  properties: {
6420
6589
  path: {
6421
6590
  title: "Screenshot (simple)",
6422
- description: "File path of the PNG file. Accepts absolute paths. If not specified, the file name is the ID of the step.",
6591
+ description: "File path of the PNG file. Accepts absolute paths. If not specified, the file name is the ID of the step. If an `http(s)` URL is supplied, the remote image is downloaded and used as a read-only reference for comparison; the new capture is written to a local run-specific folder instead of being uploaded back to the URL.",
6423
6592
  type: "string",
6424
- pattern: "([A-Za-z0-9_-]*\\.(png|PNG)$|\\$[A-Za-z0-9_]+)",
6593
+ pattern: "^(?:https?:\\/\\/.+\\.(?:png|PNG)(?:\\?.*)?|[A-Za-z]:[\\/\\\\].*\\.(?:png|PNG)|[\\/\\\\]?[A-Za-z0-9_.\\/\\\\-]*\\.(?:png|PNG)|\\$[A-Za-z0-9_]+)$",
6425
6594
  transform: [
6426
6595
  "trim"
6427
6596
  ]
@@ -6803,6 +6972,12 @@ var schemas_default = {
6803
6972
  "image.png",
6804
6973
  "static/images/image.png",
6805
6974
  "/User/manny/projects/doc-detective/static/images/image.png",
6975
+ "https://example.com/static/images/image.png",
6976
+ {
6977
+ path: "https://promptless-customer-doc-assets.s3.amazonaws.com/docs-images/request-changes-button-0c851bb3.png",
6978
+ maxVariation: 0.05,
6979
+ overwrite: "aboveVariation"
6980
+ },
6806
6981
  {
6807
6982
  path: "image.png",
6808
6983
  directory: "static/images",
@@ -10152,6 +10327,14 @@ var schemas_default = {
10152
10327
  "trim"
10153
10328
  ]
10154
10329
  },
10330
+ params: {
10331
+ description: "Query parameters to append to the resolved URL. Merged on top of `originParams` from config; step keys win on collision. If `url` already contains a colliding query key, the value here replaces it. Values support environment variable substitution via `$VAR` syntax. WARNING: values are embedded in the request URL and appear in test results, logs, and reports.",
10332
+ type: "object",
10333
+ additionalProperties: {
10334
+ type: "string"
10335
+ },
10336
+ default: {}
10337
+ },
10155
10338
  statusCodes: {
10156
10339
  description: "Accepted status codes. If the specified URL returns a code other than what is specified here, the action fails.",
10157
10340
  anyOf: [
@@ -10176,6 +10359,26 @@ var schemas_default = {
10176
10359
  307,
10177
10360
  308
10178
10361
  ]
10362
+ },
10363
+ headers: {
10364
+ description: "Additional HTTP headers to include in the request. Merged on top of Doc Detective's default browser-mimicking headers. Useful for sites behind bot protection or WAFs that allowlist specific headers (for example, a Cloudflare Access service token or a `Cookie` with a `cf_clearance` value).",
10365
+ default: {},
10366
+ anyOf: [
10367
+ {
10368
+ title: "Request headers (object)",
10369
+ description: "Headers to include in the HTTP request, in key/value format. Values must be strings.",
10370
+ type: "object",
10371
+ additionalProperties: {
10372
+ type: "string"
10373
+ },
10374
+ properties: {}
10375
+ },
10376
+ {
10377
+ title: "Request headers (string)",
10378
+ description: "Headers to include in the HTTP request, as newline-separated values. For example, `X-Api-Key: abc123\nAuthorization: Bearer token`.",
10379
+ type: "string"
10380
+ }
10381
+ ]
10179
10382
  }
10180
10383
  }
10181
10384
  }
@@ -10215,6 +10418,14 @@ var schemas_default = {
10215
10418
  "trim"
10216
10419
  ]
10217
10420
  },
10421
+ params: {
10422
+ description: "Query parameters to append to the resolved URL. Merged on top of `originParams` from config; step keys win on collision. If `url` already contains a colliding query key, the value here replaces it. Values support environment variable substitution via `$VAR` syntax. WARNING: values are embedded in the request URL and appear in test results, logs, and reports.",
10423
+ type: "object",
10424
+ additionalProperties: {
10425
+ type: "string"
10426
+ },
10427
+ default: {}
10428
+ },
10218
10429
  statusCodes: {
10219
10430
  description: "Accepted status codes. If the specified URL returns a code other than what is specified here, the action fails.",
10220
10431
  anyOf: [
@@ -10239,6 +10450,26 @@ var schemas_default = {
10239
10450
  307,
10240
10451
  308
10241
10452
  ]
10453
+ },
10454
+ headers: {
10455
+ description: "Additional HTTP headers to include in the request. Merged on top of Doc Detective's default browser-mimicking headers. Useful for sites behind bot protection or WAFs that allowlist specific headers (for example, a Cloudflare Access service token or a `Cookie` with a `cf_clearance` value).",
10456
+ default: {},
10457
+ anyOf: [
10458
+ {
10459
+ title: "Request headers (object)",
10460
+ description: "Headers to include in the HTTP request, in key/value format. Values must be strings.",
10461
+ type: "object",
10462
+ additionalProperties: {
10463
+ type: "string"
10464
+ },
10465
+ properties: {}
10466
+ },
10467
+ {
10468
+ title: "Request headers (string)",
10469
+ description: "Headers to include in the HTTP request, as newline-separated values. For example, `X-Api-Key: abc123\nAuthorization: Bearer token`.",
10470
+ type: "string"
10471
+ }
10472
+ ]
10242
10473
  }
10243
10474
  }
10244
10475
  }
@@ -10257,6 +10488,13 @@ var schemas_default = {
10257
10488
  statusCodes: [
10258
10489
  200
10259
10490
  ]
10491
+ },
10492
+ {
10493
+ url: "/health",
10494
+ origin: "https://my-app.com",
10495
+ params: {
10496
+ __clerk_testing_token: "$CLERK_TESTING_TOKEN"
10497
+ }
10260
10498
  }
10261
10499
  ]
10262
10500
  }
@@ -12197,6 +12435,14 @@ var schemas_default = {
12197
12435
  "trim"
12198
12436
  ]
12199
12437
  },
12438
+ params: {
12439
+ description: "Query parameters to append to the resolved URL. Merged on top of `originParams` from config; step keys win on collision. If `url` already contains a colliding query key, the value here replaces it. Values support environment variable substitution via `$VAR` syntax. WARNING: values are embedded in the request URL and appear in test results, logs, and reports.",
12440
+ type: "object",
12441
+ additionalProperties: {
12442
+ type: "string"
12443
+ },
12444
+ default: {}
12445
+ },
12200
12446
  timeout: {
12201
12447
  type: "integer",
12202
12448
  description: "Maximum time in milliseconds to wait for the page to be ready. If exceeded, the goTo action fails.",
@@ -12369,6 +12615,14 @@ var schemas_default = {
12369
12615
  "trim"
12370
12616
  ]
12371
12617
  },
12618
+ params: {
12619
+ description: "Query parameters to append to the resolved URL. Merged on top of `originParams` from config; step keys win on collision. If `url` already contains a colliding query key, the value here replaces it. Values support environment variable substitution via `$VAR` syntax. WARNING: values are embedded in the request URL and appear in test results, logs, and reports.",
12620
+ type: "object",
12621
+ additionalProperties: {
12622
+ type: "string"
12623
+ },
12624
+ default: {}
12625
+ },
12372
12626
  timeout: {
12373
12627
  type: "integer",
12374
12628
  description: "Maximum time in milliseconds to wait for the page to be ready. If exceeded, the goTo action fails.",
@@ -12518,6 +12772,13 @@ var schemas_default = {
12518
12772
  url: "/search",
12519
12773
  origin: "https://www.google.com"
12520
12774
  },
12775
+ {
12776
+ url: "/dashboard",
12777
+ origin: "https://my-app.com",
12778
+ params: {
12779
+ __clerk_testing_token: "$CLERK_TESTING_TOKEN"
12780
+ }
12781
+ },
12521
12782
  {
12522
12783
  url: "https://www.example.com",
12523
12784
  waitUntil: {
@@ -14783,9 +15044,9 @@ var schemas_default = {
14783
15044
  anyOf: [
14784
15045
  {
14785
15046
  title: "Screenshot (simple)",
14786
- description: "File path of the PNG file. Accepts absolute paths. If not specified, the file name is the ID of the step.",
15047
+ description: "File path of the PNG file. Accepts absolute paths. If not specified, the file name is the ID of the step. If an `http(s)` URL is supplied, the remote image is downloaded and used as a read-only reference for comparison; the new capture is written to a local run-specific folder instead of being uploaded back to the URL.",
14787
15048
  type: "string",
14788
- pattern: "([A-Za-z0-9_-]*\\.(png|PNG)$|\\$[A-Za-z0-9_]+)",
15049
+ pattern: "^(?:https?:\\/\\/.+\\.(?:png|PNG)(?:\\?.*)?|[A-Za-z]:[\\/\\\\].*\\.(?:png|PNG)|[\\/\\\\]?[A-Za-z0-9_.\\/\\\\-]*\\.(?:png|PNG)|\\$[A-Za-z0-9_]+)$",
14789
15050
  transform: [
14790
15051
  "trim"
14791
15052
  ]
@@ -14796,9 +15057,9 @@ var schemas_default = {
14796
15057
  properties: {
14797
15058
  path: {
14798
15059
  title: "Screenshot (simple)",
14799
- description: "File path of the PNG file. Accepts absolute paths. If not specified, the file name is the ID of the step.",
15060
+ description: "File path of the PNG file. Accepts absolute paths. If not specified, the file name is the ID of the step. If an `http(s)` URL is supplied, the remote image is downloaded and used as a read-only reference for comparison; the new capture is written to a local run-specific folder instead of being uploaded back to the URL.",
14800
15061
  type: "string",
14801
- pattern: "([A-Za-z0-9_-]*\\.(png|PNG)$|\\$[A-Za-z0-9_]+)",
15062
+ pattern: "^(?:https?:\\/\\/.+\\.(?:png|PNG)(?:\\?.*)?|[A-Za-z]:[\\/\\\\].*\\.(?:png|PNG)|[\\/\\\\]?[A-Za-z0-9_.\\/\\\\-]*\\.(?:png|PNG)|\\$[A-Za-z0-9_]+)$",
14802
15063
  transform: [
14803
15064
  "trim"
14804
15065
  ]
@@ -15029,9 +15290,9 @@ var schemas_default = {
15029
15290
  schemas: {
15030
15291
  path: {
15031
15292
  title: "Screenshot (simple)",
15032
- description: "File path of the PNG file. Accepts absolute paths. If not specified, the file name is the ID of the step.",
15293
+ description: "File path of the PNG file. Accepts absolute paths. If not specified, the file name is the ID of the step. If an `http(s)` URL is supplied, the remote image is downloaded and used as a read-only reference for comparison; the new capture is written to a local run-specific folder instead of being uploaded back to the URL.",
15033
15294
  type: "string",
15034
- pattern: "([A-Za-z0-9_-]*\\.(png|PNG)$|\\$[A-Za-z0-9_]+)",
15295
+ pattern: "^(?:https?:\\/\\/.+\\.(?:png|PNG)(?:\\?.*)?|[A-Za-z]:[\\/\\\\].*\\.(?:png|PNG)|[\\/\\\\]?[A-Za-z0-9_.\\/\\\\-]*\\.(?:png|PNG)|\\$[A-Za-z0-9_]+)$",
15035
15296
  transform: [
15036
15297
  "trim"
15037
15298
  ]
@@ -15042,9 +15303,9 @@ var schemas_default = {
15042
15303
  properties: {
15043
15304
  path: {
15044
15305
  title: "Screenshot (simple)",
15045
- description: "File path of the PNG file. Accepts absolute paths. If not specified, the file name is the ID of the step.",
15306
+ description: "File path of the PNG file. Accepts absolute paths. If not specified, the file name is the ID of the step. If an `http(s)` URL is supplied, the remote image is downloaded and used as a read-only reference for comparison; the new capture is written to a local run-specific folder instead of being uploaded back to the URL.",
15046
15307
  type: "string",
15047
- pattern: "([A-Za-z0-9_-]*\\.(png|PNG)$|\\$[A-Za-z0-9_]+)",
15308
+ pattern: "^(?:https?:\\/\\/.+\\.(?:png|PNG)(?:\\?.*)?|[A-Za-z]:[\\/\\\\].*\\.(?:png|PNG)|[\\/\\\\]?[A-Za-z0-9_.\\/\\\\-]*\\.(?:png|PNG)|\\$[A-Za-z0-9_]+)$",
15048
15309
  transform: [
15049
15310
  "trim"
15050
15311
  ]
@@ -15426,6 +15687,12 @@ var schemas_default = {
15426
15687
  "image.png",
15427
15688
  "static/images/image.png",
15428
15689
  "/User/manny/projects/doc-detective/static/images/image.png",
15690
+ "https://example.com/static/images/image.png",
15691
+ {
15692
+ path: "https://promptless-customer-doc-assets.s3.amazonaws.com/docs-images/request-changes-button-0c851bb3.png",
15693
+ maxVariation: 0.05,
15694
+ overwrite: "aboveVariation"
15695
+ },
15429
15696
  {
15430
15697
  path: "image.png",
15431
15698
  directory: "static/images",
@@ -17839,8 +18106,19 @@ var schemas_default = {
17839
18106
  loadVariables: ".env",
17840
18107
  fileTypes: [
17841
18108
  "markdown"
18109
+ ],
18110
+ reporters: [
18111
+ "terminal",
18112
+ "json",
18113
+ "html"
17842
18114
  ]
17843
18115
  },
18116
+ {
18117
+ origin: "https://my-app.com",
18118
+ originParams: {
18119
+ __clerk_testing_token: "$CLERK_TESTING_TOKEN"
18120
+ }
18121
+ },
17844
18122
  {
17845
18123
  fileTypes: [
17846
18124
  {
@@ -20206,6 +20484,14 @@ var schemas_default = {
20206
20484
  "trim"
20207
20485
  ]
20208
20486
  },
20487
+ params: {
20488
+ description: "Query parameters to append to the resolved URL. Merged on top of `originParams` from config; step keys win on collision. If `url` already contains a colliding query key, the value here replaces it. Values support environment variable substitution via `$VAR` syntax. WARNING: values are embedded in the request URL and appear in test results, logs, and reports.",
20489
+ type: "object",
20490
+ additionalProperties: {
20491
+ type: "string"
20492
+ },
20493
+ default: {}
20494
+ },
20209
20495
  timeout: {
20210
20496
  type: "integer",
20211
20497
  description: "Maximum time in milliseconds to wait for the page to be ready. If exceeded, the goTo action fails.",
@@ -20378,6 +20664,14 @@ var schemas_default = {
20378
20664
  "trim"
20379
20665
  ]
20380
20666
  },
20667
+ params: {
20668
+ description: "Query parameters to append to the resolved URL. Merged on top of `originParams` from config; step keys win on collision. If `url` already contains a colliding query key, the value here replaces it. Values support environment variable substitution via `$VAR` syntax. WARNING: values are embedded in the request URL and appear in test results, logs, and reports.",
20669
+ type: "object",
20670
+ additionalProperties: {
20671
+ type: "string"
20672
+ },
20673
+ default: {}
20674
+ },
20381
20675
  timeout: {
20382
20676
  type: "integer",
20383
20677
  description: "Maximum time in milliseconds to wait for the page to be ready. If exceeded, the goTo action fails.",
@@ -20527,6 +20821,13 @@ var schemas_default = {
20527
20821
  url: "/search",
20528
20822
  origin: "https://www.google.com"
20529
20823
  },
20824
+ {
20825
+ url: "/dashboard",
20826
+ origin: "https://my-app.com",
20827
+ params: {
20828
+ __clerk_testing_token: "$CLERK_TESTING_TOKEN"
20829
+ }
20830
+ },
20530
20831
  {
20531
20832
  url: "https://www.example.com",
20532
20833
  waitUntil: {
@@ -22147,6 +22448,18 @@ var schemas_default = {
22147
22448
  type: "string",
22148
22449
  default: "."
22149
22450
  },
22451
+ reporters: {
22452
+ description: "Reporters to use when emitting test results. Built-in reporters: `terminal`, `json`, `html`. Custom reporters registered via `registerReporter()` can also be referenced by name.",
22453
+ type: "array",
22454
+ items: {
22455
+ type: "string",
22456
+ minLength: 1
22457
+ },
22458
+ default: [
22459
+ "terminal",
22460
+ "json"
22461
+ ]
22462
+ },
22150
22463
  recursive: {
22151
22464
  description: "If `true` searches `input`, `setup`, and `cleanup` paths recursively for test specifications and source files.",
22152
22465
  type: "boolean",
@@ -22174,6 +22487,14 @@ var schemas_default = {
22174
22487
  description: "Default protocol and domain to use for relative URLs.",
22175
22488
  type: "string"
22176
22489
  },
22490
+ originParams: {
22491
+ description: "Query parameters to append to URLs resolved against `origin`. Values support environment variable substitution via `$VAR` syntax. Step-level `params` on `goTo` / `checkLink` are merged on top of these, with step keys winning on collision. WARNING: values are embedded in request URLs and appear verbatim in test results, logs, and reports \u2014 avoid putting long-lived secrets here.",
22492
+ type: "object",
22493
+ additionalProperties: {
22494
+ type: "string"
22495
+ },
22496
+ default: {}
22497
+ },
22177
22498
  beforeAny: {
22178
22499
  description: "Path(s) to test specifications to perform before those specified by `input`. Useful for setting up testing environments.",
22179
22500
  anyOf: [
@@ -23188,6 +23509,14 @@ var schemas_default = {
23188
23509
  "trim"
23189
23510
  ]
23190
23511
  },
23512
+ params: {
23513
+ description: "Query parameters to append to the resolved URL. Merged on top of `originParams` from config; step keys win on collision. If `url` already contains a colliding query key, the value here replaces it. Values support environment variable substitution via `$VAR` syntax. WARNING: values are embedded in the request URL and appear in test results, logs, and reports.",
23514
+ type: "object",
23515
+ additionalProperties: {
23516
+ type: "string"
23517
+ },
23518
+ default: {}
23519
+ },
23191
23520
  statusCodes: {
23192
23521
  description: "Accepted status codes. If the specified URL returns a code other than what is specified here, the action fails.",
23193
23522
  anyOf: [
@@ -23212,6 +23541,26 @@ var schemas_default = {
23212
23541
  307,
23213
23542
  308
23214
23543
  ]
23544
+ },
23545
+ headers: {
23546
+ description: "Additional HTTP headers to include in the request. Merged on top of Doc Detective's default browser-mimicking headers. Useful for sites behind bot protection or WAFs that allowlist specific headers (for example, a Cloudflare Access service token or a `Cookie` with a `cf_clearance` value).",
23547
+ default: {},
23548
+ anyOf: [
23549
+ {
23550
+ title: "Request headers (object)",
23551
+ description: "Headers to include in the HTTP request, in key/value format. Values must be strings.",
23552
+ type: "object",
23553
+ additionalProperties: {
23554
+ type: "string"
23555
+ },
23556
+ properties: {}
23557
+ },
23558
+ {
23559
+ title: "Request headers (string)",
23560
+ description: "Headers to include in the HTTP request, as newline-separated values. For example, `X-Api-Key: abc123\nAuthorization: Bearer token`.",
23561
+ type: "string"
23562
+ }
23563
+ ]
23215
23564
  }
23216
23565
  }
23217
23566
  }
@@ -23251,6 +23600,14 @@ var schemas_default = {
23251
23600
  "trim"
23252
23601
  ]
23253
23602
  },
23603
+ params: {
23604
+ description: "Query parameters to append to the resolved URL. Merged on top of `originParams` from config; step keys win on collision. If `url` already contains a colliding query key, the value here replaces it. Values support environment variable substitution via `$VAR` syntax. WARNING: values are embedded in the request URL and appear in test results, logs, and reports.",
23605
+ type: "object",
23606
+ additionalProperties: {
23607
+ type: "string"
23608
+ },
23609
+ default: {}
23610
+ },
23254
23611
  statusCodes: {
23255
23612
  description: "Accepted status codes. If the specified URL returns a code other than what is specified here, the action fails.",
23256
23613
  anyOf: [
@@ -23275,6 +23632,26 @@ var schemas_default = {
23275
23632
  307,
23276
23633
  308
23277
23634
  ]
23635
+ },
23636
+ headers: {
23637
+ description: "Additional HTTP headers to include in the request. Merged on top of Doc Detective's default browser-mimicking headers. Useful for sites behind bot protection or WAFs that allowlist specific headers (for example, a Cloudflare Access service token or a `Cookie` with a `cf_clearance` value).",
23638
+ default: {},
23639
+ anyOf: [
23640
+ {
23641
+ title: "Request headers (object)",
23642
+ description: "Headers to include in the HTTP request, in key/value format. Values must be strings.",
23643
+ type: "object",
23644
+ additionalProperties: {
23645
+ type: "string"
23646
+ },
23647
+ properties: {}
23648
+ },
23649
+ {
23650
+ title: "Request headers (string)",
23651
+ description: "Headers to include in the HTTP request, as newline-separated values. For example, `X-Api-Key: abc123\nAuthorization: Bearer token`.",
23652
+ type: "string"
23653
+ }
23654
+ ]
23278
23655
  }
23279
23656
  }
23280
23657
  }
@@ -23293,6 +23670,13 @@ var schemas_default = {
23293
23670
  statusCodes: [
23294
23671
  200
23295
23672
  ]
23673
+ },
23674
+ {
23675
+ url: "/health",
23676
+ origin: "https://my-app.com",
23677
+ params: {
23678
+ __clerk_testing_token: "$CLERK_TESTING_TOKEN"
23679
+ }
23296
23680
  }
23297
23681
  ]
23298
23682
  }
@@ -25233,6 +25617,14 @@ var schemas_default = {
25233
25617
  "trim"
25234
25618
  ]
25235
25619
  },
25620
+ params: {
25621
+ description: "Query parameters to append to the resolved URL. Merged on top of `originParams` from config; step keys win on collision. If `url` already contains a colliding query key, the value here replaces it. Values support environment variable substitution via `$VAR` syntax. WARNING: values are embedded in the request URL and appear in test results, logs, and reports.",
25622
+ type: "object",
25623
+ additionalProperties: {
25624
+ type: "string"
25625
+ },
25626
+ default: {}
25627
+ },
25236
25628
  timeout: {
25237
25629
  type: "integer",
25238
25630
  description: "Maximum time in milliseconds to wait for the page to be ready. If exceeded, the goTo action fails.",
@@ -25405,6 +25797,14 @@ var schemas_default = {
25405
25797
  "trim"
25406
25798
  ]
25407
25799
  },
25800
+ params: {
25801
+ description: "Query parameters to append to the resolved URL. Merged on top of `originParams` from config; step keys win on collision. If `url` already contains a colliding query key, the value here replaces it. Values support environment variable substitution via `$VAR` syntax. WARNING: values are embedded in the request URL and appear in test results, logs, and reports.",
25802
+ type: "object",
25803
+ additionalProperties: {
25804
+ type: "string"
25805
+ },
25806
+ default: {}
25807
+ },
25408
25808
  timeout: {
25409
25809
  type: "integer",
25410
25810
  description: "Maximum time in milliseconds to wait for the page to be ready. If exceeded, the goTo action fails.",
@@ -25554,6 +25954,13 @@ var schemas_default = {
25554
25954
  url: "/search",
25555
25955
  origin: "https://www.google.com"
25556
25956
  },
25957
+ {
25958
+ url: "/dashboard",
25959
+ origin: "https://my-app.com",
25960
+ params: {
25961
+ __clerk_testing_token: "$CLERK_TESTING_TOKEN"
25962
+ }
25963
+ },
25557
25964
  {
25558
25965
  url: "https://www.example.com",
25559
25966
  waitUntil: {
@@ -27819,9 +28226,9 @@ var schemas_default = {
27819
28226
  anyOf: [
27820
28227
  {
27821
28228
  title: "Screenshot (simple)",
27822
- description: "File path of the PNG file. Accepts absolute paths. If not specified, the file name is the ID of the step.",
28229
+ description: "File path of the PNG file. Accepts absolute paths. If not specified, the file name is the ID of the step. If an `http(s)` URL is supplied, the remote image is downloaded and used as a read-only reference for comparison; the new capture is written to a local run-specific folder instead of being uploaded back to the URL.",
27823
28230
  type: "string",
27824
- pattern: "([A-Za-z0-9_-]*\\.(png|PNG)$|\\$[A-Za-z0-9_]+)",
28231
+ pattern: "^(?:https?:\\/\\/.+\\.(?:png|PNG)(?:\\?.*)?|[A-Za-z]:[\\/\\\\].*\\.(?:png|PNG)|[\\/\\\\]?[A-Za-z0-9_.\\/\\\\-]*\\.(?:png|PNG)|\\$[A-Za-z0-9_]+)$",
27825
28232
  transform: [
27826
28233
  "trim"
27827
28234
  ]
@@ -27832,9 +28239,9 @@ var schemas_default = {
27832
28239
  properties: {
27833
28240
  path: {
27834
28241
  title: "Screenshot (simple)",
27835
- description: "File path of the PNG file. Accepts absolute paths. If not specified, the file name is the ID of the step.",
28242
+ description: "File path of the PNG file. Accepts absolute paths. If not specified, the file name is the ID of the step. If an `http(s)` URL is supplied, the remote image is downloaded and used as a read-only reference for comparison; the new capture is written to a local run-specific folder instead of being uploaded back to the URL.",
27836
28243
  type: "string",
27837
- pattern: "([A-Za-z0-9_-]*\\.(png|PNG)$|\\$[A-Za-z0-9_]+)",
28244
+ pattern: "^(?:https?:\\/\\/.+\\.(?:png|PNG)(?:\\?.*)?|[A-Za-z]:[\\/\\\\].*\\.(?:png|PNG)|[\\/\\\\]?[A-Za-z0-9_.\\/\\\\-]*\\.(?:png|PNG)|\\$[A-Za-z0-9_]+)$",
27838
28245
  transform: [
27839
28246
  "trim"
27840
28247
  ]
@@ -28065,9 +28472,9 @@ var schemas_default = {
28065
28472
  schemas: {
28066
28473
  path: {
28067
28474
  title: "Screenshot (simple)",
28068
- description: "File path of the PNG file. Accepts absolute paths. If not specified, the file name is the ID of the step.",
28475
+ description: "File path of the PNG file. Accepts absolute paths. If not specified, the file name is the ID of the step. If an `http(s)` URL is supplied, the remote image is downloaded and used as a read-only reference for comparison; the new capture is written to a local run-specific folder instead of being uploaded back to the URL.",
28069
28476
  type: "string",
28070
- pattern: "([A-Za-z0-9_-]*\\.(png|PNG)$|\\$[A-Za-z0-9_]+)",
28477
+ pattern: "^(?:https?:\\/\\/.+\\.(?:png|PNG)(?:\\?.*)?|[A-Za-z]:[\\/\\\\].*\\.(?:png|PNG)|[\\/\\\\]?[A-Za-z0-9_.\\/\\\\-]*\\.(?:png|PNG)|\\$[A-Za-z0-9_]+)$",
28071
28478
  transform: [
28072
28479
  "trim"
28073
28480
  ]
@@ -28078,9 +28485,9 @@ var schemas_default = {
28078
28485
  properties: {
28079
28486
  path: {
28080
28487
  title: "Screenshot (simple)",
28081
- description: "File path of the PNG file. Accepts absolute paths. If not specified, the file name is the ID of the step.",
28488
+ description: "File path of the PNG file. Accepts absolute paths. If not specified, the file name is the ID of the step. If an `http(s)` URL is supplied, the remote image is downloaded and used as a read-only reference for comparison; the new capture is written to a local run-specific folder instead of being uploaded back to the URL.",
28082
28489
  type: "string",
28083
- pattern: "([A-Za-z0-9_-]*\\.(png|PNG)$|\\$[A-Za-z0-9_]+)",
28490
+ pattern: "^(?:https?:\\/\\/.+\\.(?:png|PNG)(?:\\?.*)?|[A-Za-z]:[\\/\\\\].*\\.(?:png|PNG)|[\\/\\\\]?[A-Za-z0-9_.\\/\\\\-]*\\.(?:png|PNG)|\\$[A-Za-z0-9_]+)$",
28084
28491
  transform: [
28085
28492
  "trim"
28086
28493
  ]
@@ -28462,6 +28869,12 @@ var schemas_default = {
28462
28869
  "image.png",
28463
28870
  "static/images/image.png",
28464
28871
  "/User/manny/projects/doc-detective/static/images/image.png",
28872
+ "https://example.com/static/images/image.png",
28873
+ {
28874
+ path: "https://promptless-customer-doc-assets.s3.amazonaws.com/docs-images/request-changes-button-0c851bb3.png",
28875
+ maxVariation: 0.05,
28876
+ overwrite: "aboveVariation"
28877
+ },
28465
28878
  {
28466
28879
  path: "image.png",
28467
28880
  directory: "static/images",
@@ -31811,6 +32224,14 @@ var schemas_default = {
31811
32224
  "trim"
31812
32225
  ]
31813
32226
  },
32227
+ params: {
32228
+ description: "Query parameters to append to the resolved URL. Merged on top of `originParams` from config; step keys win on collision. If `url` already contains a colliding query key, the value here replaces it. Values support environment variable substitution via `$VAR` syntax. WARNING: values are embedded in the request URL and appear in test results, logs, and reports.",
32229
+ type: "object",
32230
+ additionalProperties: {
32231
+ type: "string"
32232
+ },
32233
+ default: {}
32234
+ },
31814
32235
  statusCodes: {
31815
32236
  description: "Accepted status codes. If the specified URL returns a code other than what is specified here, the action fails.",
31816
32237
  anyOf: [
@@ -31835,6 +32256,26 @@ var schemas_default = {
31835
32256
  307,
31836
32257
  308
31837
32258
  ]
32259
+ },
32260
+ headers: {
32261
+ description: "Additional HTTP headers to include in the request. Merged on top of Doc Detective's default browser-mimicking headers. Useful for sites behind bot protection or WAFs that allowlist specific headers (for example, a Cloudflare Access service token or a `Cookie` with a `cf_clearance` value).",
32262
+ default: {},
32263
+ anyOf: [
32264
+ {
32265
+ title: "Request headers (object)",
32266
+ description: "Headers to include in the HTTP request, in key/value format. Values must be strings.",
32267
+ type: "object",
32268
+ additionalProperties: {
32269
+ type: "string"
32270
+ },
32271
+ properties: {}
32272
+ },
32273
+ {
32274
+ title: "Request headers (string)",
32275
+ description: "Headers to include in the HTTP request, as newline-separated values. For example, `X-Api-Key: abc123\nAuthorization: Bearer token`.",
32276
+ type: "string"
32277
+ }
32278
+ ]
31838
32279
  }
31839
32280
  }
31840
32281
  }
@@ -31874,6 +32315,14 @@ var schemas_default = {
31874
32315
  "trim"
31875
32316
  ]
31876
32317
  },
32318
+ params: {
32319
+ description: "Query parameters to append to the resolved URL. Merged on top of `originParams` from config; step keys win on collision. If `url` already contains a colliding query key, the value here replaces it. Values support environment variable substitution via `$VAR` syntax. WARNING: values are embedded in the request URL and appear in test results, logs, and reports.",
32320
+ type: "object",
32321
+ additionalProperties: {
32322
+ type: "string"
32323
+ },
32324
+ default: {}
32325
+ },
31877
32326
  statusCodes: {
31878
32327
  description: "Accepted status codes. If the specified URL returns a code other than what is specified here, the action fails.",
31879
32328
  anyOf: [
@@ -31898,6 +32347,26 @@ var schemas_default = {
31898
32347
  307,
31899
32348
  308
31900
32349
  ]
32350
+ },
32351
+ headers: {
32352
+ description: "Additional HTTP headers to include in the request. Merged on top of Doc Detective's default browser-mimicking headers. Useful for sites behind bot protection or WAFs that allowlist specific headers (for example, a Cloudflare Access service token or a `Cookie` with a `cf_clearance` value).",
32353
+ default: {},
32354
+ anyOf: [
32355
+ {
32356
+ title: "Request headers (object)",
32357
+ description: "Headers to include in the HTTP request, in key/value format. Values must be strings.",
32358
+ type: "object",
32359
+ additionalProperties: {
32360
+ type: "string"
32361
+ },
32362
+ properties: {}
32363
+ },
32364
+ {
32365
+ title: "Request headers (string)",
32366
+ description: "Headers to include in the HTTP request, as newline-separated values. For example, `X-Api-Key: abc123\nAuthorization: Bearer token`.",
32367
+ type: "string"
32368
+ }
32369
+ ]
31901
32370
  }
31902
32371
  }
31903
32372
  }
@@ -31916,6 +32385,13 @@ var schemas_default = {
31916
32385
  statusCodes: [
31917
32386
  200
31918
32387
  ]
32388
+ },
32389
+ {
32390
+ url: "/health",
32391
+ origin: "https://my-app.com",
32392
+ params: {
32393
+ __clerk_testing_token: "$CLERK_TESTING_TOKEN"
32394
+ }
31919
32395
  }
31920
32396
  ]
31921
32397
  }
@@ -33856,6 +34332,14 @@ var schemas_default = {
33856
34332
  "trim"
33857
34333
  ]
33858
34334
  },
34335
+ params: {
34336
+ description: "Query parameters to append to the resolved URL. Merged on top of `originParams` from config; step keys win on collision. If `url` already contains a colliding query key, the value here replaces it. Values support environment variable substitution via `$VAR` syntax. WARNING: values are embedded in the request URL and appear in test results, logs, and reports.",
34337
+ type: "object",
34338
+ additionalProperties: {
34339
+ type: "string"
34340
+ },
34341
+ default: {}
34342
+ },
33859
34343
  timeout: {
33860
34344
  type: "integer",
33861
34345
  description: "Maximum time in milliseconds to wait for the page to be ready. If exceeded, the goTo action fails.",
@@ -34028,6 +34512,14 @@ var schemas_default = {
34028
34512
  "trim"
34029
34513
  ]
34030
34514
  },
34515
+ params: {
34516
+ description: "Query parameters to append to the resolved URL. Merged on top of `originParams` from config; step keys win on collision. If `url` already contains a colliding query key, the value here replaces it. Values support environment variable substitution via `$VAR` syntax. WARNING: values are embedded in the request URL and appear in test results, logs, and reports.",
34517
+ type: "object",
34518
+ additionalProperties: {
34519
+ type: "string"
34520
+ },
34521
+ default: {}
34522
+ },
34031
34523
  timeout: {
34032
34524
  type: "integer",
34033
34525
  description: "Maximum time in milliseconds to wait for the page to be ready. If exceeded, the goTo action fails.",
@@ -34177,6 +34669,13 @@ var schemas_default = {
34177
34669
  url: "/search",
34178
34670
  origin: "https://www.google.com"
34179
34671
  },
34672
+ {
34673
+ url: "/dashboard",
34674
+ origin: "https://my-app.com",
34675
+ params: {
34676
+ __clerk_testing_token: "$CLERK_TESTING_TOKEN"
34677
+ }
34678
+ },
34180
34679
  {
34181
34680
  url: "https://www.example.com",
34182
34681
  waitUntil: {
@@ -36442,9 +36941,9 @@ var schemas_default = {
36442
36941
  anyOf: [
36443
36942
  {
36444
36943
  title: "Screenshot (simple)",
36445
- description: "File path of the PNG file. Accepts absolute paths. If not specified, the file name is the ID of the step.",
36944
+ description: "File path of the PNG file. Accepts absolute paths. If not specified, the file name is the ID of the step. If an `http(s)` URL is supplied, the remote image is downloaded and used as a read-only reference for comparison; the new capture is written to a local run-specific folder instead of being uploaded back to the URL.",
36446
36945
  type: "string",
36447
- pattern: "([A-Za-z0-9_-]*\\.(png|PNG)$|\\$[A-Za-z0-9_]+)",
36946
+ pattern: "^(?:https?:\\/\\/.+\\.(?:png|PNG)(?:\\?.*)?|[A-Za-z]:[\\/\\\\].*\\.(?:png|PNG)|[\\/\\\\]?[A-Za-z0-9_.\\/\\\\-]*\\.(?:png|PNG)|\\$[A-Za-z0-9_]+)$",
36448
36947
  transform: [
36449
36948
  "trim"
36450
36949
  ]
@@ -36455,9 +36954,9 @@ var schemas_default = {
36455
36954
  properties: {
36456
36955
  path: {
36457
36956
  title: "Screenshot (simple)",
36458
- description: "File path of the PNG file. Accepts absolute paths. If not specified, the file name is the ID of the step.",
36957
+ description: "File path of the PNG file. Accepts absolute paths. If not specified, the file name is the ID of the step. If an `http(s)` URL is supplied, the remote image is downloaded and used as a read-only reference for comparison; the new capture is written to a local run-specific folder instead of being uploaded back to the URL.",
36459
36958
  type: "string",
36460
- pattern: "([A-Za-z0-9_-]*\\.(png|PNG)$|\\$[A-Za-z0-9_]+)",
36959
+ pattern: "^(?:https?:\\/\\/.+\\.(?:png|PNG)(?:\\?.*)?|[A-Za-z]:[\\/\\\\].*\\.(?:png|PNG)|[\\/\\\\]?[A-Za-z0-9_.\\/\\\\-]*\\.(?:png|PNG)|\\$[A-Za-z0-9_]+)$",
36461
36960
  transform: [
36462
36961
  "trim"
36463
36962
  ]
@@ -36688,9 +37187,9 @@ var schemas_default = {
36688
37187
  schemas: {
36689
37188
  path: {
36690
37189
  title: "Screenshot (simple)",
36691
- description: "File path of the PNG file. Accepts absolute paths. If not specified, the file name is the ID of the step.",
37190
+ description: "File path of the PNG file. Accepts absolute paths. If not specified, the file name is the ID of the step. If an `http(s)` URL is supplied, the remote image is downloaded and used as a read-only reference for comparison; the new capture is written to a local run-specific folder instead of being uploaded back to the URL.",
36692
37191
  type: "string",
36693
- pattern: "([A-Za-z0-9_-]*\\.(png|PNG)$|\\$[A-Za-z0-9_]+)",
37192
+ pattern: "^(?:https?:\\/\\/.+\\.(?:png|PNG)(?:\\?.*)?|[A-Za-z]:[\\/\\\\].*\\.(?:png|PNG)|[\\/\\\\]?[A-Za-z0-9_.\\/\\\\-]*\\.(?:png|PNG)|\\$[A-Za-z0-9_]+)$",
36694
37193
  transform: [
36695
37194
  "trim"
36696
37195
  ]
@@ -36701,9 +37200,9 @@ var schemas_default = {
36701
37200
  properties: {
36702
37201
  path: {
36703
37202
  title: "Screenshot (simple)",
36704
- description: "File path of the PNG file. Accepts absolute paths. If not specified, the file name is the ID of the step.",
37203
+ description: "File path of the PNG file. Accepts absolute paths. If not specified, the file name is the ID of the step. If an `http(s)` URL is supplied, the remote image is downloaded and used as a read-only reference for comparison; the new capture is written to a local run-specific folder instead of being uploaded back to the URL.",
36705
37204
  type: "string",
36706
- pattern: "([A-Za-z0-9_-]*\\.(png|PNG)$|\\$[A-Za-z0-9_]+)",
37205
+ pattern: "^(?:https?:\\/\\/.+\\.(?:png|PNG)(?:\\?.*)?|[A-Za-z]:[\\/\\\\].*\\.(?:png|PNG)|[\\/\\\\]?[A-Za-z0-9_.\\/\\\\-]*\\.(?:png|PNG)|\\$[A-Za-z0-9_]+)$",
36707
37206
  transform: [
36708
37207
  "trim"
36709
37208
  ]
@@ -37085,6 +37584,12 @@ var schemas_default = {
37085
37584
  "image.png",
37086
37585
  "static/images/image.png",
37087
37586
  "/User/manny/projects/doc-detective/static/images/image.png",
37587
+ "https://example.com/static/images/image.png",
37588
+ {
37589
+ path: "https://promptless-customer-doc-assets.s3.amazonaws.com/docs-images/request-changes-button-0c851bb3.png",
37590
+ maxVariation: 0.05,
37591
+ overwrite: "aboveVariation"
37592
+ },
37088
37593
  {
37089
37594
  path: "image.png",
37090
37595
  directory: "static/images",
@@ -39498,8 +40003,19 @@ var schemas_default = {
39498
40003
  loadVariables: ".env",
39499
40004
  fileTypes: [
39500
40005
  "markdown"
40006
+ ],
40007
+ reporters: [
40008
+ "terminal",
40009
+ "json",
40010
+ "html"
39501
40011
  ]
39502
40012
  },
40013
+ {
40014
+ origin: "https://my-app.com",
40015
+ originParams: {
40016
+ __clerk_testing_token: "$CLERK_TESTING_TOKEN"
40017
+ }
40018
+ },
39503
40019
  {
39504
40020
  fileTypes: [
39505
40021
  {
@@ -41123,6 +41639,14 @@ var schemas_default = {
41123
41639
  "trim"
41124
41640
  ]
41125
41641
  },
41642
+ params: {
41643
+ description: "Query parameters to append to the resolved URL. Merged on top of `originParams` from config; step keys win on collision. If `url` already contains a colliding query key, the value here replaces it. Values support environment variable substitution via `$VAR` syntax. WARNING: values are embedded in the request URL and appear in test results, logs, and reports.",
41644
+ type: "object",
41645
+ additionalProperties: {
41646
+ type: "string"
41647
+ },
41648
+ default: {}
41649
+ },
41126
41650
  statusCodes: {
41127
41651
  description: "Accepted status codes. If the specified URL returns a code other than what is specified here, the action fails.",
41128
41652
  anyOf: [
@@ -41147,6 +41671,26 @@ var schemas_default = {
41147
41671
  307,
41148
41672
  308
41149
41673
  ]
41674
+ },
41675
+ headers: {
41676
+ description: "Additional HTTP headers to include in the request. Merged on top of Doc Detective's default browser-mimicking headers. Useful for sites behind bot protection or WAFs that allowlist specific headers (for example, a Cloudflare Access service token or a `Cookie` with a `cf_clearance` value).",
41677
+ default: {},
41678
+ anyOf: [
41679
+ {
41680
+ title: "Request headers (object)",
41681
+ description: "Headers to include in the HTTP request, in key/value format. Values must be strings.",
41682
+ type: "object",
41683
+ additionalProperties: {
41684
+ type: "string"
41685
+ },
41686
+ properties: {}
41687
+ },
41688
+ {
41689
+ title: "Request headers (string)",
41690
+ description: "Headers to include in the HTTP request, as newline-separated values. For example, `X-Api-Key: abc123\nAuthorization: Bearer token`.",
41691
+ type: "string"
41692
+ }
41693
+ ]
41150
41694
  }
41151
41695
  }
41152
41696
  }
@@ -41186,6 +41730,14 @@ var schemas_default = {
41186
41730
  "trim"
41187
41731
  ]
41188
41732
  },
41733
+ params: {
41734
+ description: "Query parameters to append to the resolved URL. Merged on top of `originParams` from config; step keys win on collision. If `url` already contains a colliding query key, the value here replaces it. Values support environment variable substitution via `$VAR` syntax. WARNING: values are embedded in the request URL and appear in test results, logs, and reports.",
41735
+ type: "object",
41736
+ additionalProperties: {
41737
+ type: "string"
41738
+ },
41739
+ default: {}
41740
+ },
41189
41741
  statusCodes: {
41190
41742
  description: "Accepted status codes. If the specified URL returns a code other than what is specified here, the action fails.",
41191
41743
  anyOf: [
@@ -41210,6 +41762,26 @@ var schemas_default = {
41210
41762
  307,
41211
41763
  308
41212
41764
  ]
41765
+ },
41766
+ headers: {
41767
+ description: "Additional HTTP headers to include in the request. Merged on top of Doc Detective's default browser-mimicking headers. Useful for sites behind bot protection or WAFs that allowlist specific headers (for example, a Cloudflare Access service token or a `Cookie` with a `cf_clearance` value).",
41768
+ default: {},
41769
+ anyOf: [
41770
+ {
41771
+ title: "Request headers (object)",
41772
+ description: "Headers to include in the HTTP request, in key/value format. Values must be strings.",
41773
+ type: "object",
41774
+ additionalProperties: {
41775
+ type: "string"
41776
+ },
41777
+ properties: {}
41778
+ },
41779
+ {
41780
+ title: "Request headers (string)",
41781
+ description: "Headers to include in the HTTP request, as newline-separated values. For example, `X-Api-Key: abc123\nAuthorization: Bearer token`.",
41782
+ type: "string"
41783
+ }
41784
+ ]
41213
41785
  }
41214
41786
  }
41215
41787
  }
@@ -41228,6 +41800,13 @@ var schemas_default = {
41228
41800
  statusCodes: [
41229
41801
  200
41230
41802
  ]
41803
+ },
41804
+ {
41805
+ url: "/health",
41806
+ origin: "https://my-app.com",
41807
+ params: {
41808
+ __clerk_testing_token: "$CLERK_TESTING_TOKEN"
41809
+ }
41231
41810
  }
41232
41811
  ]
41233
41812
  }
@@ -43168,6 +43747,14 @@ var schemas_default = {
43168
43747
  "trim"
43169
43748
  ]
43170
43749
  },
43750
+ params: {
43751
+ description: "Query parameters to append to the resolved URL. Merged on top of `originParams` from config; step keys win on collision. If `url` already contains a colliding query key, the value here replaces it. Values support environment variable substitution via `$VAR` syntax. WARNING: values are embedded in the request URL and appear in test results, logs, and reports.",
43752
+ type: "object",
43753
+ additionalProperties: {
43754
+ type: "string"
43755
+ },
43756
+ default: {}
43757
+ },
43171
43758
  timeout: {
43172
43759
  type: "integer",
43173
43760
  description: "Maximum time in milliseconds to wait for the page to be ready. If exceeded, the goTo action fails.",
@@ -43340,6 +43927,14 @@ var schemas_default = {
43340
43927
  "trim"
43341
43928
  ]
43342
43929
  },
43930
+ params: {
43931
+ description: "Query parameters to append to the resolved URL. Merged on top of `originParams` from config; step keys win on collision. If `url` already contains a colliding query key, the value here replaces it. Values support environment variable substitution via `$VAR` syntax. WARNING: values are embedded in the request URL and appear in test results, logs, and reports.",
43932
+ type: "object",
43933
+ additionalProperties: {
43934
+ type: "string"
43935
+ },
43936
+ default: {}
43937
+ },
43343
43938
  timeout: {
43344
43939
  type: "integer",
43345
43940
  description: "Maximum time in milliseconds to wait for the page to be ready. If exceeded, the goTo action fails.",
@@ -43489,6 +44084,13 @@ var schemas_default = {
43489
44084
  url: "/search",
43490
44085
  origin: "https://www.google.com"
43491
44086
  },
44087
+ {
44088
+ url: "/dashboard",
44089
+ origin: "https://my-app.com",
44090
+ params: {
44091
+ __clerk_testing_token: "$CLERK_TESTING_TOKEN"
44092
+ }
44093
+ },
43492
44094
  {
43493
44095
  url: "https://www.example.com",
43494
44096
  waitUntil: {
@@ -45754,9 +46356,9 @@ var schemas_default = {
45754
46356
  anyOf: [
45755
46357
  {
45756
46358
  title: "Screenshot (simple)",
45757
- description: "File path of the PNG file. Accepts absolute paths. If not specified, the file name is the ID of the step.",
46359
+ description: "File path of the PNG file. Accepts absolute paths. If not specified, the file name is the ID of the step. If an `http(s)` URL is supplied, the remote image is downloaded and used as a read-only reference for comparison; the new capture is written to a local run-specific folder instead of being uploaded back to the URL.",
45758
46360
  type: "string",
45759
- pattern: "([A-Za-z0-9_-]*\\.(png|PNG)$|\\$[A-Za-z0-9_]+)",
46361
+ pattern: "^(?:https?:\\/\\/.+\\.(?:png|PNG)(?:\\?.*)?|[A-Za-z]:[\\/\\\\].*\\.(?:png|PNG)|[\\/\\\\]?[A-Za-z0-9_.\\/\\\\-]*\\.(?:png|PNG)|\\$[A-Za-z0-9_]+)$",
45760
46362
  transform: [
45761
46363
  "trim"
45762
46364
  ]
@@ -45767,9 +46369,9 @@ var schemas_default = {
45767
46369
  properties: {
45768
46370
  path: {
45769
46371
  title: "Screenshot (simple)",
45770
- description: "File path of the PNG file. Accepts absolute paths. If not specified, the file name is the ID of the step.",
46372
+ description: "File path of the PNG file. Accepts absolute paths. If not specified, the file name is the ID of the step. If an `http(s)` URL is supplied, the remote image is downloaded and used as a read-only reference for comparison; the new capture is written to a local run-specific folder instead of being uploaded back to the URL.",
45771
46373
  type: "string",
45772
- pattern: "([A-Za-z0-9_-]*\\.(png|PNG)$|\\$[A-Za-z0-9_]+)",
46374
+ pattern: "^(?:https?:\\/\\/.+\\.(?:png|PNG)(?:\\?.*)?|[A-Za-z]:[\\/\\\\].*\\.(?:png|PNG)|[\\/\\\\]?[A-Za-z0-9_.\\/\\\\-]*\\.(?:png|PNG)|\\$[A-Za-z0-9_]+)$",
45773
46375
  transform: [
45774
46376
  "trim"
45775
46377
  ]
@@ -46000,9 +46602,9 @@ var schemas_default = {
46000
46602
  schemas: {
46001
46603
  path: {
46002
46604
  title: "Screenshot (simple)",
46003
- description: "File path of the PNG file. Accepts absolute paths. If not specified, the file name is the ID of the step.",
46605
+ description: "File path of the PNG file. Accepts absolute paths. If not specified, the file name is the ID of the step. If an `http(s)` URL is supplied, the remote image is downloaded and used as a read-only reference for comparison; the new capture is written to a local run-specific folder instead of being uploaded back to the URL.",
46004
46606
  type: "string",
46005
- pattern: "([A-Za-z0-9_-]*\\.(png|PNG)$|\\$[A-Za-z0-9_]+)",
46607
+ pattern: "^(?:https?:\\/\\/.+\\.(?:png|PNG)(?:\\?.*)?|[A-Za-z]:[\\/\\\\].*\\.(?:png|PNG)|[\\/\\\\]?[A-Za-z0-9_.\\/\\\\-]*\\.(?:png|PNG)|\\$[A-Za-z0-9_]+)$",
46006
46608
  transform: [
46007
46609
  "trim"
46008
46610
  ]
@@ -46013,9 +46615,9 @@ var schemas_default = {
46013
46615
  properties: {
46014
46616
  path: {
46015
46617
  title: "Screenshot (simple)",
46016
- description: "File path of the PNG file. Accepts absolute paths. If not specified, the file name is the ID of the step.",
46618
+ description: "File path of the PNG file. Accepts absolute paths. If not specified, the file name is the ID of the step. If an `http(s)` URL is supplied, the remote image is downloaded and used as a read-only reference for comparison; the new capture is written to a local run-specific folder instead of being uploaded back to the URL.",
46017
46619
  type: "string",
46018
- pattern: "([A-Za-z0-9_-]*\\.(png|PNG)$|\\$[A-Za-z0-9_]+)",
46620
+ pattern: "^(?:https?:\\/\\/.+\\.(?:png|PNG)(?:\\?.*)?|[A-Za-z]:[\\/\\\\].*\\.(?:png|PNG)|[\\/\\\\]?[A-Za-z0-9_.\\/\\\\-]*\\.(?:png|PNG)|\\$[A-Za-z0-9_]+)$",
46019
46621
  transform: [
46020
46622
  "trim"
46021
46623
  ]
@@ -46397,6 +46999,12 @@ var schemas_default = {
46397
46999
  "image.png",
46398
47000
  "static/images/image.png",
46399
47001
  "/User/manny/projects/doc-detective/static/images/image.png",
47002
+ "https://example.com/static/images/image.png",
47003
+ {
47004
+ path: "https://promptless-customer-doc-assets.s3.amazonaws.com/docs-images/request-changes-button-0c851bb3.png",
47005
+ maxVariation: 0.05,
47006
+ overwrite: "aboveVariation"
47007
+ },
46400
47008
  {
46401
47009
  path: "image.png",
46402
47010
  directory: "static/images",
@@ -49220,6 +49828,14 @@ var schemas_default = {
49220
49828
  "trim"
49221
49829
  ]
49222
49830
  },
49831
+ params: {
49832
+ description: "Query parameters to append to the resolved URL. Merged on top of `originParams` from config; step keys win on collision. If `url` already contains a colliding query key, the value here replaces it. Values support environment variable substitution via `$VAR` syntax. WARNING: values are embedded in the request URL and appear in test results, logs, and reports.",
49833
+ type: "object",
49834
+ additionalProperties: {
49835
+ type: "string"
49836
+ },
49837
+ default: {}
49838
+ },
49223
49839
  statusCodes: {
49224
49840
  description: "Accepted status codes. If the specified URL returns a code other than what is specified here, the action fails.",
49225
49841
  anyOf: [
@@ -49244,6 +49860,26 @@ var schemas_default = {
49244
49860
  307,
49245
49861
  308
49246
49862
  ]
49863
+ },
49864
+ headers: {
49865
+ description: "Additional HTTP headers to include in the request. Merged on top of Doc Detective's default browser-mimicking headers. Useful for sites behind bot protection or WAFs that allowlist specific headers (for example, a Cloudflare Access service token or a `Cookie` with a `cf_clearance` value).",
49866
+ default: {},
49867
+ anyOf: [
49868
+ {
49869
+ title: "Request headers (object)",
49870
+ description: "Headers to include in the HTTP request, in key/value format. Values must be strings.",
49871
+ type: "object",
49872
+ additionalProperties: {
49873
+ type: "string"
49874
+ },
49875
+ properties: {}
49876
+ },
49877
+ {
49878
+ title: "Request headers (string)",
49879
+ description: "Headers to include in the HTTP request, as newline-separated values. For example, `X-Api-Key: abc123\nAuthorization: Bearer token`.",
49880
+ type: "string"
49881
+ }
49882
+ ]
49247
49883
  }
49248
49884
  }
49249
49885
  }
@@ -49283,6 +49919,14 @@ var schemas_default = {
49283
49919
  "trim"
49284
49920
  ]
49285
49921
  },
49922
+ params: {
49923
+ description: "Query parameters to append to the resolved URL. Merged on top of `originParams` from config; step keys win on collision. If `url` already contains a colliding query key, the value here replaces it. Values support environment variable substitution via `$VAR` syntax. WARNING: values are embedded in the request URL and appear in test results, logs, and reports.",
49924
+ type: "object",
49925
+ additionalProperties: {
49926
+ type: "string"
49927
+ },
49928
+ default: {}
49929
+ },
49286
49930
  statusCodes: {
49287
49931
  description: "Accepted status codes. If the specified URL returns a code other than what is specified here, the action fails.",
49288
49932
  anyOf: [
@@ -49307,6 +49951,26 @@ var schemas_default = {
49307
49951
  307,
49308
49952
  308
49309
49953
  ]
49954
+ },
49955
+ headers: {
49956
+ description: "Additional HTTP headers to include in the request. Merged on top of Doc Detective's default browser-mimicking headers. Useful for sites behind bot protection or WAFs that allowlist specific headers (for example, a Cloudflare Access service token or a `Cookie` with a `cf_clearance` value).",
49957
+ default: {},
49958
+ anyOf: [
49959
+ {
49960
+ title: "Request headers (object)",
49961
+ description: "Headers to include in the HTTP request, in key/value format. Values must be strings.",
49962
+ type: "object",
49963
+ additionalProperties: {
49964
+ type: "string"
49965
+ },
49966
+ properties: {}
49967
+ },
49968
+ {
49969
+ title: "Request headers (string)",
49970
+ description: "Headers to include in the HTTP request, as newline-separated values. For example, `X-Api-Key: abc123\nAuthorization: Bearer token`.",
49971
+ type: "string"
49972
+ }
49973
+ ]
49310
49974
  }
49311
49975
  }
49312
49976
  }
@@ -49325,6 +49989,13 @@ var schemas_default = {
49325
49989
  statusCodes: [
49326
49990
  200
49327
49991
  ]
49992
+ },
49993
+ {
49994
+ url: "/health",
49995
+ origin: "https://my-app.com",
49996
+ params: {
49997
+ __clerk_testing_token: "$CLERK_TESTING_TOKEN"
49998
+ }
49328
49999
  }
49329
50000
  ]
49330
50001
  }
@@ -51265,6 +51936,14 @@ var schemas_default = {
51265
51936
  "trim"
51266
51937
  ]
51267
51938
  },
51939
+ params: {
51940
+ description: "Query parameters to append to the resolved URL. Merged on top of `originParams` from config; step keys win on collision. If `url` already contains a colliding query key, the value here replaces it. Values support environment variable substitution via `$VAR` syntax. WARNING: values are embedded in the request URL and appear in test results, logs, and reports.",
51941
+ type: "object",
51942
+ additionalProperties: {
51943
+ type: "string"
51944
+ },
51945
+ default: {}
51946
+ },
51268
51947
  timeout: {
51269
51948
  type: "integer",
51270
51949
  description: "Maximum time in milliseconds to wait for the page to be ready. If exceeded, the goTo action fails.",
@@ -51437,6 +52116,14 @@ var schemas_default = {
51437
52116
  "trim"
51438
52117
  ]
51439
52118
  },
52119
+ params: {
52120
+ description: "Query parameters to append to the resolved URL. Merged on top of `originParams` from config; step keys win on collision. If `url` already contains a colliding query key, the value here replaces it. Values support environment variable substitution via `$VAR` syntax. WARNING: values are embedded in the request URL and appear in test results, logs, and reports.",
52121
+ type: "object",
52122
+ additionalProperties: {
52123
+ type: "string"
52124
+ },
52125
+ default: {}
52126
+ },
51440
52127
  timeout: {
51441
52128
  type: "integer",
51442
52129
  description: "Maximum time in milliseconds to wait for the page to be ready. If exceeded, the goTo action fails.",
@@ -51586,6 +52273,13 @@ var schemas_default = {
51586
52273
  url: "/search",
51587
52274
  origin: "https://www.google.com"
51588
52275
  },
52276
+ {
52277
+ url: "/dashboard",
52278
+ origin: "https://my-app.com",
52279
+ params: {
52280
+ __clerk_testing_token: "$CLERK_TESTING_TOKEN"
52281
+ }
52282
+ },
51589
52283
  {
51590
52284
  url: "https://www.example.com",
51591
52285
  waitUntil: {
@@ -53851,9 +54545,9 @@ var schemas_default = {
53851
54545
  anyOf: [
53852
54546
  {
53853
54547
  title: "Screenshot (simple)",
53854
- description: "File path of the PNG file. Accepts absolute paths. If not specified, the file name is the ID of the step.",
54548
+ description: "File path of the PNG file. Accepts absolute paths. If not specified, the file name is the ID of the step. If an `http(s)` URL is supplied, the remote image is downloaded and used as a read-only reference for comparison; the new capture is written to a local run-specific folder instead of being uploaded back to the URL.",
53855
54549
  type: "string",
53856
- pattern: "([A-Za-z0-9_-]*\\.(png|PNG)$|\\$[A-Za-z0-9_]+)",
54550
+ pattern: "^(?:https?:\\/\\/.+\\.(?:png|PNG)(?:\\?.*)?|[A-Za-z]:[\\/\\\\].*\\.(?:png|PNG)|[\\/\\\\]?[A-Za-z0-9_.\\/\\\\-]*\\.(?:png|PNG)|\\$[A-Za-z0-9_]+)$",
53857
54551
  transform: [
53858
54552
  "trim"
53859
54553
  ]
@@ -53864,9 +54558,9 @@ var schemas_default = {
53864
54558
  properties: {
53865
54559
  path: {
53866
54560
  title: "Screenshot (simple)",
53867
- description: "File path of the PNG file. Accepts absolute paths. If not specified, the file name is the ID of the step.",
54561
+ description: "File path of the PNG file. Accepts absolute paths. If not specified, the file name is the ID of the step. If an `http(s)` URL is supplied, the remote image is downloaded and used as a read-only reference for comparison; the new capture is written to a local run-specific folder instead of being uploaded back to the URL.",
53868
54562
  type: "string",
53869
- pattern: "([A-Za-z0-9_-]*\\.(png|PNG)$|\\$[A-Za-z0-9_]+)",
54563
+ pattern: "^(?:https?:\\/\\/.+\\.(?:png|PNG)(?:\\?.*)?|[A-Za-z]:[\\/\\\\].*\\.(?:png|PNG)|[\\/\\\\]?[A-Za-z0-9_.\\/\\\\-]*\\.(?:png|PNG)|\\$[A-Za-z0-9_]+)$",
53870
54564
  transform: [
53871
54565
  "trim"
53872
54566
  ]
@@ -54097,9 +54791,9 @@ var schemas_default = {
54097
54791
  schemas: {
54098
54792
  path: {
54099
54793
  title: "Screenshot (simple)",
54100
- description: "File path of the PNG file. Accepts absolute paths. If not specified, the file name is the ID of the step.",
54794
+ description: "File path of the PNG file. Accepts absolute paths. If not specified, the file name is the ID of the step. If an `http(s)` URL is supplied, the remote image is downloaded and used as a read-only reference for comparison; the new capture is written to a local run-specific folder instead of being uploaded back to the URL.",
54101
54795
  type: "string",
54102
- pattern: "([A-Za-z0-9_-]*\\.(png|PNG)$|\\$[A-Za-z0-9_]+)",
54796
+ pattern: "^(?:https?:\\/\\/.+\\.(?:png|PNG)(?:\\?.*)?|[A-Za-z]:[\\/\\\\].*\\.(?:png|PNG)|[\\/\\\\]?[A-Za-z0-9_.\\/\\\\-]*\\.(?:png|PNG)|\\$[A-Za-z0-9_]+)$",
54103
54797
  transform: [
54104
54798
  "trim"
54105
54799
  ]
@@ -54110,9 +54804,9 @@ var schemas_default = {
54110
54804
  properties: {
54111
54805
  path: {
54112
54806
  title: "Screenshot (simple)",
54113
- description: "File path of the PNG file. Accepts absolute paths. If not specified, the file name is the ID of the step.",
54807
+ description: "File path of the PNG file. Accepts absolute paths. If not specified, the file name is the ID of the step. If an `http(s)` URL is supplied, the remote image is downloaded and used as a read-only reference for comparison; the new capture is written to a local run-specific folder instead of being uploaded back to the URL.",
54114
54808
  type: "string",
54115
- pattern: "([A-Za-z0-9_-]*\\.(png|PNG)$|\\$[A-Za-z0-9_]+)",
54809
+ pattern: "^(?:https?:\\/\\/.+\\.(?:png|PNG)(?:\\?.*)?|[A-Za-z]:[\\/\\\\].*\\.(?:png|PNG)|[\\/\\\\]?[A-Za-z0-9_.\\/\\\\-]*\\.(?:png|PNG)|\\$[A-Za-z0-9_]+)$",
54116
54810
  transform: [
54117
54811
  "trim"
54118
54812
  ]
@@ -54494,6 +55188,12 @@ var schemas_default = {
54494
55188
  "image.png",
54495
55189
  "static/images/image.png",
54496
55190
  "/User/manny/projects/doc-detective/static/images/image.png",
55191
+ "https://example.com/static/images/image.png",
55192
+ {
55193
+ path: "https://promptless-customer-doc-assets.s3.amazonaws.com/docs-images/request-changes-button-0c851bb3.png",
55194
+ maxVariation: 0.05,
55195
+ overwrite: "aboveVariation"
55196
+ },
54497
55197
  {
54498
55198
  path: "image.png",
54499
55199
  directory: "static/images",
@@ -59027,6 +59727,14 @@ var schemas_default = {
59027
59727
  "trim"
59028
59728
  ]
59029
59729
  },
59730
+ params: {
59731
+ description: "Query parameters to append to the resolved URL. Merged on top of `originParams` from config; step keys win on collision. If `url` already contains a colliding query key, the value here replaces it. Values support environment variable substitution via `$VAR` syntax. WARNING: values are embedded in the request URL and appear in test results, logs, and reports.",
59732
+ type: "object",
59733
+ additionalProperties: {
59734
+ type: "string"
59735
+ },
59736
+ default: {}
59737
+ },
59030
59738
  statusCodes: {
59031
59739
  description: "Accepted status codes. If the specified URL returns a code other than what is specified here, the action fails.",
59032
59740
  anyOf: [
@@ -59051,6 +59759,26 @@ var schemas_default = {
59051
59759
  307,
59052
59760
  308
59053
59761
  ]
59762
+ },
59763
+ headers: {
59764
+ description: "Additional HTTP headers to include in the request. Merged on top of Doc Detective's default browser-mimicking headers. Useful for sites behind bot protection or WAFs that allowlist specific headers (for example, a Cloudflare Access service token or a `Cookie` with a `cf_clearance` value).",
59765
+ default: {},
59766
+ anyOf: [
59767
+ {
59768
+ title: "Request headers (object)",
59769
+ description: "Headers to include in the HTTP request, in key/value format. Values must be strings.",
59770
+ type: "object",
59771
+ additionalProperties: {
59772
+ type: "string"
59773
+ },
59774
+ properties: {}
59775
+ },
59776
+ {
59777
+ title: "Request headers (string)",
59778
+ description: "Headers to include in the HTTP request, as newline-separated values. For example, `X-Api-Key: abc123\nAuthorization: Bearer token`.",
59779
+ type: "string"
59780
+ }
59781
+ ]
59054
59782
  }
59055
59783
  }
59056
59784
  }
@@ -59090,6 +59818,14 @@ var schemas_default = {
59090
59818
  "trim"
59091
59819
  ]
59092
59820
  },
59821
+ params: {
59822
+ description: "Query parameters to append to the resolved URL. Merged on top of `originParams` from config; step keys win on collision. If `url` already contains a colliding query key, the value here replaces it. Values support environment variable substitution via `$VAR` syntax. WARNING: values are embedded in the request URL and appear in test results, logs, and reports.",
59823
+ type: "object",
59824
+ additionalProperties: {
59825
+ type: "string"
59826
+ },
59827
+ default: {}
59828
+ },
59093
59829
  statusCodes: {
59094
59830
  description: "Accepted status codes. If the specified URL returns a code other than what is specified here, the action fails.",
59095
59831
  anyOf: [
@@ -59114,6 +59850,26 @@ var schemas_default = {
59114
59850
  307,
59115
59851
  308
59116
59852
  ]
59853
+ },
59854
+ headers: {
59855
+ description: "Additional HTTP headers to include in the request. Merged on top of Doc Detective's default browser-mimicking headers. Useful for sites behind bot protection or WAFs that allowlist specific headers (for example, a Cloudflare Access service token or a `Cookie` with a `cf_clearance` value).",
59856
+ default: {},
59857
+ anyOf: [
59858
+ {
59859
+ title: "Request headers (object)",
59860
+ description: "Headers to include in the HTTP request, in key/value format. Values must be strings.",
59861
+ type: "object",
59862
+ additionalProperties: {
59863
+ type: "string"
59864
+ },
59865
+ properties: {}
59866
+ },
59867
+ {
59868
+ title: "Request headers (string)",
59869
+ description: "Headers to include in the HTTP request, as newline-separated values. For example, `X-Api-Key: abc123\nAuthorization: Bearer token`.",
59870
+ type: "string"
59871
+ }
59872
+ ]
59117
59873
  }
59118
59874
  }
59119
59875
  }
@@ -59132,6 +59888,13 @@ var schemas_default = {
59132
59888
  statusCodes: [
59133
59889
  200
59134
59890
  ]
59891
+ },
59892
+ {
59893
+ url: "/health",
59894
+ origin: "https://my-app.com",
59895
+ params: {
59896
+ __clerk_testing_token: "$CLERK_TESTING_TOKEN"
59897
+ }
59135
59898
  }
59136
59899
  ]
59137
59900
  }
@@ -61072,6 +61835,14 @@ var schemas_default = {
61072
61835
  "trim"
61073
61836
  ]
61074
61837
  },
61838
+ params: {
61839
+ description: "Query parameters to append to the resolved URL. Merged on top of `originParams` from config; step keys win on collision. If `url` already contains a colliding query key, the value here replaces it. Values support environment variable substitution via `$VAR` syntax. WARNING: values are embedded in the request URL and appear in test results, logs, and reports.",
61840
+ type: "object",
61841
+ additionalProperties: {
61842
+ type: "string"
61843
+ },
61844
+ default: {}
61845
+ },
61075
61846
  timeout: {
61076
61847
  type: "integer",
61077
61848
  description: "Maximum time in milliseconds to wait for the page to be ready. If exceeded, the goTo action fails.",
@@ -61244,6 +62015,14 @@ var schemas_default = {
61244
62015
  "trim"
61245
62016
  ]
61246
62017
  },
62018
+ params: {
62019
+ description: "Query parameters to append to the resolved URL. Merged on top of `originParams` from config; step keys win on collision. If `url` already contains a colliding query key, the value here replaces it. Values support environment variable substitution via `$VAR` syntax. WARNING: values are embedded in the request URL and appear in test results, logs, and reports.",
62020
+ type: "object",
62021
+ additionalProperties: {
62022
+ type: "string"
62023
+ },
62024
+ default: {}
62025
+ },
61247
62026
  timeout: {
61248
62027
  type: "integer",
61249
62028
  description: "Maximum time in milliseconds to wait for the page to be ready. If exceeded, the goTo action fails.",
@@ -61393,6 +62172,13 @@ var schemas_default = {
61393
62172
  url: "/search",
61394
62173
  origin: "https://www.google.com"
61395
62174
  },
62175
+ {
62176
+ url: "/dashboard",
62177
+ origin: "https://my-app.com",
62178
+ params: {
62179
+ __clerk_testing_token: "$CLERK_TESTING_TOKEN"
62180
+ }
62181
+ },
61396
62182
  {
61397
62183
  url: "https://www.example.com",
61398
62184
  waitUntil: {
@@ -63658,9 +64444,9 @@ var schemas_default = {
63658
64444
  anyOf: [
63659
64445
  {
63660
64446
  title: "Screenshot (simple)",
63661
- description: "File path of the PNG file. Accepts absolute paths. If not specified, the file name is the ID of the step.",
64447
+ description: "File path of the PNG file. Accepts absolute paths. If not specified, the file name is the ID of the step. If an `http(s)` URL is supplied, the remote image is downloaded and used as a read-only reference for comparison; the new capture is written to a local run-specific folder instead of being uploaded back to the URL.",
63662
64448
  type: "string",
63663
- pattern: "([A-Za-z0-9_-]*\\.(png|PNG)$|\\$[A-Za-z0-9_]+)",
64449
+ pattern: "^(?:https?:\\/\\/.+\\.(?:png|PNG)(?:\\?.*)?|[A-Za-z]:[\\/\\\\].*\\.(?:png|PNG)|[\\/\\\\]?[A-Za-z0-9_.\\/\\\\-]*\\.(?:png|PNG)|\\$[A-Za-z0-9_]+)$",
63664
64450
  transform: [
63665
64451
  "trim"
63666
64452
  ]
@@ -63671,9 +64457,9 @@ var schemas_default = {
63671
64457
  properties: {
63672
64458
  path: {
63673
64459
  title: "Screenshot (simple)",
63674
- description: "File path of the PNG file. Accepts absolute paths. If not specified, the file name is the ID of the step.",
64460
+ description: "File path of the PNG file. Accepts absolute paths. If not specified, the file name is the ID of the step. If an `http(s)` URL is supplied, the remote image is downloaded and used as a read-only reference for comparison; the new capture is written to a local run-specific folder instead of being uploaded back to the URL.",
63675
64461
  type: "string",
63676
- pattern: "([A-Za-z0-9_-]*\\.(png|PNG)$|\\$[A-Za-z0-9_]+)",
64462
+ pattern: "^(?:https?:\\/\\/.+\\.(?:png|PNG)(?:\\?.*)?|[A-Za-z]:[\\/\\\\].*\\.(?:png|PNG)|[\\/\\\\]?[A-Za-z0-9_.\\/\\\\-]*\\.(?:png|PNG)|\\$[A-Za-z0-9_]+)$",
63677
64463
  transform: [
63678
64464
  "trim"
63679
64465
  ]
@@ -63904,9 +64690,9 @@ var schemas_default = {
63904
64690
  schemas: {
63905
64691
  path: {
63906
64692
  title: "Screenshot (simple)",
63907
- description: "File path of the PNG file. Accepts absolute paths. If not specified, the file name is the ID of the step.",
64693
+ description: "File path of the PNG file. Accepts absolute paths. If not specified, the file name is the ID of the step. If an `http(s)` URL is supplied, the remote image is downloaded and used as a read-only reference for comparison; the new capture is written to a local run-specific folder instead of being uploaded back to the URL.",
63908
64694
  type: "string",
63909
- pattern: "([A-Za-z0-9_-]*\\.(png|PNG)$|\\$[A-Za-z0-9_]+)",
64695
+ pattern: "^(?:https?:\\/\\/.+\\.(?:png|PNG)(?:\\?.*)?|[A-Za-z]:[\\/\\\\].*\\.(?:png|PNG)|[\\/\\\\]?[A-Za-z0-9_.\\/\\\\-]*\\.(?:png|PNG)|\\$[A-Za-z0-9_]+)$",
63910
64696
  transform: [
63911
64697
  "trim"
63912
64698
  ]
@@ -63917,9 +64703,9 @@ var schemas_default = {
63917
64703
  properties: {
63918
64704
  path: {
63919
64705
  title: "Screenshot (simple)",
63920
- description: "File path of the PNG file. Accepts absolute paths. If not specified, the file name is the ID of the step.",
64706
+ description: "File path of the PNG file. Accepts absolute paths. If not specified, the file name is the ID of the step. If an `http(s)` URL is supplied, the remote image is downloaded and used as a read-only reference for comparison; the new capture is written to a local run-specific folder instead of being uploaded back to the URL.",
63921
64707
  type: "string",
63922
- pattern: "([A-Za-z0-9_-]*\\.(png|PNG)$|\\$[A-Za-z0-9_]+)",
64708
+ pattern: "^(?:https?:\\/\\/.+\\.(?:png|PNG)(?:\\?.*)?|[A-Za-z]:[\\/\\\\].*\\.(?:png|PNG)|[\\/\\\\]?[A-Za-z0-9_.\\/\\\\-]*\\.(?:png|PNG)|\\$[A-Za-z0-9_]+)$",
63923
64709
  transform: [
63924
64710
  "trim"
63925
64711
  ]
@@ -64301,6 +65087,12 @@ var schemas_default = {
64301
65087
  "image.png",
64302
65088
  "static/images/image.png",
64303
65089
  "/User/manny/projects/doc-detective/static/images/image.png",
65090
+ "https://example.com/static/images/image.png",
65091
+ {
65092
+ path: "https://promptless-customer-doc-assets.s3.amazonaws.com/docs-images/request-changes-button-0c851bb3.png",
65093
+ maxVariation: 0.05,
65094
+ overwrite: "aboveVariation"
65095
+ },
64304
65096
  {
64305
65097
  path: "image.png",
64306
65098
  directory: "static/images",
@@ -67124,6 +67916,14 @@ var schemas_default = {
67124
67916
  "trim"
67125
67917
  ]
67126
67918
  },
67919
+ params: {
67920
+ description: "Query parameters to append to the resolved URL. Merged on top of `originParams` from config; step keys win on collision. If `url` already contains a colliding query key, the value here replaces it. Values support environment variable substitution via `$VAR` syntax. WARNING: values are embedded in the request URL and appear in test results, logs, and reports.",
67921
+ type: "object",
67922
+ additionalProperties: {
67923
+ type: "string"
67924
+ },
67925
+ default: {}
67926
+ },
67127
67927
  statusCodes: {
67128
67928
  description: "Accepted status codes. If the specified URL returns a code other than what is specified here, the action fails.",
67129
67929
  anyOf: [
@@ -67148,6 +67948,26 @@ var schemas_default = {
67148
67948
  307,
67149
67949
  308
67150
67950
  ]
67951
+ },
67952
+ headers: {
67953
+ description: "Additional HTTP headers to include in the request. Merged on top of Doc Detective's default browser-mimicking headers. Useful for sites behind bot protection or WAFs that allowlist specific headers (for example, a Cloudflare Access service token or a `Cookie` with a `cf_clearance` value).",
67954
+ default: {},
67955
+ anyOf: [
67956
+ {
67957
+ title: "Request headers (object)",
67958
+ description: "Headers to include in the HTTP request, in key/value format. Values must be strings.",
67959
+ type: "object",
67960
+ additionalProperties: {
67961
+ type: "string"
67962
+ },
67963
+ properties: {}
67964
+ },
67965
+ {
67966
+ title: "Request headers (string)",
67967
+ description: "Headers to include in the HTTP request, as newline-separated values. For example, `X-Api-Key: abc123\nAuthorization: Bearer token`.",
67968
+ type: "string"
67969
+ }
67970
+ ]
67151
67971
  }
67152
67972
  }
67153
67973
  }
@@ -67187,6 +68007,14 @@ var schemas_default = {
67187
68007
  "trim"
67188
68008
  ]
67189
68009
  },
68010
+ params: {
68011
+ description: "Query parameters to append to the resolved URL. Merged on top of `originParams` from config; step keys win on collision. If `url` already contains a colliding query key, the value here replaces it. Values support environment variable substitution via `$VAR` syntax. WARNING: values are embedded in the request URL and appear in test results, logs, and reports.",
68012
+ type: "object",
68013
+ additionalProperties: {
68014
+ type: "string"
68015
+ },
68016
+ default: {}
68017
+ },
67190
68018
  statusCodes: {
67191
68019
  description: "Accepted status codes. If the specified URL returns a code other than what is specified here, the action fails.",
67192
68020
  anyOf: [
@@ -67211,6 +68039,26 @@ var schemas_default = {
67211
68039
  307,
67212
68040
  308
67213
68041
  ]
68042
+ },
68043
+ headers: {
68044
+ description: "Additional HTTP headers to include in the request. Merged on top of Doc Detective's default browser-mimicking headers. Useful for sites behind bot protection or WAFs that allowlist specific headers (for example, a Cloudflare Access service token or a `Cookie` with a `cf_clearance` value).",
68045
+ default: {},
68046
+ anyOf: [
68047
+ {
68048
+ title: "Request headers (object)",
68049
+ description: "Headers to include in the HTTP request, in key/value format. Values must be strings.",
68050
+ type: "object",
68051
+ additionalProperties: {
68052
+ type: "string"
68053
+ },
68054
+ properties: {}
68055
+ },
68056
+ {
68057
+ title: "Request headers (string)",
68058
+ description: "Headers to include in the HTTP request, as newline-separated values. For example, `X-Api-Key: abc123\nAuthorization: Bearer token`.",
68059
+ type: "string"
68060
+ }
68061
+ ]
67214
68062
  }
67215
68063
  }
67216
68064
  }
@@ -67229,6 +68077,13 @@ var schemas_default = {
67229
68077
  statusCodes: [
67230
68078
  200
67231
68079
  ]
68080
+ },
68081
+ {
68082
+ url: "/health",
68083
+ origin: "https://my-app.com",
68084
+ params: {
68085
+ __clerk_testing_token: "$CLERK_TESTING_TOKEN"
68086
+ }
67232
68087
  }
67233
68088
  ]
67234
68089
  }
@@ -69169,6 +70024,14 @@ var schemas_default = {
69169
70024
  "trim"
69170
70025
  ]
69171
70026
  },
70027
+ params: {
70028
+ description: "Query parameters to append to the resolved URL. Merged on top of `originParams` from config; step keys win on collision. If `url` already contains a colliding query key, the value here replaces it. Values support environment variable substitution via `$VAR` syntax. WARNING: values are embedded in the request URL and appear in test results, logs, and reports.",
70029
+ type: "object",
70030
+ additionalProperties: {
70031
+ type: "string"
70032
+ },
70033
+ default: {}
70034
+ },
69172
70035
  timeout: {
69173
70036
  type: "integer",
69174
70037
  description: "Maximum time in milliseconds to wait for the page to be ready. If exceeded, the goTo action fails.",
@@ -69341,6 +70204,14 @@ var schemas_default = {
69341
70204
  "trim"
69342
70205
  ]
69343
70206
  },
70207
+ params: {
70208
+ description: "Query parameters to append to the resolved URL. Merged on top of `originParams` from config; step keys win on collision. If `url` already contains a colliding query key, the value here replaces it. Values support environment variable substitution via `$VAR` syntax. WARNING: values are embedded in the request URL and appear in test results, logs, and reports.",
70209
+ type: "object",
70210
+ additionalProperties: {
70211
+ type: "string"
70212
+ },
70213
+ default: {}
70214
+ },
69344
70215
  timeout: {
69345
70216
  type: "integer",
69346
70217
  description: "Maximum time in milliseconds to wait for the page to be ready. If exceeded, the goTo action fails.",
@@ -69490,6 +70361,13 @@ var schemas_default = {
69490
70361
  url: "/search",
69491
70362
  origin: "https://www.google.com"
69492
70363
  },
70364
+ {
70365
+ url: "/dashboard",
70366
+ origin: "https://my-app.com",
70367
+ params: {
70368
+ __clerk_testing_token: "$CLERK_TESTING_TOKEN"
70369
+ }
70370
+ },
69493
70371
  {
69494
70372
  url: "https://www.example.com",
69495
70373
  waitUntil: {
@@ -71755,9 +72633,9 @@ var schemas_default = {
71755
72633
  anyOf: [
71756
72634
  {
71757
72635
  title: "Screenshot (simple)",
71758
- description: "File path of the PNG file. Accepts absolute paths. If not specified, the file name is the ID of the step.",
72636
+ description: "File path of the PNG file. Accepts absolute paths. If not specified, the file name is the ID of the step. If an `http(s)` URL is supplied, the remote image is downloaded and used as a read-only reference for comparison; the new capture is written to a local run-specific folder instead of being uploaded back to the URL.",
71759
72637
  type: "string",
71760
- pattern: "([A-Za-z0-9_-]*\\.(png|PNG)$|\\$[A-Za-z0-9_]+)",
72638
+ pattern: "^(?:https?:\\/\\/.+\\.(?:png|PNG)(?:\\?.*)?|[A-Za-z]:[\\/\\\\].*\\.(?:png|PNG)|[\\/\\\\]?[A-Za-z0-9_.\\/\\\\-]*\\.(?:png|PNG)|\\$[A-Za-z0-9_]+)$",
71761
72639
  transform: [
71762
72640
  "trim"
71763
72641
  ]
@@ -71768,9 +72646,9 @@ var schemas_default = {
71768
72646
  properties: {
71769
72647
  path: {
71770
72648
  title: "Screenshot (simple)",
71771
- description: "File path of the PNG file. Accepts absolute paths. If not specified, the file name is the ID of the step.",
72649
+ description: "File path of the PNG file. Accepts absolute paths. If not specified, the file name is the ID of the step. If an `http(s)` URL is supplied, the remote image is downloaded and used as a read-only reference for comparison; the new capture is written to a local run-specific folder instead of being uploaded back to the URL.",
71772
72650
  type: "string",
71773
- pattern: "([A-Za-z0-9_-]*\\.(png|PNG)$|\\$[A-Za-z0-9_]+)",
72651
+ pattern: "^(?:https?:\\/\\/.+\\.(?:png|PNG)(?:\\?.*)?|[A-Za-z]:[\\/\\\\].*\\.(?:png|PNG)|[\\/\\\\]?[A-Za-z0-9_.\\/\\\\-]*\\.(?:png|PNG)|\\$[A-Za-z0-9_]+)$",
71774
72652
  transform: [
71775
72653
  "trim"
71776
72654
  ]
@@ -72001,9 +72879,9 @@ var schemas_default = {
72001
72879
  schemas: {
72002
72880
  path: {
72003
72881
  title: "Screenshot (simple)",
72004
- description: "File path of the PNG file. Accepts absolute paths. If not specified, the file name is the ID of the step.",
72882
+ description: "File path of the PNG file. Accepts absolute paths. If not specified, the file name is the ID of the step. If an `http(s)` URL is supplied, the remote image is downloaded and used as a read-only reference for comparison; the new capture is written to a local run-specific folder instead of being uploaded back to the URL.",
72005
72883
  type: "string",
72006
- pattern: "([A-Za-z0-9_-]*\\.(png|PNG)$|\\$[A-Za-z0-9_]+)",
72884
+ pattern: "^(?:https?:\\/\\/.+\\.(?:png|PNG)(?:\\?.*)?|[A-Za-z]:[\\/\\\\].*\\.(?:png|PNG)|[\\/\\\\]?[A-Za-z0-9_.\\/\\\\-]*\\.(?:png|PNG)|\\$[A-Za-z0-9_]+)$",
72007
72885
  transform: [
72008
72886
  "trim"
72009
72887
  ]
@@ -72014,9 +72892,9 @@ var schemas_default = {
72014
72892
  properties: {
72015
72893
  path: {
72016
72894
  title: "Screenshot (simple)",
72017
- description: "File path of the PNG file. Accepts absolute paths. If not specified, the file name is the ID of the step.",
72895
+ description: "File path of the PNG file. Accepts absolute paths. If not specified, the file name is the ID of the step. If an `http(s)` URL is supplied, the remote image is downloaded and used as a read-only reference for comparison; the new capture is written to a local run-specific folder instead of being uploaded back to the URL.",
72018
72896
  type: "string",
72019
- pattern: "([A-Za-z0-9_-]*\\.(png|PNG)$|\\$[A-Za-z0-9_]+)",
72897
+ pattern: "^(?:https?:\\/\\/.+\\.(?:png|PNG)(?:\\?.*)?|[A-Za-z]:[\\/\\\\].*\\.(?:png|PNG)|[\\/\\\\]?[A-Za-z0-9_.\\/\\\\-]*\\.(?:png|PNG)|\\$[A-Za-z0-9_]+)$",
72020
72898
  transform: [
72021
72899
  "trim"
72022
72900
  ]
@@ -72398,6 +73276,12 @@ var schemas_default = {
72398
73276
  "image.png",
72399
73277
  "static/images/image.png",
72400
73278
  "/User/manny/projects/doc-detective/static/images/image.png",
73279
+ "https://example.com/static/images/image.png",
73280
+ {
73281
+ path: "https://promptless-customer-doc-assets.s3.amazonaws.com/docs-images/request-changes-button-0c851bb3.png",
73282
+ maxVariation: 0.05,
73283
+ overwrite: "aboveVariation"
73284
+ },
72401
73285
  {
72402
73286
  path: "image.png",
72403
73287
  directory: "static/images",
@@ -76082,9 +76966,9 @@ var schemas_default = {
76082
76966
  anyOf: [
76083
76967
  {
76084
76968
  title: "Screenshot (simple)",
76085
- description: "File path of the PNG file. Accepts absolute paths. If not specified, the file name is the ID of the step.",
76969
+ description: "File path of the PNG file. Accepts absolute paths. If not specified, the file name is the ID of the step. If an `http(s)` URL is supplied, the remote image is downloaded and used as a read-only reference for comparison; the new capture is written to a local run-specific folder instead of being uploaded back to the URL.",
76086
76970
  type: "string",
76087
- pattern: "([A-Za-z0-9_-]*\\.(png|PNG)$|\\$[A-Za-z0-9_]+)",
76971
+ pattern: "^(?:https?:\\/\\/.+\\.(?:png|PNG)(?:\\?.*)?|[A-Za-z]:[\\/\\\\].*\\.(?:png|PNG)|[\\/\\\\]?[A-Za-z0-9_.\\/\\\\-]*\\.(?:png|PNG)|\\$[A-Za-z0-9_]+)$",
76088
76972
  transform: [
76089
76973
  "trim"
76090
76974
  ]
@@ -76095,9 +76979,9 @@ var schemas_default = {
76095
76979
  properties: {
76096
76980
  path: {
76097
76981
  title: "Screenshot (simple)",
76098
- description: "File path of the PNG file. Accepts absolute paths. If not specified, the file name is the ID of the step.",
76982
+ description: "File path of the PNG file. Accepts absolute paths. If not specified, the file name is the ID of the step. If an `http(s)` URL is supplied, the remote image is downloaded and used as a read-only reference for comparison; the new capture is written to a local run-specific folder instead of being uploaded back to the URL.",
76099
76983
  type: "string",
76100
- pattern: "([A-Za-z0-9_-]*\\.(png|PNG)$|\\$[A-Za-z0-9_]+)",
76984
+ pattern: "^(?:https?:\\/\\/.+\\.(?:png|PNG)(?:\\?.*)?|[A-Za-z]:[\\/\\\\].*\\.(?:png|PNG)|[\\/\\\\]?[A-Za-z0-9_.\\/\\\\-]*\\.(?:png|PNG)|\\$[A-Za-z0-9_]+)$",
76101
76985
  transform: [
76102
76986
  "trim"
76103
76987
  ]
@@ -76328,9 +77212,9 @@ var schemas_default = {
76328
77212
  schemas: {
76329
77213
  path: {
76330
77214
  title: "Screenshot (simple)",
76331
- description: "File path of the PNG file. Accepts absolute paths. If not specified, the file name is the ID of the step.",
77215
+ description: "File path of the PNG file. Accepts absolute paths. If not specified, the file name is the ID of the step. If an `http(s)` URL is supplied, the remote image is downloaded and used as a read-only reference for comparison; the new capture is written to a local run-specific folder instead of being uploaded back to the URL.",
76332
77216
  type: "string",
76333
- pattern: "([A-Za-z0-9_-]*\\.(png|PNG)$|\\$[A-Za-z0-9_]+)",
77217
+ pattern: "^(?:https?:\\/\\/.+\\.(?:png|PNG)(?:\\?.*)?|[A-Za-z]:[\\/\\\\].*\\.(?:png|PNG)|[\\/\\\\]?[A-Za-z0-9_.\\/\\\\-]*\\.(?:png|PNG)|\\$[A-Za-z0-9_]+)$",
76334
77218
  transform: [
76335
77219
  "trim"
76336
77220
  ]
@@ -76341,9 +77225,9 @@ var schemas_default = {
76341
77225
  properties: {
76342
77226
  path: {
76343
77227
  title: "Screenshot (simple)",
76344
- description: "File path of the PNG file. Accepts absolute paths. If not specified, the file name is the ID of the step.",
77228
+ description: "File path of the PNG file. Accepts absolute paths. If not specified, the file name is the ID of the step. If an `http(s)` URL is supplied, the remote image is downloaded and used as a read-only reference for comparison; the new capture is written to a local run-specific folder instead of being uploaded back to the URL.",
76345
77229
  type: "string",
76346
- pattern: "([A-Za-z0-9_-]*\\.(png|PNG)$|\\$[A-Za-z0-9_]+)",
77230
+ pattern: "^(?:https?:\\/\\/.+\\.(?:png|PNG)(?:\\?.*)?|[A-Za-z]:[\\/\\\\].*\\.(?:png|PNG)|[\\/\\\\]?[A-Za-z0-9_.\\/\\\\-]*\\.(?:png|PNG)|\\$[A-Za-z0-9_]+)$",
76347
77231
  transform: [
76348
77232
  "trim"
76349
77233
  ]
@@ -76725,6 +77609,12 @@ var schemas_default = {
76725
77609
  "image.png",
76726
77610
  "static/images/image.png",
76727
77611
  "/User/manny/projects/doc-detective/static/images/image.png",
77612
+ "https://example.com/static/images/image.png",
77613
+ {
77614
+ path: "https://promptless-customer-doc-assets.s3.amazonaws.com/docs-images/request-changes-button-0c851bb3.png",
77615
+ maxVariation: 0.05,
77616
+ overwrite: "aboveVariation"
77617
+ },
76728
77618
  {
76729
77619
  path: "image.png",
76730
77620
  directory: "static/images",
@@ -78313,6 +79203,14 @@ var schemas_default = {
78313
79203
  "trim"
78314
79204
  ]
78315
79205
  },
79206
+ params: {
79207
+ description: "Query parameters to append to the resolved URL. Merged on top of `originParams` from config; step keys win on collision. If `url` already contains a colliding query key, the value here replaces it. Values support environment variable substitution via `$VAR` syntax. WARNING: values are embedded in the request URL and appear in test results, logs, and reports.",
79208
+ type: "object",
79209
+ additionalProperties: {
79210
+ type: "string"
79211
+ },
79212
+ default: {}
79213
+ },
78316
79214
  statusCodes: {
78317
79215
  description: "Accepted status codes. If the specified URL returns a code other than what is specified here, the action fails.",
78318
79216
  anyOf: [
@@ -78337,6 +79235,26 @@ var schemas_default = {
78337
79235
  307,
78338
79236
  308
78339
79237
  ]
79238
+ },
79239
+ headers: {
79240
+ description: "Additional HTTP headers to include in the request. Merged on top of Doc Detective's default browser-mimicking headers. Useful for sites behind bot protection or WAFs that allowlist specific headers (for example, a Cloudflare Access service token or a `Cookie` with a `cf_clearance` value).",
79241
+ default: {},
79242
+ anyOf: [
79243
+ {
79244
+ title: "Request headers (object)",
79245
+ description: "Headers to include in the HTTP request, in key/value format. Values must be strings.",
79246
+ type: "object",
79247
+ additionalProperties: {
79248
+ type: "string"
79249
+ },
79250
+ properties: {}
79251
+ },
79252
+ {
79253
+ title: "Request headers (string)",
79254
+ description: "Headers to include in the HTTP request, as newline-separated values. For example, `X-Api-Key: abc123\nAuthorization: Bearer token`.",
79255
+ type: "string"
79256
+ }
79257
+ ]
78340
79258
  }
78341
79259
  }
78342
79260
  }
@@ -78376,6 +79294,14 @@ var schemas_default = {
78376
79294
  "trim"
78377
79295
  ]
78378
79296
  },
79297
+ params: {
79298
+ description: "Query parameters to append to the resolved URL. Merged on top of `originParams` from config; step keys win on collision. If `url` already contains a colliding query key, the value here replaces it. Values support environment variable substitution via `$VAR` syntax. WARNING: values are embedded in the request URL and appear in test results, logs, and reports.",
79299
+ type: "object",
79300
+ additionalProperties: {
79301
+ type: "string"
79302
+ },
79303
+ default: {}
79304
+ },
78379
79305
  statusCodes: {
78380
79306
  description: "Accepted status codes. If the specified URL returns a code other than what is specified here, the action fails.",
78381
79307
  anyOf: [
@@ -78400,6 +79326,26 @@ var schemas_default = {
78400
79326
  307,
78401
79327
  308
78402
79328
  ]
79329
+ },
79330
+ headers: {
79331
+ description: "Additional HTTP headers to include in the request. Merged on top of Doc Detective's default browser-mimicking headers. Useful for sites behind bot protection or WAFs that allowlist specific headers (for example, a Cloudflare Access service token or a `Cookie` with a `cf_clearance` value).",
79332
+ default: {},
79333
+ anyOf: [
79334
+ {
79335
+ title: "Request headers (object)",
79336
+ description: "Headers to include in the HTTP request, in key/value format. Values must be strings.",
79337
+ type: "object",
79338
+ additionalProperties: {
79339
+ type: "string"
79340
+ },
79341
+ properties: {}
79342
+ },
79343
+ {
79344
+ title: "Request headers (string)",
79345
+ description: "Headers to include in the HTTP request, as newline-separated values. For example, `X-Api-Key: abc123\nAuthorization: Bearer token`.",
79346
+ type: "string"
79347
+ }
79348
+ ]
78403
79349
  }
78404
79350
  }
78405
79351
  }
@@ -78418,6 +79364,13 @@ var schemas_default = {
78418
79364
  statusCodes: [
78419
79365
  200
78420
79366
  ]
79367
+ },
79368
+ {
79369
+ url: "/health",
79370
+ origin: "https://my-app.com",
79371
+ params: {
79372
+ __clerk_testing_token: "$CLERK_TESTING_TOKEN"
79373
+ }
78421
79374
  }
78422
79375
  ]
78423
79376
  }
@@ -80358,6 +81311,14 @@ var schemas_default = {
80358
81311
  "trim"
80359
81312
  ]
80360
81313
  },
81314
+ params: {
81315
+ description: "Query parameters to append to the resolved URL. Merged on top of `originParams` from config; step keys win on collision. If `url` already contains a colliding query key, the value here replaces it. Values support environment variable substitution via `$VAR` syntax. WARNING: values are embedded in the request URL and appear in test results, logs, and reports.",
81316
+ type: "object",
81317
+ additionalProperties: {
81318
+ type: "string"
81319
+ },
81320
+ default: {}
81321
+ },
80361
81322
  timeout: {
80362
81323
  type: "integer",
80363
81324
  description: "Maximum time in milliseconds to wait for the page to be ready. If exceeded, the goTo action fails.",
@@ -80530,6 +81491,14 @@ var schemas_default = {
80530
81491
  "trim"
80531
81492
  ]
80532
81493
  },
81494
+ params: {
81495
+ description: "Query parameters to append to the resolved URL. Merged on top of `originParams` from config; step keys win on collision. If `url` already contains a colliding query key, the value here replaces it. Values support environment variable substitution via `$VAR` syntax. WARNING: values are embedded in the request URL and appear in test results, logs, and reports.",
81496
+ type: "object",
81497
+ additionalProperties: {
81498
+ type: "string"
81499
+ },
81500
+ default: {}
81501
+ },
80533
81502
  timeout: {
80534
81503
  type: "integer",
80535
81504
  description: "Maximum time in milliseconds to wait for the page to be ready. If exceeded, the goTo action fails.",
@@ -80679,6 +81648,13 @@ var schemas_default = {
80679
81648
  url: "/search",
80680
81649
  origin: "https://www.google.com"
80681
81650
  },
81651
+ {
81652
+ url: "/dashboard",
81653
+ origin: "https://my-app.com",
81654
+ params: {
81655
+ __clerk_testing_token: "$CLERK_TESTING_TOKEN"
81656
+ }
81657
+ },
80682
81658
  {
80683
81659
  url: "https://www.example.com",
80684
81660
  waitUntil: {
@@ -82944,9 +83920,9 @@ var schemas_default = {
82944
83920
  anyOf: [
82945
83921
  {
82946
83922
  title: "Screenshot (simple)",
82947
- description: "File path of the PNG file. Accepts absolute paths. If not specified, the file name is the ID of the step.",
83923
+ description: "File path of the PNG file. Accepts absolute paths. If not specified, the file name is the ID of the step. If an `http(s)` URL is supplied, the remote image is downloaded and used as a read-only reference for comparison; the new capture is written to a local run-specific folder instead of being uploaded back to the URL.",
82948
83924
  type: "string",
82949
- pattern: "([A-Za-z0-9_-]*\\.(png|PNG)$|\\$[A-Za-z0-9_]+)",
83925
+ pattern: "^(?:https?:\\/\\/.+\\.(?:png|PNG)(?:\\?.*)?|[A-Za-z]:[\\/\\\\].*\\.(?:png|PNG)|[\\/\\\\]?[A-Za-z0-9_.\\/\\\\-]*\\.(?:png|PNG)|\\$[A-Za-z0-9_]+)$",
82950
83926
  transform: [
82951
83927
  "trim"
82952
83928
  ]
@@ -82957,9 +83933,9 @@ var schemas_default = {
82957
83933
  properties: {
82958
83934
  path: {
82959
83935
  title: "Screenshot (simple)",
82960
- description: "File path of the PNG file. Accepts absolute paths. If not specified, the file name is the ID of the step.",
83936
+ description: "File path of the PNG file. Accepts absolute paths. If not specified, the file name is the ID of the step. If an `http(s)` URL is supplied, the remote image is downloaded and used as a read-only reference for comparison; the new capture is written to a local run-specific folder instead of being uploaded back to the URL.",
82961
83937
  type: "string",
82962
- pattern: "([A-Za-z0-9_-]*\\.(png|PNG)$|\\$[A-Za-z0-9_]+)",
83938
+ pattern: "^(?:https?:\\/\\/.+\\.(?:png|PNG)(?:\\?.*)?|[A-Za-z]:[\\/\\\\].*\\.(?:png|PNG)|[\\/\\\\]?[A-Za-z0-9_.\\/\\\\-]*\\.(?:png|PNG)|\\$[A-Za-z0-9_]+)$",
82963
83939
  transform: [
82964
83940
  "trim"
82965
83941
  ]
@@ -83190,9 +84166,9 @@ var schemas_default = {
83190
84166
  schemas: {
83191
84167
  path: {
83192
84168
  title: "Screenshot (simple)",
83193
- description: "File path of the PNG file. Accepts absolute paths. If not specified, the file name is the ID of the step.",
84169
+ description: "File path of the PNG file. Accepts absolute paths. If not specified, the file name is the ID of the step. If an `http(s)` URL is supplied, the remote image is downloaded and used as a read-only reference for comparison; the new capture is written to a local run-specific folder instead of being uploaded back to the URL.",
83194
84170
  type: "string",
83195
- pattern: "([A-Za-z0-9_-]*\\.(png|PNG)$|\\$[A-Za-z0-9_]+)",
84171
+ pattern: "^(?:https?:\\/\\/.+\\.(?:png|PNG)(?:\\?.*)?|[A-Za-z]:[\\/\\\\].*\\.(?:png|PNG)|[\\/\\\\]?[A-Za-z0-9_.\\/\\\\-]*\\.(?:png|PNG)|\\$[A-Za-z0-9_]+)$",
83196
84172
  transform: [
83197
84173
  "trim"
83198
84174
  ]
@@ -83203,9 +84179,9 @@ var schemas_default = {
83203
84179
  properties: {
83204
84180
  path: {
83205
84181
  title: "Screenshot (simple)",
83206
- description: "File path of the PNG file. Accepts absolute paths. If not specified, the file name is the ID of the step.",
84182
+ description: "File path of the PNG file. Accepts absolute paths. If not specified, the file name is the ID of the step. If an `http(s)` URL is supplied, the remote image is downloaded and used as a read-only reference for comparison; the new capture is written to a local run-specific folder instead of being uploaded back to the URL.",
83207
84183
  type: "string",
83208
- pattern: "([A-Za-z0-9_-]*\\.(png|PNG)$|\\$[A-Za-z0-9_]+)",
84184
+ pattern: "^(?:https?:\\/\\/.+\\.(?:png|PNG)(?:\\?.*)?|[A-Za-z]:[\\/\\\\].*\\.(?:png|PNG)|[\\/\\\\]?[A-Za-z0-9_.\\/\\\\-]*\\.(?:png|PNG)|\\$[A-Za-z0-9_]+)$",
83209
84185
  transform: [
83210
84186
  "trim"
83211
84187
  ]
@@ -83587,6 +84563,12 @@ var schemas_default = {
83587
84563
  "image.png",
83588
84564
  "static/images/image.png",
83589
84565
  "/User/manny/projects/doc-detective/static/images/image.png",
84566
+ "https://example.com/static/images/image.png",
84567
+ {
84568
+ path: "https://promptless-customer-doc-assets.s3.amazonaws.com/docs-images/request-changes-button-0c851bb3.png",
84569
+ maxVariation: 0.05,
84570
+ overwrite: "aboveVariation"
84571
+ },
83590
84572
  {
83591
84573
  path: "image.png",
83592
84574
  directory: "static/images",
@@ -86410,6 +87392,14 @@ var schemas_default = {
86410
87392
  "trim"
86411
87393
  ]
86412
87394
  },
87395
+ params: {
87396
+ description: "Query parameters to append to the resolved URL. Merged on top of `originParams` from config; step keys win on collision. If `url` already contains a colliding query key, the value here replaces it. Values support environment variable substitution via `$VAR` syntax. WARNING: values are embedded in the request URL and appear in test results, logs, and reports.",
87397
+ type: "object",
87398
+ additionalProperties: {
87399
+ type: "string"
87400
+ },
87401
+ default: {}
87402
+ },
86413
87403
  statusCodes: {
86414
87404
  description: "Accepted status codes. If the specified URL returns a code other than what is specified here, the action fails.",
86415
87405
  anyOf: [
@@ -86434,6 +87424,26 @@ var schemas_default = {
86434
87424
  307,
86435
87425
  308
86436
87426
  ]
87427
+ },
87428
+ headers: {
87429
+ description: "Additional HTTP headers to include in the request. Merged on top of Doc Detective's default browser-mimicking headers. Useful for sites behind bot protection or WAFs that allowlist specific headers (for example, a Cloudflare Access service token or a `Cookie` with a `cf_clearance` value).",
87430
+ default: {},
87431
+ anyOf: [
87432
+ {
87433
+ title: "Request headers (object)",
87434
+ description: "Headers to include in the HTTP request, in key/value format. Values must be strings.",
87435
+ type: "object",
87436
+ additionalProperties: {
87437
+ type: "string"
87438
+ },
87439
+ properties: {}
87440
+ },
87441
+ {
87442
+ title: "Request headers (string)",
87443
+ description: "Headers to include in the HTTP request, as newline-separated values. For example, `X-Api-Key: abc123\nAuthorization: Bearer token`.",
87444
+ type: "string"
87445
+ }
87446
+ ]
86437
87447
  }
86438
87448
  }
86439
87449
  }
@@ -86473,6 +87483,14 @@ var schemas_default = {
86473
87483
  "trim"
86474
87484
  ]
86475
87485
  },
87486
+ params: {
87487
+ description: "Query parameters to append to the resolved URL. Merged on top of `originParams` from config; step keys win on collision. If `url` already contains a colliding query key, the value here replaces it. Values support environment variable substitution via `$VAR` syntax. WARNING: values are embedded in the request URL and appear in test results, logs, and reports.",
87488
+ type: "object",
87489
+ additionalProperties: {
87490
+ type: "string"
87491
+ },
87492
+ default: {}
87493
+ },
86476
87494
  statusCodes: {
86477
87495
  description: "Accepted status codes. If the specified URL returns a code other than what is specified here, the action fails.",
86478
87496
  anyOf: [
@@ -86497,6 +87515,26 @@ var schemas_default = {
86497
87515
  307,
86498
87516
  308
86499
87517
  ]
87518
+ },
87519
+ headers: {
87520
+ description: "Additional HTTP headers to include in the request. Merged on top of Doc Detective's default browser-mimicking headers. Useful for sites behind bot protection or WAFs that allowlist specific headers (for example, a Cloudflare Access service token or a `Cookie` with a `cf_clearance` value).",
87521
+ default: {},
87522
+ anyOf: [
87523
+ {
87524
+ title: "Request headers (object)",
87525
+ description: "Headers to include in the HTTP request, in key/value format. Values must be strings.",
87526
+ type: "object",
87527
+ additionalProperties: {
87528
+ type: "string"
87529
+ },
87530
+ properties: {}
87531
+ },
87532
+ {
87533
+ title: "Request headers (string)",
87534
+ description: "Headers to include in the HTTP request, as newline-separated values. For example, `X-Api-Key: abc123\nAuthorization: Bearer token`.",
87535
+ type: "string"
87536
+ }
87537
+ ]
86500
87538
  }
86501
87539
  }
86502
87540
  }
@@ -86515,6 +87553,13 @@ var schemas_default = {
86515
87553
  statusCodes: [
86516
87554
  200
86517
87555
  ]
87556
+ },
87557
+ {
87558
+ url: "/health",
87559
+ origin: "https://my-app.com",
87560
+ params: {
87561
+ __clerk_testing_token: "$CLERK_TESTING_TOKEN"
87562
+ }
86518
87563
  }
86519
87564
  ]
86520
87565
  }
@@ -88455,6 +89500,14 @@ var schemas_default = {
88455
89500
  "trim"
88456
89501
  ]
88457
89502
  },
89503
+ params: {
89504
+ description: "Query parameters to append to the resolved URL. Merged on top of `originParams` from config; step keys win on collision. If `url` already contains a colliding query key, the value here replaces it. Values support environment variable substitution via `$VAR` syntax. WARNING: values are embedded in the request URL and appear in test results, logs, and reports.",
89505
+ type: "object",
89506
+ additionalProperties: {
89507
+ type: "string"
89508
+ },
89509
+ default: {}
89510
+ },
88458
89511
  timeout: {
88459
89512
  type: "integer",
88460
89513
  description: "Maximum time in milliseconds to wait for the page to be ready. If exceeded, the goTo action fails.",
@@ -88627,6 +89680,14 @@ var schemas_default = {
88627
89680
  "trim"
88628
89681
  ]
88629
89682
  },
89683
+ params: {
89684
+ description: "Query parameters to append to the resolved URL. Merged on top of `originParams` from config; step keys win on collision. If `url` already contains a colliding query key, the value here replaces it. Values support environment variable substitution via `$VAR` syntax. WARNING: values are embedded in the request URL and appear in test results, logs, and reports.",
89685
+ type: "object",
89686
+ additionalProperties: {
89687
+ type: "string"
89688
+ },
89689
+ default: {}
89690
+ },
88630
89691
  timeout: {
88631
89692
  type: "integer",
88632
89693
  description: "Maximum time in milliseconds to wait for the page to be ready. If exceeded, the goTo action fails.",
@@ -88776,6 +89837,13 @@ var schemas_default = {
88776
89837
  url: "/search",
88777
89838
  origin: "https://www.google.com"
88778
89839
  },
89840
+ {
89841
+ url: "/dashboard",
89842
+ origin: "https://my-app.com",
89843
+ params: {
89844
+ __clerk_testing_token: "$CLERK_TESTING_TOKEN"
89845
+ }
89846
+ },
88779
89847
  {
88780
89848
  url: "https://www.example.com",
88781
89849
  waitUntil: {
@@ -91041,9 +92109,9 @@ var schemas_default = {
91041
92109
  anyOf: [
91042
92110
  {
91043
92111
  title: "Screenshot (simple)",
91044
- description: "File path of the PNG file. Accepts absolute paths. If not specified, the file name is the ID of the step.",
92112
+ description: "File path of the PNG file. Accepts absolute paths. If not specified, the file name is the ID of the step. If an `http(s)` URL is supplied, the remote image is downloaded and used as a read-only reference for comparison; the new capture is written to a local run-specific folder instead of being uploaded back to the URL.",
91045
92113
  type: "string",
91046
- pattern: "([A-Za-z0-9_-]*\\.(png|PNG)$|\\$[A-Za-z0-9_]+)",
92114
+ pattern: "^(?:https?:\\/\\/.+\\.(?:png|PNG)(?:\\?.*)?|[A-Za-z]:[\\/\\\\].*\\.(?:png|PNG)|[\\/\\\\]?[A-Za-z0-9_.\\/\\\\-]*\\.(?:png|PNG)|\\$[A-Za-z0-9_]+)$",
91047
92115
  transform: [
91048
92116
  "trim"
91049
92117
  ]
@@ -91054,9 +92122,9 @@ var schemas_default = {
91054
92122
  properties: {
91055
92123
  path: {
91056
92124
  title: "Screenshot (simple)",
91057
- description: "File path of the PNG file. Accepts absolute paths. If not specified, the file name is the ID of the step.",
92125
+ description: "File path of the PNG file. Accepts absolute paths. If not specified, the file name is the ID of the step. If an `http(s)` URL is supplied, the remote image is downloaded and used as a read-only reference for comparison; the new capture is written to a local run-specific folder instead of being uploaded back to the URL.",
91058
92126
  type: "string",
91059
- pattern: "([A-Za-z0-9_-]*\\.(png|PNG)$|\\$[A-Za-z0-9_]+)",
92127
+ pattern: "^(?:https?:\\/\\/.+\\.(?:png|PNG)(?:\\?.*)?|[A-Za-z]:[\\/\\\\].*\\.(?:png|PNG)|[\\/\\\\]?[A-Za-z0-9_.\\/\\\\-]*\\.(?:png|PNG)|\\$[A-Za-z0-9_]+)$",
91060
92128
  transform: [
91061
92129
  "trim"
91062
92130
  ]
@@ -91287,9 +92355,9 @@ var schemas_default = {
91287
92355
  schemas: {
91288
92356
  path: {
91289
92357
  title: "Screenshot (simple)",
91290
- description: "File path of the PNG file. Accepts absolute paths. If not specified, the file name is the ID of the step.",
92358
+ description: "File path of the PNG file. Accepts absolute paths. If not specified, the file name is the ID of the step. If an `http(s)` URL is supplied, the remote image is downloaded and used as a read-only reference for comparison; the new capture is written to a local run-specific folder instead of being uploaded back to the URL.",
91291
92359
  type: "string",
91292
- pattern: "([A-Za-z0-9_-]*\\.(png|PNG)$|\\$[A-Za-z0-9_]+)",
92360
+ pattern: "^(?:https?:\\/\\/.+\\.(?:png|PNG)(?:\\?.*)?|[A-Za-z]:[\\/\\\\].*\\.(?:png|PNG)|[\\/\\\\]?[A-Za-z0-9_.\\/\\\\-]*\\.(?:png|PNG)|\\$[A-Za-z0-9_]+)$",
91293
92361
  transform: [
91294
92362
  "trim"
91295
92363
  ]
@@ -91300,9 +92368,9 @@ var schemas_default = {
91300
92368
  properties: {
91301
92369
  path: {
91302
92370
  title: "Screenshot (simple)",
91303
- description: "File path of the PNG file. Accepts absolute paths. If not specified, the file name is the ID of the step.",
92371
+ description: "File path of the PNG file. Accepts absolute paths. If not specified, the file name is the ID of the step. If an `http(s)` URL is supplied, the remote image is downloaded and used as a read-only reference for comparison; the new capture is written to a local run-specific folder instead of being uploaded back to the URL.",
91304
92372
  type: "string",
91305
- pattern: "([A-Za-z0-9_-]*\\.(png|PNG)$|\\$[A-Za-z0-9_]+)",
92373
+ pattern: "^(?:https?:\\/\\/.+\\.(?:png|PNG)(?:\\?.*)?|[A-Za-z]:[\\/\\\\].*\\.(?:png|PNG)|[\\/\\\\]?[A-Za-z0-9_.\\/\\\\-]*\\.(?:png|PNG)|\\$[A-Za-z0-9_]+)$",
91306
92374
  transform: [
91307
92375
  "trim"
91308
92376
  ]
@@ -91684,6 +92752,12 @@ var schemas_default = {
91684
92752
  "image.png",
91685
92753
  "static/images/image.png",
91686
92754
  "/User/manny/projects/doc-detective/static/images/image.png",
92755
+ "https://example.com/static/images/image.png",
92756
+ {
92757
+ path: "https://promptless-customer-doc-assets.s3.amazonaws.com/docs-images/request-changes-button-0c851bb3.png",
92758
+ maxVariation: 0.05,
92759
+ overwrite: "aboveVariation"
92760
+ },
91687
92761
  {
91688
92762
  path: "image.png",
91689
92763
  directory: "static/images",
@@ -94787,6 +95861,14 @@ var schemas_default = {
94787
95861
  "trim"
94788
95862
  ]
94789
95863
  },
95864
+ params: {
95865
+ description: "Query parameters to append to the resolved URL. Merged on top of `originParams` from config; step keys win on collision. If `url` already contains a colliding query key, the value here replaces it. Values support environment variable substitution via `$VAR` syntax. WARNING: values are embedded in the request URL and appear in test results, logs, and reports.",
95866
+ type: "object",
95867
+ additionalProperties: {
95868
+ type: "string"
95869
+ },
95870
+ default: {}
95871
+ },
94790
95872
  statusCodes: {
94791
95873
  description: "Accepted status codes. If the specified URL returns a code other than what is specified here, the action fails.",
94792
95874
  anyOf: [
@@ -94811,6 +95893,26 @@ var schemas_default = {
94811
95893
  307,
94812
95894
  308
94813
95895
  ]
95896
+ },
95897
+ headers: {
95898
+ description: "Additional HTTP headers to include in the request. Merged on top of Doc Detective's default browser-mimicking headers. Useful for sites behind bot protection or WAFs that allowlist specific headers (for example, a Cloudflare Access service token or a `Cookie` with a `cf_clearance` value).",
95899
+ default: {},
95900
+ anyOf: [
95901
+ {
95902
+ title: "Request headers (object)",
95903
+ description: "Headers to include in the HTTP request, in key/value format. Values must be strings.",
95904
+ type: "object",
95905
+ additionalProperties: {
95906
+ type: "string"
95907
+ },
95908
+ properties: {}
95909
+ },
95910
+ {
95911
+ title: "Request headers (string)",
95912
+ description: "Headers to include in the HTTP request, as newline-separated values. For example, `X-Api-Key: abc123\nAuthorization: Bearer token`.",
95913
+ type: "string"
95914
+ }
95915
+ ]
94814
95916
  }
94815
95917
  }
94816
95918
  }
@@ -94850,6 +95952,14 @@ var schemas_default = {
94850
95952
  "trim"
94851
95953
  ]
94852
95954
  },
95955
+ params: {
95956
+ description: "Query parameters to append to the resolved URL. Merged on top of `originParams` from config; step keys win on collision. If `url` already contains a colliding query key, the value here replaces it. Values support environment variable substitution via `$VAR` syntax. WARNING: values are embedded in the request URL and appear in test results, logs, and reports.",
95957
+ type: "object",
95958
+ additionalProperties: {
95959
+ type: "string"
95960
+ },
95961
+ default: {}
95962
+ },
94853
95963
  statusCodes: {
94854
95964
  description: "Accepted status codes. If the specified URL returns a code other than what is specified here, the action fails.",
94855
95965
  anyOf: [
@@ -94874,6 +95984,26 @@ var schemas_default = {
94874
95984
  307,
94875
95985
  308
94876
95986
  ]
95987
+ },
95988
+ headers: {
95989
+ description: "Additional HTTP headers to include in the request. Merged on top of Doc Detective's default browser-mimicking headers. Useful for sites behind bot protection or WAFs that allowlist specific headers (for example, a Cloudflare Access service token or a `Cookie` with a `cf_clearance` value).",
95990
+ default: {},
95991
+ anyOf: [
95992
+ {
95993
+ title: "Request headers (object)",
95994
+ description: "Headers to include in the HTTP request, in key/value format. Values must be strings.",
95995
+ type: "object",
95996
+ additionalProperties: {
95997
+ type: "string"
95998
+ },
95999
+ properties: {}
96000
+ },
96001
+ {
96002
+ title: "Request headers (string)",
96003
+ description: "Headers to include in the HTTP request, as newline-separated values. For example, `X-Api-Key: abc123\nAuthorization: Bearer token`.",
96004
+ type: "string"
96005
+ }
96006
+ ]
94877
96007
  }
94878
96008
  }
94879
96009
  }
@@ -94892,6 +96022,13 @@ var schemas_default = {
94892
96022
  statusCodes: [
94893
96023
  200
94894
96024
  ]
96025
+ },
96026
+ {
96027
+ url: "/health",
96028
+ origin: "https://my-app.com",
96029
+ params: {
96030
+ __clerk_testing_token: "$CLERK_TESTING_TOKEN"
96031
+ }
94895
96032
  }
94896
96033
  ]
94897
96034
  }
@@ -96832,6 +97969,14 @@ var schemas_default = {
96832
97969
  "trim"
96833
97970
  ]
96834
97971
  },
97972
+ params: {
97973
+ description: "Query parameters to append to the resolved URL. Merged on top of `originParams` from config; step keys win on collision. If `url` already contains a colliding query key, the value here replaces it. Values support environment variable substitution via `$VAR` syntax. WARNING: values are embedded in the request URL and appear in test results, logs, and reports.",
97974
+ type: "object",
97975
+ additionalProperties: {
97976
+ type: "string"
97977
+ },
97978
+ default: {}
97979
+ },
96835
97980
  timeout: {
96836
97981
  type: "integer",
96837
97982
  description: "Maximum time in milliseconds to wait for the page to be ready. If exceeded, the goTo action fails.",
@@ -97004,6 +98149,14 @@ var schemas_default = {
97004
98149
  "trim"
97005
98150
  ]
97006
98151
  },
98152
+ params: {
98153
+ description: "Query parameters to append to the resolved URL. Merged on top of `originParams` from config; step keys win on collision. If `url` already contains a colliding query key, the value here replaces it. Values support environment variable substitution via `$VAR` syntax. WARNING: values are embedded in the request URL and appear in test results, logs, and reports.",
98154
+ type: "object",
98155
+ additionalProperties: {
98156
+ type: "string"
98157
+ },
98158
+ default: {}
98159
+ },
97007
98160
  timeout: {
97008
98161
  type: "integer",
97009
98162
  description: "Maximum time in milliseconds to wait for the page to be ready. If exceeded, the goTo action fails.",
@@ -97153,6 +98306,13 @@ var schemas_default = {
97153
98306
  url: "/search",
97154
98307
  origin: "https://www.google.com"
97155
98308
  },
98309
+ {
98310
+ url: "/dashboard",
98311
+ origin: "https://my-app.com",
98312
+ params: {
98313
+ __clerk_testing_token: "$CLERK_TESTING_TOKEN"
98314
+ }
98315
+ },
97156
98316
  {
97157
98317
  url: "https://www.example.com",
97158
98318
  waitUntil: {
@@ -99418,9 +100578,9 @@ var schemas_default = {
99418
100578
  anyOf: [
99419
100579
  {
99420
100580
  title: "Screenshot (simple)",
99421
- description: "File path of the PNG file. Accepts absolute paths. If not specified, the file name is the ID of the step.",
100581
+ description: "File path of the PNG file. Accepts absolute paths. If not specified, the file name is the ID of the step. If an `http(s)` URL is supplied, the remote image is downloaded and used as a read-only reference for comparison; the new capture is written to a local run-specific folder instead of being uploaded back to the URL.",
99422
100582
  type: "string",
99423
- pattern: "([A-Za-z0-9_-]*\\.(png|PNG)$|\\$[A-Za-z0-9_]+)",
100583
+ pattern: "^(?:https?:\\/\\/.+\\.(?:png|PNG)(?:\\?.*)?|[A-Za-z]:[\\/\\\\].*\\.(?:png|PNG)|[\\/\\\\]?[A-Za-z0-9_.\\/\\\\-]*\\.(?:png|PNG)|\\$[A-Za-z0-9_]+)$",
99424
100584
  transform: [
99425
100585
  "trim"
99426
100586
  ]
@@ -99431,9 +100591,9 @@ var schemas_default = {
99431
100591
  properties: {
99432
100592
  path: {
99433
100593
  title: "Screenshot (simple)",
99434
- description: "File path of the PNG file. Accepts absolute paths. If not specified, the file name is the ID of the step.",
100594
+ description: "File path of the PNG file. Accepts absolute paths. If not specified, the file name is the ID of the step. If an `http(s)` URL is supplied, the remote image is downloaded and used as a read-only reference for comparison; the new capture is written to a local run-specific folder instead of being uploaded back to the URL.",
99435
100595
  type: "string",
99436
- pattern: "([A-Za-z0-9_-]*\\.(png|PNG)$|\\$[A-Za-z0-9_]+)",
100596
+ pattern: "^(?:https?:\\/\\/.+\\.(?:png|PNG)(?:\\?.*)?|[A-Za-z]:[\\/\\\\].*\\.(?:png|PNG)|[\\/\\\\]?[A-Za-z0-9_.\\/\\\\-]*\\.(?:png|PNG)|\\$[A-Za-z0-9_]+)$",
99437
100597
  transform: [
99438
100598
  "trim"
99439
100599
  ]
@@ -99664,9 +100824,9 @@ var schemas_default = {
99664
100824
  schemas: {
99665
100825
  path: {
99666
100826
  title: "Screenshot (simple)",
99667
- description: "File path of the PNG file. Accepts absolute paths. If not specified, the file name is the ID of the step.",
100827
+ description: "File path of the PNG file. Accepts absolute paths. If not specified, the file name is the ID of the step. If an `http(s)` URL is supplied, the remote image is downloaded and used as a read-only reference for comparison; the new capture is written to a local run-specific folder instead of being uploaded back to the URL.",
99668
100828
  type: "string",
99669
- pattern: "([A-Za-z0-9_-]*\\.(png|PNG)$|\\$[A-Za-z0-9_]+)",
100829
+ pattern: "^(?:https?:\\/\\/.+\\.(?:png|PNG)(?:\\?.*)?|[A-Za-z]:[\\/\\\\].*\\.(?:png|PNG)|[\\/\\\\]?[A-Za-z0-9_.\\/\\\\-]*\\.(?:png|PNG)|\\$[A-Za-z0-9_]+)$",
99670
100830
  transform: [
99671
100831
  "trim"
99672
100832
  ]
@@ -99677,9 +100837,9 @@ var schemas_default = {
99677
100837
  properties: {
99678
100838
  path: {
99679
100839
  title: "Screenshot (simple)",
99680
- description: "File path of the PNG file. Accepts absolute paths. If not specified, the file name is the ID of the step.",
100840
+ description: "File path of the PNG file. Accepts absolute paths. If not specified, the file name is the ID of the step. If an `http(s)` URL is supplied, the remote image is downloaded and used as a read-only reference for comparison; the new capture is written to a local run-specific folder instead of being uploaded back to the URL.",
99681
100841
  type: "string",
99682
- pattern: "([A-Za-z0-9_-]*\\.(png|PNG)$|\\$[A-Za-z0-9_]+)",
100842
+ pattern: "^(?:https?:\\/\\/.+\\.(?:png|PNG)(?:\\?.*)?|[A-Za-z]:[\\/\\\\].*\\.(?:png|PNG)|[\\/\\\\]?[A-Za-z0-9_.\\/\\\\-]*\\.(?:png|PNG)|\\$[A-Za-z0-9_]+)$",
99683
100843
  transform: [
99684
100844
  "trim"
99685
100845
  ]
@@ -100061,6 +101221,12 @@ var schemas_default = {
100061
101221
  "image.png",
100062
101222
  "static/images/image.png",
100063
101223
  "/User/manny/projects/doc-detective/static/images/image.png",
101224
+ "https://example.com/static/images/image.png",
101225
+ {
101226
+ path: "https://promptless-customer-doc-assets.s3.amazonaws.com/docs-images/request-changes-button-0c851bb3.png",
101227
+ maxVariation: 0.05,
101228
+ overwrite: "aboveVariation"
101229
+ },
100064
101230
  {
100065
101231
  path: "image.png",
100066
101232
  directory: "static/images",
@@ -103237,6 +104403,14 @@ var schemas_default = {
103237
104403
  "trim"
103238
104404
  ]
103239
104405
  },
104406
+ params: {
104407
+ description: "Query parameters to append to the resolved URL. Merged on top of `originParams` from config; step keys win on collision. If `url` already contains a colliding query key, the value here replaces it. Values support environment variable substitution via `$VAR` syntax. WARNING: values are embedded in the request URL and appear in test results, logs, and reports.",
104408
+ type: "object",
104409
+ additionalProperties: {
104410
+ type: "string"
104411
+ },
104412
+ default: {}
104413
+ },
103240
104414
  statusCodes: {
103241
104415
  description: "Accepted status codes. If the specified URL returns a code other than what is specified here, the action fails.",
103242
104416
  anyOf: [
@@ -103261,6 +104435,26 @@ var schemas_default = {
103261
104435
  307,
103262
104436
  308
103263
104437
  ]
104438
+ },
104439
+ headers: {
104440
+ description: "Additional HTTP headers to include in the request. Merged on top of Doc Detective's default browser-mimicking headers. Useful for sites behind bot protection or WAFs that allowlist specific headers (for example, a Cloudflare Access service token or a `Cookie` with a `cf_clearance` value).",
104441
+ default: {},
104442
+ anyOf: [
104443
+ {
104444
+ title: "Request headers (object)",
104445
+ description: "Headers to include in the HTTP request, in key/value format. Values must be strings.",
104446
+ type: "object",
104447
+ additionalProperties: {
104448
+ type: "string"
104449
+ },
104450
+ properties: {}
104451
+ },
104452
+ {
104453
+ title: "Request headers (string)",
104454
+ description: "Headers to include in the HTTP request, as newline-separated values. For example, `X-Api-Key: abc123\nAuthorization: Bearer token`.",
104455
+ type: "string"
104456
+ }
104457
+ ]
103264
104458
  }
103265
104459
  }
103266
104460
  }
@@ -103300,6 +104494,14 @@ var schemas_default = {
103300
104494
  "trim"
103301
104495
  ]
103302
104496
  },
104497
+ params: {
104498
+ description: "Query parameters to append to the resolved URL. Merged on top of `originParams` from config; step keys win on collision. If `url` already contains a colliding query key, the value here replaces it. Values support environment variable substitution via `$VAR` syntax. WARNING: values are embedded in the request URL and appear in test results, logs, and reports.",
104499
+ type: "object",
104500
+ additionalProperties: {
104501
+ type: "string"
104502
+ },
104503
+ default: {}
104504
+ },
103303
104505
  statusCodes: {
103304
104506
  description: "Accepted status codes. If the specified URL returns a code other than what is specified here, the action fails.",
103305
104507
  anyOf: [
@@ -103324,6 +104526,26 @@ var schemas_default = {
103324
104526
  307,
103325
104527
  308
103326
104528
  ]
104529
+ },
104530
+ headers: {
104531
+ description: "Additional HTTP headers to include in the request. Merged on top of Doc Detective's default browser-mimicking headers. Useful for sites behind bot protection or WAFs that allowlist specific headers (for example, a Cloudflare Access service token or a `Cookie` with a `cf_clearance` value).",
104532
+ default: {},
104533
+ anyOf: [
104534
+ {
104535
+ title: "Request headers (object)",
104536
+ description: "Headers to include in the HTTP request, in key/value format. Values must be strings.",
104537
+ type: "object",
104538
+ additionalProperties: {
104539
+ type: "string"
104540
+ },
104541
+ properties: {}
104542
+ },
104543
+ {
104544
+ title: "Request headers (string)",
104545
+ description: "Headers to include in the HTTP request, as newline-separated values. For example, `X-Api-Key: abc123\nAuthorization: Bearer token`.",
104546
+ type: "string"
104547
+ }
104548
+ ]
103327
104549
  }
103328
104550
  }
103329
104551
  }
@@ -103342,6 +104564,13 @@ var schemas_default = {
103342
104564
  statusCodes: [
103343
104565
  200
103344
104566
  ]
104567
+ },
104568
+ {
104569
+ url: "/health",
104570
+ origin: "https://my-app.com",
104571
+ params: {
104572
+ __clerk_testing_token: "$CLERK_TESTING_TOKEN"
104573
+ }
103345
104574
  }
103346
104575
  ]
103347
104576
  }
@@ -105282,6 +106511,14 @@ var schemas_default = {
105282
106511
  "trim"
105283
106512
  ]
105284
106513
  },
106514
+ params: {
106515
+ description: "Query parameters to append to the resolved URL. Merged on top of `originParams` from config; step keys win on collision. If `url` already contains a colliding query key, the value here replaces it. Values support environment variable substitution via `$VAR` syntax. WARNING: values are embedded in the request URL and appear in test results, logs, and reports.",
106516
+ type: "object",
106517
+ additionalProperties: {
106518
+ type: "string"
106519
+ },
106520
+ default: {}
106521
+ },
105285
106522
  timeout: {
105286
106523
  type: "integer",
105287
106524
  description: "Maximum time in milliseconds to wait for the page to be ready. If exceeded, the goTo action fails.",
@@ -105454,6 +106691,14 @@ var schemas_default = {
105454
106691
  "trim"
105455
106692
  ]
105456
106693
  },
106694
+ params: {
106695
+ description: "Query parameters to append to the resolved URL. Merged on top of `originParams` from config; step keys win on collision. If `url` already contains a colliding query key, the value here replaces it. Values support environment variable substitution via `$VAR` syntax. WARNING: values are embedded in the request URL and appear in test results, logs, and reports.",
106696
+ type: "object",
106697
+ additionalProperties: {
106698
+ type: "string"
106699
+ },
106700
+ default: {}
106701
+ },
105457
106702
  timeout: {
105458
106703
  type: "integer",
105459
106704
  description: "Maximum time in milliseconds to wait for the page to be ready. If exceeded, the goTo action fails.",
@@ -105603,6 +106848,13 @@ var schemas_default = {
105603
106848
  url: "/search",
105604
106849
  origin: "https://www.google.com"
105605
106850
  },
106851
+ {
106852
+ url: "/dashboard",
106853
+ origin: "https://my-app.com",
106854
+ params: {
106855
+ __clerk_testing_token: "$CLERK_TESTING_TOKEN"
106856
+ }
106857
+ },
105606
106858
  {
105607
106859
  url: "https://www.example.com",
105608
106860
  waitUntil: {
@@ -107868,9 +109120,9 @@ var schemas_default = {
107868
109120
  anyOf: [
107869
109121
  {
107870
109122
  title: "Screenshot (simple)",
107871
- description: "File path of the PNG file. Accepts absolute paths. If not specified, the file name is the ID of the step.",
109123
+ description: "File path of the PNG file. Accepts absolute paths. If not specified, the file name is the ID of the step. If an `http(s)` URL is supplied, the remote image is downloaded and used as a read-only reference for comparison; the new capture is written to a local run-specific folder instead of being uploaded back to the URL.",
107872
109124
  type: "string",
107873
- pattern: "([A-Za-z0-9_-]*\\.(png|PNG)$|\\$[A-Za-z0-9_]+)",
109125
+ pattern: "^(?:https?:\\/\\/.+\\.(?:png|PNG)(?:\\?.*)?|[A-Za-z]:[\\/\\\\].*\\.(?:png|PNG)|[\\/\\\\]?[A-Za-z0-9_.\\/\\\\-]*\\.(?:png|PNG)|\\$[A-Za-z0-9_]+)$",
107874
109126
  transform: [
107875
109127
  "trim"
107876
109128
  ]
@@ -107881,9 +109133,9 @@ var schemas_default = {
107881
109133
  properties: {
107882
109134
  path: {
107883
109135
  title: "Screenshot (simple)",
107884
- description: "File path of the PNG file. Accepts absolute paths. If not specified, the file name is the ID of the step.",
109136
+ description: "File path of the PNG file. Accepts absolute paths. If not specified, the file name is the ID of the step. If an `http(s)` URL is supplied, the remote image is downloaded and used as a read-only reference for comparison; the new capture is written to a local run-specific folder instead of being uploaded back to the URL.",
107885
109137
  type: "string",
107886
- pattern: "([A-Za-z0-9_-]*\\.(png|PNG)$|\\$[A-Za-z0-9_]+)",
109138
+ pattern: "^(?:https?:\\/\\/.+\\.(?:png|PNG)(?:\\?.*)?|[A-Za-z]:[\\/\\\\].*\\.(?:png|PNG)|[\\/\\\\]?[A-Za-z0-9_.\\/\\\\-]*\\.(?:png|PNG)|\\$[A-Za-z0-9_]+)$",
107887
109139
  transform: [
107888
109140
  "trim"
107889
109141
  ]
@@ -108114,9 +109366,9 @@ var schemas_default = {
108114
109366
  schemas: {
108115
109367
  path: {
108116
109368
  title: "Screenshot (simple)",
108117
- description: "File path of the PNG file. Accepts absolute paths. If not specified, the file name is the ID of the step.",
109369
+ description: "File path of the PNG file. Accepts absolute paths. If not specified, the file name is the ID of the step. If an `http(s)` URL is supplied, the remote image is downloaded and used as a read-only reference for comparison; the new capture is written to a local run-specific folder instead of being uploaded back to the URL.",
108118
109370
  type: "string",
108119
- pattern: "([A-Za-z0-9_-]*\\.(png|PNG)$|\\$[A-Za-z0-9_]+)",
109371
+ pattern: "^(?:https?:\\/\\/.+\\.(?:png|PNG)(?:\\?.*)?|[A-Za-z]:[\\/\\\\].*\\.(?:png|PNG)|[\\/\\\\]?[A-Za-z0-9_.\\/\\\\-]*\\.(?:png|PNG)|\\$[A-Za-z0-9_]+)$",
108120
109372
  transform: [
108121
109373
  "trim"
108122
109374
  ]
@@ -108127,9 +109379,9 @@ var schemas_default = {
108127
109379
  properties: {
108128
109380
  path: {
108129
109381
  title: "Screenshot (simple)",
108130
- description: "File path of the PNG file. Accepts absolute paths. If not specified, the file name is the ID of the step.",
109382
+ description: "File path of the PNG file. Accepts absolute paths. If not specified, the file name is the ID of the step. If an `http(s)` URL is supplied, the remote image is downloaded and used as a read-only reference for comparison; the new capture is written to a local run-specific folder instead of being uploaded back to the URL.",
108131
109383
  type: "string",
108132
- pattern: "([A-Za-z0-9_-]*\\.(png|PNG)$|\\$[A-Za-z0-9_]+)",
109384
+ pattern: "^(?:https?:\\/\\/.+\\.(?:png|PNG)(?:\\?.*)?|[A-Za-z]:[\\/\\\\].*\\.(?:png|PNG)|[\\/\\\\]?[A-Za-z0-9_.\\/\\\\-]*\\.(?:png|PNG)|\\$[A-Za-z0-9_]+)$",
108133
109385
  transform: [
108134
109386
  "trim"
108135
109387
  ]
@@ -108511,6 +109763,12 @@ var schemas_default = {
108511
109763
  "image.png",
108512
109764
  "static/images/image.png",
108513
109765
  "/User/manny/projects/doc-detective/static/images/image.png",
109766
+ "https://example.com/static/images/image.png",
109767
+ {
109768
+ path: "https://promptless-customer-doc-assets.s3.amazonaws.com/docs-images/request-changes-button-0c851bb3.png",
109769
+ maxVariation: 0.05,
109770
+ overwrite: "aboveVariation"
109771
+ },
108514
109772
  {
108515
109773
  path: "image.png",
108516
109774
  directory: "static/images",
@@ -111334,6 +112592,14 @@ var schemas_default = {
111334
112592
  "trim"
111335
112593
  ]
111336
112594
  },
112595
+ params: {
112596
+ description: "Query parameters to append to the resolved URL. Merged on top of `originParams` from config; step keys win on collision. If `url` already contains a colliding query key, the value here replaces it. Values support environment variable substitution via `$VAR` syntax. WARNING: values are embedded in the request URL and appear in test results, logs, and reports.",
112597
+ type: "object",
112598
+ additionalProperties: {
112599
+ type: "string"
112600
+ },
112601
+ default: {}
112602
+ },
111337
112603
  statusCodes: {
111338
112604
  description: "Accepted status codes. If the specified URL returns a code other than what is specified here, the action fails.",
111339
112605
  anyOf: [
@@ -111358,6 +112624,26 @@ var schemas_default = {
111358
112624
  307,
111359
112625
  308
111360
112626
  ]
112627
+ },
112628
+ headers: {
112629
+ description: "Additional HTTP headers to include in the request. Merged on top of Doc Detective's default browser-mimicking headers. Useful for sites behind bot protection or WAFs that allowlist specific headers (for example, a Cloudflare Access service token or a `Cookie` with a `cf_clearance` value).",
112630
+ default: {},
112631
+ anyOf: [
112632
+ {
112633
+ title: "Request headers (object)",
112634
+ description: "Headers to include in the HTTP request, in key/value format. Values must be strings.",
112635
+ type: "object",
112636
+ additionalProperties: {
112637
+ type: "string"
112638
+ },
112639
+ properties: {}
112640
+ },
112641
+ {
112642
+ title: "Request headers (string)",
112643
+ description: "Headers to include in the HTTP request, as newline-separated values. For example, `X-Api-Key: abc123\nAuthorization: Bearer token`.",
112644
+ type: "string"
112645
+ }
112646
+ ]
111361
112647
  }
111362
112648
  }
111363
112649
  }
@@ -111397,6 +112683,14 @@ var schemas_default = {
111397
112683
  "trim"
111398
112684
  ]
111399
112685
  },
112686
+ params: {
112687
+ description: "Query parameters to append to the resolved URL. Merged on top of `originParams` from config; step keys win on collision. If `url` already contains a colliding query key, the value here replaces it. Values support environment variable substitution via `$VAR` syntax. WARNING: values are embedded in the request URL and appear in test results, logs, and reports.",
112688
+ type: "object",
112689
+ additionalProperties: {
112690
+ type: "string"
112691
+ },
112692
+ default: {}
112693
+ },
111400
112694
  statusCodes: {
111401
112695
  description: "Accepted status codes. If the specified URL returns a code other than what is specified here, the action fails.",
111402
112696
  anyOf: [
@@ -111421,6 +112715,26 @@ var schemas_default = {
111421
112715
  307,
111422
112716
  308
111423
112717
  ]
112718
+ },
112719
+ headers: {
112720
+ description: "Additional HTTP headers to include in the request. Merged on top of Doc Detective's default browser-mimicking headers. Useful for sites behind bot protection or WAFs that allowlist specific headers (for example, a Cloudflare Access service token or a `Cookie` with a `cf_clearance` value).",
112721
+ default: {},
112722
+ anyOf: [
112723
+ {
112724
+ title: "Request headers (object)",
112725
+ description: "Headers to include in the HTTP request, in key/value format. Values must be strings.",
112726
+ type: "object",
112727
+ additionalProperties: {
112728
+ type: "string"
112729
+ },
112730
+ properties: {}
112731
+ },
112732
+ {
112733
+ title: "Request headers (string)",
112734
+ description: "Headers to include in the HTTP request, as newline-separated values. For example, `X-Api-Key: abc123\nAuthorization: Bearer token`.",
112735
+ type: "string"
112736
+ }
112737
+ ]
111424
112738
  }
111425
112739
  }
111426
112740
  }
@@ -111439,6 +112753,13 @@ var schemas_default = {
111439
112753
  statusCodes: [
111440
112754
  200
111441
112755
  ]
112756
+ },
112757
+ {
112758
+ url: "/health",
112759
+ origin: "https://my-app.com",
112760
+ params: {
112761
+ __clerk_testing_token: "$CLERK_TESTING_TOKEN"
112762
+ }
111442
112763
  }
111443
112764
  ]
111444
112765
  }
@@ -113379,6 +114700,14 @@ var schemas_default = {
113379
114700
  "trim"
113380
114701
  ]
113381
114702
  },
114703
+ params: {
114704
+ description: "Query parameters to append to the resolved URL. Merged on top of `originParams` from config; step keys win on collision. If `url` already contains a colliding query key, the value here replaces it. Values support environment variable substitution via `$VAR` syntax. WARNING: values are embedded in the request URL and appear in test results, logs, and reports.",
114705
+ type: "object",
114706
+ additionalProperties: {
114707
+ type: "string"
114708
+ },
114709
+ default: {}
114710
+ },
113382
114711
  timeout: {
113383
114712
  type: "integer",
113384
114713
  description: "Maximum time in milliseconds to wait for the page to be ready. If exceeded, the goTo action fails.",
@@ -113551,6 +114880,14 @@ var schemas_default = {
113551
114880
  "trim"
113552
114881
  ]
113553
114882
  },
114883
+ params: {
114884
+ description: "Query parameters to append to the resolved URL. Merged on top of `originParams` from config; step keys win on collision. If `url` already contains a colliding query key, the value here replaces it. Values support environment variable substitution via `$VAR` syntax. WARNING: values are embedded in the request URL and appear in test results, logs, and reports.",
114885
+ type: "object",
114886
+ additionalProperties: {
114887
+ type: "string"
114888
+ },
114889
+ default: {}
114890
+ },
113554
114891
  timeout: {
113555
114892
  type: "integer",
113556
114893
  description: "Maximum time in milliseconds to wait for the page to be ready. If exceeded, the goTo action fails.",
@@ -113700,6 +115037,13 @@ var schemas_default = {
113700
115037
  url: "/search",
113701
115038
  origin: "https://www.google.com"
113702
115039
  },
115040
+ {
115041
+ url: "/dashboard",
115042
+ origin: "https://my-app.com",
115043
+ params: {
115044
+ __clerk_testing_token: "$CLERK_TESTING_TOKEN"
115045
+ }
115046
+ },
113703
115047
  {
113704
115048
  url: "https://www.example.com",
113705
115049
  waitUntil: {
@@ -115965,9 +117309,9 @@ var schemas_default = {
115965
117309
  anyOf: [
115966
117310
  {
115967
117311
  title: "Screenshot (simple)",
115968
- description: "File path of the PNG file. Accepts absolute paths. If not specified, the file name is the ID of the step.",
117312
+ description: "File path of the PNG file. Accepts absolute paths. If not specified, the file name is the ID of the step. If an `http(s)` URL is supplied, the remote image is downloaded and used as a read-only reference for comparison; the new capture is written to a local run-specific folder instead of being uploaded back to the URL.",
115969
117313
  type: "string",
115970
- pattern: "([A-Za-z0-9_-]*\\.(png|PNG)$|\\$[A-Za-z0-9_]+)",
117314
+ pattern: "^(?:https?:\\/\\/.+\\.(?:png|PNG)(?:\\?.*)?|[A-Za-z]:[\\/\\\\].*\\.(?:png|PNG)|[\\/\\\\]?[A-Za-z0-9_.\\/\\\\-]*\\.(?:png|PNG)|\\$[A-Za-z0-9_]+)$",
115971
117315
  transform: [
115972
117316
  "trim"
115973
117317
  ]
@@ -115978,9 +117322,9 @@ var schemas_default = {
115978
117322
  properties: {
115979
117323
  path: {
115980
117324
  title: "Screenshot (simple)",
115981
- description: "File path of the PNG file. Accepts absolute paths. If not specified, the file name is the ID of the step.",
117325
+ description: "File path of the PNG file. Accepts absolute paths. If not specified, the file name is the ID of the step. If an `http(s)` URL is supplied, the remote image is downloaded and used as a read-only reference for comparison; the new capture is written to a local run-specific folder instead of being uploaded back to the URL.",
115982
117326
  type: "string",
115983
- pattern: "([A-Za-z0-9_-]*\\.(png|PNG)$|\\$[A-Za-z0-9_]+)",
117327
+ pattern: "^(?:https?:\\/\\/.+\\.(?:png|PNG)(?:\\?.*)?|[A-Za-z]:[\\/\\\\].*\\.(?:png|PNG)|[\\/\\\\]?[A-Za-z0-9_.\\/\\\\-]*\\.(?:png|PNG)|\\$[A-Za-z0-9_]+)$",
115984
117328
  transform: [
115985
117329
  "trim"
115986
117330
  ]
@@ -116211,9 +117555,9 @@ var schemas_default = {
116211
117555
  schemas: {
116212
117556
  path: {
116213
117557
  title: "Screenshot (simple)",
116214
- description: "File path of the PNG file. Accepts absolute paths. If not specified, the file name is the ID of the step.",
117558
+ description: "File path of the PNG file. Accepts absolute paths. If not specified, the file name is the ID of the step. If an `http(s)` URL is supplied, the remote image is downloaded and used as a read-only reference for comparison; the new capture is written to a local run-specific folder instead of being uploaded back to the URL.",
116215
117559
  type: "string",
116216
- pattern: "([A-Za-z0-9_-]*\\.(png|PNG)$|\\$[A-Za-z0-9_]+)",
117560
+ pattern: "^(?:https?:\\/\\/.+\\.(?:png|PNG)(?:\\?.*)?|[A-Za-z]:[\\/\\\\].*\\.(?:png|PNG)|[\\/\\\\]?[A-Za-z0-9_.\\/\\\\-]*\\.(?:png|PNG)|\\$[A-Za-z0-9_]+)$",
116217
117561
  transform: [
116218
117562
  "trim"
116219
117563
  ]
@@ -116224,9 +117568,9 @@ var schemas_default = {
116224
117568
  properties: {
116225
117569
  path: {
116226
117570
  title: "Screenshot (simple)",
116227
- description: "File path of the PNG file. Accepts absolute paths. If not specified, the file name is the ID of the step.",
117571
+ description: "File path of the PNG file. Accepts absolute paths. If not specified, the file name is the ID of the step. If an `http(s)` URL is supplied, the remote image is downloaded and used as a read-only reference for comparison; the new capture is written to a local run-specific folder instead of being uploaded back to the URL.",
116228
117572
  type: "string",
116229
- pattern: "([A-Za-z0-9_-]*\\.(png|PNG)$|\\$[A-Za-z0-9_]+)",
117573
+ pattern: "^(?:https?:\\/\\/.+\\.(?:png|PNG)(?:\\?.*)?|[A-Za-z]:[\\/\\\\].*\\.(?:png|PNG)|[\\/\\\\]?[A-Za-z0-9_.\\/\\\\-]*\\.(?:png|PNG)|\\$[A-Za-z0-9_]+)$",
116230
117574
  transform: [
116231
117575
  "trim"
116232
117576
  ]
@@ -116608,6 +117952,12 @@ var schemas_default = {
116608
117952
  "image.png",
116609
117953
  "static/images/image.png",
116610
117954
  "/User/manny/projects/doc-detective/static/images/image.png",
117955
+ "https://example.com/static/images/image.png",
117956
+ {
117957
+ path: "https://promptless-customer-doc-assets.s3.amazonaws.com/docs-images/request-changes-button-0c851bb3.png",
117958
+ maxVariation: 0.05,
117959
+ overwrite: "aboveVariation"
117960
+ },
116611
117961
  {
116612
117962
  path: "image.png",
116613
117963
  directory: "static/images",
@@ -128637,11 +129987,17 @@ var defaultFileTypesBase = {
128637
129987
  inlineStatements: {
128638
129988
  testStart: [
128639
129989
  "<\\?doc-detective\\s+test([\\s\\S]*?)\\?>",
128640
- "<!--\\s*test([\\s\\S]+?)-->"
129990
+ "<!--\\s*test([\\s\\S]+?)-->",
129991
+ `<data\\s+[^>]*?name=["']doc-detective["'][^>]*?value='test\\s+([^']+?)'[^>]*?(?:\\/\\s*>|>\\s*<\\/data>)`,
129992
+ `<data\\s+[^>]*?name=["']doc-detective["'][^>]*?value="test\\s+([^"]+?)"[^>]*?(?:\\/\\s*>|>\\s*<\\/data>)`,
129993
+ `<data\\s+[^>]*?value='test\\s+([^']+?)'[^>]*?name=["']doc-detective["'][^>]*?(?:\\/\\s*>|>\\s*<\\/data>)`,
129994
+ `<data\\s+[^>]*?value="test\\s+([^"]+?)"[^>]*?name=["']doc-detective["'][^>]*?(?:\\/\\s*>|>\\s*<\\/data>)`
128641
129995
  ],
128642
129996
  testEnd: [
128643
129997
  "<\\?doc-detective\\s+test\\s+end\\s*\\?>",
128644
- "<!--\\s*test end([\\s\\S]+?)-->"
129998
+ "<!--\\s*test end([\\s\\S]+?)-->",
129999
+ `<data\\s+[^>]*?name=["']doc-detective["'][^>]*?value=["']test end["'][^>]*?(?:\\/\\s*>|>\\s*<\\/data>)`,
130000
+ `<data\\s+[^>]*?value=["']test end["'][^>]*?name=["']doc-detective["'][^>]*?(?:\\/\\s*>|>\\s*<\\/data>)`
128645
130001
  ],
128646
130002
  ignoreStart: [
128647
130003
  "<\\?doc-detective\\s+test\\s+ignore\\s+start\\s*\\?>",
@@ -128654,7 +130010,11 @@ var defaultFileTypesBase = {
128654
130010
  step: [
128655
130011
  "<\\?doc-detective\\s+step\\s+([\\s\\S]*?)\\s*\\?>",
128656
130012
  "<!--\\s*step([\\s\\S]+?)-->",
128657
- '<data\\s+name="step"\\s*>([\\s\\S]*?)<\\/data>'
130013
+ '<data\\s+name="step"\\s*>([\\s\\S]*?)<\\/data>',
130014
+ `<data\\s+[^>]*?name=["']doc-detective["'][^>]*?value='step\\s+([^']+?)'[^>]*?(?:\\/\\s*>|>\\s*<\\/data>)`,
130015
+ `<data\\s+[^>]*?name=["']doc-detective["'][^>]*?value="step\\s+([^"]+?)"[^>]*?(?:\\/\\s*>|>\\s*<\\/data>)`,
130016
+ `<data\\s+[^>]*?value='step\\s+([^']+?)'[^>]*?name=["']doc-detective["'][^>]*?(?:\\/\\s*>|>\\s*<\\/data>)`,
130017
+ `<data\\s+[^>]*?value="step\\s+([^"]+?)"[^>]*?name=["']doc-detective["'][^>]*?(?:\\/\\s*>|>\\s*<\\/data>)`
128658
130018
  ]
128659
130019
  },
128660
130020
  markup: [
@@ -129007,6 +130367,9 @@ function parseXmlAttributes({ stringifiedObject }) {
129007
130367
  }
129008
130368
  function parseObject({ stringifiedObject }) {
129009
130369
  if (typeof stringifiedObject === "string") {
130370
+ if (/&(?:#\d+|#x[0-9a-fA-F]+|amp|lt|gt|quot|apos);/.test(stringifiedObject)) {
130371
+ stringifiedObject = stringifiedObject.replace(/&#39;|&apos;/g, "'").replace(/&#34;|&quot;/g, '"').replace(/&lt;/g, "<").replace(/&gt;/g, ">").replace(/&amp;/g, "&");
130372
+ }
129010
130373
  const xmlAttrs = parseXmlAttributes({ stringifiedObject });
129011
130374
  if (xmlAttrs !== null) {
129012
130375
  return xmlAttrs;
@@ -129266,17 +130629,7 @@ async function parseContent({ config = {}, content, filePath = "", fileType }) {
129266
130629
  if (step.screenshot && config._herettoPathMapping) {
129267
130630
  const herettoIntegration = findHerettoIntegration(config, filePath);
129268
130631
  if (herettoIntegration) {
129269
- if (typeof step.screenshot === "string") {
129270
- step.screenshot = { path: step.screenshot };
129271
- } else if (typeof step.screenshot === "boolean") {
129272
- step.screenshot = {};
129273
- }
129274
- step.screenshot.sourceIntegration = {
129275
- type: "heretto",
129276
- integrationName: herettoIntegration,
129277
- filePath: step.screenshot.path || "",
129278
- contentPath: filePath
129279
- };
130632
+ attachHerettoScreenshotSourceIntegration(step, herettoIntegration, filePath);
129280
130633
  }
129281
130634
  }
129282
130635
  }
@@ -129342,6 +130695,12 @@ async function parseContent({ config = {}, content, filePath = "", fileType }) {
129342
130695
  endIndex: statement._endIndex
129343
130696
  };
129344
130697
  }
130698
+ if (step.screenshot && config._herettoPathMapping) {
130699
+ const herettoIntegration = findHerettoIntegration(config, filePath);
130700
+ if (herettoIntegration) {
130701
+ attachHerettoScreenshotSourceIntegration(step, herettoIntegration, filePath);
130702
+ }
130703
+ }
129345
130704
  const validation = validate({
129346
130705
  schemaKey: "step_v3",
129347
130706
  object: step,
@@ -129380,6 +130739,19 @@ async function parseContent({ config = {}, content, filePath = "", fileType }) {
129380
130739
  });
129381
130740
  return validatedTests;
129382
130741
  }
130742
+ function attachHerettoScreenshotSourceIntegration(step, integrationName, contentPath) {
130743
+ if (typeof step.screenshot === "string") {
130744
+ step.screenshot = { path: step.screenshot };
130745
+ } else if (step.screenshot === null || typeof step.screenshot !== "object" || Array.isArray(step.screenshot)) {
130746
+ step.screenshot = {};
130747
+ }
130748
+ step.screenshot.sourceIntegration = {
130749
+ type: "heretto",
130750
+ integrationName,
130751
+ filePath: step.screenshot.path || "",
130752
+ contentPath
130753
+ };
130754
+ }
129383
130755
  function findHerettoIntegration(config, filePath) {
129384
130756
  if (!config._herettoPathMapping)
129385
130757
  return null;