# changelog

author: Andrei Belov <defan@nginx.com> - 19+1.2.0-1.sles15.ngx
changelog:
  - Updated to 1.2.0.
  - Feature: stream keyval support.
  - Feature: metrics for zone_sync, nginx, processes, slabs, caches.
  - Feature: an ability to disable certain metrics at particular endpoints.


author: Igor Ippolitov <iippolitov@nginx.com> - 22+1.3.1-1.sles15.ngx
changelog:
  - Version update to 1.3.1
  - main.js removed
  - Improvement: Add worker process memory usage stats.
  - Improvement: Change usage of js_include to js_import.


author: Nginx Packaging <nginx-packaging@f5.com> - 27+1.3.4-1.sles15.ngx
changelog:
  - Base version updated to 1.21.6-1 (nginx-plus-r27).
  - Version update to 1.3.4 (git 2175c0da490ce9deafba3bab9815568ba7d88dc9)
  - NGINX Plus API v7 support


author: Konstantin Pavlov <thresh@nginx.com> - 1.2.24-1
changelog:
  - Updated keepalived to 1.2.24.
  - Fixed check scripts error handling, backported from git master:
    - ca955a7c1a6af324428ff04e24be68a180be127f
    - 46121a8b7e4af439c5ad9e4589fb80d414e0eefc
    - f5d9202b1d473823686a934e38d16ead9de84fbd


author: Konstantin Pavlov <thresh@nginx.com> - 1.3.6-1
changelog:
  - Updated keepalived to 1.3.6.
  - Backported the following patches from upstream to fix issues with VRRPv3:
   + 67275d2
   + eb64954
   + bcf2936
   + 0d52573
  -  Updated README for the upgrade path to the new VRRPv3 checksums.


author: Mikhail Isachenkov <im@nginx.com> - 2.2.1-2
changelog:
  - Added '--enable-bfd' option to configure script.
  - Added custom SELinux policy package on RHEL7/8, based on Fedora sources.


author: Andrei Belov <defan@nginx.com> - 1.11.10-3.sles15.ngx
changelog:
  - Bugfix: upstream response time might be calculated incorrectly if a client
    closed a connection before the upstream response headers were received.


author: Andrei Belov <defan@nginx.com> - 1.11.10-4.sles15.ngx
changelog:
  - Security: a specially crafted request might result in an integer overflow
    and incorrect processing of ranges in the range filter, potentially
    resulting in sensitive information leak (CVE-2017-7529).


author: Andrei Belov <defan@nginx.com> - 1.13.4-1.sles15.ngx
changelog:
  - Based on nginx/1.13.4 mainline version.
  - Feature: new REST API for accessing various status information,
    configuring upstream server groups on-the-fly, and managing key-value
    pairs.
    Swagger specification and UI is bundled in the nginx-plus packages for
    easy try-out.
  - Feature: ngx_http_keyval_module, used to create variables based on
    key-value pairs dynamically managed via the REST API.
  - Feature: ngx_http_mirror_module, implements mirroring of original requests
    by creating background mirror subrequests and ignoring their responses.
  - Feature: the "add_trailer" directive (support for HTTP trailers).
    Thanks to Piotr Sikora.
  - Feature: the "worker_shutdown_timeout" directive.
  - Change: sticky cookie now includes the "max-age" attribute when the
    "expires" option is set.
  - Feature: the "header" parameter of the "sticky learn" directive.
  - Feature: the "http_429" parameter of the "proxy_next_upstream",
    "fastcgi_next_upstream", "scgi_next_upstream", and "uwsgi_next_upstream"
    directives.
    Thanks to Piotr Sikora.
  - Feature: the "rcvbuf" and "sndbuf" parameters of the "listen" directives
    of the mail proxy and stream modules.
  - Change: SSL renegotiation is now allowed on backend connections.
  - Feature: initial support for TLS 1.3.


author: Andrei Belov <defan@nginx.com> - 1.13.7-1.sles15.ngx
changelog:
  - Based on nginx/1.13.7 mainline version.
  - Feature: refactored status dashboard (v2) that uses the REST API instead
    of older status and upstream_conf interfaces was added to packages as
    dashboard.html.
    Legacy dashboard (v1) is still available as status.html.
    Please note that older status and upstream_conf interfaces, as well as
    legacy dashboard, are going to be removed in NGINX Plus R16.
  - Feature: dynamic key-value pairs support added to the stream module.
    API version has changed to 2.
  - Feature: the "auth_jwt_header_set" and "auth_jwt_claim_set" directives can
    now handle multiple values, providing complex JWT claims support.
  - Feature: a number of additional cryptographic algorithms introduced in JWT
    authorization module.
  - Feature: upstream servers configured with the "resolve" parameter are now
    being pre-resolved on configuration reload.
  - Feature: the "drain" parameter of the upstream "server" directive can now
    be specified in configuration.
  - Feature: the $ssl_client_escaped_cert variable.
  - Bugfix: Swagger UI did not work with custom (non-standard) ports in URLs.


author: Andrei Belov <defan@nginx.com> - 15-1.sles15.ngx
changelog:
  - Based on nginx/1.13.10 mainline version.
  - Feature: the ngx_http_grpc_module, providing gRPC proxy support.
  - Feature: HTTP/2 server push support; the "http2_push" and
    "http2_push_preload" directives.
  - Feature: the ngx_stream_zone_sync_module, providing shared zones
    synchronization between NGINX Plus nodes, currently supported for sticky
    sessions.
  - Feature: the "escape=none" parameter of the "log_format" directive, used
    to completely disable any escaping in access log.
  - Feature: the ngx_stream_ssl_preread_module can now extract list of
    protocols advertised by the client through ALPN (the
    $ssl_preread_alpn_protocols variable).
  - Change: it is no longer required to run nginx under superuser when using
    the "proxy_bind" directive with the "transparent" parameter on Linux, as
    worker processes now inherit the CAP_NET_RAW capability from the master
    process.
  - Feature: the "auth_jwt_leeway" directive, used to configure a leeway to
    account for clock skew when verifying "exp" and "nbf" claims, as per RFC
    7519.
  - Feature: the $upstream_queue_time variable.
  - Feature: status dashboard (v2) updated.


author: Andrei Belov <defan@nginx.com> - 15-2.sles15.ngx
changelog:
  - Bugfix: dynamic modules compatibility between nginx-plus-15_1 and
    nginx/FOSS 1.13.10 was broken.
  - Bugfix: in status dashboard (v2).


author: Andrei Belov <defan@nginx.com> - 16-1.sles15.ngx
changelog:
  - Based on nginx/1.15.2 mainline version.
  - Change: IMPORTANT: the status and upstream_conf modules deprecated since
    NGINX Plus R13 were finally removed in favor to the API module.
    Legacy status dashboard was also removed from packages.
  - Feature: shared zones synchronization extended to support keyval and
    limit_req modules.
  - Feature: key-value pairs can now be expired after configured timeout.
  - Feature: random with two choices load balancing algorithm.
  - Feature: UDP load balancing extended to support multiple incoming
    datagrams from a client within a single session, thus allowing to
    proxy/load balance of more complex applications.
  - Feature: the "proxy_protocol" parameter of the "listen" directive now
    supports the PROXY protocol version 2.
  - Feature: the $ssl_preread_protocol variable in the
    ngx_stream_ssl_preread_module.


