Compare commits

..

4 Commits

Author SHA1 Message Date
bce84c6838 v3.0.80
Some checks failed
Default (tags) / security (push) Failing after 23s
Default (tags) / test (push) Failing after 13s
Default (tags) / release (push) Has been skipped
Default (tags) / metadata (push) Has been skipped
2025-11-19 21:12:16 +00:00
ba08fcdebc fix(dependencies): Bump dependencies and devDependencies to updated versions 2025-11-19 21:12:16 +00:00
588a9d1df6 3.0.79
Some checks failed
Default (tags) / security (push) Failing after 22s
Default (tags) / test (push) Failing after 13s
Default (tags) / release (push) Has been skipped
Default (tags) / metadata (push) Has been skipped
2025-09-03 14:54:15 +00:00
b1d376207a fix(servertools): Normalize Express wildcard parameter notation to /{*splat} across server routes and handlers; add local Claude settings 2025-09-03 14:54:15 +00:00
9 changed files with 2573 additions and 2667 deletions

View File

@@ -1,5 +1,30 @@
# Changelog
## 2025-11-19 - 3.0.80 - fix(dependencies)
Bump dependencies and devDependencies to updated versions
- Upgrade @push.rocks/smartfeed: ^1.0.11 → ^1.4.0
- Upgrade @push.rocks/smartfile: ^11.2.5 → ^11.2.7
- Upgrade @push.rocks/smartjson: ^5.0.20 → ^5.2.0
- Upgrade @push.rocks/smartlog: ^3.1.8 → ^3.1.10
- Upgrade @push.rocks/smartsitemap: ^2.0.3 → ^2.0.4
- Upgrade @push.rocks/taskbuffer: ^3.1.7 → ^3.4.0
- Upgrade @tsclass/tsclass: ^9.2.0 → ^9.3.0
- Upgrade @types/express: ^5.0.3 → ^5.0.5
- Dev: Upgrade @git.zone/tsbuild: ^2.6.4 → ^3.1.0
- Dev: Upgrade @git.zone/tsbundle: ^2.5.1 → ^2.5.2
- Dev: Upgrade @git.zone/tsrun: ^1.3.3 → ^2.0.0
- Dev: Upgrade @git.zone/tstest: ^2.3.4 → ^2.8.2
## 2025-09-03 - 3.0.79 - fix(servertools)
Normalize Express wildcard parameter notation to /{*splat} across server routes and handlers; add local Claude settings
- Replaced route pattern '/*splat' with '/{*splat}' in ts/classes.typedserver.ts and ts/servertools/tools.sslredirect.ts
- Updated Express options route to use '/{*splat}' in ts/servertools/classes.server.ts
- Clarified wildcard handling comments and array-join logic for splat params in ts/servertools/classes.handlerproxy.ts and ts/servertools/classes.handlerstatic.ts
- Added .claude/settings.local.json containing local tool permissions for Claude/dev onboarding
- No functional API changes — routing pattern normalization and comment/handler improvements only
## 2025-09-03 - 3.0.78 - fix(servertools)
Fix wildcard path extraction for static/proxy handlers, correct serviceworker route, add local settings and test typo fix

View File

