# History
An overview of the [Breaking Changes](#breaking-changes) and [Node Support](#node-support-tags).

## Breaking Changes

### Introduced in v6.0.0
#### Dropped support for Node 20
#### Dropped support for Phantomjs
#### Added Playwright as a secondary browser choice
#### Added standard AggregateError usage for multi-error reporting

### Introduced in v5.0.0
#### Dropped support for Node 18

### Introduced in v4.0.0
Puppeteer's breaking changes introduced with [Puppeteer 23](https://github.com/puppeteer/puppeteer/releases/tag/puppeteer-v23.0.0)

### Introduced in v3.0.0
#### Dropped support for Node 16.

### Introduced in v2.0.0
#### Dropped support for Node 14.

### Introduced in v1.0.0
Puppeteer process introduced and used as the default browser, `browser` option added to switch back ("puppeteer" vs "phantomjs").

### Introduced in v0.19.x
#### Robots Input
Robots.txt files are now searched for `Sitemap` directive(s) **first** for sitemap/sitemapIndex files. If those directives are found, those directives are used to drive the crawl of the site alone. If no Sitemap directives are found, htmlSnapshots reverts back to using `Allow` directives. If no `Sitemap` directive is found, this is a non-breaking change.

### Introduced in v0.18.x
#### Dropped support for Node 10 & 12.

### Introduced in v0.17.x
#### Dropped support for Node 8.

### Introduced in v0.16.x
#### Dropped support for Node 6.

### Introduced in v0.15.x
#### Dropped support for Node 4.

### Introduced in v0.14.x
#### Run method return value
The library `run` method no longer returns a boolean value indicating a successful start. Instead, it returns a Promise that resolves to an array of file paths to completed snapshots, or error on failure. The `run` method's second argument, a completion callback, is now **optional** and provided for compatibility only. If you supply one, it will be called, but the Promise will also resolve, so it is not needed.
#### Dropped support for Node <= 0.12

### Introduced in v0.6.x
jQuery selectors are no longer supported by default. To restore the previous behavior, set the `useJQuery` option to `true`.
The upside is jQuery is no longer required to be loaded by the page being snapshotted. However, if you use jQuery selectors, or selectors not supported by [querySelector](https://developer.mozilla.org/en-US/docs/Web/API/document.querySelector), the page being snapshotted must load jQuery.

## Node Support Tags
| Tag | Supported Node Version |
| --- | --- |
| `v0.13.2 ` | Node 0.12 (or less) |
| `v0.14.16` | Node 4+ |
| `v0.15.x ` | Node 6+ |
| `v0.16.x ` | Node 8+ |
| `v0.17.x ` | Node 10+ |
| `v0.18.x ` | Node 14+ |
| `v0.19.x ` | Node 14+ |
| `v1.x  `   | Node 14+ |
| `v2.x  `   | Node 16+ |
| `v3.x  `   | Node 18+ |
