Update dependencies to use semantic versioning
Update package dependencies to use semantic versioning, replacing hard-coded values with version ranges and anchors. This change improves the maintainability and flexibility of the module's requirements.