Releases: OpenAF/openaf
Releases · OpenAF/openaf
20250315
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
20241117
BREAKING CHANGES
- deprecating use with JRE 8; some functionality will still work in JRE8 but recommended to use JRE 21
- ask functions now use stderr*
Generic
- Support for bash and zsh completion (oaf, opack, ojob and oafp)
- load now supports providing the indication of the oPack to use (e.g. @my-opack/my.js)
- merge function updated to improve performance when handling undefined objects
- performance improvements on pForEach
- getEnvsDef now parses SLON as well as JSON
- askChoose improvements to support different terminals
- console type detection improvements
- new $fetch to mimic missing fetch with $rest functionality
- $path new functions: if, at, random, srandom
Flags
- OAF_FLAGS allows for a JSON/SLON map to change flags values
Libs bumps
- commons-cli
- commons-compress
- commons-civ
- commons-io
- commons-logging
- commons-lang3
- dnsjava
- jackson
- kotlin
- postgresql
- jetty upgrade to 12
- jna
- jsch
- okio
- semver4j
AF
- Improvements to fromJSSLON format detection
- Support for colored YAML in toYAML
IO
- new io.zip and io.unzip
- Support lenient in readStreamJSON
ZIP
- Add support for concurrent file system access in ZIP plugin
ow.ojob
- Support 'cyaml' output format
ow.obj
- http: support options.followSslRedirects and options.followRedirects
ow.sec
- new $sec.procMap to process options from a map
ow.server
- improvements to replyFile
ow.net
- new getIP2ASNCache and getIP2ASN functions
- getDNS with new extended data option
ow.ai
- gpt: initial support for tools
- gpt: support for custom headers in openai API wrapper
20240812
Generic
- New Rhino javascript runtime (1.7.15)
- Added functions to programmatically access oafp functionality
- new $path functions: to_toml, from_toml, range, ranges, inc, dec, unset, getc, search_keys, search_values, k2a, geta, sql_format, sort_semver, sort_by_semver, progress, ch, path, opath, to_ms, env, envs, oafp
- New OAF_CONSOLE boolean environment variable to force ansi color rendering in capable terminals (for example when using oafp with pipes)
- New askChooseMultiple and improvements to askChoose with new color format theme options
- New pForEach function for parallel forEach equivalent.
- New askStruct function to make a questionnaire based on a provided map over using other “ask*” functions.
- New filter capability for askChoose and askChooseMultiple
- New byPopularity behaviour for $cache when maxSize is defined
- For non javascript, json and yaml extensions the ‘—sb’ option will generate a oafp shebang addition
- Support for oafp shebang as oafp-sb
- Fixes and performance improvements on printTable
- Improvements to parallel automatic load balancing
- Performances improvements in printTree
Flags
- New SH.prefixLog flag to control if $sh().prefix should use, by default, log or print functions
- New HTTP_DEFAULT_HEADERS flag to control if default headers (e.g. Accept) should be included.
- New HTTP_USE_MEDIA_TYPE flag to control the use of OkHttp media type functionality.
- isJavaArray function to better determine if the Java object provided is an array
- New PATH_CNF flag to allow for the inclusion of custom $path functions
- New ALTERNATIVES.listFilesRecursive feature flag to use the new listFilesRecursive implementation
- New ALTERNATIVES.colorify feature flag to use the new colorify implementation
Libs bumps
- Commons-Cli, Commons-Codec, Commons-Compress, Commons-CSV, Commons-Logging, Commons-IO, Commons-Net
- GSON
- Jetty
- Jackson
- JSCH
- JJWT
- Kotlin
- H2
- PostgreSQL
- SNMP4J
- DNSJava
- SLF4J
oJob
- New native “ojob llm” (https://docs.openaf.io/docs/guides/ojob/llm-shortcut)
- New native “ojob oafp” (https://docs.openaf.io/docs/guides/ojob/oafp-shortcut.html)
- Support for the Swift language
- Improvements to “ojob query”
- New output options “-json” and “-gb64json” (gzip base64 json) if oJob uses ow.oJob.output / “(output)”
IO
- Performance improvements and new mode, permissions and linkName fields to io.listFilesTAR
SSH
- New getSession, isConnected and sendKeepAlive functions
ow.format
- New sqlFormat to beautify SQL statements for different databases
- “string.wordWrap” improvements
- New semVer for semantic versioning handling
ow.obj
- Improvements to rest functions character enconding
- New syncMap for synchronized javascript Map functionality
- New key2array to return the values of filtered keys
- Fix #1017
ow.ch
- Small improvements to server
- New option multifile for type file
ow.ai
- GPT getModels
- Improvements on normalize.withSchema
- New normalize.denormalizeWithSchema to denormalize previously normalized data given a schema
- New gpt.promptImgGen function to support image generation transformation models
- New normalize.softMax and normalize.quantitize
- Improvements to GPT external models API requests
- Support for brainjs with new network types: neuralnetwork, rnntimestep, lstmtimestep, grutimestep, rnn, lstm, gru, feedforward and recurrent
ow.java
- cipher.getCert4String function to obtain a Java certificate object from a string certificate representation (X509)
- parseHSPerf improved to be able to read dumps right after shutdown of the original java process
- withMD as new color theme options for better customization (specially for light and dark terminals)
ow.template
- new helper function oafp
20240318
Generic
- New oafp tool (from https://openaf.io/openaf/oafp)
- Refactor "merge" to better handle arrays and maps
- Improvements on ask and askChoose
- $path: several new custom functions
- Fix SQL query method auto determination when functions are used
- $sql improved to have a configurable sample of records for column type detection
- Fixes to oJobRunFile and $job
- #913
- #920
- new conReset function
- Refactor and fixes to af.fromXML2Obj
- Refactor of sortMapKeys to handle nested maps and arrays
- Fix ansi colors and performance improvements on printTree
- Fixes and improvements on $o/$output
- Fix ignoreNonJson option on the jsonParse function
- Improvements to the isJavaObject function
- Improvement on print buffer stream size
- Remove logback library
- Refactor $$ get and set functions
- Stringify corrected to handle null elements on arrays
- New "splitBySepWithEnc" function
- New af.fromJSSLON function
- Improvements to printChart function to support dec4, hSize and vSize
- Improvements on splitKVBySeperator
- Bump libraries: jackson, slf4j, jsch, jjwt, commons-codec, okio, jetty, postgresql, commons-compress, diff, kotlin and others
- Improvements to color render for printMap
- Support for oafp opack libraries extensions
- printBars support for custom space characters
- genscript (--install) now checks for Java runtime module support
- new OAF_LEVEL environment variable to influence the Rhino compile level (default is 9)
- Adding Open wrapper oBook (promoted from ow.dev)
- Add the javascript chart.js library
oJob
- Corrected missing parallel shortcuts args and considering only defined args in shortcut definitions
- Fix job sec get secEnv boolean parsing
- job.check._in and job.check._out for checks above the from/to scope
- Improvements on listing global jobs
- Refactor stdout handling
- Fix console initialisation
- New ojob ask included job
oPack
- Install and erase operation now tries to remove old files
ow.format
- New string.pauseString function
- New string.tabExpand function
- Add ANSI scroll up/down function
- withMD function now removes HTML tags and script code adding horizontal line support
- grid support for md and text types and corresponding word wrapping
- Refactor progress bar to dynamically determine size
ow.obj
- Fixes and improvements to fromArray2DB and fromObj2DBTableCreate
- filterKeys was refactored for faster execution
ow.ch
- Refactor of the 'simple' type for a much faster and lighter implementation
ow.sec
- Support for SLON based bucket environment variable data
ow.java
- New jcmd, pidSystemProperties and pidThreadDump functions
- Added support for using the BouncyCastle opack when generating certificates with Java 21
- Fix SSL certificate verification for custom domains to allow "insecure" like access in development situations
ow.ai
- LLM json output parameter support
- LLM support for custom like OpenAI APIs
- GPT keep conversation functionality
ow.metrics
- Fixed fromObj2OpenMetrics labels of map arrays
- Fix on round method call
ow.test
- Test functions can now receive a data argument
ow.template
- Support UTF-9 in parseMD2HTML
- Added OpenAF helper $pchart, $pbars and $pbar
CSV
- Fix CSV parsing logic
JMX
- Refactor to be also used with JRE setups
20231222
Breaking Changes: SNMP.trap changed it's signature to include time
Generic
- traverse, merge and extend were refactored for performance (you can control the use of the new version with __flags.ALTERNATIVES)
- new $output/$o function equivalent to the functionality provided by ow.oJob.output
- the $sql method now defaults to automatic determination if it should use nlinq or H2 to achieve the desire result and supports multiple tables
- printChart now supports "-min" and "-max" to specify the chart scale
- performance improvements in printTree
- jsonParse: improved ignoreNonJson detection
- $llm/$gpt shortcut for ow.ai.gpt functionality
- new option on getNumberOfCores to return the real number of cores independently of multiply factor applied
- new $await.notifyAll
- new askChoose function
- removal of logback for security reasons
- bump of jjwt, okhttp, commons-io, jsch, commons-cli, kotlin-stdlib, dnsjava, postgresql, commons-compress, commons-io, commons-lang3, Jackson-annotations, commons-logging, jna, slf4j-api, jQuery, +materialize2 and commons-email
oJob
- better support for escaping double-quotes in args (requires regenerating the ojob script with
oaf --install
) - new typeArgs.eachThreads to establish the number of threads use with "each" jobs
- new typeArgs.pwd for all langs except openaf, js, python and ssh
DB
- better support for date and timestamp dates with changes across several functions
ZIP
- new streamCreate and streamCreateFolder functions
SNMP
- change to SNMP.trap to allow to specify the time parameter
ow.obj
- fromObj2TableCreate better detection of boolean, number and timestamps
ow.format
- bool shortcut for string.bool
- string.grid improvements
- withMD: better italic and bold support
- new percentile function
ow.ai
- new ow.ai.gpt to support Generate Propose Transformer models and Large Language Models (LLM)
- support for LLM using APIs from Ollama and OpenAI
ow.metrics
- improvement of performance in ow.metrics.fromObj2OpenMetrics
20231014
IMPORTANT: GIT plugin has been moved to an external plugin-git
Generic
- Support for ojob shebang (detected by the extension of the provided file)
- Bump libraries: h2, commons-lang3, handlebars, nLinq, jetty, commons-compress, commons-net, jackson, kotlin-stdlib, jjwt, jsch, okio, okio-jvm and kotlin-stdlib
- #612
- Added af.toCSLON and changed lprint* functions to optionally use it
- Added ansiMove function
- printTable word-wrap functionality
- Improved table color settings
- Thread pool factor is now, by default, 2
- Sigil lib added $$.unset + support for “or” and dotted key strings.
- clone function improved for arrays
- Generated scripts improvements
- “includeOPack” function will try to avoid interactive questions
- Performance improvements on sortMapKeys
- New object query method using simple SQL (af.fromSQL, af.fromSQL2NLinq and $sql)
- New option on af.toYAML to “sanitize” an object that contains java objects
- New option on af.fromObj2XML to “sanitize” an object that contains java objects
- printTable support for banded rows for easier reading
- Small performance improvements on printTree
- New option on jsonParse to ignore non json prefixes and suffixes
oJob
- New “-syntax” option to display all oJob yaml based entry combinations for reference
- The included ojob jobs now also have shortcuts reference for each
- New output options: stable, ctable
- New output querying arg: __sql
- #613
- #653
- Langs support for argsFn, returnRE, returnFn and pre & pos code to handle args
- New langs support for node.
- Improvements to oJob debug
- Option to output the original markdown for “ojob print md”
- Improvements to avoid duplicated shortcut/job
- New include ojob shortcuts: “run”, “convert” and “debug”
- “ojob query” now also supports SQL
- New option to skip the load of jobs in loadJSON
ow.format
- withMD: support dash separator, side line, code blocks, bullets, numbered lists, word wrap tables and links
- New string.wordWrapArray
- New side line themes: closedOneSpace, simpleOneSpace, doubleOneSpace, openCurvedSpace, blockCurvedSpace
- New option for streamSHPrefix to allow handling of output after prefix printing
ow.obj
- #624
- Performance improvements on filterKeys
ow.template
- Added OpenAF helpers: $pass, $sline, $startsWith, $endsWith, $match, $concat and $set
- #638
- Support for custom js libs for static html gen (with Mermaid in mind)
ow.server
- https now reuses previous httpd objects by port
- Improvements on httpd.replyData
ow.java
ow.test
- Including assert stats
ow.ai
- Added +convertBools option to normalize
20230704
Generic
- new "-v" option to display the OpenAF version and distribution
- improved color cache for ansiColor
- bump on jetty, nlinq, jQuery, dnsjava, jjwt, kotlin, commons-csv, jackson, jna, commons-io, snmp4j, commons-cli, commons-compress, commons-lang3, ojdbc, okhttp, okio, postgresql, commons-codec
- $path - added custom functions: count_by, unique, to_map, flat_map, delete, substring, groupBy, search_keys and search_values
- new printChart, printBars, print, ansiLength function
- new $t shortcut for templify
- new getEnvsDef and improvements on getEnvs
- $csv improvements to handle dates, maps and arrays
- new $sh.getYaml
- new force exit option
- automated ocli update support
- improvements on njsmap to display correctly missing properties on tables
- improvements on exceptions handling on compileToClasses
- new flags to control precompile level
- changed colors and template for ask* functions
- genUUID alternative implementation
AF
- new fromSLON parser function
- new fromNLinq parser function
IO
- io.writeFileTARStream now adds the modified date
- new flag to change the default buffer size used
oPack
- indicates when an operation is done
- small improvements on new line logs
- ensure sorting of files in metadata package generation
ow.oJob
- new color theme with console logs going to stderr now by default
- new ojob shortcuts functionality
- faster includeOJob that now happens by default
- new options for nolog/ignoreNoLog specially for ojob shortcuts
- new ojob.depsOnFail option
- new ojob pass (handling nulls in args) and print md job (several improvements on existing included ojobs)
- improvements to todo args passing
- delayed the automatic oaf::global creation to allow to define the channel with a different type and options
- several small improvements including for subjoins
- support for templateArgs in individual oJob using typeArgs
- output: new csv, key and html output
- correction on inPM
- support for changing OpenAF flags on startup
- support multi map checks in jobs[].check
- disabled new feature to test warnings for jobs changes and removal
ow.format
- new string.dataLineChart, dataClean, lineChart, updateLine and bool
- fromTimeAbbreviation now includes "w" (week)
- added toBase32, fromBase32, toBase16, fromBase16 and hmacSHA1
- improvements to string.grid including support for charts, area and bar
- improved unicode syms
- improve printWithWaiting to support suffixes
- new toCSLON function
ow.server
- support for external js libs like mermaid
ow.template
- new acolor, toJSON, from, ptable, tree, cjson, cslon, pmap, jsmap, $t, data, isoDate, number, boolean, string, keys, values, __, alen, len, repeat, a2m, a4m, m2a, m4a and helper
- parseMD2HTML now can have default and specific showdown options
ow.java
- updates to oDoc
- new getCCPU, getLinuxUptime and getLinuxCPUInfo functions
- new getLatestversionString function
SSH
- support ssh urls without passwords
- bump jsch library
20230325
Generic
- Improvements on the fnDef4Help
- sigil: support java objects
- updated libs: jetty, gson, Jackson, jsch, okhttp,
- new OAF_HOME env variable
oJob
- Setting ojob.includeOJob adds the embedded ojob.yaml from oJob-common that it's now include in this distro
- new ojob.poolThreadFactor to enable better control on the number of threads used
- new ojob.owraps to automatically load ow.load*
- jobhelp improvements
- support in printTable & printTree for background color
- better support of args in from/to jobs
- new output format 'cjson'
ow.format
- string.wildcardRE to generate the regular expression that implements the wildcard filtering
- new fromSIAbbreviaton function
- correction of word-wrap in withSideLine
ow.debug
- new types: tree, block and table
ow.sec
- $sec.encSKey enables retrieving the encrypted version of a sbucket with the current main secret for the repo
- fixing encryption or plain text secret files
ow.net
- new functions sendUDPPacket and sendTCPPacket
ow.ch
- ensure lock assignments are sync
ow.java
- function cipher.getCert4File to retrieve a certificate object from a file
ow.template
- added the $$ template helper
- added $switch, $case and $default template helpers
ow.python
- new _g (equivalent to $get) and _s functions (equivalent to $set)
20221216
Generic
- New functions: splitKVBySeparator, nowE, nowNanoE
- New flags: OJOB_SHAREARGS, HTTP_TIMEOUT, HTTP_CON_TIMEOUT
- When generating scripts (install) adds the env variable OAF_JARGS to make it easier to pass JVM args like memory limits
- oJobRunFile defaults for running with shareArgs disabled
- $path extended to support function: ends_with
- visibleLength improved to be faster and support a broader set of characters (e.g. including Asian)
- Updated libs
- Apache commons-text lib was removed
- Fixed $csv.fromInFn not properly using setStreamFormat
oJob
- Performance improvements on startup
- oJob.output support for types: res, args, ndjson, xml, map and set_ (which uses $set)
- oJob.output now supports arg __path to filter results
- Fixed previewFile to better handle includes
- Fixes on ojob.
- Better support, on jobs.check, for using references to global variables
- Supports integrity check using ow.java.checkDigest
oPack
- List sorting ignoring case
IO
- writeFileGzipStream now supports appending
ow.format
- New functions: wildcardTest
- Improvements on string.closest
ow.obj
- signVerify now supports ow.java.checkDigest
- ow.obj.filter now supports both $from and $path
ow.template
- Fixed OpenAFHelper get
ow.net
- New functions: ipv4SubNetInfo, getAddressInfo, ipv4SubNetInRange
ow.metrics
- fromObj2OpenMetrics now avoids using “_” as the first char in a label
ow.java
- New functions: getDigestAlgs, digestAsHex and checkDigest
- Improvements on getJarVersion
ow.dev
- obook: fixed support for mac keyboards
20220822
Breaking changes
- ow.template: built-in helpers now use “$” as a prefix
- okhttp makes all headers low-case
Generic
- HTTP libs moved from Apache HTTPComponents to OKHTTP
- range function (equivalent to python)
- Improvements on core code isolation
- “-c” option with better code separation
- Installation scripts try to determine where they are installed
- Improvements to includeOPack
- load/require: several improvements
- $doA2B improvements
- isJavaClass: to determine if value is a Java class
- $$ .getI: same as $$.get but case-insensitive
- nowTZ: same as now but adjusted to local time one
- $a4m: builds a map of maps from an array of maps (shortcut to ow.obj.fromArray2Obj)
- $m4a: builds an array of maps from a map of maps (shortcut to ow.obj.fromObj2Array)
- Sigil: corrected greater and greaterEquals
- $ch now supports not including the “compress” legacy first argument
- newFn: creates a new function supporting ow.debug
- printTree: new function to represent maps and arrays
- $csv: new shortcut to encapsulate CSV handling
- If a password starts with “$raw$” no check if it’s encrypted will be performed.
- Included nLinq for browser support
- All configuration files written are fallback to the current tmp directory if it’s not possible to write on the user home directory
Console
- Better handling of java exceptions
- Better handling of byte arrays
- Better handling of nulls
- Support for printTree faster representation by default (tree off to disable it)
oJob
- oJobRunJob correctly inherits ojob settings
- Supports template OpenAF, Format and Conditional helpers and “_state” helper (controlled by typeArgs.noTemplateArgs)
- jobsInclude will now not include any existing help legacy jobs
- Fixed handling of from/to and checks with different langs
- Support for JSON log (when OJOB_JSONLOG env variable is set to true or ojob.logOjob = true)
- Supports running local oJobs stored in __flags.OJOB_LOCALPATH directly (“-global” will list these oJobs)
- “-which” new option to determine from where an oJob will be executed (path)
- When ojob.sequential = true each job execution return (stored in $get(“res”)) will be included in the receiving rags.
oPack
- improvements on directory removal
- when retrieving from oPack server with authentication will try to keep credentials with $sec
- Repack improvements
AF
- compile now uses better optimization and language settings
- visibleLength: function to calculate aString visible length independently of string size (e.g. emoticons)
- parse: parses javascript code to an array of javascript lines
- Improvements on the handling of input in sh.
- support to work with older gson libs
IO
- readStreamJSON: reading a JSON file as a stream with a callback function to enable the parsing of large JSON files
- readFileBytesRO: reads a file’s bytes enforcing read-only mode if the file is locked.
- Several new functions to support TAR handling (https://docs.openaf.io/docs/guides/medium/reading-listing-writing-tar-files.html)
- pipeLn: supports waiting for stdin and calling a callback function to handle lines
- pipeCh: supports waiting for stdin and calling a callback function to handle characters
- createTempDir: creates a temporary directory that will be deleted upon execution end (similar to createTempFile)
SSH
- library upgraded to mwiede/jsch
SNMP
- Supports for traps with decimal values (#379)
- Better handling java objects
XML
- fromNodes2XML: converts the result of XML.find* into a E4X object
ow.format
- withSideLines: cosmetic improvements
- elapsedTime4ms: improvements
- getTmpDir: retrieves the system temporary directory
- getUserName: retrieves the current perceive user name
- string.chart: produces simple ascii based charts
- fromTimeAbbreviation: reverts to ms time from elapsed time
- New func type for string.grid
- Support for abbreviations in time ago
- Support for decimal values in fromBytesAbbreviation
- streamHandle: helper function to be used as an $sh callback to provide similar functionality to Unix’s expect.
ow.ch
- utils.getMirrorSubscriber: aFunc also provides the operation that triggers callback
- utils.poolChanges: supports triggering subscribe on channels by pooling for value changes (for small channels that don’t support value change notification)
- mvs: improvements
- elasticsearch: supports timeout option
- file: supports gzip and tmp (for temporary file usage) option
- buffer: several improvements on time option
ow.obj
- filter: allows to query arrays/maps with a map of options equivalent to $from
ow.server
- passive telemetry now supports option for json or openmetrics output
ow.net
- host4URL: given an URL will return host:port
- path4URL: given an URL will return the URI
- Include isIPv4, isIPv6, isURL and isHost
- getDNS: retrieves DNS information using dnsjava lib
- getCAStoredCertificates: get the current Java CA certificates
- getJSSECAStoredCertificates: get the current Java JSSE CA certificates
- getStoredCertificates: lists the certificates included in a file
ow.template
- adding OpenAF helpers $get and $getObj
- __flags.MD_NOMAXWIDTH controls if generated markdown should have a max width or not
- md.fromTable: converts a markdown table into a javascript array
- $dateDiff helper (from nAttrMon)
ow.metrics
- improvements to fromObj2OpenMetrics
- __flags.OPENMETRICS_LABEL_MAX restricts the maximum label length to the recommended 128 characters.
- added metrics from cgroup memory usage when running on Linux containers
- added metrics for hotspot VM performance
- Solved currency issue that would trigger “Cannot find function map in object [object Object]”
ow.test
- setKeepStackTrace to keep java exceptions on tests
- test results can now be stored
ow.java
- getCMemory: on Linux containers retrieves the current cgroup memory usage
- getLocalJavaPIDs: retrieves the current local Java running process PIDs
- parseHSPerf: for HotSpot based JVMs parses the performance data stored in the temporary folder
- encodeCert: encodes a certificate into a base64 PEM representation
- encodeKey: encodes a public or private key into a base64 PEM representation
- decodeKey: decodes a key encoded with encodeKey
- Ini: support for windows like “ini” files
ow.debug
- adding debug comment based optional debug features
ow.dev
- improvements on multi-line code support
Updated libs
- H2
- Jackson-*
- Logback
- Rhino
- PostgreSQL
- Jetty*
- Showdown
- FuseJS
- JQuery
- Lodash
- Highlight
- GSON
- nLinq
- Materialize