Age | Commit message (Collapse) | Author | Files | Lines | |
---|---|---|---|---|---|
2024-02-24 | Fix doc typoHEADmaster | Yorhel | 1 | -1/+1 | |
2023-10-14 | Validate: stricter schema validation + cleanup | Yorhel | 3 | -6/+19 | |
This caught a few bugs in my tests, but didn't trigger anything in the VNDB codebase. | |||||
2023-10-10 | Validate/BREAKING CHANGE: "default" implies not "required", +"missing" ↵ | Yorhel | 5 | -69/+89 | |
validation The "required" validation has always been a bit iffy as it doesn't say anything about what should happen with optional fields. An optional field without an explicit "default" could either be undef or an empty string, but I found only a single place in the VNDB codebase where that is the behavior that I wanted - in many other places I has assumed that the frontend would give me the correct type. The point of input validation is to handle untrusted input, so I figured a breaking change to properly fix these cases was warranted. Also added a "missing" validation so that it's possible to distinguish between each type of optional value. The VNDB API needs this for PATCH requests. | |||||
2023-08-06 | Add some more image formats to the default MIME types | Yorhel | 1 | -0/+3 | |
2023-05-04 | TUWF::XML: add <menu> HTML5 tag | Yorhel | 2 | -2/+2 | |
2023-04-27 | Validate: avoid \d in numeric regex tests | Yorhel | 2 | -4/+4 | |
Since they can match Unicode numbers outside of the ASCII range, which will rarely be interpreted correctly. | |||||
2023-04-04 | Add .mjs to default mime types | Yorhel | 1 | -0/+1 | |
2023-03-30 | resJSON(): Set convert_blessed option to check for TO_JSON() methods | Yorhel | 1 | -1/+1 | |
2023-01-18 | Version 1.5v1.5 | Yorhel | 10 | -9/+37 | |
2023-01-11 | Response: Proper support for HTTP 204 No Content responses | Yorhel | 1 | -3/+8 | |
2023-01-11 | Fix accepting DELETE requests | Yorhel | 1 | -1/+1 | |
2022-12-18 | TUWF::Request: Remove old unicode error catching code | Yorhel | 1 | -2/+0 | |
That error was thrown by the Encode module, but that's not being used anymore. | |||||
2022-12-13 | Use Perl built-in utf8 functions rather than "Encode" module | Yorhel | 3 | -24/+27 | |
Should slightly improve startup times and memory use. | |||||
2022-10-12 | Remove useless path traversal warning from resFile() | Yorhel | 1 | -1/+0 | |
2022-10-11 | TUWF::Validate: Fix input modification on {unknown=>"reject"} | Yorhel | 2 | -3/+9 | |
2022-10-07 | Add support for output compression to resJSON, resFile and resBinary | Yorhel | 2 | -21/+27 | |
2022-08-03 | Log warning and return a 404 in resFile() path traversal attempt | Yorhel | 1 | -2/+6 | |
This is nicer and less verbose than throwing a 500. | |||||
2022-02-15 | Add "db_connect" hook | Yorhel | 3 | -2/+10 | |
And move the "ping failed" warning to *after* the reconnect has been done, since the logging function may attempt to access the DB. | |||||
2022-02-15 | TUWF::XML: Add <summary> html5 tag | Yorhel | 2 | -4/+4 | |
2021-12-05 | Do a graceful shutdown on SIGTERM/INT in fastcgi mode | Yorhel | 1 | -1/+2 | |
"graceful" meaning quit after processing the current request. Now I can safely kill fastcgi processes to reload the code without missing even a single request. \o/ Tested in production. | |||||
2021-12-04 | Add fastcgi_max_requests option | Yorhel | 2 | -0/+8 | |
2021-11-29 | Validate: Add "undefbool" default template | Yorhel | 3 | -1/+8 | |
A useful template I've been using for VNDB. With proper TUWF integration it now works better with Validate::Interop as well. | |||||
2021-10-28 | Disallow IP-based email addresses in validation | Yorhel | 3 | -5/+5 | |
Technically a breaking change, but nobody's ever given me an IP-based email so I doubt anyone will notice. | |||||
2021-07-09 | TUWF::XML: Add support for undef and concat attributes | Yorhel | 3 | -4/+26 | |
Undef attribute values exclude the attribute, this is useful in many cases, e.g. input type => 'checkbox', checked => $checked ? '' : undef; Likewise, and in combination with undef attributes, concat attributes are useful for dynamically setting classes: div '+class' => 'box', '+class' => $important ? 'warn' : undef; The '+' prefix is invalid in XML and HTML, so can be safely used for this context. Other prefixes can be added later, too. I had thought of using a '?' prefix for boolean attributes, but using '' and undef kinda works well enough. | |||||
2021-06-26 | Validate::Interop: Fix Elm decoder for single-key objects | Yorhel | 1 | -2/+2 | |
2021-02-22 | TUWF::Validation: Allow CODE references for default and onerror options | Yorhel | 3 | -2/+15 | |
2020-12-25 | Add tuwf->captures() convenience method | Yorhel | 2 | -0/+15 | |
2020-12-25 | Allow using database methods during initialization + lazily load DB connection | Yorhel | 2 | -10/+15 | |
2020-12-25 | Fix logging during initialization | Yorhel | 1 | -3/+5 | |
2020-07-29 | TUWF::Response: Properly UTF-8 encode headers | Yorhel | 1 | -2/+3 | |
Non-ASCII headers aren't exactly common, but they can happen and should be encoded properly. | |||||
2020-05-27 | Detect and break recursion in log_format | Yorhel | 1 | -1/+4 | |
2020-04-20 | Add tuwf->req() function to store request data | Yorhel | 2 | -0/+18 | |
This is more reliable than using before or after hooks to set/unset global state, since with those the order of initialization can matter and options like `log_format` may be run outside of those hooks. (Totally untested) | |||||
2020-03-29 | Add workaround for SIGCHLD bug in HTTP::Server::Simple | Yorhel | 1 | -0/+5 | |
2020-03-15 | TUWF::Validate::Interp::elm_decoder(): Support structs with more than 8 fields | Yorhel | 1 | -12/+39 | |
2020-01-11 | TUWF::XML: Add xml_string() function + simple test script | Yorhel | 4 | -1/+47 | |
2019-12-05 | TUWF::Validate: Add "onerror" built-in validation | Yorhel | 3 | -6/+25 | |
2019-11-01 | dbPage: Just return the result list in scalar context | Yorhel | 2 | -8/+9 | |
This makes dbPage() useful even if you don't need its logic to determine whether there's a next page. | |||||
2019-10-01 | Typo fix in TUWF::Validate doc | Yorhel | 1 | -1/+1 | |
2019-10-01 | Use normal request/response flow for 404 errors | Yorhel | 1 | -2/+1 | |
i.e. don't throw an exception if no handlers matched. This way the error_404_handler is called before all the `after` hooks are run, as one would expect. The `error_404_handler` setting is the only one without a big WARNING message in the documentation, so it ought to behave like a normal route. | |||||
2019-09-08 | resCookie: Add support for Max-Age and SameSite properties | Yorhel | 2 | -6/+22 | |
2019-08-15 | Add support for JSON::PP and Cpanel::JSON::PP | Yorhel | 6 | -10/+26 | |
Mainly motivated by the fact that JSON::PP is now in core, so that's one less dependency. Cpanel::JSON::PP is supported because some people like it and to avoid loading multiple JSON modules in a single process. TUWF prefers whatever module is already in memory, so if you load JSON::PP at any point before using TUWF's JSON functionality you will not benefit from the XS performance. | |||||
2019-07-29 | Add TUWF::Validate::Interop::elm_decoder() | Yorhel | 1 | -0/+52 | |
2019-07-06 | Alright then, have it your way, version 1.4v1.4 | Yorhel | 10 | -9/+12 | |
2019-07-06 | Version 1.3.1v1.3.1 | Yorhel | 10 | -9/+12 | |
2019-07-06 | Fix tests | Yorhel | 2 | -2/+2 | |
TBH I'm not sure why some tests failed on loading Cpanel::JSON::XS::Type, did they not have a recent enough version of Cpanel::JSON::XS installed or is my eval-skip-thing not working? ...so I'm not entirely sure if this fixes it. | |||||
2019-06-17 | Year + version bump for 1.3v1.3 | Yorhel | 21 | -20/+36 | |
2019-02-09 | Fix TUWF::Misc::validate() in multiple value mode | Yorhel | 1 | -1/+1 | |
2018-08-31 | Add option to write mail()s to the log | Yorhel | 2 | -1/+6 | |
Useful when developing. | |||||
2018-08-31 | TUWF::Validate::Interop: Don't escape @ in html5_validation() patterns | Yorhel | 1 | -1/+5 | |
2018-08-25 | TUWF::Validate::Interop: Update elm_type() for Elm 0.19 | Yorhel | 1 | -2/+2 | |