Commit Graph
43 Commits
Author SHA1 Message Date
tbenandClaude Opus 5.5 96e392f556 1.4.0: not_found, server-only response options, compression
- Server functions can return not_found: true to render the 404 page
  with status 404.
- Page components and window.__PAGE_PROPS__ (and HMR updates) only get
  props, query, url and error. response_options, redirect, cache settings
  and res_transform stay on the server, so cookies and private headers no
  longer end up in the HTML. BunextPageProps is narrowed to match
  (breaking for code that read server-only fields from component props).
- response_options headers go through a Headers object, so repeated
  headers such as several Set-Cookie survive.
- Redirects: status_code wins over permanent; response_options headers
  and res_transform apply to redirects too.
- Gzip for compressible text responses; compress: false to turn it off.
- Files the router matches but never bundles (.server.ts, __root,
  excluded paths and directories) return 404 instead of looping through
  dev rebuild retries.
- Missing public files return 404 rather than 403, so dotted page paths
  like /users/john.doe fall through to pages again.
- importFresh detects rewrites within the filesystem's mtime granularity.
- README: self-hosted React (not esm.sh), snake_case option names, static
  file serving, cache headers, the new options.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-11-09 04:14:56 +01:00
tben ed788dff97 Add SSR bundle minify config 2026-10-17 15:03:30 +01:00
tben 5dc783fe97 Fix memory leak in dev server 2026-10-16 14:25:18 +01:00
tbenandClaude Opus 5.5 3d0771f2d0 Stop per-request module re-imports leaking memory in production
Page rendering imported the SSR bundle and .server.ts modules with a
unique ?t= query on every request, in production too. Each one became a
new, never-evicted module record (and re-ran module top-level code), so
RSS grew with request count. Cache-bust only in dev via importFresh.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-15 19:37:15 +01:00
tbenandClaude Opus 5.5 40c17f903e Keep bunext sitemap alive while sitemap exports query the DB
Bun's SQL client (mariadb/mysql adapters, Bun 1.3.14) doesn't keep the
event loop alive for a query on an idle connection, so a second dynamic
route's sitemap export querying the DB made the command exit silently.
Hold the loop open with a timer during generation, and log what a stuck
run is waiting on.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-15 09:00:40 +01:00
tbenandClaude Opus 5.5 23a309005a Add disable_seo config to keep preview deployments out of search engines
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-15 05:29:08 +01:00
tbenandClaude Opus 5.5 3a75880ae4 Date sitemap lastmod from the build pipeline; warn on skipped pages
- bunext build records when each page's client bundle hash last changed
  in .bunext/page-lastmod.json (sitemap.lastmod_file to relocate). The
  hash covers the page's whole import graph, so component edits re-date
  every page that uses them. The sitemap uses these dates as lastmod
- Add sitemap.default_lastmod
- BREAKING: use_file_lastmod now defaults to false (file mtimes are reset
  by checkouts); it is a fallback after the build record
- Warn when a page or __root.tsx is skipped because its default export
  is not at the start of a line (e.g. export { Page as default })
- Replace leaking module mocks in tests (log, grab-root-file-path) with
  spies and fixtures

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-14 18:25:38 +01:00
tbenandClaude Opus 5.5 be4bebaa22 Add robots.txt generation and sitemap chunking
- bunext sitemap now writes public/robots.txt (configurable via the
  robots config key; robots: false or --no-robots to skip). Hand-written
  robots.txt files are never overwritten without a robots config
- Large sitemaps are split into public/sitemap-chunks/sitemap-N.xml
  (sitemap.chunk_size, default 10,000, max 50,000; 50MB per file) with
  sitemap.xml as a sitemap index; stale chunks are cleaned up
- Export bunextGenerateRobotsTxt
- Run tests in publish.sh

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-14 18:02:52 +01:00
tben 632881e174 Add sitemap generation utility 2026-10-14 17:41:50 +01:00
tben eefb2ea5d2 Fix security vulnerabilities 2026-10-13 15:52:34 +01:00
tben d8ea4f8e02 Error handling bugfix: pass #1 2026-10-02 07:04:22 +01:00
tben 39a5e91eeb Add build info JSON file after builds 2026-09-23 05:18:53 +01:00
tben 2335c60cc3 Refactor artifacts to use relative directory for build step and retrieval 2026-09-23 05:08:54 +01:00
tben 1c52617728 Updates 2026-09-22 16:01:25 +01:00
tben 78e86b3999 Rename global variables 2026-08-03 12:01:40 +01:00
tben 9da1e16318 Bugfix: Fix dev function 2026-07-30 14:50:54 +01:00
tben 88ead3b3d6 Remove all Loader.registry.delete lines 2026-07-29 14:05:12 +01:00
tben c06cb73181 Update tests folder ingore pattern 2026-04-20 06:18:32 +01:00
tben f3bb972a20 Ignore test files/folders in bundling 2026-04-20 06:15:55 +01:00
tben b702e26bf6 Security fixes pass #2 2026-04-19 16:00:59 +01:00
tben 95fcee36b2 Fix server component stale caching. Add server components to SSR bundler 2026-04-19 09:04:55 +01:00
tben 9a427412f3 Refactor start and dev commands. Start in child processes. Handle errors better 2026-04-17 08:47:36 +01:00
tben 84d490b189 Bugfix. Fix SSR pages filters. Remove dedicated API bundler, use SSR bundler for pages and api routes. 2026-04-12 06:48:10 +01:00
tben 532d0d6b56 Update excluded pages paths logic. Add HMR retries on errors. 2026-04-12 05:47:12 +01:00
tben 814a289460 Fix API bundler. Use new esbuild context builder for it. 2026-04-11 12:06:53 +01:00
tben c4f7cf9164 Fix api route caching issue 2026-04-11 10:00:24 +01:00
tben 4b3a4dbc77 Bugfix. Extract react imports from main bundler to vendor static files 2026-04-08 05:39:11 +01:00
tben d441f9982e Fix react and react-dom peer dependencies mismatch #3 2026-04-05 17:58:52 +01:00
tben 7dbd1f7e12 Remove esm.sh externals 2026-03-31 06:57:44 +01:00
tben 321c8ebb89 Refactor Bundler. Fix bugs. 2026-03-24 22:03:55 +01:00
tben 60ee353bf0 Refactor Server Paradigm. 2026-03-24 07:18:57 +01:00
tben 4b8b610e32 Updates 2026-03-23 07:42:00 +01:00
tben 1634eeb213 Major Refactoring. Test update 2026-03-22 16:45:12 +01:00
tben e2df3256f4 Bogfix: update server module stripping function. 2026-03-22 12:32:15 +01:00
tben 49d6781170 Update web-page handler: add more detailed error logs 2026-03-22 10:56:48 +01:00
tben 3d044ee79e Bugfix. Update Tsx server stripping function to have absolute paths. Run the rewrite function on dev and build commands. 2026-03-22 10:53:27 +01:00
tben a9af20a8b2 Major Bugfix. Fix server component client compatibility 2026-03-22 10:34:30 +01:00
tben 4b79993d37 Bugfix. Update generate-web-html function 2026-03-21 14:24:12 +01:00
tben 51db0c447c Bugfix. Update generate-web-html function 2026-03-21 14:05:02 +01:00
tben 7ef114ee70 Handle browser Errors. 2026-03-21 06:34:32 +01:00
tben 52dde6c0ab Update HMR. Make it true HMR. Add URL to page server props 2026-03-20 11:19:22 +01:00
tben f722d4ae47 Update dist 2026-03-19 05:27:31 +01:00
tben eec0df83cd Add dist 2026-03-18 17:37:24 +01:00