minimal type info for internal and some external funcs
fix Ago updates depending on uptime, use onmessage
html/src/types/* useless (at least without tsc actually running)
remove leftover manual template merge, idForContainer() should just use template-id data key
group add event now checks that instead, raising alert when number is greater than max
ref. #2610
note that import.meta.resolve for iro returns non-es file (for some reason)
hardcode minified dist es module from node_modules, whuch should be used instead
fix server routing to only rebuild html when root is accessed
* migrate to esbuild from terser, since now js source needs bundling
* (temporary?) hijack inline-source object handling to inline html files
* get rid of legacy removeIf comments in source in favour of explicit
removal either through bundling tree-shaking and / or manual module-*
class element removal w/ jsdom
* get rid of multi-layered custom checkboxes in favour of
`appearance: none` directly styling the `input` elem
also removes scripting part that was supposed to adjust for=... labels
* update to html-minifier-terser, up-to-date html-minifier fork
* update to iro.js 5.5.x, using npm to manage dependencies
* build script can now update resulting html output
(called after bundling stage, before minification)
usually a good idea for clients like PuTTY, since these are sent by default
in the very first packet even before user types anything else
also restore iac+eof handling, which call close() on the stream
resolve#2563resolve#2606
allow just "UTC", "Monday", "05-01", etc.
clarify webui paragraph and mention KEYWORD as an element
ignore sunrise and sunset keywords when sun module is disabled
move all of parsing to time module, test whether combined match works
certain actions need to happen when
- starting restore()
- switching date within restore()
- stopping restore()
pretty good fit for an object and raii. so, using context struct to handle
sun{rise,set} initialization and per-schedule time match updates
sun{rise,set} event happens on a specific date, make sure it is also checked
fix double action trigger by comparing minutes, not raw timestamp seconds
experimenting with 'invalid state' i.e. when timestamp was not generated
include restore logic in tests, as code now lives in .ipp