This commit is contained in:
Philipp Kunz 2025-05-18 18:31:40 +00:00
parent 44f312685b
commit 62605a1098
3 changed files with 13 additions and 5 deletions

View File

@ -1,5 +1,12 @@
# Changelog # Changelog
## 2025-05-18 - 19.2.1 - fix(examples/dynamic-port-management)
Add explicit IRouteConfig type annotations and use 'as const' for action types in dynamic port management example
- Defined newRoute and thirdRoute with explicit IRouteConfig types
- Added 'as const' to the action.type field to enforce literal types
- Improved type-safety in dynamic port management example without altering runtime behavior
## 2025-05-18 - 19.2.0 - feat(acme) ## 2025-05-18 - 19.2.0 - feat(acme)
Improve certificate management by adding global ACME configuration support and allowing route-level overrides. Enhanced error messages help identify missing ACME email and misconfigurations (e.g. wildcard domains). Documentation has been updated and new tests added to verify SmartCertManager behavior, ensuring a clearer migration path from legacy implementations. Improve certificate management by adding global ACME configuration support and allowing route-level overrides. Enhanced error messages help identify missing ACME email and misconfigurations (e.g. wildcard domains). Documentation has been updated and new tests added to verify SmartCertManager behavior, ensuring a clearer migration path from legacy implementations.

View File

@ -6,6 +6,7 @@
*/ */
import { SmartProxy } from '../dist_ts/index.js'; import { SmartProxy } from '../dist_ts/index.js';
import type { IRouteConfig } from '../dist_ts/index.js';
async function main() { async function main() {
// Create a SmartProxy instance with initial routes // Create a SmartProxy instance with initial routes
@ -48,13 +49,13 @@ async function main() {
const currentRoutes = proxy.settings.routes; const currentRoutes = proxy.settings.routes;
// Create a new route for port 8081 // Create a new route for port 8081
const newRoute = { const newRoute: IRouteConfig = {
match: { match: {
ports: 8081, ports: 8081,
domains: ['api.example.com'] domains: ['api.example.com']
}, },
action: { action: {
type: 'forward', type: 'forward' as const,
target: { host: 'localhost', port: 4000 } target: { host: 'localhost', port: 4000 }
}, },
name: 'API Route' name: 'API Route'
@ -69,13 +70,13 @@ async function main() {
await new Promise(resolve => setTimeout(resolve, 3000)); await new Promise(resolve => setTimeout(resolve, 3000));
// Add a completely new port via updateRoutes, which will automatically start listening // Add a completely new port via updateRoutes, which will automatically start listening
const thirdRoute = { const thirdRoute: IRouteConfig = {
match: { match: {
ports: 8082, ports: 8082,
domains: ['admin.example.com'] domains: ['admin.example.com']
}, },
action: { action: {
type: 'forward', type: 'forward' as const,
target: { host: 'localhost', port: 5000 } target: { host: 'localhost', port: 5000 }
}, },
name: 'Admin Route' name: 'Admin Route'

View File

@ -3,6 +3,6 @@
*/ */
export const commitinfo = { export const commitinfo = {
name: '@push.rocks/smartproxy', name: '@push.rocks/smartproxy',
version: '19.2.0', version: '19.2.1',
description: 'A powerful proxy package with unified route-based configuration for high traffic management. Features include SSL/TLS support, flexible routing patterns, WebSocket handling, advanced security options, and automatic ACME certificate management.' description: 'A powerful proxy package with unified route-based configuration for high traffic management. Features include SSL/TLS support, flexible routing patterns, WebSocket handling, advanced security options, and automatic ACME certificate management.'
} }