Revision history for Perl module HTTP::Promise

v0.7.3 2026-03-09T13:13:37+0900
    - HTTP::Promise::Body::Form::Data: When building a multipart/form-data request
      with a Module::Generic::File object, the MIME type is now properly split into
      Content-Type (inner format, e.g. application/x-tar) and Content-Encoding
      (compression layer, e.g. gzip) for compressed archives such as .tar.gz, .tar.bz2,
      .tar.xz, .tar.zst. Multiple encoding layers are supported.
    - HTTP::Promise::Stream: Added package variable $MIME_ENCODING and new public method
      mime2encoding() to map a MIME type (e.g. application/gzip) to its encoding token
      (e.g. gzip).
    - HTTP::Promise::Stream: Added $ENCODING_ALIAS table (x-gzip, x-bzip2, x-uuencode,
      x-compress, compress, x-zip, inflate, quoted-printable, rawinflate, uuencode)
      and use it in encoding2suffix() to resolve aliases before lookup.
    - HTTP::Promise::Stream: Added $CLASSES aliases for br, x-compress, and uuencode.
    - HTTP::Promise::Stream: Added Z => lzw to the $SUFFIX_ENCODING reverse map to
      support legacy Unix .Z compressed files.
    - HTTP::Promise::Stream: Fixed rawinflate class alias (was wrongly pointing to
      inflate instead of rawdeflate).
    - HTTP::Promise::Stream: Added deflate to the list of encodings checked for browser
      support.
    - HTTP::Promise::Stream: Improved error propagation — encoding/decoding errors now
      return proper HTTP::Promise::Exception objects instead of raw $@ strings.
    - HTTP::Promise::Stream: Fixed init() condition (!defined || !length replacing && ).
    - HTTP::Promise::Stream: Added private method _encoding2suffix_map() returning a
      shallow copy of $ENCODING_SUFFIX for safe cross-package access.
    - HTTP::Promise::Stream: Fixed typo in POD (QuptedPrint -> QuotedPrint).
    - HTTP::Promise::Stream: Corrected version to v0.3.0.
    - HTTP::Promise::Stream::Base64, Brotli, LZW, QuotedPrint: Fixed bare return
      statements to return pass_error() instead; replaced string eval with block eval
      using local $SIG{__DIE__} for safer optional module loading.
    - HTTP::Promise::Stream::UU: Same bare-return and debug message improvements.
    - HTTP::Promise::Headers: Improved header() setter — validates header name, and
      dispatches to the dedicated accessor method when one exists for the given field.
    - HTTP::Promise::Headers: Improved _date_header() to handle Module::Generic::DateTime
      and DateTime objects explicitly before falling through to the epoch/string path;
      fixed argument order in warning message.
    - HTTP::Promise::Headers: Corrected version to v0.3.2.
    - HTTP::Promise::Message: Improved error message for bad header argument.
    - HTTP::Promise::Message: Fixed decode_json() to use new_json_safe() and properly
      dereference the scalar ref returned; improved error reporting.
    - HTTP::Promise::Message: Fixed missing pass_error() propagation in decode_content().
    - HTTP::Promise::Message: Corrected version to v0.3.3.
    - HTTP::Promise::Request: Added convenience method authorization_basic() delegating
      to the headers object.
    - HTTP::Promise::Response: Added uri() method and initialised uri property in init().
    - HTTP::Promise::Entity: Fixed indentation of the codec options hash; added debug
      option propagation to the stream decoder.
    - t/07.stream-suffix.t: Corrected zstd test cases to use .zst extension.
    - Added warning when content data provided is text content and is provided in Perl
      internal utf8 encoding.

v0.7.2 2025-10-19T16:47:20+0900
    - Improved error() in HTTP::Promise::Headers

v0.7.1 2025-10-15T03:04:06+0900
    - Replaced dependency Want for Wanted, and corrected unti test. Thanks to Slaven Rezić. Gitlab #6, and #7

v0.7.0 2025-10-12T07:29:08+0900
    - Updated HTTP::Promise::Headers to account for RFC9457 mime-type: application/problem+json
    - Correction in error handling in HTTP::Promise::IO
    - Minor improvement in HTTP::Promise::Status::_min_max
    - Expanded and improved localised HTTP errors in HTTP::Promise::Status now covering the following locales: cs_CZ, de_DE, en_GB, es_ES, fr_FR, ga_IE, it_IT, ja_JP, ko_KR, nb_NO, nl_NL, pl_PL, pt_BR, pt_PT, ro_RO, ru_RU, sr_RS, sv_SE, tr_TR, zh_CN, zh_TW

v0.6.3 2025-08-30T20:09:40+0900
    - Corrected dependency

