CGI-Info

 view release on metacpan or  search on metacpan

Changes  view on Meta::CPAN

Revision history for CGI-Info

1.14	Thu Jul 23 21:29:19 EDT 2026
	[ Enhancements ]
	- Add is_ai() method: returns true for known AI training/inference crawlers (ClaudeBot, GPTBot, PerplexityBot, CCBot, etc.)
	  browser_type() now returns 'ai' for these visitors
	- More helpful error message on "Multipart/form-data not supported"
	- Set status to 501 when attempting to upload to a place that doesn't take uploads
	- Log the invalid method type
	- Clone path now validates logger and croaks on deprecated expect argument, matching the normal construction path
	- Clone path deletes cached paramref so a new allow schema is applied on the first params() call
	- Upgrade t/40-more.t from Test::MockModule to Test::Mockingbird; fix three pre-existing test bugs now exposed
	- Add use autodie qw(:all) and Readonly constants ($MAX_UPLOAD_SIZE_DEFAULT, $CACHE_TTL_ROBOT, $CACHE_TTL_SEARCH) to eliminate magic numbers
	- Fix UNIVERSAL::isa() deprecation warning in _find_paths(): replaced with proper ->isa() call
	- Remove dead commented-out expect and interactive debug blocks from params()
	- Fix reversed referrer logic in is_robot(): now correctly checks if the HTTP_REFERER starts with a known crawler URL
	- Add API SPECIFICATION, MESSAGES and FORMAL SPECIFICATION sections to param() POD
	- Add t/locales.t: tests system-locale (POSIX LC_ALL) error-path invariance under en_US.UTF-8, de_DE.UTF-8, and zh_CN.UTF-8; geographic GeoIP subtests skipped unless IP::Country::Fast is installed
	- Rewrite t/function.t: Test::Most, Test::Returns, Test::Memory::Cycle, Readonly constants, white-box tests for _log/_warn/_error/_get_env/_create_file_name/_untaint_filename, $_ clobbering tests
	- Use Sub::Protected
	- Remove subroutine prototype from _sanitise_input forward declaration and definition
	- Replace explicit return undef with return in _get_env
	- Rename FIXME in _log to a Note
	- Fix spelling of overridden in POD comments
	- Add Readonly to PREREQ_PM in Makefile.PL
	- Refactor bin/info.pl to use cookie() instead of deprecated get_cookie() and improve cookie parsing split regex

	[ Bug fixes]
	- Fix bin/info.pl: add use autodie qw(:all); replace bare foreach(keys(%FORM)) with for my $key (sort keys %FORM)
	- Fix _sanitise_input: change s/^\s// to s/^\s+// so all leading whitespace is stripped (was only stripping one space)
	- Fix _untaint_filename: add explicit return at end so function returns undef (not "") when the filename regex fails to match
	- Fix t/00-load.t bail-out: capture load error before use_ok clobbers $@, then BAIL_OUT with the actual reason on failure
	- Fix double-colon instantiation validation to correctly croak when params are provided to CGI::Info::new

1.13	Sun Apr 12 08:49:24 EDT 2026
	Fixed test failures on Windows, e.g. https://www.cpantesters.org/cpan/report/5bf7930a-7048-1014-8eeb-cabb5837fa32
	Bump Test::Mockingbird version, fixes https://www.cpantesters.org/cpan/report/5992cad6-3527-11f1-a62b-8d83cf1a6737

1.12	Sun Apr  5 17:46:12 EDT 2026
	as_string should not return undef
	Added mutation tests and LCSAJ data to the test dashboard
	Say who is trying to upload or using unsupported multipart
	Block attacks with var_dump%28md5
	Allow the default max_upload_size to be configurable at runtime
	Added function.t - white-box tests for all functions, including helper functions
	Added unit.t - a set of black-box subtests to test each public function, according to their API documentation in the POD
	Added integration.t - a set of subtests to black‑box, end‑to‑end behaviour across multiple routines, including the entire package, according to the POD documentation.
		Includes as many stateful tests and tests of integration with other packages as possible.
	Added edge_cases.t - a set of destructive, pathological, boundary‑condition subtests
		Fixed an issue that edge_cases found in scanning very long parameters for injections - the scan was slow and inefficient
	Added extended.t - any other tests
	Fix handling double injection NUL via %2500

1.11	Mon Feb  2 12:59:36 EST 2026
	Fix "skipped: (no reason given)" https://www.cpantesters.org/cpan/report/6af2b33e-fef6-11f0-9424-b5d717f4d45d

1.10	Mon Feb  2 08:24:22 EST 2026
	Fix test failures on non English systems https://www.cpantesters.org/cpan/report/23060ef6-feb3-11f0-b888-30156e8775ea
	Try to fix "skipped: (no reason given)" https://www.cpantesters.org/cpan/report/6af2b33e-fef6-11f0-9424-b5d717f4d45d
		Could be an issue with Test::Needs

1.09	Fri Jan 30 08:54:26 EST 2026
	Updated test dashboard shows CPAN test failures
	Bumped version of Object::Configure to see if that fixes https://www.cpantesters.org/cpan/report/a8dc0030-dc5d-11f0-baa1-832b6e8775ea
	Bumped version of Params::Validate::Strict to see if that fixes https://www.cpantesters.org/cpan/report/a2d57ccc-dca6-11f0-8c44-bc72dd65bc3d

1.08	Thu Dec 18 08:12:56 EST 2025
	Invalid args could get through if the logger is set
	Make get_cookie() just call cookie()
	Verify the format of the cookie name
	Added test dashboard
	Croak if tmpdir is given a non-scalar for default
	No longer use Log::Any
	Set HTTP status 501 when GET is given Multipart/form-data

1.07	Sun Sep 14 09:16:12 EDT 2025
	Fix https://ci.appveyor.com/project/nigelhorne/cgi-info-vqpj8/builds/52537979/job/bnag8kvc2htkl3vf



( run in 2.666 seconds using v1.01-cache-2.11-cpan-a5162978ef8 )