deno.jsonc | 10 -- dprint.jsonc | 24 +++ framework/backend/entry-node.ts | 2 +- framework/bundle.ts | 51 +++--- framework/css.ts | 18 +- framework/esbuild-support.ts | 16 +- framework/font.ts | 38 ++--- framework/generate.ts | 16 +- framework/hot.ts | 17 +- framework/incremental.ts | 57 +++---- framework/lib/assets.ts | 21 +-- framework/lib/fs.ts | 2 +- framework/lib/path.ts | 8 +- framework/lib/sitegen.ts | 9 +- framework/lib/sqlite.ts | 10 +- framework/lib/view.ts | 13 +- framework/marko.ts | 22 +-- framework/watch.ts | 27 ++- lib/Events.ts | 8 +- lib/async.ts | 2 +- lib/error.ts | 1 - lib/examples/progress-log-stream.ts | 4 +- lib/examples/progress-stdout-stream.ts | 2 +- lib/examples/server.ts | 27 ++- lib/http.ts | 10 +- lib/log.test.ts | 284 ++++++++++++++++---------------- lib/log.ts | 148 ++++++++--------- lib/log/stack.ts | 78 ++++----- lib/mime.test.ts | 2 +- lib/mime.ts | 194 +++++++++++----------- lib/node.ts | 149 ++++++++++++++++- lib/progress.test.ts | 11 +- lib/progress.ts | 117 ++++++------- lib/queue.ts | 7 +- lib/readme.changes.md | 9 +- lib/render.ts | 16 +- lib/render/jsx-runtime.ts | 8 +- lib/render/meta.test.tsx | 30 ++-- lib/render/meta.ts | 15 +- lib/stream.test.ts | 2 +- lib/stream.ts | 2 +- lib/string.test.ts | 6 +- lib/string.ts | 12 +- lib/string/ansi.test.ts | 2 +- lib/string/ansi.ts | 223 +++++++++++++++++-------- lib/subprocess.ts | 56 ++++--- lib/subprocess/ffmpeg.ts | 6 +- lib/testing.ts | 59 +++---- lib/ts.ts | 6 +- package-lock.json | 167 +++++++++++++++++++ package.json | 1 + readme.md | 45 +---- run.js | 42 ++++- src/admin.ts | 8 +- src/backend.ts | 4 +- src/bin/deploy.ts | 12 +- src/bin/download-db.ts | 2 +- src/bin/package-lib.ts | 6 +- src/blog/backend.ts | 2 +- src/file-viewer/backend.tsx | 47 +++--- src/file-viewer/bin/file-scan.ts | 96 +++++------ src/file-viewer/bin/file-trim.ts | 3 +- src/file-viewer/cache.ts | 27 ++- src/file-viewer/cotyledon.tsx | 128 ++++++-------- src/file-viewer/format.ts | 30 ++-- src/file-viewer/highlight.ts | 4 +- src/file-viewer/models/MediaFile.ts | 2 +- src/file-viewer/models/derived.ts | 12 +- src/file-viewer/pages/file.404.tsx | 2 +- src/file-viewer/pages/file.cotyledon-enterance.tsx | 2 +- src/file-viewer/pages/file.cotyledon-speedbump.tsx | 4 +- src/file-viewer/paths.ts | 8 +- src/file-viewer/redirects.ts | 6 +- src/file-viewer/rsync.ts | 32 ++-- src/file-viewer/rules.ts | 2 +- src/file-viewer/scripts/canvas_2017.client.ts | 12 +- src/file-viewer/scripts/canvas_2018.client.ts | 25 ++- src/file-viewer/scripts/canvas_2019.client.ts | 19 +-- src/file-viewer/scripts/canvas_2020.client.ts | 8 +- src/file-viewer/scripts/canvas_2021.client.ts | 46 +++--- src/file-viewer/scripts/canvas_2022.client.ts | 2 +- src/file-viewer/scripts/canvas_2023.client.ts | 16 +- src/file-viewer/scripts/canvas_2024.client.ts | 2 +- src/file-viewer/scripts/canvas_cotyledon.client.ts | 22 ++- src/file-viewer/transcode-rules.ts | 45 +++-- src/file-viewer/views/clofi.client.ts | 41 ++--- src/file-viewer/views/clofi.tsx | 149 ++++++++--------- src/friend-auth.ts | 16 +- src/pages/history-of-japan-reanimated.client.ts | 9 +- src/q+a/artifacts.ts | 28 ++-- src/q+a/backend.ts | 25 ++- src/q+a/format.ts | 4 +- src/q+a/image.ts | 6 +- src/q+a/lol.zip/backend.ts | 11 +- src/q+a/markdown.ts | 28 ++-- src/q+a/models/PendingQuestion.ts | 2 +- src/q+a/models/Question.ts | 2 +- src/q+a/scripts/editor.client.ts | 2 +- src/q+a/tags/clickable-links.client.ts | 30 ++-- src/site.ts | 4 +- src/source-of-truth.ts | 14 +- src/static/rss.xml | 199 +++++++++++----------- src/static/wurtzhome.html | 8 +- src/tags/clover-video.client.ts | 14 +- src/tags/image.tsx | 13 +- 105 files changed, 1809 insertions(+), 1544 deletions(-)