1.3.1 - 2019-07-06
- Fix some tests (hopefully)
1.3 - 2019-06-17
- Add TUWF::Validate module for generic data structure validation
- Add tuwf->compile() and tuwf->validate() interfaces for input validation
- Add 'custom_validations' setting
- Add setting to write emails to the log file instead of mailing them
- Add (undocumented) TUWF::Validate::Interop module for JSON coercion, HTML5 validation patterns and Elm code generation.
- Fix logging of JSON request body on error
1.2 - 2018-02-18
- Add tuwf() exported function as alias to $self or $TUWF::OBJ
- Add TUWF::get/put/post/etc() as better alternative to TUWF::register()
- Add TUWF::hook() as better alternative to (pre|post)_request_handler
- Add capture() to access route captures
- Add standandlone HTTP dev server (requires HTTP::Server::Simple)
- Add pass() and done() methods to prematurely abort the current handler
- Add 'import_modules' setting
- TUWF::Request: Add reqJSON()
- TUWF::Request: Disallow control characters in HTTP request data
- TUWF::Response: Add resJSON()
- TUWF::Response: Add resBinary()
- TUWF::Response: Add resFile() + mime_types/mime_default settings
- TUWF::Response: Allow setting headers before resRedirect()
- TUWF::Response: resRedirect() now sets a relative 'Location' HTTP header
- TUWF::DB: Add DB query logging and profiling to non-TUWF database functions
- TUWF::DB: Add dbVal()
- TUWF::XML: Add functional-style DSL
- TUWF::XML: Add HTML5 support
- TUWF::XML: Add different naming convention support
- TUWF::XML: Add 'mkclass' utility function
- Improved error pages
- Various documentation improvements
1.1 - 2017-11-26
- Disallow exclamation mark in email address validation
- Add reqProtocol() method
- Add reqFCGI() method
- Remove 'X-Powered-By' header
- Fix handling of space character in load_recursive()
1.0 - 2015-09-17
- !! Some backwards-imcompatible changes, marked * !!
- kv_validate() improvements:
- Fix maxcount option
- Fix non-array argument to 'func'
- Added some default templates: num, int, uint, ascii, email, weburl
- * Removed 'min' and 'max' options, these now require the num template
- Add 'inherit' option for template definitions
- Allow templates to provide default values for 'required', 'default',
'rmwhitespace', 'multi', 'mincount' and 'maxcount'
- Add tests
- * reqPath() now includes the leading slash
- * reqGet(), reqPost(), reqParam(), reqUploadMIME() and reqUploadRaw()
now only work in scalar context.
- * Add plural versions of the above methods (reqGets() etc) that only
work in list context.
- Add reqQuery()
- Fix warning with Perl 5.22
0.2 - 2012-01-19
- Fixed bug with in-place utf8_decode() in recent Perls
- Lowered minimum Perl version to 5.8.0
0.1 - 2011-02-07
- Initial version