1
0
mirror of https://github.com/MontFerret/ferret.git synced 2024-12-02 09:21:54 +02:00
ferret/CHANGELOG.md
2022-02-10 19:08:45 -05:00

24 KiB

Changelog

0.16.6

Fixed

  • Invalid XPath evaluation in HTTP driver #725
  • Go routines leakage #726

Updated

  • Small tweak in FQL Parser for FQL Formatter #723

0.16.5

Fixed

  • Query fails if an element is not found (regression) #722

Updated

  • Small tweak in FQL Parser for FQL Formatter #723

0.16.4

Fixed

  • Fixed inability to parse custom date formats with DATE function #720

0.16.3

Fixed

  • Panic during XPath execution by HTTP driver #715

0.16.2

Fixed

  • Unable to use dynamic values in LIMIT clause #706
  • HTTP driver does not allow to override header values #707, #709
  • Cleaned up deps #710, #711

0.16.1

Fixed

  • Logical precedence in ternary operator condition #704

0.16.0

Added

  • New WAITFOR EVENT syntax #590
  • Support of optional chaining #634
  • Tracing to CDP driver #648
  • Support of errors suppression in function calls #652
  • Support of error suppression in inline expressions #671
  • Support of XPath selectors throughout drivers API #657
  • Zero-allocation in FOR loops returning NONE #673
  • Ignorable _ variable #673

Changed

  • Updated Root API #622
  • Increased websocket maximum buffer size in CDP driver #648

Fixed

  • values.Parse does not parse int64 #621
  • CPU leakage #635, 90792bc
  • Nil pointer exception #636
  • Use of deprecated CDP API methods #637
  • HTTP driver makes multiple requests #642
  • Log level is ignored aeb1247

Dependencies

  • Upgraded github.com/mafredri/cdp
  • Upgraded github.com/antchfx/xpath
  • Upgraded github.com/PuerkitoBio/goquery
  • Upgraded github.com/rs/zerolog

Other

0.15.0

Added

  • Support of document charset in HTTP driver #609
  • Walk method to FQL Parser 80c278e
  • Possibility to send keyboard events like 'Enter' or 'Shift' #618

Changed

  • Moved CLI to a separate repository #608

Fixed

  • Passing headers and cookies to HTTP driver #614
  • Reading property of anyonymous object #616
  • Clearing input text containing special characteers #619

0.14.1

Fixed

  • Parsing HTTP headers and cookies #598
  • Parsing cookie expiration datetime #602

0.14.0

Added

  • Support of History API #584
  • Support of custom http transport in HTTP driver #586
  • LIKE operator #591
  • Support of ignoring page resources #592
  • Support of handling non-200 status codes in HTTP driver #593
  • DOCUMENT_EXISTS function #594

Fixed

  • RAND(0,100) always same result #579
  • Element.children always returns empty array #580
  • Passing parameters with a nested nil structure leads to panic #587

0.13.0

Added

  • WHILE loop and ATTR_QUERY function #567
  • Support of Element.nextElementSibling and Element.previousElement #569
  • Support of Element.getParentElement #571
  • Support of computed styles #570

Fixed

  • HTML escaping #573

Updated

  • Upgraded CDP client #536
  • Upgraded GoQuery #562
  • Upgraded XPath #572

0.12.1

Fixed

  • Missing regexp FILTER operator #558
  • Open tabs on page load error #564
  • Docs for WAIT_NAVIGATION #557

0.12.0

Added

  • iFrame navigation handling #535
  • FRAMES function for fast frame lookup #535
  • Assertion library #526

Changed

  • Removed property caching and tracking #531
  • Updated dependencies #528, #525
  • IO::FS::WRITE accepts any type as a file content #544
  • Print errors on stderr #539

Fixed

  • WAIT does not respect cancellation signal #524
  • Missed DATE_COMPARE #537
  • Spelling #534
  • SCREENSHOT param type check #545
  • Wrong base for int formatter e283722

