Skip to content

Releases: danfuzz/lactoserv

v0.8.5

06 Dec 21:21
Compare
Choose a tag to compare

Breaking changes:

  • loggy-intf:
    • Moved FormatUtils contents to net-util.EndpointAddress (see below).
  • net-util:
    • New classes EndpointAddress and InterfaceAddress which replace use of
      ad-hoc plain objects. Use sites updated across all modules.
    • Moved IP-address-related bits from HostUtil into EndpointAddress.
    • Moved interface-related bits from HostUtil into InterfaceAddress.

Other notable changes:

  • valvis:
    • BaseValueVisitor:
      • Added isInterned argument to _impl_visitSymbol().

v0.8.4

22 Nov 20:51
Compare
Choose a tag to compare

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.
  • webapp-builtins:
    • Simplified naming scheme for preserved log files: Names now always include
      a -<num> suffix after the date.

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.
  • 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.
  • 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

07 Nov 19:24
Compare
Choose a tag to compare

v0.8.3 -- 2024-11-07

Breaking changes:

  • sexp (was decon):
    • Renamed module to sexp. The old name arguably had the wrong emphasis.
    • Added forLogging argument to IntfDeconstructable.deconstruct().
  • quant:
    • Changed concrete classes to only add human-oriented bits to deconstructed
      results when passed forLogging === true (see above).
    • Reworked the toString() options of Moment.
  • 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 and VisitRef 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 as true when calling
      IntfDeconstructable.deconstruct() (see above).
  • structy:
    • Changed the default property-checker method prefix from _struct_ to
      _prop_.
  • webapp-builtins:
    • Added ignoreCase option to HostRouter, which defaults to true. (This
      is a breaking change because it never used to ignore case, which was
      surprising in terms of usual webserver expectations.)

Other notable changes:

  • loggy-intf / loggy:
    • Improved "human" (non-JSON) rendering of arrays, symbols, bigints,
      undefined, and null.

v0.8.2

25 Oct 18:34
Compare
Choose a tag to compare

Breaking changes:

  • valvis, decon, util, and codec:
    • New module valvis ("VALue VISitor"), derived from codec:
      • 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 the codec encoding code,
        and made more general.
      • Merged in the contents of util (one class).
      • Tweaked StackTrace, to make it not rely on the codec interfaces / base
        classes.
    • New module decon, derived from codec:
      • New class IntfDeconstructable which replaces codec.BaseCodec.ENCODE.
      • Pulled in Sexp from codec, with tweakage.
    • Deleted the remainder of codec. Farewell!
  • 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.
  • texty: Renamed this module from text.

Other notable changes:

  • texty:
    • Added a bunch of new classes to help with structured text rendering (such as
      for logs).
  • webapp-util:
    • Fixed Rotator and Saver to not bother "preserving" empty files.

v0.8.1

26 Sep 16:49
Compare
Choose a tag to compare

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 class Base64Url.
  • 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

08 Aug 18:05
Compare
Choose a tag to compare

Breaking changes:

  • net-util:
    • IncomingRequest.fromNodeRequest() is now an async method, and its final
      argument is now a catch-all options. ("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.
    • 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 and SimpleResponse only respond successfully to GET
      and HEAD requests.
  • webapp-core / config:
    • Added NetworkEndpoint configuration maxRequestBodySize.

v0.7.8

30 Jul 19:12
Compare
Choose a tag to compare

Breaking changes:

  • None.

Other notable changes:

  • Updated npm-origined dependencies for the unit test framework, motivated by a
    vulnerability report.
  • StaticFiles: Notice when the notFoundPath file gets changed, instead of
    only ever setting up the not-found response during system startup.

v0.7.7

24 Jun 18:41
Compare
Choose a tag to compare

Breaking changes:

  • None.

Other notable changes:

  • configuration:
    • For all rate-limiter components, exposed the pre-existing underlying token
      bucket option initialBurst.

v0.7.6

04 Jun 20:24
Compare
Choose a tag to compare

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.
  • testing:
    • Added more unit tests.
    • Fixed a handful of bugs that cropped up from the effort (all minor).

v0.7.5

30 May 22:22
Compare
Choose a tag to compare

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.

Other notable changes:

  • testing:
    • Added more unit tests.
    • Fixed a handful of bugs that cropped up from the effort (all minor).