vendure 2.14.1
vendure: ^2.14.1 copied to clipboard
Flutter SDK for Vendure Open Source Headless Commerce Framework.
2.14.1 #
- Fix: Instead of returning null, always throw exception on Auth
2.14.0 #
- Feature: Converted to dart package, with support for Flutter and Dart.
2.13.0 #
- Feature: Added support for nested custom fields in
customFieldsConfig. - Feature: Support for
SCALAR_CUSTOM_FIELDSmarker to requestcustomFieldsas a raw scalar (prevents JSON subfield selection errors). - Performance: Optimized the
Customerfragment by leaning down fields, resulting in faster queries. - Internal: Enhanced GraphQL query sanitization to handle complex nested fragments.
2.12.0 #
- Fix: Restored the
customFieldsoperation that was accidentally removed in the previous release.customFieldssupport is now available again for all operations that accept custom fields. - Note: If you experienced missing
customFieldsbehaviour in 2.11.0, upgrading to 2.12.0 will restore the expected functionality.
2.11.0 #
- Fix: Ensure enum field mappings include
MetricInterval,MetricType, andStockMovementTypeso enum normalization converts these fields correctly. - Internal: Updated
VendureUtilsenum mappings and normalization logic to reduce false positives for generictypefields. - Tests: Added/adjusted unit tests for enum conversion of new mappings and list-valued enum fields.
2.10.0 #
- Added Support for
activeCustomerStreamSubscription: Now you can subscribe to real-time updates for the active customer. - Improved Enum Handling: Updated internal field-to-type mappings for all Shop API enums (CurrencyCode, LanguageCode, Permission, AdjustmentType, GlobalFlag, ErrorCode, LogicalOperator, DeletionResult, etc.).
- New Utility
VendureSchemaUtils.discoverEnums(): A new utility to manually trigger schema introspection and register custom enums at runtime. - Enhanced Normalization: Improved GraphQL data normalization for subscription results and custom fields.
2.9.0 #
- Fixed Enum Conversion for Conflicting Field Names: Enhanced
normalizeGraphQLDatato handle cases where multiple GraphQL types have fields with the same name (e.g.,Parser.type,Order.type,Asset.type). - Robust Fallback Mechanism: Added fallback logic that checks if a string value matches ANY known enum value from the introspection cache, ensuring all enums are converted even when field-to-type mappings conflict.
- Better Support for Custom Types: Custom plugin types with enum fields are now properly converted without requiring manual enum mapping.
- Non-Breaking Enhancement: The change is backward compatible and requires no API changes from consumers.
2.8.0 #
- Added global enum conversion toggles:
VendureUtils.convertQueryEnumsandVendureUtils.convertMutationEnums(both default totrue). - Added
VendureUtils.setConvertEnums({bool? queryEnums, bool? mutationEnums})helper to change conversion flags globally. normalizeGraphQLDataandnormalizeMutationDatanow respect global flags and also accept a per-callconvertEnumsoverride.- Fixed mutation normalization to only convert actual enum fields using schema introspection (no heuristic conversions).
- Added per-call
convertEnumsparameter toCustomOperationsmutation methods for fine-grained control. - Exported
VendureUtilsfrom the package entrypoint so the global flags and helper are accessible to package consumers. - Bumped package version to
2.8.0inpubspec.yaml. - Internal: improved safety around enum conversions and added tests for enum normalization behavior.
2.7.0 #
- BREAKING CHANGE: Removed default 10-second timeout for GraphQL queries
- Immediate Failure Detection: Connection failures now fail immediately instead of waiting for timeout
- Optional Timeout: The
timeoutparameter is now truly optional - only applies if explicitly set - Improved User Experience: Apps can now detect unreachable backends instantly and proceed with fallback behavior
2.5.0 #
- Robust Enum Normalization: Refactored normalization to use dynamic schema introspection for all enum fields and values. Now supports automatic camelCase conversion for all enums, regardless of field name.
- Field-to-Enum Mapping: Added automatic mapping of GraphQL fields to their enum types using introspection, ensuring all enum fields are normalized.
- SDK Cleanup: Removed all debug prints, centralized normalization logic, and improved recursion for speed and maintainability.
- DRY & Fast: Refactored normalization to avoid duplicate logic and unnecessary recursion, making it production-grade and easy to extend.
- No Breaking Changes: All existing APIs remain compatible, but normalization is now more reliable and future-proof.
2.4.0 #
- Enhanced Language Code Support: Improved dynamic language code handling with proper URI parsing instead of string concatenation.
- Dynamic Channel Token Management: Added
setChannelToken()andgetChannelToken()methods for runtime channel switching. - Better URI Handling: Fixed URI construction to properly handle existing query parameters and language codes in endpoints.
- New Static Methods: Added
setLanguageCode(),getLanguageCode(),setChannelToken(), andgetChannelToken()for dynamic configuration. - Preserved Original Endpoints: When no language code is set, the original endpoint URL is preserved as-is without modification.
- Multi-tenant Support: Enhanced support for multi-channel applications with dynamic channel token switching.
2.3.0 #
- Updated
graphqlpackage to latest compatible version. - Fixed async/generic bug in
mutatefor bool and map return types. - Improved type safety and error handling for all custom operations.
- All previous bugfixes and enum normalization improvements included.
2.2.0 #
- Improved error handling for all Vendure error types (e.g. InvalidCredentialsError, ErrorResult, etc.) so authentication failures always throw a standardized, testable message.
- Defensive null checks for error messages to prevent type errors.
- Enum normalization restored: all enum values for keys in
_vendureTypeEnumsare now converted to Dart/camelCase style recursively. - Type safety enforced for all map responses.
- Internal logging and debug improvements for error diagnosis.
- See
normalizeGraphQLDataand authentication methods for details.
2.1.1 #
- Added refresh token via Vendure instance:
Vendure.instance.refreshToken(params)now available for direct use. - Makes token refresh accessible from the singleton instance for all auth flows.
2.1.0 #
- Added refresh token support via
TokenManagerandVendure.refreshToken. - You can now refresh authentication tokens dynamically for long-lived sessions or custom auth flows.
- See
Vendure.refreshTokenandTokenManagerfor usage.
2.0.0 #
⚠️ Breaking Change #
CustomOperationsAPI: ThefromJsonparameter is now optional formutate,query,queryList, andmutateListmethods.- If
fromJsonis not provided, the raw normalized data is returned (cast to the expected type). - This change breaks previous usage where
fromJsonwas required. - Update your code to handle the new method signatures and return types.
1.8.0 #
- Added static
setAuthTokenmethod to update the authentication token on the initialized Vendure instance.
1.7.2 #
- added
timeoutoption to Vendure initialization methods - increased default GraphQL client timeout to 10 seconds (was 5 seconds)
1.7.1 #
- fixed enum value conversion in _convertEnumToDartFormat method
- improved handling of camelCase enum values (e.g., 'staticVal' now correctly preserved instead of being converted to 'staticval')
- method now properly handles both SCREAMING_SNAKE_CASE and camelCase enum formats
1.7.0 #
- fixed native authentication implementation
- improved GraphQL client configuration with better caching policies
- added default headers for HTTP requests
- enhanced guest session handling
- fixed typo in available countries query filename
- added comprehensive test suites for user journeys
1.6.0 #
- added support for vendure-token header to pass the channel
- added languageCode support for translations
1.5.0 #
- added mutateList for mutations that return a List
1.4.0 #
- refactored custom operations code
1.3.0 #
- changed fromJson data type to dynamic
1.2.6 #
- fixed customfields config not passing to order and system operations
1.2.5 #
- fixed internal type import
1.2.4 #
- fixed ActiveCustomer error on active order removeAllItems
1.2.3 #
- fixed Customer customFields parsing issue
1.2.2 #
- fixed Turkish Lira TRY conversion issue
1.2.1 #
- Removed CollectionWithParentChildren entity
1.2.0 #
- Added
getCollectionsWithParentChildrenmethod - Added
getCollectionWithChildrenmethod - Added
getCollectionWithParentmethod - Added
getCollectionWithParentChildrenmethod - Updated FacetValue to includ Facet
1.1.0 #
- Added support for customfields. define customfieldsConfig on initialize
1.0.1 #
- Updated productId and productVariantId int types to String
0.9.1 #
- Renamed type to CollectionWithParentChildren for simplicity
0.9.0 #
- Added
getCollectionsWithParentChildrenmethod
0.8.5 #
- fixed the bug options not passing on getCollections
0.8.4 #
- changed getCollectionById tpe to String from int
0.8.3 #
- changed getOrderByCode return type to Order
0.8.2 #
- updated http dependency
0.8.1 #
- Added setOrderShippingMethod example
0.8.0 #
- Strong types are implemented for all methods
0.7.0 #
- All shop-api methods are implemented
0.6.6 #
- Updated README
0.6.3 #
- Added
setOrderShippingAddressmethod - Added
getActiveOrdermethod - Added
addPaymentToOrdermethod - Added
getOrderByCodemethod - Added
getPaymentMethodsmethod - Added
getShippingMethodsmethod - Added
setCustomerForOrdermethod
0.5.1 #
- Added setOrderShippingAddress and updated README example
0.5.0 #
- Exported types
0.4.2 #
- Updated Readme explaining how to manage firebase token changes
0.4.1 #
- Update the instance credentials without reinitizialize
0.4.0 #
- Made it singleton with predefined initialization methods NativeAuth,FirebaseAuth,Token and Custom Auth
0.3.1 #
- fixed http dependency
0.3.0 #
- Added automated opinionated session refresh management
0.2.0 #
- Added extractResponseHeaders method to extract response headers.
0.1.0 #
- Initial version.