author: Andrei Belov <defan@nginx.com> - 16-2.sles15.ngx
changelog:
  - Bugfix: in the ngx_http_v2_module.
  - Bugfix: in the ngx_http_grpc_module.
  - Bugfix: in the ngx_http_mp4_module.
  - Bugfix: in the ngx_http_hls_module.


author: Andrei Belov <defan@nginx.com> - 17-1.sles15.ngx
changelog:
  - Feature: the "ssl_early_data" directive used to enable TLS v1.3 0-RTT
    data.
    The "$ssl_early_data" variable introduced to protect against replay
    attacks at the application layer.
  - Feature: the "delay" parameter of the "limit_req" directive.
  - Feature: the "auth_jwt_key_request" directive used to retrieve JWK file
    from a subrequest.
  - Feature: the "Ed25519" and "Ed448" cryptographic algorithms introduced in
    JWT authorization module.
  - Feature: the "proxy_socket_keepalive", "fastcgi_socket_keepalive",
    "grpc_socket_keepalive", "memcached_socket_keepalive",
    "scgi_socket_keepalive", and "uwsgi_socket_keepalive" directives.
  - Feature: the "keepalive_timeout" and "keepalive_requests" directives in
    the "upstream" block.
  - Feature: the "proxy_requests" directive in stream module.
  - Bugfix: in the $upstream_connect_time, $upstream_header_time,
    $upstream_queue_time, $upstream_response_time variables.
  - Change: the logging level of the "no suitable key share" and "no suitable
    signature algorithm" SSL errors has been lowered from "crit" to "info".


author: Andrei Belov <defan@nginx.com> - 18-1.sles15.ngx
changelog:
  - Feature: variables support in the "ssl_certificate" and
    "ssl_certificate_key" directives.
  - Feature: loading of SSL certificates and secret keys from variables.
  - Feature: active health checks extended with additional logic of verifying
    arbitrary variables (the "require" parameter of the "match" directive).
  - Feature: clustering enhancement - a single zone_sync configuration can now
    be used for all instances in a cluster with the help of wildcard support
    in the "listen" directive.
  - Change: when using a hostname in the "listen" directive nginx now creates
    listening sockets for all addresses the hostname resolves to (previously,
    only the first address was used).
  - Feature: port ranges in the "listen" directive.
  - Feature: in stream proxy, added an ability to explicitly close existing
    connections to the particular upstream server after it was removed from
    the group due to health check failure, API call, or re-resolve action (the
    "proxy_session_drop" directive).
  - Feature: the $upstream_bytes_sent variable.


author: Konstantin Pavlov <thresh@nginx.com> - 18-2.sles15.ngx
changelog:
  - Security: when using HTTP/2 a client might cause excessive memory
    consumption and CPU usage (CVE-2019-9511, CVE-2019-9513, CVE-2019-9516).


author: Andrei Belov <defan@nginx.com> - 19-1.sles15.ngx
changelog:
  - Feature: metrics provided by the "status_zone" directive can be collected
    per location.
  - Feature: added a set of metrics related to DNS resolver functionality (the
    "status_zone" parameter of the "resolver" directive).
  - Feature: the "limit_req_dry_run" directive provides a way of testing
    request limiting configuration without actually blocking excessive
    requests.
  - Feature: key-value storage now has optimized mode for storing IP addresses
    in CIDR notation (the "type" parameter of the "keyval_zone" directive).
  - Feature: each key-value pair can now have its own custom expiration timer,
    either set at creation time for new entry, or modified for existing entry.
  - Feature: variables support in the "limit_rate" and "limit_rate_after"
    directives.
  - Feature: variables support in the "proxy_upload_rate" and
    "proxy_download_rate" directives in the stream module.
  - Feature: updated status dashboard with new visualizations for per-location
    statistic, resolver metrics, and zone sync status.


author: Andrei Belov <defan@nginx.com> - 20-1.sles15.ngx
changelog:
  - Feature: key-value storage: support for matching a key based on a
    substring (the "type" parameter of the "keyval_zone" directive was
    extended with the "prefix" option).
  - Feature: DNS resolvers can now be specified in upstream context.
  - Feature: rate limiting: the $limit_req_status variable keeps the result of
    limiting a request processing rate. Corresponding metrics are available
    through the "/http/limit_reqs/" endpoint in the API module.
  - Feature: connection limiting: the "limit_conn_dry_run" directive. The
    $limit_conn_status variable keeps the result of limiting a number of
    connections. Correponding metrics are available through the
    "/http/limit_conns/" endpoint in the API module.
  - Feature: the $proxy_protocol_server_addr and $proxy_protocol_server_port
    variables.


author: Andrei Belov <defan@nginx.com> - 21-1.sles15.ngx
changelog:
  - Based on nginx/1.17.9 mainline version.
  - Feature: The grpc_pass directive can now contain variables.


author: Andrei Belov <defan@nginx.com> - 21-1.sles15.ngx
changelog:
  - based on nginx/1.17.9 mainline version.
  - Feature: the grpc_pass directive can now contain variables.


author: Alexey Senin <asenin@nginx.com> - 22-1.sles15.ngx
changelog:
  - based on nginx/1.19.0 mainline version.
  - Feature: client certificate validation with OCSP
  - Feature: unauthorized requests can now be delayed with the auth delay
    directive.
  - Feature: updated status dashboard with new visualizations of limit conn
    and limit req statistics.


author: Igor Ippolitov <iippolitov@nginx.com> - 23-1.sles15.ngx
changelog:
  - based on nginx/1.19.5 mainline version.
  - Feature: the -e switch.
  - Feature: the same source files can now be specified in different modules
    while building addon modules.
  - Bugfix: SSL shutdown did not work when lingering close was used.
  - Bugfix: "upstream sent frame for closed stream" errors might occur when
    working with gRPC backends.
  - Bugfix: in request body filters internal API.


author: Igor Ippolitov <iippolitov@nginx.com> - 24-1.sles15.ngx
changelog:
  - based on nginx/1.19.10 mainline version.
  - the default value of the "keepalive_requests" directive was changed to
    1000.
  - Feature: the "keepalive_time" directive.
  - Feature: the $connection_time variable.
  - Workaround: "gzip filter failed to use preallocated memory" alerts
    appeared in logs when using zlib-ng.


