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.2.0 (2026-04-19)
- cache: add onRevalidate callback for SWR completion notification (#69) (ed24830)
- request: add fetch streaming/progress utilities (#68) (2bd1713)
1.1.0 (2026-04-17)
- 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)
- ci: exclude CHANGELOG.md from prettier format checks (#63) (8ea1dae)
- ci: upgrade npm for OIDC trusted publishing support (#40) (b84b28a)
- ci: use npm publish for OIDC trusted publishing (#38) (9f91a5d)
- test: stabilize flaky OfflineQueue integration test (#62) (dbce592)
1.0.3 (2026-04-10)
- ci: use --force for GitLab mirror instead of --mirror (7504d12)
- ci: use --mirror for GitLab push to handle existing tags (c564881)
- eslint-plugin: crash in <code>no-unnecessary-type-arguments</co… (933a4ed)
1.0.2 (2026-02-13)
- build: resolve ERR_UNSUPPORTED_DIR_IMPORT in ESM output (#12) (fc614eb)
- ci: align CI job names with branch protection required checks (#14) (9a6d3f0)
- hooks: prevent post-merge hook failure on no dependency changes (#16) (f022780)
1.0.1 - 2026-02-13
- 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)
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.
- 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 > 0andmaxDelay > 0, throwingNetworkErrorwith codeNETWORK_INVALID_OPTIONS - device:
isWindows(),isMacOS(),isLinux()usenavigator.userAgentData.platformwithnavigator.platformfallback - device:
orientationAngle()no longer falls back to deprecatedwindow.orientation; returns0when Screen Orientation API is unavailable
- 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: Type-safe localStorage management with LRU eviction, memory
fallback, and namespacing via
StorageManagerandStorageConfig - 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
- 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 viaFormValidator, and utilities viaFormUtils
- events: Event utilities including
debounce,throttle, andEventUtilsfor delegation - keyboard: Keyboard shortcut management via
KeyboardShortcut,ShortcutManager, andShortcutGroup - idle: requestIdleCallback utilities via
IdleCallbackwith task queue support
- observe: Observer wrappers including
IntersectionObserverWrapper,ResizeObserverWrapper, andMutationObserverWrapper
- network: Network status detection via
NetworkStatusand retry queue viaRetryQueuewith 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
- 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: 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: URL building via
UrlBuilder, query parameter handling viaQueryParams, and history management viaHistoryManager
- logging: Console logging with configurable levels via
LoggerandLoggerConfig - performance: Performance monitoring via
PerformanceMonitorfor tracking Core Web Vitals and custom metrics
- csp: Content Security Policy utilities via
CspUtilsfor violation monitoring and nonce generation - encryption: Client-side encryption via
EncryptedStoragewith AES-GCM and PBKDF2 key derivation
- cache: Cache API wrapper via
CacheManagerfor request/response caching with expiration and size limits
- a11y: Accessibility utilities with
AriaUtilsfor safe ARIA attribute management,LiveAnnouncerfor screen reader live region announcements,ReducedMotionforprefers-reduced-motiondetection and monitoring, andSkipLinkfor accessible skip navigation links
- download: File download utilities via
DownloaderandDownloadOptionsfor generating and triggering file downloads