v0.6.2 2025-08-30T18:04:49+0900
    - Corrected unit test for form-data
    - Centralised use of warnings with HTTP::Promise category

v0.6.1 2025-07-31T05:03:54+0900
    - Improvded HTTP::Promise::Headers for threaded environment
    - Improved documentation on thread-safety
    - Corrected some issues with multipart/form-data queries

v0.6.0 2025-07-30T16:30:49+0900
    - Updated dependencies

v0.5.3 2025-03-09T21:27:49+0900
    - Corrected HTTP::Promise::Body::Form to better handle array provided to its instantiator.

v0.5.2 2024-09-05T21:07:34+0900
    - Updated dependencies

v0.5.1 2024-03-27T16:53:48+0900
    - Minor correction of undefined variable in HTTP::Promise
    - Correcting minor bug in _read_body() in HTTP::Promise

v0.5.0 2024-02-12T21:30:05+0900
    - Added method prepare() in HTTP::Promise
    - Added method host() in HTTP::Promise::Request
    - Added a warning when parameters are passed as an hash reference and not an hash to methods post, put, patch, etc that rely on _make_request_data()

v0.4.1 2024-02-06T06:30:56+0900
    - Correcting small bug in HTTP::Promise::Body::Form

v0.4.0 2024-02-01T23:17:20+0900
    - Added the method decode_json() in HTTP::Promise::Message

v0.3.3 2023-10-10T08:15:14+0900
    - Corrected malformed signature for distribution release

v0.3.2 2023-10-07T12:04:00+0900
    - Corrected malformed signature for distribution release

v0.3.1 2023-09-22T09:41:30+0900
    - Correcting a bug in method is_binary() in HTTP::Promise::Entity affecting the content of the data being tested.
    - Checking in method _read_body_chunked() in HTTP::Promise that the length of data written to body file matches the expected amount or returns an error.

v0.3.0 2023-09-08T18:57:43+0900
    - Code cleanup
    - Minor improvement in method value() of HTTP::Promise::Field::QualityValue
    - Corrected a bug where the default headers set with default_headers() were not used.

v0.2.5 2023-08-29T10:18:48+0900
    - Added option accept_encoding to enable/disable receiving compressed data
    - Added the possibility of setting a query string for POST/PUT queries
    - Updated _make_request_data() to only set default Content-Type and Content-Length only when there is some data provided
    - Updated _make_request_query() to accept special header name 'Content' or 'Query' to set the query string.

v0.2.4 2023-08-15T15:35:14+0900
    - Added method as_form_data in module HTTP::Promise::Message
    - Added method url_encode to HTTP::Promise::Request
    - Correcting a typo in HTTP::Promise::Stream::Base64
    - Improved documentation in HTTP::Promise::Pool

v0.2.3 2022-12-21T11:17:09+0900
    - Corrected a typo in method request in HTTP::Promise

v0.2.2 2022-11-12T14:21:39+0900
    - Updated init() in HTTP::Promise to instantiate a default HTTP::Promise::Headers object to make default_header() method work.

v0.2.1 2022-10-29T21:15:10+0900
    - Added object argument 'medium' and 'shared_mem_size' that are passed to Promise::Me
    - Added method httpize_datetime to ensure a given DateTime object stringifies to a valid HTTP date
    - Added the instantiation option 'use_promise' (default to true). If false, it returns the HTTP response instead of the promise.

v0.2.0 2022-08-24T10:28:44+0900
    - Added exportable class function fetch
    - Corrected an ineffective local_address option and method
    - Added the local_host and local_port options and methods in HTTP::Promise
    - Changed HTTP::Promise::IO to support local host and port when making connections

v0.1.6 2022-08-06T19:48:15+0900
    - Attempting to correct an issue with THAWing HTTP::Promise::Message

v0.1.5 2022-08-06T13:57:59+0900
    - Removing an overlooked debugging module from test unit

v0.1.4 2022-07-17T05:56:32+0900
    - Minor correction on the temporary file extension to store response data in _read_body_chunked() in HTTP::Promise
    - Corrected passing the error object with the reject callback in delete, get, options, patch, post, put methods in HTTP::Promise
    - Added suport for serialisation by CBOR, Sereal and Storable for all modules
    - Correcting a bug in HTTP::Promise::Headers::ContentSecurityPolicyReportOnly, in report_uri()
    - Corrected missing parameters in delete() and options() methods in HTTP::Promise

v0.1.3 2022-07-01T10:44:30+0900
    - Correcting error in pod documentation affecting CPAN indexing

v0.1.2 2022-06-30T13:56:42+0900
    - Added missing requirement for URL::Encode::XS

v0.1.1 2022-06-28T06:38:36+0900
    - Remove dependency on curry

v0.1.0 2022-06-27T23:01:44+0900
    - Initial release