author: Alexey Senin <asenin@nginx.com> - 25-1.sles15.ngx
changelog:
  - based on nginx/1.21.3 mainline version.
  - JWT authentication: ∗ support for signed and then encrypted Nested JWT
    with the nested parameter of the auth jwt type directive ∗ additional
    conditions for JWT validation can be specified with the auth jwt require
    directive ∗ the $jwt payload variable that returns either enclosed JWS
    token for Nested JWT, or JSON with claims for JWE ∗ multiple sources of
    JSON Web Key Sets can be specified in auth jwt key file and auth jwt key
    request directives ∗ asymmetric RSA-OAEP cryptographic algorithms for JWE
  - API version 7: HTTP status code statistics are now collected per-code, in
    addition to aggregation per-class, for upstreams, server zones, and
    location zones.
  - stream health checks: introduced the persistent parameter of the health
    check directive that enables persistence to mandatory health checks after
    reload.
  - TCP Fast Open support with the fastopen parameter of the listen directive
    in the stream module.
  - mail proxy: ∗ the number of errors before closing the connection can be
    specified with the max errors directive to mitigate against ALPACA attack
    ∗ support for POP3 and IMAP pipelining ∗ the Auth-SSL-Protocol and
    Auth-SSL-Cipher header lines are now passed to the mail proxy
    authentication server
  - Security hardening of HTTP request parsing. NGINX Plus will return an
    error if: ∗ spaces or control characters are found in the request line,
    header names, or the Host request header line ∗ the CONNECT method is used
    ∗ both Content-Length and Transfer-Encoding header lines are present in
    the request
  - request body filters API now permits buffering of the data being
    processed.
  - added support for dynamic SSL certificate loading for http, grpc and uwsgi
    backends.


author: Nginx Packaging <nginx-packaging@f5.com> - 26-1.sles15.ngx
changelog:
  - based on nginx/1.21.5 mainline version.
  - JWT key caching with the auth jwt key cache directive
  - Enhanced ALPN support with the ssl alpn directive for stream, and the
    $ssl_alpn_protocol variable for HTTP and stream
  - The $ssl curve variable that returns the negotiated curve used for SSL
    handshake key exchange process
  - The proxy half close directive for stream that allows closing one side of
    a connection while the data is still transmitted
  - The mp4 start key frame directive in the MP4 module that forces a video to
    always start with a key frame


author: Nginx Packaging <nginx-packaging@f5.com> - 26-2.sles15.ngx
changelog:
  - In HLS (CVE-2022-41743) and MP4 (CVE-2022-41741) modules when processing
    specially crafted video files a memory corruption, or a memory disclosure
    in MP4 module (CVE-2022-41742) could happen.


author: Nginx Packaging <nginx-packaging@f5.com> - 27-1.sles15.ngx
changelog:
  - based on nginx/1.21.6 mainline version.
  - API version 8: SSL statistics for each HTTP upstream and stream upstream,
    SSL statistics for each HTTP server zone and stream server zone
  - HTTP health checks: introduced the keepalive time parameter
  - JWT Authentication: error code can be customized with the error parameter
    of the auth jwt require directive


author: Alexey Senin <asenin@nginx.com> - 22+1.1.0-1.sles15.ngx
changelog:
  - Base version updated to 1.19.0-1 (nginx-plus-r22).
  - Change: Based on commit 72c8ee0
    https://github.com/stnoonan/spnego-http-auth-nginx-module/commit/72c8ee04c
    81f929ec84d5a6d126f789b77781a8c


author: Nginx Packaging <nginx-packaging@f5.com> - 27+0.1-2.sles15.ngx
changelog:
  - Base version updated to 1.21.6-1 (nginx-plus-r27).
  - Added a patch to fix FTBFS on OpenSSL 3.0-based systems.


author: Andrei Belov <defan@nginx.com> - 16+3.0-2.sles15.ngx
changelog:
  - Bugfix: unwanted auto-reload of MaxMind database might occur even if there
    was no "auto_reload" parameter specified in configuration.
  - Bugfix: a segmentation fault might occur in a worker process on
    auto-reloading MaxMind database.


author: Igor Ippolitov <iippolitov@nginx.com> - 23+0.10.19-1.sles15.ngx
changelog:
  - Base version updated to 1.19.5-1 (nginx-plus-r23).
  - Lua module updated to 0.10.19
  - Lua stream module added.
  - LuaJIT update to 2.1-20201027


author: Nginx Packaging <nginx-packaging@f5.com> - 27+0.10.21-1.sles15.ngx
changelog:
  - Base version updated to 1.21.6-1 (nginx-plus-r27).
  - LuaJIT updated to 2.1-20220411
  - Lua module updated to 0.10.21
  - Stream lua module updated to 0.0.11
  - Lua lru cache updated to 0.11
  - Lua resty core updated to 0.1.23


author: Nginx Packaging <nginx-packaging@f5.com> - 28+0.10.22-2.sles15.ngx
changelog:
  - Base version updated to 1.23.2-1 (nginx-plus-r28).
  - LuaJIT updated to 2.1-20220915
  - Lua module updated to 0.10.22
  - Lua lru cache updated to 0.13
  - Lua resty core updated to 0.1.24


author: Igor Ippolitov <iippolitov@nginx.com> - 24+0.3.1-1.sles15.ngx
changelog:
  - Base version updated to 1.19.10-1 (nginx-plus-r24).
  - Version bumped to 0.3.1. Minor README changes.


author: Andrei Belov <defan@nginx.com> - 0.1.15-1.sles15.ngx
changelog:
  - Base version updated to 1.13.7-1 (nginx-plus-r14).
  - Change: njs module updated to 0.1.15.
  - Feature: Error, EvalError, InternalError, RangeError, ReferenceError,
    SyntaxError, TypeError, URIError objects.
  - Feature: octal literals support.
  - Feature: file system access fs.readFile(), fs.readFileSync(),
    fs.appendFile(), fs.appendFileSync(), fs.writeFile(), fs.writeFileSync()
    methods.
  - Feature: nginx modules print backtrace on exception.
  - Bugfix: miscellaneous bugs have been fixed.
  - Feature: JSON object.
  - Feature: object level completions in interactive shell.
  - Feature: various configure improvements.
  - Bugfix: miscellaneous bugs have been fixed in the core and interactive
    shell.


author: Andrei Belov <defan@nginx.com> - 15+0.2.0-1.sles15.ngx
changelog:
  - Base version updated to 1.13.10-1 (nginx-plus-r15).
  - Change: njs module updated to 0.2.0.
  - Feature: reporting njs version by CLI.
  - Feature: textual description for type converting exceptions.
  - Feature: setTimeout() and clearTimeout() methods.
  - Feature: Byte string to hex, base64, base64url encodings.
  - Feature: Node.js style crypto methods.
  - Feature: HTTP and stream warn() and error() methods.
  - Feature: HTTP subrequest() method.
  - Feature: HTTP return() method.
  - Bugfix: miscellaneous bugs have been fixed in the core and interactive
    shell.


