Revision history for CGI-Ex.
2.55 2024-01-09 09:19:32-07:00 America/Denver
* Add support for type_ne_required in both Validate.pm and validate.js
* Add support for various types including unum, str, array, hash, {}, []
* Add support for nested types in Validate.pm (not part of validate.js)
* Add support for coerce in Validate.pm (not part of validate.js)
2.54 2022-03-11 15:00:51-07:00 America/Denver
* Fix sending cookies on location_bounce, if mod_perl 2 (thank you csjewell and oaxlin)
2.53 2022-03-11 13:06:31-07:00 America/Denver
* Prevent Apache sending a default page after content on location_bounce (thank you csjewell)
2.52 2022-03-09 16:45:04-07:00 America/Denver
* Fix for HTTP2 stream crashing on certain browsers (thank you oaxlin)
2.51 2022-03-07 09:27:24-07:00 America/Denver
* Fix an uninitialized value issue (thank you Prashanth BJ)
2.50 2020-07-07 22:03:55-06:00 America/Denver
* Allow for optionally using multi_param if the object supports it
2.49 2020-03-05 10:42:23-07:00 America/Denver
* Switch to Dist::Zilla for building dist (this release is thanks to Charles McGarvey)
* Fix CI config to work with dzil
* Add HttpOnly, SameSite support to CGI::Ex::Auth
* Document the CGI::Ex::Auth cookie_* properties
2.48 2018-12-06
* Fix app constants on modern perls.
2.47 2018-08-16
* Replace mechanism for setting cookies via meta tags with JavaScript equivalent (thanks to Garth Hill, Dillan Hildebrand, Alfredo Cabrera, Matt Swensen)
* Test added for the replacement JavaScript mechanism of setting cookies
2.46 2018-07-24
* Skip replace validation types in CGI::Ex::Validate when the corresponding form key's value is undef (thanks to Matt Devey)
* Test added for CGI::Ex::Validate skipping replace validation when form key's value is undef (thanks to Charles McGarvey)
* Removed copyright years as they weren't necessary
2.45 2017-07-23
* Lost commits from 2.43 have been restored in this version
* Allow HTML5 input types to be filled
* Fix bug that prevents bounce_on_logout from deleting the auth cookie
* Silence warning about CGI::param in list context
* Fix tests on perl 5.26.0 (thanks to Petr Písař)
* Smarter feature detection for JSON module (thanks to Petr Písař)
* Declare perl version required
* Add CGI.pm to pre-reqs
* Upgrade Makefile.PL
* No longer indexing 'samples' directory
* Updated the copyright year to 2017
2.44 2015-10-07
* Restoring the version number in several modules
* Updated the copyright year to 2015
2.43 2015-10-01
* Fixing POD errors
* Restoring the README that got lost in 2.42
2.42 2014-12-10
* Adding protection to location bounces to stop potential XSS vulnerabilities
2.41 2014-06-12
* Restoring a tab character in Makefile.PL so that make can run again
2.40 2012-12-17
* Validation fixes for regex based keys
* Allow for HTML5 types
* Make sure that default values always stringify
* App find_hook now returns a list
2.38 2012-03-02
* No functional changes, just fixes for newer versions of perl that have changed the way that "is" works.
2.37 2012-02-09
* (Validate) Make match_2 work in the javascript layer (as shown in perldoc)
* (Validate) Add int, uint, and num types with range checking on int and uint
* (Validate) Allow for custom => sub { my ($k, $v) = @_; die "Always fail\n" } to pass the result of the failure via the value of die.
* (Validate) Allow for custom_js:function (args) { throw "Always fail ("+args.value+")" } which passes the error message of the test as the fail message
* (Validate) Allow for type, enum, and equals to short circuit (don't run match, compare, length, or custom checks if type fails)
* (App) Fix the test suite to not require installation of CGI
* (App) Add CGI::Ex::App::Constants module supporting constants as a source of documentation
* (App) Allow for access to constants via use CGI::Ex::App qw(:App); or use MyApp qw(:App);
2.36 2010-06-10
* (Auth) Make delete_cookie always delete, even for session Apps.
2.35 2010-05-24
* (Auth) More robust cookie reading and writing and deleting.
* Workaround CGI::Cookie->parse weird empty cookie implementation.
* (Auth) Allow cookie_domain to be modified more gracefully.
* (Auth) Consider case with multiple cookies for the same name.
2.34 2010-04-23
* (Auth) Don't attempted to decode base64 armor unless use_base64
2.33 2010-04-01
* (Auth) Allow for custom form user vs valid cookie check
2.32 2010-02-25
* (Validate) Allow for default to be an arrayref
2.31 2010-02-24
* (Auth) allow for secure flag via cookie_secure
* Allow validate.js to use change and blur on individual elements
* Allow validate.js to not strip trailing whitespace on change
* (Validate) Allow more items in local parts
* (Ex) Make sure make_form doesn't die on non-arrayref keys
2.27 2008-09-15
* (App) Fix morph history during errors or other direct morph calls
* (App) Allow for step=foo/bar to look for file foo/bar.html
* (App) Allow for step=foo/bar to use internal name of foo__bar
* (App) Allow for step=foo/bar to morph to package App::Foo::Bar
* (Validate) Added the set_all_hook and clear_all_hook in validate.js
* (Validate) Streamline validate
* (Validate) Added generate_form to Validate
* (App) Added hooks in App to generate_form
* (Validate) Allow for "error" parameter in validation that is the general error message
* (Auth) Allow passing filename in Auth login_header, login_form, login_script and login_footer
* (Auth) Allow verify_token to be easily overridable
* (Auth) Allow passing cookie_domain, cookie_path, cookie_no_expires (force session cookie) in Auth for much more granular control
* (Auth) Allow for passing user without password to verify user matches a previously set cookie
* (App) Remove allow_nested_morph since allow_morph is more than capable of filling this role
* (App) Allow step name to be "jumped" to even if not in the path
* (App) Make jump unmorph if in the middle of lineage, deprecates some early morph cases.
* (Auth) Don't blank out form user field on failure (fixed bug in Auth login_hash_common)
* (App) Cleanup run_hook_as
* (App) Allow path_info_map to have second argument be a code ref that is passed form and matches
* (Validate) validate.js updates to make in sync more with Validate.pm (such as fields and order are synonymous)
* (Validate) Make validation names prettier by default
2.26 2008-07-21
* (App) Error handling bug again (accept refs in $@ again)
2.25 2008-07-08
* (Validate) Fix bugs in was_valid checking of Validate
* (JSONDump) Quote more keys in JSONDump
* (App) Allow for passing a coderef instead of the step name to run_hook
* (App) Handle fatal errors more gracefully
* (App) Make morph and unmorph calls be hooks
* (App) Allow allow_morph to return 2 (which requires a morph)
* (App) Add run_hook_as functionality
2.24 2008-02-26
* Allow for smith.name
* Simplify some code in App.
* Allow for post_navigate to get called even in case of error.
* Added morph_base to App
* Added validate_when_data hook.
* Added samples/app/app1 which is a path based application
2.23 2007-12-20
* Add the onevent load option - make sure validate_if figures into dependencies
* Add was_valid, had_error, and was_checked validation options
* Add vif_disable option.
* Pass more information to clear/set hooks using named args
2.22 2007-12-14
* Allow for no errors with a username of "0"
* Run hash_form hook before others so dump_history shows it in order of use
* Fix Validate error with passing in the field name
* Simplify and modernize validate.js
* Add onevent: change, blur and submit types.
* Add hooks and better overriding to valiate.js
* Cleanup Validate.pm pod
* Be sure Conf json read requires JSON
2.21 2007-10-18
* Add logout_hook to Auth
* Remove key_payload
* Only accept payload from cram styles
* Added disable_simple_cram to enforce protecting server generated payloads
2.20 2007-10-08
* Added success_hook and failure_hook to Auth (not documented)
* Fix precedence issue in conf reading in App (thanks to Krassimir Berov)
* Fix bug in validate.js with LOCAL_PART matching (thanks to Thomas den Braber)
* Add support for clear_on_error to validate.js (thanks to Thomas den Braber)
2.19 2007-10-05
* Make verify_token more granualar in Auth
* Added parse_token method and/or property
* Added verify_password method and/or property
* Added verify_payload method and/or property
* Fix filename based conf reading in App
* Added check_valid_auth, handle_success, handle_failure
key_loggedout, bounce_on_logout to Auth.
2.18 2007-07-24
* Merry Pioneer Day - http://en.wikipedia.org/wiki/Pioneer_Day_(Utah)
* Allow for check_valid_auth in App
* Allow for set_cookie, delete_cookie, location_bounce to be overridden in Auth
* Add get_valid_auth to the history
* Massive refactor of CGI::Ex::App
* Rename conf_ext to ext_conf to be similar to ext_print and ext_val
* Add undocumented conf_die_on_fail (which defaults to true)
* Fix bug in handle_error
* Allow empty hashrefs passed to Validate - (broken in 2.17)
* Add tests to help with Devel::Cover coverage.
2.17 2007-06-26
* Add load_conf and conf* methods to App to allow for easier external configuration
* Add more documentation
* Allow print_content_type('text/html', 'utf-8')
* Allow App to pass mimetime and charset to print_out.
* Update path methods.
2.16 2007-06-21
* Add default __error step which is called by default handle_error method.
* Default base_dir_abs to '.'
2.15 2007-06-20
* Fix some warning issues with the Recipe sample in App
* Cleanup require_auth interface in App (you will want to
double check if you have overwritten require_auth in your
application to make sure your implementation is still compatible)
* Require latest Template::Alloy
2.14 2007-06-12
* Moved CGI::Ex::Template to Template::Alloy
* Template::Alloy is now required as a dependency
* Update some portions of App POD.
2.13 2007-05-21
* Added full support for HTML::Template and HTML::Template::Expr.
* Added missing HTML::Template::Expr vmethods.
* Added support for using Text vmethods as top level items.
* Added SYNTAX configuration item.
* Added V2EQUALS configuration item.
* Broke Extra and HTE out to its own area.
* Added many more tests.
* Allow QR_PRIVATE to be false.
2.12 2007-05-11
* Add STAT_TTL
* Add NEGATIVE_STAT_TTL
* Add WRAPPER configuation
* Add ERROR and ERRORS configuration
* Cleanup handling of PRE_PROCESS and POST_PROCESS
* Add more tests for the file operations
* Cleanup some potential argument issues on cached USE and THROW
2.11 2007-05-07
* Add more samples to App synopsis.
* Add VIEW directive support to Template.
* Update data storage to more easily support TT2 parsers.
* Add regex support in Template.
* Add CONFIG directive in Template.
* Better error reporting.
* Allow parser to parse all TT2 tests in TT2 test suite.
* Add V2PIPE configuration to provide backward support for TT2 non-inline pipes.
* Add vmethod url.
* Cleanup argument parsing to be more compatible with TT2.
2.10 2007-04-27
* Allow for fully regex grammar based engine.
* Move to generic operator parse tree. All constructs are now only arrayrefs.
This should allow for easy porting to other languages.
* Allow for nested tags [% "[% 2 %]" | eval %].
* Added back in references in Template - but fast and simple.
* Allow for regex based TAGS.
* Allow for "unquoted" in TAGS.
* Catch parsing bug in "1 - + 2" in Template.
* Fix minor bug in Template qw() construct.
* Re-added ANYCASE support.
* Added V1DOLLAR support.
* Remove GROUP support from CGI::Ex::Validate.
* Allow for crypted passwords to work in Auth.
2.09 2007-04-05
* Add more documentation about file paths
* Allow for base_dir_abs to return a single value, or an arrayref of values, or
a coderef that returns a single value or arrayref.
* Allow CGI::Ex send_status to work on mod_perl2.
* Add tests to cover all virtual methods in CGI::Ex::Template.
* Bring all virtual methods into line with TT2.18
2.08 2007-03-02
* Allow for digits passed to %*s patterns in format, and fmt or CGI::Ex::Template
* Fix bug in validate.js to allow for non-existant fields (with replace)
* Warn clean in Validate.pm for non-existant field (with replace)
* Fix bug in validate.js with trim_control_chars - was broken entirely
* Add no_tag_splitting flag to JSONDump
* Allow for more types of numbers to be quoted in JSONDump
* Add path_info_map_base method to CGI::Ex::App
* Add path_info_map hook to CGI::Ex::App
* Updated and added much documentation to CGI::Ex::App
2.07 2007-01-30
* Add clear_app method which flushes items pertaining to navigation.
* Allow for CGI::Ex::Template PLUGIN_BASE to be a scalar OR an arrayref.
* Add sort keys to DUMP directive
* Add trim_control_chars as a validate directive
* Allow for . in the QR_PRIVATE of Template
* Add dump_parse_expr to CGI::Ex::Template
* Fix JSONDump to handle more number cases
* Fix JSONDump to output more IE friendly JS
* Allow fill to work only with form elements with attributes
2.06 2006-07-21
* Allow for JSONDump to swap --> to --"+">
* Fix memory issue in App with closures
* Remove weak_copy routine from Template (memory issue)
2.05 2006-07-19
* Allow for CGI::Ex to be compatible with Mandrake and Fedora mod_perl 2, as well as debian mod_perl2
and older mod_perl1.
* Allow for CGI::Ex::Dump to localize the Data::Dumper options to not stomp on anybody elses toes.
* Update various perldoc bugs
* Fix JSONDump of \t and \r
* Change .as to .fmt to coincide with Perl6 (.as is still there - just not documented)
2.04 2006-07-10
* Allow for items not in group order to get added to validation correctly in CGI::Ex::Validate.
* Add samples/index.cgi
* Fix samples/app/cgi_ex_* to actually work.
* Added CGI::Ex::JSONDump
* Change Validate to use JSONDump instaed of JSON
* Various perldoc and other bug fixes.
* Removed CGI-Ex.spec - use cpan2rpm or cpan2deb instead.
2.03 2006-06-10
* Fix the associativity of operators in Template to match perl
* Allow for multiple prefix operators.
* Change name of parse_variable to parse_expr
* Change name of get_variable to play_expr
2.02 2006-06-08
* Fix the yaml tests
* Add failed_sleep to Auth
* Various pod fixes
* Allow for conf_read and write errors to die - we really do need to have those bubble up.
* Fix all tests
* Allow for validate.js to work with existing onsubmit handlers of forms
* Added "as" virtual methods to Template
* Added Virtual Objects to Template
* Added self modifiers (*= etc) to Template
* Added increment and decrement (++ --) to Template
* Allow for scientific notation and hexidecimal in Template
* Added int, rand and random virtual methods to Template
2.01 2006-05-31
* Added App refine_path hook.
* Added App destroy method.
* Fix CGI::Ex::Template perldoc.
2.00 2006-05-30
* Added CGI::Ex::Template and test suites
* Allow for CGI::Ex::Template to be fully TT2 syntax compliant
* Re-implementation of CGI::Ex::Auth
* Allow for step to be automatically untainted during loop in CGI::Ex::App
* Fix base_dir_rel to work with "" as the dir in CGI::Ex::App
* Bug fixes in CGI::Ex::Fill
* Better perldoc in CGI::Ex::Fill
* Add named parameter function called fill in CGI::Ex::Fill
* DProfd CGI::Ex::Conf for improvements
* DProfd CGI::Ex::Validate for improvements
* Added conf_read and conf_write methods for Conf
* Cleanup of all of the test
* Add missing tests
* Add Array Prototype fixes from Eamon Daly
* Add examples and cleanup to CGI::Ex::App
* Cleanup hooks in App (add fill_args and template_args)
* Change run_hook syntax in App
* Add dump_history with more history information
* Integrate CGI::Ex::Auth with App
1.14 2005-02-28
* Bug fix in validate (OR's were not working)
* Allow for checking for package existence without require in App
* Add hash_swap
* Add hash_base
* Add add_to_ methods for swap, fill, form, common, and errors
* Swap the run_hook order of step and hookname
* Allow for untaint in CGI::Ex::Validate
* Allow for !field in equals of CGI::Ex::Validate
* Allow for return of names in CGI::Ex::Validate
* Allow CGI::Ex to work better with CGI/mod_perl1/mod_perl2
* Fix required => 0 in javascript
1.13 2004-12-02
* Show more App perldoc examples
* Fix some App path bugs
* Add more app hooks
* Cleanup app code
* Allow for Conf to write to each of the types
1.12 2004-11-10
* Show more App perldoc examples
* Fix some App path bugs
* Change some App method names
* Allow for App js_validation
* Allow for App validation redirection
1.11 2004-11-08
* Let file path dependent tests succeed
* Allow for next current and previous steps in App
* Couple of warn cleans in App
1.10 2004-11-05
* Make CGI::Ex::App->print really work with Template
* Fix very large javascript variable swapping bug
* Numerous upgrades to App
* Fix module access in CGI::Ex
* Allow validate to populate what_was_validated array
* Allow for App to cleanup crossed references
1.00 2004-04-23
* Added set_path method
* Added Auth module
* Fix validate.js for select-multiple
* Fix validate.js for max_values
* Add min_in_set and max_in_set types for validate
* Add default for validate (sets default value)
0.99 2004-03-22
* Allow swap_template to be called with one argument
* Added extended examples in t/samples/cgi_ex_*
* Remove dependency on CGI::Util (doesn't exists on some perls)
* A few fixes on App
* Added set_form
* Updated tests
0.98 2004-03-19
* Multiple fixes in Fill module
* Updates on perldocs (thanks to Simon Bellwood for bug reports)
* Addition of Dump (debug) module
* Addition of Die module
* Addition of App module
0.97 2004-03-05
* Allow for custom_js type
* Fix unshift, shift, and push in ie 5.0
* Fix type CC in validate.js
* Allow for duplicate field definitions
0.96 2003-11-26
* Fix for pos not resetting in CGI::Ex::Fill
* Fix for general items set in self not being passed to generate_js
* Workaround for yaml_load.js |- not properly trimming whitespace
0.94 2003-11-26
* Javascript functionality is in.
0.0 2003-11-01
* Version 0.0 checked in