@@ -1,6 +1,6 @@
{
"name": "@api.global/typedserver",
"version": "3.0.78",
"version": "3.0.80",
"description": "A TypeScript-based project for easy serving of static files with support for live reloading, compression, and typed requests.",
"type": "module",
"exports": {
@@ -67,10 +67,10 @@
"@push.rocks/smartchok": "^1.1.1",
"@push.rocks/smartdelay": "^3.0.5",
"@push.rocks/smartenv": "^5.0.13",
"@push.rocks/smartfeed": "^1.0.11",
"@push.rocks/smartfile": "^11.2.5",
"@push.rocks/smartjson": "^5.0.20",
"@push.rocks/smartlog": "^3.1.8",
"@push.rocks/smartfeed": "^1.4.0",
"@push.rocks/smartfile": "^11.2.7",
"@push.rocks/smartjson": "^5.2.0",
"@push.rocks/smartlog": "^3.1.10",
"@push.rocks/smartlog-destination-devtools": "^1.0.12",
"@push.rocks/smartlog-interfaces": "^3.0.2",
"@push.rocks/smartmanifest": "^2.0.2",
@@ -82,14 +82,14 @@
"@push.rocks/smartpromise": "^4.2.3",
"@push.rocks/smartrequest": "^4.2.1",
"@push.rocks/smartrx": "^3.0.10",
"@push.rocks/smartsitemap": "^2.0.3",
"@push.rocks/smartsitemap": "^2.0.4",
"@push.rocks/smartstream": "^3.2.5",
"@push.rocks/smarttime": "^4.1.1",
"@push.rocks/taskbuffer": "^3.1.7",
"@push.rocks/taskbuffer": "^3.4.0",
"@push.rocks/webrequest": "^3.0.37",
"@push.rocks/webstore": "^2.0.20",
"@tsclass/tsclass": "^9.2.0",
"@types/express": "^5.0.3",
"@tsclass/tsclass": "^9.3.0",
"@types/express": "^5.0.5",
"body-parser": "^2.2.0",
"cors": "^2.8.5",
"express": "^5.1.0",
@@ -97,10 +97,10 @@
"lit": "^3.3.1"
},
"devDependencies": {
"@git.zone/tsbuild": "^2.6.4",
"@git.zone/tsbundle": "^2.5.1",
"@git.zone/tsrun": "^1.3.3",
"@git.zone/tstest": "^2.3.4",
"@git.zone/tsbuild": "^3.1.0",
"@git.zone/tsbundle": "^2.5.2",
"@git.zone/tsrun": "^2.0.0",
"@git.zone/tstest": "^2.8.2",
"@types/node": "^22.14.0"
},
"private": false,

5177
pnpm-lock.yaml generated

File diff suppressed because it is too large Load Diff

View File

@@ -3,6 +3,6 @@
*/
export const commitinfo = {
name: '@api.global/typedserver',
version: '3.0.78',
version: '3.0.80',
description: 'A TypeScript-based project for easy serving of static files with support for live reloading, compression, and typed requests.'
}

View File

@@ -146,7 +146,7 @@ export class TypedServer {
if (this.options.serveDir) {
this.server.addRoute(
'/*splat',
'/{*splat}',
new servertools.HandlerStatic(this.options.serveDir, {
responseModifier: async (responseArg) => {
if (plugins.path.parse(responseArg.path).ext === '.html') {

View File

@@ -19,7 +19,7 @@ export class HandlerProxy extends Handler {
// Extract the path using Express 5's params or fallback methods
let relativeRequestPath: string;
if (req.params && req.params.splat !== undefined) {
// Express 5 wildcard route (/*splat)
// Express 5 wildcard route (/*splat or /{*splat})
// Handle array values - join them if array, otherwise use as-is
relativeRequestPath = Array.isArray(req.params.splat) ? req.params.splat.join('/') : String(req.params.splat || '');
} else if (req.params && req.params[0] !== undefined) {

View File

@@ -39,7 +39,7 @@ export class HandlerStatic extends Handler {
// Extract the path using Express 5's params or fallback methods
let filePath: string;
if (req.params && req.params.splat !== undefined) {
// Express 5 wildcard route (/*splat)
// Express 5 wildcard route (/*splat or /{*splat})
// Handle array values - join them if array, otherwise use as-is
filePath = Array.isArray(req.params.splat) ? req.params.splat.join('/') : String(req.params.splat || '');
} else if (req.params && req.params[0] !== undefined) {

View File

@@ -132,7 +132,7 @@ export class Server {
});
this.expressAppInstance.use(cors);
this.expressAppInstance.options('/*splat', cors);
this.expressAppInstance.options('/{*splat}', cors);
}
this.expressAppInstance.use((req, res, next) => {

View File

@@ -10,7 +10,7 @@ export const redirectFrom80To443 = async () => {
});
smartexpressInstance.addRoute(
'/*splat',
'/{*splat}',
new Handler('ALL', async (req, res) => {
res.redirect('https://' + req.headers.host + req.url);
})