Files
smartserve/changelog.md

3.9 KiB

Changelog

2025-12-05 - 1.2.0 - feat(compression)

Add cross-runtime response compression (Brotli/gzip), per-route decorators, and pre-compressed static file support

  • Introduce a cross-runtime compression provider (Node zlib + Web CompressionStream fallback) with create/get provider APIs (ts/compression/compression.runtime.ts).
  • Add compression middleware utilities (normalize config, shouldCompressResponse, algorithm selection, streaming/full-body compression) and default configuration (ts/compression/compression.middleware.ts).
  • Implement Accept-Encoding parsing, encoding selection, and compressibility checks (ts/utils/utils.encoding.ts) and export types/utilities from utils/index.ts.
  • Add @Compress and @NoCompress decorators and route-level compression metadata support (ts/decorators/decorators.compress.ts, decorators.types.ts, registry updates, and exports).
  • Integrate compression into SmartServe core: global compression config, applyCompression for custom handlers, WebDAV, static files, and route responses (ts/core/smartserve.classes.smartserve.ts, smartserve.interfaces.ts).
  • Enhance FileServer to serve pre-compressed variants (.br/.gz) when available, adjust headers/ETag/Length, and avoid using pre-compressed files for range requests (ts/files/file.server.ts).
  • Expose compression APIs from package entry point and export zlib via plugins for Node provider; update readme.hints.md with configuration examples and notes.

2025-12-03 - 1.1.2 - fix(deps)

Bump dependency versions for build and runtime tools

  • Update devDependency @git.zone/tsbundle from ^2.0.5 to ^2.6.3
  • Update devDependency @types/node from ^20.8.7 to ^24.10.1
  • Update dependency @api.global/typedrequest from ^3.0.0 to ^3.1.11

2025-12-03 - 1.1.1 - fix(adapters)

Attach WebSocket peer to typedRouter request localData and add ws dependency

  • When routing incoming WebSocket messages through TypedRouter (node/deno/bun), the connection peer is now attached to requestObj.localData so typed handlers can access the active connection.
  • Add runtime dependency on "ws" to enable WebSocket support in the Node adapter (used by dynamic import in the adapter).

2025-12-02 - 1.1.0 - feat(websocket)

Add TypedRouter WebSocket integration, connection registry, peer tagging and broadcast APIs

  • Add dependency on @api.global/typedrequest and re-export it via plugins
  • Introduce typedRouter support in IWebSocketHooks and adapters (Node, Bun, Deno) to route JSON RPC messages through TypedRouter.routeAndAddResponse
  • Add internal IWebSocketConnectionCallbacks to register/unregister peers; adapters receive these via a _connectionCallbacks property on websocket options
  • Persist per-peer tags and data (peer.tags: Set) across adapters; Bun adapter stores persistent ws.data so tags survive re-wraps
  • Add WebSocketConfigError and validate websocket config to prevent using typedRouter together with onMessage (throws if both are set)
  • Expose connection-management APIs on SmartServe: getWebSocketConnections(), getWebSocketConnectionsByTag(tag), broadcastWebSocket(data) and broadcastWebSocketByTag(tag, data)
  • Update README/hints to document TypedRouter mode, connection registry, peer tagging, and broadcast methods
  • Legacy onMessage mode remains supported; typedRouter mode enables automatic JSON routing and connection registry

2025-11-29 - 1.0.2 - fix(package)

Update package metadata, scripts and dependency pins

  • Set package exports entrypoint to ./dist_ts/index.js
  • Add/adjust npm scripts: test, build and buildDocs
  • Update devDependencies and runtime dependencies
  • Add packageManager field with pnpm lock information and update repository/bugs/homepage fields

2025-11-29 - 1.0.1 - initial release

Initial project commit and repository bootstrap.

  • Repository initialized (initial commit).
  • Added base project scaffold and starter configuration.
  • Added initial documentation placeholders (README) and basic metadata.