Skip to content

Latest commit

 

History

History
256 lines (173 loc) · 9.78 KB

File metadata and controls

256 lines (173 loc) · 9.78 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.3.9] - 2025-12-20

Security

  • Dependency Security: Added npm overrides for js-yaml to fix CVE-2025-64718 (prototype pollution vulnerability)

Changed

  • Updated dependencies via npm update

[1.3.8] - 2025-10-04

Changed

  • Dependency Updates: Updated multiple development dependencies to their latest compatible versions for improved security and performance
    • Updated @types/node from 24.0.13 to 24.6.2
    • Updated @types/jest from 30.0.0 (already on latest)
    • Updated eslint-config-prettier from 10.1.5 to 10.1.8
    • Updated eslint-plugin-import from 2.28.0 to 2.32.0
    • Updated eslint-plugin-prettier from 5.5.1 to 5.5.4
    • Updated jest from 29.5.0 to 30.2.0 (major version update)
    • Updated jsdoc from 4.0.2 to 4.0.4
    • Updated snyk from 1.1297.3 to 1.1299.1
    • Updated ts-jest from 29.1.0 to 29.4.4
    • Updated typescript from 5.0.0 to 5.9.3

Notes

  • Kept eslint at 8.57.1 (ESLint 9 requires configuration migration)
  • Kept node-fetch at 2.7.0 (v3 is ESM-only, incompatible with current CommonJS setup)
  • Kept eslint-plugin-promise at 6.6.0 (v7 has peer dependency conflicts with eslint-config-standard)
  • All tests passing with 100% test suite coverage
  • No security vulnerabilities detected

[1.3.7] - 2025-07-13

Fixed

  • Enhanced TypeScript Definitions: Improved type definitions for better IntelliSense and type safety
  • Batch Operations Support: Added proper types for batch URL fetching with error handling
  • Entity Data Completeness: Added missing properties to EntityData interface (thumbnailWidth, thumbnailHeight, apiProvider, platforms)
  • Platform Link Enhancement: Added entityUniqueId property to PlatformLink interface
  • Configuration Options: Added metrics configuration option to OdesliOptions interface

Added

  • BatchError Interface: Proper error typing for batch operations with specific error categories
  • BatchResult Type: Type-safe return type for batch fetch operations
  • Enhanced Error Types: Added specific error types (BAD_REQUEST, UNAUTHORIZED, RATE_LIMITED, etc.)

[1.3.6] - 2025-07-12

Changed

  • Version bump for dependency updates and workflow improvements

[1.3.5] - 2025-07-12

Added

  • Automated Workflows: Enhanced Dependabot auto-merge workflow with version bumping and tagging
  • Dependency Updates: Updated development dependencies for security and compatibility

Changed

  • Improved CI/CD pipeline automation
  • Enhanced dependency management workflows

[1.3.4] - 2025-06-23

Changed

  • Code Refactoring: Removed redundant fetchBatch method to improve code maintainability
  • Documentation Updates: Updated README badges and documentation links

Fixed

  • Build System: Fixed build configuration for better cross-platform compatibility
  • Dependencies: Updated development dependencies for improved security

[1.3.3] - 2025-06-23

Changed

  • Version bump for registry publishing and workflow improvements

[1.3.2] - 2025-06-23

Fixed

  • Security Vulnerabilities: Fixed security vulnerabilities in dependencies
  • Test Dependencies: Added missing jest-fetch-mock dependency for proper testing
  • User-Agent Validation: Relaxed user-agent check in tests for better compatibility
  • Publishing Workflows: Streamlined publishing workflows for both npm and GitHub Packages

Changed

  • Updated package-lock.json and package.json for security improvements
  • Enhanced build and deployment processes

[1.3.1] - 2025-06-23

Changed

  • Version bump for GitHub Packages release and registry configuration

[1.3.0] - 2025-06-23

Fixed

  • Fixed a critical bug where an un-referenced setInterval in the MetricsCollector would cause Node.js processes to hang and not exit gracefully.

Added

  • The Odesli constructor now accepts { metrics: false } as an option to completely disable the metrics collection feature.

Changed

  • Code Formatting: Applied Prettier formatting for consistent code style
  • Linting: Resolved linting and formatting errors for better code quality
  • Metrics Stability: Improved metrics collector stability and performance

Note: For a comprehensive overview of all recent API enhancements and features, please see the API Improvements documentation.

[1.2.0] - 2025-06-22