author: Andrei Belov <defan@nginx.com> - 15+0.2.1-1.sles15.ngx
changelog:
  - Change: njs module updated to 0.2.1.
  - Feature: HTTP request body getter.
  - Improvement: moved njs vm to the main configuration.
  - Improvement: improved logging for js_set and js_content directives.
  - Improvement: setting status code to 500 by default in js_content handler.
  - Improvement: added the debug for the returned status code in js_content.
  - Bugfix: fixed error logging in js_include.
  - Feature: added array length setter.
  - Improvement: public header cleanup. njscript.h is renamed to njs.h.
  - Bugfix: fixed crypto update() method after digest() is called.
  - Bugfix: fixed crypto.createHmac() for keys with size >= alg size and < 64.
  - Bugfix: fixed JSON.stringify() for arrays with empty cells.
  - Bugfix: fixed exception type for unsupported types in JSON.stringify().
  - Bugfix: fixed handling of undefined arguments of functions.
  - Bugfix: fixed handling of missing arg of
    Object.getOwnPropertyDescriptor().
  - Bugfix: fixed handling of properties in Object.getOwnPropertyDescriptor().
  - Bugfix: fixed the writeable flag of Array.length property.
  - Bugfix: fixed return value type of clearTimeout().
  - Bugfix: fixed njs_vm_external_bind().
  - Bugfix: miscellaneous additional bugs have been fixed.


author: Andrei Belov <defan@nginx.com> - 16+0.2.3-1.sles15.ngx
changelog:
  - Base version updated to 1.15.2-1 (nginx-plus-r16).
  - Change: njs module updated to 0.2.3.
  - Bugfix: making a subrequest from a Reply object caused a segmentation
    fault.
  - Bugfix: getting the parent property of the main Request object caused a
    segmentation fault.
  - Feature: added the pretty string representation for values.
  - Feature: correctly printing floating point numbers.
  - Feature: correctly parsing floating point numbers.
  - Feature: String.bytesFrom() method (decoding hex, base64, base64url into a
    byte string).
  - Feature: String.padStart() and String.padEnd() methods.
  - Feature: added support of binary literals.
  - Improvement: added information about illegal token in number parsing.
  - Improvement: allowed uppercased O in octal literal values.
  - Improvement: added support for multiple arguments in console.log().
  - Bugfix: fixed applying call() to methods of external values.
  - Bugfix: fixed addition operator applied to an object.
  - Bugfix: fixed exception handling in njs_vm_value_to_ext_string().
  - Bugfix: fixed Number() with boolean, null and undefined arguments.
  - Bugfix: fixed error handling of setting non-numeric Array.length.
  - Bugfix: fixed autocompletion for global objects.
  - Bugfix: miscellaneous additional bugs have been fixed.
  - Change: merged HTTP Response and Reply into Request.
    New members of Request:
    - req.status (res.status)
    - req.parent (reply.parent)
    - req.requestBody (req.body)
    - req.responseBody (reply.body)
    - req.headersIn (req.headers)
    - req.headersOut (res.headers)
    - req.sendHeader() (res.sendHeader())
    - req.send() (res.send())
    - req.finish() (res.finish())
    - req.return() (res.return())
    Deprecated members of Request:
    - req.body (use req.requestBody or req.responseBody)
    - req.headers (use req.headersIn or req.headersOut)
    - req.response
    The deprecated properties will be removed in the following releases.
  - Feature: HTTP internalRedirect() method.
  - Bugfix: fixed heap-buffer-overflow in crypto.createHmac().


author: Andrei Belov <defan@nginx.com> - 16+0.2.4-1.sles15.ngx
changelog:
  - Change: njs module updated to 0.2.4.
  - Change: stream module handlers are refactored.
    New methods and properties:
    s.on(), s.off(), s.allow(), s.done(), s.decline(), s.deny().
    Removed properties of Stream object:
    s.OK, s.ABORT, s.AGAIN, s.DECLINED, s.ERROR (replaced with s.allow(),
    s.done([code]), s.deny()).
    s.buffer (for reading replaced with data argument of the corresponding
    callback, for writing use s.send()).
    s.fromUpstream (replaced with a callback for a corresponding event).
    s.eof (replaced with flags.last).
  - Feature: added Function.prototype.length.
  - Feature: introduced sandboxing mode.
  - Improvement: added exception strings where appropriate.
  - Improvement: improved wording for primitive type conversion exception.
  - Bugfix: throwing TypeError for attempts to change frozen properties.
  - Bugfix: fixed Object.defineProperty() for existing properties.
  - Bugfix: respecting the enumerable attribute while iterating by for in.
  - Bugfix: respecting writable attribute for property handlers.
  - Bugfix: fixed exception handling in arguments of a function.
  - Bugfix: fixed Object.prototype.toString for different value types.
  - Bugfix: fixed Object() constructor for object types arguments.
  - Bugfix: fixed comparison of objects and strings.
  - Bugfix: fixed String.slice() for undefined arguments.
  - Bugfix: miscellaneous additional bugs have been fixed.


author: Andrei Belov <defan@nginx.com> - 16+0.2.5-1.sles15.ngx
changelog:
  - Change: njs module updated to 0.2.5.
  - Bugfix: fixed counting pending events in stream module.
  - Bugfix: fixed s.off() in stream module.
  - Bugfix: fixed processing of data chunks in js_filter in stream module.
  - Bugfix: fixed http status and contentType getter in http module.
  - Bugfix: fixed http response and parent getters in http module.
  - Feature: arguments object support.
  - Feature: non-integer fractions support.
  - Improvement: handling non-array values in Array.prototype.slice().
  - Bugfix: fixed Array.prototype.length setter.
  - Bugfix: fixed njs_array_alloc() for length > 2**31.
  - Bugfix: handling int overflow in njs_array_alloc() on 32-bit archs.
  - Bugfix: fixed code size mismatch error message.
  - Bugfix: fixed delete operator in a loop.
  - Bugfix: fixed Object.getOwnPropertyDescriptor() for complex object
    (inherited from Array and string values).
  - Bugfix: fixed Object.prototype.hasOwnProperty() for non-object properties.
  - Bugfix: miscellaneous additional bugs have been fixed.


author: Andrei Belov <defan@nginx.com> - 16+0.2.6-1.sles15.ngx
changelog:
  - Change: njs module updated to 0.2.6.
  - Feature: making built-in prototypes mutable.
  - Feature: making global object mutable.
  - Feature: console.time() and console.timeEnd() methods.
  - Feature: allowing variables and functions to be redeclared.
  - Feature: extending Object.defineProperty() spec conformance.
  - Feature: introduced quiet mode for CLI to handle simple expressions from
    stdin.
  - Feature: introduced compact form of backtraces to handle stack overflows.
  - Improvement: improved wording for various exceptions.
  - Bugfix: fixed closure values handling.
  - Bugfix: fixed equality operator for various value types.
  - Bugfix: fixed handling of "this" keyword in various scopes.
  - Bugfix: fixed handling non-object values in Object.keys().
  - Bugfix: fixed parsing of throw statement inside if statement.
  - Bugfix: fixed parsing of newline after throw statement.
  - Bugfix: fixed parsing of statements in if statement without newline.
  - Bugfix: fixed size uint32_t overflow in njs_array_expand().
  - Bugfix: fixed typeof operator for object_value type.
  - Bugfix: miscellaneous additional bugs have been fixed.


