From c51c1c9ec515a8a4e0982ca9c70ee781233380d3 Mon Sep 17 00:00:00 2001 From: Claude Date: Fri, 19 Jun 2026 21:00:47 +0000 Subject: [PATCH 1/3] Add Vite 8 support, BoxLang layout paths, and comprehensive docs - Bump version to 4.0.0 - Update peerDependencies to include Vite 7 and 8 - Update devDependencies: vite ^8.0.0, esbuild ^0.28.0 - Add appRefreshPaths export for BoxLang / tiered app layout (app/layouts/**, app/views/**, app/config/Router.bx) - Guard chunk.viteMetadata?.importedCss in renderChunk for Rolldown compatibility (Vite 8 may not set viteMetadata on every chunk) - Replace Manifest import from vite with a local type definition to avoid breakage if Vite renames the type in future versions - Replace any-typed renderChunk chunk param with ViteChunk interface - Fix resolveManifestConfig fallback to use .vite/manifest.json (Vite 5+ default) instead of manifest.json - Add package.json "type": "module" to support ESM eslint.config.js - Migrate ESLint config from .eslintrc.js to eslint.config.js (flat config, required for ESLint 9) - Update CI Node versions: 14/16/18 -> 18/20/22; upgrade actions to v4 - Rewrite README with full documentation: both layout configurations, configuration reference table, refresh paths, aliases, SSR, Inertia, env vars, and framework integration examples - Add tests for appRefreshPaths, BoxLang layout outDir, and refresh with appRefreshPaths (29 tests total, all passing) Co-Authored-By: Claude Sonnet 4.6 Claude-Session: https://claude.ai/code/session_011e6SYiDYZZazmdKsssrG5D --- .eslintrc.js | 9 - .github/workflows/tests.yml | 6 +- README.md | 382 +++++++++++++++++++++++++++++++++++- eslint.config.js | 26 +++ package.json | 11 +- src/index.ts | 44 ++++- tests/index.test.ts | 49 ++++- 7 files changed, 500 insertions(+), 27 deletions(-) delete mode 100644 .eslintrc.js create mode 100644 eslint.config.js diff --git a/.eslintrc.js b/.eslintrc.js deleted file mode 100644 index be0ca565..00000000 --- a/.eslintrc.js +++ /dev/null @@ -1,9 +0,0 @@ -module.exports = { - root: true, - env: { - node: true, - }, - parser: "@typescript-eslint/parser", - plugins: ["@typescript-eslint"], - extends: ["eslint:recommended", "plugin:@typescript-eslint/recommended"], -}; diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index 8844bef5..afba28f3 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -12,14 +12,14 @@ jobs: strategy: matrix: - node-version: [14.x, 16.x, 18.x] + node-version: [18.x, 20.x, 22.x] steps: - name: Checkout code - uses: actions/checkout@v3 + uses: actions/checkout@v4 - name: Use Node.js ${{ matrix.node-version }} - uses: actions/setup-node@v3 + uses: actions/setup-node@v4 with: node-version: ${{ matrix.node-version }} diff --git a/README.md b/README.md index ba33dac0..a3054b4e 100644 --- a/README.md +++ b/README.md @@ -9,15 +9,389 @@ [Vite](https://vitejs.dev) is a modern frontend build tool that provides an extremely fast development environment and bundles your code for production. -This plugin configures Vite for use with a [ColdBox](https://www.coldbox.org/) backend server. +This plugin integrates Vite with a [ColdBox](https://www.coldbox.org/) backend, handling: -## Official Documentation +- Dev-server URL injection so ColdBox can load hot-module-replacement assets. +- Asset manifest generation for cache-busted production builds. +- Full-page reload when ColdBox views, layouts, or routes change. +- Support for both the **flat** (traditional CFML/ColdBox) and **BoxLang / tiered** application layouts. -TODO: Write gitbook and link it here. +The CFML/BoxLang side of the integration is provided by the [**coldbox-vite** ColdBox module](https://www.forgebox.io/view/coldbox-vite), which reads the dev-server URL from the hot file and renders the appropriate `