0.11.1

Fixed

  • Fixed use of unquoted scroll options #521
  • Upgraded ANTLR version #517

0.11.0

Added

  • USE statement. #470
  • Scroll options. #471
  • Functions for working with file paths. #505
  • Fuzzer. #501

Updated

  • DECODED_URI_COMPONENT decodes unicode symbols now. #499
  • Dependencies. 87265cf

Fixed

  • RAND always returns same result . #484
  • RAND does not work on Windows. #497
  • IO::FS::WRITE does not add read permissions. #494
  • Unable to use keywords in namespaces. #481

0.10.2

Updated

0.10.1

Fixed

  • Added string functions with correct names. #461
  • Added missed datetime library. #462

0.10.0

Added

  • Response information to drivers. #391, #450
  • Compilation check whether parameter values are provided. #396
  • Allowed HTTP response codes to HTTP driver. #398
  • IO functions to standard library. #403, #405, #452
  • Compilation check whether a variable name is unique. #416
  • Loading HTML page into memory. Supported by all drivers. #413

Fixed

  • Fixes in HTTP driver. #390
  • Inability to handle redirects correctly. #432
  • XPath selector gives faulty output. #435
  • Typos in README and comments. #446
  • PAGINATION fails during redirects. #448

Changed

  • Made FQL keywords case insensitive. #393
  • Performance boost in EventBroker. #402, #407, #408
  • Updated dependencies.

0.9.0

Added

  • INPUT_CLEAR function to clear input's value. #366
  • Support of tick for string literals. #367
  • Support of default headers and cookies. #372
  • Support of use of params in dot notation. #378
  • Optional count param to CLICK function. #377
  • BLUR function. #379

Fixed

  • Tabs don't get closed on page load error. #359
  • CLICK function does not allow to use element with a selector. #355
  • Unable to use member expression right after a function call. #368

Changed

  • Updated zerolog. #352
  • Runtime Object and Array values implement core.Getter interface. #353
  • Externalized default timeout values. #371
  • Refactored drivers.HTMLDocument and drivers.HTMLElement interfaces. #376, #375

0.8.3

Fixed

  • Unable to click by selector using an element.

0.8.2

Fixed

  • Scrolling position is not centered. #343
  • Unable to set custom logger fields. #346
  • Fixed INNER_HTML, INNER_TEXT, INNER_HTML_SET, INNER_TEXT_SET functions. #347
  • Unable to set custom headers. #348

0.8.1

Fixed

  • Added existence check to CLICK and CLICK_ALL functions. #341
  • Added a check whether an element is in the viewport before scrolling. #342

0.8.0

Added

  • Delay randomization for inputs. #283
  • Namespace support. #269
  • iframe support. #315
  • Better emulation of user interaction. #316, #331
  • ESCAPE_HTML, UNESCAPE_HTML and DECODE_URI_COMPONENT functions. #318
  • XPath support. #322
  • Regular expression operator. #326
  • INNER_HTML_SET and INNER_TEXT_SET functions. #329
  • Possibility to set viewport size. #334
  • FOCUS function. #340

Changed

  • RAND accepts optional upper and lower limits. #271
  • Updated CDP definitions. #328
  • Logic of iterator termination. #330

Fixed

  • Order of arguments in SCROLL function. #269
  • The command line parameter "--param" does not support colon. #282
  • Race condition during WAIT_NAVIGATION call. #281
  • Arithmetic operators. #298
  • Missed UA setting for HTTP driver. #318
  • Improper math operator used in calculating page load timeout. #319
  • Wrong function names in README. #321
  • JSON serialization for HTTPHeader type. #323

0.7.0

