1.5 - 2023-01-18
- Add tuwf->req() method for storing request-local data
- Add tuwf->captures() as alternative to handler arguments
- Add support for Max-Age and SameSite properties in resCookie()
- Add support for JSON::PP and Cpanel::JSON::PP
- Add support for calling dbPage() in scalar context
- Add "onerror" and "undefbool" built-in validations
- Add support for subroutine arguments to 'default' validation option
- Add TUWF::Validate::Interop::elm_decoder() (undocumented)
- Add support for undef and concat attributes in TUWF::XML
- Add TUWF::XML::xml_string() function
- Add summary tag to TUWF::XML
- Add "db_connect" hook
- Add "fastcgi_max_requests" setting
- Add support for graceful process shutdown in FastCGI mode
- Add support for output compression for resJSON, resFile and resBinary
- Fix handling recursion from the log_format subroutine
- Fix encoding of HTTP response headers
- Fix calling error_404_handler before the "after" hooks.
- Fix handling of SIGCHLD when using the builtin HTTP server
- Fix logging during startup
- Fix input modification on TUWF::Validate with unknown=>"reject" hashes
- Fix handling of HTTP DELETE requests
- Fix handling for HTTP 204 responses
- Remove error on resFile() path traversal, just return a 404 instead
- Disallow IP address hosts as part of email validation
- Use Perl built-in utf8 functions instead of Encode module
1.4 - 2019-07-06
- Version bump because CPAN doesn't like patch versions
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