BREAKING CHANGES
- continue deprecating use with JRE 8; the main engine and functionality is now only JRE >= 21 compatible
Generic
- Due to changes for JRE 21 on pre-compiled classes added compilation logic to check version and recompile if necessary automatically.
- Fix script generation logic to handle parameter shifting and improve help display conditions
- $path new functions: to_numSpace, from_numSpace
- $path better handling of date conversion using Java (to_isoDate and to_date)
- New "--py" option and "pyoaf" script to run Python scripts with OpenAF extensions
- "ojob -syntax" besides including new oJob functionality has been increased in contents
- New "ojob -i" for ojob assisted argument prompt.
- New $pyExec function to start a Python script in "standalone" mode (as the main process but still connected to OpenAF)
- New logFlush function to ensure when logging is asynchronous it's flushed.
- Improvements on askChoose and askChooseMultiple functions to improve console output formatting and enhance line length handling
- Fix double type handling in map output visualization
- Increase support for oJob* functions to return results to code when using ow.oJob.output or $o
- Improvements to SLON and nLinq language parsing.
- Enhance SQL to NLinq conversion by adding missing support for NOT LIKE condition.
- Bump nLinq with new attachBy, attachNotBy, and attachByEmpty.
- Several security and performance improvements to the internal nwu (http server) functionality
- Fix fo #1255
- Improvements on shell completion generation performance.
- Enhance printTree function to support mono and color options in output formatting (new output modes "btree" and "mtree")
- Enhancements on printTable with focus on value type formatting.
- Optimizations on URLClassLoader management with better loader caching
- Upgraded to Mozilla Rhino 1.8.0
Libs bump
- commons-io, commons-codec, commons-csv, commons-codec, commons-logging, gson, postgresql, Jackson, kotlin, kotlin-stdlib, jetty, jna, semver4j, okio, jsch, dns-java, snmp4j, snmp4j-agent, slf4j
AF
- Function af.fromObj2XML now supports attribute prefixes when converting a JSON object to XML
- New setInteractiveTerminal and unsetInteractiveTerminal functions to manage unix tty settings
- Several improvements to fromJSSLON including YAML detection and parsing
- Add handling for raw string input in fromJSSLON function in openaf.js ("$raw$")
- Fix regex pattern in toYAML function to ensure proper key matching
oPack
- Added support for multiple packages install, update and erase
- Better install, update and erase operation summaries
- New dependency ordering algorithm for installing, updating and erasing packages
- Enhance to preinstall, postinstall, preerase, and posterase to accept arrays of shell commands with new environment variables (OAF_PATH, JAVA_HOME, OAF_HOME, OAF_VERSION, OAF_DIST and OJOB_HOME)
- For preinstall, postinstall, preerase, and posterase javascript text based code the variables OAF_PATH, JAVA_HOME, OAF_HOME, OAF_VERSION, OAF_DIST and OJOB_HOME available on the args map.
- Improved error handling on pre and post code actions.
- New OAF_OPACKS environment variable (comma separated) with file paths or URLs to remote oPack repositories.
ow.oJob
- Improvements to Go "lang" jobs
- Small improvements on embedded shortcut jobs
- #1225
ow.format
- New toNumberSpacing and _fromNumberSpacing functions
- New fromISODate function
- Improvements to the fromTimeAbbreviation function
ow.obj
- New ow.obj.syncMap.forEach for thread-safe forEach
ow.server
- Improved MIME type handling and add support for additional file extensions
- Improve error messages in ow.server.httpd.route
- Improve Mermaid library loading logic to check for file existence before loading
ow.template
- Added markdown code block copy button functionality (feature flag MD_CODECLIP)
- Added support for trigger extras in Markdown to HTML conversion
- Refactor helper and partial management to utilize syncMap for improved performance and consistency
- Added support for forced or automated dark mode on HTML output (flag MD_DARKMODE ("auto", "true" and "false"))
- Dark mode support on nJSMap
- Better UTF-8 support on markdown HTML generation.
- Refactor nJSMap function to handle nested arrays and improve output rendering.
ow.python
- New alone mode letting you start a Python script, as the main process, and embedding OpenAF code on it
- New functions execStandalone
ow.java
- The getLocalJavaPIDs now allows specifying where is the temporary folder
ow.ai
- Support for Google Gemini LLMs
- Support for Anthropic LLMs
ow.metrics
- Improvements on timestamp handling on fromOpenMetrics2Array
HTTPServer
- Enhance error logging in JSResponse to include stack trace and exception class
- New thread handling in nwu with flag HTTPD_THREADS
- Enhance data handling in JSResponse to support multiple data types and improve error logging
SNMP
- Enhance SNMP class to manage transport mapping and add close method for resource cleanup