Added

  • Country Code Validation: Added strict TypeScript validation for country codes using ISO 3166-1 alpha-2 standard
  • getCountryOptions() Method: New static method that returns all valid country codes with full country names for UI dropdowns
  • Enhanced TypeScript Support: Added CountryCode union type for strict country code validation
  • Improved Examples: Updated all examples to demonstrate new country code features and comprehensive usage
  • Comprehensive Testing: Added extensive tests for country code validation and getCountryOptions method
  • Better Documentation: Updated README with TypeScript examples and country code usage patterns

Features

  • TypeScript autocomplete now shows only valid country codes
  • Full country names available for UI dropdowns via getCountryOptions()
  • 249 supported countries with ISO 3166-1 alpha-2 codes
  • Enhanced error handling for invalid country codes
  • Improved batch fetching with country-specific options

Technical Improvements

  • Added comprehensive test coverage for new country code features
  • Updated TypeScript definitions with strict country code validation
  • Enhanced examples demonstrating all new features
  • Improved documentation with practical usage examples

[1.1.2] - 2024-12-18

Fixed

  • Fixed User-Agent format to match expected pattern
  • Improved error handling and propagation
  • Fixed test failures related to response handling
  • ESLint Compatibility: Resolved ESLint structuredClone compatibility issue
  • Formatting Issues: Fixed formatting issues causing CI failure
  • Workflow Configuration: Updated workflows to use master branch for CI badge

Added

  • GitHub Packages Support: Added automated GitHub Packages publishing workflows
  • Enhanced Documentation: Updated documentation and policy files
  • CI/CD Improvements: Added comprehensive CI/CD pipeline with automated testing and publishing

Changed

  • Dependencies: Updated and reverted dependencies for better compatibility
  • Line Endings: Added .gitattributes for consistent line endings across platforms
  • Linting: Fixed lint and formatting issues for CI compliance

[1.1.1] - 2024-12-18

Fixed

  • Fixed linter errors caused by Windows line endings
  • Improved code formatting and consistency
  • GitHub Packages Workflow: Enhanced GitHub Packages workflow with debugging and GITHUB_TOKEN usage
  • Package Configuration: Fixed package names configuration for different registries
  • Permissions: Added proper permissions to npm publish job

Added

  • Manual Trigger Support: Added manual trigger support to publish workflows
  • Dedicated Tokens: Implemented dedicated GH_PACKAGES_TOKEN for GitHub Packages publishing

Changed

  • Workflow Splitting: Split deployment workflows for npm and GitHub Packages
  • Documentation Links: Updated API documentation links to correct Odesli API docs

[1.1.0] - 2024-12-18

Added

  • Unified Fetch API: Single fetch() method that handles both single URLs and arrays of URLs
  • Enhanced Parameter Handling: Better validation and processing of request parameters
  • Retry Logic: Configurable retry mechanism with exponential backoff
  • Custom Headers: Support for custom request headers including User-Agent customization
  • Base URL Customization: Ability to override the default API base URL
  • Parameter Validation Toggle: Option to enable/disable parameter validation
  • Logging Support: Built-in logging with customizable log levels
  • Utility Methods: Added detectPlatform(), extractId(), and getSupportedPlatforms()
  • Cache Statistics: Enhanced cache with detailed statistics and hit rate tracking
  • Rate Limiter: Advanced rate limiting with multiple strategies (token-bucket, leaky-bucket, sliding-window)
  • Metrics Collector: Comprehensive metrics collection for monitoring and analytics
  • Plugin System: Extensible plugin architecture with hooks, middleware, and transformers
  • Batch Processing: Efficient batch fetching with concurrency control and error handling

Changed

  • Breaking Change: Replaced individual methods with unified fetch() API
  • Enhanced Error Handling: More detailed error messages and better error propagation
  • Improved TypeScript Support: Better type definitions and stricter validation
  • Better Documentation: Comprehensive examples and API documentation

Technical Improvements

  • Added comprehensive test suite with 100% coverage
  • Enhanced error handling and validation
  • Improved performance with optimized batch processing
  • Better memory management and resource cleanup
  • Enhanced logging and debugging capabilities

[1.0.0] - 2024-12-17

Added

  • Initial release of odesli.js
  • Basic API client for Odesli.co (formerly song.link/album.link)
  • Support for fetching song and album links across multiple platforms
  • TypeScript definitions
  • Basic caching mechanism
  • Error handling and validation
  • Support for API keys and rate limiting
  • Documentation and examples

Features

  • Cross-platform music link fetching
  • Support for Spotify, Apple Music, YouTube Music, and more
  • Multi-country support
  • Optional API key for higher rate limits
  • Lightweight and fast performance
  • Comprehensive error handling