Skip to content

Releases: danfuzz/lactoserv

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

v0.7.4

22 May 17:16
Compare
Choose a tag to compare

Breaking changes:

  • None.

Other notable changes:

  • net-util:
    • Found a major problem with the pem module (one of our few direct
      dependencies). Replaced it with selfsigned, which -- bonus! -- unlike
      pem does not rely on an OS-installed OpenSSL, thereby simplifying our
      installation requirements.
  • testing: Added more unit tests.

v0.7.3

16 May 19:40
Compare
Choose a tag to compare

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.
  • metacomp:
    • Distilled all the static make*Proxy() methods on BaseProxyHandler down
      to just a single options-taking makeProxy().

Other notable changes:

  • Stopped complaining if run with Node v22.
  • configuration / webapp-builtins:
    • Added dispatchLogging configuration to endpoint entries (class
      NetworkEndpoint).
    • DataRateLimiter: Added verboseLogging option, off by default, to make it
      possible to log the major stuff without getting a lot of writing(1234)
      type messages.
    • PathRouter: Made it possible to cut off fallback search by explicitly
      binding a path to null.
  • compy:
    • New method BaseComponent._prot_addAll(), for multiple children.
    • Made it possible for a component to add children before it is initialized.
  • data-values:
    • Add to Converter the ability to configure how to encode proxies.
  • testing:
    • With apologies to Goodhart's Law... Wrote a bunch of unit tests to cover
      notable gaps, based on the coverage report.