author: Andrei Belov <defan@nginx.com> - 17+0.2.7-1.sles15.ngx
changelog:
  - Change: njs module updated to 0.2.7.
  - Feature: rest parameters syntax (destructuring is not supported).
  - Feature: added Object.entries() method.
  - Feature: added Object.values() method.
  - Improvement: code generator refactored and simplified.
  - Bugfix: fixed automatic semicolon insertion.
  - Bugfix: fixed assignment expression from compound assignment.
  - Bugfix: fixed comparison of Byte and UTF8 strings.
  - Bugfix: fixed type of iteration variable in for-in with array values.
  - Bugfix: fixed building on paltforms without librt.
  - Bugfix: miscellaneous additional bugs have been fixed.


author: Andrei Belov <defan@nginx.com> - 17+0.2.8-1.sles15.ngx
changelog:
  - Change: njs module updated to 0.2.8.
  - Change: properties of HTTP request deprecarted in 0.2.2 are removed.
  - Feature: added support for delete operation in r.headersOut.
  - Feature: added support for setting nginx variables.
  - Bugfix: fixed r.subrequest() for empty body value.
  - Improvement: setting special response headers in r.headersOut.
  - Feature: added labels support.
  - Feature: added setImmediate() method.
  - Feature: added support for shorthand property names for Object literals.
  - Bugfix: fixed Function.prototype.bind().
  - Bugfix: fixed parsing of string literals containing newline characters.
  - Bugfix: fixed line number in reporting variable reference errors.
  - Bugfix: fixed creation of long UTF8 strings.
  - Bugfix: fixed String.prototype.split() for unicode strings.
  - Bugfix: fixed heap-buffer-overflow in String.prototype.split().
  - Bugfix: fixed Array.prototype.fill().
  - Improvement: code related to function invocation is refactored.
  - Improvement: code related to variables is refactored.
  - Improvement: parser is refactored.
  - Improvement: reporting filenames in exceptions.


author: Andrei Belov <defan@nginx.com> - 17+0.3.0-1.sles15.ngx
changelog:
  - Change: njs module updated to 0.3.0.
  - Feature: added js_path directive.
  - Change: returning undefined value instead of empty strings for absent
    properties in the following objects: r.args, r.headersIn, r.headersOut,
    r.variables, s.variables.
  - Change: returning undefined value instead of throwing an exception for
    r.requestBody when request body is unavailable.
  - Bugfix: fixed crash while iterating over r.args when a value is absent in
    a key-value pair.
  - Feature: added initial ES6 modules support. Default import and default
    export statements are supported.
  - Feature: added Object.prototype.propertyIsEnumerable().
  - Feature: reporting file name and function name in disassembler output.
  - Bugfix: fixed function redeclarations in interactive shell.
  - Bugfix: fixed RegExp literals parsing.
  - Bugfix: fixed setting length of UTF8 string in fs.readFileSync().
  - Bugfix: fixed nxt_file_dirname() for paths with no dir component.


author: Andrei Belov <defan@nginx.com> - 18+0.3.1-1.sles15.ngx
changelog:
  - Change: njs module updated to 0.3.1.
  - Feature: added arrow functions support.
  - Feature: added Object.getOwnPropertyNames().
  - Feature: added Object.getOwnPropertyDescriptors().
  - Feature: making __proto__ accessor descriptor of Object instances mutable.
  - Feature: added shebang support in CLI.
  - Feature: added support for module mode execution in CLI. In module mode
    global this is unavailable.
  - Bugfix: fixed editline detection.
  - Bugfix: fixed Function.prototype.bind().
  - Bugfix: fixed checking of duplication of parameters for functions.
  - Bugfix: fixed function declaration with the same name as a variable.
  - Improvement: code related to parsing of objects, variables and
  - Improvement: console.log() improved for outputting large values.
  - Improvement: console.log() improved for outputting strings in a compliant
    way (without escaping and quotes).
  - Improvement: using ES6 version of ToInt32(), ToUint32(), ToLength().


author: Andrei Belov <defan@nginx.com> - 18+0.3.2-1.sles15.ngx
changelog:
  - Change: njs module updated to 0.3.2.
  - Feature: added support for template literals.
  - Feature: executing command from command line arguments.
  - Feature: added support for RegExp "groups" object (ES9).
  - Feature: added block scoped function definitions support.
  - Feature: added support for building with GNU Readline library.
  - Feature: made configurable "length", "name", and most of built-in methods.
  - Feature: made all constructor properties configurable.
  - Bugfix: fixed Regexp.prototype.exec() for Unicode-only regexps.
  - Bugfix: fixed njs_vm_value_dump() for empty string values.
  - Bugfix: fixed RegExp constructor for regexp value arguments.
  - Bugfix: fixed walking over prototypes chain during iteration over an
    object.
  - Bugfix: fixed overflow in Array.prototype.concat().
  - Bugfix: fixed length calculation for UTF-8 string with escape characters.
  - Bugfix: fixed parsing surrogate pair presents as UTF-16 escape sequences.
  - Bugfix: fixed processing asterisk quantifier for String.prototype.match().
  - Bugfix: fixed Date() constructor with one argument.
  - Bugfix: fixed arrays expansion.
  - Bugfix: fixed heap-buffer-overflow in String.prototype.replace().
  - Bugfix: fixed heap-buffer-overflow in String.prototype.lastIndexOf().
  - Bugfix: fixed regexp literals parsing with escaped backslash and backslash
    in square brackets.
  - Bugfix: fixed regexp literals with lone closing brackets.
  - Bugfix: fixed uninitialized-memory-access in Object.defineProperties().
  - Bugfix: fixed processing "*" quantifier for String.prototype.replace().
  - Bugfix: fixed Array.prototype.slice() for UTF8-invalid byte strings.
  - Bugfix: fixed String.prototype.split() for UTF8-invalid byte strings.
  - Bugfix: fixed handling of empty block statements.


author: Andrei Belov <defan@nginx.com> - 18+0.3.3-1.sles15.ngx
changelog:
  - Change: njs module updated to 0.3.3.
  - Improvement: getting of special response headers in headersOut.
  - Improvement: working with unknown methods in subrequest().
  - Improvement: added support for null as a second argument of
    r.subrequest().
  - Bugfix: fixed processing empty output chain in stream body filter.
  - Feature: added runtime support for property getter/setter.
  - Feature: added "process" global object.
  - Feature: writable most of built-in properties and methods.
  - Feature: added generic implementation of Array.prototype.fill().
  - Bugfix: fixed integer-overflow in String.prototype.concat().
  - Bugfix: fixed setting of object properties.
  - Bugfix: fixed Array.prototype.toString().
  - Bugfix: fixed Date.prototype.toJSON().
  - Bugfix: fixed overwriting "constructor" property of built-in prototypes.
  - Bugfix: fixed processing of invalid surrogate pairs in strings.
  - Bugfix: fixed processing of invalid surrogate pairs in JSON strings.
  - Bugfix: fixed heap-buffer-overflow in toUpperCase() and toLowerCase().
  - Bugfix: fixed escaping lone closing square brackets in RegExp()
    constructor.
  - Bugfix: fixed String.prototype.toBytes() for ASCII strings.
  - Bugfix: fixed handling zero byte characters inside RegExp pattern strings.
  - Bugfix: fixed String.prototype.toBytes() for ASCII strings.
  - Bugfix: fixed truth value of JSON numbers in JSON.parse().
  - Bugfix: fixed use-of-uninitialized-value in njs_string_replace_join().
  - Bugfix: fixed parseInt('-0').


