Releases: marcstraube/zappzarapp-node-browser-utils
Releases · marcstraube/zappzarapp-node-browser-utils
v1.1.0
1.1.0 (2026-04-17)
Features
- network: add circuit breaker pattern to RetryQueue (#57) (d0c9204)
- request: add Content-Type response validation (#56) (e3cd5bb)
- request: expose combineAbortSignals as public utility (#54) (0adb3a9)
- storage: add custom serializer hook for BaseStorageManager (#58) (052bf66)
Bug Fixes
v1.0.3
v1.0.2
v1.0.1
Security
- validation: Fix ReDoS vulnerability in MIME type regex (
\S+→[^\s;]+) (CWE-1333) - validation: Fix incomplete string sanitization — add global flag to forbidden character replacement (CWE-116)
- request: Fix incomplete URL scheme check — case-insensitive protocol comparison and add
vbscript:to blocklist (CWE-20)
Full Changelog: https://github.com/marcstraube/zappzarapp-browser-utils/compare/v1.0.0...v1.0.1
v1.0.0
Changelog
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog,
and this project adheres to
Semantic Versioning.
1.0.0 - 2026-02-12
Initial stable release with 35 modules providing comprehensive browser
utilities. ESM-only, tree-shakeable via subpath exports, zero dependencies.
Security
- url:
UrlBuilder.withProtocol()validates protocol against allowlist,
rejecting dangerous protocols likejavascript: - websocket:
WebSocketManagerheartbeat wrapsheartbeatMessage()calls
in try-catch and routes errors to registered error handlers - clipboard:
ClipboardManager.writeTextFallback()uses try-finally to
ensure textarea is removed from DOM even iffocus()/select()throws - network:
RetryQueueconstructor validatesbaseDelay > 0and
maxDelay > 0, throwingNetworkErrorwith codeNETWORK_INVALID_OPTIONS - device:
isWindows(),isMacOS(),isLinux()use
navigator.userAgentData.platformwithnavigator.platformfallback - device:
orientationAngle()no longer falls back to deprecated
window.orientation; returns0when Screen Orientation API is unavailable
Added
Core
- core: Foundation types, Result monad for error handling, Validator for
input validation, and error classes (BrowserUtilsError, ValidationError,
StorageError, ClipboardError, NetworkError, FullscreenError,
NotificationError, CookieError, UrlError, GeolocationError) - core/validation: Centralized
CacheValidatorfor cache-specific key rules
(allows:and/, max 256 characters)
Storage
- storage: Type-safe localStorage management with LRU eviction, memory
fallback, and namespacing viaStorageManagerandStorageConfig - session: SessionStorage management with
SessionStorageManager, mirroring
storage module API - cookie: Cookie management with secure defaults (Secure, SameSite) via
CookieManagerandCookieOptions - indexeddb: IndexedDB wrapper for large data storage with
IndexedDBManager, transaction support, and store configuration
DOM Utilities
- html: HTML escaping via
HtmlEscaperand DOM helpers viaDomHelper - sanitize: HTML sanitization utilities via
HtmlSanitizerwith
DOMPurify-style configuration - scroll: Scroll utilities via
ScrollUtilsfor smooth scrolling and
position tracking - focus: Focus management via
FocusTrapandFocusUtilsfor modal dialogs
and accessible navigation - fullscreen: Fullscreen API wrapper via
Fullscreenclass with
cross-browser support - form: Form serialization via
FormSerializer, validation via
FormValidator, and utilities viaFormUtils
Events
- events: Event utilities including
debounce,throttle, andEventUtils
for delegation - keyboard: Keyboard shortcut management via
KeyboardShortcut,
ShortcutManager, andShortcutGroup - idle: requestIdleCallback utilities via
IdleCallbackwith task queue
support
Observers
- observe: Observer wrappers including
IntersectionObserverWrapper,
ResizeObserverWrapper, andMutationObserverWrapper
Network and Communication
- network: Network status detection via
NetworkStatusand retry queue via
RetryQueuewith exponential backoff - websocket: WebSocket management via
WebSocketManagerwith auto-reconnect
and connection state tracking - broadcast: Cross-tab communication via
BroadcastManagerusing
BroadcastChannel API - request: HTTP request interceptor via
RequestInterceptorwith middleware
support, authentication, and timing - offline: Offline-first queue via
OfflineQueuefor background sync with
conflict resolution
Browser APIs
- clipboard: Clipboard API wrapper via
ClipboardManagerwith fallback
support - notification: Browser notification API via
BrowserNotificationwith
permission handling - geolocation: Geolocation API wrapper via
GeolocationManagerwith options
for accuracy and timeout - visibility: Page Visibility API via
VisibilityManagerfor detecting tab
visibility changes
Device and Environment
- device: Device information detection via
DeviceInfoincluding
orientation, screen size, and touch support - features: Browser feature detection via
FeatureDetectwith comprehensive
capability reporting - media: Media query utilities via
MediaQueryfor responsive design with
breakpoint management
URL and Navigation
- url: URL building via
UrlBuilder, query parameter handling via
QueryParams, and history management viaHistoryManager
Logging and Monitoring
- logging: Console logging with configurable levels via
Loggerand
LoggerConfig - performance: Performance monitoring via
PerformanceMonitorfor tracking
Core Web Vitals and custom metrics
Security
- csp: Content Security Policy utilities via
CspUtilsfor violation
monitoring and nonce generation - encryption: Client-side encryption via
EncryptedStoragewith AES-GCM and
PBKDF2 key derivation
Caching
- cache: Cache API wrapper via
CacheManagerfor request/response caching
with expiration and size limits
Accessibility
- a11y: Accessibility utilities with
AriaUtilsfor safe ARIA attribute
management,LiveAnnouncerfor screen reader live region announcements,
ReducedMotionforprefers-reduced-motiondetection and monitoring, and
SkipLinkfor accessible skip navigation links
Download
- download: File download utilities via
DownloaderandDownloadOptions
for generating and triggering file downloads