Releases: danfuzz/lactoserv
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).
v0.7.4
Breaking changes:
- None.
Other notable changes:
net-util
:- Found a major problem with the
pem
module (one of our few direct
dependencies). Replaced it withselfsigned
, which -- bonus! -- unlike
pem
does not rely on an OS-installed OpenSSL, thereby simplifying our
installation requirements.
- Found a major problem with the
- testing: Added more unit tests.
v0.7.3
Breaking changes:
data-values
:- Made it so that all instances of
BaseStruct
are frozen. This had been
intended all along, but was overlooked in the implementation until now.
- Made it so that all instances of
metacomp
:- Distilled all the static
make*Proxy()
methods onBaseProxyHandler
down
to just a single options-takingmakeProxy()
.
- Distilled all the static
Other notable changes:
- Stopped complaining if run with Node v22.
- configuration /
webapp-builtins
:- Added
dispatchLogging
configuration toendpoint
entries (class
NetworkEndpoint
). DataRateLimiter
: AddedverboseLogging
option, off by default, to make it
possible to log the major stuff without getting a lot ofwriting(1234)
type messages.PathRouter
: Made it possible to cut off fallback search by explicitly
binding a path tonull
.
- Added
compy
:- New method
BaseComponent._prot_addAll()
, for multiple children. - Made it possible for a component to add children before it is initialized.
- New method
data-values
:- Add to
Converter
the ability to configure how to encode proxies.
- Add to
- testing:
- With apologies to Goodhart's Law... Wrote a bunch of unit tests to cover
notable gaps, based on the coverage report.
- With apologies to Goodhart's Law... Wrote a bunch of unit tests to cover