author: Andrei Belov <defan@nginx.com> - 18+0.3.4-1.sles15.ngx
changelog:
  - Change: njs module updated to 0.3.4.
  - Feature: added Object shorthand methods and computed property names.
  - Feature: added getter/setter literal support.
  - Feature: added fs.renameSync().
  - Feature: added String.prototype.trimStart() and
    String.prototype.trimEnd().
  - Improvement: added memory-sanitizer support.
  - Improvement: Unicode case tables updated to version 12.1.
  - Improvement: added UTF8 validation for string literals.
  - Bugfix: fixed reading files with zero size in fs.readFileSync().
  - Bugfix: extended the list of space separators in String.prototype.trim().
  - Bugfix: fixed using of uninitialized value in String.prototype.padStart().
  - Bugfix: fixed String.prototype.replace() for '$0' and '$&' replacement
    string.
  - Bugfix: fixed String.prototype.replace() for byte strings with regex
    argument.
  - Bugfix: fixed global match in String.prototype.replace() with regexp
    argument.
  - Bugfix: fixed Array.prototype.slice() for primitive types.
  - Bugfix: fixed heap-buffer-overflow while importing module.
  - Bugfix: fixed UTF-8 character escaping.
  - Bugfix: fixed Object.values() and Object.entries() for shared objects.
  - Bugfix: fixed uninitialized memory access in String.prototype.match().
  - Bugfix: fixed String.prototype.match() for byte strings with regex
    argument.
  - Bugfix: fixed Array.prototype.lastIndexOf() with undefined arguments.
  - Bugfix: fixed String.prototype.substring() with empty substring.
  - Bugfix: fixed invalid memory access in String.prototype.substring().
  - Bugfix: fixed String.fromCharCode() for code points > 65535 and NaN.
  - Bugfix: fixed String.prototype.toLowerCase() and
    String.prototype.toUpperCase().
  - Bugfix: fixed Error() constructor with no arguments.
  - Bugfix: fixed "in" operator for values with accessor descriptors.
  - Bugfix: fixed Object.defineProperty() for non-boolean descriptor props.
  - Bugfix: fixed Error.prototype.toString() with UTF8 string properties.
  - Bugfix: fixed Error.prototype.toString() with non-string values for "name"
    and "message".


author: Andrei Belov <defan@nginx.com> - 18+0.3.5-1.sles15.ngx
changelog:
  - Change: njs module updated to 0.3.4.
  - Bugfix: fixed module importing using require(). The bug was introduced in
    0.3.4.
  - Bugfix: fixed [[SetPrototypeOf]].


author: Andrei Belov <defan@nginx.com> - 19+0.3.6-1.sles15.ngx
changelog:
  - Change: njs module updated to 0.3.6.
  - Improvement: getting special headers from r.headersIn.
  - Feature: added new Function() support.
  - Feature: added Number.prototype.toFixed().
  - Feature: added Number.prototype.toPrecision().
  - Feature: added Number.prototype.toExponential().
  - Improvement: making "prototype" property of function instances writable.
  - Improvement: limiting recursion depth while compiling.
  - Improvement: moving global functions to the global object.
  - Bugfix: fixed prototype mutation for object literals.
  - Bugfix: fixed heap-buffer-overflow while parsing regexp literals.
  - Bugfix: fixed integer-overflow while parsing exponent of number literals.
  - Bugfix: fixed parseFloat().
  - Bugfix: fixed Array.prototype functions according to the specification.
    The following functions were fixed: every, includes, indexOf, filter,
    find, findIndex, forEach, lastIndexOf, map, pop, push, reduce,
    reduceRight, shift, some, unshift.
  - Bugfix: fixed handing of accessor descriptors in Object.freeze().
  - Bugfix: fixed String.prototype.replace() when first argument is not a
    string.
  - Bugfix: fixed stack-use-after-scope in Array.prototype.map().
  - Bugfix: Date.prototype.toUTCString() format was aligned to ES9.
  - Bugfix: fixed buffer overflow in Number.prototype.toString(radix).
  - Bugfix: fixed Regexp.prototype.test() for regexps with backreferences.
  - Bugfix: fixed Array.prototype.map() for objects with nonexistent values.
  - Bugfix: fixed Array.prototype.pop() and shift() for sparse objects.
  - Bugfix: fixed Date.UTC() according to the specification.
  - Bugfix: fixed Date() constructor according to the specification.
  - Bugfix: fixed type of Date.prototype.
  - Bugfix: fixed Date.prototype.setTime().
  - Bugfix: fixed default number of arguments expected by built-in functions.
  - Bugfix: fixed "caller" and "arguments" properties of a function instance.


author: Andrei Belov <defan@nginx.com> - 19+0.3.7-1.sles15.ngx
changelog:
  - Change: njs module updated to 0.3.7.
  - Improvement: refactored iteration over external objects.
  - Feature: added Object.assign().
  - Feature: added Array.prototype.copyWithin().
  - Feature: added support for labels in console.time().
  - Change: removed console.help() from CLI.
  - Improvement: moved constructors and top-level objects to global object.
  - Improvement: arguments validation for configure script.
  - Improvement: refactored JSON methods.
  - Bugfix: fixed heap-buffer-overflow in njs_array_reverse_iterator()
    function. The following functions were affected:
    Array.prototype.lastIndexOf(), Array.prototype.reduceRight().
  - Bugfix: fixed [[Prototype]] slot of NativeErrors.
  - Bugfix: fixed NativeError.prototype.message properties.
  - Bugfix: added conversion of "this" value to object in Array.prototype
    functions.
  - Bugfix: fixed iterator for Array.prototype.find() and
    Array.prototype.findIndex() functions.
  - Bugfix: fixed Array.prototype.includes() and Array.prototype.join() with
    "undefined" argument.
  - Bugfix: fixed "constructor" property of "Hash" and "Hmac" objects.
  - Bugfix: fixed "__proto__" property of getters and setters.
  - Bugfix: fixed "Date" object string formatting.
  - Bugfix: fixed handling of NaN and -0 arguments in Math.min() and
    Math.max().
  - Bugfix: fixed Math.round() according to the specification.
  - Bugfix: reimplemented "bound" functions according to the specification.


