From a0f714a56157455588bbe64bdb17d9c339a4bdc9 Mon Sep 17 00:00:00 2001 From: Juergen Kunz Date: Sun, 17 Aug 2025 12:49:28 +0000 Subject: [PATCH] fix(servertools): Adjust route wildcard patterns and CORS handling; update serviceworker and SSL redirect patterns; bump express dependency; add local Claude settings --- changelog.md | 10 ++++++++++ package.json | 2 +- pnpm-lock.yaml | 4 ++-- test/test.server.ts | 2 +- ts/00_commitinfo_data.ts | 2 +- ts/classes.typedserver.ts | 2 +- ts/servertools/classes.server.ts | 2 +- ts/servertools/tools.serviceworker.ts | 2 +- ts/servertools/tools.sslredirect.ts | 2 +- 9 files changed, 19 insertions(+), 9 deletions(-) diff --git a/changelog.md b/changelog.md index fd82786..d761459 100644 --- a/changelog.md +++ b/changelog.md @@ -1,5 +1,15 @@ # Changelog +## 2025-08-17 - 3.0.77 - fix(servertools) +Adjust route wildcard patterns and CORS handling; update serviceworker and SSL redirect patterns; bump express dependency; add local Claude settings + +- Normalize route wildcard patterns to use splat tokens (e.g. '/someroute/*' -> '/someroute/*splat', '/*' -> '/*splat') for consistent route matching +- Update serviceworker route registration to '/serviceworker{.*}' and adjust related handler +- Change SSL redirect route from '*' to '/*splat' +- Adjust CORS preflight options path to '/*splat' and update tests to reflect new route patterns +- Bump express dependency from ^4.21.2 to ^5.1.0 +- Add .claude/settings.local.json for local Claude tool permissions + ## 2025-08-16 - 3.0.76 - fix(handlerproxy) Use SmartRequest API and improve proxy/asset response handling; update tests and bump dependencies; add local project configuration files diff --git a/package.json b/package.json index ec9c085..91c42c8 100644 --- a/package.json +++ b/package.json @@ -92,7 +92,7 @@ "@types/express": "^5.0.3", "body-parser": "^2.2.0", "cors": "^2.8.5", - "express": "^4.21.2", + "express": "^5.1.0", "express-force-ssl": "^0.3.2", "lit": "^3.3.1" }, diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index dd0dce8..faa0821 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -111,8 +111,8 @@ importers: specifier: ^2.8.5 version: 2.8.5 express: - specifier: ^4.21.2 - version: 4.21.2 + specifier: ^5.1.0 + version: 5.1.0 express-force-ssl: specifier: ^0.3.2 version: 0.3.2 diff --git a/test/test.server.ts b/test/test.server.ts index b14d51b..cd3f3db 100644 --- a/test/test.server.ts +++ b/test/test.server.ts @@ -48,7 +48,7 @@ tap.test('should create a valid Server', async () => { tap.test('should create a valid Route', async () => { testRoute = testServer.addRoute('/someroute'); - testRoute2 = testServer.addRoute('/someroute/*'); + testRoute2 = testServer.addRoute('/someroute/*splat'); expect(testRoute).toBeInstanceOf(typedserver.servertools.Route); }); diff --git a/ts/00_commitinfo_data.ts b/ts/00_commitinfo_data.ts index 4ef53d3..6b38220 100644 --- a/ts/00_commitinfo_data.ts +++ b/ts/00_commitinfo_data.ts @@ -3,6 +3,6 @@ */ export const commitinfo = { name: '@api.global/typedserver', - version: '3.0.76', + version: '3.0.77', description: 'A TypeScript-based project for easy serving of static files with support for live reloading, compression, and typed requests.' } diff --git a/ts/classes.typedserver.ts b/ts/classes.typedserver.ts index f30dc99..b468296 100644 --- a/ts/classes.typedserver.ts +++ b/ts/classes.typedserver.ts @@ -146,7 +146,7 @@ export class TypedServer { if (this.options.serveDir) { this.server.addRoute( - '/*', + '/*splat', new servertools.HandlerStatic(this.options.serveDir, { responseModifier: async (responseArg) => { if (plugins.path.parse(responseArg.path).ext === '.html') { diff --git a/ts/servertools/classes.server.ts b/ts/servertools/classes.server.ts index 4dcb4a1..32c4079 100644 --- a/ts/servertools/classes.server.ts +++ b/ts/servertools/classes.server.ts @@ -132,7 +132,7 @@ export class Server { }); this.expressAppInstance.use(cors); - this.expressAppInstance.options('/*', cors); + this.expressAppInstance.options('/*splat', cors); } this.expressAppInstance.use((req, res, next) => { diff --git a/ts/servertools/tools.serviceworker.ts b/ts/servertools/tools.serviceworker.ts index 46ded68..b5ecc5b 100644 --- a/ts/servertools/tools.serviceworker.ts +++ b/ts/servertools/tools.serviceworker.ts @@ -38,7 +38,7 @@ export const addServiceWorkerRoute = ( swVersionInfo = swDataFunc(); // the basic stuff - typedserverInstance.server.addRoute('/serviceworker.*', serviceworkerHandler); + typedserverInstance.server.addRoute('/serviceworker{.*}', serviceworkerHandler); // the typed stuff const typedrouter = new plugins.typedrequest.TypedRouter(); diff --git a/ts/servertools/tools.sslredirect.ts b/ts/servertools/tools.sslredirect.ts index afd0fed..b2625cc 100644 --- a/ts/servertools/tools.sslredirect.ts +++ b/ts/servertools/tools.sslredirect.ts @@ -10,7 +10,7 @@ export const redirectFrom80To443 = async () => { }); smartexpressInstance.addRoute( - '*', + '/*splat', new Handler('ALL', async (req, res) => { res.redirect('https://' + req.headers.host + req.url); })