C H A N G E L O G

2018-09-30 17:24:41 ae - ae.sys.sqlite3: Add error code to SQLiteException message
2018-10-03 14:46:29 ae - ae.utils.funopt: Allow funoptDispatch to recurse into structs
2018-10-03 15:15:05 ae - ae.utils.funopt: Refactor string transforms into their own functions
2018-10-03 15:18:19 ae - ae.utils.funopt: Strip trailing _ off identifiers
2018-10-08 18:56:19 ae - ae.utils.array: Refactor out overload disambiguating helper
2018-10-08 19:06:01 ae - ae.utils.array: Add splitWithPrefix / splitWithSuffix
2018-10-08 21:53:33 ae - ae.utils: Move contains from text.package to array
2018-10-15 01:20:08 ae - ae.utils.funopt: Expose genActionList as funoptDispatchUsage
2018-10-18 06:03:27 ae - ae.sys.sqlite3: Add wrapper for sqlite3_changes
2018-10-24 14:18:17 ae - [BREAKING] ae.utils.json: Serialize null values as null
2018-10-24 18:31:32 ae - ae.utils.xmllite: Add XmlNodeType.Raw
2018-10-24 20:33:45 ae - ae.utils.xml: Split xmllite into package
2018-10-24 20:34:47 ae - ae.utils.xml.helpers: Import from rtf2any.xml.helpers
2018-11-04 00:06:39 ae - ae.sys.log: Add RawFileLogger constructor
2018-11-04 00:06:49 ae - ae.demo.portforward.portforward: Fix compilation
2018-11-05 21:47:50 ae - ae.utils.array: Fix compilation with DMD 2.084.x
2018-11-09 23:24:42 ae - ae.utils.text: Move asciiToLower/Upper to ae.utils.text.ascii
2018-11-13 22:31:33 Secret change!
2018-11-13 22:46:12 Secret change!
2018-11-13 22:46:36 Secret change!