https://github.com/amaltsev/XAO-Web
-----------------------------------

commit 61f99fe61e49cb6480520da134eff9cfa208861e
Author: Andrew Maltsev <am@ejelta.com>
Date:   Wed Apr 8 20:43:42 2026 -0700

    v1.94 Added `vf_time_last_prop` support
    
    Optionally stores persistent user verification timestamp, not cleared at
    logout.

commit e02841c1a568092569c2501c195d42166fb601aa
Author: Andrew Maltsev <am@ejelta.com>
Date:   Tue Mar 3 18:07:30 2026 -0800

    Rebased docker image to debian-bookworm-slim
    
    CentOS is long dead

commit 086643a88db8ddea22fa2688f936744efe6e0ea6
Author: Andrew Maltsev <am@ejelta.com>
Date:   Wed Apr 2 18:59:13 2025 -0700

    v1.93 Added 'unparsed' options to Web::Mailer
    
    It is convenient sometimes to use with pre-processed templates.

commit df482c7fc65b5fbd02f8d14192fd52d92492c585
Author: Andrew Maltsev <am@ejelta.com>
Date:   Wed Apr 2 17:46:18 2025 -0700

    v1.92 List-unsubscribe & extra headers in Mailer
    
    Added support for providing extra headers to emails, and an easy way to
    add RFC-8058 one click unsubscribe links.

commit 1f8e98ccdc72bd64aca6dad2a7c35c876a9c86f9
Author: Andrew Maltsev <am@ejelta.com>
Date:   Wed Apr 2 15:44:22 2025 -0700

    Replaced Data::Entropy with Crypt::URandom
    
    The Data::Entropy is deprecated. I got the email below from Robert
    Rothenberg:
    
    > XAO::DO::Web::IdentifyUser uses Data::Entropy, which defaults to using
    > the builtin rand() function before version 0.008. See CVE 2025-1860.
    >
    > At a minimum you should update the base version or Data::Entropy
    > that is required to v0.008, but the module is now deprecated, so I
    > recommend that you use something else, such as Crypt::URandom.

commit b82c260d3030d0b1e616c93efe3eb429f1b8dccf
Author: Andrew Maltsev <am@ejelta.com>
Date:   Mon May 22 14:50:01 2023 -0700

    SEFL tracking numbers don't work with dashes

commit 4e0e5603ab6094699db5bca768ba98163fc6d94c
Author: Andrew Maltsev <am@ejelta.com>
Date:   Mon May 22 14:37:26 2023 -0700

    Version bump to 1.91
    
    SEFL tracking URL support from Bill Gerrard

commit b0c2d1a0ca743abed57e6f8a4d532facb6bea43e
Merge: b7f38e6 75bcf14
Author: Andrew Maltsev <am@ejelta.com>
Date:   Mon May 22 14:33:26 2023 -0700

    Merge pull request #3 from billgerrard/patch-1
    
    Add shipping tracking support for SELF (South Eastern Freight Lines)

commit 75bcf14956ca9344a3f8b8dd3c75121b8de3c2cc
Author: Bill Gerrard <beachbill@gmail.com>
Date:   Mon May 22 15:01:36 2023 -0600

    Add shipping tracking support for SELF (South Eastern Freight Lines)

commit b7f38e6e5640a8cf617b9e51ce9960f6b9cd41e7
Author: Andrew Maltsev <am@ejelta.com>
Date:   Wed Dec 7 20:46:26 2022 -0800

    v1.90 Fixed error handling in FilloutForm
    
    Error messages returned from external error checking were not included
    in field HTML content. Default content does not use that, but it did not
    work if a site used custom templates that rely on error messages (e.g.
    for styling).

