Skip to content

Latest commit

 

History

History
238 lines (183 loc) · 11.1 KB

File metadata and controls

238 lines (183 loc) · 11.1 KB

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.2.0 (2026-04-19)

Features

  • cache: add onRevalidate callback for SWR completion notification (#69) (ed24830)
  • request: add fetch streaming/progress utilities (#68) (2bd1713)

Bug Fixes

  • ci: trigger npm publish on GitHub Release event (#65) (d3a1e40)

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

  • 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)

Bug Fixes

  • 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)

Bug Fixes

  • 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

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)

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 like javascript:
  • websocket: WebSocketManager heartbeat wraps heartbeatMessage() 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 if focus()/select() throws
  • network: RetryQueue constructor validates baseDelay > 0 and maxDelay > 0, throwing NetworkError with code NETWORK_INVALID_OPTIONS
  • device: isWindows(), isMacOS(), isLinux() use navigator.userAgentData.platform with navigator.platform fallback
  • device: orientationAngle() no longer falls back to deprecated window.orientation; returns 0 when 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 CacheValidator for cache-specific key rules (allows : and /, max 256 characters)

Storage

  • storage: Type-safe localStorage management with LRU eviction, memory fallback, and namespacing via StorageManager and StorageConfig
  • session: SessionStorage management with SessionStorageManager, mirroring storage module API
  • cookie: Cookie management with secure defaults (Secure, SameSite) via CookieManager and CookieOptions
  • indexeddb: IndexedDB wrapper for large data storage with IndexedDBManager, transaction support, and store configuration

DOM Utilities

  • html: HTML escaping via HtmlEscaper and DOM helpers via DomHelper
  • sanitize: HTML sanitization utilities via HtmlSanitizer with DOMPurify-style configuration
  • scroll: Scroll utilities via ScrollUtils for smooth scrolling and position tracking
  • focus: Focus management via FocusTrap and FocusUtils for modal dialogs and accessible navigation
  • fullscreen: Fullscreen API wrapper via Fullscreen class with cross-browser support
  • form: Form serialization via FormSerializer, validation via FormValidator, and utilities via FormUtils

Events

  • events: Event utilities including debounce, throttle, and EventUtils for delegation
  • keyboard: Keyboard shortcut management via KeyboardShortcut, ShortcutManager, and ShortcutGroup
  • idle: requestIdleCallback utilities via IdleCallback with task queue support

Observers

  • observe: Observer wrappers including IntersectionObserverWrapper, ResizeObserverWrapper, and MutationObserverWrapper

Network and Communication

  • network: Network status detection via NetworkStatus and retry queue via RetryQueue with exponential backoff
  • websocket: WebSocket management via WebSocketManager with auto-reconnect and connection state tracking
  • broadcast: Cross-tab communication via BroadcastManager using BroadcastChannel API
  • request: HTTP request interceptor via RequestInterceptor with middleware support, authentication, and timing
  • offline: Offline-first queue via OfflineQueue for background sync with conflict resolution

Browser APIs

  • clipboard: Clipboard API wrapper via ClipboardManager with fallback support
  • notification: Browser notification API via BrowserNotification with permission handling
  • geolocation: Geolocation API wrapper via GeolocationManager with options for accuracy and timeout
  • visibility: Page Visibility API via VisibilityManager for detecting tab visibility changes

Device and Environment

  • device: Device information detection via DeviceInfo including orientation, screen size, and touch support
  • features: Browser feature detection via FeatureDetect with comprehensive capability reporting
  • media: Media query utilities via MediaQuery for responsive design with breakpoint management

URL and Navigation

  • url: URL building via UrlBuilder, query parameter handling via QueryParams, and history management via HistoryManager

Logging and Monitoring

  • logging: Console logging with configurable levels via Logger and LoggerConfig
  • performance: Performance monitoring via PerformanceMonitor for tracking Core Web Vitals and custom metrics

Security

  • csp: Content Security Policy utilities via CspUtils for violation monitoring and nonce generation
  • encryption: Client-side encryption via EncryptedStorage with AES-GCM and PBKDF2 key derivation

Caching

  • cache: Cache API wrapper via CacheManager for request/response caching with expiration and size limits

Accessibility

  • a11y: Accessibility utilities with AriaUtils for safe ARIA attribute management, LiveAnnouncer for screen reader live region announcements, ReducedMotion for prefers-reduced-motion detection and monitoring, and SkipLink for accessible skip navigation links

Download

  • download: File download utilities via Downloader and DownloadOptions for generating and triggering file downloads