summaryrefslogtreecommitdiff
path: root/ChangeLog
blob: 3f089cc288d917397db110a2409c01ef13fcaecf (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
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