author: Andrei Belov <defan@nginx.com> - 20+0.3.8-1.sles15.ngx
changelog:
  - Change: njs module updated to 0.3.8.
  - Feature: added Promise support for r.subrequest(). If callback is not
    provided r.subrequest() returns an ordinary Promise object that resolves
    to subrequest response object.
  - Change: r.parent property handler now returns "undefined" instead of
    throwing exception if parent object is not available.
  - Feature: added Promise support. Implemented according to the specification
    without: Promise.all(), Promise.allSettled(), Promise.race().
  - Feature: added initial Typed-arrays support.
  - Feature: added ArrayBuffer support.
  - Feature: added initial Symbol support.
  - Feature: added externals supopor for JSON.stringify().
  - Feature: added Object.is().
  - Feature: added Object.setPrototypeOf().
  - Feature: introduced nullish coalescing operator.
  - Bugfix: fixed Object.getPrototypeOf() according to the specification.
  - Bugfix: fixed Object.prototype.valueOf() according to the specification.
  - Bugfix: fixed JSON.stringify() with unprintable values and replacer
    function.
  - Bugfix: fixed operator "in" according to the specification.
  - Bugfix: fixed Object.defineProperties() according to the specification.
  - Bugfix: fixed Object.create() according to the specification.
  - Bugfix: fixed Number.prototype.toString(radix) when fast-math is enabled.
  - Bugfix: fixed RegExp() instance properties.
  - Bugfix: fixed import segfault.


author: Andrei Belov <defan@nginx.com> - 21+0.3.9-1.sles15.ngx
changelog:
  - Base version updated to 1.17.9-1 (nginx-plus-r21).
  - Feature: added detached mode for r.subrequest(). Responses to detached
    subrequests are ignored. Unlike ordinary subrequests, a detached
    subrequest can be created inside a variable handler.
  - Feature: Feature: added promises API for "fs" module. Thanks to Artem S.
    Povalyukhin.
  - Feature: extended "fs" module. Added access(), symlink(), unlink(),
    realpath() and friends. Thanks to Artem S. Povalyukhin.
  - Improvement: introduced memory-efficient ordinary arrays.
  - Improvement: lexer refactoring.
  - Bugfix: fixed matching of native functions in backtraces.
  - Bugfix: fixed callback invocations in "fs" module. Thanks to Artem S.
    Povalyukhin.
  - Bugfix: fixed Object.getOwnPropertySymbols().
  - Bugfix: fixed heap-buffer-overflow in njs_json_append_string().
  - Bugfix: fixed encodeURI() and decodeURI() according to the specification.
  - Bugfix: fixed Number.prototype.toPrecision().
  - Bugfix: fixed handling of space argument in JSON.stringify().
  - Bugfix: fixed JSON.stringify() with Number() and String() objects.
  - Bugfix: fixed Unicode Escaping in JSON.stringify() according to
    specification.
  - Bugfix: fixed non-native module importing. Thanks to 洪志道 (Hong Zhi Dao).
  - Bugfix: fixed non-native module importing. Thanks to 洪志道 (Hong Zhi Dao).
  - Bugfix: fixed njs.dump() with the Date() instance in a container.


author: Igor Ippolitov <iippolitov@nginx.com> - 21+0.4.0-1.sles15.ngx
changelog:
  - Change: njs module updated to 0.4.0.
  - Feature: added support for multi-value headers in r.headersOut.
  - Feature: added js_import directive for http and stream.
  - Improvement: iteration over r.headersOut with special headers.
  - Improvement: iteration over r.headersOut with duplicates.
  - Change: r.responseBody property handler now returns "undefined" instead of
    throwing an exception if response body is not available.
  - Feature: added script arguments support in CLI.
  - Feature: converting externals values to native js objects.
  - Bugfix: fixed NULL-pointer dereference in "__proto__" property handler.
  - Bugfix: fixed handling of no-newline at the end of the script.
  - Bugfix: fixed RegExp() constructor with empty pattern and non-empty flags.
  - Bugfix: fixed String.prototype.replace() when function returns non-string.
  - Bugfix: fixed reading of pseudofiles in "fs".


author: Alexey Senin <asenin@nginx.com> - 22+0.4.1-1.sles15.ngx
changelog:
  - Change: njs module updated to 0.4.1.
  - Feature: added support for multi-value headers in r.headersIn.
  - Feature: introduced raw headers API.
  - Improvement: added TypedScript API description.
  - Bugfix: fixed Array.prototype.slice() for sparse arrays.


author: Alexey Senin <asenin@nginx.com> - 22+0.4.2-1.sles15.ngx
changelog:
  - Feature: added RegExp.prototype[Symbol.replace].
  - Feature: introduced line level backtrace.
  - Feature: added %TypedArray%.prototype.sort().
  - Feature: extended "fs" module. Added mkdir(), readdir(), rmdir() and
    friends. Thanks to Artem S. Povalyukhin.
  - Improvement: parser refactoring.
  - Bugfix: fixed TypedScript API description for HTTP headers.
  - Bugfix: fixed TypedScript API description for NjsByteString type.
  - Bugfix: fixed String.prototype.repeat() according to the specification.
  - Bugfix: fixed parsing of flags for regexp literals.
  - Bugfix: fixed index generation for global objects in generator.
  - Bugfix: fixed String.prototype.replace() according to the specification.
  - Bugfix: fixed %TypedArray%.prototype.copyWithin() with nonzero byte
    offset.
  - Bugfix: fixed Array.prototype.splice() for sparse arrays.
  - Bugfix: fixed Array.prototype.reverse() for sparse arrays.
  - Bugfix: fixed Array.prototype.sort() for sparse arrays.


author: Alexey Senin <asenin@nginx.com> - 22+0.4.3-1.sles15.ngx
changelog:
  - Feature: added Query String module.
  - Feature: improved fs.mkdir() to support recursive directory creation.
    Thanks to Artem S. Povalyukhin.
  - Feature: improved fs.rmdir() to support recursive directory removal.
    Thanks to Artem S. Povalyukhin.
  - Feature: introduced UTF-8 decoder according to WHATWG encoding spec.
  - Feature: added TextEncoder/TextDecoder implementation.
  - Bugfix: fixed parsing return statement without semicolon.
  - Bugfix: fixed njs_number_to_int32() for big-endian platforms.
  - Bugfix: fixed unit test on big-endian platforms.
  - Bugfix: fixed regexp-literals parsing with '=' characters.
  - Bugfix: fixed pre/post increment/decrement in assignment operations.


author: Alexey Senin <asenin@nginx.com> - 22+0.4.4-1.sles15.ngx
changelog:
  - Bugfix: fixed location merge.
  - Bugfix: fixed r.httpVersion for HTTP/2.
  - Feature: added support for numeric separators (ES12).
  - Feature: added remaining methods for %TypedArray%.prototype. The following
    methods were added: every(), filter(), find(), findIndex(), forEach(),
    includes(), indexOf(), lastIndexOf(), map(), reduce(), reduceRight(),
    reverse(), some().
  - Feature: added %TypedArray% remaining methods. The following methods were
    added: from(), of().
  - Feature: added DataView object.
  - Feature: added Buffer object implementation.
  - Feature: added support for ArrayBuffer in TextDecoder.prototype.decode().
  - Feature: added support for Buffer object in "crypto" methods.
  - Feature: added support for Buffer object in "fs" methods.
  - Change: Hash.prototype.digest() and Hmac.prototype.digest() now return a
    Buffer instance instead of a byte string when encoding is not provided.
  - Change: fs.readFile() and friends now return a Buffer instance instead of
    a byte string when encoding is not provided.
  - Bugfix: fixed function "prototype" property handler while setting.
  - Bugfix: fixed function "constructor" property handler while setting.
  - Bugfix: fixed String.prototype.indexOf() for byte strings.
  - Bugfix: fixed RegExpBuiltinExec() with a global flag and byte strings.
  - Bugfix: fixed RegExp.prototype[Symbol.replace] when thereplacement value
    is a function.
  - Bugfix: fixed TextDecoder.prototype.decode() with non-zero TypedArray
    offset.


