Releases: danfuzz/lactoserv
v0.8.5
Breaking changes:
loggy-intf
:- Moved
FormatUtils
contents tonet-util.EndpointAddress
(see below).
- Moved
net-util
:- New classes
EndpointAddress
andInterfaceAddress
which replace use of
ad-hoc plain objects. Use sites updated across all modules. - Moved IP-address-related bits from
HostUtil
intoEndpointAddress
. - Moved interface-related bits from
HostUtil
intoInterfaceAddress
.
- New classes
Other notable changes:
valvis
:BaseValueVisitor
:- Added
isInterned
argument to_impl_visitSymbol()
.
- Added
v0.8.4
Breaking changes:
loggy-intf
:- Improved the data model used to encode logged items, including:
- Representing functions and classes as structured objects instead of just
strings. - Making it possible to encode values with reference cycles.
- Representing functions and classes as structured objects instead of just
- Improved the data model used to encode logged items, including:
webapp-builtins
:- Simplified naming scheme for preserved log files: Names now always include
a-<num>
suffix after the date.
- Simplified naming scheme for preserved log files: Names now always include
Other notable changes:
- general:
- Allow node version 23.
loggy-intf
:- Improved "human" (non-JSON) log rendering, including:
- Correctly rendering shared references.
- Tweaking the styling for readability.
- Improved "human" (non-JSON) log rendering, including:
structy
:- Started allowing any object (plain or not) to be used as the argument to the
BaseStruct
constructor. - Added the option to allow undeclared properties to be dynamically vetted
instead of always getting rejected, via two additional_impl*
methods.
- Started allowing any object (plain or not) to be used as the argument to the
valvis
:BaseValueVisitor
:- Simplified detection of reference cycles.
- Added argument
isCycleHead
to_impl_shouldRef()
, so client code can
choose to be more cycle-aware.
v0.8.3
v0.8.3 -- 2024-11-07
Breaking changes:
sexp
(wasdecon
):- Renamed module to
sexp
. The old name arguably had the wrong emphasis. - Added
forLogging
argument toIntfDeconstructable.deconstruct()
.
- Renamed module to
quant
:- Changed concrete classes to only add human-oriented bits to deconstructed
results when passedforLogging === true
(see above). - Reworked the
toString()
options ofMoment
.
- Changed concrete classes to only add human-oriented bits to deconstructed
valvis
:BaseValueVisitor
:- Renamed some methods, for clarity and consistency.
- New method
visitWrap()
, which has the same "synchronous if possible but
async if not" behavior that is used internally. - Reworked (the renamed)
_prot_visitWrap()
to have more consistent
behavior. - New method
_prot_visitSync()
to parallel the analogous public method
visitSync()
.
- Reworked
VisitDef
andVisitRef
to not assume an associated visitor
instance. This makes them usable in more situations.
loggy-intf
/loggy
:- Changed "human" (non-JSON) logs to just emit a "seconds-only" timestamp on
each logged event, while adding a full timestamp as a header of sorts no
more than once per minute. This makes for more available console width for
the logged payloads, aiding log readability. - Started passing
forLogging
astrue
when calling
IntfDeconstructable.deconstruct()
(see above).
- Changed "human" (non-JSON) logs to just emit a "seconds-only" timestamp on
structy
:- Changed the default property-checker method prefix from
_struct_
to
_prop_
.
- Changed the default property-checker method prefix from
webapp-builtins
:- Added
ignoreCase
option toHostRouter
, which defaults totrue
. (This
is a breaking change because it never used to ignore case, which was
surprising in terms of usual webserver expectations.)
- Added
Other notable changes:
loggy-intf
/loggy
:- Improved "human" (non-JSON) rendering of arrays, symbols, bigints,
undefined
, andnull
.
- Improved "human" (non-JSON) rendering of arrays, symbols, bigints,
v0.8.2
Breaking changes:
valvis
,decon
,util
, andcodec
:- New module
valvis
("VALue VISitor"), derived fromcodec
:- New class
BaseValueVisitor
, along with a couple helper classes. This is
an implementation of the "visitor" pattern to iterate over arbitrary
JavaScript object graphs. It was extracted from thecodec
encoding code,
and made more general. - Merged in the contents of
util
(one class). - Tweaked
StackTrace
, to make it not rely on thecodec
interfaces / base
classes.
- New class
- New module
decon
, derived fromcodec
:- New class
IntfDeconstructable
which replacescodec.BaseCodec.ENCODE
. - Pulled in
Sexp
fromcodec
, with tweakage.
- New class
- Deleted the remainder of
codec
. Farewell!
- New module
loggy-intf
/loggy
:- Removed
IntfLoggingEnviroment.logPayload()
. - New class
LoggedValueEncoder
, which replaces the log-related stuff in
codec
. - Made the system logs written to stdout be a bit more colorful and a lot
more readable.
- Removed
texty
: Renamed this module fromtext
.
Other notable changes:
texty
:- Added a bunch of new classes to help with structured text rendering (such as
for logs).
- Added a bunch of new classes to help with structured text rendering (such as
webapp-util
:- Fixed
Rotator
andSaver
to not bother "preserving" empty files.
- Fixed
v0.8.1
Breaking changes:
data-values
: This module was effectively several different modules in a
trench coat. It has now been retired, with its former contents now in four new
modules:codec
: value encoding / decoding.quant
: unit quantity classes, plus wall-time representation.structy
: struct-like class definition.util
: miscellaneous utilites (with just one class,ErrorUtil
, at least
for now).
Other notable changes:
async
: Minor fixes of problems discovered while addressing a couple of unit
test coverage oversights.net-util
: New classBase64Url
.- Pulled in new version of sibling project Bashy-lib.
- Made various fixes that became evident with the new version of
node-project lint
.
v0.8.0
Breaking changes:
net-util
:IncomingRequest.fromNodeRequest()
is now anasync
method, and its final
argument is now a catch-alloptions
. ("If a function has more than two
arguments, you haven't yet discovered all of them." --Unknown)
Other notable changes:
net-util
:IncomingRequest
:- Added
body
constructor option. - Made it start rejecting requests whose request method (e.g.
GET
) isn't
defined to take a request body but where the request actually does have a
body. - Fixed
getHeaderOrNull()
, which had been broken for a while. fromNodeRequest()
now reads the request body when present, and returns
it in the constructed instance.
- Added
- Defined a base class,
BaseResponse
for the two concrete response classes. - Added a handful of static getters to
StatusResponse
. - Various other tweaks and fixes, motivated by a downstream project.
webapp-builtins
:- Make
StaticFiles
andSimpleResponse
only respond successfully toGET
andHEAD
requests.
- Make
webapp-core
/ config:- Added
NetworkEndpoint
configurationmaxRequestBodySize
.
- Added
v0.7.8
Breaking changes:
- None.
Other notable changes:
- Updated npm-origined dependencies for the unit test framework, motivated by a
vulnerability report. StaticFiles
: Notice when thenotFoundPath
file gets changed, instead of
only ever setting up the not-found response during system startup.
v0.7.7
v0.7.6
Summer stability! This is the first stable release of the v0.7.* series. The
current plan is to let v0.7.* be the main release series for the next several
months, letting downstream projects use it more or less as-is for a while... and
offer feedback, if they are so inspired, to help drive the next major round of
development.
Breaking changes:
- None.
Other notable changes:
net-util
:- Minor fixes to hostname / IP address parsing.
webapp-core
:- Exported
NetworkHost
, which was supposed to have been public since day
one.
- Exported
- testing:
- Added more unit tests.
- Fixed a handful of bugs that cropped up from the effort (all minor).
v0.7.5
Is it stable? Assuming no major problems in the next week or so, the next
release will be a nearly-no-changes one and will be declared the first stable
release of the v0.7.* series.
Breaking changes:
- framework development:
- Moved testing-related module exports into submodules named
<name>/testing
.
- Moved testing-related module exports into submodules named
Other notable changes:
- testing:
- Added more unit tests.
- Fixed a handful of bugs that cropped up from the effort (all minor).