framework/backend/entry-node.ts | 28 - framework/bundle.ts | 376 +-- framework/css.ts | 49 +- framework/esbuild-support.ts | 59 +- framework/font.ts | 275 +- framework/generate.ts | 472 --- framework/hot.ts | 308 -- framework/incremental.ts | 738 ----- framework/lib/assets.ts | 286 +- framework/lib/drizzle.test.ts | 125 + framework/lib/drizzle.ts | 182 ++ framework/lib/path.ts | 24 +- framework/lib/sitegen.ts | 22 +- framework/lib/sqlite.ts | 171 - framework/lib/view.ts | 155 +- framework/marko.ts | 146 +- framework/watch.ts | 185 -- lib/assert.ts | 7 + lib/deno.json | 2 + lib/exception.ts | 2 +- lib/http.test.ts | 73 + lib/http.ts | 101 +- lib/incremental.ts | 5398 ++++++++++++++++++++++++++++++++ lib/incremental/debugger.test.ts | 363 +++ lib/incremental/esm.test.ts | 938 ++++++ lib/incremental/example/.gitignore | 1 + lib/incremental/example/formatter.ts | 46 + lib/incremental/example/index.md | 7 + lib/incremental/example/markdown-blog.ts | 69 + lib/incremental/example/posts/first.md | 5 + lib/incremental/example/posts/second.md | 5 + lib/incremental/file.test.ts | 185 ++ lib/incremental/resolution.test.ts | 671 ++++ lib/incremental/serialization.test.ts | 56 + lib/incremental/sqlite.test.ts | 332 ++ lib/incremental/steps.test.ts | 1784 +++++++++++ lib/incremental/visualization.ts | 1479 +++++++++ lib/log.ts | 27 +- lib/log/stack.test.ts | 85 +- lib/log/stack.ts | 536 ++-- lib/mime.ts | 5 +- lib/node.ts | 2 + lib/package.json | 4 - lib/progress.ts | 99 +- lib/readme.changes.md | 9 + lib/readme.md | 6 +- lib/repl.test.ts | 16 +- lib/repl.ts | 2 +- lib/string/ansi.test.ts | 13 + lib/string/ansi.ts | 97 + lib/subprocess.ts | 10 +- lib/ts.ts | 15 +- package-lock.json | 331 +- package.json | 3 +- readme.md | 40 +- run.js | 220 +- src/backend.ts | 15 +- src/bin/deploy.ts | 111 +- src/blog/tags/blog-layout.marko | 2 - src/file-viewer/backend.ts | 48 +- src/file-viewer/bin/file-scan.ts | 35 +- src/file-viewer/bin/migrate-db.ts | 331 -- src/file-viewer/cache.test.ts | 5 +- src/file-viewer/cache.ts | 2 +- src/file-viewer/format.ts | 14 +- src/file-viewer/highlight.ts | 22 +- src/file-viewer/indexer/dirmeta.ts | 24 +- src/file-viewer/indexer/processors/media.ts | 11 +- src/file-viewer/indexer/processors/text.ts | 7 +- src/file-viewer/indexer/registry.ts | 8 +- src/file-viewer/indexer/scan.ts | 55 +- src/file-viewer/indexer/studio.ts | 19 +- src/file-viewer/models/FilePermissions.ts | 61 - src/file-viewer/models/MediaFile.ts | 500 --- src/file-viewer/models/ProcessorState.ts | 146 - src/file-viewer/models/derived.ts | 172 +- src/file-viewer/models/media-files.ts | 329 ++ src/file-viewer/models/permissions.ts | 36 + src/file-viewer/models/processors.ts | 74 + src/file-viewer/pages/file.404.marko | 4 +- src/file-viewer/pages/file.cotyledon-enterance.marko | 4 +- src/file-viewer/pages/file.cotyledon-speedbump.marko | 4 +- src/file-viewer/rules.ts | 4 +- src/file-viewer/sort.ts | 5 +- src/file-viewer/sync.ts | 51 +- src/file-viewer/tags/media-dir.marko | 7 +- src/file-viewer/tags/media-list-item.marko | 21 +- src/file-viewer/tags/media-panel.marko | 13 +- src/file-viewer/tags/media-root-dir.marko | 7 +- src/file-viewer/tags/view-audio.marko | 9 +- src/file-viewer/tags/view-chat.marko | 2 +- src/file-viewer/tags/view-text.marko | 4 +- src/file-viewer/tags/view-video.marko | 3 +- src/file-viewer/views/clofi.marko | 3 +- src/file-viewer/views/lofi.marko | 7 +- src/friend-auth.ts | 6 +- src/paperclover.net.ts | 428 +++ src/q+a/backend.ts | 58 +- src/q+a/image.ts | 68 +- src/q+a/lol.zip/backend.ts | 2 +- src/q+a/models/PendingQuestion.ts | 72 - src/q+a/models/Question.ts | 125 - src/q+a/models/questions.test.ts | 34 + src/q+a/models/questions.ts | 112 + src/q+a/pages/admin.q+a.marko | 7 +- src/q+a/pages/q+a.marko | 9 +- src/q+a/scripts/editor.client.ts | 4 +- src/q+a/tags/question-layout.marko | 1 - src/q+a/tags/question.marko | 4 +- src/q+a/views/backend-inbox.marko | 6 +- src/q+a/views/editor.marko | 14 +- src/q+a/views/image-embed.marko | 2 +- src/q+a/views/permalink.marko | 17 +- src/site.ts | 10 +- src/source-of-truth.dockerfile | 4 +- src/source-of-truth.test.ts | 4 +- src/source-of-truth.ts | 20 +- src/tags/clover-media.marko | 7 +- src/tags/clover-video.marko | 9 +- src/tags/questions-embed.marko | 4 +- src/web.dockerfile | 16 +- tsconfig.json | 3 +- vitest.config.ts | 8 + 123 files changed, 14567 insertions(+), 5307 deletions(-)