v0.16.0

MontFerret/ferretv0.16.0Nov 23, 2021by ziflex

AI Summary

A feature-rich release introducing WAITFOR EVENT syntax, optional chaining, and performance optimizations.

Key Highlights

  • Added WAITFOR EVENT syntax
  • Support for optional chaining
  • Zero-allocation in FOR loops
  • Support for XPath selectors throughout drivers

Breaking Changes

  • Dropped support of Go 1.13

New Features

  • WAITFOR EVENT syntax
  • Optional chaining support
  • Tracing to CDP driver
  • Error suppression in function calls
  • XPath selectors support
  • Zero-allocation in FOR loops
  • Ignorable _ variable
  • Eval API in CDP driver

Full Release Notes

### Added
- New ``WAITFOR EVENT`` syntax [#590](https://github.com/MontFerret/ferret/pull/590)
- Support of optional chaining [#634](https://github.com/MontFerret/ferret/pull/634)
- Tracing to CDP driver [#648](https://github.com/MontFerret/ferret/pull/648)
- Support of errors suppression in function calls [#652](https://github.com/MontFerret/ferret/pull/652)
- Support of error suppression in inline expressions [#671](https://github.com/MontFerret/ferret/pull/671)
- Support of XPath selectors throughout drivers API [#657](https://github.com/MontFerret/ferret/pull/657)
- Zero-allocation in ``FOR`` loops returning ``NONE`` [#673](https://github.com/MontFerret/ferret/pull/673)
- Ignorable ``_`` variable [#673](https://github.com/MontFerret/ferret/pull/673)

### Changed
- Updated Root API [#622](https://github.com/MontFerret/ferret/pull/622)
- Increased websocket maximum buffer size in CDP driver [#648](https://github.com/MontFerret/ferret/pull/648)

### Fixed
- ``values.Parse`` does not parse int64 [#621](https://github.com/MontFerret/ferret/pull/621)
- CPU leakage [#635](https://github.com/MontFerret/ferret/pull/635), [90792bc](https://github.com/MontFerret/ferret/pull/648/commits/90792bcf3cd0b95075988aafe5d1c5072f2985bc)
- Nil pointer exception [#636](https://github.com/MontFerret/ferret/pull/636)
- Use of deprecated CDP API methods [#637](https://github.com/MontFerret/ferret/pull/637)
- HTTP driver makes multiple requests [#642](https://github.com/MontFerret/ferret/pull/642)
- Log level is ignored [aeb1247](https://github.com/MontFerret/ferret/commit/aeb1247ab34c3107b66ef76cfedde0c747904889)

#### Dependencies 
- Upgraded github.com/mafredri/cdp
- Upgraded github.com/antchfx/xpath
- Upgraded github.com/PuerkitoBio/goquery
- Upgraded github.com/rs/zerolog

#### Other
- Dropped support of Go 1.13 [0cb7623](https://github.com/MontFerret/ferret/commit/0cb7623a7fca00cc044ba3b62822b78557d96f2f)
- New Eval API in CDP driver [#651](https://github.com/MontFerret/ferret/pull/651), [#658](https://github.com/MontFerret/ferret/pull/658)