author: Alexey Senin <asenin@nginx.com> - 23+0.5.0-1.sles15.ngx
changelog:
  - Feature: introduced global "ngx" object. The following methods were added:
    ngx.log(level, msg) The following properties were added: ngx.INFO,
    ngx.WARN, ngx.ERR.
  - Feature: added support for Buffer object where string is expected.
  - Feature: added Buffer version of existing properties. The following
    properties were added: r.requestBuffer (r.requestBody), r.responseBuffer
    (r.responseBody), r.rawVariables (r.variables), s.rawVariables
    (s.variables). The following events were added in stream module: upstream
    (upload), downstream (download).
  - Improvement: added aliases to existing properties. The following
    properties were added: r.requestText (r.requestBody), r.responseText
    (r.responseBody).
  - Improvement: throwing an exception in r.internalRedirect() for a
    subrequest.
  - Bugfix: fixed promise r.subrequest() with error_page redirect.
  - Bugfix: fixed promise events handling.
  - Feature: added TypeScript definitions for built-in modules. Thanks to
    Jakub Jirutka.
  - Feature: tracking unhandled promise rejection.
  - Feature: added initial iterator support. Thanks to Artem S. Povalyukhin.
  - Improvement: TypeScript definitions are refactored. Thanks to Jakub
    Jirutka.
  - Improvement: added forgotten support for Object.prototype.valueOf() in
    Buffer.from().
  - Bugfix: fixed heap-use-after-free in JSON.parse().
  - Bugfix: fixed heap-use-after-free in JSON.stringify().
  - Bugfix: fixed JSON.stringify() for arrays resizable via getters.
  - Bugfix: fixed heap-buffer-overflow for RegExp.prototype[Symbol.replace].
  - Bugfix: fixed returned value for Buffer.prototype.write* functions.
  - Bugfix: fixed querystring.stringify(). Thanks to Artem S. Povalyukhin.
  - Bugfix: fixed the catch handler for Promise.prototype.finally().
  - Bugfix: fixed querystring.parse().


author: Alexey Senin <asenin@nginx.com> - 23+0.5.1-1.sles15.ngx
changelog:
  - Feature: introduced ngx.fetch() method implementing Fetch API. The
    following init options are supported: body, headers, buffer_size (nginx
    specific), max_response_body_size (nginx specific), method. The following
    properties and methods of Response object are implemented: arrayBuffer(),
    bodyUsed, json(), headers, ok, redirect, status, statusText, text(), type,
    url. The following properties and methods of Header object are
    implemented: get(), getAll(), has(). Notable limitations: only the http://
    scheme is supported, redirects are not handled. In collaboration with 洪志道
    (Hong Zhi Dao).
  - Feature: added the "js_header_filter" directive.
  - Bugfix: fixed processing buffered data in body filter in stream module.
  - Bugfix: fixed safe mode bypass in Function constructor.
  - Bugfix: fixed Date.prototype.toISOString() with invalid date values.


author: Alexey Senin <asenin@nginx.com> - 23+0.5.2-1.sles15.ngx
changelog:
  - Feature: added the "js_body_filter" directive.
  - Feature: introduced the "status" property for stream session object.
  - Feature: added njs.on('exit') callback support.
  - Bugfix: fixed property descriptor reuse for not extensible objects. Thanks
    to Artem S. Povalyukhin.
  - Feature: fixed Object.freeze() and friends according to the specification.
    Thanks to Artem S. Povalyukhin.
  - Feature: fixed Function() in CLI mode.
  - Feature: fixed for-in iteration of typed array values. Thanks to Artem S.
    Povalyukhin.


author: Igor Ippolitov <iippolitov@nginx.com> - 23+0.6.0-1.sles15.ngx
changelog:
  - njs module updated to 0.6.0
  - Feature: added let and const declaration support.
  - Feature: added RegExp.prototype[Symbol.split].
  - Feature: added sticky flag support for RegExp.
  - Bugfix: fixed heap-buffer-overflow in String.prototype.lastIndexOf().
  - Bugfix: fixed RegExp.prototype.test() according to the specification.
  - Bugfix: fixed String.prototype.split() according to the specification.
  - Bugfix: fixed use-of-uninitialized-value while tracking rejected promises.
  - Bugfix: fixed njs.dump() for objects with circular references.


author: Igor Ippolitov <iippolitov@nginx.com> - 23+0.6.1-1.sles15.ngx
changelog:
  - njs module updated to 0.6.1
  - Bugfix: fixed RegExpBuiltinExec() with UTF-8 only regexps. The bug was
    introduced in 0.4.2.
  - Bugfix: fixed parsing of export default declaration with non-assignment
    expressions. Thanks to Artem S. Povalyukhin.


author: Igor Ippolitov <iippolitov@nginx.com> - 24+0.5.3-1.sles15.ngx
changelog:
  - Base version updated to 1.19.10-1 (nginx-plus-r24).
  - Feature: Feature: added the "js_var" directive.


author: Alexey Senin <asenin@nginx.com> - 24+0.6.2-1.sles15.ngx
changelog:
  - njs module updated to 0.6.2
  - Bugfix: fixed CPU hog when js_filter is registered in both directions.
  - Feature: introduced AggregateError implementation.
  - Feature: added remaining Promise constructor methods. The following
    methods were added: Promise.all(), Promise.allSettled(), Promise.any(),
    Promise.race().
  - Improvement: removed recursion from code generator.
  - Bugfix: fixed rest parameter parsing without binding identifier.
  - Bugfix: fixed resolve/reject callback for Promise.prototype.finally().
  - Bugfix: fixed %TypedArray%.prototype.join() with detached buffer.
  - Bugfix: fixed memory leak in interactive shell.


author: Alexey Senin <asenin@nginx.com> - 24+0.7.0-1.sles15.ngx
changelog:
  - njs module updated to 0.7.0
  - Feature: added HTTPS support for Fetch API.
  - Feature: added setReturnValue() method for http and stream.
  - Feature: introduced Async/Await implementation.
  - Feature: added WebCrypto API implementation.
  - Bugfix: fixed copying of closures for declared functions. The bug was
    introduced in 0.6.0.
  - Bugfix: fixed unhandled promise rejection in handle events.
  - Bugfix: fixed Response.headers getter in Fetch API.


author: Nginx Packaging <nginx-packaging@f5.com> - 27+0.24.0-1.sles15.ngx
changelog:
  - Base version updated to 1.21.6-1 (nginx-plus-r27).
  - Updated jaeger-cpp to 0.9.0
  - OpenTracing moduled updated to 0.24.0


