github.com/MontFerret/ferret@v0.18.0/CHANGELOG.md (about)

     1  ## Changelog
     2  
     3  ### 0.16.6
     4  
     5  ### Fixed
     6  - Invalid XPath evaluation in HTTP driver [#725](https://github.com/MontFerret/ferret/pull/725)
     7  - Go routines leakage [#726](https://github.com/MontFerret/ferret/pull/726)
     8  
     9  ### Updated
    10  - Small tweak in FQL Parser for FQL Formatter [#723](https://github.com/MontFerret/ferret/pull/723)
    11  
    12  ### 0.16.5
    13  
    14  ### Fixed
    15  - Query fails if an element is not found (regression) [#722](https://github.com/MontFerret/ferret/pull/722)
    16  
    17  ### Updated
    18  - Small tweak in FQL Parser for FQL Formatter [#723](https://github.com/MontFerret/ferret/pull/723)
    19  
    20  ### 0.16.4
    21  
    22  ### Fixed
    23  - Fixed inability to parse custom date formats with DATE function [#720](https://github.com/MontFerret/ferret/pull/720)
    24  
    25  ### 0.16.3
    26  
    27  ### Fixed
    28  - Panic during XPath execution by HTTP driver [#715](https://github.com/MontFerret/ferret/pull/715)
    29  
    30  ### 0.16.2
    31  
    32  ### Fixed
    33  - Unable to use dynamic values in LIMIT clause [#706](https://github.com/MontFerret/ferret/pull/706)
    34  - HTTP driver does not allow to override header values [#707](https://github.com/MontFerret/ferret/pull/707), [#709](https://github.com/MontFerret/ferret/pull/709)
    35  - Cleaned up deps [#710](https://github.com/MontFerret/ferret/pull/710), [#711](https://github.com/MontFerret/ferret/pull/711)
    36  
    37  ### 0.16.1
    38  
    39  ### Fixed
    40  - Logical precedence in ternary operator condition [#704](https://github.com/MontFerret/ferret/pull/704)
    41  
    42  ### 0.16.0
    43  
    44  ### Added
    45  - New ``WAITFOR EVENT`` syntax [#590](https://github.com/MontFerret/ferret/pull/590)
    46  - Support of optional chaining [#634](https://github.com/MontFerret/ferret/pull/634)
    47  - Tracing to CDP driver [#648](https://github.com/MontFerret/ferret/pull/648)
    48  - Support of errors suppression in function calls [#652](https://github.com/MontFerret/ferret/pull/652)
    49  - Support of error suppression in inline expressions [#671](https://github.com/MontFerret/ferret/pull/671)
    50  - Support of XPath selectors throughout drivers API [#657](https://github.com/MontFerret/ferret/pull/657)
    51  - Zero-allocation in ``FOR`` loops returning ``NONE`` [#673](https://github.com/MontFerret/ferret/pull/673)
    52  - Ignorable ``_`` variable [#673](https://github.com/MontFerret/ferret/pull/673)
    53  
    54  ### Changed
    55  - Updated Root API [#622](https://github.com/MontFerret/ferret/pull/622)
    56  - Increased websocket maximum buffer size in CDP driver [#648](https://github.com/MontFerret/ferret/pull/648)
    57  
    58  ### Fixed
    59  - ``values.Parse`` does not parse int64 [#621](https://github.com/MontFerret/ferret/pull/621)
    60  - CPU leakage [#635](https://github.com/MontFerret/ferret/pull/635), [90792bc](https://github.com/MontFerret/ferret/pull/648/commits/90792bcf3cd0b95075988aafe5d1c5072f2985bc)
    61  - Nil pointer exception [#636](https://github.com/MontFerret/ferret/pull/636)
    62  - Use of deprecated CDP API methods [#637](https://github.com/MontFerret/ferret/pull/637)
    63  - HTTP driver makes multiple requests [#642](https://github.com/MontFerret/ferret/pull/642)
    64  - Log level is ignored [aeb1247](https://github.com/MontFerret/ferret/commit/aeb1247ab34c3107b66ef76cfedde0c747904889)
    65  
    66  #### Dependencies 
    67  - Upgraded github.com/mafredri/cdp
    68  - Upgraded github.com/antchfx/xpath
    69  - Upgraded github.com/PuerkitoBio/goquery
    70  - Upgraded github.com/rs/zerolog
    71  
    72  #### Other
    73  - Dropped support of Go 1.13 [0cb7623](https://github.com/MontFerret/ferret/commit/0cb7623a7fca00cc044ba3b62822b78557d96f2f)
    74  - New Eval API in CDP driver [#651](https://github.com/MontFerret/ferret/pull/651), [#658](https://github.com/MontFerret/ferret/pull/658)
    75  
    76  ### 0.15.0
    77  #### Added
    78  - Support of document charset in HTTP driver [#609](https://github.com/MontFerret/ferret/pull/609)
    79  - ``Walk`` method to FQL Parser [80c278e](https://github.com/MontFerret/ferret/commit/80c278ec6c783e29a8df12865da8208d1c148c65)
    80  - Possibility to send keyboard events like 'Enter' or 'Shift' [#618](https://github.com/MontFerret/ferret/pull/618)
    81  
    82  #### Changed
    83  - Moved CLI to a separate repository [#608](https://github.com/MontFerret/ferret/pull/608)
    84  
    85  #### Fixed
    86  - Passing headers and cookies to HTTP driver [#614](https://github.com/MontFerret/ferret/pull/614)
    87  - Reading property of anyonymous object [#616](https://github.com/MontFerret/ferret/pull/616)
    88  - Clearing input text containing special characteers [#619](https://github.com/MontFerret/ferret/pull/619)
    89  
    90  ### 0.14.1
    91  #### Fixed
    92  - Parsing HTTP headers and cookies [#598](https://github.com/MontFerret/ferret/pull/598)
    93  - Parsing cookie expiration datetime [#602](https://github.com/MontFerret/ferret/pull/602)
    94  
    95  ### 0.14.0
    96  #### Added
    97  - Support of History API [#584](https://github.com/MontFerret/ferret/pull/584)
    98  - Support of custom http transport in HTTP driver [#586](https://github.com/MontFerret/ferret/pull/586)
    99  - ``LIKE`` operator [#591](https://github.com/MontFerret/ferret/pull/591)
   100  - Support of ignoring page resources [#592](https://github.com/MontFerret/ferret/pull/592)
   101  - Support of handling non-200 status codes in HTTP driver [#593](https://github.com/MontFerret/ferret/pull/593)
   102  - ``DOCUMENT_EXISTS`` function [#594](https://github.com/MontFerret/ferret/pull/594)
   103  
   104  #### Fixed
   105  - ``RAND(0,100)`` always same result [#579](https://github.com/MontFerret/ferret/pull/579)
   106  - Element.children always returns empty array [#580](https://github.com/MontFerret/ferret/pull/580)
   107  - Passing parameters with a nested nil structure leads to panic [#587](https://github.com/MontFerret/ferret/pull/587)
   108  
   109  ### 0.13.0
   110  #### Added
   111  - ``WHILE`` loop and ``ATTR_QUERY`` function [#567](https://github.com/MontFerret/ferret/pull/567)
   112  - Support of Element.nextElementSibling and Element.previousElement [#569](https://github.com/MontFerret/ferret/pull/569)
   113  - Support of Element.getParentElement [#571](https://github.com/MontFerret/ferret/pull/571)
   114  - Support of computed styles [#570](https://github.com/MontFerret/ferret/pull/570)
   115  
   116  #### Fixed
   117  - HTML escaping [#573](https://github.com/MontFerret/ferret/pull/573)
   118  
   119  #### Updated 
   120  - Upgraded CDP client [#536](https://github.com/MontFerret/ferret/pull/563)
   121  - Upgraded GoQuery [#562](https://github.com/MontFerret/ferret/pull/562)
   122  - Upgraded XPath [#572](https://github.com/MontFerret/ferret/pull/572)
   123  
   124  ### 0.12.1
   125  #### Fixed
   126  - Missing regexp FILTER operator [#558](https://github.com/MontFerret/ferret/pull/558)
   127  - Open tabs on page load error [#564](https://github.com/MontFerret/ferret/pull/564)
   128  - Docs for WAIT_NAVIGATION [#557](https://github.com/MontFerret/ferret/pull/557)
   129  
   130  ### 0.12.0
   131  #### Added
   132  - iFrame navigation handling [#535](https://github.com/MontFerret/ferret/pull/535)
   133  - ``FRAMES`` function for fast frame lookup [#535](https://github.com/MontFerret/ferret/pull/535)
   134  - Assertion library [#526](https://github.com/MontFerret/ferret/pull/526)
   135  
   136  #### Changed
   137  - Removed property caching and tracking [#531](https://github.com/MontFerret/ferret/pull/531)
   138  - Updated dependencies [#528](https://github.com/MontFerret/ferret/pull/528), [#525](https://github.com/MontFerret/ferret/pull/525)
   139  - ``IO::FS::WRITE`` accepts any type as a file content [#544](https://github.com/MontFerret/ferret/pull/544)
   140  - Print errors on stderr [#539](https://github.com/MontFerret/ferret/pull/539)
   141  
   142  #### Fixed
   143  - ``WAIT`` does not respect cancellation signal [#524](https://github.com/MontFerret/ferret/pull/524)
   144  - Missed ``DATE_COMPARE`` [#537](https://github.com/MontFerret/ferret/pull/537)
   145  - Spelling [#534](https://github.com/MontFerret/ferret/pull/534)
   146  - ``SCREENSHOT`` param type check [#545](https://github.com/MontFerret/ferret/pull/545)
   147  - Wrong base for int formatter [e283722](https://github.com/MontFerret/ferret/commit/e283722d37f392f755ace2a42232c0d4b37d1838)
   148  
   149  ### 0.11.1
   150  #### Fixed
   151  - Fixed use of unquoted scroll options [#521](https://github.com/MontFerret/ferret/pull/521)
   152  - Upgraded ANTLR version [#517](https://github.com/MontFerret/ferret/pull/517)
   153  
   154  
   155  ### 0.11.0
   156  #### Added
   157  - USE statement. [#470](https://github.com/MontFerret/ferret/pull/470)
   158  - Scroll options. [#471](https://github.com/MontFerret/ferret/pull/471)
   159  - Functions for working with file paths. [#505](https://github.com/MontFerret/ferret/pull/505)
   160  - Fuzzer. [#501](https://github.com/MontFerret/ferret/pull/501)
   161  
   162  ## Updated
   163  - ``DECODED_URI_COMPONENT`` decodes unicode symbols now. [#499](https://github.com/MontFerret/ferret/pull/499) 
   164  - Dependencies. [87265cf](https://github.com/MontFerret/ferret/commit/87265cf470c4b614d144706020729dd453620a0c)
   165  
   166  # Fixed
   167  - ``RAND`` always returns same result . [#484](https://github.com/MontFerret/ferret/pull/484)
   168  - ``RAND`` does not work on Windows. [#497](https://github.com/MontFerret/ferret/pull/497)
   169  - ``IO::FS::WRITE`` does not add read permissions. [#494](https://github.com/MontFerret/ferret/pull/494)
   170  - Unable to use keywords in namespaces. [#481](https://github.com/MontFerret/ferret/pull/481)
   171  
   172  ### 0.10.2
   173  #### Updated
   174  - Updated dependencies. [#466](https://github.com/MontFerret/ferret/pull/466) [#467](https://github.com/MontFerret/ferret/pull/467)
   175  
   176  ### 0.10.1
   177  #### Fixed
   178  - Added string functions with correct names. [#461](https://github.com/MontFerret/ferret/pull/461)
   179  - Added missed datetime library. [#462](https://github.com/MontFerret/ferret/pull/462)
   180  
   181  ### 0.10.0
   182  #### Added
   183  - Response information to drivers. [#391](https://github.com/MontFerret/ferret/pull/391), [#450](https://github.com/MontFerret/ferret/pull/450)
   184  - Compilation check whether parameter values are provided. [#396](https://github.com/MontFerret/ferret/pull/396)
   185  - Allowed HTTP response codes to HTTP driver. [#398](https://github.com/MontFerret/ferret/pull/398)
   186  - IO functions to standard library. [#403](https://github.com/MontFerret/ferret/pull/403), [#405](https://github.com/MontFerret/ferret/pull/405), [#452](https://github.com/MontFerret/ferret/pull/452)
   187  - Compilation check whether a variable name is unique. [#416](https://github.com/MontFerret/ferret/pull/416)
   188  - Loading HTML page into memory. Supported by all drivers. [#413](https://github.com/MontFerret/ferret/pull/434)
   189  
   190  #### Fixed
   191  - Fixes in HTTP driver. [#390](https://github.com/MontFerret/ferret/pull/390)
   192  - Inability to handle redirects correctly. [#432](https://github.com/MontFerret/ferret/pull/432)
   193  - XPath selector gives faulty output. [#435](https://github.com/MontFerret/ferret/pull/435)
   194  - Typos in README and comments. [#446](https://github.com/MontFerret/ferret/pull/446)
   195  - ``PAGINATION`` fails during redirects. [#448](https://github.com/MontFerret/ferret/pull/448)
   196  
   197  #### Changed
   198  - Made FQL keywords case insensitive. [#393](https://github.com/MontFerret/ferret/pull/393)
   199  - Performance boost in EventBroker. [#402](https://github.com/MontFerret/ferret/pull/402), [#407](https://github.com/MontFerret/ferret/pull/407), [#408](https://github.com/MontFerret/ferret/pull/408)
   200  - Updated dependencies.
   201  
   202  
   203  ### 0.9.0
   204  #### Added
   205  - ``INPUT_CLEAR`` function to clear input's value. [#366](https://github.com/MontFerret/ferret/pull/366)
   206  - Support of tick for string literals. [#367](https://github.com/MontFerret/ferret/pull/367)
   207  - Support of default headers and cookies. [#372](https://github.com/MontFerret/ferret/pull/372)
   208  - Support of use of params in dot notation. [#378](https://github.com/MontFerret/ferret/pull/378)
   209  - Optional count param to ``CLICK`` function. [#377](https://github.com/MontFerret/ferret/pull/377)
   210  - ``BLUR`` function. [#379](https://github.com/MontFerret/ferret/pull/379)
   211  
   212  #### Fixed
   213  - Tabs don't get closed on page load error. [#359](https://github.com/MontFerret/ferret/pull/359)
   214  - ``CLICK`` function does not allow to use element with a selector. [#355](https://github.com/MontFerret/ferret/pull/355)
   215  - Unable to use member expression right after a function call. [#368](https://github.com/MontFerret/ferret/pull/368)
   216  
   217  #### Changed
   218  - Updated zerolog. [#352](https://github.com/MontFerret/ferret/pull/352)
   219  - Runtime ``Object`` and ``Array`` values implement ``core.Getter`` interface. [#353](https://github.com/MontFerret/ferret/pull/353)
   220  - Externalized default timeout values. [#371](https://github.com/MontFerret/ferret/pull/371) 
   221  - Refactored ``drivers.HTMLDocument`` and ``drivers.HTMLElement`` interfaces. [#376](https://github.com/MontFerret/ferret/pull/376), [#375](https://github.com/MontFerret/ferret/pull/375)
   222  
   223  ### 0.8.3
   224  #### Fixed
   225  - Unable to click by selector using an element.
   226  
   227  ### 0.8.2
   228  #### Fixed
   229  - Scrolling position is not centered. [#343](https://github.com/MontFerret/ferret/pull/343)
   230  - Unable to set custom logger fields. [#346](https://github.com/MontFerret/ferret/pull/346)
   231  - Fixed ``INNER_HTML``, ``INNER_TEXT``, ``INNER_HTML_SET``, ``INNER_TEXT_SET`` functions. [#347](https://github.com/MontFerret/ferret/pull/347)
   232  - Unable to set custom headers. [#348](https://github.com/MontFerret/ferret/pull/348)
   233  
   234  ### 0.8.1
   235  #### Fixed
   236  - Added existence check to ``CLICK`` and ``CLICK_ALL`` functions. [#341](https://github.com/MontFerret/ferret/pull/341)
   237  - Added a check whether an element is in the viewport before scrolling. [#342](https://github.com/MontFerret/ferret/pull/342)
   238  
   239  ### 0.8.0
   240  #### Added
   241  - Delay randomization for inputs. [#283](https://github.com/MontFerret/ferret/pull/283)
   242  - Namespace support. [#269](https://github.com/MontFerret/ferret/pull/296)
   243  - iframe support. [#315](https://github.com/MontFerret/ferret/pull/315)
   244  - Better emulation of user interaction. [#316](https://github.com/MontFerret/ferret/pull/316), [#331](https://github.com/MontFerret/ferret/pull/331)
   245  - ``ESCAPE_HTML``, ``UNESCAPE_HTML`` and ``DECODE_URI_COMPONENT`` functions. [#318](https://github.com/MontFerret/ferret/pull/318)
   246  - XPath support. [#322](https://github.com/MontFerret/ferret/pull/322)
   247  - Regular expression operator. [#326](https://github.com/MontFerret/ferret/pull/326)
   248  - ``INNER_HTML_SET`` and ``INNER_TEXT_SET`` functions. [#329](https://github.com/MontFerret/ferret/pull/329)
   249  - Possibility to set viewport size. [#334](https://github.com/MontFerret/ferret/pull/334)
   250  - ``FOCUS`` function. [#340](https://github.com/MontFerret/ferret/pull/340)
   251  
   252  #### Changed
   253  - ``RAND`` accepts optional upper and lower limits. [#271](https://github.com/MontFerret/ferret/pull/271)
   254  - Updated CDP definitions. [#328](https://github.com/MontFerret/ferret/pull/328) 
   255  - Logic of iterator termination. [#330](https://github.com/MontFerret/ferret/pull/330)
   256  
   257  #### Fixed
   258  - Order of arguments in ``SCROLL`` function. [#269](https://github.com/MontFerret/ferret/pull/269)
   259  - The command line parameter "--param" does not support colon. [#282](https://github.com/MontFerret/ferret/pull/282)
   260  - Race condition during ``WAIT_NAVIGATION`` call. [#281](https://github.com/MontFerret/ferret/pull/281)
   261  - Arithmetic operators. [#298](https://github.com/MontFerret/ferret/pull/298)
   262  - Missed UA setting for HTTP driver. [#318](https://github.com/MontFerret/ferret/pull/318)
   263  - Improper math operator used in calculating page load timeout. [#319](https://github.com/MontFerret/ferret/pull/319)
   264  - Wrong function names in README. [#321](https://github.com/MontFerret/ferret/pull/321)
   265  - JSON serialization for HTTPHeader type. [#323](https://github.com/MontFerret/ferret/pull/323)
   266  
   267  ### 0.7.0
   268  #### Added
   269  - Autocomplete to CLI [#219](https://github.com/MontFerret/ferret/pull/219).
   270  - New mouse functions - ``MOUSE(x, y)`` and ``SCROLL(x, y)`` [#237](https://github.com/MontFerret/ferret/pull/237).
   271  - ``WAIT_NO_ELEMENT``, ``WAIT_NO_CLASS`` and ``WAIT_NO_CLASS_ALL`` functions [#249](https://github.com/MontFerret/ferret/pull/249).
   272  - Computed ``HTMLElement.style`` property [#255](https://github.com/MontFerret/ferret/pull/255).
   273  - ``ATTR_GET``, ``ATTR_SET``, ``ATTR_REMOVE``, ``STYLE_GET``, ``STYLE_SET`` and ``STYLE_REMOVE`` functions [#255](https://github.com/MontFerret/ferret/pull/255).
   274  - ``WAIT_STYLE``, ``WAIT_NO_STYLE``, ``WAIT_STYLE_ALL`` and ``WAIT_NO_STYLE_ALL`` functions [#256](https://github.com/MontFerret/ferret/pull/260).
   275  - Cookies support. Now a document can be loaded with preset cookies. Also, HTMLDocument has ``.cookies`` property.
   276  In order to manipulate with cookies, ``COOKIE_DEL``, ``COOKIE_SET`` AND ``COOKIE_GET`` functions were added [#242](https://github.com/MontFerret/ferret/pull/242).
   277  
   278  ```
   279  LET doc = DOCUMENT(url, {
   280      driver: "cdp",
   281      cookies: [{
   282          name: "x-e2e",
   283          value: "test"
   284      }, {
   285          name: "x-e2e-2",
   286          value: "test2"
   287      }]
   288  })
   289  ```
   290  
   291  #### Changed
   292  - Renamed ParseTYPEP to MustParseTYPE [#231](https://github.com/MontFerret/ferret/pull/231).
   293  - Added context to all HTML object [#235](https://github.com/MontFerret/ferret/pull/235).
   294  
   295  #### Fixed
   296  - Click events are not cancellable [#222](https://github.com/MontFerret/ferret/pull/222).
   297  - Name collision [#223](https://github.com/MontFerret/ferret/pull/223).
   298  - Invalid return in FQL Compiler constructor [#227](https://github.com/MontFerret/ferret/pull/227).
   299  - Incorrect string length computation [#238](https://github.com/MontFerret/ferret/pull/238).
   300  - Access to HTML object properties via dot notation [#239](https://github.com/MontFerret/ferret/pull/239).
   301  - Graceful process termination [#240](https://github.com/MontFerret/ferret/pull/240).
   302  - Browser launcher for macOS [#246](https://github.com/MontFerret/ferret/pull/246). 
   303  
   304  #### Breaking changes
   305  - New runtime type system [#232](https://github.com/MontFerret/ferret/pull/232).
   306  - Moved and renamed ``collections.IterableCollection`` and ```collections.CollectionIterator``` interfaces.
   307  Now they are in ``core`` package and called ``Iterable`` and ``Iterator`` [1af8b37](https://github.com/MontFerret/ferret/commit/f8e061cc8034fd4cfa4ce2a094276d50137a4b98).
   308  - Renamed ``collections.Collection`` interface to ``collections.Measurable`` [1af8b37](https://github.com/MontFerret/ferret/commit/f8e061cc8034fd4cfa4ce2a094276d50137a4b98).
   309  - Moved html interfaces from ``runtime/values`` package into ``drivers`` package [#234](https://github.com/MontFerret/ferret/pull/234).
   310  - Changed drivers initialization. Replaced old ``drivers.WithDynamic`` and ``drivers.WithStatic`` methods with a new ``drivers.WithContext`` method with optional parameter ``drivers.AsDefault()`` [#234](https://github.com/MontFerret/ferret/pull/234).
   311  - New document load params [#234](https://github.com/MontFerret/ferret/pull/234).
   312  ```
   313  LET doc = DOCUMENT(url, {
   314      driver: "cdp"
   315  })
   316  ```
   317  
   318  
   319  ### 0.6.0
   320  #### Added
   321  - Added support for ```context.Done()``` to interrupt an execution [#201](https://github.com/MontFerret/ferret/pull/201).
   322  - Added support for custom HTML drivers [#209](https://github.com/MontFerret/ferret/pull/209).
   323  - Added support for dot notation access and assignments for custom types [#214](https://github.com/MontFerret/ferret/pull/214/commits/0ea36e511540e569ef53b8748301512b6d8a046b)
   324  - Added ```ELEMENT_EXISTS(doc, selector) -> Boolean``` function [#210](https://github.com/MontFerret/ferret/pull/210).
   325  ```
   326  LET exists = ELEMENT_EXISTS(doc, ".nav")
   327  ```
   328  - Added ```PageLoadParams``` to ```DOCUMENT``` function [#214](https://github.com/MontFerret/ferret/pull/214/commits/3434323cd08ca3186e90cb5ab1faa26e28a28709).
   329  ```
   330  LET doc = DOCUMENT("https://www.google.com/", {
   331      dynamic: true,
   332      timeout: 10000
   333  })
   334  ```
   335   
   336  #### Fixed
   337  - Math operators precedence [#202](https://github.com/MontFerret/ferret/pull/202).
   338  - Memory leak in ```DOWNLOAD``` function [#213](https://github.com/MontFerret/ferret/pull/213).
   339  
   340  #### Breaking change
   341  - **(Embedded)** Removed builtin drivers initialization in Program [#198](https://github.com/MontFerret/ferret/pull/198).
   342  The initialization must be done via context manually.
   343  
   344  ### 0.5.2
   345  #### Fixed
   346  - Does not close browser tab when fails to load a page [#193](https://github.com/MontFerret/ferret/pull/193).
   347  - ```HTMLElement.value``` does not return actual value [#195](https://github.com/MontFerret/ferret/pull/195)
   348  - Compiles a query with duplicate variable in FOR statement [#196](https://github.com/MontFerret/ferret/pull/196)
   349  - Default CDP address [#197](https://github.com/MontFerret/ferret/pull/197).  
   350  
   351  ### 0.5.1
   352  #### Fixed
   353  - Unable to change a page load timeout [#186](https://github.com/MontFerret/ferret/pull/186).
   354  - ``RETURN doc`` returns an empty string [#187](https://github.com/MontFerret/ferret/pull/187).
   355  - Unable to pass an HTML Node without a selector to ``INNER_TEXT`` and ``INNER_HTML`` [#187](https://github.com/MontFerret/ferret/pull/187).
   356  - ``doc.innerText`` returns an error [#187](https://github.com/MontFerret/ferret/pull/187).
   357  - Panics when ``WAIT_CLASS`` does not receive all required arguments [#192](https://github.com/MontFerret/ferret/pull/192).
   358  
   359  ### 0.5.0
   360  #### Added
   361  - ``FMT`` function [#151](https://github.com/MontFerret/ferret/pull/151).
   362  - DateTime functions [#152](https://github.com/MontFerret/ferret/pull/152), [#153](https://github.com/MontFerret/ferret/pull/153), [#154](https://github.com/MontFerret/ferret/pull/154), [#156](https://github.com/MontFerret/ferret/pull/156), [#157](https://github.com/MontFerret/ferret/pull/157), [#165](https://github.com/MontFerret/ferret/pull/165), [#175](https://github.com/MontFerret/ferret/pull/175), [#182](https://github.com/MontFerret/ferret/pull/182).
   363  - ``PAGINATION`` function [#173](https://github.com/MontFerret/ferret/pull/173).
   364  - ``SCROLL_TOP``, ``SCROLL_BOTTOM`` and ``SCROLL_ELEMENT`` functions [#174](https://github.com/MontFerret/ferret/pull/174).
   365  - ``HOVER`` function [#178](https://github.com/MontFerret/ferret/pull/178).
   366  - Panic recovery mechanism [#158](https://github.com/MontFerret/ferret/pull/158).
   367  
   368  #### Fixed
   369  - Unable to define variables and make function calls before FILTER, SORT and etc statements [#148](https://github.com/MontFerret/ferret/pull/148).
   370  - Unable to use params in LIMIT clause [#173](https://github.com/MontFerret/ferret/pull/173).
   371  - ```RIGHT``` should return substr counting from right rather than left [#164](https://github.com/MontFerret/ferret/pull/164).
   372  - ``INNER_HTML`` returns outer HTML instead for dynamic elements [#170](https://github.com/MontFerret/ferret/pull/170).
   373  - ``INNER_TEXT`` returns HTML instead from dynamic elements [#170](https://github.com/MontFerret/ferret/pull/170).
   374  
   375  #### Breaking change:
   376  - Name collision between ```math``` and ```utils``` packages in standard library. Renamed ```LOG``` to ```PRINT``` [#162](https://github.com/MontFerret/ferret/pull/162).
   377  
   378  ### 0.4.0
   379  #### Added
   380  - ``COLLECT`` keyword [#141](https://github.com/MontFerret/ferret/pull/141)
   381  - ``VALUES`` function [#128](https://github.com/MontFerret/ferret/pull/128) 
   382  - ``MERGE_RECURSIVE`` function [#140](https://github.com/MontFerret/ferret/pull/140) 
   383  
   384  #### Fixed
   385  - Unable to use string literals as object properties [commit](https://github.com/MontFerret/ferret/commit/685c5872aaed42852ce32e7ab8b69b1a269185be)
   386  
   387  ### 0.3.0
   388  
   389  #### Added
   390  - ``FROM_BASE64`` function [commit](https://github.com/MontFerret/ferret/commit/5db8df55db46336927ca32ab096569fa09df58d3)
   391  - Support for multi line strings [commit](https://github.com/MontFerret/ferret/commit/cf70088fd84fa0e02887c0f34298793b98f96073)
   392  - ``DOWNLOAD`` function [commit](https://github.com/MontFerret/ferret/commit/dd13878f80f340c4727d3ad5a6a70859dd958b92)
   393  - Binary expressions [commit](https://github.com/MontFerret/ferret/commit/e5ca63bcdb83418b40792bc65bf83f58a0cb1b4e)
   394  
   395  #### Fixed
   396  - ``KEEP`` function does not perform deep cloning [commit](https://github.com/MontFerret/ferret/commit/0f3128e8428cd3dc5377a2ead3134c1ae14cc9a0)
   397  - WaitForNavigation callback can get called more than once [commit](https://github.com/MontFerret/ferret/commit/1d6a23fa967643a737cd052234d480052d3ec2d9)
   398  - Concurrent map iteration and map write  [commit](https://github.com/MontFerret/ferret/commit/1d6a23fa967643a737cd052234d480052d3ec2d9)
   399  
   400  #### Breaking changes
   401  - Renamed ``.innerHtml`` to ``.innerHTML`` [commit](https://github.com/MontFerret/ferret/commit/393980029976405d9e432faadd407e964c995fd4)
   402  
   403  ### 0.2.0
   404  
   405  #### Added
   406  - Numeric functions [commit](https://github.com/MontFerret/ferret/commit/5f94b77a39709846a922a3bf421f81e78c2b0c7e)
   407  - ``PDF`` function [commit](https://github.com/MontFerret/ferret/commit/2417be3f9da6db49dcee5ac6f061cc66142fbef5)
   408  - ``ZIP`` function [commit](https://github.com/MontFerret/ferret/commit/5d0d9ec5374d42b0e882436955666c737d9dab0c)
   409  - ``MERGE`` function [commit](https://github.com/MontFerret/ferret/commit/446ce3ead5812fe105726bae16196fb7ce4a7185)