Added

  • Autocomplete to CLI #219.
  • New mouse functions - MOUSE(x, y) and SCROLL(x, y) #237.
  • WAIT_NO_ELEMENT, WAIT_NO_CLASS and WAIT_NO_CLASS_ALL functions #249.
  • Computed HTMLElement.style property #255.
  • ATTR_GET, ATTR_SET, ATTR_REMOVE, STYLE_GET, STYLE_SET and STYLE_REMOVE functions #255.
  • WAIT_STYLE, WAIT_NO_STYLE, WAIT_STYLE_ALL and WAIT_NO_STYLE_ALL functions #256.
  • Cookies support. Now a document can be loaded with preset cookies. Also, HTMLDocument has .cookies property. In order to manipulate with cookies, COOKIE_DEL, COOKIE_SET AND COOKIE_GET functions were added #242.
LET doc = DOCUMENT(url, {
    driver: "cdp",
    cookies: [{
        name: "x-e2e",
        value: "test"
    }, {
        name: "x-e2e-2",
        value: "test2"
    }]
})

Changed

  • Renamed ParseTYPEP to MustParseTYPE #231.
  • Added context to all HTML object #235.

Fixed

  • Click events are not cancellable #222.
  • Name collision #223.
  • Invalid return in FQL Compiler constructor #227.
  • Incorrect string length computation #238.
  • Access to HTML object properties via dot notation #239.
  • Graceful process termination #240.
  • Browser launcher for macOS #246.

Breaking changes

  • New runtime type system #232.
  • Moved and renamed collections.IterableCollection and collections.CollectionIterator interfaces. Now they are in core package and called Iterable and Iterator 1af8b37.
  • Renamed collections.Collection interface to collections.Measurable 1af8b37.
  • Moved html interfaces from runtime/values package into drivers package #234.
  • Changed drivers initialization. Replaced old drivers.WithDynamic and drivers.WithStatic methods with a new drivers.WithContext method with optional parameter drivers.AsDefault() #234.
  • New document load params #234.
LET doc = DOCUMENT(url, {
    driver: "cdp"
})

0.6.0

Added

  • Added support for context.Done() to interrupt an execution #201.
  • Added support for custom HTML drivers #209.
  • Added support for dot notation access and assignments for custom types #214
  • Added ELEMENT_EXISTS(doc, selector) -> Boolean function #210.
LET exists = ELEMENT_EXISTS(doc, ".nav")
  • Added PageLoadParams to DOCUMENT function #214.
LET doc = DOCUMENT("https://www.google.com/", {
    dynamic: true,
    timeout: 10000
})

Fixed

  • Math operators precedence #202.
  • Memory leak in DOWNLOAD function #213.

Breaking change

  • (Embedded) Removed builtin drivers initialization in Program #198. The initialization must be done via context manually.

0.5.2

Fixed

  • Does not close browser tab when fails to load a page #193.
  • HTMLElement.value does not return actual value #195
  • Compiles a query with duplicate variable in FOR statement #196
  • Default CDP address #197.

0.5.1

Fixed

  • Unable to change a page load timeout #186.
  • RETURN doc returns an empty string #187.
  • Unable to pass an HTML Node without a selector to INNER_TEXT and INNER_HTML #187.
  • doc.innerText returns an error #187.
  • Panics when WAIT_CLASS does not receive all required arguments #192.

0.5.0

Added

Fixed

  • Unable to define variables and make function calls before FILTER, SORT and etc statements #148.
  • Unable to use params in LIMIT clause #173.
  • RIGHT should return substr counting from right rather than left #164.
  • INNER_HTML returns outer HTML instead for dynamic elements #170.
  • INNER_TEXT returns HTML instead from dynamic elements #170.

Breaking change:

  • Name collision between math and utils packages in standard library. Renamed LOG to PRINT #162.

0.4.0

Added

  • COLLECT keyword #141
  • VALUES function #128
  • MERGE_RECURSIVE function #140

Fixed

  • Unable to use string literals as object properties commit

0.3.0

Added

Fixed

  • KEEP function does not perform deep cloning commit
  • WaitForNavigation callback can get called more than once commit
  • Concurrent map iteration and map write commit

Breaking changes

  • Renamed .innerHtml to .innerHTML commit

0.2.0

Added